Prepared for release 0.0.9
[gnucomo.git] / ChangeLog
1 Dec 24, 2003 - Release 0.0.9
2 ====================================
3
4 Database
5 ---------
6
7 - Changed the type of log_adv_daemon_email.delay and log_adv_daemon_email.xdelay
8   from time to interval. These delays can be more than 24 hours.
9
10 libgnucomo
11 ----------
12
13 - Catch an exception if we can not setup a database transaction.
14
15
16 gcm_input
17 ---------
18
19 - SQL_Escape(): Backslashes are correctly escaped with another backslash
20 - XML_Entities(): transform non-ASCII characters into hexadecimal entities.
21 - Do not add another parameter_notification record is the notification
22   already exists for that parameter.
23 - Catch exceptions from the database library.
24 - Major redesign. All input is handled through XML. Raw input data is first
25   transformed into an XML document for further processing.
26   A collection of polymorphic classes handle the transformation of various
27   input formats into XML.
28 - Classifying input data is done with a finite improbability calculation.
29
30 gcm_daemon
31 -----------
32
33 - Create separate notifications for different objects in service_check().
34   Fixes problem report 23.
35 - Change the notation for delays from "days+hh:mm:ss" to "days hh:mm:ss. This
36   fixes problem report 14.
37 - In linux_daemon_sendmail(), check the existence of '=' before using it as a
38   field separator. Fixes problem report 15.
39
40
41 web interface
42 --------------
43
44 - Optionally show or hide removed parameters from the parameter
45   comparison page.
46
47 Documentation
48 ---------------
49
50 - Added a User Manual, based upon the draft TUTORIAL
51
52
53 Sep 04, 2003 - Release 0.0.8
54 ====================================
55
56 Database
57 ---------
58
59 - Fixed a few typos in the database creation script.
60 - BUGFIX: Secondary indices on log_notification were unique.
61 - Additional information in the 'usr' table: 'display_name' and 'email'.
62 - Added new issues and services.
63
64 gcm_input
65 ---------
66
67 - Fixed a namespace problem in message.cpp
68 - Fixed a gcc 2 vs. gcc 3 problem in gcm_input.cpp
69 - Reject log entries that are found to be invalid.
70 - A date without the time for the '-d <date> option will
71   assume midnight on that date.
72
73 gcm_dameon
74 ----------
75
76 - In PHP, the method configuration::read() will also read
77   a user-specific configuration from the home directory if a 
78   PHP script is not run through the web server.
79 - Accept command argument '-c config' to use an alternate
80   gnucomo configuration.
81 - New PHP methods:
82    db::Result() - Returns the result from the last query.
83    db::Field()  - Returns the value of a single field.
84    db::new_notification() - Create a new notification in the database.
85 - Check the log table against the servies running on an object and
86   create notifications if a service is not supposed to be available
87   or is not known at all.
88
89 libgnucomo
90 ----------
91
92 - Changed the gnucomo_database class to the new PostgreSQL
93   library, libpqxx
94 - Overloaded gnucomo_database::Field() to include the Result
95   from a query as an argument.
96
97 web interface
98 --------------
99
100 - New page to enter and modify services.
101 - The objects page provides an interface to edit the list of
102   services and users for an object.
103
104 Test
105 ----
106
107 - Reduced the amount of output from test scripts.
108 - Added output data that is expected from test scripts.
109 - New test: tests the database upgrade with gcm_daemon
110 - Overall test script: gcm_test. Runs all tests in sequence.
111
112
113 Aug 15, 2003 - Release 0.0.7
114 ====================================
115
116 Database
117 ---------
118
119 - Added index to the history table to improve performance.
120
121 gcm_input
122 ----------
123
124 - Added a new section 'logging' with three configuration parameters:
125    method       - Output method to use for logging.
126    destination  - Name of the log output destination.
127    level        - Log level: Verbose output if greater than 0.
128 - Added '-i' option for incremental parameter updates.
129 - Debug output to the log stream instead of cerr.
130 - Fixed namespace problems in XPath searches of the DOM.
131 - Moved string utility functions to a separate file.
132 - Different kinds of log files are parsed by a collection of objects
133   of different classes, derived from the base class line_cooker
134   Depending on the message content or the message_type element in
135   XML, one of these objects is selected.
136 - Logrunner is integrated with gcm_input. Although its functionality
137   is still limited, a connection between logrunner and gcm_input
138   is beginning to form.
139
140 gcm_daemon
141 ----------
142
143 - BUGFIX: Print an error message if a parameter does not have
144   any history.
145 - BUGFIX: undefined variables and indices when processing sendmail logs.
146
147 web interface
148 --------------
149
150 - BUGFIX: Convert special characters for HTML (<, >, and &) into
151   their entities.
152 - BUGFIX: Removed parameters were somtimes shown on the wrong side
153   of the parameter difference page.
154 - Added performance measurement to the parameters page.
155 - Added editing of detailed object information.
156
157 Jul 15, 2003 - Release 0.0.6
158 ====================================
159
160 - Gcm_input reads IRIX system logs.
161 - Gcm_input exits without reading any input if the database connection fails.
162 - Gcm_input extracts the hostname out of the 'From:' or 'Message-Id:' line
163   of an email header.
164 - New member C++ function gnucomo_database::is_conected().
165 - New columns in the table 'log_adv_daemon_email': size, pri, relay,
166   status_details and dsn.
167 - Added several indices for the table 'log_adv_daemon_email'.
168 - In phpclasses/db.class.php: Added the database connection string as
169   an argument to the function copy_db_class.
170 - Gcm_daemon processes logs from sendmail.
171 - Fixed the PHP member function db::db_connect(). The Postgres connection
172   string is now passed as an argument to that function.
173 - Gcm_input reads cooked log entries from an XML input stream.
174 - New database tables: notification_check, notification_check_buffer,
175   notification_check_line and object_statistics.
176 - PHP function db::query() returns the result index.
177 - PHP function db::num_rows() accepts a result index as argument
178   (default = 0 -> use result from the previous query).
179 - New PHP function db::fetch_object().
180 - Gcm_daemon gathers statistics on parameters, notifications, etc. for all objects.
181 - The Objects web page uses the new object_statistics table.
182 - The Log web page shows the log one day at a time.
183 - Removed parameters are displayed in a shaded style.
184
185 Feb 21, 2003 - Release 0.0.5
186 ====================================
187
188 - The notifications web page keeps a record of each time a notification
189   is displayed. Either on a listing or in detail.
190 - Improved the table layout of the objects web page.
191 - In the users page of the web interface, you can add a new user and
192   make him/her a member of a group.
193 - Users can change their password through the users page of the web interface.
194 - Gcm_input also detects packages that are removed from the system.
195 - In gcm_input, determining the version number of a package in a RPM
196   list is improved. Only the last one or two parts of the string that
197   begin with a '-' and a number are considered the version.
198 - The C++ function gnucomo_database::new_notification() uses the SQL
199   function currval() to obtain the identification number
200   of the most recently created notification.
201 - The C++ class gnucomo_database prints the query on cerr, along
202   with the error message when the query results in an error.
203 - Removed the 'Change Password' image from the main menu.
204   Changing passwords is integrated in te users page.
205 - Added the 'form' class on table and td elements. This class is intended
206   for borderless tables that are used to layout HTML forms.
207 - A new style 'h2.error' for error reports in the stylesheet.
208   Put borders around the tables and cells in the web interface.
209   Added right-alignment for numbers and fixed width for timestamps.
210 - Gcm_daemon maintains the last notification identifier.
211 - Setup the groups and database permissions. The three groups
212   are: view, ops and admin.
213 - Added two new entries to the action table.
214 - All web interface pages use the page class. This provides for a
215   uniform session and database handling.
216 - Use our own error handler for PHP errors and warnings in the web interface.
217 - Added log, notification and parameter counters to the 'object' table.
218   Counting these things at the time a user interface needs them is
219   too slow. Other programs, like gcm_daemon en gcm_input should prepare
220   these counters for quick retrieval.
221 - Show the total number of Log entries, parameters and notifications
222   on the object page of the web interface.
223 - Added new tables to the database : log_adv_daemon and log_adv_daemon_email.
224 - Made gcm_daemon a 'proper' executable.
225 - Paths of included files in PHP scripts are more flexible.
226 - Gcm_daemon recognizes important start and stop events of various daemons
227 - Gcm_daemon checks for exiting daemons in the log entries.
228 - Directory structure of PHP scripts reorganized. PHP scripts that are included in
229   both gcm_daemon and the web interface are now in the directory src/phpclasses.
230
231
232 Feb 05, 2003 - Release 0.0.4
233 ====================================
234
235 - Added style parameters for diff-like table views and textarea elements.
236 - Display and handle notifications in the web interface.
237 - Display the difference of all package class parameters for two objects
238   in the web interface.
239 - New PHP class added: 'page'. This is a (sort-of abstract) base class
240   for all Gnucomo web interface pages. It hanldes the session, login,
241   opening the database and the head and tail of the web page.
242 - gcm_input creates notifications when a new package is discovered
243   in a 'rpm -qa' list or when the version of a package is changed.
244 - Bug fix: action.statuscode was in upper case.
245 - Added new tables to the database: parameter_class and parameter_notification.
246 - New C++ function: gnucomo_database::new_notification(). retruns the id number
247   of the newly created notification record.
248 - Added new records to the 'type_of_issue' table.
249 - Changed semantics of actionid 9 in the 'action' table.
250 - Bugfix in gcm_input: The hostname in a system log may contain
251   digits as well as letters.
252 - Added new fields to the 'type_of_issue' table.
253
254 Dec 06, 2002 - Release 0.0.3
255 ====================================
256
257 - Directory structure is reorganized and prepared for GNU configure.
258 - gcm_input sets the value of log.processed to FALSE when inserting a
259    new log entry into the database
260 - When a syslog entry arrives from last year, gcm_input subtracts one from the
261    year of arrival to create the year of the log entry.
262 - Gcm_input reads output from "rpm -qa" and enters packages in the parameter table.
263 - Changes to log and log_adv tables described in the manifest.
264 - Added description of gcm_daemon in the design.
265 - Added new program (in PHP): gcm_daemon.
266 - Added a check on the database version in gcm_damon.
267 - Database-login in gcm_damon can be done using TCP/IP or UNIX-sockets.
268 - Gcm_daemon processes iptables-records including ICMP support.
269 - Returning values with ICMP (bounced) are seperate and linked to the same logfile.
270 - Which each new version records that haven't been recognized are processed again
271   through gcm_daemon.
272 - Added program-specific database user and password in config file.
273 - Added new arguments to gnucomo_config::Database(): user and password.
274   If empty, default values are taken from the config file.
275 - Implemented a slightly functional web interface that shows some
276   output from the database.