occi-core 4.2.5 → 4.2.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/lib/occi/collection.rb +18 -5
- data/lib/occi/core/action_instance.rb +14 -5
- data/lib/occi/core/attributes.rb +20 -1
- data/lib/occi/core/categories.rb +15 -3
- data/lib/occi/core/category.rb +18 -2
- data/lib/occi/core/entities.rb +1 -1
- data/lib/occi/core/entity.rb +1 -2
- data/lib/occi/errors/category_not_defined_error.rb +5 -0
- data/lib/occi/infrastructure/networkinterface.rb +1 -1
- data/lib/occi/parser/text.rb +2 -2
- data/lib/occi/version.rb +1 -1
- data/spec/occi/collection_spec.rb +2 -2
- data/spec/occi/core/attributes_spec.rb +14 -1
- data/spec/occi/core/categories_spec.rb +3 -2
- data/spec/occi/parser/text_spec.rb +12 -0
- metadata +16 -32
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 55c4ffb877bc923ee40bd01f091ba0b124289828
|
4
|
+
data.tar.gz: 4d4586c406eb9002cd5ffb3d73487b43bc86bdcf
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 64d75f1187fb40eaa6fb2b83264c6a1ef9ec18b8d171af3689da6db9e50e0d42be91503c314ddf27d96e008edc1bb3774d9a303709029bacfbaaf80064543b14
|
7
|
+
data.tar.gz: c06ed353a0c359ea1465b91ef0db4b3994bd1a7f168895f4a3ded5543ffb6f9435e6301c32d5c9d402d47bb10e919e92e3b4aeccd2055f959bea3db09e6cef59
|
data/lib/occi/collection.rb
CHANGED
@@ -64,8 +64,20 @@ module Occi
|
|
64
64
|
@action.model = model if @action
|
65
65
|
end
|
66
66
|
|
67
|
-
|
68
|
-
|
67
|
+
# @param incl_categories [Boolean] check every category against the model
|
68
|
+
# @return [Boolean] result
|
69
|
+
def check(incl_categories = false)
|
70
|
+
@resources.check
|
71
|
+
@links.check
|
72
|
+
@action.check if @action
|
73
|
+
|
74
|
+
if incl_categories
|
75
|
+
@kinds.check
|
76
|
+
@mixins.check
|
77
|
+
@actions.check
|
78
|
+
end
|
79
|
+
|
80
|
+
true
|
69
81
|
end
|
70
82
|
|
71
83
|
# @param [Occi::Collection] other_collection
|
@@ -118,11 +130,12 @@ module Occi
|
|
118
130
|
|
119
131
|
# Returns the category corresponding to a given id
|
120
132
|
#
|
121
|
-
# @param [String]
|
133
|
+
# @param id [String] identifier
|
134
|
+
# @param cats_only [Boolean] look only for categories
|
122
135
|
# @return [Occi::Core::Category]
|
123
|
-
def get_by_id(id)
|
136
|
+
def get_by_id(id, cats_only = false)
|
124
137
|
object = self.categories.select { |category| category.type_identifier == id }
|
125
|
-
object = self.entities.select { |entity| entity.id == id } if object.empty?
|
138
|
+
object = self.entities.select { |entity| entity.id == id } if !cats_only && object.empty?
|
126
139
|
object.first
|
127
140
|
end
|
128
141
|
|
@@ -72,15 +72,24 @@ module Occi
|
|
72
72
|
header
|
73
73
|
end
|
74
74
|
|
75
|
-
# @return [
|
75
|
+
# @return [Boolean] Indicating whether this action instance is "empty", i.e. required attributes are blank
|
76
76
|
def empty?
|
77
77
|
action.nil? || action.empty?
|
78
78
|
end
|
79
79
|
|
80
|
-
# @
|
81
|
-
|
82
|
-
|
83
|
-
|
80
|
+
# @param [Boolean] set default values for all empty attributes
|
81
|
+
# @return [Boolean] Result of the validation process
|
82
|
+
def check(set_defaults = false)
|
83
|
+
raise ArgumentError, 'No model has been assigned to this action instance' unless @model
|
84
|
+
|
85
|
+
action = @model.get_by_id(@action.type_identifier, true)
|
86
|
+
raise Occi::Errors::CategoryNotDefinedError,
|
87
|
+
"Action not found for action instance #{self.class.name}[#{self.to_s.inspect}]!" unless action
|
88
|
+
|
89
|
+
definitions = Occi::Core::Attributes.new
|
90
|
+
definitions.merge! action.attributes
|
91
|
+
|
92
|
+
@attributes.check!(definitions, set_defaults)
|
84
93
|
end
|
85
94
|
|
86
95
|
end
|
data/lib/occi/core/attributes.rb
CHANGED
@@ -137,7 +137,7 @@ module Occi
|
|
137
137
|
|
138
138
|
# @return [String]
|
139
139
|
def to_string_short
|
140
|
-
any? ? ";attributes=#{names.keys.join(' ').inspect}" : ""
|
140
|
+
any? ? ";attributes=#{names.keys.collect { |key| name_w_props(key) }.join(' ').inspect}" : ""
|
141
141
|
end
|
142
142
|
|
143
143
|
# @return [String]
|
@@ -354,6 +354,25 @@ module Occi
|
|
354
354
|
end
|
355
355
|
end
|
356
356
|
end
|
357
|
+
|
358
|
+
def name_w_props(attribute_name)
|
359
|
+
return attribute_name if attribute_name.blank?
|
360
|
+
|
361
|
+
parts = attribute_name.split('.')
|
362
|
+
parts[parts.length - 1] = "_#{parts.last}"
|
363
|
+
property_name = parts.join('.')
|
364
|
+
|
365
|
+
return attribute_name unless self[property_name]
|
366
|
+
|
367
|
+
if !self[property_name].mutable
|
368
|
+
"#{attribute_name}{immutable}"
|
369
|
+
elsif self[property_name].required
|
370
|
+
"#{attribute_name}{required}"
|
371
|
+
else
|
372
|
+
attribute_name
|
373
|
+
end
|
374
|
+
end
|
375
|
+
|
357
376
|
end
|
358
377
|
end
|
359
378
|
end
|
data/lib/occi/core/categories.rb
CHANGED
@@ -13,7 +13,10 @@ module Occi
|
|
13
13
|
end
|
14
14
|
|
15
15
|
def <<(category)
|
16
|
-
|
16
|
+
category = convert(category)
|
17
|
+
category.model = @model if @model && !category.kind_of?(String)
|
18
|
+
|
19
|
+
super(category)
|
17
20
|
end
|
18
21
|
|
19
22
|
def join(separator)
|
@@ -32,7 +35,8 @@ module Occi
|
|
32
35
|
# @return [Occi::Model]
|
33
36
|
def model=(model)
|
34
37
|
@model = model
|
35
|
-
|
38
|
+
each { |category| category.model = model }
|
39
|
+
collect! { |category| model.get_by_id(category.to_s) || category }
|
36
40
|
end
|
37
41
|
|
38
42
|
# @param [Hash] options
|
@@ -41,10 +45,18 @@ module Occi
|
|
41
45
|
self.to_a.as_json
|
42
46
|
end
|
43
47
|
|
48
|
+
def check
|
49
|
+
each { |category| category.check }
|
50
|
+
end
|
51
|
+
|
44
52
|
private
|
45
53
|
|
46
54
|
def convert(category)
|
47
|
-
|
55
|
+
if category.kind_of?(String) && @model
|
56
|
+
@model.get_by_id(category) || category
|
57
|
+
else
|
58
|
+
category
|
59
|
+
end
|
48
60
|
end
|
49
61
|
|
50
62
|
end
|
data/lib/occi/core/category.rb
CHANGED
@@ -79,13 +79,29 @@ module Occi
|
|
79
79
|
self.type_identifier
|
80
80
|
end
|
81
81
|
|
82
|
-
# @return [
|
82
|
+
# @return [Boolean] Indicating whether this category is "empty", i.e. required attributes are blank
|
83
83
|
def empty?
|
84
84
|
term.blank? || scheme.blank?
|
85
85
|
end
|
86
86
|
|
87
|
+
# Checks this category against the model
|
88
|
+
# @param check_attributes [Boolean] attribute definitions must match
|
89
|
+
# @param check_title [Boolean] titles must match
|
90
|
+
# @return [Boolean]
|
91
|
+
def check(check_attributes = false, check_title = false)
|
92
|
+
raise ArgumentError, 'No model has been assigned to this category' unless @model
|
93
|
+
|
94
|
+
cat = @model.get_by_id(type_identifier, true)
|
95
|
+
raise Occi::Errors::CategoryNotDefinedError,
|
96
|
+
"Category #{self.class.name}[#{type_identifier.inspect}] not found in the model!" unless cat
|
97
|
+
|
98
|
+
# TODO: impl. check_attributes and check_title for strict matching
|
99
|
+
|
100
|
+
true
|
101
|
+
end
|
102
|
+
|
87
103
|
# @param term [String] Term to check.
|
88
|
-
# @return [
|
104
|
+
# @return [Boolean] Indicating whether term consists exclusively of valid characters.
|
89
105
|
def self.valid_term?(term)
|
90
106
|
term =~ /^[a-z][a-z0-9_-]*$/
|
91
107
|
end
|
data/lib/occi/core/entities.rb
CHANGED
data/lib/occi/core/entity.rb
CHANGED
@@ -159,10 +159,9 @@ module Occi
|
|
159
159
|
# check attributes against their definitions and set defaults
|
160
160
|
# @param [true,false] set default values for all empty attributes
|
161
161
|
def check(set_defaults = false)
|
162
|
-
|
163
162
|
raise ArgumentError, 'No model has been assigned to this entity' unless @model
|
164
163
|
|
165
|
-
kind = @model.get_by_id(@kind.to_s)
|
164
|
+
kind = @model.get_by_id(@kind.to_s, true)
|
166
165
|
raise Occi::Errors::KindNotDefinedError,
|
167
166
|
"Kind not found for entity #{self.class.name}[#{self.to_s.inspect}]!" unless kind
|
168
167
|
|
@@ -13,7 +13,7 @@ module Occi
|
|
13
13
|
self.actions = Occi::Core::Actions.new << up << down
|
14
14
|
|
15
15
|
self.attributes = Occi::Core::Attributes.new(Occi::Core::Link.attributes)
|
16
|
-
self.attributes['occi.networkinterface.interface'] ={:mutable =>
|
16
|
+
self.attributes['occi.networkinterface.interface'] = {:mutable => false}
|
17
17
|
self.attributes['occi.networkinterface.mac'] = {:mutable => true,
|
18
18
|
:pattern => '^([0-9a-fA-F]{2}[:-]){5}([0-9a-fA-F]{2})$'}
|
19
19
|
self.attributes['occi.networkinterface.state'] = {:pattern => 'active|inactive|error',
|
data/lib/occi/parser/text.rb
CHANGED
@@ -115,8 +115,8 @@ module Occi
|
|
115
115
|
properties = Occi::Core::Properties.new
|
116
116
|
|
117
117
|
if property_string
|
118
|
-
properties.required =
|
119
|
-
properties.mutable =
|
118
|
+
properties.required = property_string.include?('{required}')
|
119
|
+
properties.mutable = !property_string.include?('{immutable}')
|
120
120
|
end
|
121
121
|
|
122
122
|
name = attribute[/#{REGEXP_ATTRIBUTE_DEF}/, 1]
|
data/lib/occi/version.rb
CHANGED
@@ -811,7 +811,7 @@ module Occi
|
|
811
811
|
collection.resources << Occi::Core::Resource.new
|
812
812
|
collection.links << Occi::Core::Link.new
|
813
813
|
|
814
|
-
expected = "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.core.id occi.core.title occi.core.summary occi.compute.architecture occi.compute.cores occi.compute.hostname occi.compute.memory occi.compute.speed occi.compute.state\";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\"\nCategory: my_mixin;scheme=\"http://example.com/occi/tags#\";class=\"mixin\";location=\"/mixin/my_mixin/\"\nCategory: start;scheme=\"http://schemas.ogf.org/occi/infrastructure/compute/action#\";class=\"action\"\nCategory: resource;scheme=\"http://schemas.ogf.org/occi/core#\";class=\"kind\"\nX-OCCI-Attribute: occi.core.id=\"#{collection.resources.first.id}\"Link: <>;rel=\"http://schemas.ogf.org/occi/core#link\";self=\"/link/#{collection.links.first.id}\";category=\"http://schemas.ogf.org/occi/core#link\";occi.core.id=\"#{collection.links.first.id}\"Category: action_instance;scheme=\"http://schemas.ogf.org/occi/core#\";class=\"action\""
|
814
|
+
expected = "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.core.id{immutable} occi.core.title occi.core.summary occi.compute.architecture occi.compute.cores occi.compute.hostname occi.compute.memory occi.compute.speed occi.compute.state{immutable}\";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\"\nCategory: my_mixin;scheme=\"http://example.com/occi/tags#\";class=\"mixin\";location=\"/mixin/my_mixin/\"\nCategory: start;scheme=\"http://schemas.ogf.org/occi/infrastructure/compute/action#\";class=\"action\"\nCategory: resource;scheme=\"http://schemas.ogf.org/occi/core#\";class=\"kind\"\nX-OCCI-Attribute: occi.core.id=\"#{collection.resources.first.id}\"Link: <>;rel=\"http://schemas.ogf.org/occi/core#link\";self=\"/link/#{collection.links.first.id}\";category=\"http://schemas.ogf.org/occi/core#link\";occi.core.id=\"#{collection.links.first.id}\"Category: action_instance;scheme=\"http://schemas.ogf.org/occi/core#\";class=\"action\""
|
815
815
|
expect(collection.to_text).to eql(expected)
|
816
816
|
end
|
817
817
|
|
@@ -822,7 +822,7 @@ module Occi
|
|
822
822
|
|
823
823
|
it 'renders text correctly, kinds only' do
|
824
824
|
collection.kinds << "http://schemas.ogf.org/occi/infrastructure#compute"
|
825
|
-
expected = "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.core.id occi.core.title occi.core.summary occi.compute.architecture occi.compute.cores occi.compute.hostname occi.compute.memory occi.compute.speed occi.compute.state\";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\"\n"
|
825
|
+
expected = "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.core.id{immutable} occi.core.title occi.core.summary occi.compute.architecture occi.compute.cores occi.compute.hostname occi.compute.memory occi.compute.speed occi.compute.state{immutable}\";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\"\n"
|
826
826
|
expect(collection.to_text).to eql(expected)
|
827
827
|
end
|
828
828
|
|
@@ -230,8 +230,16 @@ module Occi
|
|
230
230
|
end
|
231
231
|
|
232
232
|
context '#to_string_short' do
|
233
|
+
let(:attrs_with_req_immut) {
|
234
|
+
attrs = Occi::Core::Attributes.new
|
235
|
+
attrs['immut_attr'] = { :mutable => false, :required => false }
|
236
|
+
attrs['req_attr'] = { :mutable => true, :required => true }
|
237
|
+
attrs['immut_req_attr'] = { :mutable => false, :required => true }
|
238
|
+
attrs
|
239
|
+
}
|
240
|
+
|
233
241
|
it 'renders attributes correctly' do
|
234
|
-
expected = ";attributes=\"numbertype stringtype booleantype booleantypefalse booleantypepattern nest.nested properties category entity\""
|
242
|
+
expected = ";attributes=\"numbertype stringtype booleantype booleantypefalse booleantypepattern nest.nested properties{immutable} category entity\""
|
235
243
|
expect(attrs.to_string_short).to eql expected
|
236
244
|
end
|
237
245
|
|
@@ -239,6 +247,11 @@ module Occi
|
|
239
247
|
expected = ""
|
240
248
|
expect(empty.to_string_short).to eql expected
|
241
249
|
end
|
250
|
+
|
251
|
+
it 'renders attributes with properties correctly' do
|
252
|
+
expected = ";attributes=\"immut_attr{immutable} req_attr{required} immut_req_attr{immutable}\""
|
253
|
+
expect(attrs_with_req_immut.to_string_short).to eql expected
|
254
|
+
end
|
242
255
|
end
|
243
256
|
|
244
257
|
context '#to_text' do
|
@@ -14,11 +14,12 @@ module Occi
|
|
14
14
|
|
15
15
|
it "replaces a category string when a model is added with the instance from the model" do
|
16
16
|
categories = Occi::Core::Categories.new
|
17
|
-
categories << Occi::Core::Resource.type_identifier
|
18
17
|
model = Occi::Model.new
|
18
|
+
categories.model = model
|
19
|
+
categories << Occi::Core::Resource.type_identifier
|
20
|
+
|
19
21
|
resource = model.get_by_id Occi::Core::Resource.type_identifier
|
20
22
|
resource.location = '/new_location/'
|
21
|
-
categories.model = model
|
22
23
|
categories.first.location.should == '/new_location/'
|
23
24
|
end
|
24
25
|
|
@@ -29,6 +29,15 @@ module Occi
|
|
29
29
|
expect(category).to eql expected
|
30
30
|
end
|
31
31
|
|
32
|
+
it 'parses a string describing an OCCI Category incl. attributes with properties' do
|
33
|
+
category_string = 'Category: restart;scheme="http://schemas.ogf.org/occi/infrastructure/compute/action#";class="action";title="Restart Compute instance";attributes="method{required} test{immutable}"'
|
34
|
+
category = Occi::Parser::Text.category category_string
|
35
|
+
|
36
|
+
expect(category.attributes['method'].required).to be_true
|
37
|
+
expect(category.attributes['method'].mutable).to be_true
|
38
|
+
expect(category.attributes['test'].required).to be_false
|
39
|
+
expect(category.attributes['test'].mutable).to be_false
|
40
|
+
end
|
32
41
|
|
33
42
|
it 'parses attributes correctly' do
|
34
43
|
resource_string = File.open("spec/occi/parser/text_samples/occi_resource_w_attributes.text", "rb").read
|
@@ -110,6 +119,7 @@ module Occi
|
|
110
119
|
Occi::Parser::Text.const_set('REGEXP_CATEGORY', regexp_category)
|
111
120
|
end
|
112
121
|
end
|
122
|
+
|
113
123
|
context '.resource' do
|
114
124
|
it 'parses network resource from rOCCI server' do
|
115
125
|
resource_string = File.open("spec/occi/parser/text_samples/occi_network_rocci_server.text", "rb").read
|
@@ -239,6 +249,7 @@ module Occi
|
|
239
249
|
|
240
250
|
context 'compatibility' do
|
241
251
|
after(:each) { Occi::Settings.reload! }
|
252
|
+
|
242
253
|
context 'terms' do
|
243
254
|
it 'parses uppercase term, compatibility on' do
|
244
255
|
Occi::Settings['compatibility']=true
|
@@ -269,6 +280,7 @@ module Occi
|
|
269
280
|
end
|
270
281
|
|
271
282
|
end
|
283
|
+
|
272
284
|
context 'schemes' do
|
273
285
|
it 'parses a Category, compatibility on' do
|
274
286
|
Occi::Settings['compatibility']=true
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: occi-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.2.
|
5
|
-
prerelease:
|
4
|
+
version: 4.2.6
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Florian Feldhaus
|
@@ -11,60 +10,53 @@ authors:
|
|
11
10
|
autorequire:
|
12
11
|
bindir: bin
|
13
12
|
cert_chain: []
|
14
|
-
date: 2014-
|
13
|
+
date: 2014-02-03 00:00:00.000000000 Z
|
15
14
|
dependencies:
|
16
15
|
- !ruby/object:Gem::Dependency
|
17
16
|
name: json
|
18
17
|
requirement: !ruby/object:Gem::Requirement
|
19
|
-
none: false
|
20
18
|
requirements:
|
21
|
-
- -
|
19
|
+
- - '>='
|
22
20
|
- !ruby/object:Gem::Version
|
23
21
|
version: '0'
|
24
22
|
type: :runtime
|
25
23
|
prerelease: false
|
26
24
|
version_requirements: !ruby/object:Gem::Requirement
|
27
|
-
none: false
|
28
25
|
requirements:
|
29
|
-
- -
|
26
|
+
- - '>='
|
30
27
|
- !ruby/object:Gem::Version
|
31
28
|
version: '0'
|
32
29
|
- !ruby/object:Gem::Dependency
|
33
30
|
name: hashie
|
34
31
|
requirement: !ruby/object:Gem::Requirement
|
35
|
-
none: false
|
36
32
|
requirements:
|
37
|
-
- -
|
33
|
+
- - '>='
|
38
34
|
- !ruby/object:Gem::Version
|
39
35
|
version: '0'
|
40
36
|
type: :runtime
|
41
37
|
prerelease: false
|
42
38
|
version_requirements: !ruby/object:Gem::Requirement
|
43
|
-
none: false
|
44
39
|
requirements:
|
45
|
-
- -
|
40
|
+
- - '>='
|
46
41
|
- !ruby/object:Gem::Version
|
47
42
|
version: '0'
|
48
43
|
- !ruby/object:Gem::Dependency
|
49
44
|
name: uuidtools
|
50
45
|
requirement: !ruby/object:Gem::Requirement
|
51
|
-
none: false
|
52
46
|
requirements:
|
53
|
-
- -
|
47
|
+
- - '>='
|
54
48
|
- !ruby/object:Gem::Version
|
55
49
|
version: 2.1.3
|
56
50
|
type: :runtime
|
57
51
|
prerelease: false
|
58
52
|
version_requirements: !ruby/object:Gem::Requirement
|
59
|
-
none: false
|
60
53
|
requirements:
|
61
|
-
- -
|
54
|
+
- - '>='
|
62
55
|
- !ruby/object:Gem::Version
|
63
56
|
version: 2.1.3
|
64
57
|
- !ruby/object:Gem::Dependency
|
65
58
|
name: nokogiri
|
66
59
|
requirement: !ruby/object:Gem::Requirement
|
67
|
-
none: false
|
68
60
|
requirements:
|
69
61
|
- - ~>
|
70
62
|
- !ruby/object:Gem::Version
|
@@ -72,7 +64,6 @@ dependencies:
|
|
72
64
|
type: :runtime
|
73
65
|
prerelease: false
|
74
66
|
version_requirements: !ruby/object:Gem::Requirement
|
75
|
-
none: false
|
76
67
|
requirements:
|
77
68
|
- - ~>
|
78
69
|
- !ruby/object:Gem::Version
|
@@ -80,7 +71,6 @@ dependencies:
|
|
80
71
|
- !ruby/object:Gem::Dependency
|
81
72
|
name: activesupport
|
82
73
|
requirement: !ruby/object:Gem::Requirement
|
83
|
-
none: false
|
84
74
|
requirements:
|
85
75
|
- - ~>
|
86
76
|
- !ruby/object:Gem::Version
|
@@ -88,7 +78,6 @@ dependencies:
|
|
88
78
|
type: :runtime
|
89
79
|
prerelease: false
|
90
80
|
version_requirements: !ruby/object:Gem::Requirement
|
91
|
-
none: false
|
92
81
|
requirements:
|
93
82
|
- - ~>
|
94
83
|
- !ruby/object:Gem::Version
|
@@ -96,17 +85,15 @@ dependencies:
|
|
96
85
|
- !ruby/object:Gem::Dependency
|
97
86
|
name: settingslogic
|
98
87
|
requirement: !ruby/object:Gem::Requirement
|
99
|
-
none: false
|
100
88
|
requirements:
|
101
|
-
- -
|
89
|
+
- - '>='
|
102
90
|
- !ruby/object:Gem::Version
|
103
91
|
version: '0'
|
104
92
|
type: :runtime
|
105
93
|
prerelease: false
|
106
94
|
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
none: false
|
108
95
|
requirements:
|
109
|
-
- -
|
96
|
+
- - '>='
|
110
97
|
- !ruby/object:Gem::Version
|
111
98
|
version: '0'
|
112
99
|
description: OCCI is a collection of classes to simplify the implementation of the
|
@@ -157,6 +144,7 @@ files:
|
|
157
144
|
- lib/occi/errors/attribute_not_defined_error.rb
|
158
145
|
- lib/occi/errors/attribute_property_type_error.rb
|
159
146
|
- lib/occi/errors/attribute_type_error.rb
|
147
|
+
- lib/occi/errors/category_not_defined_error.rb
|
160
148
|
- lib/occi/errors/kind_not_defined_error.rb
|
161
149
|
- lib/occi/errors/parser_input_error.rb
|
162
150
|
- lib/occi/errors/parser_type_error.rb
|
@@ -258,29 +246,25 @@ files:
|
|
258
246
|
homepage: https://github.com/gwdg/rOCCI-core
|
259
247
|
licenses:
|
260
248
|
- Apache License, Version 2.0
|
249
|
+
metadata: {}
|
261
250
|
post_install_message:
|
262
251
|
rdoc_options: []
|
263
252
|
require_paths:
|
264
253
|
- lib
|
265
254
|
required_ruby_version: !ruby/object:Gem::Requirement
|
266
|
-
none: false
|
267
255
|
requirements:
|
268
|
-
- -
|
256
|
+
- - '>='
|
269
257
|
- !ruby/object:Gem::Version
|
270
258
|
version: 1.9.3
|
271
259
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
272
|
-
none: false
|
273
260
|
requirements:
|
274
|
-
- -
|
261
|
+
- - '>='
|
275
262
|
- !ruby/object:Gem::Version
|
276
263
|
version: '0'
|
277
|
-
segments:
|
278
|
-
- 0
|
279
|
-
hash: -1899763597318893191
|
280
264
|
requirements: []
|
281
265
|
rubyforge_project:
|
282
|
-
rubygems_version: 1.
|
266
|
+
rubygems_version: 2.1.11
|
283
267
|
signing_key:
|
284
|
-
specification_version:
|
268
|
+
specification_version: 4
|
285
269
|
summary: OCCI toolkit
|
286
270
|
test_files: []
|