GT 4.0 pyGridWare Contribution: System Administrator's Guide

1. 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.

[Important]Important

This information is in addition to the basic Globus Toolkit prerequisite, overview, installation, security configuration instructions in the GT 4.0 System Administrator's Guide. Read through this guide before continuing!

2. Dependencies

Required (Use newest version if possible):

Optional: WS-Security: XML Digital Signatures, Secure Conversation, etc.

3. Building and installing

Untar the tarball or grab the CVS source, run pyGridWare distutils setup script, optionally regenerate all bindings.

  1. Do one of the following:
  2. Untar tarball:

    %tar zxf pyGridWare-1.04b.tar.gz

  3. Grab the CVS source:

    %cvs -d :pserver:[email protected]:/home/portnoy/u5/repository co login
    %cvs -d :pserver:[email protected]:/home/portnoy/u5/repository co pyGridWare

  4. Change directory

    %cd pyGridWare

  5. 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 GT 3.2 can be found here.

To build pyGlobus:

  1. Set the environment variables GLOBUS_LOCATION and GPT_LOCATION to the location of the globus installation.
  2. Run the pyGlobus distutils setup script:

    %python setup.py install

4. Configuring

There are two configuration files:

4.1. 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
 

4.2. pyGridWare/bin/config.txt

Configuration parameters for logging, security, container location, and service paths. This file needs to be in the directory from where you are executing the client and/or server.

5. Deploying

Run the container script

  1. Change to bin directory

    %cd bin

  2. Edit the file server-config.tac by adding or removing 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')) 
  3. Run the start container script:

    %./start-container.sh

6. Testing

To test your installation, run:

%python unittest

7. Security considerations

Individual services can be configured with or without message security, but transport security is a characteristic of the entire container (either using ssl or plain tcp). Authentication and authorization of clients is performed using a callback mechanism.

7.1. Transport Security

Simply edit the file 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 = 

8. Troubleshooting

  1. Make sure all dependencies are met.
  2. Building and installing problems:
  3. python-2.3 problems We have 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.