occi 2.3.0 → 2.3.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/lib/occi/core/category.rb +3 -3
- data/lib/occi/core/kind.rb +2 -1
- data/lib/occi/core/resource.rb +1 -1
- data/lib/occi/model.rb +3 -1
- data/lib/occi/parser.rb +5 -5
- data/lib/occi/version.rb +1 -1
- data/spec/occi/parser_spec.rb +43 -6
- data/spec/occi/test.json +69 -0
- data/spec/occi/test.ovf +198 -0
- metadata +6 -2
data/lib/occi/core/category.rb
CHANGED
@@ -6,7 +6,7 @@ module OCCI
|
|
6
6
|
module Core
|
7
7
|
class Category
|
8
8
|
|
9
|
-
attr_accessor :scheme, :term, :title, :attributes
|
9
|
+
attr_accessor :model, :scheme, :term, :title, :attributes
|
10
10
|
|
11
11
|
# @param [String ] scheme
|
12
12
|
# @param [String] term
|
@@ -34,9 +34,9 @@ module OCCI
|
|
34
34
|
# check if category is related to another category
|
35
35
|
# @param [String] category_id Type identifier of a related category
|
36
36
|
# @return [true,false] true if category is related to category_id else false
|
37
|
-
def related_to?(category_id
|
37
|
+
def related_to?(category_id)
|
38
38
|
self.related.each do |rel_id|
|
39
|
-
return true if rel_id == category_id || model.get_by_id(rel_id).related_to?(category_id
|
39
|
+
return true if rel_id == category_id || @model.get_by_id(rel_id).related_to?(category_id)
|
40
40
|
end if self.class.method_defined? 'related'
|
41
41
|
false
|
42
42
|
end
|
data/lib/occi/core/kind.rb
CHANGED
@@ -30,7 +30,8 @@ module OCCI
|
|
30
30
|
when "http://schemas.ogf.org/occi/core#link"
|
31
31
|
return OCCI::Core::Link.name
|
32
32
|
else
|
33
|
-
|
33
|
+
raise "no model back reference provided for kind #{self.typ_identifier}" unless @model
|
34
|
+
@model.get_by_id(self[:related].first).entity_type unless self[:term] == 'entity'
|
34
35
|
end
|
35
36
|
end
|
36
37
|
|
data/lib/occi/core/resource.rb
CHANGED
@@ -10,11 +10,11 @@ module OCCI
|
|
10
10
|
attr_accessor :links
|
11
11
|
|
12
12
|
def initialize(kind, mixins=nil, attributes=nil, links=nil)
|
13
|
-
@href = nil
|
14
13
|
@links = links.to_a
|
15
14
|
super(kind, mixins, attributes)
|
16
15
|
end
|
17
16
|
|
17
|
+
# @return [OCCI::Core::Kind] kind definition of Resource type
|
18
18
|
def self.kind_definition
|
19
19
|
kind = OCCI::Core::Kind.new('http://schemas.ogf.org/occi/core#', 'resource')
|
20
20
|
|
data/lib/occi/model.rb
CHANGED
@@ -58,6 +58,8 @@ module OCCI
|
|
58
58
|
OCCI::Log.debug "### Registering category #{category.type_identifier}"
|
59
59
|
@categories[category.type_identifier] = category
|
60
60
|
@locations[category.location] = category.type_identifier unless category.kind_of? OCCI::Core::Action
|
61
|
+
# add model to category as back reference
|
62
|
+
category.model = self
|
61
63
|
end
|
62
64
|
|
63
65
|
# ---------------------------------------------------------------------------------------------------------------------
|
@@ -99,7 +101,7 @@ module OCCI
|
|
99
101
|
OCCI::Log.debug("### Filtering categories #{categories.collect { |c| c.type_identifier }.inspect}")
|
100
102
|
while categories.any? do
|
101
103
|
category = categories.pop
|
102
|
-
categories.concat @categories.each_value.select { |cat| cat.related_to?(category.type_identifier
|
104
|
+
categories.concat @categories.each_value.select { |cat| cat.related_to?(category.type_identifier) }
|
103
105
|
collection.kinds << get_by_id(category.type_identifier) if category.kind_of? OCCI::Core::Kind
|
104
106
|
collection.mixins << get_by_id(category.type_identifier) if category.kind_of? OCCI::Core::Mixin
|
105
107
|
collection.actions << get_by_id(category.type_identifier) if category.kind_of? OCCI::Core::Action
|
data/lib/occi/parser.rb
CHANGED
@@ -87,11 +87,11 @@ module OCCI
|
|
87
87
|
if entity_type == OCCI::Core::Link
|
88
88
|
entity.target = link.attributes!.occi!.core!.target
|
89
89
|
entity.source = link.attributes!.occi!.core!.source
|
90
|
-
collection.links << OCCI::Core::Link.new(entity)
|
90
|
+
collection.links << OCCI::Core::Link.new(entity.kind,entity.mixins,entity.attributes)
|
91
91
|
elsif entity_type == OCCI::Core::Resource
|
92
92
|
link_strings = header['HTTP_LINK'].to_s.split(',')
|
93
93
|
link_strings.each { |link| entity.links << OCCIANTLR::Parser.new('Link: ' + link).link }
|
94
|
-
collection.resources << OCCI::Core::Resource.new(entity)
|
94
|
+
collection.resources << OCCI::Core::Resource.new(entity.kind,entity.mixins,entity.attributes,entity.links)
|
95
95
|
end
|
96
96
|
collection
|
97
97
|
end
|
@@ -127,10 +127,10 @@ module OCCI
|
|
127
127
|
if entity_type == OCCI::Core::Link
|
128
128
|
entity.target = links.first.attributes!.occi!.core!.target
|
129
129
|
entity.source = links.first.attributes!.occi!.core!.source
|
130
|
-
collection.links << OCCI::Core::Link.new(entity)
|
130
|
+
collection.links << OCCI::Core::Link.new(entity.kind,entity.mixins,entity.attributes)
|
131
131
|
elsif entity_type == OCCI::Core::Resource
|
132
132
|
entity.links = links
|
133
|
-
collection.resources << OCCI::Core::Resource.new(entity)
|
133
|
+
collection.resources << OCCI::Core::Resource.new(entity.kind,entity.mixins,entity.attributes,entity.links)
|
134
134
|
end unless entity.kind.nil?
|
135
135
|
collection
|
136
136
|
end
|
@@ -216,7 +216,7 @@ module OCCI
|
|
216
216
|
if href.relative?
|
217
217
|
references[file.attributes['id'].to_s] = 'file://' + files[href.to_s] if files[href.to_s]
|
218
218
|
else
|
219
|
-
references[file.attributes['id'].to_s] = href
|
219
|
+
references[file.attributes['id'].to_s] = href.to_s
|
220
220
|
end
|
221
221
|
end
|
222
222
|
|
data/lib/occi/version.rb
CHANGED
data/spec/occi/parser_spec.rb
CHANGED
@@ -4,16 +4,53 @@ require 'occi/parser'
|
|
4
4
|
describe "Parser" do
|
5
5
|
|
6
6
|
it "should parse OCCI message with entity in text plain format" do
|
7
|
-
media_type
|
8
|
-
body
|
9
|
-
|
7
|
+
media_type = 'text/plain'
|
8
|
+
body = %Q|Category: compute; scheme="http://schemas.ogf.org/occi/infrastructure#"; class="kind"\nX-OCCI-Attribute: occi.compute.cores=2|
|
9
|
+
_, collection = OCCI::Parser.parse(media_type, body)
|
10
|
+
collection.should be_kind_of OCCI::Collection
|
11
|
+
jj collection
|
12
|
+
compute_resources = collection.resources.select { |resource| resource.kind =='http://schemas.ogf.org/occi/infrastructure#compute' }
|
13
|
+
compute_resources.should have(1).compute_resource
|
14
|
+
compute_resources.first.attributes.occi!.compute!.cores.should == 2
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should parse OCCI message with entity in JSON format" do
|
18
|
+
media_type = 'application/occi+json'
|
19
|
+
body = File.read('spec/occi/test.json')
|
20
|
+
_, collection = OCCI::Parser.parse(media_type, body)
|
21
|
+
storage_resources = collection.resources.select { |resource| resource.kind == 'http://schemas.ogf.org/occi/infrastructure#storage' }
|
22
|
+
storage_resources.should have(1).storage_resource
|
23
|
+
storage_resources.first.attributes.occi!.core!.title.should == 'lamp'
|
24
|
+
network_resources = collection.resources.select { |resource| resource.kind == 'http://schemas.ogf.org/occi/infrastructure#network' }
|
25
|
+
network_resources.should have(1).network_resource
|
26
|
+
network_resources.first.attributes.occi!.core!.title.should == 'VM Network'
|
27
|
+
compute_resources = collection.resources.select { |resource| resource.kind == 'http://schemas.ogf.org/occi/infrastructure#compute' }
|
28
|
+
compute_resources.should have(1).compute_resource
|
29
|
+
compute_resources.first.attributes.occi!.compute!.cores.should == 1
|
30
|
+
compute_resources.first.attributes.occi!.compute!.memory.should == 256
|
31
|
+
end
|
32
|
+
|
33
|
+
it "should parse an OVF file" do
|
34
|
+
media_type = 'application/ovf+xml'
|
35
|
+
body = File.read('spec/occi/test.ovf')
|
36
|
+
_, collection = OCCI::Parser.parse(media_type, body)
|
37
|
+
storage_resources = collection.resources.select { |resource| resource.kind == 'http://schemas.ogf.org/occi/infrastructure#storage' }
|
38
|
+
storage_resources.should have(1).storage_resource
|
39
|
+
storage_resources.first.attributes.occi!.core!.title.should == 'lamp'
|
40
|
+
network_resources = collection.resources.select { |resource| resource.kind == 'http://schemas.ogf.org/occi/infrastructure#network' }
|
41
|
+
network_resources.should have(1).network_resource
|
42
|
+
network_resources.first.attributes.occi!.core!.title.should == 'VM Network'
|
43
|
+
compute_resources = collection.resources.select { |resource| resource.kind == 'http://schemas.ogf.org/occi/infrastructure#compute' }
|
44
|
+
compute_resources.should have(1).compute_resource
|
45
|
+
compute_resources.first.attributes.occi!.compute!.cores.should == 1
|
46
|
+
compute_resources.first.attributes.occi!.compute!.memory.should == 256
|
10
47
|
end
|
11
48
|
|
12
49
|
it "should parse an OVA container" do
|
13
|
-
media_type
|
14
|
-
body
|
50
|
+
media_type = 'application/ova'
|
51
|
+
body = File.read('spec/occi/test.ova')
|
15
52
|
locations, collection = OCCI::Parser.parse(media_type, body)
|
16
|
-
storage_resources
|
53
|
+
storage_resources = collection.resources.select { |resource| resource.kind == 'http://schemas.ogf.org/occi/infrastructure#storage' }
|
17
54
|
storage_resources.should have(1).storage_resource
|
18
55
|
storage_resources.first.attributes.occi!.core!.title.should == 'lamp'
|
19
56
|
network_resources = collection.resources.select { |resource| resource.kind == 'http://schemas.ogf.org/occi/infrastructure#network' }
|
data/spec/occi/test.json
ADDED
@@ -0,0 +1,69 @@
|
|
1
|
+
{
|
2
|
+
"resources": [
|
3
|
+
{
|
4
|
+
"links": [
|
5
|
+
{
|
6
|
+
"kind": "http://schemas.ogf.org/occi/infrastructure#storagelink",
|
7
|
+
"attributes": {
|
8
|
+
"occi": {
|
9
|
+
"core": {
|
10
|
+
"id": "34cb5bce-d31a-11e1-a11a-a4b197fffef3",
|
11
|
+
"title": "lamp",
|
12
|
+
"target": "http://example.com/lamp.vmdk"
|
13
|
+
}
|
14
|
+
}
|
15
|
+
}
|
16
|
+
}
|
17
|
+
],
|
18
|
+
"kind": "http://schemas.ogf.org/occi/infrastructure#storage",
|
19
|
+
"attributes": {
|
20
|
+
"occi": {
|
21
|
+
"core": {
|
22
|
+
"id": "34c88188-d31a-11e1-a11a-a4b197fffef3",
|
23
|
+
"title": "lamp"
|
24
|
+
}
|
25
|
+
}
|
26
|
+
}
|
27
|
+
},
|
28
|
+
{
|
29
|
+
"kind": "http://schemas.ogf.org/occi/infrastructure#network",
|
30
|
+
"attributes": {
|
31
|
+
"occi": {
|
32
|
+
"core": {
|
33
|
+
"id": "34cb6830-d31a-11e1-a11a-a4b197fffef3",
|
34
|
+
"title": "VM Network"
|
35
|
+
}
|
36
|
+
}
|
37
|
+
}
|
38
|
+
},
|
39
|
+
{
|
40
|
+
"links": [
|
41
|
+
{
|
42
|
+
"kind": "http://schemas.ogf.org/occi/infrastructure#storagelink",
|
43
|
+
"attributes": {
|
44
|
+
"occi": {
|
45
|
+
"core": {
|
46
|
+
"id": "34cbb948-d31a-11e1-a11a-a4b197fffef3",
|
47
|
+
"title": "Harddisk 1",
|
48
|
+
"target": "/storage/34c88188-d31a-11e1-a11a-a4b197fffef3"
|
49
|
+
}
|
50
|
+
}
|
51
|
+
}
|
52
|
+
}
|
53
|
+
],
|
54
|
+
"kind": "http://schemas.ogf.org/occi/infrastructure#compute",
|
55
|
+
"attributes": {
|
56
|
+
"occi": {
|
57
|
+
"core": {
|
58
|
+
"id": "34cb6f60-d31a-11e1-a11a-a4b197fffef3",
|
59
|
+
"summary": ""
|
60
|
+
},
|
61
|
+
"compute": {
|
62
|
+
"cores": 1,
|
63
|
+
"memory": 256
|
64
|
+
}
|
65
|
+
}
|
66
|
+
}
|
67
|
+
}
|
68
|
+
]
|
69
|
+
}
|
data/spec/occi/test.ovf
ADDED
@@ -0,0 +1,198 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
3
|
+
xmlns:vssd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData"
|
4
|
+
xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData"
|
5
|
+
xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1"
|
6
|
+
xmlns="http://schemas.dmtf.org/ovf/envelope/1"
|
7
|
+
xsi:schemaLocation="http://schemas.dmtf.org/ovf/envelope/1 ../dsp8023.xsd">
|
8
|
+
|
9
|
+
<!-- This example reference a local schema file, to validate against online schema use:
|
10
|
+
xsi:schemaLocation="http://schemas.dmtf.org/ovf/envelope/1 http://schemas.dmtf.org/ovf/envelope/1/dsp8023_1.0.0.xsd"
|
11
|
+
-->
|
12
|
+
|
13
|
+
<!-- References to all external files -->
|
14
|
+
<References>
|
15
|
+
<File ovf:id="lamp" ovf:href="http://example.com/lamp.vmdk" ovf:size="180114671"/>
|
16
|
+
</References>
|
17
|
+
<!-- Describes meta-information about all virtual disks in the package -->
|
18
|
+
<DiskSection>
|
19
|
+
<Info>List of the virtual disks used in the package</Info>
|
20
|
+
<Disk ovf:diskId="lamp" ovf:fileRef="lamp" ovf:capacity="4294967296"
|
21
|
+
ovf:populatedSize="1924967692"
|
22
|
+
ovf:format="http://www.vmware.com/interfaces/specifications/vmdk.html#streamOptimized"/>
|
23
|
+
</DiskSection>
|
24
|
+
<!-- Describes all networks used in the package -->
|
25
|
+
<NetworkSection>
|
26
|
+
<Info>Logical networks used in the package</Info>
|
27
|
+
<Network ovf:name="VM Network">
|
28
|
+
<Description>The network that the LAMP Service will be available
|
29
|
+
on</Description>
|
30
|
+
</Network>
|
31
|
+
</NetworkSection>
|
32
|
+
<VirtualSystem ovf:id="MyLampService">
|
33
|
+
<Info>Single-VM Virtual appliance with LAMP stack</Info>
|
34
|
+
<Name>LAMP Virtual Appliance</Name>
|
35
|
+
<!-- Overall information about the product -->
|
36
|
+
<ProductSection>
|
37
|
+
<Info>Product information for the service</Info>
|
38
|
+
<Product>Lamp Service</Product>
|
39
|
+
<Version>1.0</Version>
|
40
|
+
<FullVersion>1.0.0</FullVersion>
|
41
|
+
</ProductSection>
|
42
|
+
<!-- Linux component configuration parameters -->
|
43
|
+
<ProductSection ovf:class="org.linuxdist.x">
|
44
|
+
<Info>Product customization for the installed Linux system</Info>
|
45
|
+
<Product>Linux Distribution X</Product>
|
46
|
+
<Version>2.6.3</Version>
|
47
|
+
<Property ovf:key="hostname" ovf:type="string">
|
48
|
+
<Description>Specifies the hostname for the appliance</Description>
|
49
|
+
</Property>
|
50
|
+
<Property ovf:key="ip" ovf:type="string">
|
51
|
+
<Description>Specifies the IP address for the appliance</Description>
|
52
|
+
</Property>
|
53
|
+
<Property ovf:key="subnet" ovf:type="string">
|
54
|
+
<Description> Specifies the subnet to use on the deployed network
|
55
|
+
</Description>
|
56
|
+
</Property>
|
57
|
+
<Property ovf:key="gateway" ovf:type="string">
|
58
|
+
<Description> Specifies the gateway on the deployed network
|
59
|
+
</Description>
|
60
|
+
</Property>
|
61
|
+
<Property ovf:key="dns" ovf:type="string">
|
62
|
+
<Description> A comma separated list of DNS servers on the deployed
|
63
|
+
network </Description>
|
64
|
+
</Property>
|
65
|
+
<Property ovf:key="netCoreRmemMaxMB" ovf:type="uint16" ovf:value="16"
|
66
|
+
ovf:userConfigurable="true">
|
67
|
+
<Description> Specify TCP read max buffer size in mega bytes. Default is
|
68
|
+
16. </Description>
|
69
|
+
</Property>
|
70
|
+
<Property ovf:key="netCoreWmemMaxMB" ovf:type="uint16" ovf:value="16"
|
71
|
+
ovf:userConfigurable="true">
|
72
|
+
<Description> Specify TCP write max buffer size in mega bytes. Default is
|
73
|
+
16. </Description>
|
74
|
+
</Property>
|
75
|
+
</ProductSection>
|
76
|
+
<!-- Apache component configuration parameters -->
|
77
|
+
<ProductSection ovf:class="org.apache.httpd">
|
78
|
+
<Info>Product customization for the installed Apache Web Server</Info>
|
79
|
+
<Product>Apache Distribution Y</Product>
|
80
|
+
<Version>2.6.6</Version>
|
81
|
+
<Property ovf:key="httpPort" ovf:type="uint16" ovf:value="80"
|
82
|
+
ovf:userConfigurable="true">
|
83
|
+
<Description>Port number for HTTP requests</Description>
|
84
|
+
</Property>
|
85
|
+
<Property ovf:key="httpsPort" ovf:type="uint16" ovf:value="443"
|
86
|
+
ovf:userConfigurable="true">
|
87
|
+
<Description>Port number for HTTPS requests</Description>
|
88
|
+
</Property>
|
89
|
+
<Property ovf:key="startThreads" ovf:type="uint16" ovf:value="50"
|
90
|
+
ovf:userConfigurable="true">
|
91
|
+
<Description>Number of threads created on startup. </Description>
|
92
|
+
</Property>
|
93
|
+
<Property ovf:key="minSpareThreads" ovf:type="uint16" ovf:value="15"
|
94
|
+
ovf:userConfigurable="true">
|
95
|
+
<Description> Minimum number of idle threads to handle request spikes.
|
96
|
+
</Description>
|
97
|
+
</Property>
|
98
|
+
<Property ovf:key="maxSpareThreads" ovf:type="uint16" ovf:value="30"
|
99
|
+
ovf:userConfigurable="true">
|
100
|
+
<Description>Maximum number of idle threads </Description>
|
101
|
+
</Property>
|
102
|
+
<Property ovf:key="maxClients" ovf:type="uint16" ovf:value="256"
|
103
|
+
ovf:userConfigurable="true">
|
104
|
+
<Description>Limit the number of simultaneous requests that will be
|
105
|
+
served. </Description>
|
106
|
+
</Property>
|
107
|
+
</ProductSection>
|
108
|
+
<!-- MySQL component configuration parameters -->
|
109
|
+
<ProductSection ovf:class="org.mysql.db">
|
110
|
+
<Info>Product customization for the installed MySql Database Server</Info>
|
111
|
+
<Product>MySQL Distribution Z</Product>
|
112
|
+
<Version>5.0</Version>
|
113
|
+
<Property ovf:key="queryCacheSizeMB" ovf:type="uint16" ovf:value="32"
|
114
|
+
ovf:userConfigurable="true">
|
115
|
+
<Description>Buffer to cache repeated queries for faster access (in
|
116
|
+
MB)</Description>
|
117
|
+
</Property>
|
118
|
+
<Property ovf:key="maxConnections" ovf:type="uint16" ovf:value="500"
|
119
|
+
ovf:userConfigurable="true">
|
120
|
+
<Description>The number of concurrent connections that can be
|
121
|
+
served</Description>
|
122
|
+
</Property>
|
123
|
+
<Property ovf:key="waitTimeout" ovf:type="uint16" ovf:value="100"
|
124
|
+
ovf:userConfigurable="true">
|
125
|
+
<Description>Number of seconds to wait before timing out a connection
|
126
|
+
</Description>
|
127
|
+
</Property>
|
128
|
+
</ProductSection>
|
129
|
+
<!-- PHP component configuration parameters -->
|
130
|
+
<ProductSection ovf:class="net.php">
|
131
|
+
<Info>Product customization for the installed PHP component</Info>
|
132
|
+
<Product>PHP Distribution U</Product>
|
133
|
+
<Version>5.0</Version>
|
134
|
+
<Property ovf:key="sessionTimeout" ovf:type="uint16" ovf:value="5"
|
135
|
+
ovf:userConfigurable="true">
|
136
|
+
<Description> How many minutes a session has to be idle before it is
|
137
|
+
timed out </Description>
|
138
|
+
</Property>
|
139
|
+
<Property ovf:key="concurrentSessions" ovf:type="uint16" ovf:value="500"
|
140
|
+
ovf:userConfigurable="true">
|
141
|
+
<Description> The number of concurrent sessions that can be served
|
142
|
+
</Description>
|
143
|
+
</Property>
|
144
|
+
<Property ovf:key="memoryLimit" ovf:type="uint16" ovf:value="32"
|
145
|
+
ovf:userConfigurable="true">
|
146
|
+
<Description> How much memory in megabytes a script can consume before
|
147
|
+
being killed </Description>
|
148
|
+
</Property>
|
149
|
+
</ProductSection>
|
150
|
+
<OperatingSystemSection ovf:id="36">
|
151
|
+
<Info>Guest Operating System</Info>
|
152
|
+
<Description>Linux 2.6.x</Description>
|
153
|
+
</OperatingSystemSection>
|
154
|
+
<VirtualHardwareSection>
|
155
|
+
<Info>Virtual Hardware Requirements: 256MB, 1 CPU, 1 disk, 1 NIC</Info>
|
156
|
+
<System>
|
157
|
+
<vssd:ElementName>Virtual Hardware Family</vssd:ElementName>
|
158
|
+
<vssd:InstanceID>0</vssd:InstanceID>
|
159
|
+
<vssd:VirtualSystemType>vmx-04</vssd:VirtualSystemType>
|
160
|
+
</System>
|
161
|
+
<Item>
|
162
|
+
<rasd:Description>Number of virtual CPUs</rasd:Description>
|
163
|
+
<rasd:ElementName>1 virtual CPU</rasd:ElementName>
|
164
|
+
<rasd:InstanceID>1</rasd:InstanceID>
|
165
|
+
<rasd:ResourceType>3</rasd:ResourceType>
|
166
|
+
<rasd:VirtualQuantity>1</rasd:VirtualQuantity>
|
167
|
+
</Item>
|
168
|
+
<Item>
|
169
|
+
<rasd:AllocationUnits>byte * 2^20</rasd:AllocationUnits>
|
170
|
+
<rasd:Description>Memory Size</rasd:Description>
|
171
|
+
<rasd:ElementName>256 MB of memory</rasd:ElementName>
|
172
|
+
<rasd:InstanceID>2</rasd:InstanceID>
|
173
|
+
<rasd:ResourceType>4</rasd:ResourceType>
|
174
|
+
<rasd:VirtualQuantity>256</rasd:VirtualQuantity>
|
175
|
+
</Item>
|
176
|
+
<Item>
|
177
|
+
<rasd:AutomaticAllocation>true</rasd:AutomaticAllocation>
|
178
|
+
<rasd:Connection>VM Network</rasd:Connection>
|
179
|
+
<rasd:ElementName>Ethernet adapter on "VM Network"</rasd:ElementName>
|
180
|
+
<rasd:InstanceID>3</rasd:InstanceID>
|
181
|
+
<rasd:ResourceType>10</rasd:ResourceType>
|
182
|
+
</Item>
|
183
|
+
<Item>
|
184
|
+
<rasd:ElementName>SCSI Controller 0 - LSI Logic</rasd:ElementName>
|
185
|
+
<rasd:InstanceID>4</rasd:InstanceID>
|
186
|
+
<rasd:ResourceSubType>LsiLogic</rasd:ResourceSubType>
|
187
|
+
<rasd:ResourceType>6</rasd:ResourceType>
|
188
|
+
</Item>
|
189
|
+
<Item>
|
190
|
+
<rasd:ElementName>Harddisk 1</rasd:ElementName>
|
191
|
+
<rasd:HostResource>ovf:/disk/lamp</rasd:HostResource>
|
192
|
+
<rasd:InstanceID>5</rasd:InstanceID>
|
193
|
+
<rasd:Parent>4</rasd:Parent>
|
194
|
+
<rasd:ResourceType>17</rasd:ResourceType>
|
195
|
+
</Item>
|
196
|
+
</VirtualHardwareSection>
|
197
|
+
</VirtualSystem>
|
198
|
+
</Envelope>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: occi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.3.
|
4
|
+
version: 2.3.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-07-
|
13
|
+
date: 2012-07-21 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: json
|
@@ -180,7 +180,9 @@ files:
|
|
180
180
|
- spec/occi/log_spec.rb
|
181
181
|
- spec/occi/model_spec.rb
|
182
182
|
- spec/occi/parser_spec.rb
|
183
|
+
- spec/occi/test.json
|
183
184
|
- spec/occi/test.ova
|
185
|
+
- spec/occi/test.ovf
|
184
186
|
- spec/occiantlr/parser_spec.rb
|
185
187
|
- spec/spec_helper.rb
|
186
188
|
homepage: https://github.com/gwdg/occi
|
@@ -213,7 +215,9 @@ test_files:
|
|
213
215
|
- spec/occi/log_spec.rb
|
214
216
|
- spec/occi/model_spec.rb
|
215
217
|
- spec/occi/parser_spec.rb
|
218
|
+
- spec/occi/test.json
|
216
219
|
- spec/occi/test.ova
|
220
|
+
- spec/occi/test.ovf
|
217
221
|
- spec/occiantlr/parser_spec.rb
|
218
222
|
- spec/spec_helper.rb
|
219
223
|
has_rdoc:
|