2005-03-22  Damien Pollet  <damien.pollet@ac-dijon.fr>

	* i18n/fr/fr.po: changed coding from UTF-8 to ISO-8859-1

	* agents/dummy.py (Stub): new agent with no measure, meant to
	upload external or arbitrary data

	* agentmanager/{agent|data|rrd|util}.py : fix for measure dates

	* agentmanager/zephirservice.py, agentmanager/agent.py: special
	case when period == 0 (no scheduled measures)

	* README: extended and changed to reStructuredText

2005-03-17  Damien Pollet  <damien.pollet@ac-dijon.fr>

	* agentmanager/agent.py (Agent.scheduled_measure): date stored as
	local time, thanks to how baroque it is to convert between
	timezones

	* agentmanager/zephir_tap.py: localization (many other files
	changed)

	* agentmanager/__init__.py (ZEPHIRAGENTS_DATADIR): for
	localization files

	* Makefile: automagic recompilation on file changes, new targets
	for API documentation generation and localization

2005-03-11  Damien Pollet  <damien.pollet@ac-dijon.fr>

	* agentmanager/status.py: french translation

	* agentmanager/web_resources.py (AgentResource.render_GET):
	removed no longer relevant code

	* agentmanager/zephirservice.py
	(UpdaterService.wakeup_for_upload): partial fixes for tar errors
	(UpdaterService._try_chown): rename for code consistency

	* agentmanager/templates/AgentPageTmpl.tmpl: french translation

	* configs/uptime.agent: realistic configuration & french
	translation

2005-03-10  Damien Pollet  <damien.pollet@ac-dijon.fr>

	* agentmanager/zephirservice.py (UpdaterService.try_chown): error
	message if chown of data archive to user uucp fails

2005-03-07  Damien Pollet  <damien.pollet@ac-dijon.fr>

	* agents/tcpservices.py: marmalade doesn't like booleans in agent
	data

2005-03-04  Damien Pollet  <damien.pollet@ac-dijon.fr>

	* configs/tcpservices.agent (tcp_services): added more services

	* agents/tcpservices.py, agents/ifconfig.py: refactored agents to
	use TableData

	* agentmanager/templates/TableDataTmpl.tmpl: presentation template
	for agentmanager.data.TableData

	* agentmanager/data.py (TableData): new data container for lists
	of dicts to be presented in tables

2005-03-02  Damien Pollet  <damien.pollet@ac-dijon.fr>

	* configs/tcpservices.agent, agents/tcpservices.py: new agent
	using tcpcheck for monitoring services

2005-03-01  Damien Pollet  <damien.pollet@ac-dijon.fr>

	* agentmanager/zephirservice.py (UpdaterService.__init__): logging
	bad locale setting (RRD is broken with UTF locales and setting the
	locale from python doesn't work)
	(UpdaterService.update_static_data): fixed initial upload of
	site.cfg

	* agentmanager/rrd.py (Graph.__init__): bugfix

	* agentmanager/agentdatamanager.py (AgentManager.load_structure):
	better behaviour when site.cfg not found

	* agentmanager/agent.py (Agent.init_data): fix for status RRD
	initialization

2005-02-25  Damien Pollet  <damien.pollet@ac-dijon.fr>

	* agentmanager/templates/PageTmpl.tmpl: factorised page
	header/footer

	* agentmanager/rrd.py (rrd_date_from_datetime): function extracted
	from Database.update
	(Database.graph_all, Graph.graph): additional arguments for
	graphing-time options (such as VRULES)

	* agentmanager/agent.py (Agent.save_measure, Agent.write_data):
	using VRULES to mark days instead of a datasource

2005-02-24  Damien Pollet  <damien.pollet@ac-dijon.fr>

	* agents/sysinfo.py (Uptime): new agent reading from /proc/uptime

	* agentmanager/templates/AgentPageTmpl.tmpl: RRD history of status
	levels

	* agentmanager/rrd.py (Datasource.__str__): correct handling of
	None (min|max)_bound

	* agentmanager/agent.py (Agent): RRD history of status levels

2005-02-21  Damien Pollet  <damien.pollet@ac-dijon.fr>

	* misc files (see CVS commit): replaced last_status with
	max_status; max_status is reset after each upload

2005-02-17  Damien Pollet  <damien.pollet@ac-dijon.fr>

	* agentmanager/zephirservice.py: copy site.cfg at setup, then only
	copy it if it changed
	(UpdaterService.wakeup_for_upload): give read access to the tarball

	* agentmanager/zephir_tap.py: new --static-base option to use when
	static data (stylesheets etc) is served by another service

	* agentmanager/clientmanager.py: agent managers were recreated,
	defeating the agent data cache

2005-02-16  bboiget  <bboiget@dev1.eole.lan>

	* agentdatamanager.py, web_resources.py:
	ajout de fonctions get_status pour zephir dans agentdatamanager

2005-02-16  Damien Pollet  <damien.pollet@ac-dijon.fr>

	* agent.py, status.py, zephirservice.py: xmlrpc to reset max_status

	* agent.py, agentdatamanager.py, data.py, status.py, templates/AgentPageTmpl.tmpl, zephirservice.py:
	keep date of last measure, max status enhanced robustness

2005-02-16  Damien Pollet  <damien.pollet@ac-dijon.fr>

	* agentmanager/templates/AgentPageTmpl.tmpl: displaying max_status

	* agentmanager/zephirservice.py (UpdaterService.schedule_all): do
	an initial measure when loading each agent
	(UpdaterService.xmlrpc_status_for_agents): fixed out-of date code
	(UpdaterService.xmlrpc_reset_max_status_for_agents): new method

	* agentmanager/status.py: comparison of statuses by level
	(Status.to_dict): for xmlrpc methods

	* agentmanager/agentdatamanager.py (AgentManager.load_structure):
	assertion would fail when SITE is defined but contains an empty
	list
	(AgentDataManager): caching agent data

	* agentmanager/agent.py: recording the highest status
	(AgentData.from_archive): catch loading errors
	(Agent.scheduled_measure): catch measuring errors
	(LoadErrorAgent): Stub agent loaded to indicate errors in the
	interface

2005-02-15  Damien Pollet  <damien.pollet@ac-dijon.fr>

	* agentmanager/status.py: comparisons between Status subclasses

2005-02-14  Damien Pollet  <damien.pollet@ac-dijon.fr>

	* agents/ifconfig.py: alternate row colors

	* agentmanager/zephirservice.py
	(UpdaterService.xmlrpc_list_agents): bugfix
	(UpdaterService.xmlrpc_status_for_agents): will return status of
	all agents if empty list given
	(PublisherService.__init__): ClientManager now created here and
	passed to the resource; avilable for consultation by Zephir
	(ZephirService): subservices accessible from ZephirService

	* agentmanager/templates/AgentPageTmpl.tmpl: fix for empty
	descriptions

	* agentmanager/agent.py (TableAgent): limit to measure table size
	(Agent.__init__): default description using docstring in agent
	class

2005-02-11  Damien Pollet  <damien.pollet@ac-dijon.fr>

	* agentmanager/clientmanager.py (ClientManager.keys): live agents
	were listed twice

2005-02-10  Damien Pollet  <damien.pollet@ac-dijon.fr>

	* agentmanager/web_resources.py: updated for agent managers

	* agentmanager/agentdatamanager.py: implemented manager for live
	agents

2005-02-04  Damien Pollet  <damien.pollet@ac-dijon.fr>

	* agentmanager/zephirservice.py (ZephirService): changed factory
	methods to instance methods
	Static files are now served by the parent service.
	Can pass an existing root resource to reuse

2005-02-02  Damien Pollet  <damien.pollet@ac-dijon.fr>

	* configs/zephir.tac: sample .tac file

	* agentmanager/agent.py (Agent.init_data): new method to init
	stuff after the framework sets the archive_dir

	* agentmanager/agentdatamanager.py: subclass of dict getting items
	from serialized agents on disk

	* agentmanager/config.py: configuration is no more a singleton but
	an instance passed around (mktap has problems with global state)

	* agentmanager/data.py (AgentDataChunk): renamed to avoid conflict
	with agentmanager.agent.AgentData

	* agentmanager/status.py: subclassing dict was a problem for
	marmalade

	* agentmanager/util.py: some more utility functions

	* agentmanager/web_resources.py (ZephirServerResource): new home
	web resource, lists Zephir clients.
	Revamped __init__() methods to pass config around.
	Discovers and loads agents from disk to be independant from the
	updating code.

	* agentmanager/zephirservice.py: separated services for updating
	and publishing agents (replaces Manager.py)

	* agentmanager/templates/AgentPageTmpl.tmpl: reflect new URL
	structure in navigation bar

	* agentmanager/templates/{Agent,ManagerPage}Tmpl.tmpl: use
	AgentDataManager

	* agentmanager/templates/MeasuresDataTmpl.tmpl: count entries in
	table footer

	* agents/ifconfig.py: set locale to fix errors when parsing
	command output

2005-01-27  Damien Pollet  <damien.pollet@ac-dijon.fr>

	* agents/ifconfig.py (IPADDRESS_RE): fix typo

2005-01-14  Damien Pollet  <damien.pollet@ac-dijon.fr>

	* doc/writing-agents.html: testing pycode directive

	* doc/pycode.css: colors for pycode reST directives

2005-01-11  Damien Pollet  <damien.pollet@ac-dijon.fr>

	* agentmanager/templates/{Section,AgentTmpl}.tmpl: fix for agents
	listed in site.cfg but unknown to the manager

	* doc/writing-agents.rst: measure archiving and data generation,
	references to RRD docs

2005-01-10  Damien Pollet  <damien.pollet@ac-dijon.fr>

	* agents/rrrd.py, configs/rrrd.agent: example of agent with RRD
	graphs

	* agents/ifconfig.py, configs/ifconfig.agent: example of agent
	returning HTML data, and using deferreds in the measure() method

	* agentmanager/agent.py (Agent.scheduled_measure): handling
	deferred measures

2005-01-06  Damien Pollet  <damien.pollet@ac-dijon.fr>

	* agentmanager/agent.py (Agent.check_status): warning when
	redefinition omitted, removed old status() methods in agents

	* agentmanager/web_resources.py: display host reference in web pages

	* doc/writing-agents.rst: precisions about agent definition

2005-01-05  Damien Pollet  <damien.pollet@ac-dijon.fr>

	* agentmanager/agent.py (Agent.ensure_data_uptodate): now updates
	last_status

	* agentmanager/templates/AgentPageTmpl.tmpl: added side bar

	* agentmanager/templates/ManagerPageTmpl.tmpl: added navigation
	div

	* agents/dummy.py: next_status can be a list of possible values,
	which will be picked randomly

	* static/stylesheet.css: presentation changes

2004-12-23  Damien Pollet  <damien.pollet@ac-dijon.fr>

	* agentmanager/twistedmanager.py (setup_config): expand ~ and
	shell variables in arguments

	* agentmanager/templates/MeasuresDataTmpl.tmpl: even/odd table rows

	* agentmanager/manager.py (Manager.load_web_server): automatic
	section added to site structure for agents not classified in
	site.cfg, access to static web content

2004-12-22  Damien Pollet  <damien.pollet@ac-dijon.fr>

	* configs/site.cfg, agentmanager/templates/SectionTmpl.tmpl: new
	structure format keeping order (association list instead of
	dictionary)

	* agentmanager/data.py: storing dates as strings thanks to marmalade

	* agentmanager/templates/MeasuresDataTmpl.tmpl: fixed table display

	* agentmanager/rrd.py (Database.__init__): removed arguments with
	default values, which weren't used anyway. NB python instanciates
	default values only once :(

2004-12-21  Damien Pollet  <damien.pollet@ac-dijon.fr>

	* doc/writing-agents.rst: return format for Agent.measure()

	* agentmanager/rrd.py (Database.update): exception handling

	* agentmanager/agent.py: fix for new RRD wrapper, measuring and
	archiving of agents; replaced old RRD wrapper with new one
	

2004-12-17  Damien Pollet  <damien.pollet@ac-dijon.fr>

	* agentmanager/rrd.py: rewrite of RRDtool wrapper

2004-12-14  Damien Pollet  <damien.pollet@ac-dijon.fr>

	* agentmanager/{agent,manager}.py: changed status() to an attribute

	* README: added doc/ subdir

	* doc/writing-agents.rst: documentation for users and admins

2004-12-10  Damien Pollet  <damien.pollet@ac-dijon.fr>

	* ./*: CVS import
	
# Local Variables:
# mode: change-log
# coding: iso-8859-1
# comment-start: "# "
# End:
	
