
This README is obsolete.  It is included for historical purposes only.

Mascapone 1.0 Readme


For details on the design of Mascarpone and the motivation for its
creation, please see the design document.

The present release of Mascarpone is the first alpha release, and is
intended to allow for basic server provisioning. The following features
are supported/implemented:

XML driven, auto generated server side GUI system
MySQL based database backend, with full capabilities
Provisioning server supporting new XML over HTTP protocol
Full end to end support of Subscribe/Motify model for C++ clients
C++ and Java interface libraries for the provisioning system
Limited XML driven user side GUI system
C++ tool for database creation and modification
Suite of test/demonstration tools using the C++ interface
Standard HTTP server functionality of PS

The following key features are not implemented in this release

Full functionality of user/endpoint GUIs
Pserver redundancy of any kind
Wizards and barcode readers for GUI
Support for large (>255) char fields in database
Login screens for GUIs
Security (HTTPS for server and clients)
Hierarchy (centrex levels) for user GUI
HTTP server functionality of arbitrary files from client side
Integration with RH 7.1. This is needed for proper MySQL exception handling

Running the server:

The pserver can be running using largely the same arguments as before.
For a full listing, type pserver -help. You must create the directories
/usr/local/vocal/newdata and /usr/local/vocal/www prior to running the
server. <SOME COMMENT ABOUT CONFIG FILE>

Running the test programs:

There are serveral test programs provided with this code. These programs
are menu driven. They can be used to test the various psLib interface
calls.

Running the GUI:

On the command line, set CLASSPATH to include dynamicGui.jar. Then run the 
command java org.vovida.prov.navigation.TopLevel <host> <port> where host 
and port are the location of PServer. Note that PServer must be running 
before the GUI can be started.

You will see a navigation bar that lists all of the major components of 
Mascarpone. Only some of these options are enabled. The Servers option 
allows you to provision servers in your system. The Logging option allows 
you to adjust the level of trace logging from the GUI at runtime. Logging 
may be also configured from the configuration file called logConfig in 
/usr/local/vocal/http.

All servers to be provisioned must be described in an XMLDescription file 
in /usr/local/vocal/newdata/servers. Each file describes one server and has 
the same name as that server. The rules for creating these files are in the 
DTD file type.dtd, which is located in /vocal/provisioning/xml. Note that 
type.dtd may be used by a validating XML editor to assist you in creating 
the XML file.

Other configuration files are located in /usr/local/vocal/newdata/config. 
Hosts.xml contains a list of hostnames which will be offered in a drop-down 
menu in the GUI when provisioning a hostname. NavBar.xml lists the menu 
items that are available on the top-level navigation bar, along with the 
fully-qualified name of the class that must be invoked for each one. 
NavBarLogo.xml describes the dimensions of the customizable navigation bar 
logo and the name of the logo gif file. Until PServer is able to serve 
binary files, the gif file containing the logo itself must be located in 
dynamicGui.jar. To change the gif, put the new file into 
/vovida/provisioning/java/images/logo and change the name attribute of 
NavBarLogo.xml to the new file name. Then rebuild the jarfile by going to 
/vovida/provisioning/java/build and entering ./build.sh jar.

Notes to developers/To-do list:

Access of binary files from pserver (such as GIFs)
Look at all exceptions thrown in database API and make sure correct
Program to generate database tables needs to look at the names of columns
  and stop you if one of them is a reserved word in XML

o  The Table bug problem needs to be resolved...

   problem:
   <vocalcs>
       <row>aaa</row>                <---  "blob" stuff.
       <column> bbb </column>        <---
   </vocalcs>

   possible solution:
   use a list to store the tag names.  use the tag names to
   determine whether if the xml stuff should be treated as
   xml or as a "blob".

o  Configuration

   problem:  still use environment variable for the provisioning port.

   solution:  remove dependiency from tcpclientsocket.cxx and
   tcpserversocket.cxx in the util directory.  Wait for the merge with
   head to make the fix.

   

======================================================================

Copyright 2000-2003, Cisco Systems, Inc.
THE INFORMATION HEREIN IS PROVIDED ON AN "AS IS" BASIS, WITHOUT ANY
WARRANTIES OR REPRESENTATIONS, EXPRESS, IMPLIED OR STATUTORY, INCLUDING
WITHOUT LIMITATION, WARRANTIES OF NONINFRINGEMENT, MERCHANTABILITY OR
FITNESS FOR A PARTICULAR PURPOSE.

$Id: README,v 1.2.2.2 2003/03/28 05:25:52 bko Exp $
