wiki:GIR2.1_GCFTools

Version 1 (modified by lnevers@bbn.com, 8 years ago) (diff)

--

GCF Sample GENI Aggregate Manager

The GCF software has been evaluated, but it is not part of the original list of candidates. The following versions of GCF tools have been tested: 20100517, 20100526, 20100615.

The GCF version 20100615 was posted to the click-server as gcf-20100615.tar.gz at the location http://www.gpolab.bbn.com/local-sw/. Details captured in GST 650 .

GCF Evaluation findings

  • Could not run on older Linux system such as Fedora 8 and CentOS 4.5.
  • There is a dependency for openssl version 0.9.8k. Tried GCF on several ubuntu versions that include version 0.9.8g:
  • Ubuntu 8.10 (intrepid) with python 2.6 installed from source
  • Ubuntu 9.04 (jaunty) with python 2.6
  • Ubuntu 9.10 (karmic) with python 2.6.4rc2

Could not run without installing Python-OpenSSL on these earlier versions of ubuntu.

Also, tried Ubuntu 10.04 (lucid) which includes python 2.6.5 and openssl 0.9.8k and did not need to install Python-OpenSSL

All installation requirements are captured in README.txt. Runtime instructions are also provided in the README.txt

GCF How-to

README.txt Instructions allow for successful installation and running of the tools, and includes the following details:

Description
===========

This software implements a sample GENI Aggregate Manager. It also
includes a sample GENI Clearinghouse and command line client. This
software is intended to demonstrate the GENI Aggregate Manager API.


Software Dependencies
=====================

The GCF package is intended to be run on a modern Linux distribution
(circa 2010 or 2009). Python 2.6 is required. This software is not
Python 3 compatible.

This software requires a number of readily available software
packages. Most modern Linux distributions should have these packages
available via their native package management suite (eg. yum or apt).

1. Python M2Crypto package

  The M2Crypto package provides utilities for handling X.509
  certificates and SSL connections. M2Crypto is required by
  certificate class in sfa/trust. M2Crypto should be readily available
  on most Linux distributions.

  More information is available at:
    http://chandlerproject.org/bin/view/Projects/MeTooCrypto

2. Python dateutil package

  The dateutil package provides date parsing routines to Python. It
  should be readily available on most Linux distributions.

  More information is available at:
    http://labix.org/python-dateutil

3. Python OpenSSL package

  The OpenSSL package provides a python API to the OpenSSL
  package. There is an implicity dependency on OpenSSL, but that
  should be handled by the Linux package manager (yum, apt, etc.)

  More information is available at:
    https://launchpad.net/pyopenssl

4. xmlsec1 package

  The XML Security Library provides implementations of XML Digital
  Signature (RFC 3275) and W3C XML Encryption. The program xmlsec1
  from this package is used to sign credentials.  

  More information is available at:
    http://www.aleksey.com/xmlsec/
    http://www.w3.org/TR/xmlenc-core/
    http://www.ietf.org/rfc/rfc3275.txt


Included Software
=================

This package includes software from PlanetLab. All of the PlanetLab
software is in the src/sfa directory. More information, including the
license, can be found in src/sfa/README.txt.


Instructions
============

1. Initialize the certificate authority and generate keys and certificates:

 $ src/init-ca.py

 This creates a certificate authority key and certificate and then
 creates keys and certificates for a clearinghouse (ch), an aggregate
 manager (am), and a researcher (alice).

2. Start the clearinghouse server:

 $ src/gch.py -r ca-cert.pem -c ca-cert.pem -k ca-key.pem

3. Start the aggregate manager server:

 $ src/gam.py -r ca-cert.pem -c ca-cert.pem -k ca-key.pem

4. Run the client

 $ src/client.py -c alice-cert.pem -k alice-key.pem \
     --ch https://localhost:8000/ --am https://localhost:8001/

 The output should show some basic API testing, and possibly some
 debug output.