source: trunk/MyProxyWebService/setup.py @ 8128

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

0.2.0 Release

Tidying up documentation ready for release.

  • Property keywords set to Id
  • Property svn:keywords set to "Id"
RevLine 
[6881]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.
[8127]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
[6881]20
21
22setup(
[6950]23    name =              'MyProxyWebService',
[8127]24    version =           '0.2.0',
[6950]25    description =       'MyProxy Web Service',
26    long_description =  '''\
[8127]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.
[6950]31
32The interface is implemented as a WSGI application which fronts a normal
[8127]33MyProxyCA server.  myproxy-logon and myproxy-get-trustroots are expressed as web
[6950]34service calls.  The WSGI application forwards the requests on to the MyProxy
35server over the usual MyProxy protocol.  The web service interface is RESTful
36using GET and POST operations and the logon interface makes uses of HTTP Basic
37Auth to pass username and pass-phrase credentials.  The service is hosted over
38HTTPS.
39
40The unit tests include a test application served using paster.  Client scripts
41are also available which need no specialised installation or applications, only
[8127]42openssl and wget or curl which are typically available on Linux/UNIX based
43systems.
44
45Changes for version 0.2.0
46=========================
47The package hierarchy has been reorganised:
48 * myproxy.server.wsgi: contains middleware to make calls to a MyProxy service
49   using the MyProxyClient package.  It exposes this interface through the
50   environ dict so that other middleware or an app can access and use it.
51 * myproxy.ws: contains functionality specific to the web service
52   interface:
53    - myproxy.ws.client: contains all the functionality for web service
54      clients to the MyProxy web service.  This includes:
55       - shell scripts (.sh suffix) for logon and get trustroots calls.  These
56         are implemented with openssl and curl.  Alternative implementations are
57         also provided which use wget (-wget.sh suffix) instead of curl.  These
58         scripts have also been tested against an independent Short-Lived
59         Credential Service developed for the Contrail EU FP7 project.
60       - myproxy.ws.client.MyProxyWSClient: is a Python client interface to the
61         web service.  The third party package ndg_httpclient is needed for this
62         class but note that overall, it is set as an optional install. 
63    - myproxy.ws.server: contains the server side functionality - a set of WSGI
64      middleware and an application to implement logon and get-trustroot web
65      service calls.
66
67Prerequisites
68=============
69This has been developed and tested for Python 2.6 and 2.7.
70
71Installation
72============
73Installation can be performed using easy_install or pip.  Since this package is
74a wrapper to MyProxy, a MyProxy instance must be deployed that this service can
75call and use.
76
77Configuration
78=============
79Examples are contained in myproxy.ws.client.test and myproxy.server.test.
[8128]80''',
[6881]81    author =            'Philip Kershaw',
82    author_email =      'Philip.Kershaw@stfc.ac.uk',
83    maintainer =        'Philip Kershaw',
84    maintainer_email =  'Philip.Kershaw@stfc.ac.uk',
[6950]85    url =               'http://proj.badc.rl.ac.uk/ndg/wiki/Security/MyProxyWebService',
[6881]86    platforms =         ['POSIX', 'Linux', 'Windows'],
[6938]87    install_requires =  ['PasteDeploy', 
[6951]88                         'PasteScript',
[6938]89                         'WebOb', 
90                         'MyProxyClient'],
[8127]91    extras_require = {'Python_client': 'ndg_httpclient'},
[6881]92    license =           __license__,
93    test_suite =        'myproxy.server.test',
94    packages =          find_packages(),
95    package_data =      {
[6952]96        'myproxy.server.test': [
[6962]97            'README', '*.cfg', '*.ini', '*.crt', '*.key', '*.sh', 'ca/*.0'
[6952]98        ]
[6881]99    },
100    classifiers = [
[8127]101        'Development Status :: 4 - Beta',
[6881]102        'Environment :: Console',
103        'Environment :: Web Environment',
104        'Intended Audience :: End Users/Desktop',
105        'Intended Audience :: Developers',
106        'Intended Audience :: System Administrators',
107        'Intended Audience :: Science/Research',
[6963]108        'License :: OSI Approved :: BSD License',
[6881]109        'Natural Language :: English',
110        'Operating System :: Microsoft :: Windows',
111        'Operating System :: POSIX :: Linux',
112        'Programming Language :: Python',
113        'Topic :: Security',
114        'Topic :: Internet',
115        'Topic :: Scientific/Engineering',
116        'Topic :: System :: Distributed Computing',
117        'Topic :: System :: Systems Administration :: Authentication/Directory',
118        'Topic :: Software Development :: Libraries :: Python Modules'
119    ],
120    zip_safe = False
121)
Note: See TracBrowser for help on using the repository browser.