GT 3.9.5 pyGridWare Contribution: 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.

This information is in addition to the basic installation instructions in the GT 3.9.5 System Administrator's Guide.

Dependencies

Required (Use newest version if possible):

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.
  1. Do one of the following:
    1. Untar tarball:
      %tar zxf pyGridWare-1.04b.tar.gz
    2. Grab CVS source:
      %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
  2. Change directory
    %cd pyGridWare
  3. 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 variablesGLOBUS_LOCATION and GPT_LOCATION to the installation of the globus installation.

  2. 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 from where you are executing the client and/or server.

Deploying

Run container script

  1. Change to bin directory
    %cd bin
  2. Edit the file server-config.tac by adding or removing resources:
  3.    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')) 
  4. Run start container script:
    %./start-container.sh

Testing

To test your installation, run:

%python unittest

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 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 = 

Troubleshooting

  1. Make sure all dependencies are met.

  2. Building and installing problems:
    1. 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.