occi-core 4.2.15 → 4.2.16

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 (48) hide show
  1. checksums.yaml +4 -4
  2. data/lib/occi/core/kind.rb +4 -0
  3. data/lib/occi/parser/text.rb +1 -1
  4. data/lib/occi/version.rb +1 -1
  5. data/spec/helpers/to_plain.rb +39 -0
  6. data/spec/helpers/yaml_hash.rb +32 -0
  7. data/spec/occi/core/categories_spec.rb +2 -2
  8. data/spec/occi/model_spec.rb +2 -2
  9. data/spec/occi/parser/text_samples/occi_categories.body_plain.expected +2 -0
  10. data/spec/occi/parser/text_samples/occi_categories.expected +2 -0
  11. data/spec/occi/parser/text_samples/occi_categories.parse_headers.expected +2 -0
  12. data/spec/occi/parser/text_samples/occi_categories.text +2 -2
  13. data/spec/occi/parser/text_samples/occi_compute_rocci_server.expected +11 -0
  14. data/spec/occi/parser/text_samples/occi_link_resource_instance.body_plain.expected +7 -0
  15. data/spec/occi/parser/text_samples/occi_link_resource_instance.expected +7 -0
  16. data/spec/occi/parser/text_samples/occi_link_resource_instance.parse.expected +7 -0
  17. data/spec/occi/parser/text_samples/occi_link_simple.expected +7 -0
  18. data/spec/occi/parser/text_samples/occi_link_w_attributes.expected +7 -0
  19. data/spec/occi/parser/text_samples/occi_link_w_category.expected +7 -0
  20. data/spec/occi/parser/text_samples/occi_model_categories.expected +3 -0
  21. data/spec/occi/parser/text_samples/occi_network_rocci_server.body_plain.expected +11 -0
  22. data/spec/occi/parser/text_samples/occi_network_rocci_server.expected +11 -0
  23. data/spec/occi/parser/text_samples/occi_network_rocci_server.resource.header.expected +9 -0
  24. data/spec/occi/parser/text_samples/occi_network_rocci_server.resource.rack.expected +9 -0
  25. data/spec/occi/parser/text_samples/occi_resource_custom_class_w_attributes.parse.expected +15 -0
  26. data/spec/occi/parser/text_samples/occi_resource_custom_class_w_attributes.text +15 -0
  27. data/spec/occi/parser/text_samples/occi_resource_w_inline_links.expected +1 -0
  28. data/spec/occi/parser/text_samples/occi_storage_rocci_server.expected +9 -0
  29. data/spec/occi/parser/text_spec.rb +112 -97
  30. data/spec/occi/parser_spec.rb +30 -24
  31. data/spec/spec_helper.rb +2 -2
  32. metadata +23 -18
  33. data/spec/occi/parser/text_samples/occi_categories.dump +0 -0
  34. data/spec/occi/parser/text_samples/occi_compute_rocci_server.dump +0 -0
  35. data/spec/occi/parser/text_samples/occi_compute_rocci_server.resource.dump +0 -0
  36. data/spec/occi/parser/text_samples/occi_link_resource_instance.dump +0 -0
  37. data/spec/occi/parser/text_samples/occi_link_simple.dump +0 -0
  38. data/spec/occi/parser/text_samples/occi_link_simple.link_string.dump +0 -0
  39. data/spec/occi/parser/text_samples/occi_link_w_attributes.dump +0 -0
  40. data/spec/occi/parser/text_samples/occi_link_w_category.dump +0 -0
  41. data/spec/occi/parser/text_samples/occi_model_rocci_server.dump +0 -0
  42. data/spec/occi/parser/text_samples/occi_network_rocci_server.dump +0 -0
  43. data/spec/occi/parser/text_samples/occi_network_rocci_server.resource.dump +0 -0
  44. data/spec/occi/parser/text_samples/occi_resource_w_attributes.dump +0 -0
  45. data/spec/occi/parser/text_samples/occi_resource_w_inline_links.dump +0 -0
  46. data/spec/occi/parser/text_samples/occi_resource_w_inline_links_only.dump +0 -0
  47. data/spec/occi/parser/text_samples/occi_storage_rocci_server.dump +0 -0
  48. data/spec/occi/parser/text_samples/occi_storage_rocci_server.resource.dump +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3e3409b60570656c2f8e0b3ec71f6d55ae1ecc82
4
- data.tar.gz: 6de77b6298980b43be27ee89b727e4ba48149141
3
+ metadata.gz: 663a8ff9481f04d4d8638876ddedec499a953d0e
4
+ data.tar.gz: 3a898e3fe675a73c8e7a1570f88faed3e0149a90
5
5
  SHA512:
6
- metadata.gz: c9f6afb503d3d7f42be2d6630a3ffe2dfb493228072c8afe48a30d70468ace5b0b1ed93869f36ad651a64753e79dae586687afe78e011935385f5ca45b63cd14
7
- data.tar.gz: 41456629fbb35cfc23d881a7b132c719466c9991cde17fd94b6ad7ef60f7afc34e49f218bcc601e4f8a6d08510ba94f88d5e555f564376c24b6e822ffbaad20d
6
+ metadata.gz: c21fd2284cc4192004cc8ddcbd06f84ee9f3620e2b461ed7107720790eb7140496e9b23b9db8d960e82f2254dc4a19d29ae7763a46b6fcb9a9fa320c64c64e76
7
+ data.tar.gz: 51dd2d1a4a25d1e0bd4f35a5276287e501433c40d431b1242a2e19fef3ad1c29f8a999a1275cb4cd3ff7eede057f15d800850d27f41b328ad019e6cc4fafa447
@@ -38,6 +38,10 @@ module Occi
38
38
 
39
39
  if parent.to_s == 'http://schemas.ogf.org/occi/core#entity'
40
40
  parent = Occi::Core::Entity.kind
41
+ elsif parent.to_s == 'http://schemas.ogf.org/occi/core#resource'
42
+ parent = Occi::Core::Resource.kind
43
+ elsif parent.to_s == 'http://schemas.ogf.org/occi/core#link'
44
+ parent = Occi::Core::Link.kind
41
45
  elsif parent.kind_of? Occi::Core::Kind
42
46
  parent = parent
43
47
  else
@@ -36,7 +36,7 @@ module Occi
36
36
  category = category(line)
37
37
 
38
38
  if category.kind_of? Occi::Core::Kind
39
- resource = Occi::Core::Entity.new(category.type_identifier)
39
+ resource = Occi::Core::Resource.new(category.type_identifier)
40
40
  resource.kind = category
41
41
  end
42
42
  resource.mixins << category if category.kind_of? Occi::Core::Mixin
data/lib/occi/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Occi
2
- VERSION = "4.2.15" unless defined?(::Occi::VERSION)
2
+ VERSION = "4.2.16" unless defined?(::Occi::VERSION)
3
3
  end
@@ -0,0 +1,39 @@
1
+ require 'psych'
2
+
3
+ class ToPlain < Psych::Visitors::Visitor
4
+
5
+ # Scalars are just strings.
6
+ def visit_Psych_Nodes_Scalar o
7
+ o.value
8
+ end
9
+
10
+ # Sequences are arrays.
11
+ def visit_Psych_Nodes_Sequence o
12
+ o.children.each_with_object([]) do |child, list|
13
+ list << accept(child)
14
+ end
15
+ end
16
+
17
+ # Mappings are hashes.
18
+ def visit_Psych_Nodes_Mapping o
19
+ o.children.each_slice(2).each_with_object({}) do |(k,v), h|
20
+ h[accept(k)] = accept(v)
21
+ end
22
+ end
23
+
24
+ # We also need to handle documents...
25
+ def visit_Psych_Nodes_Document o
26
+ accept o.root
27
+ end
28
+
29
+ # ... and streams.
30
+ def visit_Psych_Nodes_Stream o
31
+ o.children.map { |c| accept c }
32
+ end
33
+
34
+ # Aliases aren't handles here :-(
35
+ def visit_Psych_Nodes_Alias o
36
+ # Not implemented!
37
+ end
38
+
39
+ end
@@ -0,0 +1,32 @@
1
+ require 'hashie'
2
+
3
+ class YAMLHash < Hashie::Mash
4
+
5
+ def load_file fs
6
+ f = File.open(fs, "rt")
7
+ self.load f.read
8
+ f.close
9
+ end
10
+
11
+ def load s
12
+ lin = s.lines
13
+ stack = Array.new
14
+ while (true) do
15
+ begin
16
+ line = lin.next
17
+ rescue
18
+ break
19
+ end
20
+
21
+ next if /^---/.match(line)
22
+
23
+ currentDepth = line.scan(/^\s*/).first.length / 2
24
+ while (currentDepth) < stack.length
25
+ stack.pop
26
+ end
27
+
28
+ stack.push(line.lstrip.chomp.gsub(/\s*$/, "").gsub(/[\*\&]\d+/, "Ptr-Emptied").gsub(/[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}/, "ID-Emptied").gsub(/ ! /, " "))
29
+ self[stack] = nil
30
+ end
31
+ end
32
+ end
@@ -9,7 +9,7 @@ module Occi
9
9
  resource = model.get_by_id Occi::Core::Resource.type_identifier
10
10
  resource.location = '/new_location/'
11
11
  categories.model = model
12
- categories.first.location.should == '/new_location/'
12
+ expect(categories.first.location).to eq '/new_location/'
13
13
  end
14
14
 
15
15
  it "replaces a category string when a model is added with the instance from the model" do
@@ -20,7 +20,7 @@ module Occi
20
20
 
21
21
  resource = model.get_by_id Occi::Core::Resource.type_identifier
22
22
  resource.location = '/new_location/'
23
- categories.first.location.should == '/new_location/'
23
+ expect(categories.first.location).to eq '/new_location/'
24
24
  end
25
25
 
26
26
  end
@@ -67,8 +67,8 @@ module Occi
67
67
  it "returns all registered categories" do
68
68
  model = Occi::Model.new
69
69
  collection = model.get
70
- expected=Marshal.restore("\x04\bo:\x10Occi::Model\n:\v@kindso:\x16Occi::Core::Kinds\x06:\n@hash{\bo:\x15Occi::Core::Kind\x0E:\f@schemeI\"&http://schemas.ogf.org/occi/core#\x06:\x06EF:\n@termI\"\ventity\x06;\vF:\v@titleI\"\ventity\x06;\vF:\x10@attributesC:\eOcci::Core::Attributes{\x06I\"\tocci\x06;\vFC;\x0F{\x06I\"\tcore\x06;\vFC;\x0F{\tI\"\aid\x06;\vFo:\eOcci::Core::Properties\v:\r@default0:\n@typeI\"\vstring\x06;\vF:\x0E@requiredF:\r@mutableF:\r@patternI\"A[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}\x06;\vF:\x11@description0I\"\b_id\x06;\vFo;\x10\v;\x110;\x12@\x13;\x13F;\x14F;\x15@\x14;\x160I\"\ntitle\x06;\vFo;\x10\v;\x110;\x12I\"\vstring\x06;\vF;\x13F;\x14T;\x15I\"\a.*\x06;\vF;\x160I\"\v_title\x06;\vFo;\x10\v;\x110;\x12@\x19;\x13F;\x14T;\x15@\x1A;\x160:\f@parent0:\r@actionso:\x18Occi::Core::Actions\x06;\b{\x00:\x0E@entitieso:\x19Occi::Core::Entities\x06;\b{\x00:\x0E@locationI\"\r/entity/\x06;\vF:\v@model@\x00To;\t\x0E;\nI\"&http://schemas.ogf.org/occi/core#\x06;\vF;\fI\"\rresource\x06;\vF;\rI\"\rresource\x06;\vF;\x0EC;\x0F{\x06@\rC;\x0F{\x06@\x0FC;\x0F{\v@\x11@\x12@\x15@\x16@\x17@\x18@\e@\x1CI\"\fsummary\x06;\vFo;\x10\v;\x110;\x12I\"\vstring\x06;\vF;\x13F;\x14T;\x15I\"\a.*\x06;\vF;\x160I\"\r_summary\x06;\vFo;\x10\v;\x110;\x12@+;\x13F;\x14T;\x15@,;\x160;\x17@\b;\x18o;\x19\x06;\b{\x00;\x1Ao;\e\x06;\b{\x06o:\x19Occi::Core::Resource\r:\n@kind@\":\f@mixinso:\x17Occi::Core::Mixins\b;\b{\x00;\x1Do;\x00\n;\x06o;\a\x06;\b{\b@\bT@\"To;\t\x0E;\nI\"&http://schemas.ogf.org/occi/core#\x06;\vF;\fI\"\tlink\x06;\vF;\rI\"\tlink\x06;\vF;\x0EC;\x0F{\x06@\rC;\x0F{\x06@\x0FC;\x0F{\r@\x11@\x12@\x15@\x16@\x17@\x18@\e@\x1CI\"\vtarget\x06;\vFo;\x10\v;\x110;\x12I\"\vstring\x06;\vF;\x13F;\x14T;\x15I\"\a.*\x06;\vF;\x160I\"\f_target\x06;\vFo;\x10\v;\x110;\x12@B;\x13F;\x14T;\x15@C;\x160I\"\vsource\x06;\vFo;\x10\v;\x110;\x12I\"\vstring\x06;\vF;\x13F;\x14T;\x15I\"\a.*\x06;\vF;\x160I\"\f_source\x06;\vFo;\x10\v;\x110;\x12@H;\x13F;\x14T;\x15@I;\x160;\x17@\b;\x18o;\x19\x06;\b{\x00;\x1Ao;\e\x06;\b{\x06o:\x15Occi::Core::Link\x0F;\x1F@9; o;!\b;\b{\x00;\x1D@6:\f@entity@P;\x0EIC;\x0F{\x06@\rIC;\x0F{\x06@\x0FIC;\x0F{\r@\x11I\")45284ebc-3397-468b-9d3b-863a24075ea2\x06;\vT@\x15@\x16@\x170@\e@\x1C@@0@D@E@F0@J@K\x06:\x0F@convertedT\x06;$T\x06;$T;\x18o;\x19\a;\b{\x00;\x1D@6;\x1C0:\t@rel@9:\f@target0;\x1D@6:\b@id@V:\f@source0T;\x1CI\"\v/link/\x06;\vF;\x1D@\x00T; o;!\x06;\b{\x00;\x18o;\x19\x06;\b{\x00:\x0F@resourceso:\x1AOcci::Core::Resources\x06;\b{\x00:\v@linkso:\x16Occi::Core::Links\x06;\b{\x00;\#@3;\x0EIC;\x0F{\x06@\rIC;\x0F{\x06@\x0FIC;\x0F{\v@\x11I\")aa7baa55-23dc-42fe-aa2d-45fba74d1a4e\x06;\vT@\x15@\x16@\x170@\e@\x1C@)0@-@.\x06;$T\x06;$T\x06;$T;\x18o;\x19\a;\b{\x00;\x1D@6;\x1C0;+o;,\a;\b{\x00;\x1D@6;\x1D@6;'@eT;\x1CI\"\x0F/resource/\x06;\vF;\x1D@\x00T@9T; o;!\x06;\b{\x00;\x18o;\x19\x06;\b{\x00;)o;*\x06;\b{\x00;+o;,\x06;\b{\x00")
71
- expect(collection).to eql expected
70
+ expected = File.open("spec/occi/parser/text_samples/occi_model_categories.expected", "rt").read
71
+ expect(collection.to_text).to eql expected
72
72
  end
73
73
 
74
74
  context "for categories with filter" do
@@ -0,0 +1,2 @@
1
+ Category: a_a1-_;scheme="http://a.a/a#";class="kind";title="aA1!§$%&/()=?`´ß+*#-_.:,;<>";rel="http://a.a/b#a";location="/a1-A/";attributes="a_1-_.a1-_a a-1.a.b";actions="http://a.a/a1#a1 http://a.b1/b1#b2"
2
+ Category: a_a2-_;scheme="http://a.a/a#";class="kind";title="aA2!§$%&/()=?`´ß+*#-_.:,;<>";rel="http://a.a/b#a";location="/a2-A/";attributes="a_2-_.a2-_a a-2.a.b";actions="http://a.a/a2#a2 http://a.b2/b2#b2"
@@ -0,0 +1,2 @@
1
+ Category: a_a1-_;scheme="http://a.a/a#";class="kind";title="aA1!§$%&/()=?`´ß+*#-_.:,;<>";rel="http://a.a/b#a";location="/a1-A/";attributes="a_1-_.a1-_a a-1.a.b";actions="http://a.a/a1#a1 http://a.b1/b1#b2"
2
+ Category: a_a2-_;scheme="http://a.a/a#";class="kind";title="aA2!§$%&/()=?`´ß+*#-_.:,;<>";rel="http://a.a/b#a";location="/a2-A/";attributes="a_2-_.a2-_a a-2.a.b";actions="http://a.a/a2#a2 http://a.b2/b2#b2"
@@ -0,0 +1,2 @@
1
+ Category: a_a1-_;scheme="http://a.a/a#";class="kind";title="aA1!§$%&/()=?`´ß+*#-_.:,;<>";rel="http://a.a/b#a";location="/a1-A/";attributes="a_1-_.a1-_a a-1.a.b";actions="http://a.a/a1#a1 http://a.b1/b1#b2"
2
+ Category: a_a2-_;scheme="http://a.a/a#";class="kind";title="aA2!§$%&/()=?`´ß+*#-_.:,;<>";rel="http://a.a/b#a";location="/a2-A/";attributes="a_2-_.a2-_a a-2.a.b";actions="http://a.a/a2#a2 http://a.b2/b2#b2"
@@ -1,2 +1,2 @@
1
- Category: a_a1-_;scheme="http://a.a/a#";class="kind";title="aA1!\"§$%&/()=?`´ß+*#-_.:,;<>";rel="http://a.a/b#a";location="/a1-A/";attributes="a_1-_.a1-_a a-1.a.b";actions="http://a.a/a1#a1 http://a.b1/b1#b2"
2
- Category: a_a2-_;scheme="http://a.a/a#";class="kind";title="aA2!\"§$%&/()=?`´ß+*#-_.:,;<>";rel="http://a.a/b#a";location="/a2-A/";attributes="a_2-_.a2-_a a-2.a.b";actions="http://a.a/a2#a2 http://a.b2/b2#b2"
1
+ Category: a_a1-_;scheme="http://a.a/a#";class="kind";title="aA1!§$%&/()=?`´ß+*#-_.:,;<>";rel="http://a.a/b#a";location="/a1-A/";attributes="a_1-_.a1-_a a-1.a.b";actions="http://a.a/a1#a1 http://a.b1/b1#b2"
2
+ Category: a_a2-_;scheme="http://a.a/a#";class="kind";title="aA2!§$%&/()=?`´ß+*#-_.:,;<>";rel="http://a.a/b#a";location="/a2-A/";attributes="a_2-_.a2-_a a-2.a.b";actions="http://a.a/a2#a2 http://a.b2/b2#b2"
@@ -0,0 +1,11 @@
1
+ Category: compute;scheme="http://schemas.ogf.org/occi/infrastructure#";class="kind";location="/compute/";title=nil
2
+ Category: compute;scheme="http://opennebula.org/occi/infrastructure#";class="mixin";location="/mixin/compute/";title=""
3
+ X-OCCI-Attribute: occi.core.id="4ddbfeae-22d7-5e50-8f85-ba18589e876b"
4
+ X-OCCI-Attribute: occi.core.title="MonTest1"
5
+ X-OCCI-Attribute: occi.compute.cores=1
6
+ X-OCCI-Attribute: occi.compute.memory=0.256
7
+ X-OCCI-Attribute: occi.compute.state="active"
8
+ X-OCCI-Attribute: org.opennebula.compute.cpu=1.0
9
+ Link: </storage/e60aa2b8-0c86-5973-b93e-30c5c46d6eac>;rel="http://schemas.ogf.org/occi/infrastructure#storage";self="/storagelink/b2f7f1de-c60c-5b08-879c-81f52429c4ef";category="http://schemas.ogf.org/occi/infrastructure#storagelink";occi.core.id="b2f7f1de-c60c-5b08-879c-81f52429c4ef";occi.core.title="monitoring";occi.storagelink.deviceid="xvda";occi.storagelink.state="inactive";org.opennebula.storagelink.bus="ide";org.opennebula.storagelink.driver="tap2:tapdisk:aio:"
10
+ Link: </network/e4bd81c4-adda-5626-840d-39bb7959db97>;rel="http://schemas.ogf.org/occi/infrastructure#network";self="/networkinterface/e75ab249-9325-511c-82b8-a7e4430381e3";category="http://schemas.ogf.org/occi/infrastructure#networkinterface";occi.core.id="e75ab249-9325-511c-82b8-a7e4430381e3";occi.core.title="monitoring";occi.networkinterface.address="192.168.254.1";occi.networkinterface.mac="02:00:c0:a8:fe:01";occi.networkinterface.state="inactive";org.opennebula.networkinterface.bridge="xenbr0"Link: </storage/e60aa2b8-0c86-5973-b93e-30c5c46d6eac>;rel="http://schemas.ogf.org/occi/infrastructure#storage";self="/storagelink/b2f7f1de-c60c-5b08-879c-81f52429c4ef";category="http://schemas.ogf.org/occi/infrastructure#storagelink";occi.core.id="b2f7f1de-c60c-5b08-879c-81f52429c4ef";occi.core.title="monitoring";occi.storagelink.deviceid="xvda";occi.storagelink.state="inactive";org.opennebula.storagelink.bus="ide";org.opennebula.storagelink.driver="tap2:tapdisk:aio:"
11
+ Link: </network/e4bd81c4-adda-5626-840d-39bb7959db97>;rel="http://schemas.ogf.org/occi/infrastructure#network";self="/networkinterface/e75ab249-9325-511c-82b8-a7e4430381e3";category="http://schemas.ogf.org/occi/infrastructure#networkinterface";occi.core.id="e75ab249-9325-511c-82b8-a7e4430381e3";occi.core.title="monitoring";occi.networkinterface.address="192.168.254.1";occi.networkinterface.mac="02:00:c0:a8:fe:01";occi.networkinterface.state="inactive";org.opennebula.networkinterface.bridge="xenbr0"
@@ -0,0 +1,7 @@
1
+ Category: networkinterface;scheme="http://schemas.ogf.org/occi/infrastructure#";class="kind";location="/networkinterface/";title=nil
2
+ X-OCCI-Attribute: occi.core.id="b2f7f1de-c60c-5b08-879c-81f52429c4ef"
3
+ X-OCCI-Attribute: occi.core.target="/network/123"
4
+ X-OCCI-Attribute: occi.core.source="/vms/foo/vm1"
5
+ X-OCCI-Attribute: occi.networkinterface.interface="eth0"
6
+ X-OCCI-Attribute: occi.networkinterface.mac="00:11:22:33:44:55"
7
+ X-OCCI-Attribute: occi.networkinterface.state="active"
@@ -0,0 +1,7 @@
1
+ Category: networkinterface;scheme="http://schemas.ogf.org/occi/infrastructure#";class="kind";location="/networkinterface/";title=nil
2
+ X-OCCI-Attribute: occi.core.id="b2f7f1de-c60c-5b08-879c-81f52429c4ef"
3
+ X-OCCI-Attribute: occi.core.target="/network/123"
4
+ X-OCCI-Attribute: occi.core.source="/vms/foo/vm1"
5
+ X-OCCI-Attribute: occi.networkinterface.interface="eth0"
6
+ X-OCCI-Attribute: occi.networkinterface.mac="00:11:22:33:44:55"
7
+ X-OCCI-Attribute: occi.networkinterface.state="active"
@@ -0,0 +1,7 @@
1
+ Category: networkinterface;scheme="http://schemas.ogf.org/occi/infrastructure#";class="kind";location="/networkinterface/";title=nil
2
+ X-OCCI-Attribute: occi.core.id="b2f7f1de-c60c-5b08-879c-81f52429c4ef"
3
+ X-OCCI-Attribute: occi.core.target="/network/123"
4
+ X-OCCI-Attribute: occi.core.source="/vms/foo/vm1"
5
+ X-OCCI-Attribute: occi.networkinterface.interface="eth0"
6
+ X-OCCI-Attribute: occi.networkinterface.mac="00:11:22:33:44:55"
7
+ X-OCCI-Attribute: occi.networkinterface.state="active"
@@ -0,0 +1,7 @@
1
+ Category: storagelink;scheme="http://schemas.ogf.org/occi/infrastructure#";class="kind";location="/link/storagelink/";title="storage link"
2
+ X-OCCI-Attribute: occi.core.id="b2f7f1de-c60c-5b08-879c-81f52429c4ef"
3
+ X-OCCI-Attribute: occi.core.title="monitoring"
4
+ X-OCCI-Attribute: occi.storagelink.deviceid="xvda"
5
+ X-OCCI-Attribute: occi.storagelink.state="inactive"
6
+ X-OCCI-Attribute: org.opennebula.storagelink.bus="ide"
7
+ X-OCCI-Attribute: org.opennebula.storagelink.driver="tap2:tapdisk:aio:"
@@ -0,0 +1,7 @@
1
+ Category: storagelink;scheme="http://schemas.ogf.org/occi/infrastructure#";class="kind";location="/link/storagelink/";title="storage link"
2
+ X-OCCI-Attribute: occi.core.id="b2f7f1de-c60c-5b08-879c-81f52429c4ef"
3
+ X-OCCI-Attribute: occi.core.title="monitoring"
4
+ X-OCCI-Attribute: occi.storagelink.deviceid="xvda"
5
+ X-OCCI-Attribute: occi.storagelink.state="inactive"
6
+ X-OCCI-Attribute: org.opennebula.storagelink.bus="ide"
7
+ X-OCCI-Attribute: org.opennebula.storagelink.driver="tap2:tapdisk:aio:"
@@ -0,0 +1,7 @@
1
+ Category: storagelink;scheme="http://schemas.ogf.org/occi/infrastructure#";class="kind";location="/link/storagelink/";title="storage link"
2
+ X-OCCI-Attribute: occi.core.id="b2f7f1de-c60c-5b08-879c-81f52429c4ef"
3
+ X-OCCI-Attribute: occi.core.title="monitoring"
4
+ X-OCCI-Attribute: occi.storagelink.deviceid="xvda"
5
+ X-OCCI-Attribute: occi.storagelink.state="inactive"
6
+ X-OCCI-Attribute: org.opennebula.storagelink.bus="ide"
7
+ X-OCCI-Attribute: org.opennebula.storagelink.driver="tap2:tapdisk:aio:"
@@ -0,0 +1,3 @@
1
+ Category: entity;scheme="http://schemas.ogf.org/occi/core#";class="kind";title="entity";location="/entity/";attributes="occi.core.id{immutable} occi.core.title string_attribute"
2
+ Category: resource;scheme="http://schemas.ogf.org/occi/core#";class="kind";title="resource";rel="http://schemas.ogf.org/occi/core#entity";location="/new_location/";attributes="occi.core.id{immutable} occi.core.title occi.core.summary"
3
+ Category: link;scheme="http://schemas.ogf.org/occi/core#";class="kind";title="link";rel="http://schemas.ogf.org/occi/core#entity";location="/link/";attributes="occi.core.id{immutable} occi.core.title occi.core.target occi.core.source stringtype{required} stringtypeoptional"
@@ -0,0 +1,11 @@
1
+ Category: network;scheme="http://schemas.ogf.org/occi/infrastructure#";class="kind";location="/network/";title=nil
2
+ Category: network;scheme="http://opennebula.org/occi/infrastructure#";class="mixin";location="/mixin/network/";title=""
3
+ Category: ipnetwork;scheme="http://schemas.ogf.org/occi/infrastructure#";class="mixin";location="/mixin/ipnetwork/";title=""
4
+ X-OCCI-Attribute: occi.core.id="e4bd81c4-adda-5626-840d-39bb7959db97"
5
+ X-OCCI-Attribute: occi.core.title="monitoring"
6
+ X-OCCI-Attribute: occi.network.state="active"
7
+ X-OCCI-Attribute: occi.network.address="192.168.254.0"
8
+ X-OCCI-Attribute: occi.network.allocation="dynamic"
9
+ X-OCCI-Attribute: org.opennebula.network.id="6"
10
+ X-OCCI-Attribute: org.opennebula.network.bridge="xenbr0"
11
+ X-OCCI-Attribute: org.opennebula.network.vlan="NO"
@@ -0,0 +1,11 @@
1
+ Category: network;scheme="http://schemas.ogf.org/occi/infrastructure#";class="kind";location="/network/";title=nil
2
+ Category: network;scheme="http://opennebula.org/occi/infrastructure#";class="mixin";location="/mixin/network/";title=""
3
+ Category: ipnetwork;scheme="http://schemas.ogf.org/occi/infrastructure#";class="mixin";location="/mixin/ipnetwork/";title=""
4
+ X-OCCI-Attribute: occi.core.id="e4bd81c4-adda-5626-840d-39bb7959db97"
5
+ X-OCCI-Attribute: occi.core.title="monitoring"
6
+ X-OCCI-Attribute: occi.network.state="active"
7
+ X-OCCI-Attribute: occi.network.address="192.168.254.0"
8
+ X-OCCI-Attribute: occi.network.allocation="dynamic"
9
+ X-OCCI-Attribute: org.opennebula.network.id="6"
10
+ X-OCCI-Attribute: org.opennebula.network.bridge="xenbr0"
11
+ X-OCCI-Attribute: org.opennebula.network.vlan="NO"
@@ -0,0 +1,9 @@
1
+ Category: network;scheme="http://schemas.ogf.org/occi/infrastructure#";class="kind";location="/network/";title=nil
2
+ X-OCCI-Attribute: occi.core.id="e4bd81c4-adda-5626-840d-39bb7959db97"
3
+ X-OCCI-Attribute: occi.core.title="monitoring"
4
+ X-OCCI-Attribute: occi.network.state="active"
5
+ X-OCCI-Attribute: occi.network.address="192.168.254.0"
6
+ X-OCCI-Attribute: occi.network.allocation="dynamic"
7
+ X-OCCI-Attribute: org.opennebula.network.bridge="xenbr0"
8
+ X-OCCI-Attribute: org.opennebula.network.id="6"
9
+ X-OCCI-Attribute: org.opennebula.network.vlan="NO"
@@ -0,0 +1,9 @@
1
+ Category: network;scheme="http://schemas.ogf.org/occi/infrastructure#";class="kind";location="/network/";title=nil
2
+ X-OCCI-Attribute: occi.core.id="e4bd81c4-adda-5626-840d-39bb7959db97"
3
+ X-OCCI-Attribute: occi.core.title="monitoring"
4
+ X-OCCI-Attribute: occi.network.state="active"
5
+ X-OCCI-Attribute: occi.network.address="192.168.254.0"
6
+ X-OCCI-Attribute: occi.network.allocation="dynamic"
7
+ X-OCCI-Attribute: org.opennebula.network.bridge="xenbr0"
8
+ X-OCCI-Attribute: org.opennebula.network.id="6"
9
+ X-OCCI-Attribute: org.opennebula.network.vlan="NO"
@@ -0,0 +1,15 @@
1
+ Category: fogbow_request;scheme="http://schemas.fogbowcloud.org/request#";class="kind";location="/fogbow_request/";title="Request new Instances"
2
+ Category: fogbow_small;scheme="http://schemas.fogbowcloud.org/template/resource#";class="mixin";location="/fogbow_small/";title="Small Flavor"
3
+ Category: fogbow-linux-x86;scheme="http://schemas.fogbowcloud.org/template/os#";class="mixin";location="/fogbow-linux-x86/";title="fogbow-linux-x86 image"
4
+ Category: fogbow_userdata;scheme="http://schemas.fogbowcloud.org/request#";class="mixin";location="/fogbow_userdata/";title=""
5
+ X-OCCI-Attribute: occi.core.id="e076376a-a0d3-448b-b065-d1b63e729f6a"
6
+ X-OCCI-Attribute: occi.core.title="my test"
7
+ X-OCCI-Attribute: org.fogbowcloud.request.ssh-public-address="150.165.15.81:40000"
8
+ X-OCCI-Attribute: org.fogbowcloud.request.user-data="IyEvYmluL3NoCi91c3IvYmluL3NzaCAteSAtTiAtZiAtUiAwLjAuMC4wOjQwMDAwOmxvY2FsaG9zdDoyMiBmb2d0ZXN0QDEwLjEuMC40MyAtcCAyMgo"
9
+ X-OCCI-Attribute: org.fogbowcloud.request.type="one-time"
10
+ X-OCCI-Attribute: org.fogbowcloud.request.ssh-address="10.1.0.43:40000"
11
+ X-OCCI-Attribute: org.fogbowcloud.request.instance-count="1"
12
+ X-OCCI-Attribute: org.fogbowcloud.request.valid-from="Not defined"
13
+ X-OCCI-Attribute: org.fogbowcloud.request.valid-until="Not defined"
14
+ X-OCCI-Attribute: org.fogbowcloud.request.state="failed"
15
+ X-OCCI-Attribute: org.fogbowcloud.request.instance-id="null"
@@ -0,0 +1,15 @@
1
+ Category: fogbow_request; scheme="http://schemas.fogbowcloud.org/request#"; class="kind"; title="Request new Instances"; rel="http://schemas.ogf.org/occi/core#resource"; location="http://localhost:8182/fogbow_request/"; attributes="org.fogbowcloud.request.instance-count org.fogbowcloud.request.type org.fogbowcloud.request.valid-until org.fogbowcloud.request.valid-from org.fogbowcloud.request.state org.fogbowcloud.request.instance-id"
2
+ Category: fogbow_small; scheme="http://schemas.fogbowcloud.org/template/resource#"; class="mixin"; title="Small Flavor"; rel="http://schemas.ogf.org/occi/infrastructure#resource_tpl"; location="http://localhost:8182/fogbow_small/"
3
+ Category: fogbow-linux-x86; scheme="http://schemas.fogbowcloud.org/template/os#"; class="mixin"; title="fogbow-linux-x86 image"; rel="http://schemas.ogf.org/occi/infrastructure#os_tpl"; location="http://localhost:8182/fogbow-linux-x86/"
4
+ Category: fogbow_userdata; scheme="http://schemas.fogbowcloud.org/request#"; class="mixin"; location="http://localhost:8182/fogbow_userdata/"
5
+ X-OCCI-Attribute: occi.core.id="e076376a-a0d3-448b-b065-d1b63e729f6a"
6
+ X-OCCI-Attribute: occi.core.title="my test"
7
+ X-OCCI-Attribute: org.fogbowcloud.request.ssh-public-address="150.165.15.81:40000"
8
+ X-OCCI-Attribute: org.fogbowcloud.request.user-data="IyEvYmluL3NoCi91c3IvYmluL3NzaCAteSAtTiAtZiAtUiAwLjAuMC4wOjQwMDAwOmxvY2FsaG9zdDoyMiBmb2d0ZXN0QDEwLjEuMC40MyAtcCAyMgo"
9
+ X-OCCI-Attribute: org.fogbowcloud.request.type="one-time"
10
+ X-OCCI-Attribute: org.fogbowcloud.request.ssh-address="10.1.0.43:40000"
11
+ X-OCCI-Attribute: org.fogbowcloud.request.instance-count="1"
12
+ X-OCCI-Attribute: org.fogbowcloud.request.valid-from="Not defined"
13
+ X-OCCI-Attribute: org.fogbowcloud.request.valid-until="Not defined"
14
+ X-OCCI-Attribute: org.fogbowcloud.request.state="failed"
15
+ X-OCCI-Attribute: org.fogbowcloud.request.instance-id="null"
@@ -0,0 +1 @@
1
+ Category: compute;scheme="http://schemas.ogf.org/occi/infrastructure#";class="kind";title="Compute Resource";rel="http://schemas.ogf.org/occi/core#resource";location="/compute/";attributes="occi.compute.architecture occi.compute.state occi.compute.speed occi.compute.memory occi.compute.cores occi.compute.hostname";actions="http://schemas.ogf.org/occi/infrastructure/compute/action#start http://schemas.ogf.org/occi/infrastructure/compute/action#stop http://schemas.ogf.org/occi/infrastructure/compute/action#restart http://schemas.ogf.org/occi/infrastructure/compute/action#suspend"
@@ -0,0 +1,9 @@
1
+ Category: storage;scheme="http://schemas.ogf.org/occi/infrastructure#";class="kind";location="/storage/";title=nil
2
+ Category: storage;scheme="http://opennebula.org/occi/infrastructure#";class="mixin";location="/mixin/storage/";title=""
3
+ X-OCCI-Attribute: occi.core.id="33601efd-1c81-5547-8e65-6f8ef3dcb8c6"
4
+ X-OCCI-Attribute: occi.core.title="EGI-COMPSs-CESNET_NFS_3"
5
+ X-OCCI-Attribute: occi.storage.state="online"
6
+ X-OCCI-Attribute: org.opennebula.storage.id="116"
7
+ X-OCCI-Attribute: org.opennebula.storage.dev_prefix="xvd"
8
+ X-OCCI-Attribute: org.opennebula.storage.driver="tap2:tapdisk:aio:"
9
+ X-OCCI-Attribute: org.opennebula.storage.persistent="NO"
@@ -5,28 +5,28 @@ module Occi
5
5
  describe Text do
6
6
 
7
7
  context '.category' do
8
-
9
8
  it 'parses a string describing an OCCI Category' do
10
- category_string = 'Category: a_a1-_;scheme="http://a.a/a#";class="kind";title="aA1!\"§$%&/()=?`´ß+*#-_.:,;<>";rel="http://a.a/b#a";location="/a1-A/";attributes="a_1-_.a1-_a a-1.a.b";actions="http://a.a/a1#a1 http://a.b1/b1#b2"'
11
-
9
+ category_string = 'Category: a_a1-_;scheme="http://a.a/a#";class="kind";title="aA1!§$%&/()=?`´ß+*#-_.:,;<>";rel="http://a.a/b#a";location="/a1-A/";attributes="a_1-_.a1-_a a-1.a.b";actions="http://a.a/a1#a1 http://a.b1/b1#b2"'
12
10
  category = Occi::Parser::Text.category category_string
13
- expected = Marshal.restore("\x04\bo:\x15Occi::Core::Kind\r:\f@schemeI\"\x12http://a.a/a#\x06:\x06ET:\n@termI\"\va_a1-_\x06;\aT:\v@titleI\"%aA1!\\\"\xC2\xA7$%&/()=?`\xC2\xB4\xC3\x9F+*#-_.:,;<>\x06;\aT:\x10@attributesC:\eOcci::Core::Attributes{\aI\"\na_1-_\x06;\aTC;\v{\x06I\"\na1-_a\x06;\aTo:\eOcci::Core::Properties\v:\r@default0:\n@typeI\"\vstring\x06;\aF:\x0E@requiredF:\r@mutableF:\r@patternI\"\a.*\x06;\aF:\x11@description0I\"\ba-1\x06;\aTC;\v{\x06I\"\x06a\x06;\aTC;\v{\x06I\"\x06b\x06;\aTo;\f\v;\r0;\x0EI\"\vstring\x06;\aF;\x0FF;\x10F;\x11I\"\a.*\x06;\aF;\x120:\f@parentI\"\x13http://a.a/b#a\x06;\aT:\r@actionso:\x18Occi::Core::Actions\x06:\n@hash{\ao:\x17Occi::Core::Action\t;\x06I\"\x13http://a.a/a1#\x06;\aT;\bI\"\aa1\x06;\aT;\t0;\nC;\v{\x00To;\x17\t;\x06I\"\x14http://a.b1/b1#\x06;\aT;\bI\"\ab2\x06;\aT;\t0;\nC;\v{\x00T:\x0E@entitieso:\x19Occi::Core::Entities\x06;\x16{\x00:\x0E@locationI\"\v/a1-A/\x06;\aT")
14
-
15
- expect(category).to eql expected
11
+ expect(category.to_text).to eql category_string
16
12
  end
17
13
 
18
14
  it 'parses a string describing an OCCI Category with unquoted class value' do
19
- category_string = 'Category: a_a1-_;scheme="http://a.a/a#";class=kind'
20
- expected = Marshal.restore("\x04\bo:\x15Occi::Core::Kind\r:\f@schemeI\"\x12http://a.a/a#\x06:\x06ET:\n@termI\"\va_a1-_\x06;\aT:\v@title0:\x10@attributesC:\eOcci::Core::Attributes{\x00:\f@parent0:\r@actionso:\x18Occi::Core::Actions\x06:\n@hash{\x00:\x0E@entitieso:\x19Occi::Core::Entities\x06;\x0F{\x00:\x0E@locationI\"\r/a_a1-_/\x06;\aF")
15
+ category_string = 'Category: a_a1-_;scheme="http://a.a/a#";class="kind"'
16
+ category = Occi::Parser::Text.category category_string
17
+ expect(category.to_text).to eql "#{category_string};location=\"/a_a1-_/\""
18
+ end
19
+
20
+ it 'parses a string describing an OCCI Category with unquoted class value and explicit location' do
21
+ category_string = 'Category: a_a1-_;scheme="http://a.a/a#";class="kind";location="/a_a1-_/"'
21
22
  category = Occi::Parser::Text.category category_string
22
- expect(category).to eql expected
23
+ expect(category.to_text).to eql category_string
23
24
  end
24
25
 
25
26
  it 'parses a string describing an OCCI Category with uppercase term' do
26
- category_string = 'Category: TERM;scheme="http://a.a/a#";class=kind'
27
- expected = Marshal.restore("\x04\bo:\x15Occi::Core::Kind\r:\f@schemeI\"\x12http://a.a/a#\x06:\x06ET:\n@termI\"\tterm\x06;\aT:\v@title0:\x10@attributesC:\eOcci::Core::Attributes{\x00:\f@parent0:\r@actionso:\x18Occi::Core::Actions\x06:\n@hash{\x00:\x0E@entitieso:\x19Occi::Core::Entities\x06;\x0F{\x00:\x0E@locationI\"\v/term/\x06;\aF")
27
+ category_string = 'Category: TERM;scheme="http://a.a/a#";class="kind"'
28
28
  category = Occi::Parser::Text.category category_string
29
- expect(category).to eql expected
29
+ expect(category.to_text).to eql 'Category: term;scheme="http://a.a/a#";class="kind";location="/term/"'
30
30
  end
31
31
 
32
32
  it 'parses a string describing an OCCI Category incl. attributes with properties' do
@@ -40,62 +40,54 @@ module Occi
40
40
  end
41
41
 
42
42
  it 'parses attributes correctly' do
43
- resource_string = File.open("spec/occi/parser/text_samples/occi_resource_w_attributes.text", "rb").read
44
- expected = Marshal.load(File.open("spec/occi/parser/text_samples/occi_resource_w_attributes.dump", "rb"))
45
- collection = Occi::Parser::Text.category resource_string
46
- expect(collection).to eql expected
43
+ resource_string = File.open("spec/occi/parser/text_samples/occi_resource_w_attributes.text", "rt").read
44
+ category = Occi::Parser::Text.category resource_string
45
+ expect(category.to_text).to eql "Category: compute;scheme=\"http://schemas.ogf.org/occi/infrastructure#\";class=\"kind\";location=\"/compute/\""
47
46
  end
48
47
 
49
48
  it 'parses inline links correctly' do
50
- resource_string = File.open("spec/occi/parser/text_samples/occi_resource_w_inline_links_only.text", "rb").read
51
- expected = Marshal.load(File.open("spec/occi/parser/text_samples/occi_resource_w_inline_links_only.dump", "rb"))
52
- collection = Occi::Parser::Text.category resource_string
53
- expect(collection).to eql expected
49
+ resource_string = File.open("spec/occi/parser/text_samples/occi_resource_w_inline_links_only.text", "rt").read
50
+ category = Occi::Parser::Text.category resource_string
51
+ expect(category.to_text).to eql "Category: compute;scheme=\"http://schemas.ogf.org/occi/infrastructure#\";class=\"kind\";location=\"/compute/\""
54
52
  end
55
53
 
56
54
  it 'parses inline Links and Mixins correctly' do
57
- resource_string = File.open("spec/occi/parser/text_samples/occi_resource_w_inline_links.text", "rb").read
58
- expected = Marshal.load(File.open("spec/occi/parser/text_samples/occi_resource_w_inline_links.dump", "rb"))
59
- collection = Occi::Parser::Text.category resource_string
60
- expect(collection).to eql expected
55
+ resource_string = File.open("spec/occi/parser/text_samples/occi_resource_w_inline_links.text", "rt").read
56
+ category = Occi::Parser::Text.category resource_string
57
+ expected = File.open("spec/occi/parser/text_samples/occi_resource_w_inline_links.expected", "rt").read.chomp
58
+ expect(category.to_text).to eql expected
61
59
  end
62
60
 
63
61
  it 'parses action correctly' do
64
62
  category_string = 'Category: restart;scheme="http://schemas.ogf.org/occi/infrastructure/compute/action#";class="action";title="Restart Compute instance";attributes="method"'
65
63
  category = Occi::Parser::Text.category category_string
66
- expected = Marshal.restore("\x04\bo:\x17Occi::Core::Action\t:\f@schemeI\"?http://schemas.ogf.org/occi/infrastructure/compute/action#\x06:\x06ET:\n@termI\"\frestart\x06;\aT:\v@titleI\"\x1DRestart Compute instance\x06;\aT:\x10@attributesC:\eOcci::Core::Attributes{\x06I\"\vmethod\x06;\aTo:\eOcci::Core::Properties\v:\r@default0:\n@typeI\"\vstring\x06;\aF:\x0E@requiredF:\r@mutableF:\r@patternI\"\a.*\x06;\aF:\x11@description0")
67
-
68
- expect(category).to eql expected
64
+ expect(category.to_text).to eql category_string
69
65
  end
70
66
 
71
67
  it 'parses network resource from rOCCI server' do
72
- resource_string = File.open("spec/occi/parser/text_samples/occi_network_rocci_server.text", "rb").read
73
- expected = Marshal.load(File.open("spec/occi/parser/text_samples/occi_network_rocci_server.dump", "rb"))
74
- collection = Occi::Parser::Text.category resource_string
75
- expect(collection).to eql expected
68
+ resource_string = File.open("spec/occi/parser/text_samples/occi_network_rocci_server.text", "rt").read
69
+ category = Occi::Parser::Text.category resource_string
70
+ expect(category.to_text).to eql "Category: network;scheme=\"http://schemas.ogf.org/occi/infrastructure#\";class=\"kind\";location=\"/network/\""
76
71
  end
77
-
72
+
78
73
  it 'parses storage resource from rOCCI server' do
79
- resource_string = File.open("spec/occi/parser/text_samples/occi_storage_rocci_server.text", "rb").read
80
- expected = Marshal.load(File.open("spec/occi/parser/text_samples/occi_storage_rocci_server.dump", "rb"))
81
- collection = Occi::Parser::Text.category resource_string
82
- expect(collection).to eql expected
74
+ resource_string = File.open("spec/occi/parser/text_samples/occi_storage_rocci_server.text", "rt").read
75
+ category = Occi::Parser::Text.category resource_string
76
+ expect(category.to_text).to eql "Category: storage;scheme=\"http://schemas.ogf.org/occi/infrastructure#\";class=\"kind\";location=\"/storage/\""
83
77
  end
84
-
78
+
85
79
  it 'parses compute resource from rOCCI server' do
86
- resource_string = File.open("spec/occi/parser/text_samples/occi_compute_rocci_server.text", "rb").read
87
- expected = Marshal.load(File.open("spec/occi/parser/text_samples/occi_compute_rocci_server.dump", "rb"))
88
- collection = Occi::Parser::Text.category resource_string
89
- expect(collection).to eql expected
80
+ resource_string = File.open("spec/occi/parser/text_samples/occi_compute_rocci_server.text", "rt").read
81
+ category = Occi::Parser::Text.category resource_string
82
+ expect(category.to_text).to eql "Category: compute;scheme=\"http://schemas.ogf.org/occi/infrastructure#\";class=\"kind\";location=\"/compute/\""
90
83
  end
91
-
84
+
92
85
  it 'parses model from rOCCI server' do
93
- resource_string = File.open("spec/occi/parser/text_samples/occi_model_rocci_server.text", "rb").read
94
- expected = Marshal.load(File.open("spec/occi/parser/text_samples/occi_model_rocci_server.dump", "rb"))
95
- collection = Occi::Parser::Text.category resource_string
96
- expect(collection).to eql expected
86
+ resource_string = File.open("spec/occi/parser/text_samples/occi_model_rocci_server.text", "rt").read
87
+ category = Occi::Parser::Text.category resource_string
88
+
97
89
  end
98
-
90
+
99
91
  it 'raises error for obviously nonsensical class' do
100
92
  category_string = 'Category: restart;scheme="http://schemas.ogf.org/occi/infrastructure/compute/action#";class="actions";title="Restart Compute instance";attributes="method"'
101
93
  expect{ category = Occi::Parser::Text.category category_string }.to raise_error(Occi::Errors::ParserInputError)
@@ -122,53 +114,62 @@ module Occi
122
114
 
123
115
  context '.resource' do
124
116
  it 'parses network resource from rOCCI server' do
125
- resource_string = File.open("spec/occi/parser/text_samples/occi_network_rocci_server.text", "rb").read
126
- expected = Marshal.load(File.open("spec/occi/parser/text_samples/occi_network_rocci_server.resource.dump", "rb"))
127
- resource = Occi::Parser::Text.resource resource_string
128
- expect(resource).to eql expected
117
+ resource_string = File.open("spec/occi/parser/text_samples/occi_network_rocci_server.text", "rt").read
118
+ resource = Occi::Parser::Text.resource resource_string
119
+ expected = File.open("spec/occi/parser/text_samples/occi_network_rocci_server.expected", "rt").read.chomp
120
+ expect(resource.to_text).to eql expected
129
121
  end
130
122
 
131
123
  it 'parses storage resource from rOCCI server' do
132
- resource_string = File.open("spec/occi/parser/text_samples/occi_storage_rocci_server.text", "rb").read
133
- expected = Marshal.load(File.open("spec/occi/parser/text_samples/occi_storage_rocci_server.resource.dump", "rb"))
134
- resource = Occi::Parser::Text.resource resource_string
135
- expect(resource).to eql expected
124
+ resource_string = File.open("spec/occi/parser/text_samples/occi_storage_rocci_server.text", "rt").read
125
+ resource = Occi::Parser::Text.resource resource_string
126
+ expected = File.open("spec/occi/parser/text_samples/occi_storage_rocci_server.expected", "rt").read.chomp
127
+ expect(resource.to_text).to eql expected
136
128
  end
137
-
129
+
138
130
  it 'parses compute resource from rOCCI server' do
139
- resource_string = File.open("spec/occi/parser/text_samples/occi_compute_rocci_server.text", "rb").read
140
- expected = Marshal.load(File.open("spec/occi/parser/text_samples/occi_compute_rocci_server.resource.dump", "rb"))
141
- resource = Occi::Parser::Text.resource resource_string
142
- expect(resource).to eql expected
131
+ resource_string = File.open("spec/occi/parser/text_samples/occi_compute_rocci_server.text", "rt").read
132
+ resource = Occi::Parser::Text.resource resource_string
133
+ expected = File.open("spec/occi/parser/text_samples/occi_compute_rocci_server.expected", "rt").read.chomp
134
+ expect(resource.to_text).to eql expected
143
135
  end
144
136
 
145
137
  it 'types parsed compute resource from rOCCI server as Occi::Infrastructure::Compute' do
146
- resource_string = File.open("spec/occi/parser/text_samples/occi_compute_rocci_server.text", "rb").read
138
+ resource_string = File.open("spec/occi/parser/text_samples/occi_compute_rocci_server.text", "rt").read
147
139
  expected_class = Occi::Infrastructure::Compute
148
- resource_class = Occi::Parser::Text.resource(resource_string).resources.first.class
140
+ resource_class = Occi::Parser::Text.resource(resource_string).resources.first.class
149
141
  expect(resource_class).to eql expected_class
150
142
  end
143
+
144
+ it 'types parsed custom resource as related to Occi::Core::Resource' do
145
+ resource_string = File.open("spec/occi/parser/text_samples/occi_resource_custom_class_w_attributes.text", "rt").read
146
+ expected_class = "Org::Fogbowcloud::Schemas::Request::FogbowRequest"
147
+
148
+ resource_instance = Occi::Parser::Text.resource(resource_string).resources.first
149
+ resource_class = resource_instance.class.to_s
150
+ expect(resource_class).to eql expected_class
151
+ expect(resource_instance).to be_kind_of Occi::Core::Resource
152
+ end
151
153
  end
152
154
 
153
155
  context '.categories' do
154
156
  it 'parses strings describing OCCI Categories' do
155
- categories_string = File.open("spec/occi/parser/text_samples/occi_categories.text", "rb").read
156
- expected = Marshal.load(File.open("spec/occi/parser/text_samples/occi_categories.dump", "rb"))
157
+ categories_string = File.open("spec/occi/parser/text_samples/occi_categories.text", "rt").read
157
158
  categories = Occi::Parser::Text.categories categories_string
158
- expect(categories).to eql expected
159
+ expected = File.open("spec/occi/parser/text_samples/occi_categories.expected", "rt").read
160
+ expect(categories.to_text).to eql expected
159
161
  end
160
162
 
161
163
  it 'parses strings describing OCCI Categories, skipping unparseable additions' do
162
- categories_string = File.open("spec/occi/parser/text_samples/occi_categories.text", "rb").read
164
+ categories_string = File.open("spec/occi/parser/text_samples/occi_categories.text", "rt").read
163
165
  categories_string["\n"] = "\n\n&*$this won't parse\n"
164
- expected = Marshal.load(File.open("spec/occi/parser/text_samples/occi_categories.dump", "rb"))
165
166
  categories = Occi::Parser::Text.categories categories_string
166
- expect(categories).to eql expected
167
+ expected = File.open("spec/occi/parser/text_samples/occi_categories.expected", "rt").read
168
+ expect(categories.to_text).to eql expected
167
169
  end
168
170
 
169
171
  it 'does not fail on unparseable input' do
170
172
  categories_string = "\n\n&*$this won't parse\n"
171
- expected = Marshal.load(File.open("spec/occi/parser/text_samples/occi_categories.dump", "rb"))
172
173
  categories = Occi::Parser::Text.categories categories_string
173
174
  expect(categories.blank?).to eql true
174
175
  end
@@ -177,12 +178,10 @@ module Occi
177
178
 
178
179
  context '.link' do
179
180
  it 'parses link resource instance' do
180
- link_string = File.open("spec/occi/parser/text_samples/occi_link_resource_instance.text", "rb").read
181
+ link_string = File.open("spec/occi/parser/text_samples/occi_link_resource_instance.text", "rt").read
181
182
  link = Occi::Parser::Text.link link_string
182
- expected = Marshal.load(File.open("spec/occi/parser/text_samples/occi_link_resource_instance.dump", "rb"))
183
- expected.links.each { |exp| exp.id = 'emptied' }
184
- link.links.each { |lnk| lnk.id = 'emptied' }
185
- expect(link).to eql expected
183
+ expected = File.open("spec/occi/parser/text_samples/occi_link_resource_instance.expected", "rt").read.chomp
184
+ expect(link.to_text).to eql expected
186
185
  end
187
186
 
188
187
  end
@@ -217,58 +216,54 @@ module Occi
217
216
 
218
217
  context '.link_string' do
219
218
  it 'parses string with category set' do
220
- link_string = File.open("spec/occi/parser/text_samples/occi_link_simple.text", "rb").read
219
+ link_string = File.open("spec/occi/parser/text_samples/occi_link_simple.text", "rt").read
221
220
  link = Occi::Parser::Text.link_string link_string, nil
222
- expected = Marshal.load(File.open("spec/occi/parser/text_samples/occi_link_simple.link_string.dump", "rb"))
223
- expect(link).to eql expected
221
+ expected = File.open("spec/occi/parser/text_samples/occi_link_simple.expected", "rt").read.chomp
222
+ expect(link.to_text).to eql expected
224
223
  end
225
224
 
226
225
  it 'parses link with category' do
227
- link_string = File.open("spec/occi/parser/text_samples/occi_link_w_category.text", "rb").read
226
+ link_string = File.open("spec/occi/parser/text_samples/occi_link_w_category.text", "rt").read
228
227
  link = Occi::Parser::Text.link_string link_string, nil
229
- expected = Marshal.load(File.open("spec/occi/parser/text_samples/occi_link_w_category.dump", "rb"))
230
- expect(link).to eql expected
228
+ expected = File.open("spec/occi/parser/text_samples/occi_link_w_category.expected", "rt").read.chomp
229
+ expect(link.to_text).to eql expected
231
230
  end
232
231
 
233
232
  it 'parses link with attributes' do
234
- link_string = File.open("spec/occi/parser/text_samples/occi_link_w_attributes.text", "rb").read
233
+ link_string = File.open("spec/occi/parser/text_samples/occi_link_w_attributes.text", "rt").read
235
234
  link = Occi::Parser::Text.link_string link_string, nil
236
- expected = Marshal.load(File.open("spec/occi/parser/text_samples/occi_link_w_attributes.dump", "rb"))
237
- expect(link).to eql expected
235
+ expected = File.open("spec/occi/parser/text_samples/occi_link_w_attributes.expected", "rt").read.chomp
236
+ expect(link.to_text).to eql expected
238
237
  end
239
238
 
240
239
  it 'parses string with action link' do
241
240
  link_string = 'Link: </compute/04106bce-87eb-4f8f-a665-2f624e54ba46?action=restart>; rel="http://schemas.ogf.org/occi/infrastructure/compute/action#restart"'
242
241
  link = Occi::Parser::Text.link_string(link_string, "source")
243
- expected = Marshal.restore("\x04\bo:\x17Occi::Core::Action\t:\f@schemeI\"?http://schemas.ogf.org/occi/infrastructure/compute/action#\x06:\x06ET:\n@termI\"\frestart\x06;\aT:\v@title0:\x10@attributesC:\eOcci::Core::Attributes{\x00")
244
- expect(link).to eql expected
242
+ expect(link.to_text).to eql "Category: restart;scheme=\"http://schemas.ogf.org/occi/infrastructure/compute/action#\";class=\"action\""
245
243
  end
246
244
  end
247
245
 
248
246
  context 'compatibility' do
249
247
  after(:each) { Occi::Settings.reload! }
250
-
251
248
  context 'terms' do
252
249
  it 'parses uppercase term, compatibility on' do
253
250
  Occi::Settings['compatibility']=true
254
- category_string = 'Category: TERM;scheme="http://a.a/a#";class=kind'
255
- expected = Marshal.restore("\x04\bo:\x15Occi::Core::Kind\r:\f@schemeI\"\x12http://a.a/a#\x06:\x06ET:\n@termI\"\tterm\x06;\aT:\v@title0:\x10@attributesC:\eOcci::Core::Attributes{\x00:\f@parent0:\r@actionso:\x18Occi::Core::Actions\x06:\n@hash{\x00:\x0E@entitieso:\x19Occi::Core::Entities\x06;\x0F{\x00:\x0E@locationI\"\v/term/\x06;\aF")
251
+ category_string = 'Category: TERM;scheme="http://a.a/a#";class="kind"'
256
252
  category = Occi::Parser::Text.category category_string
257
- expect(category).to eql expected
253
+ expect(category.to_text).to eql "Category: term;scheme=\"http://a.a/a#\";class=\"kind\";location=\"/term/\""
258
254
  end
259
255
 
260
256
  it 'refuses uppercase term, compatibility off' do
261
257
  Occi::Settings['compatibility']=false
262
- category_string = 'Category: TERM;scheme="http://a.a/a#";class=kind'
258
+ category_string = 'Category: TERM;scheme="http://a.a/a#";class="kind"'
263
259
  expect{ category = Occi::Parser::Text.category category_string }.to raise_error(Occi::Errors::ParserInputError)
264
260
  end
265
261
 
266
262
  it 'parses term starting with number, compatibility on' do
267
263
  Occi::Settings['compatibility']=true
268
- category_string = 'Category: 1TERM;scheme="http://a.a/a#";class=kind'
269
- expected = Marshal.restore("\x04\bo:\x15Occi::Core::Kind\r:\f@schemeI\"\x12http://a.a/a#\x06:\x06ET:\n@termI\"\n1term\x06;\aT:\v@title0:\x10@attributesC:\eOcci::Core::Attributes{\x00:\f@parent0:\r@actionso:\x18Occi::Core::Actions\x06:\n@hash{\x00:\x0E@entitieso:\x19Occi::Core::Entities\x06;\x0F{\x00:\x0E@locationI\"\f/1term/\x06;\aF")
264
+ category_string = 'Category: 1TERM;scheme="http://a.a/a#";class="kind"'
270
265
  category = Occi::Parser::Text.category category_string
271
- expect(category).to eql expected
266
+ expect(category.to_text).to eql "Category: 1term;scheme=\"http://a.a/a#\";class=\"kind\";location=\"/1term/\""
272
267
  end
273
268
 
274
269
  it 'refuses term starting with number, compatibility off' do
@@ -277,15 +272,27 @@ module Occi
277
272
  expect{ category = Occi::Parser::Text.category category_string }.to raise_error(Occi::Errors::ParserInputError)
278
273
  end
279
274
 
275
+
276
+ it 'parses upper case Category with compatibility mode on' do
277
+ Occi::Settings['compatibility']=true
278
+ category_string = 'Category: A_A1-_;scheme="http://a.a/a#";class="kind"'
279
+ expect{ category = Occi::Parser::Text.category category_string }.to_not raise_error
280
+ end
281
+
282
+ it 'refuses upper case Category with compatibility mode off' do
283
+ Occi::Settings['compatibility']=false
284
+ category_string = 'Category: A_A1-_;scheme="http://a.a/a#";class="kind"'
285
+ expect{ category = Occi::Parser::Text.category category_string }.to raise_error(Occi::Errors::ParserInputError)
286
+ end
287
+
280
288
  end
281
289
 
282
290
  context 'schemes' do
283
291
  it 'parses a Category, compatibility on' do
284
292
  Occi::Settings['compatibility']=true
285
- category_string = 'Category: a_a1-_;scheme="http://a.a/a#a_a1-_";class="kind";title="aA1!\"§$%&/()=?`´ß+*#-_.:,;<>";rel="http://a.a/b#a";location="/a1-A/";attributes="a_1-_.a1-_a a-1.a.b";actions="http://a.a/a1#a1 http://a.b1/b1#b2"'
293
+ category_string = 'Category: a_a1-_;scheme="http://a.a/a#a_a1-_";class="kind";title="aA1!§$%&/()=?`´ß+*#-_.:,;<>";rel="http://a.a/b#a";location="/a1-A/";attributes="a_1-_.a1-_a a-1.a.b";actions="http://a.a/a1#a1 http://a.b1/b1#b2"'
286
294
  category = Occi::Parser::Text.category category_string
287
- expected = Marshal.restore("\x04\bo:\x15Occi::Core::Kind\r:\f@schemeI\"\x12http://a.a/a#\x06:\x06ET:\n@termI\"\va_a1-_\x06;\aT:\v@titleI\"%aA1!\\\"\xC2\xA7$%&/()=?`\xC2\xB4\xC3\x9F+*#-_.:,;<>\x06;\aT:\x10@attributesC:\eOcci::Core::Attributes{\aI\"\na_1-_\x06;\aTC;\v{\x06I\"\na1-_a\x06;\aTo:\eOcci::Core::Properties\v:\r@default0:\n@typeI\"\vstring\x06;\aF:\x0E@requiredF:\r@mutableF:\r@patternI\"\a.*\x06;\aF:\x11@description0I\"\ba-1\x06;\aTC;\v{\x06I\"\x06a\x06;\aTC;\v{\x06I\"\x06b\x06;\aTo;\f\v;\r0;\x0EI\"\vstring\x06;\aF;\x0FF;\x10F;\x11I\"\a.*\x06;\aF;\x120:\f@parentI\"\x13http://a.a/b#a\x06;\aT:\r@actionso:\x18Occi::Core::Actions\x06:\n@hash{\ao:\x17Occi::Core::Action\t;\x06I\"\x13http://a.a/a1#\x06;\aT;\bI\"\aa1\x06;\aT;\t0;\nC;\v{\x00To;\x17\t;\x06I\"\x14http://a.b1/b1#\x06;\aT;\bI\"\ab2\x06;\aT;\t0;\nC;\v{\x00T:\x0E@entitieso:\x19Occi::Core::Entities\x06;\x16{\x00:\x0E@locationI\"\v/a1-A/\x06;\aT")
288
- expect(category).to eql expected
295
+ expect(category.to_text).to eql "Category: a_a1-_;scheme=\"http://a.a/a#\";class=\"kind\";title=\"aA1!§$%&/()=?`´ß+*#-_.:,;<>\";rel=\"http://a.a/b#a\";location=\"/a1-A/\";attributes=\"a_1-_.a1-_a a-1.a.b\";actions=\"http://a.a/a1#a1 http://a.b1/b1#b2\""
289
296
  end
290
297
 
291
298
  it 'parses a Category, compatibility off' do
@@ -296,7 +303,15 @@ module Occi
296
303
  end
297
304
  end
298
305
 
299
- context 'other OCCI implementations' do
306
+ context 'with other OCCI implementations' do
307
+
308
+ it 'correctly parses input from FogBow Cloud' do
309
+ category_string = File.open("spec/occi/parser/text_samples/occi_resource_custom_class_w_attributes.text", "rt").read
310
+ category = Occi::Parser::Text.category category_string
311
+ expected = "Category: fogbow_request;scheme=\"http://schemas.fogbowcloud.org/request#\";class=\"kind\";title=\"Request new Instances\";rel=\"http://schemas.ogf.org/occi/core#resource\";location=\"/fogbow_request/\";attributes=\"org.fogbowcloud.request.instance-count org.fogbowcloud.request.type org.fogbowcloud.request.valid-until org.fogbowcloud.request.valid-from org.fogbowcloud.request.state org.fogbowcloud.request.instance-id\""
312
+ expect(category.to_text).to eql expected
313
+ end
314
+
300
315
  it 'renders correctly OCCI from other sources'
301
316
  end
302
317
 
@@ -127,35 +127,33 @@ module Occi
127
127
  end
128
128
 
129
129
  it 'parses categories' do
130
- categories_string = File.open("spec/occi/parser/text_samples/occi_categories.text", "rb").read
131
- expected = Marshal.load(File.open("spec/occi/parser/text_samples/occi_categories.dump", "rb"))
130
+ categories_string = File.open("spec/occi/parser/text_samples/occi_categories.text", "rt").read
132
131
  categories = Occi::Parser.parse('text/plain', categories_string, true)
133
- expect(categories).to eql expected
132
+ expected = File.open("spec/occi/parser/text_samples/occi_categories.parse_headers.expected", "rt").read
133
+ expect(categories.to_text).to eql expected
134
134
  end
135
135
 
136
136
  it 'parses resources from headers' do
137
- expected = Marshal.load(File.open("spec/occi/parser/text_samples/occi_network_rocci_server.resource.dump", "rb"))
138
137
  resource = Occi::Parser.parse('text/occi', '', false, Occi::Core::Resource, resource_in_headers)
139
- expect(resource).to eql expected
138
+ expected = File.open("spec/occi/parser/text_samples/occi_network_rocci_server.resource.header.expected", "rt").read.chomp
139
+ expect(resource.to_text).to eql expected
140
140
  end
141
141
 
142
142
  it 'parses resources from rack-compliant headers' do
143
- expected = Marshal.load(File.open("spec/occi/parser/text_samples/occi_network_rocci_server.resource.dump", "rb"))
144
143
  resource = Occi::Parser.parse('text/occi', '', false, Occi::Core::Resource, rack_resource_in_headers)
145
- expect(resource).to eql expected
144
+ expected = File.open("spec/occi/parser/text_samples/occi_network_rocci_server.resource.rack.expected", "rt").read.chomp
145
+ expect(resource.to_text).to eql expected
146
146
  end
147
147
 
148
148
  it 'parses link' do
149
- link_string = File.open("spec/occi/parser/text_samples/occi_link_resource_instance.text", "rb").read
149
+ link_string = File.open("spec/occi/parser/text_samples/occi_link_resource_instance.text", "rt").read
150
150
  link = Occi::Parser.parse('text/plain', link_string, false, Occi::Core::Link)
151
- expected = Marshal.load(File.open("spec/occi/parser/text_samples/occi_link_resource_instance.dump", "rb"))
152
- expected.links.each { |exp| exp.id = 'emptied' }
153
- link.links.each { |lnk| lnk.id = 'emptied' }
154
- expect(link).to eql expected
151
+ expected = File.open("spec/occi/parser/text_samples/occi_link_resource_instance.parse.expected", "rt").read.chomp
152
+ expect(link.to_text).to eql expected
155
153
  end
156
154
 
157
155
  it 'fails gracefully for unknown entity type' do
158
- resource_string = File.open("spec/occi/parser/text_samples/occi_network_rocci_server.text", "rb").read
156
+ resource_string = File.open("spec/occi/parser/text_samples/occi_network_rocci_server.text", "rt").read
159
157
  expect{ Occi::Parser.parse('text/plain', resource_string, false, Occi::Core::Action) }.to raise_error(Occi::Errors::ParserTypeError)
160
158
  end
161
159
  end
@@ -221,26 +219,24 @@ module Occi
221
219
 
222
220
  context '.parse_body_plain' do
223
221
  it 'parses categories' do
224
- categories_string = File.open("spec/occi/parser/text_samples/occi_categories.text", "rb").read
225
- expected = Marshal.load(File.open("spec/occi/parser/text_samples/occi_categories.dump", "rb"))
222
+ categories_string = File.open("spec/occi/parser/text_samples/occi_categories.text", "rt").read
226
223
  categories = Occi::Parser.parse('text/plain', categories_string, true)
227
- expect(categories).to eql expected
224
+ expected = File.open("spec/occi/parser/text_samples/occi_categories.body_plain.expected", "rt").read
225
+ expect(categories.to_text).to eql expected
228
226
  end
229
227
 
230
228
  it 'parses resources' do
231
- resource_string = File.open("spec/occi/parser/text_samples/occi_network_rocci_server.text", "rb").read
232
- expected = Marshal.load(File.open("spec/occi/parser/text_samples/occi_network_rocci_server.resource.dump", "rb"))
229
+ resource_string = File.open("spec/occi/parser/text_samples/occi_network_rocci_server.text", "rt").read
233
230
  resource = Occi::Parser.parse('text/plain', resource_string, false, Occi::Core::Resource)
234
- expect(resource).to eql expected
231
+ expected = File.open("spec/occi/parser/text_samples/occi_network_rocci_server.body_plain.expected", "rt").read.chomp
232
+ expect(resource.to_text).to eql expected
235
233
  end
236
234
 
237
235
  it 'parses links' do
238
- link_string = File.open("spec/occi/parser/text_samples/occi_link_resource_instance.text", "rb").read
236
+ link_string = File.open("spec/occi/parser/text_samples/occi_link_resource_instance.text", "rt").read
239
237
  link = Occi::Parser.parse('text/plain', link_string, false, Occi::Core::Link)
240
- expected = Marshal.load(File.open("spec/occi/parser/text_samples/occi_link_resource_instance.dump", "rb"))
241
- expected.links.each { |exp| exp.id = 'emptied' }
242
- link.links.each { |lnk| lnk.id = 'emptied' }
243
- expect(link).to eql expected
238
+ expected = File.open("spec/occi/parser/text_samples/occi_link_resource_instance.body_plain.expected", "rt").read.chomp
239
+ expect(link.to_text).to eql expected
244
240
  end
245
241
 
246
242
  it 'copes with unknown entity type' do
@@ -249,5 +245,15 @@ module Occi
249
245
  end
250
246
  end
251
247
 
248
+ context 'output from other producers' do
249
+ it 'parses input from FogBow Cloud' do
250
+ category_string = File.open("spec/occi/parser/text_samples/occi_resource_custom_class_w_attributes.text", "rt").read
251
+ collection = Occi::Parser.parse('text/plain', category_string)
252
+ expected = File.open("spec/occi/parser/text_samples/occi_resource_custom_class_w_attributes.parse.expected", "rt").read.chomp
253
+ expect(collection.to_text).to eql expected
254
+ end
255
+
256
+ end
257
+
252
258
  end
253
259
  end
data/spec/spec_helper.rb CHANGED
@@ -11,6 +11,8 @@ end
11
11
  require 'occi-core'
12
12
  require 'json_spec'
13
13
 
14
+ Dir["#{File.dirname(__FILE__)}/helpers/*.rb"].each {|file| require file }
15
+
14
16
  # simplify the usage of VCR; this will allow us to use
15
17
  #
16
18
  # it "does something", :vcr do
@@ -23,7 +25,5 @@ require 'json_spec'
23
25
  # ...
24
26
  # end
25
27
  RSpec.configure do |c|
26
- # in RSpec 3 this will no longer be necessary.
27
- c.treat_symbols_as_metadata_keys_with_true_values = true
28
28
  c.include JsonSpec::Helpers
29
29
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: occi-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.2.15
4
+ version: 4.2.16
5
5
  platform: ruby
6
6
  authors:
7
7
  - Florian Feldhaus
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2014-06-10 00:00:00.000000000 Z
13
+ date: 2014-07-22 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: json
@@ -164,6 +164,8 @@ files:
164
164
  - lib/occi/settings.rb
165
165
  - lib/occi/version.rb
166
166
  - occi-core.gemspec
167
+ - spec/helpers/to_plain.rb
168
+ - spec/helpers/yaml_hash.rb
167
169
  - spec/occi-core_spec.rb
168
170
  - spec/occi/collection_samples/collection1.json
169
171
  - spec/occi/collection_samples/directory2/collection2.json
@@ -191,33 +193,36 @@ files:
191
193
  - spec/occi/log_spec.rb
192
194
  - spec/occi/model_spec.rb
193
195
  - spec/occi/parser/json_samples/test.json
194
- - spec/occi/parser/text_samples/occi_categories.dump
196
+ - spec/occi/parser/text_samples/occi_categories.body_plain.expected
197
+ - spec/occi/parser/text_samples/occi_categories.expected
198
+ - spec/occi/parser/text_samples/occi_categories.parse_headers.expected
195
199
  - spec/occi/parser/text_samples/occi_categories.text
196
- - spec/occi/parser/text_samples/occi_compute_rocci_server.dump
197
- - spec/occi/parser/text_samples/occi_compute_rocci_server.resource.dump
200
+ - spec/occi/parser/text_samples/occi_compute_rocci_server.expected
198
201
  - spec/occi/parser/text_samples/occi_compute_rocci_server.text
199
- - spec/occi/parser/text_samples/occi_link_resource_instance.dump
202
+ - spec/occi/parser/text_samples/occi_link_resource_instance.body_plain.expected
203
+ - spec/occi/parser/text_samples/occi_link_resource_instance.expected
204
+ - spec/occi/parser/text_samples/occi_link_resource_instance.parse.expected
200
205
  - spec/occi/parser/text_samples/occi_link_resource_instance.text
201
- - spec/occi/parser/text_samples/occi_link_simple.dump
202
- - spec/occi/parser/text_samples/occi_link_simple.link_string.dump
206
+ - spec/occi/parser/text_samples/occi_link_simple.expected
203
207
  - spec/occi/parser/text_samples/occi_link_simple.text
204
- - spec/occi/parser/text_samples/occi_link_w_attributes.dump
208
+ - spec/occi/parser/text_samples/occi_link_w_attributes.expected
205
209
  - spec/occi/parser/text_samples/occi_link_w_attributes.text
206
- - spec/occi/parser/text_samples/occi_link_w_category.dump
210
+ - spec/occi/parser/text_samples/occi_link_w_category.expected
207
211
  - spec/occi/parser/text_samples/occi_link_w_category.text
208
- - spec/occi/parser/text_samples/occi_model_rocci_server.dump
212
+ - spec/occi/parser/text_samples/occi_model_categories.expected
209
213
  - spec/occi/parser/text_samples/occi_model_rocci_server.text
210
- - spec/occi/parser/text_samples/occi_network_rocci_server.dump
211
- - spec/occi/parser/text_samples/occi_network_rocci_server.resource.dump
214
+ - spec/occi/parser/text_samples/occi_network_rocci_server.body_plain.expected
215
+ - spec/occi/parser/text_samples/occi_network_rocci_server.expected
216
+ - spec/occi/parser/text_samples/occi_network_rocci_server.resource.header.expected
217
+ - spec/occi/parser/text_samples/occi_network_rocci_server.resource.rack.expected
212
218
  - spec/occi/parser/text_samples/occi_network_rocci_server.text
213
- - spec/occi/parser/text_samples/occi_resource_w_attributes.dump
219
+ - spec/occi/parser/text_samples/occi_resource_custom_class_w_attributes.parse.expected
220
+ - spec/occi/parser/text_samples/occi_resource_custom_class_w_attributes.text
214
221
  - spec/occi/parser/text_samples/occi_resource_w_attributes.text
215
- - spec/occi/parser/text_samples/occi_resource_w_inline_links.dump
222
+ - spec/occi/parser/text_samples/occi_resource_w_inline_links.expected
216
223
  - spec/occi/parser/text_samples/occi_resource_w_inline_links.text
217
- - spec/occi/parser/text_samples/occi_resource_w_inline_links_only.dump
218
224
  - spec/occi/parser/text_samples/occi_resource_w_inline_links_only.text
219
- - spec/occi/parser/text_samples/occi_storage_rocci_server.dump
220
- - spec/occi/parser/text_samples/occi_storage_rocci_server.resource.dump
225
+ - spec/occi/parser/text_samples/occi_storage_rocci_server.expected
221
226
  - spec/occi/parser/text_samples/occi_storage_rocci_server.text
222
227
  - spec/occi/parser/text_spec.rb
223
228
  - spec/occi/parser_spec.rb