| 51 | A !RequestAccess message has the following format: |
| 52 | |
| 53 | {{{ |
| 54 | request = { |
| 55 | # list of strings of the form user:name project:name (these will be replaced by ABAC credentials in fedd 3.1) |
| 56 | 'credential': [ 'user:u', 'project:p' ] |
| 57 | # Requested services |
| 58 | 'service': [ |
| 59 | # Each of these has an identifier, service name, server (optional), and a list of attributes as service parameters |
| 60 | { 'id': '0001', 'name': 'project_export', 'visibility': 'export', 'fedAttr: [ { 'attribute': 'att_name', 'value': 'val1'} ] } |
| 61 | ], |
| 62 | } |
| 63 | }}} |
| 64 | |
| 65 | The credentials are opaquely and correctly handled by the [source:fedd/trunk/federation/access.py access controller base class]. Service requests encode the various [FeddAbout#ExperimentServices services] that the facility will be asked for in this allocation. |
| 66 | |
| 67 | There are also some scheduling fields that are for future expansion. The DETER experiment controller never includes them. |
| 68 | |
| 69 | The response message has the form: |
| 70 | |
| 71 | {{{ |
| 72 | response = { |
| 73 | 'allocID': { 'fedid': fedidobj }, |
| 74 | 'service': [ |
| 75 | # The meta service 'export_project' in the request has become 2 actual service descriptions with the same ID as the request |
| 76 | { 'id': '0001', 'name': 'SMB', 'visibility': 'export', 'fedAttr: [ { 'attribute': 'att_name', 'value': 'val1'} ] } ] }, |
| 77 | { 'id': '0001', 'name': 'userconf', 'visibility': 'export', 'fedAttr: [ { 'attribute': 'att_name', 'value': 'val1'} ] }, |
| 78 | ] |
| 79 | } |
| 80 | }}} |
| 81 | |
| 82 | The response includes the fedid of the allocation and the actual services exported. Note that in the example the single '''export_project''' request has become 2 specific service exports. See the [sources:fedd/trunk/federation/emulab_access.py emulab plug-in] for an example of how services are decoded and managed. |
| 83 | |