source: trunk/MyProxyWebService/setup.py @ 8148

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg-security/trunk/MyProxyWebService/setup.py
Revision 8148, 5.4 KB checked in by pjkersha, 7 years ago (diff)

0.2.3 Release

Release for Contrail integration

  • Added test e.g. for SSL client Authentication
  • Property keywords set to Id
  • Property svn:keywords set to "Id"
Line 
1#!/usr/bin/env python
2"""Distribution Utilities setup program for MyProxy Server Utilities Package
3
4NERC DataGrid Project
5"""
6__author__ = "P J Kershaw"
7__date__ = "21/05/10"
8__copyright__ = "(C) 2010 Science and Technology Facilities Council"
9__license__ = """BSD - See LICENSE file in top-level directory"""
10__contact__ = "Philip.Kershaw@stfc.ac.uk"
11__revision__ = '$Id: $'
12
13# Bootstrap setuptools if necessary.
14try:
15    from setuptools import setup, find_packages
16except ImportError:
17    from ez_setup import use_setuptools
18    use_setuptools()
19    from setuptools import setup, find_packages
20
21
22setup(
23    name =              'MyProxyWebService',
24    version =           '0.2.3',
25    description =       'MyProxy Web Service',
26    long_description =  '''\
27Provides a simple web service interface to MyProxyCA.  MyProxy is a Service for
28managing and issuing PKI based credentials which is part of the Globus Toolkit. 
29MyProxyWebService provides a HTTP based wrapper interface to MyProxy enabling
30HTTP based clients to connect to a MyProxy server and retrieve credentials.
31
32The interface is implemented as a WSGI application which fronts a normal
33MyProxyCA server.  ``myproxy-logon`` and ``myproxy-get-trustroots`` are
34expressed as web service calls.  The WSGI application forwards the requests on
35to the MyProxy server over the usual MyProxy protocol.  The web service
36interface is RESTful using GET and POST operations and the logon interface makes
37uses of HTTP Basic Auth to pass username and pass-phrase credentials.  The
38service is hosted over HTTPS.
39
40The unit tests include a test application served using paster.  Client scripts
41are also available which need no specialised installation or applications, only
42openssl and wget or curl which are typically available on Linux/UNIX based
43systems.
44
45Changes for version 0.2.3
46=========================
47Added example to tests to show SSL client authentication.
48
49Changes for version 0.2.2
50=========================
51The package hierarchy has been re-organised:
52 * ``myproxy.server.wsgi``: contains middleware to make calls to a MyProxy
53   service using the ``MyProxyClient`` package.  It exposes this interface
54   through the ``environ`` dict so that other middleware or an app can access
55   and use it.
56 * ``myproxy.ws``: contains functionality specific to the web service interface:
57    - ``myproxy.ws.client``: contains all the functionality for web service clients to the MyProxy web service. This includes:
58       + shell scripts (``.sh`` suffix) for logon and get trustroots calls. 
59         These are implemented with openssl and curl.  Alternative
60         implementations are also provided which use wget (``-wget.sh`` suffix)
61         instead of curl.  These scripts have also been tested against an
62         independent Short-Lived Credential Service developed for the Contrail
63         EU FP7 project.
64       + ``myproxy.ws.client.MyProxyWSClient``: is a Python client interface to
65         the web service.  The third party package ``ndg_httpclient`` is needed
66         for this class but note that overall, it is set as an optional install. 
67    - ``myproxy.ws.server``: contains the server side functionality - a set of
68      WSGI middleware and an application to implement logon and get-trustroot
69      web service calls.
70
71Prerequisites
72=============
73This has been developed and tested for Python 2.6 and 2.7.
74
75Installation
76============
77Installation can be performed using easy_install or pip.  Since this package is
78a wrapper to MyProxy, a MyProxy instance must be deployed that this service can
79call and use.
80
81Configuration
82=============
83Examples are contained in ``myproxy.ws.client.test`` and ``myproxy.server.test``.
84''',
85    author =            'Philip Kershaw',
86    author_email =      'Philip.Kershaw@stfc.ac.uk',
87    maintainer =        'Philip Kershaw',
88    maintainer_email =  'Philip.Kershaw@stfc.ac.uk',
89    url =               'http://proj.badc.rl.ac.uk/ndg/wiki/Security/MyProxyWebService',
90    platforms =         ['POSIX', 'Linux', 'Windows'],
91    install_requires =  ['PasteDeploy', 
92                         'PasteScript',
93                         'WebOb', 
94                         'MyProxyClient'],
95    extras_require =    {'Python_client': 'ndg_httpclient'},
96    license =           __license__,
97    test_suite =        'myproxy.ws.test',
98    packages =          find_packages(),
99    package_data =      {
100        'myproxy.ws.test': [
101            'README', '*.cfg', '*.ini', '*.crt', '*.key', '*.pem', 'ca/*.0'
102        ],
103        'myproxy.ws.client': [
104            'README', '*.sh'
105        ],
106        'myproxy.ws.client.test': [
107            'README', '*.cfg'
108        ]
109    },
110    classifiers = [
111        'Development Status :: 4 - Beta',
112        'Environment :: Console',
113        'Environment :: Web Environment',
114        'Intended Audience :: End Users/Desktop',
115        'Intended Audience :: Developers',
116        'Intended Audience :: System Administrators',
117        'Intended Audience :: Science/Research',
118        'License :: OSI Approved :: BSD License',
119        'Natural Language :: English',
120        'Operating System :: Microsoft :: Windows',
121        'Operating System :: POSIX :: Linux',
122        'Programming Language :: Python',
123        'Topic :: Security',
124        'Topic :: Internet',
125        'Topic :: Scientific/Engineering',
126        'Topic :: System :: Distributed Computing',
127        'Topic :: System :: Systems Administration :: Authentication/Directory',
128        'Topic :: Software Development :: Libraries :: Python Modules'
129    ],
130    zip_safe = False
131)
Note: See TracBrowser for help on using the repository browser.