Changes between Version 1 and Version 2 of Omni
- Timestamp:
- 09/10/10 13:07:12 (13 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Omni
v1 v2 1 The Omni GENI Client - 1 = The Omni GENI Client = 2 2 3 3 Omni is an end-user GENI client that communicates with GENI Aggregate … … 19 19 20 20 Omni works by 21 -The Framework classes know the API for each clearinghouse22 -Aggregate Managers are contacted via the GENI API23 -RSpecs are converted to a very simple common 'omnispec'21 * The Framework classes know the API for each clearinghouse 22 * Aggregate Managers are contacted via the GENI API 23 * RSpecs are converted to a very simple common 'omnispec' 24 24 format. Users (hand) edit these and supply these to createsliver calls. 25 25 26 Omnispecs 27 --------- 26 == Omnispecs == 28 27 Each OmniResource has a name, a description, a type, booleans 29 28 indicating whether the resource is allocated and whether the request 30 29 wants to allocate it, and then hashes for options and misc fields. 31 30 32 Extending Omni 33 -------------- 31 == Extending Omni == 34 32 Extending Omni to support additional types of Aggregate Managers with 35 33 different RSpec formats requires adding a new omnispec/rspec conversion file. … … 38 36 clearinghouse APIs requires adding a new Framework extension class. 39 37 40 Omni workflow 41 ============= 42 - Pick a Clearinghouse you want to use. That is the control framework you 43 will use. 38 == Omni workflow == 39 1. Pick a Clearinghouse you want to use. That is the control framework you 40 will use. 44 41 45 -Be sure the appropriate section of omni config for your framework46 (sfa/gcf/pg) has appropriate settings for contacting that Clearinghouse,47 and user credentials that are valid for that Clearinghouse.42 2. Be sure the appropriate section of omni config for your framework 43 (sfa/gcf/pg) has appropriate settings for contacting that Clearinghouse, 44 and user credentials that are valid for that Clearinghouse. 48 45 49 - Run omni listresources > avail-resources.omnispec 50 a) When you do this, Omni will contact your designated Clearinghouse, using 51 your framework-specific user credentials. 52 b) The clearinghouse will list the Aggregates it knows about. 53 EG for GCF, the am_* entries in gcf_config. For SFA, it will return the 54 contents of /etc/sfa/geni_aggregates.xml. 55 c) Omni will then contact each of the Aggregates that the Clearinghouse told 56 it about, and use the GENI AM API to ask each for its resources. 57 Again, it will use your user credentials. So each Aggregate Manager must 58 trust the signer of your user credentials, in order for you to talk 59 to it. This is why you add the CH certificate to /etc/sfa/trusted_roots or to 60 the -r argument of your GCF gcf-am.py. 61 d) Omni will then convert the proprietary RSPecs into a single 'omnispec'. 46 3. Run omni listresources > avail-resources.omnispec 47 a. When you do this, Omni will contact your designated Clearinghouse, using your framework-specific user credentials. 48 b. The clearinghouse will list the Aggregates it knows about. EG for GCF, the am_* entries in gcf_config. For SFA, it will 49 return the contents of /etc/sfa/geni_aggregates.xml. 50 c. Omni will then contact each of the Aggregates that the Clearinghouse told it about, and use the GENI AM API to ask 51 each for its resources. Again, it will use your user credentials. So each Aggregate Manager must trust the signer of your 52 user credentials, in order for you to talk to it. This is why you add the CH certificate to /etc/sfa/trusted_roots or to the 53 -r argument of your GCF gcf-am.py. 54 d. Omni will then convert the proprietary RSPecs into a single 'omnispec'. 62 55 63 - Save this to a file. You can then edit this file to reserve resources,64 by changing 'allocate: false' to 'allocate: true' wherever the resource 65 is not already allocated('allocated: true').56 4. Save this to a file. You can then edit this file to reserve resources, by changing 57 'allocate: false' to 'allocate: true' wherever the resource is not already allocated 58 ('allocated: true'). 66 59 67 - Create a Slice. 68 Slices are created at your Clearinghouse. Slices are named based on 69 the Clearinghouse authority that signs for them. Using the shorthand 70 (just the name of your slice within PG, for example) allows Omni to 71 ensure your Slice is named correctly. So run: 72 omni.py createslice MyGreatTestSlice 60 5. Create a Slice. 61 Slices are created at your Clearinghouse. Slices are named based on the 62 Clearinghouse authority that signs for them. Using the shorthand (just 63 the name of your slice within PG, for example) allows Omni to ensure 64 your Slice is named correctly. So run: omni.py createslice MyGreatTestSlice 73 65 74 -Allocate your Resources75 Given a slice, and your edited omnispec file, you are ready to allocate76 resources by creating slivers at each of the Aggregate Managers.77 Omni will contact your Clearinghouse again, to get the credentials78 for your slice. It will parse your omnispec file, converting it back79 into framework specific RSpec format as necessary.80 It will then contact each Aggregate Manager in your81 omnispec where you are reserving resources, calling the GENI AM API82 CreateSliver call on each. It will supply your Slice Credentials83 (from the Clearinghouse) plus your own user certificate, and the RSpec.66 6. Allocate your Resources 67 Given a slice, and your edited omnispec file, you are ready to allocate 68 resources by creating slivers at each of the Aggregate Managers. 69 Omni will contact your Clearinghouse again, to get the credentials 70 for your slice. It will parse your omnispec file, converting it back 71 into framework specific RSpec format as necessary. 72 It will then contact each Aggregate Manager in your 73 omnispec where you are reserving resources, calling the GENI AM API 74 CreateSliver call on each. It will supply your Slice Credentials 75 (from the Clearinghouse) plus your own user certificate, and the RSpec. 84 76 85 At this point, you have resources and can do your experiment.77 At this point, you have resources and can do your experiment. 86 78 87 -Renew or Delete88 After a while you may want to Renew your Sliver that is expiring, or89 Delete it. Omni will contact the Clearinghouse, get a list of all90 Aggregates, and invoke RenewSliver or DeleteSliver on each, for91 your slice name.79 7. Renew or Delete 80 After a while you may want to Renew your Sliver that is expiring, or 81 Delete it. Omni will contact the Clearinghouse, get a list of all 82 Aggregates, and invoke RenewSliver or DeleteSliver on each, for 83 your slice name. 92 84 93 Running Omni - 85 == Running Omni == 94 86 95 == The following options are supported:==87 === The following options are supported: === 96 88 97 89 -c FILE -- location of your config file (default ~/.gcf/omni_config) … … 102 94 --debug -- Enable debug output 103 95 104 == The following commands are supported:==96 === The following commands are supported: === 105 97 106 ** createslice 107 -format: omni.py createslice <slice-name>108 -example: omni.py createslice myslice98 ==== createslice ==== 99 * format: omni.py createslice <slice-name> 100 * example: omni.py createslice myslice 109 101 110 102 Creates the slice in your chosen control framework. … … 116 108 omni_config. 117 109 118 119 ** deleteslice 120 - format: omni.py deleteslice <slice-name> 121 - example: omni.py deleteslice myslice 110 ==== deleteslice ==== 111 * format: omni.py deleteslice <slice-name> 112 * example: omni.py deleteslice myslice 122 113 123 114 Deletes the slice in your chosen control framework 124 115 125 116 126 ** listresources 127 -format: omni.py listresources [slice-name] [-a AM-URL] [-n]128 -example: omni.py listresources117 ==== listresources ==== 118 * format: omni.py listresources [slice-name] [-a AM-URL] [-n] 119 * example: omni.py listresources 129 120 omni.py listresources myslice 130 121 omni.py listresources myslice -a http://localhost:12348 … … 145 136 146 137 147 ** createsliver 148 -format: omni.py createsliver <slice-name> [-a AM-URL -n] <spec file>149 -example: omni.py createsliver myslice resources.ospec138 ==== createsliver ==== 139 * format: omni.py createsliver <slice-name> [-a AM-URL -n] <spec file> 140 * example: omni.py createsliver myslice resources.ospec 150 141 omni.py createsliver myslice -a http://localhost:12348 -n resources.rspec 151 142 152 -argument: the spec file should have been created by a call to143 * argument: the spec file should have been created by a call to 153 144 listresources (e.g. omni.py listresources > resources.ospec) 154 145 Then, edit the file and set "allocate": true, for each … … 161 152 native rspec to a single aggregate specified by the "-a" command. 162 153 163 164 ** deletesliver 165 - format: omni.py deletesliver <slice-name> 166 - example: omni.py deletesliver myslice 154 ==== deletesliver ==== 155 * format: omni.py deletesliver <slice-name> 156 * example: omni.py deletesliver myslice 167 157 168 158 This command will free any resources associated with your slice. … … 170 160 171 161 172 ** renewsliver 173 -format: omni.py renewsliver <slice-name> "<time>"174 -example: omni.py renewsliver myslice "12/12/10 4:15pm"175 -example: omni.py renewsliver myslice "12/12/10 16:15"162 ==== renewsliver ==== 163 * format: omni.py renewsliver <slice-name> "<time>" 164 * example: omni.py renewsliver myslice "12/12/10 4:15pm" 165 * example: omni.py renewsliver myslice "12/12/10 16:15" 176 166 177 167 This command will renew your resources at each aggregate up to the … … 181 171 182 172 183 ** sliverstatus 184 -format: omni.py sliverstatus <slice-name>185 -example: omni.py sliverstatus myslice173 ==== sliverstatus ==== 174 * format: omni.py sliverstatus <slice-name> 175 * example: omni.py sliverstatus myslice 186 176 187 177 This command will get information from each aggregate about the … … 189 179 190 180 191 ** shutdown 192 -format: omni.py shutdown <slice-name>193 -example: omni.py shutdown myslice181 ==== shutdown ==== 182 * format: omni.py shutdown <slice-name> 183 * example: omni.py shutdown myslice 194 184 195 185 This command will stop the resources from running, but not delete