wiki:GIR2.1_TIED

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

--

TIED Evaluation

The Trial Integration Environment in DETER (TIED) software allows users to create experiments across multiple independent resource pools with different access control interfaces. The TIED project completed the software delivery milestone TIED S2.C captured in ticket 512. The milestone is met by the Fedd 3.01 release. Fedd 3.01 delivers ProtoGENI CM v2 and GENIAPI AM v0.9 features and some bug fixes. Fedd 3.01 release does not change the interface delivered by Fedd 3.0 (released 30 Jun 2010). See Release Notes for full feature list.

An overview of the DETER Federation Architecture (DFA) is available that give The Fedd 3.01 release can be found here along with instructions to installing the software. After some initial attempts, a new Plug-in Skeleton approach was suggested and used for this evaluation. The document provides a step-by-step skeleton fedd, which act as a component manager for some non existent resources, like a GENI API skeleton AM and clearinghouse.

Time Frame: This evaluation took place August 30-31, 2010.

TIED Findings

Initial evaluation was run on Ubuntu Karmic, found that in the Ubuntu Karmic repositories one package is too old (m2crypto) and one is too new (ZSI). Karmic uses m2crypto 0.19 there fore the pyasn1 library must be installed. Also during installation found undocumented prere-quisites for swig, libmysqlclient15-dev and setuptools-0.6c9-py2.6.egg that were needed to complete.

TIED How-to

TIED Ubuntu How-to

Using the GIR 2.1 Information for Fedd 3.00 notes to validate package. The instruction recommend using FreeBSD, but since I do not have such a VM submitted a requested and proceeded to start evaluation on Ubuntu Karmic. Software has the following dependencies:

  • swig-2.0.0
  • python version 2.4 or later with the following packages:
    • ZSI version 2.0 or greater
    • m2crypto version 0.18 or greater (2.0 or greater preferred)
    • pyasn1 version 0.0.9 or greater (if m2crypto is 0.18)
    • MySQL-python-1.2.3
  • libmysqlclient15-dev package to allows myql python build.
  1. Downloaded:
  1. Unpacked and installed the Python packages: ZSI, M2Crypto, pyasn1, and MySQLdb : Note: found that python mysql would not install without a mysql_conf, which is available by installing sudo apt-get install "libmysqlclient15-dev"
     $ tar xvzf ZSI-2.0.tar.gz
     $ tar xvzf M2Crypto-0.20.2.tar.gz
     $ tar xvzf pyasn1-0.0.11a.tar.gz
     $ tar xvzf MySQL-python-1.2.3.tar.gz
     $ cd ZSI-2.0
     $ sudo python ./setup.py install
     $ cd ../M2Crypto-0.20.2/
     $ sudo python ./setup.py install
     $ cd ../pyasn1-0.0.11a
     $ sudo python ./setup.py install
     $ cd ../MySQL-python-1.2.3
     $ sudo apt-get install "libmysqlclient15-dev"
     $ vi site.cfg                          # un-commented and modified line 11 "mysql_config = /usr/bin/mysql_config"
     $ python setup.py build
     $ sudo python setup.py install
    
  1. Downloaded the fedd-3.01.tar.gz file and unpack:
     $ tar xvzf fedd-3.01.tar.gz
     $ cd fedd-3.01
     $ sudo python ./setup.py install
    
  1. Create a userconf directory in a user define path. Create a file userconf/skel.conf
     [DEFAULT]
     # Customize this line
     base: /usr/local/fedd
    
     [access]
    
     project_priority: false
     log_level: debug
     access_state: %(base)s/skel_access.state
     accessdb: %(base)s/skel_access
     certdir: %(base)s/certs
     userconfdir: %(base)s/userconf
    
     maxint: 3
    
    [globals]
     cert_file: %(base)s/fedd.pem
     services: 13230
    
     access_type: skel
    

5a. Create a file userconf/skel_access:

 (fedid:b55205ac843c40ce9c9feb3b358bff782ed337fd, testing, guest) -> access, (Local_attr)

5b. Create a certificate representing a fedid

 $ /usr/bin/openssl req -text -newkey rsa:1024 -keyout key.pem -nodes -subj /CN=users.gpolab.bbn.com -x509 -days 3650 -out cert.pem
 $ cat key.pem cert.pem > fedd.pem

Running the Skeleton Plugin

Start the Plug-in:

$ python ./fedd.py --config=/home/lnevers/TIED/userconf/skel.conf  --debug
01 Sep 10 10:57:38 fedd.access [read_state]: No saved state: Can't open /home/lnevers/TIED/userconf/skel_access.state: 
[Errno 2] No such file or directory: '/home/lnevers/TIED/userconf/skel_access.state'

Using a simple skeleton experiment description:

  set ns [new Simulator]
  source tb_compat.tcl

  set a [$ns node]
  tb-set-node-testbed $a "skeleton"

  $ns rtproto Static
  $ns run

Create an experiment:

$ fedd_create.py --cert=/home/lnevers/TIED/userconf/guest.pem --url=http://users.gpolab.bbn.com:23335 --experiment_name=ln_test --file=/home/lnevers/TIED/userconf/skel-only.tcl --map=skeleton:https://users.gpolab.bbn.com:13230
Warning:Neither master/project nor services requested

You can check on the experiment status as follows:

 $ fedd_multistatus.py --cert=/home/lnevers/TIED/userconf/fedd.pem --url=http://users.gpolab.bbn.com:23335

TIED FreeBSD How-to

  1. Using a newly built FreeBSD 8.1 VM, installed Python 2.6.6, py-m2crypto, xsi and apache 2.2 server using ports
  1. with all packages install, moved to fedd-3.01 installation:
       $ tar xvzf fedd-3.01.tar.gz
       $ cd fedd-3.01
       $ sudo python ./setup.py install
    
  1. Create a userconf directory in a user define path. Create a file userconf/skel.conf and modified

the base parameter to point to local install

  [DEFAULT]
  # Customize this line
  base: /home/lnevers/TIED/userconf

  [access]
  project_priority: false
  log_level: debug
  access_state: %(base)s/skel_access.state
  accessdb: %(base)s/skel_access
  certdir: %(base)s/certs
  userconfdir: %(base)s/userconf

  maxint: 3

  [globals]
  cert_file: %(base)s/fedd.pem
  services: 13230

  access_type: skel

  1. Create a file userconf/skel_access:
     (fedid:b55205ac843c40ce9c9feb3b358bff782ed337fd, testing, guest) -> access, (Local_attr)
    
  1. Create a certificate representing a fedid
     $ /usr/bin/openssl req -text -newkey rsa:1024 -keyout key.pem -nodes -subj /CN=users.gpolab.bbn.com -x509 -days 3650 -out cert.pem
     $ cat key.pem cert.pem > fedd.pem
    

Running the Skeleton Plugin

Start the Plug-in:

$ fedd.py --config=/home/lnevers/TIED/userconf/skel.conf  --debug
09 Sep 10 14:18:45 fedd.access [read_state]: No saved state: Can't open /home/lnevers/TIED/userconf/skel_access.state: [Errno 2] No such file or directory: '/home/lnevers/TIED/userconf/skel_access.state'

Using a simple skeleton experiment description:

  set ns [new Simulator]
  source tb_compat.tcl

  set a [$ns node]
  tb-set-node-testbed $a "skeleton"

  $ns rtproto Static
  $ns run

Create an experiment:

$ sudo fedd_create.py --cert=./fedd.pem --url=https://sindle.gpolab.bbn.com:23235 --experiment_name=ln_test --file=./skel-only.tcl --map=skeleton:https://sindle.gpolab.bbn.com:13230 --debug
Warning:Neither master/project nor services requested
Error: Connection Error (8)
Description: Cannot connect to https://sindle.gpolab.bbn.com:23235: Connection refused

Note: The above failed, have outstanding request for information from developer.

You should be able to check on the experiment status as follows:

 $ fedd_multistatus.py --cert=/home/lnevers/TIED/userconf/fedd.pem --url=http://users.gpolab.bbn.com:23335