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.
Files changed (152) hide show
  1. data/.gitignore +24 -0
  2. data/Gemfile +6 -0
  3. data/README.md +211 -0
  4. data/Rakefile +23 -0
  5. data/bin/parse_rspec.rb +167 -0
  6. data/etc/omf-sfa/omf-sfa-am.yaml +12 -0
  7. data/examples/exogeni5nodemanifest.rspec +105 -0
  8. data/examples/instageni5nodemanifest.rspec +150 -0
  9. data/lib/omf-sfa/am/am-rest/REST_API.md +301 -0
  10. data/lib/omf-sfa/am/am-rest/account_handler.rb +145 -0
  11. data/lib/omf-sfa/am/am-rest/am_rest_server.rb +255 -0
  12. data/lib/omf-sfa/am/am-rest/api_template.html +48 -0
  13. data/lib/omf-sfa/am/am-rest/config.ru +110 -0
  14. data/lib/omf-sfa/am/am-rest/resource_handler.rb +178 -0
  15. data/lib/omf-sfa/am/am-rest/rest_handler.rb +573 -0
  16. data/lib/omf-sfa/am/am-rest/session_authenticator.rb +130 -0
  17. data/lib/omf-sfa/am/am-rpc/abstract_rpc_service.rb +60 -0
  18. data/lib/omf-sfa/am/am-rpc/am_authorizer.rb +161 -0
  19. data/lib/omf-sfa/am/am-rpc/am_rpc_api.rb +450 -0
  20. data/lib/omf-sfa/am/am-rpc/am_rpc_service.rb +402 -0
  21. data/lib/omf-sfa/am/am_liaison.rb +93 -0
  22. data/lib/omf-sfa/am/am_manager.rb +859 -0
  23. data/lib/omf-sfa/am/am_runner.rb +108 -0
  24. data/lib/omf-sfa/am/am_scheduler.rb +146 -0
  25. data/lib/omf-sfa/am/am_server.rb +194 -0
  26. data/lib/omf-sfa/am/config.ru +122 -0
  27. data/lib/omf-sfa/am/credential.rb +145 -0
  28. data/lib/omf-sfa/am/default_authorizer.rb +44 -0
  29. data/lib/omf-sfa/am/privilege_credential.rb +76 -0
  30. data/lib/omf-sfa/am/signature.rb +37 -0
  31. data/lib/omf-sfa/am/user_credential.rb +56 -0
  32. data/lib/omf-sfa/am.rb +7 -0
  33. data/lib/omf-sfa/model/abstract_prop_description.rb +87 -0
  34. data/lib/omf-sfa/model/model_class_description.rb +145 -0
  35. data/lib/omf-sfa/model/model_data_prop_description.rb +28 -0
  36. data/lib/omf-sfa/model/model_obj_prop_description.rb +49 -0
  37. data/lib/omf-sfa/model/ontology.rb +169 -0
  38. data/lib/omf-sfa/resource/README.md +24 -0
  39. data/lib/omf-sfa/resource/channel.rb +49 -0
  40. data/lib/omf-sfa/resource/comp_group.rb +41 -0
  41. data/lib/omf-sfa/resource/component_lease.rb +10 -0
  42. data/lib/omf-sfa/resource/constants.rb +24 -0
  43. data/lib/omf-sfa/resource/group_component.rb +35 -0
  44. data/lib/omf-sfa/resource/group_membership.rb +17 -0
  45. data/lib/omf-sfa/resource/gurn.rb +187 -0
  46. data/lib/omf-sfa/resource/interface.rb +78 -0
  47. data/lib/omf-sfa/resource/ip.rb +48 -0
  48. data/lib/omf-sfa/resource/link.rb +29 -0
  49. data/lib/omf-sfa/resource/node.rb +75 -0
  50. data/lib/omf-sfa/resource/oaccount.rb +94 -0
  51. data/lib/omf-sfa/resource/ocomponent.rb +134 -0
  52. data/lib/omf-sfa/resource/ogroup.rb +106 -0
  53. data/lib/omf-sfa/resource/olease.rb +61 -0
  54. data/lib/omf-sfa/resource/oproperty.rb +178 -0
  55. data/lib/omf-sfa/resource/oreference.rb +15 -0
  56. data/lib/omf-sfa/resource/oresource.rb +491 -0
  57. data/lib/omf-sfa/resource/project.rb +28 -0
  58. data/lib/omf-sfa/resource/project_membership.rb +13 -0
  59. data/lib/omf-sfa/resource/sfa_base.rb +544 -0
  60. data/lib/omf-sfa/resource/user.rb +25 -0
  61. data/lib/omf-sfa/resource.rb +20 -0
  62. data/lib/omf-sfa/util/create_sample_testbed.rb +68 -0
  63. data/lib/omf-sfa/util/load_from_sfa_xml.rb +65 -0
  64. data/lib/omf-sfa/version.rb +4 -0
  65. data/lib/omf_sfa.rb +5 -0
  66. data/omf_sfa.gemspec +46 -0
  67. data/owl/README +3 -0
  68. data/owl/ben-6509.rdf +1377 -0
  69. data/owl/ben-dell.rdf +586 -0
  70. data/owl/ben-dtn.rdf +1698 -0
  71. data/owl/ben.rdf +1335 -0
  72. data/owl/collections.owl +309 -0
  73. data/owl/compute.owl +1486 -0
  74. data/owl/domain.owl +444 -0
  75. data/owl/dtn.owl +1165 -0
  76. data/owl/ec2.owl +385 -0
  77. data/owl/ethernet.owl +466 -0
  78. data/owl/eucalyptus.owl +431 -0
  79. data/owl/id-mp-Request1.rdf +247 -0
  80. data/owl/itu-grid.owl +147 -0
  81. data/owl/kansei.owl +511 -0
  82. data/owl/layer.owl +645 -0
  83. data/owl/location.owl +117 -0
  84. data/owl/mass.rdf +608 -0
  85. data/owl/nlr.rdf +901 -0
  86. data/owl/orca.owl +181 -0
  87. data/owl/planetlab.owl +124 -0
  88. data/owl/protogeni.owl +467 -0
  89. data/owl/request-6509-2.rdf +150 -0
  90. data/owl/request-6509-3.rdf +158 -0
  91. data/owl/request-6509.rdf +199 -0
  92. data/owl/request.owl +222 -0
  93. data/owl/storage.owl +511 -0
  94. data/owl/topology.owl +608 -0
  95. data/schema/rspec-v3/ad-common.xsd +269 -0
  96. data/schema/rspec-v3/ad-reservation.rnc +12 -0
  97. data/schema/rspec-v3/ad-reservation.rng +28 -0
  98. data/schema/rspec-v3/ad-reservation.xsd +13 -0
  99. data/schema/rspec-v3/ad.rnc +151 -0
  100. data/schema/rspec-v3/ad.xsd +77 -0
  101. data/schema/rspec-v3/any-extension-schema.xsd +38 -0
  102. data/schema/rspec-v3/any-extension.rnc +30 -0
  103. data/schema/rspec-v3/common.rnc +185 -0
  104. data/schema/rspec-v3/manifest-common.xsd +244 -0
  105. data/schema/rspec-v3/manifest-request.xsd +95 -0
  106. data/schema/rspec-v3/manifest.rnc +62 -0
  107. data/schema/rspec-v3/manifest.xsd +34 -0
  108. data/schema/rspec-v3/request-common.xsd +219 -0
  109. data/schema/rspec-v3/request-reservation.rnc +12 -0
  110. data/schema/rspec-v3/request-reservation.xsd +13 -0
  111. data/schema/rspec-v3/request.rnc +118 -0
  112. data/schema/rspec-v3/request.xsd +94 -0
  113. data/share/assets/css/default.css +147 -0
  114. data/share/assets/css/rest_api.css +0 -0
  115. data/share/assets/network.html +28 -0
  116. data/share/assets/network.js +82 -0
  117. data/spec/am/am-rest/common.rb +29 -0
  118. data/spec/am/am-rest/resource_group_handler_XspecX.rb +97 -0
  119. data/spec/am/am-rest/resource_handler_spec.rb +204 -0
  120. data/spec/am/am-rpc/sfa_methods_spec.rb +150 -0
  121. data/spec/am/am_manager_spec.rb +307 -0
  122. data/spec/am/am_scheduler_spec.rb +57 -0
  123. data/spec/am/common.rb +24 -0
  124. data/spec/resource/common.rb +31 -0
  125. data/spec/resource/node_spec.rb +171 -0
  126. data/spec/resource/oaccount_spec.rb +92 -0
  127. data/spec/resource/ocomponent_spec.rb +225 -0
  128. data/spec/resource/ogroup_spec.rb +93 -0
  129. data/spec/resource/oresource_spec.rb +208 -0
  130. data/spec/resource_and_leases_spec.rb +377 -0
  131. data/test/OLD_FILES/assertion1.xml +117 -0
  132. data/test/OLD_FILES/greeter_spec.rb +15 -0
  133. data/test/OLD_FILES/mongo_test.rb +45 -0
  134. data/test/OLD_FILES/req-sfa-2.xml +6 -0
  135. data/test/OLD_FILES/req-sfa-g.xml +8 -0
  136. data/test/OLD_FILES/req-sfa-g2.xml +10 -0
  137. data/test/OLD_FILES/req-sfa-g3.xml +14 -0
  138. data/test/OLD_FILES/req-sfa.xml +6 -0
  139. data/test/OLD_FILES/req1.xml +22 -0
  140. data/test/OLD_FILES/req1b.xml +15 -0
  141. data/test/OLD_FILES/rspec-test.xml +1867 -0
  142. data/test/OLD_FILES/test.rb +67 -0
  143. data/test/OLD_FILES/test2.rb +32 -0
  144. data/test/am/am_manager_rspec_tests.rb +378 -0
  145. data/test/am/am_manager_tests.rb +518 -0
  146. data/test/am/am_scheduler_tests.rb +173 -0
  147. data/test/resource/olease_test.rb +74 -0
  148. data/test/sfa_requests/request.xml +5 -0
  149. data/test/sfa_requests/request1.xml +5 -0
  150. data/test/sfa_requests/request2.xml +5 -0
  151. data/test/sfa_requests/request3.xml +5 -0
  152. metadata +601 -0
@@ -0,0 +1,219 @@
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:group ref="rspec:AnyExtension"/>
39
+ <xs:element ref="rspec:node"/>
40
+ <xs:element ref="rspec:link"/>
41
+ </xs:choice>
42
+ <xs:attributeGroup ref="rspec:AnyExtension"/>
43
+ <xs:attribute name="generated" type="xs:dateTime"/>
44
+ <xs:attribute name="generated_by"/>
45
+ <xs:attribute name="expires" type="xs:dateTime"/>
46
+ <xs:attribute name="type" use="required" type="rspec:RspecTypeContents"/>
47
+ </xs:complexType>
48
+ <xs:element name="node" type="rspec:NodeContents"/>
49
+ <xs:element name="link" type="rspec:LinkContents"/>
50
+ <xs:complexType name="NodeContents">
51
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
52
+ <xs:choice>
53
+ <xs:group ref="rspec:AnyExtension"/>
54
+ <xs:element ref="rspec:relation"/>
55
+ <xs:element ref="rspec:location"/>
56
+ <xs:element ref="rspec:services"/>
57
+ <xs:element ref="rspec:interface"/>
58
+ </xs:choice>
59
+ <xs:choice>
60
+ <xs:element ref="rspec:hardware_type"/>
61
+ <xs:element name="sliver_type">
62
+ <xs:complexType>
63
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
64
+ <xs:group ref="rspec:SliverTypeContents"/>
65
+ <xs:element ref="rspec:disk_image"/>
66
+ </xs:choice>
67
+ <xs:attributeGroup ref="rspec:SliverTypeContents"/>
68
+ </xs:complexType>
69
+ </xs:element>
70
+ </xs:choice>
71
+ </xs:choice>
72
+ <xs:attributeGroup ref="rspec:AnyExtension"/>
73
+ <xs:attribute name="client_id" use="required"/>
74
+ <xs:attribute name="component_id"/>
75
+ <xs:attribute name="component_manager_id"/>
76
+ <xs:attribute name="component_name"/>
77
+ <xs:attribute name="exclusive" type="xs:boolean"/>
78
+ <xs:attribute name="colocate"/>
79
+ </xs:complexType>
80
+ <xs:element name="relation" type="rspec:RelationContents"/>
81
+ <xs:element name="location" type="rspec:LocationContents"/>
82
+ <xs:element name="services" type="rspec:ServiceContents"/>
83
+ <xs:element name="interface" type="rspec:InterfaceContents"/>
84
+ <xs:element name="disk_image" type="rspec:DiskImageContents"/>
85
+ <xs:complexType name="ServiceContents">
86
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
87
+ <xs:choice>
88
+ <xs:group ref="rspec:AnyExtension"/>
89
+ <xs:element ref="rspec:login"/>
90
+ </xs:choice>
91
+ <xs:choice>
92
+ <xs:element ref="rspec:install"/>
93
+ <xs:element ref="rspec:execute"/>
94
+ </xs:choice>
95
+ </xs:choice>
96
+ <xs:attributeGroup ref="rspec:AnyExtension"/>
97
+ </xs:complexType>
98
+ <xs:element name="login" type="rspec:LoginServiceContents"/>
99
+ <xs:element name="install" type="rspec:InstallServiceContents"/>
100
+ <xs:element name="execute" type="rspec:ExecuteServiceContents"/>
101
+ <xs:complexType name="LoginServiceContents">
102
+ <xs:group ref="rspec:AnyExtension"/>
103
+ <xs:attributeGroup ref="rspec:AnyExtension"/>
104
+ <xs:attribute name="authentication" use="required"/>
105
+ <xs:attribute name="hostname"/>
106
+ <xs:attribute name="port"/>
107
+ </xs:complexType>
108
+ <xs:complexType name="RelationContents">
109
+ <xs:group ref="rspec:AnyExtension"/>
110
+ <xs:attributeGroup ref="rspec:AnyExtension"/>
111
+ <xs:attribute name="type" use="required"/>
112
+ <xs:attribute name="client_id" use="required"/>
113
+ </xs:complexType>
114
+ <xs:complexType name="LocationContents">
115
+ <xs:group ref="rspec:AnyExtension"/>
116
+ <xs:attributeGroup ref="rspec:AnyExtension"/>
117
+ <xs:attribute name="country" use="required"/>
118
+ <xs:attribute name="longitude"/>
119
+ <xs:attribute name="latitude"/>
120
+ </xs:complexType>
121
+ <xs:complexType name="InterfaceContents">
122
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
123
+ <xs:group ref="rspec:AnyExtension"/>
124
+ <xs:element ref="rspec:ip"/>
125
+ </xs:choice>
126
+ <xs:attributeGroup ref="rspec:AnyExtension"/>
127
+ <xs:attribute name="component_id"/>
128
+ <xs:attribute name="client_id" use="required"/>
129
+ </xs:complexType>
130
+ <xs:element name="ip" type="rspec:IpContents"/>
131
+ <xs:complexType name="IpContents">
132
+ <xs:group ref="rspec:AnyExtension"/>
133
+ <xs:attributeGroup ref="rspec:AnyExtension"/>
134
+ <xs:attribute name="address" use="required"/>
135
+ <xs:attribute name="netmask"/>
136
+ <xs:attribute name="type"/>
137
+ </xs:complexType>
138
+ <xs:complexType name="LinkContents">
139
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
140
+ <xs:choice>
141
+ <xs:group ref="rspec:AnyExtension"/>
142
+ <xs:element ref="rspec:property"/>
143
+ <xs:element ref="rspec:link_type"/>
144
+ <xs:element name="interface_ref" type="rspec:InterfaceRefContents"/>
145
+ </xs:choice>
146
+ <xs:choice>
147
+ <xs:element ref="rspec:component_manager"/>
148
+ <xs:element ref="rspec:component_hop"/>
149
+ </xs:choice>
150
+ </xs:choice>
151
+ <xs:attributeGroup ref="rspec:AnyExtension"/>
152
+ <xs:attribute name="client_id" use="required"/>
153
+ </xs:complexType>
154
+ <xs:element name="property" type="rspec:LinkPropertyContents"/>
155
+ <xs:element name="component_hop" type="rspec:ComponentHopContents"/>
156
+ <xs:complexType name="InterfaceRefContents">
157
+ <xs:group ref="rspec:AnyExtension"/>
158
+ <xs:attributeGroup ref="rspec:AnyExtension"/>
159
+ <xs:attribute name="client_id" use="required"/>
160
+ </xs:complexType>
161
+ <!-- The unidirectional network properties of a link. -->
162
+ <xs:complexType name="LinkPropertyContents">
163
+ <xs:group ref="rspec:AnyExtension"/>
164
+ <xs:attributeGroup ref="rspec:AnyExtension"/>
165
+ <xs:attribute name="source_id" use="required"/>
166
+ <xs:attribute name="dest_id" use="required"/>
167
+ <xs:attribute name="capacity"/>
168
+ <xs:attribute name="latency"/>
169
+ <xs:attribute name="packet_loss"/>
170
+ </xs:complexType>
171
+ <xs:element name="link_type">
172
+ <xs:complexType>
173
+ <xs:group ref="rspec:AnyExtension"/>
174
+ <xs:attributeGroup ref="rspec:AnyExtension"/>
175
+ <xs:attribute name="name" use="required"/>
176
+ <xs:attribute name="class"/>
177
+ </xs:complexType>
178
+ </xs:element>
179
+ <xs:element name="link_class">
180
+ <xs:complexType>
181
+ <xs:group ref="rspec:AnyExtension"/>
182
+ <xs:attributeGroup ref="rspec:AnyExtension"/>
183
+ <xs:attribute name="name" use="required"/>
184
+ </xs:complexType>
185
+ </xs:element>
186
+ <xs:group name="SliverType">
187
+ <xs:sequence>
188
+ <xs:element name="sliver_type">
189
+ <xs:complexType>
190
+ <xs:group ref="rspec:SliverTypeContents"/>
191
+ <xs:attributeGroup ref="rspec:SliverTypeContents"/>
192
+ </xs:complexType>
193
+ </xs:element>
194
+ </xs:sequence>
195
+ </xs:group>
196
+ <xs:group name="SliverTypeContents">
197
+ <xs:sequence>
198
+ <xs:group ref="rspec:AnyExtension"/>
199
+ </xs:sequence>
200
+ </xs:group>
201
+ <xs:attributeGroup name="SliverTypeContents">
202
+ <xs:attributeGroup ref="rspec:AnyExtension"/>
203
+ <xs:attribute name="name" use="required"/>
204
+ </xs:attributeGroup>
205
+ <xs:element name="hardware_type" type="rspec:HardwareTypeContents"/>
206
+ <xs:complexType name="HardwareTypeContents">
207
+ <xs:group ref="rspec:AnyExtension"/>
208
+ <xs:attributeGroup ref="rspec:AnyExtension"/>
209
+ <xs:attribute name="name" use="required"/>
210
+ </xs:complexType>
211
+ <xs:complexType name="DiskImageContents">
212
+ <xs:group ref="rspec:AnyExtension"/>
213
+ <xs:attributeGroup ref="rspec:AnyExtension"/>
214
+ <xs:attribute name="name" use="required"/>
215
+ <xs:attribute name="os"/>
216
+ <xs:attribute name="version"/>
217
+ <xs:attribute name="description"/>
218
+ </xs:complexType>
219
+ </xs:schema>
@@ -0,0 +1,12 @@
1
+ default namespace = "http://nitlab.inf.uth.gr/schema/sfa/rspec/1"
2
+
3
+ Lease = element lease {
4
+ (attribute leaseID { xsd:ID } &
5
+ attribute uuid { text }? &
6
+ attribute slice_id { text }? &
7
+ attribute valid_from { xsd:dateTime } &
8
+ attribute valid_until { xsd:dateTime })
9
+ | (attribute leaseREF { xsd:IDREF })
10
+ }
11
+
12
+ start = Lease
@@ -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,118 @@
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 a request 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
+ # The ComponentName will only be available after an assignment
35
+ NodeContents &=
36
+ # Client-specified identifier
37
+ attribute client_id { text } &
38
+ # Component used to create the sliver
39
+ attribute component_id { text }? &
40
+ attribute component_manager_id { text }? &
41
+ attribute component_name { text }? &
42
+
43
+ # Indicates whether the user is requesting this node exclusively
44
+ attribute exclusive { xsd:boolean }? &
45
+
46
+ # Indicates an equivalence class to determine which other slivers
47
+ # should be created on the same physical node.
48
+ attribute colocate { text }? &
49
+
50
+ # The type of node this sliver should be bound to. At most one kind
51
+ # of hardware type may be specified and the sliver type must be
52
+ # specified.
53
+ HardwareType? &
54
+ element sliver_type {
55
+ SliverTypeContents &
56
+ element disk_image { DiskImageContents }
57
+ }
58
+
59
+ ServiceContents &=
60
+ element install { InstallServiceContents }* &
61
+ element execute { ExecuteServiceContents }?
62
+
63
+ RelationContents &=
64
+ attribute client_id { text }
65
+
66
+ InstallServiceContents &=
67
+ AnyExtension &
68
+ attribute url { text } &
69
+ attribute install_path { text }
70
+
71
+ ExecuteServiceContents &=
72
+ AnyExtension &
73
+ attribute shell { text } &
74
+ attribute command { text }
75
+
76
+ # The LinkMapping will only be available after an assignment
77
+ LinkContents &=
78
+ attribute client_id { text } &
79
+ element component_manager { attribute name { text } }* &
80
+ element component_hop { ComponentHopContents }*
81
+
82
+ # The ComponentInterfaceDeclName will only be available after an assignment
83
+ InterfaceContents &=
84
+ attribute component_id { text }? &
85
+ attribute client_id { text }
86
+
87
+ # The ComponentInterfaceRefName will only be available after an assignment
88
+ InterfaceRefContents &=
89
+ attribute client_id { text }
90
+
91
+ RSpecContents &=
92
+ attribute type { RspecTypeContents }
93
+
94
+ RspecTypeContents = "request"
95
+
96
+ # A request link is mapped to an arbitrary topology which represents
97
+ # the virtual LAN/link which embodies it. Note that nodes do not
98
+ # provide any additional information and can be derived from the
99
+ # interface mapping.
100
+ ComponentHopContents &=
101
+ AnyExtension &
102
+ # Component ID of the link
103
+ attribute component_id { text }? &
104
+ element component_manager { attribute name { text } }* &
105
+ InterfaceMapping*
106
+
107
+ # Each interface represents a particular physical interface. If that
108
+ # interface is one of the link end points, it is also mapped to that
109
+ # virtual interface name.
110
+ InterfaceMapping = element interface_ref {
111
+ AnyExtension &
112
+ # Component ID of the interface
113
+ attribute component_id { text } &
114
+ attribute component_manager_id { text } &
115
+ attribute client_id { text }?
116
+ }
117
+
118
+ start = RSpec
@@ -0,0 +1,94 @@
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 a request 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="request-common.xsd"/>
35
+ <!-- The ComponentName will only be available after an assignment -->
36
+ <xs:complexType name="InstallServiceContents">
37
+ <xs:group ref="rspec:AnyExtension"/>
38
+ <xs:attributeGroup ref="rspec:AnyExtension"/>
39
+ <xs:attribute name="url" use="required"/>
40
+ <xs:attribute name="install_path" use="required"/>
41
+ </xs:complexType>
42
+ <xs:complexType name="ExecuteServiceContents">
43
+ <xs:group ref="rspec:AnyExtension"/>
44
+ <xs:attributeGroup ref="rspec:AnyExtension"/>
45
+ <xs:attribute name="shell" use="required"/>
46
+ <xs:attribute name="command" use="required"/>
47
+ </xs:complexType>
48
+ <!-- The LinkMapping will only be available after an assignment -->
49
+ <!-- The ComponentInterfaceDeclName will only be available after an assignment -->
50
+ <!-- The ComponentInterfaceRefName will only be available after an assignment -->
51
+ <xs:simpleType name="RspecTypeContents">
52
+ <xs:restriction base="xs:token">
53
+ <xs:enumeration value="request"/>
54
+ </xs:restriction>
55
+ </xs:simpleType>
56
+ <!--
57
+ A request link is mapped to an arbitrary topology which represents
58
+ the virtual LAN/link which embodies it. Note that nodes do not
59
+ provide any additional information and can be derived from the
60
+ interface mapping.
61
+ -->
62
+ <xs:complexType name="ComponentHopContents">
63
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
64
+ <xs:group ref="rspec:AnyExtension"/>
65
+ <xs:element ref="rspec:component_manager"/>
66
+ <xs:group ref="rspec:InterfaceMapping"/>
67
+ </xs:choice>
68
+ <xs:attributeGroup ref="rspec:AnyExtension"/>
69
+ <xs:attribute name="component_id"/>
70
+ </xs:complexType>
71
+ <xs:element name="component_manager">
72
+ <xs:complexType>
73
+ <xs:attribute name="name" use="required"/>
74
+ </xs:complexType>
75
+ </xs:element>
76
+ <!--
77
+ Each interface represents a particular physical interface. If that
78
+ interface is one of the link end points, it is also mapped to that
79
+ virtual interface name.
80
+ -->
81
+ <xs:group name="InterfaceMapping">
82
+ <xs:sequence>
83
+ <xs:element name="interface_ref">
84
+ <xs:complexType>
85
+ <xs:group ref="rspec:AnyExtension"/>
86
+ <xs:attributeGroup ref="rspec:AnyExtension"/>
87
+ <xs:attribute name="component_id" use="required"/>
88
+ <xs:attribute name="component_manager_id" use="required"/>
89
+ <xs:attribute name="client_id"/>
90
+ </xs:complexType>
91
+ </xs:element>
92
+ </xs:sequence>
93
+ </xs:group>
94
+ </xs:schema>
@@ -0,0 +1,147 @@
1
+ body{
2
+ font: 13.34px/1.4 helvetica,arial,freesans,clean,sans-serif;
3
+ font-size: 14px;
4
+ line-height: 1.4;
5
+ margin:20px;
6
+ margin-top: 40px;
7
+ }
8
+ p {
9
+ margin: 1em 0;
10
+ }
11
+ a.absent {
12
+ color: #CC0000;
13
+ }
14
+ h1, h2, h3, h4, h5, h6 {
15
+ margin: 0;
16
+ padding: 0;
17
+ }
18
+ h1 {
19
+ font-size: 22px;
20
+ line-height: normal;
21
+ margin: 22px 0 0;
22
+ padding: 7px 0 0;
23
+ }
24
+ h2 {
25
+ font-size: 16px;
26
+ line-height: 26px;
27
+ padding: 26px 0 0;
28
+ }
29
+ h3 {
30
+ font-size: 14px;
31
+ font-weight: bold;
32
+ line-height: 26px;
33
+ padding: 18px 0 4px;
34
+ text-transform: uppercase;
35
+ }
36
+ h4 {
37
+ font-size: 13px;
38
+ font-weight: bold;
39
+ line-height: 26px;
40
+ padding: 14px 0 0;
41
+ text-transform: uppercase;
42
+ }
43
+ h5 {
44
+ color: #666666;
45
+ font-size: 14px;
46
+ font-weight: normal;
47
+ line-height: 26px;
48
+ padding: 18px 0 0;
49
+ }
50
+ hr {
51
+ background-color: #CCCCCC;
52
+ border: 2px solid #CCCCCC;
53
+ color: #CCCCCC;
54
+ margin: 20px 0;
55
+ padding: 0;
56
+ }
57
+ > h2:first-child, > h1:first-child, > h1:first-child + h2 {
58
+ border: 0 none;
59
+ margin: 12px 0 0;
60
+ padding: 10px 0 0;
61
+ }
62
+ > h3:first-child, > h4:first-child, > h5:first-child, > h6:first-child {
63
+ margin: 13px 0 0;
64
+ padding: 0;
65
+ }
66
+ h4 + p, h5 + p, h6 + p {
67
+ margin-top: 0;
68
+ }
69
+ ul, ol {
70
+ margin-left: 0.5em;
71
+ margin-top: 0.5em;
72
+ }
73
+ ul li, ol li {
74
+ margin: 0.2em 0;
75
+ }
76
+ li ul, li ol {
77
+ margin: 0;
78
+ padding: 0;
79
+ padding-left: 2em;
80
+ margin: 0.2em 0;
81
+ }
82
+ dl {
83
+ margin: 0;
84
+ padding: 20px 0 0;
85
+ }
86
+ dl dt {
87
+ font-size: 14px;
88
+ font-weight: bold;
89
+ line-height: normal;
90
+ margin: 0;
91
+ padding: 20px 0 0;
92
+ }
93
+ dl dt:first-child {
94
+ padding: 0;
95
+ }
96
+ dl dd {
97
+ font-size: 13px;
98
+ margin: 0;
99
+ padding: 3px 0 0;
100
+ }
101
+ blockquote {
102
+ border-left: 4px solid #DDDDDD;
103
+ color: #555555;
104
+ margin: 1em 0;
105
+ padding-left: 0.8em;
106
+ }
107
+ table {
108
+ border-collapse: collapse;
109
+ margin: 20px 0 0;
110
+ padding: 0;
111
+ }
112
+ table * tr {
113
+ background-color: #FFFFFF;
114
+ border-top: 1px solid #CCCCCC;
115
+ margin: 0;
116
+ padding: 0;
117
+ }
118
+ table * tr:nth-child(2n) {
119
+ background-color: #F8F8F8;
120
+ }
121
+ table * tr th, table * tr td {
122
+ border: 1px solid #CCCCCC;
123
+ margin: 0;
124
+ padding: 6px 13px;
125
+ text-align: left;
126
+ }
127
+ img {
128
+ max-width: 100%;
129
+ }
130
+ code, tt {
131
+ background-color: #F8F8F8;
132
+ /*
133
+ border: 1px solid #DEDEDE;
134
+ border-radius: 3px 3px 3px 3px;
135
+ */
136
+ font-size: 14px;
137
+ padding: 0;
138
+ }
139
+ pre {
140
+ border: 1px solid #DEDEDE;
141
+ border-radius: 3px 3px 3px 3px;
142
+ padding: 1em;
143
+ }
144
+ pre code, pre tt {
145
+ background-color: transparent;
146
+ border: medium none;
147
+ }
File without changes
@@ -0,0 +1,28 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Available Resources</title>
5
+ <script type="text/javascript" src="http://mbostock.github.com/d3/d3.js?2.6.0s"></script>
6
+ <script type="text/javascript" src="http://mbostock.github.com/d3/d3.geom.js"></script>
7
+ <script type="text/javascript" src="http://mbostock.github.com/d3/d3.layout.js"></script>
8
+ <script type="text/javascript" src="http://documentcloud.github.com/underscore/underscore.js"></script>
9
+
10
+ <style type="text/css">
11
+ circle.node {
12
+ stroke: #fff;
13
+ stroke-width: 1.5px;
14
+ }
15
+
16
+ line.link {
17
+ stroke: #999;
18
+ stroke-opacity: .6;
19
+ stroke-width: 2px;
20
+
21
+ }
22
+ </style>
23
+ </head>
24
+ <body>
25
+ <div id="chart"></div>
26
+ <script type="text/javascript" src="network.js"></script>
27
+ </body>
28
+ </html>