2005.12.20 * Fixed some issues with setup.py using os.system. It's now using subprocess.call, and is working well and predictably. * Added a new directive to web: doc-root. * Fixed pymon.ui.web.pages to use absolute path names to files. 2005.12.19 * Fixed the main management screen and prettied up the status screens. * Added a new secondary stylesheet to be used by the status screens. * Updated the screenshots. * Commented out the linking in postsetup.py and just do a direct copy of the bin files. This needs to be fixed. * Updated the PyAdytum release in DEPENDENCIES. * Deleted etc/pymon.conf. * Updated instructions in INSTALL and README. * Fixed the black on green of the top menu to be white on green on the status web screens. * Updated etc/example-pymon.conf to match the recent schema changes for the backups section. * Fixed postsetup.py to chmod the scripts as well as copy the web material to the appropriate location. * Renamed bin/pymon to bin/pymond and updated the README, setup.py, and postsetup.py to reflect this change. * Added a try/except for removing old binaries in PREFIX/bin during post setup. * Added support for organization entry in config schema, State data structure, ClientMixin, and web ui. * Added notes in TODO and application.State() about taking the data structure out of hardcode and putting it in config. * Added notes about setuptools issues during installs. * Added a delay to presetup.py when installing files in the hopes of eliminating to weird errors (I think some files aren't getting written to quickly enough). * Added dev and regular tarball/release scripts. * Added a Twisted version check in setup.py. * Changed file write mode from 'w' to 'w+' in postsetup.py. * Incremented the version. 2005.12.18 * Updated web content. * Fixed a bug in utils.getMailList where a global data structure was getting appended to instead of a copy of the data structure. * Made the static/web/states.html template usable in Nevow (fixed some unclosed HTML tags). * Added test render and data methods to pymon.ui.web.pages.StatesPage that pull data from each monitor's current state. * Fixed pymon.engines to that the monitor factories were added to the state machine instead of the abstract factory instances (which was useless and a mistake). * Added the appropriate nevow namespace attributes in static/web/states.html in order to view the state data as HTML. * Changed configuration schema for backups to include state directory. * Changed application.State() to accept the uid of a monnitor during initialization. * Exapnded logging in the state machinery. * State is now preserved across pymon restarts for each individual monitor. * Fixed the HTTP status checks return code problem -- it was being returned as a string instead of an integer, and thus wasn't matching anything in the list of integer return codes, failing all the threshold tests. * Made further refinedments on states and statesdetail templates as well as CSS modifications. * Added missing VERSION file. 2005.12.17 * I Couldn't get the includes to work right for the ZConfig files, so I put all the schema files togheter in one schema. * To circumvent bootstrapping issues during install, the datatypes used in pymon's ZConfiguration are going to be called from adytum libraries, a dependency that will need to be installed prior to running pymon's setup.py. * The adytum libraries that have been a part of the working dreictory will now be separated out. * Updated the setup.py to reflect the changes in the library structure. * Updated etc/schema.xml to use the new adytum.config.zconfig types/validators. * Updated the DEPENDENCIES to download the latest adytum/pymon tarball. * Changed the order of execution for code in presetup.py. * Updated presetup.py to create the required directories on the files system. * Moved all the schema files but etc/schema.xml into etc/old. * Re-enabled setup.py. * Organized bin/pymon and bin/pymon.tac better. * Added a bunch of code to postsetup.py and added a call to it in setup.py. * Added Nevow and Phillip Eby's protocols and dispatch to DEPENDENCIES. * Removed old lib/utilities file, as it was replaced by lib/util. * Edited engines, monitors, servers, application, utils, and clients.rules to use the ZConfig API. * Updated schema.xml and example conf files with the missing "agents" section. * Fixed status default setting bug in clients.base. * Cleaned up lib/config.py. 2005.12.16 * Wrote a utility function pyInstall() in presetup.py that downloads and installs pymon dependencies. * Changed DEPENDENCIES to a useful file to be used during installation for downloading missing software. It's now a python data structure that gets eval'ed in presetup.py. * Renamed the "conf" dir to "etc". * Updated the INSTALL instructions. 2005.12.15 * Created pre- and postsetup.py files for getting around the setuptools sandbox. 2005.11.14 * Updated the conf/example-pymon.conf and conf/schema.xml with the code developed in the tests. * Reorganized the service configuration nesting. * Made use of the "extends" attribute in the schema and most of the schema redundancies. * Split schemas (ZConfig definitions) up into separate files for ease of development and maintenance; each monitor will have its own schema file, and the monitors will be grouped together in another services schema file. * Added ZConfig loaders and configuration instance to pymon config. * Setup bin/pymon to import cfg from pymon.config. 2005.11.13 * Added date range custom datatype. * Added configuration and tests for scheduled outages per service. * Filled out the rangedValues() datatype/validator in pymon.zconfig so that it can parse things such as "10-21", "10, 12, 14", and "10, 24, 30, 44-49". * Added configuration scheme for HTTP status checks. * Added example configuration for HTTP status checks as well as doctests for the configuration. 2005.11.12 * In the great debacle of lib rearrangement, the zconfig.py file was deleted with no existing copy remaining anyway. I attempted to reconstruct it from scratch. * Added support for default email notification list withing the general configuration section and overrides in ping-defaults as well as ping. * Added another set of tests for configuration (for pings). 2005.11.07 * Started working on an executable pymon file, such that the entire pymon application could be run from a python egg. * Added more schemas to conf/test for integration into the ZConfig for pymon. 2005.11.06 * Nope. It didn't work. Had to merge lib/app/pymon from previous revision. * Tried moving pymon out of app. * That *did* work. pymon is now a top-level package with it's own namespace. * Re-did all the edits to the python files to reflect the namespace changes. 2005.11.05 * Changed setup.py so that it wouldn't violate the security/sandbox issues of EasyInstall (commented out the chmod/chown). * Began converting to SConfig configuration by adding a schema.xml and example-pymon.conf to the conf dir. * Created a conf/tests directory for this process and for developer reference. * Created a conf/old directory for previous configuration files. * Added custom validators to pymon for zconfig (these are in adytum.app.pymon.zconfig). * Made changes to the source code in order to put pymon in its own name space. * Tried moving the pymon directory... don't think it worked. 2005.06.22 * Sandbox: added some code for testing alternative configruations. * Sandbox: added an Ini -> dic parser file. * Sandbox: added mysql.tac protype for making mysql connections * Modified the FTP Monitor class by setting self.protocol to NullClient() in clientConnectionFailed 2005.06.21 * Added a new state in the config file called "failed" with a numerical value of 5. * Added a failed section to the defaults section for HTTP. * Added an elif clause to clients.rules.ThresholdRules to set the local status. * Created a new class in clients.base called NullClient that subclasses from twisted.internet.protocol.Protocol and ClientMixin. * Modified the HTTP Monitor class by adding clientConnectionRefused that sets self.protocol to NullClient() and performs required calls. 2005.06.20 * Moved state defaults out of their tempary home in pymon.clients.ping and into where they belong: pymon.application.State.__init__(). * Added utils.isInList() function for checking thresholds that aren't ranges but lists of expected values. * Created pymon.clients.base.ThresholdRules which is instantiated by ClientMixin and used by each Client class during connectionLost (when data is returned). * Moved get*Threshold() methods out of ClientMixin and put them in ThresholdRules. * Removed status checking from clients.ping. * Added more state info to clients.ping. * Removed email send from clients.ping and put it into ThresholdRules. * Moved state update code from clients.ping into clients.base.ClientMixin, so that everyone can use it. * Split ThresholdRules into pymon.clients.rules. * Copied Ravi's ftp prototype tac into my sandbox and made some adjustments. * Added connectionMade() (and thus enabled rules processing) for pymon.clients.http.HttpStatusClient. * Finished HTTP status monitor. * Added a prototype for HTTP page text check to my sandbox. * Removed oubiwann addresses from config file. * Added exception handling for pymon.application.State.backup(). 2005.06.18 * Updated the internal pymon management web page for pymon (page actually loads when you go to localhost:8080 after starting pymon). * Added a missing spacer to the image dir. * Began the process of removing the constants file (added vars to setup.py and created conf/tempate-pymon.xml). * Sandbox: added test code for HTTP status. * Updated monitors to support HTTP status checks. * Updated clients.http to support HTTP status checks (still need to do threshold checks and email alerts). * Added line to build.sh to remove /usr/local/pymon. 2005.06.14 * Added script for updating all svn repos in lib. * Made the build.sh script more x-platform by getting the python prefix path (I was just being selfish and using the Mac OS X path). * Removed unused 'patterns' dir from setup.py. 2005.06.13 * Manually added ui.web.pages that the merge didn't do for some reason. * Site update: added a news item about the merge and hinted at upcoming alpha release. 2005.06.11 * Merged pattern refactor branch back into trunk. * Manually added some files that the merge didn't do for some reason. 2005.06.09 * Stubbed out some examples in the pymon.engines files. * Added a little more comment about engines in the .tac file. * Cleaned up the formatting of the .tac file. * Added another variable to the global names in the example-pymon.xml. * Removed ClientMixin config settings and put them in the factory __ini__() method (monitors.MonitorMixin) where they belong. * Enabled email alerts. * Did more work on getting http status checks running. * Added placeholders for dns, mysql, ftp and smtp clients. 2005.06.08 * Moved the servers out of the .tac file and put them in a newly added pymon.servers class file. * Moved class-level properties in ping.ClientMixin to properties set during __init__. * Added a connectionMade() method to ping.PingClient that calls super classes' connectionMade()/__init__() methods. * Bug fix: fixed bad class syntax in http.*. * Bug fix: monitors.MonitorMixin wasn't being called in some classes and was being called wrong in another one (missing part of the signature). * Removed some old bin dir files. * Removed unsed lib files. * Due to an oversight, the ui.web.pages file never got added to subversion. Added it. * Added build and test scripts to ensure that oversights like that mentioned above don't happen again. 2005.06.07 * Moved monitor (twisted factory) creation out of the main tac file and into an "engines" file, since the way the factories are created will affect the application as a whole, and for different tunings, different ways of creating the factories will be used. * Started to stub out the code for HTTP status checks and HTTP text checks. 2005.06.05 * Started making changes to the config file for DNS dig checks. 2005.06.04 * Created an agents.py file for the perspective broker process server. * Added an agents section to the example-pymon.xml system section. * Added a local agent ProcessServer to the pymon.tac file for executing local binaries. * Got the new pymon.tac running with the refactored ping monitor/factory and client code (subclasses of pb.PBClientFactory and pb.Broker). * Changes to the example-pymon.xml config file. 2005.05.30 * Sandbox: added a test for local or remote process execution via twisted.spread.pb (perspective broker). * Sandbox: cleaned up code in previous/other *.tac files. * Sandbox: fixed factory code so that it is created in the right place (factories are state machines and don't get instantiated at each run). * Fixed setup.py file to point to the example-pymon.* files. * Sandbox: more fixes for some of the test code. * Sandbox: added state machine demo for pb client factory. 2005.05.29 * Sandbox: added a test for getting HTTP status information from a server. * Sandbox: added a test for running a process and returning output through a local TCP client/server setup. 2005.05.28 * Started making changes to all the code that needs access to the unique id of a service. * Added group and user id elements to the system section of the XML config file. * Changed the .tac file so that uses these ids to set the uid/gid of the twistd process. 2005.05.27 * Bug fix: example-pymon.xml had a bug: "enabled" was at the same level as "services", and since thee names were different, it was treating everything at that level like a dictionary instead of a list. I therefore had to take the "enabled" tag and subtags out of "services" and put them in their own level. * Changed the .tac file to reflect the above-mentioned change in XML/configuration. * Generalized service component nomenclature in configuration XML file (renamed "hosts" to "entires" and "host" to "entry"). * Changed example-pymon.xml to reflect the use of URIs for the new unique identification scheme for services. * Added missing test.py test harness to branch. 2005.05.23 * Added global registry test code to the sandbox. * Added missing support for top-level module names in the test harness test.py. * Added pymon.registry and doctests to code base. * In pymon.application, added a State class (dict subclass) and a History class that is a subclass of both Queue and object. There is dual inheritance because you cannot create and/or set arbitrary attributes on Queue objects. * Added global varibale names to the configuration file to ease code maintenance where calls are made to the globalRegistry. * Added a backup service for writing state data to disk. * Added configuration for backups to config/pymon.xml. * Added support to application.State for writing backup data to disk. * Added functionality to application.State.__init__() that checks for the state data backup/restore file on disk and if it exists, loads the state data and deletes the file. * Wrote doctests for application.State, included testing backup() and restore(). * Moved monitors back into the main lib, out of the plugins dir. * Created monitors.AbstractFactory. * Created monitors.PingMonitor. * Added support for loading sample configuration into the test harness so that modules that require configuration information can be tested. * Removed the runMonitor() from pymon.tac. * Updated doctests in application.State. 2005.05.22 * Added initial support for Nevow and now have port 8080 open on pymon, displaying a test page. * Created a static directory in pymon root, with a web subdirectory to be used by Nevow for html templates, styles, etc. * Added static subdirectories to pymon.ui.web.Root for accessing images, icons, styles, etc. * Copied contrib/Zope/ZPT files to static web for use in Nevow. These are still ZPT and haven't been converted yet. This will have to wait until the refactor branch is merged, since it will require the new state machine. * Created appropriate Nevow page classes for main web ui page and sub pages. * Created a basic site.css file. * Added initial support for Nevow and now have port 8080 open on pymon, displaying a test page. * Created a static directory in pymon root, with a web subdirectory to be used by Nevow for html templates, styles, etc. * Added static subdirectories to pymon.ui.web.Root for accessing images, icons, styles, etc. * Copied contrib/Zope/ZPT files to static web for use in Nevow. These are still ZPT and haven't been converted yet. This will have to wait until the refactor branch is merged, since it will require the new state machine. * Created appropriate Nevow page classes for main web ui page and sub pages. * Created a basic site.css file. * Merged latest trunk changes back into the refactor branch. * Moved the trunk additions of email notification into the client code and out of the protocol code. * Site update: Updated the news on the pymon.sf.net website. * Updated the css and home.html of the pMI with the look and feel of the pymon.sf.net site. REALLY needs to be cleaned up. And prepared for Nevow. * Added a pymon favoicon.ico to the pMI. 2005.05.20 * Created a MANIFEST file for building source distros. * Added dependancy checks in setup.py. * Commented out entire pymon.storage.sql file. * Ran into problems with api.py files, so stopped importing them for now. * Added temp import fix to pymon.tac. * Added system section for mail notifications to pymon.ini. * Added pymon.message.py for email notifications. * Added support for emailing messages in protocols.PyMonPing. * Updated installation instructions. 2005.05.19 * Created a MANIFEST file for building source distros. * Added dependancy checks in setup.py. * Commented out entire pymon.storage.sql file. * Ran into problems with api.py files, so stopped importing them for now. * Added temp import fix to pymon.tac. * Added system section for mail notifications to pymon.ini. * Added pymon.message.py for email notifications. * Added support for emailing messages in protocols.PyMonPing. * Updated installation instructions. 2005.05.15 * Changed setup.py to reflect the new location of the singleton class in the adytum library. * Modified the db configuration in the XML file. 2005.05.09 * Sandbox: added a true .tac app + service to the reactor sandbox. * Sandbox: added a workflow .tac to the reactor sandbox. * Sandbox: added a Factory-driven .tac to the reactor sandbox (currently only a copy with no Factory code in it). * Made changes to pymon.tac based on the reactor tests. * Updated the setup.py to install adytum.utilities. * Bug: this has been mentioned on the mail list, but I thought it should go in here too: there is currently a bug in the HTTPClient code somewhere. The first call to a remote webserver successfully connects, but all others seem to fail due to timeout. This really needs to be addressed. * Bug: when pymon.tac is run with HTTPClient enabled, shutdown (^C) takes FOREVER. It often has to be manually killed. 2005.05.08 * Added a PyMonState instantiation in pymon.workflow as that which should be imported from the module. * Added a placeholder for the license. * Fixed the descriptions in pymon.workflow. * Changed the wf instance name from pywf to state_wf, to allow for potential future pymon workflows that don't necessarily apply to state. * Reorganized workflow. * Site update: added license statement to the main page. * Pasted license content into placeholder, with a note about exceptions to the license. * Sandbox: added some code for doing experiments on the twisted reactor. 2005.05.07 * Added support for workflow with the adytum.workflow module (based on the itools workflow module). * Added support for python egg distribution. * Added additioanl details to setup.py. * Site update: added news item about workflow. * Implemented a first draft of a pymon workflow using the new supporting library for workflow (specifically, the Singleton version). 2005.05.01 * Pulled protocols.isInRange out and put it in pymon.utilities. * Started making changes to plugins.monnitors to use the new config objects. * Finished putting the stuff from pymon.ini into pymon.xml. * Added services.enabled to pymon.xml. 2005.04.17 * Moved lib/app/pymon/monnitors.py to plugins/monitors.py. * Added more values to pymon.constants. * Changed setup.py to pull values in form lib/app/pymon/constants.py. * Modified the INSTALL instructions. * Added new XML/Ini-file configuration support to pymon.config. * Stubbed pymon.config.PyMonIniConfig() * Added imports to pymon.api so that all imports in all the code can now go through this file. * Changed bin/pymon.tac to use the api imports. * Added pymon.utilities.getService() to acquire the appropriate storage service based on a passed configuration value. * Changed bin/pymon.tac to use pymon.utilities.getService(). * Removed the sql.updateDatabase() dependancy from pymon.protocols and instead moved it into pymon.utilities. Added XXX notes for future changes regarding this. * Added UI interface placeholder in the libs. * Fixed the updateDatabase() call in protocols.PyMonPing. * Replaced the shell script service/run with a python script that is able to get the app configs from adytum.app.pymon.constants; updated the INSTALL file to indicate one no longer needs to edit the service/run script. 2005.04.12 * sandbox: Added ZEO support to wxZODBVieer. There is now a menu option to "Open ZEO Instance... Ctrl-U". * sandbox: Added ZEO support to zodbschema.py. * sandbox: Added runzeo, zeoconfig, and zpasswd. 2005.04.11 * sandbox: Added zodb schema creation script as well as the ZODB viewer script from ASPN. 2005.04.10 * sandbox: Working more with the config API. * sandbox: More experimentation with dictionary configuration. May set aside the config API for now... 2005.04.07 * Updated the "Future" section of the web site. 2005.04.06 * sandbox: Added sandbox/config_api for experimenting with configuation adaptors. * sandbox: Added a bunch of files for experimenting with adaptation. * sandbox: Added an interface stub for IConfig. * Updated web site news. * Updated menus on the web site to point to trunk instead of the old twisted branch. * Updated web site to mention data storage options. * Updated old news about maillist. * sandbox: added a place for Ravi to experiment with pyparsing and creating an interactive shell for pymon. 2005.03.31 * Moved pymon.storage.sqlobject to pymon.storage.sql to avoid name space collisions with the SQLObject package. 2005.03.30 * Added storage and schema placeholders for the data API. * Added an api.py file for consistancy of interface for developers and users of pymon. * Removed some old files that are no longer useful. * Added directories for future interfaces and adaptors. These things have come up in mail list discussions, and will most likely be used. Preferably sooner than later. * Moved updateDatabase() from pymon.datamanager to where it should be, in a data store specific file: pymon.storage.sqlobject. * Updated pymon.protocols to refer to the new location of updateDatabase. 2005.03.29 * Fixed a bug in pymon.protocols. PyMonHTTPClientFactory.clientConnectionLost() had the wrong sig. * Added Exception handling to the http header parser. * Started debugging a problem with PyMonHTTPClientFactory. * Changed PyMonHTTPClient to parse http response instead of PyMonHTTPClientFactory * Changed PyMonHTTPClient to use cfg as the initialization param * Changed PyMonHTTPClient to make a list out of http status codes from the dictionary * Put the extended call syntax back in pymon.tac, for the sake of code elegance. * Enforced int() on the port number in pymon.monitors.getHTTPMonitors(). 2005.03.27 * Changed reactor.connectTCP method. * Added setHTTPConfigs method to __init__. * Changed PyMonHTTPClientFactory to use protocol.ClientFactory. 2005.03.10 * Updated site news. * Updated site menu links. 2005.03.09 * Updated the setup.py script to install the adytum.net.http package. 2005.03.08 * Rearranged the configuration ini files and python classes. * Wrote a HTTP configuration and monitor. * Started writing a protocol to handle HTTP status data for HTTP monitor. 2004.10.14 * Uploaded new site look and feel, logo, and menus to sf.net. * Updated the project details on sf.net. 2004.10.13 * Allan Bailey gave his project space on sourceforge.net. * Archived original site into svn for the sake of history. * Created new logo for sf.net site. 2004.10.11 * Updated pymon.tac with comments. * Moved the old app.pymon.monitor file. * Created a new app.pymon.monitor for the twisted version of pymon. * Renamed app.pymon.monitor to app.pymon.monitors. * Removed all the stuff from pymon.tac that was added to app.pymon.monitors. * Setup app.pymon.protocols.PyMonPing() to set a data dict containing current service status info. * Added more entries to the default ping configurations in config.ini. * Put data inserting and updating capabilities in app.pymon.protocols.PyMonPing for now, but I will take this out as soon as it's been generalized. Data inserts and updates are working like a charm, and previous/current states are being accurately reported. * Separating the data insert/update code was actually very easy, so I went ahead and did it (app.pymon.datamanager). However, I still need to add last* timestamps. * Added logic for "Recovering" state, tested and seems to be working properly... better, in fact, than the PyMonitor that's in production right now. * Added comments to .ini file. * Began adding support for local process checks. * Updated README with more notes about adding monitors. 2004.10.10 * Cleaned up the .tac file code a little, as well as the protocols. * Added a data dir. * Added database setup configuration to .ini * Reworked adytum.app.pymon.datamodel, including the addition of doctests. Doctests were crazy... I wanted to use a test db if the doctest was running the code, and use the real database otherwise. Checking for __name__ didn't work, since doctest re-imports the module, so I had to do some checks against the stack. I don't know much about that stuff, so the check is very fragile. 2004.10.09 * Removed empty dirs. * Added conf, contrib dirs. * Added place-holder for twisted deamon in bin dir. * Added protocols and data model from sandbox. * Added Zope-specific files in contrib dir. * Added setup.py file. * Created a daemontools service direcctory, and removed log dir, since we will be using stdout, letting daemontools perform the logging. * Added INSTALL and DEPENDANCIES files. * Updated README. * Began creating a configuration methodology. * Added a constants file in adytum.app.pymon. * Added doctests for first ping methods in config. * Completely rewrote adytum.net.ping by deleting everything that was in there and writing a Parser class for ping output. * Added tons mode doc tests that helped my fing bugs in the ping.Parser class. * Updated protocols and tac file with fixes and improvements. 2004.10.08 * Have begun reorganization of packages, modules, and library files for use in the next version of PyMonitor. * Moved monitoring-specific code into lib/app/pymon directory and renamed files to conform with the adytum conventions. * Moved general PyMonitor files into the adytum.os and adytum.net packages. * Re-organized top-level files. * Updated site content -- news and main page. 2004.05.13 * fixed the issue with last check/ok/warn/err dates only reporting the last check time * removed the deepcopy and used copy instead (was getting recursion errors) 2004.05.12 * created pickle-specific methods and renamed methods that are used for dealing with pickle files * edited the svn commit shell script to clear out pyc files and remove the tmp files * the _getLastRun method made a call to loadRunData which called _loadPickleFile, but then didn't return anything. Fixing this fixed all the issues I was having with save state info. 2004.05.11 * added support for giving friendly(er) names to data files * pulled out references to remote_* in Internet/Site.py * successfully tested site monitoring with Internet/Site * added a 'close' connection to the httpconn so that I could pickle the data (can't pickle a network connection) 2004.05.09 * moved subject template for email notifications out of System/Monitoring.py and into Monitor.py so that each service can customize it * The problem with remote process monitoring notifications was due to the fact that two rounds were being done at the same time: OK -> ERROR (round 1) + ERROR -> ERROR (round two) = no change between final state of round 1 and 2 and thus no message got sent. * Fixed a bug in process_monitor script: two calls to processMonitor for remote host services monitoring * Set the external storage back to binary pickles * Created a bunch of methods for accessing summary data and creating files that contain summary data. * Correcteed the messages that were getting saved to summary data * Changed the sort order for the summary data * Moved System/Hosts to Internet/Ping * Added Internet/Site and began stubbing out code for site monitoring. 2004.05.02 * moved email message templates into *Monitor methods so they could be easily tailored to each service being monitored * added message for ping monitoring * moved *Monitor methods out of Monitoring class and into Monitor class * moved Monitoring class into System package 2004.04.28 * added minimal support for ping-monitoring hosts * separated more code into general monitoring and type of monitoring * added a 'debug' property to Monitor.py and System/Host.py and removed print statements that were cluttering output * fixed database naming for ping monitoring * fixed a bug (type) in database naming for service monitorings without a remote host set * removed the binary parameter from the read/write methods and created a new property 'binary_pickle' that is checked before reading or writing pickles files