-----------------------------------------------------------------------------
RWS Package for OpenNMS version 1.0.2                   OpenNMS/RANCID Project

Copyright (c) 2009+ Rocco Rionero
Copyright (c) 2009+ The OpenNMS Group, Inc.
All rights reserved everywhere.

This program was developed and is maintained by Rocco RIONERO
("the author") and is subject to dual-copyright according to
the terms set in "The OpenNMS Project Contributor Agreement".

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
USA.

The author can be contacted at the following email address:

	Rocco RIONERO
	rock (at) rionero.com

(please, specify "rws-application-software" in the subject of your message)

-----------------------------------------------------------------------------
OpenNMS Network Management System is Copyright by The OpenNMS Group, Inc.

RANCID application is Copyright by Terrapin Communications, Inc.
=============================================================================


-----------------------------------------------------------------------------
                 UNSUPPORTED BETA-RELEASE SOFTWARE VERSION
-----------------------------------------------------------------------------




PACKAGE HISTORY
===============

RELEASE 1.0.2
------------
rws-cgi.tcl	0.94 build 2009063001
rancid.rws	0.99 build 2011051701 CHANGED
rancid.rws.rc	0.2  build 2009050601
storage.rws	0.4  build 2009072501




RELEASE 0.98
------------
rws-cgi.tcl	0.94 build 2009063001
rancid.rws	0.97 build 2009070901
rancid.rws.rc	0.2  build 2009050601
storage.rws	0.4  build 2009072501	CHANGED



RELEASE 0.97
------------
rws-cgi.tcl	0.94 build 2009063001	CHANGED
rancid.rws	0.97 build 2009070901	CHANGED
rancid.rws.rc	0.2  build 2009050601
storage.rws	0.3  build 2009041803



RELEASE 0.96
------------
rws-cgi.tcl	0.93 build 2009060401
rancid.rws	0.95 build 2009061901	CHANGED
rancid.rws.rc	0.2  build 2009050601
storage.rws	0.3  build 2009041803



RELEASE 0.95
------------
rws-cgi.tcl	0.93 build 2009060401
rancid.rws	0.94 build 2009061701	CHANGED
rancid.rws.rc	0.2  build 2009050601
storage.rws	0.3  build 2009041803



RELEASE 0.94
------------
rws-cgi.tcl	0.93 build 2009060401	CHANGED
rancid.rws	0.93 build 2009060401	CHANGED
rancid.rws.rc	0.2  build 2009050601
storage.rws	0.3  build 2009041803



RELEASE 0.93
------------
rws-cgi.tcl	0.92 build 2009041802
rancid.rws	0.92 build 2009050501	CHANGED
rancid.rws.rc	0.2  build 2009050601	CHANGED
storage.rws	0.3  build 2009041803



RELEASE 0.92
------------
rws-cgi.tcl	0.92 build 2009041802	CHANGED
rancid.rws	0.91 build 2009041802	CHANGED
rancid.rws.rc	unversioned
storage.rws	0.3  build 2009041803	ADDED



RELEASE 0.4
-----------
rws-cgi.tcl	0.9  build 2009033101	ADDED
rancid.rws	0.9  build 2009033101	ADDED
rancid.rws.rc	unversioned		ADDED





FILE HISTORY
============

rancid.rws version 0.99 build 2011051701
-----------------------------------------

- added inventory support for device type cisco-xr (using the cisco default parser);

- added support for device type according with rancid 2.3.6;
  now rancid rws service is able to add the following device types (+ for new device type):
+    agm         "A  Cisco Anomoly Guard Module (aka Riverhead)."
     alteon     "Alteon WebOS switch"
+    arista      "An Arista Networks device."
+    avocent     "An Avocent Cyclades console server."
     baynet     "Bay Networks router"
     cat5       "Cisco catalyst switch series 5000 and 4000 (CatOS-based)"
     cisco      "Cisco router, PIX, or switch (IOS-based)"
+    cisco-nx    "A Cisco Nexus switch/router."
+    cisco-xr    "A Cisco device running IOS-XR."
     css                "Cisco content services switch"
     enterasys  "Enterasys NAS (same as \"riverstone\" device-type)"
     erx                "Juniper E-series edge router"
     extreme    "Extreme switch"
     ezt3       "ADC-Kentrox EZ-T3 mux"
+    f5          "A F5 BigIP switch."
     force10    "Force10 router"
+    fortigate   "A Fortinet firewall."
     foundry    "Foundry router, switch, or router-switch (including switches re-branded as \"HP Procurve\", e.g. HP9304M
     hitachi    "Hitachi routers"
     hp         "HP Procurve switch such as the 2524 or 4108"
     juniper     "Juniper router"
     mrtd       "Device running the (merit) MRTd daemon"
     netscalar  "Netscalar load balancer"
     netscreen   "Netscreen firewall"
+    procket     " A Procket router."
     redback    "Redback router, NAS, etc."
     riverstone  "Riverstone NAS or Cabletron router (starting with version 9.0.3)" 
+    smc         "A SMC switch (some Dell OEMs)."
     tnt         "Lucent TNT"
     zebra      "Device running Zebra routing software"




rws-cgi.tcl version 0.94 build 2009063001
-----------------------------------------

- upgraded the embedded UTILS library to version 0.2 build 2009063001;
  the library was extended by adding the following routines:

	CopyFile
	BackupAndUpdateFile

  which solve the copy/backup/update problems occurring on some systems
  when using symbolic links (e.g. .cloginrc defined in the rancid's
  home directory as a symlink to an actual file located elsewhere);



rws-cgi.tcl version 0.93 build 2009060401
-----------------------------------------

- fixed the wrong double CDATA-encapsulation of the "ExecutionCallStack"
  property's value returned into an unhandled exception response;



rws-cgi.tcl version 0.92 build 2009041802
-----------------------------------------

- modified the XML generator routine into the embedded XTREE library: items
  (i.e. terminal XML-nodes having an actual value and no child-nodes) are
  now of CDATA type; this is inline with W3C suggested guidelines, avoids
  the needs of encoding or escaping item's values with special characters
  and slightly improves client's parsing speed (as a CDATA value is just
  extracted "as is" without further processing by the XML parser).
  No impact is expected on a properly written client (as CDATA nodes should
  be managed correctly by any fully-compliant XML parsing library);

- modified the embedded XTREE library by adding two functions for generating
  a structured representation of a tree in plain-text form;

- added the "responsetype=<type>" global option (i.e. argument to be
  specified into the URI's "query-string") so to give the requesting client
  the ability to specify the preferred response's encoding; the only value
  currently supported for <type> is "text" (any other value will result in
  an XML-encoded response, which is also the default behaviour when the
  "responsetype=" option is omitted);

- introduced a new embedded library (UTILS) with some functions of general
  interest moved from the rancid.rws service module (so to be available to
  any other service module);

- extended the ResponseStatus table by introducing new failure-class codes;

- modified the ResponseStatus of some functions to a more specific failure
  code;

- slightly modified the request-content processing by adding a new error
  condition check;

- added support for POSIX signals (if supported by the hosting Tcl/TclX
  environment): PLEASE NOTE that the rws-cgi.tcl script now requires by
  default a TclX interpreter (the only eXtensions actually used are POSIX
  signals manipulation abilities); the TclX interpreter is expected in
  /usr/local/bin, that is, the first line of the script reads as follows:

	#!/usr/local/bin/tcl

  the TclX extended interpreter "tcl" is usually deployed with the Tcl
  standard interpreter "tclsh": if the hosting system does not have the "tcl"
  executable (meaning that either it does not support TclX or that TclX
  extensions are included in the "tclsh" executable -- as seen on some custom
  implementations), you may revert the first line of the rws-cgi.tcl script
  to the following one (as on the previously released script):

	#!/usr/local/bin/tclsh

  the RWS code will automatically detect the availability of TclX extensions
  (namely, POSIX signals manipulation) and will avoid to use them if not
  supported by the hosting interpreter (reverting to previous behaviour); in
  such a case a "warning" message will be logged;

- modified the node element RWS.ResponseContent.ResourceEntity.Application
  (returned by the /rws resource) by adding the "Info" property, removing
  the HttpLibrary, HttpLibraryVersion, RuntimeLibrary, RuntimeLibraryVersion
  and introducing more general and structured nodes "Library" and "Runtime".
  Informations about all the internal libraries and both standard/extended
  Tcl/TclX runtime interpreters are now returned;

- performed some general cleanup and optimizations;



rws-cgi.tcl version 0.9 build 2009033101
----------------------------------------

- first release of the RWS CGI script;






rancid.rws version 0.97 build 2009070901
----------------------------------------

- added a new routine (CVS_ParseDateTime) and modified accordingly the code
  which processes the "cvs log" response in order to accept unexpected
  date-time strings returned by some CVS implementations (which are not
  conforming to CVS official documentation), making RANCID-API unable to
  correctly access the rancid's CVS repository;

- relocated/improved cleanup code for the deletion of temporary directories
  and files (in some very specific error cases the cleanup might not be
  performed correctly in previous versions of the module);

- added an RWS CORE version check into the startup code of the service
  module: the RANCID-API module (rancid.rws) now can only be loaded by
  a corresponding specific version of the RWS CORE (rws-cgi.tcl).
  rancid.rws 0.97.2009070901 requires rws-cgi.tcl 0.94.2009063001



rancid.rws version 0.96 build 2009063001
----------------------------------------

- replaced the copy/backup/update code which manipulates rancid's file
  with calls to the new routines added into the core RWS CGI script
  (embedded UTILS library) -- see above "rws-cgi.tcl" history section;



rancid.rws version 0.95 build 2009061901
----------------------------------------

- modified the "rancid.conf" processing code to avoid erroneous quotes
  being returned into the value of rancid's configuration variables;



rancid.rws version 0.94 build 2009061701
----------------------------------------

- modified the RCS (CVS) interface code: when accessing the CVS
  repository, the RANCID-API now ignores any committed revision which
  does not correspond to an actual change of the device's configuration
  (i.e. CVS revisions corresponding to the addition/deletion of devices,
  for which there are no configurations downloaded and committed to
  the repository, are not taken in account).
  This is to avoid misleading responses occurring if a device is
  deleted and then added back into the rancid's configuration without
  clearing the corresponding tree of the CVS repository.

  Obvious consequences:

	- the revision 1.1 (corresponding to the first addition of the
	  device and for which there is no committed configuration) is
	  not returned anymore;

	- the "TotalRevisions" property of the "(...)/configs" resource
	  now counts only the number of revisions corresponding to
	  actual device's configuration changes (that is, it is
	  different than the number of total revisions found into the
	  repository);

	- the "HeadRevision" property of the "(...)/configs" resource
	  now returns the higher revision number corresponding to
	  an actual device's configuration change (that is, it might
	  be different than the HEAD revision number as returned by CVS);

	- the list of resources (revision numbers) returned by the
	  "(...)/configs/" resource might include "holes" (i.e.
	  revision numbers will not be strictly in sequence);



rancid.rws version 0.93 build 2009060401
----------------------------------------

- fixed an unhandled exception in Juniper's inventory parser due to
  unexpected values returned by some M-series devices;

- added inventory support for additional sections returned by Juniper
  M-series devices;

- general cleanup into the Juniper's inventory parser routines;



rancid.rws version 0.92 build 2009050501
----------------------------------------

- corrected handling of "enablepassword" property in "clogin" resources;



rancid.rws version 0.91 build 2009041802
----------------------------------------

- moved some functions of general interest from the rancid.rws module into
  the new UTILS library (embedded into the RWS CGI script);

- extended the node element RWS.ResponseContent.ResourceEntity.Application
  (returned by the /rws/rancid resource) by adding the "Info" property;

- modified the ResponseStatus of some functions to a more specific failure
  code;



rancid.rws version 0.9 build 2009033101
---------------------------------------

- first release of the RANCID-API service module;






rancid.rws.rc version 0.2 build 2009050601
------------------------------------------

- corrected / added comments;

- added version numbering;



rancid.rws.rc (unversioned)
------------------------------------------

- first release of RANCID-API configuration file;






storage.rws version 0.4 build 2009072501
----------------------------------------

- added a "Content-disposition" header's field to the HTTP response returned
  upon a GET request for a given file, so to give a filename "hint" to the
  requesting client; mostly useful when the request comes from a browser in
  order to let the file being saved with the proper name;



storage.rws version 0.3 build 2009041803
----------------------------------------

- first release of the STORAGE service module;





