omf_sfa 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +24 -0
- data/Gemfile +6 -0
- data/README.md +211 -0
- data/Rakefile +23 -0
- data/bin/parse_rspec.rb +167 -0
- data/etc/omf-sfa/omf-sfa-am.yaml +12 -0
- data/examples/exogeni5nodemanifest.rspec +105 -0
- data/examples/instageni5nodemanifest.rspec +150 -0
- data/lib/omf-sfa/am/am-rest/REST_API.md +301 -0
- data/lib/omf-sfa/am/am-rest/account_handler.rb +145 -0
- data/lib/omf-sfa/am/am-rest/am_rest_server.rb +255 -0
- data/lib/omf-sfa/am/am-rest/api_template.html +48 -0
- data/lib/omf-sfa/am/am-rest/config.ru +110 -0
- data/lib/omf-sfa/am/am-rest/resource_handler.rb +178 -0
- data/lib/omf-sfa/am/am-rest/rest_handler.rb +573 -0
- data/lib/omf-sfa/am/am-rest/session_authenticator.rb +130 -0
- data/lib/omf-sfa/am/am-rpc/abstract_rpc_service.rb +60 -0
- data/lib/omf-sfa/am/am-rpc/am_authorizer.rb +161 -0
- data/lib/omf-sfa/am/am-rpc/am_rpc_api.rb +450 -0
- data/lib/omf-sfa/am/am-rpc/am_rpc_service.rb +402 -0
- data/lib/omf-sfa/am/am_liaison.rb +93 -0
- data/lib/omf-sfa/am/am_manager.rb +859 -0
- data/lib/omf-sfa/am/am_runner.rb +108 -0
- data/lib/omf-sfa/am/am_scheduler.rb +146 -0
- data/lib/omf-sfa/am/am_server.rb +194 -0
- data/lib/omf-sfa/am/config.ru +122 -0
- data/lib/omf-sfa/am/credential.rb +145 -0
- data/lib/omf-sfa/am/default_authorizer.rb +44 -0
- data/lib/omf-sfa/am/privilege_credential.rb +76 -0
- data/lib/omf-sfa/am/signature.rb +37 -0
- data/lib/omf-sfa/am/user_credential.rb +56 -0
- data/lib/omf-sfa/am.rb +7 -0
- data/lib/omf-sfa/model/abstract_prop_description.rb +87 -0
- data/lib/omf-sfa/model/model_class_description.rb +145 -0
- data/lib/omf-sfa/model/model_data_prop_description.rb +28 -0
- data/lib/omf-sfa/model/model_obj_prop_description.rb +49 -0
- data/lib/omf-sfa/model/ontology.rb +169 -0
- data/lib/omf-sfa/resource/README.md +24 -0
- data/lib/omf-sfa/resource/channel.rb +49 -0
- data/lib/omf-sfa/resource/comp_group.rb +41 -0
- data/lib/omf-sfa/resource/component_lease.rb +10 -0
- data/lib/omf-sfa/resource/constants.rb +24 -0
- data/lib/omf-sfa/resource/group_component.rb +35 -0
- data/lib/omf-sfa/resource/group_membership.rb +17 -0
- data/lib/omf-sfa/resource/gurn.rb +187 -0
- data/lib/omf-sfa/resource/interface.rb +78 -0
- data/lib/omf-sfa/resource/ip.rb +48 -0
- data/lib/omf-sfa/resource/link.rb +29 -0
- data/lib/omf-sfa/resource/node.rb +75 -0
- data/lib/omf-sfa/resource/oaccount.rb +94 -0
- data/lib/omf-sfa/resource/ocomponent.rb +134 -0
- data/lib/omf-sfa/resource/ogroup.rb +106 -0
- data/lib/omf-sfa/resource/olease.rb +61 -0
- data/lib/omf-sfa/resource/oproperty.rb +178 -0
- data/lib/omf-sfa/resource/oreference.rb +15 -0
- data/lib/omf-sfa/resource/oresource.rb +491 -0
- data/lib/omf-sfa/resource/project.rb +28 -0
- data/lib/omf-sfa/resource/project_membership.rb +13 -0
- data/lib/omf-sfa/resource/sfa_base.rb +544 -0
- data/lib/omf-sfa/resource/user.rb +25 -0
- data/lib/omf-sfa/resource.rb +20 -0
- data/lib/omf-sfa/util/create_sample_testbed.rb +68 -0
- data/lib/omf-sfa/util/load_from_sfa_xml.rb +65 -0
- data/lib/omf-sfa/version.rb +4 -0
- data/lib/omf_sfa.rb +5 -0
- data/omf_sfa.gemspec +46 -0
- data/owl/README +3 -0
- data/owl/ben-6509.rdf +1377 -0
- data/owl/ben-dell.rdf +586 -0
- data/owl/ben-dtn.rdf +1698 -0
- data/owl/ben.rdf +1335 -0
- data/owl/collections.owl +309 -0
- data/owl/compute.owl +1486 -0
- data/owl/domain.owl +444 -0
- data/owl/dtn.owl +1165 -0
- data/owl/ec2.owl +385 -0
- data/owl/ethernet.owl +466 -0
- data/owl/eucalyptus.owl +431 -0
- data/owl/id-mp-Request1.rdf +247 -0
- data/owl/itu-grid.owl +147 -0
- data/owl/kansei.owl +511 -0
- data/owl/layer.owl +645 -0
- data/owl/location.owl +117 -0
- data/owl/mass.rdf +608 -0
- data/owl/nlr.rdf +901 -0
- data/owl/orca.owl +181 -0
- data/owl/planetlab.owl +124 -0
- data/owl/protogeni.owl +467 -0
- data/owl/request-6509-2.rdf +150 -0
- data/owl/request-6509-3.rdf +158 -0
- data/owl/request-6509.rdf +199 -0
- data/owl/request.owl +222 -0
- data/owl/storage.owl +511 -0
- data/owl/topology.owl +608 -0
- data/schema/rspec-v3/ad-common.xsd +269 -0
- data/schema/rspec-v3/ad-reservation.rnc +12 -0
- data/schema/rspec-v3/ad-reservation.rng +28 -0
- data/schema/rspec-v3/ad-reservation.xsd +13 -0
- data/schema/rspec-v3/ad.rnc +151 -0
- data/schema/rspec-v3/ad.xsd +77 -0
- data/schema/rspec-v3/any-extension-schema.xsd +38 -0
- data/schema/rspec-v3/any-extension.rnc +30 -0
- data/schema/rspec-v3/common.rnc +185 -0
- data/schema/rspec-v3/manifest-common.xsd +244 -0
- data/schema/rspec-v3/manifest-request.xsd +95 -0
- data/schema/rspec-v3/manifest.rnc +62 -0
- data/schema/rspec-v3/manifest.xsd +34 -0
- data/schema/rspec-v3/request-common.xsd +219 -0
- data/schema/rspec-v3/request-reservation.rnc +12 -0
- data/schema/rspec-v3/request-reservation.xsd +13 -0
- data/schema/rspec-v3/request.rnc +118 -0
- data/schema/rspec-v3/request.xsd +94 -0
- data/share/assets/css/default.css +147 -0
- data/share/assets/css/rest_api.css +0 -0
- data/share/assets/network.html +28 -0
- data/share/assets/network.js +82 -0
- data/spec/am/am-rest/common.rb +29 -0
- data/spec/am/am-rest/resource_group_handler_XspecX.rb +97 -0
- data/spec/am/am-rest/resource_handler_spec.rb +204 -0
- data/spec/am/am-rpc/sfa_methods_spec.rb +150 -0
- data/spec/am/am_manager_spec.rb +307 -0
- data/spec/am/am_scheduler_spec.rb +57 -0
- data/spec/am/common.rb +24 -0
- data/spec/resource/common.rb +31 -0
- data/spec/resource/node_spec.rb +171 -0
- data/spec/resource/oaccount_spec.rb +92 -0
- data/spec/resource/ocomponent_spec.rb +225 -0
- data/spec/resource/ogroup_spec.rb +93 -0
- data/spec/resource/oresource_spec.rb +208 -0
- data/spec/resource_and_leases_spec.rb +377 -0
- data/test/OLD_FILES/assertion1.xml +117 -0
- data/test/OLD_FILES/greeter_spec.rb +15 -0
- data/test/OLD_FILES/mongo_test.rb +45 -0
- data/test/OLD_FILES/req-sfa-2.xml +6 -0
- data/test/OLD_FILES/req-sfa-g.xml +8 -0
- data/test/OLD_FILES/req-sfa-g2.xml +10 -0
- data/test/OLD_FILES/req-sfa-g3.xml +14 -0
- data/test/OLD_FILES/req-sfa.xml +6 -0
- data/test/OLD_FILES/req1.xml +22 -0
- data/test/OLD_FILES/req1b.xml +15 -0
- data/test/OLD_FILES/rspec-test.xml +1867 -0
- data/test/OLD_FILES/test.rb +67 -0
- data/test/OLD_FILES/test2.rb +32 -0
- data/test/am/am_manager_rspec_tests.rb +378 -0
- data/test/am/am_manager_tests.rb +518 -0
- data/test/am/am_scheduler_tests.rb +173 -0
- data/test/resource/olease_test.rb +74 -0
- data/test/sfa_requests/request.xml +5 -0
- data/test/sfa_requests/request1.xml +5 -0
- data/test/sfa_requests/request2.xml +5 -0
- data/test/sfa_requests/request3.xml +5 -0
- metadata +601 -0
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<!--
|
|
3
|
+
|
|
4
|
+
GENIPUBLIC-COPYRIGHT
|
|
5
|
+
Copyright (c) 2011 University of Utah and the Flux Group.
|
|
6
|
+
All rights reserved.
|
|
7
|
+
|
|
8
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
9
|
+
a copy of this software and/or hardware specification (the "Work") to
|
|
10
|
+
deal in the Work without restriction, including without limitation the
|
|
11
|
+
rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
12
|
+
and/or sell copies of the Work, and to permit persons to whom the Work
|
|
13
|
+
is furnished to do so, subject to the following conditions:
|
|
14
|
+
|
|
15
|
+
The above copyright notice and this permission notice shall be
|
|
16
|
+
included in all copies or substantial portions of the Work.
|
|
17
|
+
|
|
18
|
+
THE WORK IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
|
19
|
+
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
20
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
21
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
|
22
|
+
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
23
|
+
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
24
|
+
OUT OF OR IN CONNECTION WITH THE WORK OR THE USE OR OTHER DEALINGS
|
|
25
|
+
IN THE WORK.
|
|
26
|
+
-->
|
|
27
|
+
<!--
|
|
28
|
+
|
|
29
|
+
Common definitions for advertisements, requests, etc
|
|
30
|
+
Version 3
|
|
31
|
+
|
|
32
|
+
-->
|
|
33
|
+
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.geni.net/resources/rspec/3" xmlns:rspec="http://www.geni.net/resources/rspec/3">
|
|
34
|
+
<xs:include schemaLocation="any-extension-schema.xsd"/>
|
|
35
|
+
<xs:element name="rspec" type="rspec:RSpecContents"/>
|
|
36
|
+
<xs:complexType name="RSpecContents">
|
|
37
|
+
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
|
38
|
+
<xs:choice>
|
|
39
|
+
<xs:group ref="rspec:AnyExtension"/>
|
|
40
|
+
<xs:element ref="rspec:node"/>
|
|
41
|
+
<xs:element ref="rspec:link"/>
|
|
42
|
+
</xs:choice>
|
|
43
|
+
<xs:choice>
|
|
44
|
+
<xs:element ref="rspec:external_ref"/>
|
|
45
|
+
<xs:element ref="rspec:type_relation"/>
|
|
46
|
+
</xs:choice>
|
|
47
|
+
</xs:choice>
|
|
48
|
+
<xs:attributeGroup ref="rspec:AnyExtension"/>
|
|
49
|
+
<xs:attribute name="generated" type="xs:dateTime"/>
|
|
50
|
+
<xs:attribute name="generated_by"/>
|
|
51
|
+
<xs:attribute name="expires" type="xs:dateTime"/>
|
|
52
|
+
<xs:attribute name="type" use="required">
|
|
53
|
+
<xs:simpleType>
|
|
54
|
+
<xs:restriction base="xs:token">
|
|
55
|
+
<xs:enumeration value="advertisement"/>
|
|
56
|
+
</xs:restriction>
|
|
57
|
+
</xs:simpleType>
|
|
58
|
+
</xs:attribute>
|
|
59
|
+
</xs:complexType>
|
|
60
|
+
<xs:element name="external_ref" type="rspec:ExternalReferenceContents"/>
|
|
61
|
+
<xs:element name="type_relation" type="rspec:TypeRelationContents"/>
|
|
62
|
+
<xs:element name="node" type="rspec:NodeContents"/>
|
|
63
|
+
<xs:element name="link" type="rspec:LinkContents"/>
|
|
64
|
+
<xs:complexType name="NodeContents">
|
|
65
|
+
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
|
66
|
+
<xs:choice>
|
|
67
|
+
<xs:group ref="rspec:AnyExtension"/>
|
|
68
|
+
<xs:element ref="rspec:relation"/>
|
|
69
|
+
<xs:element ref="rspec:location"/>
|
|
70
|
+
<xs:element ref="rspec:services"/>
|
|
71
|
+
<xs:element ref="rspec:interface"/>
|
|
72
|
+
</xs:choice>
|
|
73
|
+
<xs:choice>
|
|
74
|
+
<xs:element ref="rspec:available"/>
|
|
75
|
+
<xs:element ref="rspec:cloud"/>
|
|
76
|
+
<xs:element ref="rspec:hardware_type"/>
|
|
77
|
+
<xs:element name="sliver_type">
|
|
78
|
+
<xs:complexType>
|
|
79
|
+
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
|
80
|
+
<xs:group ref="rspec:SliverTypeContents"/>
|
|
81
|
+
<xs:element name="disk_image">
|
|
82
|
+
<xs:complexType>
|
|
83
|
+
<xs:complexContent>
|
|
84
|
+
<xs:extension base="rspec:DiskImageContents">
|
|
85
|
+
<xs:attribute name="default"/>
|
|
86
|
+
</xs:extension>
|
|
87
|
+
</xs:complexContent>
|
|
88
|
+
</xs:complexType>
|
|
89
|
+
</xs:element>
|
|
90
|
+
</xs:choice>
|
|
91
|
+
<xs:attributeGroup ref="rspec:SliverTypeContents"/>
|
|
92
|
+
</xs:complexType>
|
|
93
|
+
</xs:element>
|
|
94
|
+
</xs:choice>
|
|
95
|
+
</xs:choice>
|
|
96
|
+
<xs:attributeGroup ref="rspec:AnyExtension"/>
|
|
97
|
+
<xs:attribute name="component_id" use="required"/>
|
|
98
|
+
<xs:attribute name="component_manager_id" use="required"/>
|
|
99
|
+
<xs:attribute name="component_name"/>
|
|
100
|
+
<xs:attribute name="exclusive" use="required" type="xs:boolean"/>
|
|
101
|
+
</xs:complexType>
|
|
102
|
+
<xs:element name="relation" type="rspec:RelationContents"/>
|
|
103
|
+
<xs:element name="location" type="rspec:LocationContents"/>
|
|
104
|
+
<xs:element name="services" type="rspec:ServiceContents"/>
|
|
105
|
+
<xs:element name="interface" type="rspec:InterfaceContents"/>
|
|
106
|
+
<xs:element name="available" type="rspec:AvailableContents"/>
|
|
107
|
+
<xs:element name="cloud">
|
|
108
|
+
<xs:complexType>
|
|
109
|
+
<xs:group ref="rspec:AnyExtension"/>
|
|
110
|
+
<xs:attributeGroup ref="rspec:AnyExtension"/>
|
|
111
|
+
</xs:complexType>
|
|
112
|
+
</xs:element>
|
|
113
|
+
<xs:complexType name="ServiceContents">
|
|
114
|
+
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
|
115
|
+
<xs:choice>
|
|
116
|
+
<xs:group ref="rspec:AnyExtension"/>
|
|
117
|
+
<xs:element ref="rspec:login"/>
|
|
118
|
+
</xs:choice>
|
|
119
|
+
<xs:choice>
|
|
120
|
+
<xs:element ref="rspec:install"/>
|
|
121
|
+
<xs:element ref="rspec:execute"/>
|
|
122
|
+
</xs:choice>
|
|
123
|
+
</xs:choice>
|
|
124
|
+
<xs:attributeGroup ref="rspec:AnyExtension"/>
|
|
125
|
+
</xs:complexType>
|
|
126
|
+
<xs:element name="login" type="rspec:LoginServiceContents"/>
|
|
127
|
+
<xs:element name="install" type="rspec:InstallServiceContents"/>
|
|
128
|
+
<xs:element name="execute" type="rspec:ExecuteServiceContents"/>
|
|
129
|
+
<xs:complexType name="LoginServiceContents">
|
|
130
|
+
<xs:group ref="rspec:AnyExtension"/>
|
|
131
|
+
<xs:attributeGroup ref="rspec:AnyExtension"/>
|
|
132
|
+
<xs:attribute name="authentication" use="required"/>
|
|
133
|
+
<xs:attribute name="hostname"/>
|
|
134
|
+
<xs:attribute name="port"/>
|
|
135
|
+
</xs:complexType>
|
|
136
|
+
<xs:complexType name="RelationContents">
|
|
137
|
+
<xs:group ref="rspec:AnyExtension"/>
|
|
138
|
+
<xs:attributeGroup ref="rspec:AnyExtension"/>
|
|
139
|
+
<xs:attribute name="type" use="required"/>
|
|
140
|
+
<xs:attribute name="component_id" use="required"/>
|
|
141
|
+
</xs:complexType>
|
|
142
|
+
<xs:complexType name="LocationContents">
|
|
143
|
+
<xs:group ref="rspec:AnyExtension"/>
|
|
144
|
+
<xs:attributeGroup ref="rspec:AnyExtension"/>
|
|
145
|
+
<xs:attribute name="country" use="required"/>
|
|
146
|
+
<xs:attribute name="longitude"/>
|
|
147
|
+
<xs:attribute name="latitude"/>
|
|
148
|
+
</xs:complexType>
|
|
149
|
+
<xs:complexType name="InterfaceContents">
|
|
150
|
+
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
|
151
|
+
<xs:choice>
|
|
152
|
+
<xs:group ref="rspec:AnyExtension"/>
|
|
153
|
+
<xs:element ref="rspec:ip"/>
|
|
154
|
+
</xs:choice>
|
|
155
|
+
<xs:element ref="rspec:monitoring"/>
|
|
156
|
+
</xs:choice>
|
|
157
|
+
<xs:attributeGroup ref="rspec:AnyExtension"/>
|
|
158
|
+
<xs:attribute name="component_id" use="required"/>
|
|
159
|
+
<xs:attribute name="component_name"/>
|
|
160
|
+
<xs:attribute name="role"/>
|
|
161
|
+
<xs:attribute name="public_ipv4"/>
|
|
162
|
+
</xs:complexType>
|
|
163
|
+
<xs:element name="ip" type="rspec:IpContents"/>
|
|
164
|
+
<xs:element name="monitoring" type="rspec:MonitoringContents"/>
|
|
165
|
+
<xs:complexType name="IpContents">
|
|
166
|
+
<xs:group ref="rspec:AnyExtension"/>
|
|
167
|
+
<xs:attributeGroup ref="rspec:AnyExtension"/>
|
|
168
|
+
<xs:attribute name="address" use="required"/>
|
|
169
|
+
<xs:attribute name="netmask"/>
|
|
170
|
+
<xs:attribute name="type"/>
|
|
171
|
+
</xs:complexType>
|
|
172
|
+
<xs:complexType name="LinkContents">
|
|
173
|
+
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
|
174
|
+
<xs:choice>
|
|
175
|
+
<xs:group ref="rspec:AnyExtension"/>
|
|
176
|
+
<xs:element ref="rspec:property"/>
|
|
177
|
+
<xs:element ref="rspec:link_type"/>
|
|
178
|
+
<xs:element ref="rspec:interface_ref"/>
|
|
179
|
+
</xs:choice>
|
|
180
|
+
<xs:element ref="rspec:component_manager"/>
|
|
181
|
+
</xs:choice>
|
|
182
|
+
<xs:attributeGroup ref="rspec:AnyExtension"/>
|
|
183
|
+
<xs:attribute name="component_id" use="required"/>
|
|
184
|
+
<xs:attribute name="component_name"/>
|
|
185
|
+
</xs:complexType>
|
|
186
|
+
<xs:element name="property" type="rspec:LinkPropertyContents"/>
|
|
187
|
+
<xs:element name="interface_ref" type="rspec:InterfaceRefContents"/>
|
|
188
|
+
<xs:element name="component_manager">
|
|
189
|
+
<xs:complexType>
|
|
190
|
+
<xs:attribute name="name" use="required"/>
|
|
191
|
+
</xs:complexType>
|
|
192
|
+
</xs:element>
|
|
193
|
+
<xs:complexType name="InterfaceRefContents">
|
|
194
|
+
<xs:group ref="rspec:AnyExtension"/>
|
|
195
|
+
<xs:attributeGroup ref="rspec:AnyExtension"/>
|
|
196
|
+
<xs:attribute name="component_id" use="required"/>
|
|
197
|
+
</xs:complexType>
|
|
198
|
+
<!-- The unidirectional network properties of a link. -->
|
|
199
|
+
<xs:complexType name="LinkPropertyContents">
|
|
200
|
+
<xs:group ref="rspec:AnyExtension"/>
|
|
201
|
+
<xs:attributeGroup ref="rspec:AnyExtension"/>
|
|
202
|
+
<xs:attribute name="source_id" use="required"/>
|
|
203
|
+
<xs:attribute name="dest_id" use="required"/>
|
|
204
|
+
<xs:attribute name="capacity"/>
|
|
205
|
+
<xs:attribute name="latency"/>
|
|
206
|
+
<xs:attribute name="packet_loss"/>
|
|
207
|
+
</xs:complexType>
|
|
208
|
+
<xs:element name="link_type">
|
|
209
|
+
<xs:complexType>
|
|
210
|
+
<xs:group ref="rspec:AnyExtension"/>
|
|
211
|
+
<xs:attributeGroup ref="rspec:AnyExtension"/>
|
|
212
|
+
<xs:attribute name="name" use="required"/>
|
|
213
|
+
<xs:attribute name="class"/>
|
|
214
|
+
</xs:complexType>
|
|
215
|
+
</xs:element>
|
|
216
|
+
<xs:element name="link_class">
|
|
217
|
+
<xs:complexType>
|
|
218
|
+
<xs:group ref="rspec:AnyExtension"/>
|
|
219
|
+
<xs:attributeGroup ref="rspec:AnyExtension"/>
|
|
220
|
+
<xs:attribute name="name" use="required"/>
|
|
221
|
+
</xs:complexType>
|
|
222
|
+
</xs:element>
|
|
223
|
+
<xs:group name="SliverType">
|
|
224
|
+
<xs:sequence>
|
|
225
|
+
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
|
226
|
+
<xs:element name="sliver_type">
|
|
227
|
+
<xs:complexType>
|
|
228
|
+
<xs:group ref="rspec:SliverTypeContents"/>
|
|
229
|
+
<xs:attributeGroup ref="rspec:SliverTypeContents"/>
|
|
230
|
+
</xs:complexType>
|
|
231
|
+
</xs:element>
|
|
232
|
+
<xs:element name="disk_image">
|
|
233
|
+
<xs:complexType>
|
|
234
|
+
<xs:complexContent>
|
|
235
|
+
<xs:extension base="rspec:DiskImageContents">
|
|
236
|
+
<xs:attribute name="default"/>
|
|
237
|
+
</xs:extension>
|
|
238
|
+
</xs:complexContent>
|
|
239
|
+
</xs:complexType>
|
|
240
|
+
</xs:element>
|
|
241
|
+
</xs:choice>
|
|
242
|
+
</xs:sequence>
|
|
243
|
+
</xs:group>
|
|
244
|
+
<xs:attributeGroup name="SliverType">
|
|
245
|
+
<xs:attribute name="default"/>
|
|
246
|
+
</xs:attributeGroup>
|
|
247
|
+
<xs:group name="SliverTypeContents">
|
|
248
|
+
<xs:sequence>
|
|
249
|
+
<xs:group ref="rspec:AnyExtension"/>
|
|
250
|
+
</xs:sequence>
|
|
251
|
+
</xs:group>
|
|
252
|
+
<xs:attributeGroup name="SliverTypeContents">
|
|
253
|
+
<xs:attributeGroup ref="rspec:AnyExtension"/>
|
|
254
|
+
<xs:attribute name="name" use="required"/>
|
|
255
|
+
</xs:attributeGroup>
|
|
256
|
+
<xs:complexType name="HardwareTypeContents">
|
|
257
|
+
<xs:group ref="rspec:AnyExtension"/>
|
|
258
|
+
<xs:attributeGroup ref="rspec:AnyExtension"/>
|
|
259
|
+
<xs:attribute name="name" use="required"/>
|
|
260
|
+
</xs:complexType>
|
|
261
|
+
<xs:complexType name="DiskImageContents">
|
|
262
|
+
<xs:group ref="rspec:AnyExtension"/>
|
|
263
|
+
<xs:attributeGroup ref="rspec:AnyExtension"/>
|
|
264
|
+
<xs:attribute name="name" use="required"/>
|
|
265
|
+
<xs:attribute name="os"/>
|
|
266
|
+
<xs:attribute name="version"/>
|
|
267
|
+
<xs:attribute name="description"/>
|
|
268
|
+
</xs:complexType>
|
|
269
|
+
</xs:schema>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
default namespace = "http://nitlab.inf.uth.gr/schema/sfa/rspec/1"
|
|
2
|
+
|
|
3
|
+
start = Lease
|
|
4
|
+
|
|
5
|
+
Lease = element lease {
|
|
6
|
+
(attribute leaseID { xsd:ID } &
|
|
7
|
+
attribute uuid { text } &
|
|
8
|
+
attribute slice_id { text } &
|
|
9
|
+
attribute valid_from { xsd:dateTime } &
|
|
10
|
+
attribute valid_until { xsd:dateTime })
|
|
11
|
+
| (attribute leaseREF { xsd:IDREF })
|
|
12
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<grammar ns="http://nitlab.inf.uth.gr/schema/sfa/rspec/1" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
|
|
3
|
+
<start>
|
|
4
|
+
<ref name="Lease"/>
|
|
5
|
+
</start>
|
|
6
|
+
<define name="Lease">
|
|
7
|
+
<element name="lease">
|
|
8
|
+
<choice>
|
|
9
|
+
<interleave>
|
|
10
|
+
<attribute name="leaseID">
|
|
11
|
+
<data type="ID"/>
|
|
12
|
+
</attribute>
|
|
13
|
+
<attribute name="uuid"/>
|
|
14
|
+
<attribute name="slice_id"/>
|
|
15
|
+
<attribute name="valid_from">
|
|
16
|
+
<data type="dateTime"/>
|
|
17
|
+
</attribute>
|
|
18
|
+
<attribute name="valid_until">
|
|
19
|
+
<data type="dateTime"/>
|
|
20
|
+
</attribute>
|
|
21
|
+
</interleave>
|
|
22
|
+
<attribute name="leaseREF">
|
|
23
|
+
<data type="IDREF"/>
|
|
24
|
+
</attribute>
|
|
25
|
+
</choice>
|
|
26
|
+
</element>
|
|
27
|
+
</define>
|
|
28
|
+
</grammar>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://nitlab.inf.uth.gr/schema/sfa/rspec/1" xmlns:rspec="http://nitlab.inf.uth.gr/schema/sfa/rspec/1">
|
|
3
|
+
<xs:element name="lease">
|
|
4
|
+
<xs:complexType>
|
|
5
|
+
<xs:attribute name="leaseID" type="xs:ID"/>
|
|
6
|
+
<xs:attribute name="uuid"/>
|
|
7
|
+
<xs:attribute name="slice_id"/>
|
|
8
|
+
<xs:attribute name="valid_from" type="xs:dateTime"/>
|
|
9
|
+
<xs:attribute name="valid_until" type="xs:dateTime"/>
|
|
10
|
+
<xs:attribute name="leaseREF" type="xs:IDREF"/>
|
|
11
|
+
</xs:complexType>
|
|
12
|
+
</xs:element>
|
|
13
|
+
</xs:schema>
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
#
|
|
2
|
+
# GENIPUBLIC-COPYRIGHT
|
|
3
|
+
# Copyright (c) 2011 University of Utah and the Flux Group.
|
|
4
|
+
# All rights reserved.
|
|
5
|
+
#
|
|
6
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
|
7
|
+
# a copy of this software and/or hardware specification (the "Work") to
|
|
8
|
+
# deal in the Work without restriction, including without limitation the
|
|
9
|
+
# rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
10
|
+
# and/or sell copies of the Work, and to permit persons to whom the Work
|
|
11
|
+
# is furnished to do so, subject to the following conditions:
|
|
12
|
+
#
|
|
13
|
+
# The above copyright notice and this permission notice shall be
|
|
14
|
+
# included in all copies or substantial portions of the Work.
|
|
15
|
+
#
|
|
16
|
+
# THE WORK IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
|
17
|
+
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
18
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
19
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
|
20
|
+
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
21
|
+
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
22
|
+
# OUT OF OR IN CONNECTION WITH THE WORK OR THE USE OR OTHER DEALINGS
|
|
23
|
+
# IN THE WORK.
|
|
24
|
+
|
|
25
|
+
#
|
|
26
|
+
# Prototype of an advertisement RSpec, to be used by GENI
|
|
27
|
+
# Version 3
|
|
28
|
+
#
|
|
29
|
+
|
|
30
|
+
default namespace = "http://www.geni.net/resources/rspec/3"
|
|
31
|
+
|
|
32
|
+
include "common.rnc"
|
|
33
|
+
|
|
34
|
+
NodeContents &=
|
|
35
|
+
# Component identifiers
|
|
36
|
+
attribute component_id { text } &
|
|
37
|
+
attribute component_manager_id { text } &
|
|
38
|
+
attribute component_name { text }? &
|
|
39
|
+
|
|
40
|
+
# Indicates whether the node is in sharing mode: exclusive is true if
|
|
41
|
+
# the component manager will agree to promise not to share it.
|
|
42
|
+
attribute exclusive { xsd:boolean } &
|
|
43
|
+
|
|
44
|
+
# Indicate whether or not this node is available - the idea is that a
|
|
45
|
+
# full dump of the static physical topology will not include this, but
|
|
46
|
+
# that we can later get updates that include only this attribute (and a
|
|
47
|
+
# URN)
|
|
48
|
+
element available { AvailableContents } &
|
|
49
|
+
|
|
50
|
+
# Marks this node as a stand-in for a large network rather than a
|
|
51
|
+
# single machine. This means that other AMs can make external
|
|
52
|
+
# references to this node without a corresponding external reference
|
|
53
|
+
# in this advertisement. It also means that it makes sense for
|
|
54
|
+
# multiple physical links to connect to the same interface.
|
|
55
|
+
element cloud { AnyExtension } &
|
|
56
|
+
|
|
57
|
+
# Node type. This includes both hardware and sliver type elements:
|
|
58
|
+
HardwareType* &
|
|
59
|
+
element sliver_type {
|
|
60
|
+
SliverTypeContents &
|
|
61
|
+
element disk_image {
|
|
62
|
+
DiskImageContents &
|
|
63
|
+
attribute default { text }?
|
|
64
|
+
}*
|
|
65
|
+
}*
|
|
66
|
+
|
|
67
|
+
SliverType &=
|
|
68
|
+
element disk_image {
|
|
69
|
+
DiskImageContents &
|
|
70
|
+
attribute default { text }?
|
|
71
|
+
}* &
|
|
72
|
+
attribute default { text }?
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
RelationContents &=
|
|
76
|
+
attribute component_id { text }
|
|
77
|
+
|
|
78
|
+
AvailableContents =
|
|
79
|
+
AnyExtension &
|
|
80
|
+
# Indictates current availability
|
|
81
|
+
attribute now { xsd:boolean }
|
|
82
|
+
|
|
83
|
+
LinkContents &=
|
|
84
|
+
# Component identifiers
|
|
85
|
+
attribute component_id { text } &
|
|
86
|
+
element component_manager { attribute name { text } }* &
|
|
87
|
+
attribute component_name { text }?
|
|
88
|
+
|
|
89
|
+
InterfaceContents &=
|
|
90
|
+
attribute component_id { text } &
|
|
91
|
+
attribute component_name { text }? &
|
|
92
|
+
element monitoring { MonitoringContents }? &
|
|
93
|
+
# role should usually be one of:
|
|
94
|
+
# 'control' (interface used to communicate with AM and/or the world)
|
|
95
|
+
# 'experimental' (interface used to communicate within the topology
|
|
96
|
+
# 'mixed' (interface used for both of the above
|
|
97
|
+
attribute role { text }? &
|
|
98
|
+
attribute public_ipv4 { text }?
|
|
99
|
+
|
|
100
|
+
MonitoringContents &=
|
|
101
|
+
AnyExtension &
|
|
102
|
+
# True if user traffic moves through this interface and is available
|
|
103
|
+
# for monitoring.
|
|
104
|
+
attribute user_traffic { xsd:boolean }?
|
|
105
|
+
|
|
106
|
+
InterfaceRefContents &=
|
|
107
|
+
attribute component_id { text }
|
|
108
|
+
|
|
109
|
+
# Reference to components managed by other component managers.
|
|
110
|
+
ExternalReferenceContents &=
|
|
111
|
+
AnyExtension &
|
|
112
|
+
attribute component_id { text } &
|
|
113
|
+
attribute component_manager_id { text }?
|
|
114
|
+
|
|
115
|
+
ServiceContents &=
|
|
116
|
+
# Install services include download and extraction of a file at
|
|
117
|
+
# experiment startup.
|
|
118
|
+
element install { InstallServiceContents }* &
|
|
119
|
+
|
|
120
|
+
# Execute services include initialization scripts
|
|
121
|
+
element execute { ExecuteServiceContents }*
|
|
122
|
+
|
|
123
|
+
InstallServiceContents &=
|
|
124
|
+
AnyExtension &
|
|
125
|
+
# Type(s) of archives supported
|
|
126
|
+
# file_type should usually be one of 'tar.gz' or 'tar.bz2' for tarballs
|
|
127
|
+
attribute file_type { text }
|
|
128
|
+
|
|
129
|
+
ExecuteServiceContents &=
|
|
130
|
+
AnyExtension &
|
|
131
|
+
# Shell environment allowed
|
|
132
|
+
# Should usually be 'sh' to indicate a generic unix shell
|
|
133
|
+
# environment for the script.
|
|
134
|
+
attribute shell { text }
|
|
135
|
+
|
|
136
|
+
TypeRelationContents &=
|
|
137
|
+
AnyExtension &
|
|
138
|
+
element hardware_type { HardwareTypeContents }* &
|
|
139
|
+
element sliver_type { SliverTypeContents }* &
|
|
140
|
+
element disk_image { DiskImageContents }*
|
|
141
|
+
|
|
142
|
+
RSpecContents &=
|
|
143
|
+
attribute type { "advertisement" } &
|
|
144
|
+
element external_ref {
|
|
145
|
+
ExternalReferenceContents
|
|
146
|
+
}* &
|
|
147
|
+
element type_relation {
|
|
148
|
+
TypeRelationContents
|
|
149
|
+
}*
|
|
150
|
+
|
|
151
|
+
start = RSpec
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<!--
|
|
3
|
+
|
|
4
|
+
GENIPUBLIC-COPYRIGHT
|
|
5
|
+
Copyright (c) 2011 University of Utah and the Flux Group.
|
|
6
|
+
All rights reserved.
|
|
7
|
+
|
|
8
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
9
|
+
a copy of this software and/or hardware specification (the "Work") to
|
|
10
|
+
deal in the Work without restriction, including without limitation the
|
|
11
|
+
rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
12
|
+
and/or sell copies of the Work, and to permit persons to whom the Work
|
|
13
|
+
is furnished to do so, subject to the following conditions:
|
|
14
|
+
|
|
15
|
+
The above copyright notice and this permission notice shall be
|
|
16
|
+
included in all copies or substantial portions of the Work.
|
|
17
|
+
|
|
18
|
+
THE WORK IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
|
19
|
+
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
20
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
21
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
|
22
|
+
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
23
|
+
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
24
|
+
OUT OF OR IN CONNECTION WITH THE WORK OR THE USE OR OTHER DEALINGS
|
|
25
|
+
IN THE WORK.
|
|
26
|
+
-->
|
|
27
|
+
<!--
|
|
28
|
+
|
|
29
|
+
Prototype of an advertisement RSpec, to be used by GENI
|
|
30
|
+
Version 3
|
|
31
|
+
|
|
32
|
+
-->
|
|
33
|
+
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.geni.net/resources/rspec/3" xmlns:rspec="http://www.geni.net/resources/rspec/3">
|
|
34
|
+
<xs:include schemaLocation="ad-common.xsd"/>
|
|
35
|
+
<xs:complexType name="AvailableContents">
|
|
36
|
+
<xs:group ref="rspec:AnyExtension"/>
|
|
37
|
+
<xs:attributeGroup ref="rspec:AnyExtension"/>
|
|
38
|
+
<xs:attribute name="now" use="required" type="xs:boolean"/>
|
|
39
|
+
</xs:complexType>
|
|
40
|
+
<xs:complexType name="MonitoringContents">
|
|
41
|
+
<xs:group ref="rspec:AnyExtension"/>
|
|
42
|
+
<xs:attributeGroup ref="rspec:AnyExtension"/>
|
|
43
|
+
<xs:attribute name="user_traffic" type="xs:boolean"/>
|
|
44
|
+
</xs:complexType>
|
|
45
|
+
<!-- Reference to components managed by other component managers. -->
|
|
46
|
+
<xs:complexType name="ExternalReferenceContents">
|
|
47
|
+
<xs:group ref="rspec:AnyExtension"/>
|
|
48
|
+
<xs:attributeGroup ref="rspec:AnyExtension"/>
|
|
49
|
+
<xs:attribute name="component_id" use="required"/>
|
|
50
|
+
<xs:attribute name="component_manager_id"/>
|
|
51
|
+
</xs:complexType>
|
|
52
|
+
<xs:complexType name="InstallServiceContents">
|
|
53
|
+
<xs:group ref="rspec:AnyExtension"/>
|
|
54
|
+
<xs:attributeGroup ref="rspec:AnyExtension"/>
|
|
55
|
+
<xs:attribute name="file_type" use="required"/>
|
|
56
|
+
</xs:complexType>
|
|
57
|
+
<xs:complexType name="ExecuteServiceContents">
|
|
58
|
+
<xs:group ref="rspec:AnyExtension"/>
|
|
59
|
+
<xs:attributeGroup ref="rspec:AnyExtension"/>
|
|
60
|
+
<xs:attribute name="shell" use="required"/>
|
|
61
|
+
</xs:complexType>
|
|
62
|
+
<xs:complexType name="TypeRelationContents">
|
|
63
|
+
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
|
64
|
+
<xs:group ref="rspec:AnyExtension"/>
|
|
65
|
+
<xs:element ref="rspec:hardware_type"/>
|
|
66
|
+
<xs:element name="sliver_type">
|
|
67
|
+
<xs:complexType>
|
|
68
|
+
<xs:group ref="rspec:SliverTypeContents"/>
|
|
69
|
+
<xs:attributeGroup ref="rspec:SliverTypeContents"/>
|
|
70
|
+
</xs:complexType>
|
|
71
|
+
</xs:element>
|
|
72
|
+
<xs:element name="disk_image" type="rspec:DiskImageContents"/>
|
|
73
|
+
</xs:choice>
|
|
74
|
+
<xs:attributeGroup ref="rspec:AnyExtension"/>
|
|
75
|
+
</xs:complexType>
|
|
76
|
+
<xs:element name="hardware_type" type="rspec:HardwareTypeContents"/>
|
|
77
|
+
</xs:schema>
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<!--
|
|
3
|
+
|
|
4
|
+
GENIPUBLIC-COPYRIGHT
|
|
5
|
+
Copyright (c) 2011 University of Utah and the Flux Group.
|
|
6
|
+
All rights reserved.
|
|
7
|
+
|
|
8
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
9
|
+
a copy of this software and/or hardware specification (the "Work") to
|
|
10
|
+
deal in the Work without restriction, including without limitation the
|
|
11
|
+
rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
12
|
+
and/or sell copies of the Work, and to permit persons to whom the Work
|
|
13
|
+
is furnished to do so, subject to the following conditions:
|
|
14
|
+
|
|
15
|
+
The above copyright notice and this permission notice shall be
|
|
16
|
+
included in all copies or substantial portions of the Work.
|
|
17
|
+
|
|
18
|
+
THE WORK IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
|
19
|
+
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
20
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
21
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
|
22
|
+
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
23
|
+
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
24
|
+
OUT OF OR IN CONNECTION WITH THE WORK OR THE USE OR OTHER DEALINGS
|
|
25
|
+
IN THE WORK.
|
|
26
|
+
-->
|
|
27
|
+
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.geni.net/resources/rspec/3" >
|
|
28
|
+
<xs:group name="AnyExtension">
|
|
29
|
+
<xs:sequence>
|
|
30
|
+
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
|
31
|
+
<xs:any namespace="##other" processContents="lax"/>
|
|
32
|
+
</xs:choice>
|
|
33
|
+
</xs:sequence>
|
|
34
|
+
</xs:group>
|
|
35
|
+
<xs:attributeGroup name="AnyExtension">
|
|
36
|
+
<xs:anyAttribute namespace="##other" processContents="lax"/>
|
|
37
|
+
</xs:attributeGroup>
|
|
38
|
+
</xs:schema>
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
#
|
|
2
|
+
# GENIPUBLIC-COPYRIGHT
|
|
3
|
+
# Copyright (c) 2011 University of Utah and the Flux Group.
|
|
4
|
+
# All rights reserved.
|
|
5
|
+
#
|
|
6
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
|
7
|
+
# a copy of this software and/or hardware specification (the "Work") to
|
|
8
|
+
# deal in the Work without restriction, including without limitation the
|
|
9
|
+
# rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
10
|
+
# and/or sell copies of the Work, and to permit persons to whom the Work
|
|
11
|
+
# is furnished to do so, subject to the following conditions:
|
|
12
|
+
#
|
|
13
|
+
# The above copyright notice and this permission notice shall be
|
|
14
|
+
# included in all copies or substantial portions of the Work.
|
|
15
|
+
#
|
|
16
|
+
# THE WORK IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
|
17
|
+
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
18
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
19
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
|
20
|
+
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
21
|
+
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
22
|
+
# OUT OF OR IN CONNECTION WITH THE WORK OR THE USE OR OTHER DEALINGS
|
|
23
|
+
# IN THE WORK.
|
|
24
|
+
|
|
25
|
+
default namespace rs = "http://www.geni.net/resources/rspec/3"
|
|
26
|
+
|
|
27
|
+
AnyExtension =
|
|
28
|
+
attribute * - rs:* { text }* &
|
|
29
|
+
element * - rs:* { text }* &
|
|
30
|
+
element * - rs:* { AnyExtension }*
|