pyGridWare : System Administrator's Guide
Introduction
This guide contains advanced configuration information for system administrators
working with pyGridWare, the python WS-Core. It provides references to information on procedures
typically performed by system administrators, including installation, configuring,
deploying, and testing the installation.
Dependencies
Optional: WS-Security: XML Digital Signatures, Secure Conversation, etc.
- pyGlobus
Python Wrapper for GT2, need security and utility modules.
- Globus 2
Security and utility packages.
Building and installing
Untar tarball or grab cvs source, run pyGridWare distutils setup script, optionally regenerate all bindings.
- Untar tarball or grab cvs source
- %tar zxf pyGridWare-1.04b.tar.gz
- %cvs -d :pserver:anonymous@portnoy.lbl.gov:/home/portnoy/u5/repository co login
%cvs -d :pserver:anonymous@portnoy.lbl.gov:/home/portnoy/u5/repository co pyGridWare
- Change directory
%cd pyGridWare
- Run distutils
%python setup.py --regenerate install
If you want Message Level Security build the gt2 libraries with a threaded flavor.
You can install any gt3 all source installer bundles. Directions for installing
gt3.2 can be found here.
To build pyGlobus:
- Set the environment variables:
GLOBUS_LOCATION and GPT_LOCATION to the installation of the globus installation.
- Run the pyGlobus distutils setup script
%python setup.py install
Configuring
There are two configuration files.
- pyGridWare/config.txt
Read by the distutils setup script when "regenerate" is specified.
This is where all service WSDLs are specified, when setup is run bindings will
be created automatically.
[WSDL]
CounterService = share/schema/core/samples/counter/counter_service.wsdl
- pyGridWare/bin/config.txt
Configuration parameters for logging, security, container location,
and service paths. This file needs to be in the directory you're executing
the client and/or server from.
Deploying
Run container script
- Change to bin directory
%cd bin
- edit server-config.tac: add or remove resources
def GetResource(contextFactory=None):
root = Resource()
root.putChild('wsrf', Resource())
resource = Resource()
root.getStaticEntity('wsrf').putChild('services', resource)
resource.putChild('CounterService', Counter(post='/wsrf/services/CounterService'))
- Run start container script%./start-container.sh
Testing
Security considerations
Individual services can be configured with or without message security,
but transport security is a characteristic of the entire container (either
use ssl or plain tcp). Authentication and authorization of clients is performed
using a callback mechanism.
- Transport Security
Simply edit the "config.txt" where the executable is being run and turn-on ssl.
By default pyGridWare will look in the user's home directory for the
".globus/usercert.pem" and ".globus/userkey.pem" files. To use the grid proxy
generated by "grid-proxy-init" just specify the "/tmp/x509***" as the certfile
and keyfile.
Example pyGridWare/bin/config.txt
[security]
ssl = 1
certfile =
keyfile =
Troubleshooting
- Make sure all dependencies are met.
- building and installing problems
- python-2.3 problems
Recently discovered a problem running the distutils --regenerate that is caused by a bug
in "urllib.basejoin". This is fixed in python2.4. ZSI needs to be patched to fix this
problem in python-2.3.