Changes between Version 1 and Version 2 of GeniTmixSoftware


Ignore:
Timestamp:
03/14/13 13:28:29 (11 years ago)
Author:
Ben Newton
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • GeniTmixSoftware

    v1 v2  
    1 REady for documentation
     1Tmix
     2
     3This is a quick start guide for the GCF software package. Run these steps to get the sample API implementations running.
     4
     5We recommend that users who only want Omni still run these steps to verify that all dependencies are met. Omni shares at least the Python, PyOpenSSL, and dateutil dependencies.
     6
     7Software Dependencies
     8GCF depends on the following packages:
     9
     10Python M2Crypto
     11
     12The M2Crypto package provides utilities for handling X.509 certificates and SSL connections. M2Crypto is required by the certificate class in sfa/trust. M2Crypto should be readily available on most Linux distributions.
     13
     14More information is available at:  http://chandlerproject.org/bin/view/Projects/MeTooCrypto
     15
     16Python dateutil
     17
     18The dateutil package provides date parsing routines to Python. It should be readily available on most Linux distributions.
     19
     20More information is available at:  http://labix.org/python-dateutil
     21
     22Python OpenSSL
     23
     24The OpenSSL package provides a python API to the OpenSSL package. There is an implicit dependency on OpenSSL, but that should be handled by the Linux package manager (yum, apt, etc.)
     25
     26More information is available at:  https://launchpad.net/pyopenssl
     27
     28xmlsec1
     29
     30The XML Security Library provides implementations of XML Digital Signatures (RFC 3275) and W3C XML Encryption. The program xmlsec1 from this package is used to sign credentials.
     31
     32On rpm systems the required packages are:
     33
     34xmlsec1
     35xmlsec1-openssl-devel
     36On debian systems the packages are
     37
     38libxmlsec1
     39xmlsec1
     40libxmlsec1-openssl
     41libxmlsec1-dev
     42More information is available at:
     43
     44 http://www.aleksey.com/xmlsec/
     45 http://www.w3.org/TR/xmlenc-core/
     46 http://www.ietf.org/rfc/rfc3275.txt
     47Platform Installation
     48The GCF package is intended to be run on a modern Unix distribution (circa 2010 or 2009). Python 2.6 or better is required. This software is not Python 3 compatible.
     49
     50This 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).
     51
     52Debian / Ubuntu
     53
     54sudo apt-get install python-m2crypto python-dateutil \
     55                     python-openssl libxmlsec1 xmlsec1 \
     56                     libxmlsec1-openssl libxmlsec1-dev
     57RedHat / Fedora
     58
     59sudo yum install m2crypto python-dateutil pyOpenSSL xmlsec1 \
     60                 xmlsec1-devel xmlsec1-openssl xmlsec1-openssl-devel
     61CentOS
     62
     63Please see InstallCentOs.
     64
     65Mac OS X
     66
     67Using homebrew
     68
     69These instructions use  homebrew.
     70
     71To install:
     72
     73brew install python
     74This will install python at /usr/local/bin but the python that comes with Mac OS is at /usr/bin which takes precedent in the path, so modify your ~/.profile file and add this line:
     75      export PATH=/usr/local/bin:$PATH
     76and then run source ~/.profile
     77
     78Type which python to ensure that you are using the right one.
     79brew install swig
     80pip install M2Crypto
     81brew install libxmlsec1
     82pip install python-dateutil
     83brew install xmlsec1
     84pip install pyopenssl
     85omni-configure.py and omni.py assume that your python is at /usr/bin/python so you have two options:
     86always invoke them using python, e.g. python src/omni-configure.py and python src/omni.py
     87modify the first line in each of the files to be #!/usr/local/bin/python
     88If you want to test if your python can access the libraries you want, just start python in interactive mode and try to import the module (e.g. import M2Crypto).
     89
     90MacPorts Instructions
     91
     92These instructions have not recently been tested. You may need to edit your PATH or PYTHONPATH to ensure all installed modules are properly found.
     93
     94You must have  MacPorts already installed.
     95
     96sudo port install py26-m2crypto py26-dateutil py26-openssl xmlsec
     97cd /opt/local/lib
     98sudo ln -s libxmlsec1-openssl.dylib libxmlsec1-openssl.so
     99In each terminal that you wish to run GCF, run this command first for xmlsec1:
     100
     101export DYLD_LIBRARY_PATH=/opt/local/lib
     102Windows / Cygwin
     103
     104The necessary libraries are likely available but we have no experience running in this environment.
     105
     106Test Run
     107Here is a 4 step test install of this software. Full usage instructions for each step are in README.txt
     108
     109Create gcf_config
     110cd gcf
     111cp gcf_config.sample gcf_config
     112Optional: Edit gcf_config if you want to change settings from the default.
     113
     114Note: for a test run edits are not needed. Do this only if you want to change settings from the defaults.
     115
     116Create certificates and run the GENI Clearinghouse In terminal one:
     117cd gcf
     118python src/gen-certs.py
     119python src/gcf-ch.py
     120Run the GENI Aggregate Manager in a second terminal:
     121python src/gcf-am.py
     122Run the gcf client test script in a third terminal window:
     123python src/gcf-test.py
     124You should see output like this:
     125
     126$ python src/gcf-test.py
     127INFO:gcf-test:CH Server is https://localhost:8000/. Using keyfile /home/jkarlin/dev/gcf/alice-key.pem, certfile /home/jkarlin/dev/gcf/alice-cert.pem
     128INFO:gcf-test:AM Server is https://localhost:8001/. Using keyfile /home/jkarlin/dev/gcf/alice-key.pem, certfile /home/jkarlin/dev/gcf/alice-cert.pem
     129Slice Creation SUCCESS: URN = urn:publicid:IDN+geni:gpo:gcf+slice+1468-659:127.0.0.1%3A8000
     130Testing GetVersion... passed
     131Testing ListResources... passed
     132Testing CreateSliver... passed
     133Testing SliverStatus... passed
     134Testing ListResources... passed
     135Testing RenewSliver... passed. (Result: False)
     136Testing DeleteSliver... passed
     137Testing ListResources... passed
     138Second Slice URN = urn:publicid:IDN+geni:gpo:gcf+slice+065e-c63:127.0.0.1%3A8000
     139Testing ListResources... passed
     140Testing CreateSliver... passed
     141Testing Shutdown... passed
     142Next Steps
     143If you ran in to issues or your output looks different
     144
     145Confirm you followed the install instructions including dependencies
     146See the Omni Troubleshooting page for more detailed help
     147Look at the source for the reference aggregate manager to understand how the API and credentials are used, or to implement your own AM.
     148
     149See README-omni.txt to try the Omni client for talking to multiple aggregate managers and control frameworks.
     150
     151Try federating your test GCF aggregate manager with another clearinghouse. For details, see README.txt
     152
     153Further reading is on the GENI Wiki, as listed in README.txt.