steamcannon-deltacloud-client 0.0.9.7.2 → 0.0.9.8
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/deltacloud.rb +25 -8
- data/specs/hardware_profiles_spec.rb +9 -7
- data/specs/images_spec.rb +15 -13
- data/specs/initialization_spec.rb +8 -6
- data/specs/instance_states_spec.rb +16 -14
- data/specs/instances_spec.rb +24 -21
- data/specs/realms_spec.rb +12 -10
- data/specs/spec_helper.rb +1 -0
- data/specs/storage_snapshot_spec.rb +11 -9
- data/specs/storage_volume_spec.rb +11 -9
- metadata +3 -4
data/lib/deltacloud.rb
CHANGED
@@ -105,7 +105,7 @@ module DeltaCloud
|
|
105
105
|
API.instance_eval do
|
106
106
|
entry_points.keys.select {|k| [:instance_states].include?(k)==false }.each do |model|
|
107
107
|
define_method model do |*args|
|
108
|
-
request(:get,
|
108
|
+
request(:get, entry_points[model], args.first) do |response|
|
109
109
|
# Define a new class based on model name
|
110
110
|
c = DeltaCloud.define_class("#{model.to_s.classify}")
|
111
111
|
# Create collection from index operation
|
@@ -114,7 +114,7 @@ module DeltaCloud
|
|
114
114
|
end
|
115
115
|
logger << "[API] Added method #{model}\n"
|
116
116
|
define_method :"#{model.to_s.singularize}" do |*args|
|
117
|
-
request(:get, "
|
117
|
+
request(:get, "#{entry_points[model]}/#{args[0]}") do |response|
|
118
118
|
# Define a new class based on model name
|
119
119
|
c = DeltaCloud.define_class("#{model.to_s.classify}")
|
120
120
|
# Build class for returned object
|
@@ -149,6 +149,8 @@ module DeltaCloud
|
|
149
149
|
c.instance_eval do
|
150
150
|
attr_accessor :id
|
151
151
|
attr_accessor :uri
|
152
|
+
|
153
|
+
|
152
154
|
end
|
153
155
|
obj = xml_to_class(c, item)
|
154
156
|
end
|
@@ -162,6 +164,10 @@ module DeltaCloud
|
|
162
164
|
obj.id = item['id']
|
163
165
|
api = self
|
164
166
|
c.instance_eval do
|
167
|
+
define_method :method_missing do |method|
|
168
|
+
warn "[WARNING] Method '#{method}' is not available for this resource (#{c.name})."
|
169
|
+
return nil
|
170
|
+
end
|
165
171
|
define_method :client do
|
166
172
|
api
|
167
173
|
end
|
@@ -261,7 +267,7 @@ module DeltaCloud
|
|
261
267
|
end
|
262
268
|
declare_entry_points_methods(@entry_points)
|
263
269
|
end
|
264
|
-
|
270
|
+
|
265
271
|
def create_key(opts={}, &block)
|
266
272
|
params = { :name => opts[:name] }
|
267
273
|
key = nil
|
@@ -288,17 +294,18 @@ module DeltaCloud
|
|
288
294
|
realm_id = opts[:realm]
|
289
295
|
user_data = opts[:user_data]
|
290
296
|
key_name = opts[:key_name]
|
297
|
+
security_group = opts[:security_group]
|
291
298
|
|
292
|
-
params =
|
299
|
+
params = {}
|
293
300
|
( params[:realm_id] = realm_id ) if realm_id
|
294
301
|
( params[:name] = name ) if name
|
295
302
|
( params[:user_data] = user_data ) if user_data
|
296
303
|
( params[:keyname] = key_name ) if key_name
|
304
|
+
( params[:security_group] = security_group) if security_group
|
297
305
|
|
298
306
|
if opts[:hardware_profile].is_a?(String)
|
299
307
|
params[:hwp_id] = opts[:hardware_profile]
|
300
308
|
elsif opts[:hardware_profile].is_a?(Hash)
|
301
|
-
params.delete(:hardware_profile)
|
302
309
|
opts[:hardware_profile].each do |k,v|
|
303
310
|
params[:"hwp_#{k}"] = v
|
304
311
|
end
|
@@ -354,10 +361,20 @@ module DeltaCloud
|
|
354
361
|
end
|
355
362
|
else
|
356
363
|
RestClient.send(conf[:method], conf[:path], default_headers) do |response, request, block|
|
357
|
-
if
|
358
|
-
|
364
|
+
if conf[:method].eql?(:get) and [301, 302, 307].include? response.code
|
365
|
+
response.follow_redirection(request) do |response, request, block|
|
366
|
+
if response.respond_to?('body')
|
367
|
+
yield response.body if block_given?
|
368
|
+
else
|
369
|
+
yield response.to_s if block_given?
|
370
|
+
end
|
371
|
+
end
|
359
372
|
else
|
360
|
-
|
373
|
+
if response.respond_to?('body')
|
374
|
+
yield response.body if block_given?
|
375
|
+
else
|
376
|
+
yield response.to_s if block_given?
|
377
|
+
end
|
361
378
|
end
|
362
379
|
end
|
363
380
|
end
|
@@ -31,13 +31,15 @@ describe "hardware_profiles" do
|
|
31
31
|
it_should_behave_like "all resources"
|
32
32
|
|
33
33
|
it "should allow retrieval of all hardware profiles" do
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
34
|
+
[API_URL, API_URL_REDIRECT].each do |entry_point|
|
35
|
+
DeltaCloud.new( API_NAME, API_PASSWORD, entry_point ) do |client|
|
36
|
+
hardware_profiles = client.hardware_profiles
|
37
|
+
hardware_profiles.should_not be_empty
|
38
|
+
hardware_profiles.each do |hwp|
|
39
|
+
hwp.uri.should_not be_nil
|
40
|
+
hwp.uri.should be_a(String)
|
41
|
+
prop_check(hwp.architecture, String) if hwp.architecture
|
42
|
+
end
|
41
43
|
end
|
42
44
|
end
|
43
45
|
end
|
data/specs/images_spec.rb
CHANGED
@@ -24,19 +24,21 @@ describe "images" do
|
|
24
24
|
it_should_behave_like "all resources"
|
25
25
|
|
26
26
|
it "should allow retrieval of all images" do
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
27
|
+
[API_URL, API_URL_REDIRECT].each do |entry_point|
|
28
|
+
DeltaCloud.new( API_NAME, API_PASSWORD, entry_point ) do |client|
|
29
|
+
images = client.images
|
30
|
+
images.should_not be_empty
|
31
|
+
images.size.should eql( 3 )
|
32
|
+
images.each do |image|
|
33
|
+
image.uri.should_not be_nil
|
34
|
+
image.uri.should be_a(String)
|
35
|
+
image.description.should_not be_nil
|
36
|
+
image.description.should be_a(String)
|
37
|
+
image.architecture.should_not be_nil
|
38
|
+
image.architecture.should be_a(String)
|
39
|
+
image.owner_id.should_not be_nil
|
40
|
+
image.owner_id.should be_a(String)
|
41
|
+
end
|
40
42
|
end
|
41
43
|
end
|
42
44
|
end
|
@@ -28,12 +28,14 @@ describe "initializing the client" do
|
|
28
28
|
end
|
29
29
|
|
30
30
|
it "should discover entry points upon connection" do
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
31
|
+
[API_URL, API_URL_REDIRECT].each do |entry_point|
|
32
|
+
DeltaCloud.new( "name", "password", entry_point ) do |client|
|
33
|
+
client.entry_points[:hardware_profiles].should eql( "#{API_URL}/hardware_profiles" )
|
34
|
+
client.entry_points[:images].should eql( "#{API_URL}/images" )
|
35
|
+
client.entry_points[:instances].should eql( "#{API_URL}/instances" )
|
36
|
+
client.entry_points[:storage_volumes].should eql( "#{API_URL}/storage_volumes" )
|
37
|
+
client.entry_points[:storage_snapshots].should eql( "#{API_URL}/storage_snapshots" )
|
38
|
+
end
|
37
39
|
end
|
38
40
|
end
|
39
41
|
|
@@ -33,23 +33,25 @@ describe "instance-states" do
|
|
33
33
|
it_should_behave_like "all resources"
|
34
34
|
|
35
35
|
it "should allow retrieval of instance-state information" do
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
36
|
+
[API_URL, API_URL_REDIRECT].each do |entry_point|
|
37
|
+
DeltaCloud.new( API_NAME, API_PASSWORD, entry_point ) do |client|
|
38
|
+
instance_states = client.instance_states
|
39
|
+
instance_states.should_not be_nil
|
40
|
+
instance_states.should_not be_empty
|
40
41
|
|
41
|
-
|
42
|
-
|
43
|
-
|
42
|
+
instance_states[0].name.should eql( 'start' )
|
43
|
+
instance_states[0].transitions.size.should eql( 1 )
|
44
|
+
instance_states[0].transitions[0].should_not be_auto
|
44
45
|
|
45
|
-
|
46
|
-
|
47
|
-
|
46
|
+
instance_states[1].name.should eql( 'pending' )
|
47
|
+
instance_states[1].transitions.size.should eql( 1 )
|
48
|
+
instance_states[1].transitions[0].should be_auto
|
48
49
|
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
50
|
+
instance_states[2].name.should eql( 'running' )
|
51
|
+
instance_states[2].transitions.size.should eql( 2 )
|
52
|
+
includes_transition( instance_states[2].transitions, :reboot, :running ).should be_true
|
53
|
+
includes_transition( instance_states[2].transitions, :stop, :stopped ).should be_true
|
54
|
+
end
|
53
55
|
end
|
54
56
|
end
|
55
57
|
|
data/specs/instances_spec.rb
CHANGED
@@ -24,26 +24,28 @@ describe "instances" do
|
|
24
24
|
it_should_behave_like "all resources"
|
25
25
|
|
26
26
|
it "should allow retrieval of all instances" do
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
27
|
+
[API_URL, API_URL_REDIRECT].each do |entry_point|
|
28
|
+
DeltaCloud.new( API_NAME, API_PASSWORD, entry_point ) do |client|
|
29
|
+
instances = client.instances
|
30
|
+
instances.should_not be_empty
|
31
|
+
instances.each do |instance|
|
32
|
+
instance.uri.should_not be_nil
|
33
|
+
instance.uri.should be_a( String )
|
34
|
+
instance.owner_id.should_not be_nil
|
35
|
+
instance.owner_id.should be_a( String )
|
36
|
+
instance.image.should_not be_nil
|
37
|
+
instance.image.should be_a( DeltaCloud::API::Image )
|
38
|
+
instance.hardware_profile.should_not be_nil
|
39
|
+
instance.hardware_profile.should be_a( DeltaCloud::API::HardwareProfile )
|
40
|
+
instance.state.should_not be_nil
|
41
|
+
instance.state.should be_a( String )
|
42
|
+
instance.public_addresses.should_not be_nil
|
43
|
+
instance.public_addresses.should_not be_empty
|
44
|
+
instance.public_addresses.should be_a( Array )
|
45
|
+
instance.private_addresses.should_not be_nil
|
46
|
+
instance.private_addresses.should_not be_empty
|
47
|
+
instance.private_addresses.should be_a( Array )
|
48
|
+
end
|
47
49
|
end
|
48
50
|
end
|
49
51
|
end
|
@@ -184,7 +186,8 @@ describe "instances" do
|
|
184
186
|
instance = client.instance( 'inst1' )
|
185
187
|
instance.should_not be_nil
|
186
188
|
instance.state.should eql( "RUNNING" )
|
187
|
-
|
189
|
+
instance.start!
|
190
|
+
instance.state.should eql( "RUNNING" )
|
188
191
|
end
|
189
192
|
end
|
190
193
|
end
|
data/specs/realms_spec.rb
CHANGED
@@ -23,16 +23,18 @@ describe "realms" do
|
|
23
23
|
it_should_behave_like "all resources"
|
24
24
|
|
25
25
|
it "should allow retrieval of all realms" do
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
26
|
+
[API_URL, API_URL_REDIRECT].each do |entry_point|
|
27
|
+
DeltaCloud.new( API_NAME, API_PASSWORD, entry_point ) do |client|
|
28
|
+
realms = client.realms
|
29
|
+
realms.should_not be_empty
|
30
|
+
realms.each do |realm|
|
31
|
+
realm.uri.should_not be_nil
|
32
|
+
realm.uri.should be_a(String)
|
33
|
+
realm.id.should_not be_nil
|
34
|
+
realm.id.should be_a(String)
|
35
|
+
realm.name.should_not be_nil
|
36
|
+
realm.name.should be_a(String)
|
37
|
+
end
|
36
38
|
end
|
37
39
|
end
|
38
40
|
end
|
data/specs/spec_helper.rb
CHANGED
@@ -24,15 +24,17 @@ describe "storage snapshot" do
|
|
24
24
|
it_should_behave_like "all resources"
|
25
25
|
|
26
26
|
it "allow retrieval of all storage volumes owned by the current user" do
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
27
|
+
[API_URL, API_URL_REDIRECT].each do |entry_point|
|
28
|
+
client = DeltaCloud.new( API_NAME, API_PASSWORD, entry_point )
|
29
|
+
client.connect do |client|
|
30
|
+
storage_snapshots = client.storage_snapshots
|
31
|
+
storage_snapshots.should_not be_nil
|
32
|
+
storage_snapshots.should_not be_empty
|
33
|
+
ids = storage_snapshots.collect{|e| e.id}
|
34
|
+
ids.size.should eql( 2 )
|
35
|
+
ids.should include( 'snap2' )
|
36
|
+
ids.should include( 'snap3' )
|
37
|
+
end
|
36
38
|
end
|
37
39
|
end
|
38
40
|
|
@@ -24,15 +24,17 @@ describe "storage volumes" do
|
|
24
24
|
it_should_behave_like "all resources"
|
25
25
|
|
26
26
|
it "allow retrieval of all storage volumes owned by the current user" do
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
27
|
+
[API_URL, API_URL_REDIRECT].each do |entry_point|
|
28
|
+
client = DeltaCloud.new( API_NAME, API_PASSWORD, entry_point )
|
29
|
+
client.connect do |client|
|
30
|
+
storage_volumes = client.storage_volumes
|
31
|
+
storage_volumes.should_not be_nil
|
32
|
+
storage_volumes.should_not be_empty
|
33
|
+
ids = storage_volumes.collect{|e| e.id}
|
34
|
+
ids.size.should eql( 2 )
|
35
|
+
ids.should include( 'vol2' )
|
36
|
+
ids.should include( 'vol3' )
|
37
|
+
end
|
36
38
|
end
|
37
39
|
end
|
38
40
|
|
metadata
CHANGED
@@ -6,9 +6,8 @@ version: !ruby/object:Gem::Version
|
|
6
6
|
- 0
|
7
7
|
- 0
|
8
8
|
- 9
|
9
|
-
-
|
10
|
-
|
11
|
-
version: 0.0.9.7.2
|
9
|
+
- 8
|
10
|
+
version: 0.0.9.8
|
12
11
|
platform: ruby
|
13
12
|
authors:
|
14
13
|
- Red Hat, Inc.
|
@@ -16,7 +15,7 @@ autorequire:
|
|
16
15
|
bindir: bin
|
17
16
|
cert_chain: []
|
18
17
|
|
19
|
-
date: 2010-10-
|
18
|
+
date: 2010-10-21 00:00:00 -04:00
|
20
19
|
default_executable: deltacloudc
|
21
20
|
dependencies:
|
22
21
|
- !ruby/object:Gem::Dependency
|