right_api_client 1.5.1 → 1.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG.rdoc +3 -0
- data/lib/right_api_client/client.rb +2 -2
- data/lib/right_api_client/version.rb +1 -1
- data/right_api_client.gemspec +2 -3
- data/spec/client_spec.rb +16 -7
- data/spec/instance_facing_spec.rb +1 -1
- data/spec/resource_detail_spec.rb +7 -7
- data/spec/resource_spec.rb +1 -1
- data/spec/resources_spec.rb +3 -3
- metadata +10 -21
data/CHANGELOG.rdoc
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
= right_api_client - CHANGELOG.rdoc
|
2
2
|
|
3
3
|
|
4
|
+
== right_api_client - 1.5.2
|
5
|
+
Fix issues with client when using Ruby 1.8.7 (note that right_api_client has not been fully tested with 1.8.7 yet).
|
6
|
+
|
4
7
|
== right_api_client - 1.5.1
|
5
8
|
Initial public release, supports all of the calls in RightScale API 1.5.
|
@@ -195,7 +195,7 @@ module RightApi
|
|
195
195
|
# Generic delete
|
196
196
|
def do_delete(path)
|
197
197
|
begin
|
198
|
-
@rest_client[path].delete(headers) do |response|
|
198
|
+
@rest_client[path].delete(headers) do |response, request, result|
|
199
199
|
case response.code
|
200
200
|
when 200, 204
|
201
201
|
else
|
@@ -215,7 +215,7 @@ module RightApi
|
|
215
215
|
# Generic put
|
216
216
|
def do_put(path, params={})
|
217
217
|
begin
|
218
|
-
@rest_client[path].put(params, headers) do |response|
|
218
|
+
@rest_client[path].put(params, headers) do |response, request, result|
|
219
219
|
case response.code
|
220
220
|
when 204
|
221
221
|
else
|
data/right_api_client.gemspec
CHANGED
@@ -6,8 +6,8 @@ Gem::Specification.new do |s|
|
|
6
6
|
s.platform = Gem::Platform::RUBY
|
7
7
|
s.date = Time.now.utc.strftime("%Y-%m-%d")
|
8
8
|
s.require_path = 'lib'
|
9
|
-
s.authors = [ 'Ali Khajeh-Hosseini' ]
|
10
|
-
s.email = [ '
|
9
|
+
s.authors = [ 'Ali Khajeh-Hosseini, Natalie Schauser, Nagender Paduru' ]
|
10
|
+
s.email = [ 'ali@rightscale.com' ]
|
11
11
|
s.homepage = 'https://github.com/rightscale/right_api_client'
|
12
12
|
s.summary = 'RightScale MultiCloud API HTTP Client'
|
13
13
|
s.description = %{
|
@@ -25,7 +25,6 @@ in making HTTP calls and translating their responses.
|
|
25
25
|
s.add_development_dependency 'rake', '0.8.7'
|
26
26
|
s.add_development_dependency 'rspec', '1.3.0'
|
27
27
|
s.add_development_dependency 'flexmock', '0.8.7'
|
28
|
-
s.add_development_dependency 'ruby-debug19', '0.11.6'
|
29
28
|
s.add_development_dependency 'simplecov', '0.4.2'
|
30
29
|
s.add_development_dependency 'bundler'
|
31
30
|
end
|
data/spec/client_spec.rb
CHANGED
@@ -18,16 +18,25 @@ describe RightApi::Client do
|
|
18
18
|
@client.session.index.message.should == 'You have successfully logged into the RightScale API.'
|
19
19
|
end
|
20
20
|
|
21
|
-
it "Should return
|
22
|
-
@client.cookies.class.should
|
23
|
-
@client.cookies
|
21
|
+
it "Should return valid cookies" do
|
22
|
+
@client.cookies.class.should == Hash
|
23
|
+
@client.cookies['_session_id'].should_not be_nil
|
24
|
+
@client.cookies['domain'].should match /rightscale.com$/
|
25
|
+
@client.cookies.keys.sort.last.should match /^rs_gbl/ # HACK: not quite sane sanity check
|
24
26
|
end
|
25
27
|
|
26
28
|
it "Should accept a cookie argument when creating a new client" do
|
27
|
-
|
28
|
-
|
29
|
+
my_hash = YAML.load_file(File.expand_path(@creds, __FILE__))
|
30
|
+
my_hash.delete(:email)
|
31
|
+
my_hash.delete(:password)
|
32
|
+
my_hash.delete(:cookies)
|
33
|
+
my_hash[:cookies] = @client.cookies
|
34
|
+
client1 = RightApi::Client.new(my_hash)
|
35
|
+
client1.cookies.should == @client.cookies
|
36
|
+
end
|
29
37
|
|
30
|
-
|
38
|
+
it "Should accept a YAML argument when creating a new client" do
|
39
|
+
client2 = RightApi::Client.new(YAML.load_file(File.expand_path(@creds, __FILE__)))
|
31
40
|
client2.cookies.should_not == @client.cookies
|
32
41
|
end
|
33
42
|
|
@@ -57,4 +66,4 @@ describe RightApi::Client do
|
|
57
66
|
new_deployment2.destroy.should be_nil
|
58
67
|
end
|
59
68
|
end
|
60
|
-
end
|
69
|
+
end
|
@@ -8,7 +8,7 @@ describe RightApi::Client do
|
|
8
8
|
end
|
9
9
|
|
10
10
|
it "Should have the required methods for the client" do
|
11
|
-
@client.api_methods.sort.should == [
|
11
|
+
@client.api_methods.sort.collect{|s| s.to_s}.should == ["backups", "get_instance", "live_tasks", "volume_attachments", "volume_snapshots", "volume_types", "volumes"]
|
12
12
|
end
|
13
13
|
|
14
14
|
it "Should return an instance of the Resource class when user provides an id" do
|
@@ -9,32 +9,32 @@ describe RightApi::ResourceDetail do
|
|
9
9
|
|
10
10
|
it "Should have the required methods for instances of the ResourceDetail class" do
|
11
11
|
resource = RightApi::ResourceDetail.new(@client, 'deployment', '/api/deployments/1', {})
|
12
|
-
resource.api_methods.sort.should == [
|
12
|
+
resource.api_methods.sort.collect{|s| s.to_s}.should == ["destroy", "links", "show", "update"]
|
13
13
|
end
|
14
14
|
|
15
15
|
it "Should not have destroy/show/update for instances of the ResourceDetail class that do not support them" do
|
16
16
|
resource = RightApi::ResourceDetail.new(@client, 'session', '/api/session', {})
|
17
|
-
resource.api_methods.sort.should == [
|
17
|
+
resource.api_methods.sort.collect{|s| s.to_s}.should == ["links"]
|
18
18
|
end
|
19
19
|
|
20
20
|
it "Should have resource-specific methods for instances of the ResourceDetail class" do
|
21
21
|
resource = RightApi::ResourceDetail.new(@client, 'deployment', '/api/deployments/1',
|
22
22
|
{:attribute1 => 'value1', :attribute2 => 'value2'})
|
23
|
-
resource.api_methods.sort.should == [
|
23
|
+
resource.api_methods.sort.collect{|s| s.to_s}.should == ["attribute1", "attribute2", "destroy", "links", "show", "update"]
|
24
24
|
end
|
25
25
|
|
26
26
|
it "Should have the links for instances of the ResourceDetail class" do
|
27
27
|
resource = RightApi::ResourceDetail.new(@client, 'deployment', '/api/deployments/1',
|
28
28
|
{'links' => [{'rel' => 'link1', 'href' => 'link1_href'},
|
29
29
|
{'rel' => 'link2', 'href' => 'link2_href'}]})
|
30
|
-
resource.api_methods.sort.should == [
|
30
|
+
resource.api_methods.sort.collect{|s| s.to_s}.should == ["destroy", "link1", "link2", "links", "show", "update"]
|
31
31
|
end
|
32
32
|
|
33
33
|
it "Should have the actions for instances of the ResourceDetail class" do
|
34
34
|
resource = RightApi::ResourceDetail.new(@client, 'deployment', '/api/deployments/1',
|
35
35
|
{'links' => [{'rel' => 'self', 'href' => 'self'}],
|
36
36
|
'actions' => [{'rel' => 'action1'}, {'rel' => 'action2'}]})
|
37
|
-
resource.api_methods.sort.should == [
|
37
|
+
resource.api_methods.sort.collect{|s| s.to_s}.should == ["action1", "action2", "destroy", "href", "links", "show", "update"]
|
38
38
|
|
39
39
|
flexmock(@rest_client).should_receive(:post).with({}, @header, Proc).and_return('ok')
|
40
40
|
resource.action1.should == 'ok'
|
@@ -42,7 +42,7 @@ describe RightApi::ResourceDetail do
|
|
42
42
|
|
43
43
|
it "Should have live_tasks for the 'instance' resource" do
|
44
44
|
resource = RightApi::ResourceDetail.new(@client, 'instance', '/api/instances/1', {})
|
45
|
-
resource.api_methods.sort.should == [
|
45
|
+
resource.api_methods.sort.collect{|s| s.to_s}.should == ["links", "live_tasks", "show", "update"]
|
46
46
|
flexmock(RightApi::Resource).should_receive(:process).with(@client, 'live_task', '/api/instances/1/live/tasks/1').and_return('ok')
|
47
47
|
resource.live_tasks(:id => '1').should == 'ok'
|
48
48
|
end
|
@@ -53,7 +53,7 @@ describe RightApi::ResourceDetail do
|
|
53
53
|
{'href' => '/api/servers/1', 'rel' => 'self'},
|
54
54
|
{'href' => '/api/clouds/1/instances/1', 'rel' => 'current_instance'}],
|
55
55
|
'current_instance' => {'links' => [{'href' => '/api/clouds/1/instances/1', 'rel' => 'self'}]}})
|
56
|
-
resource.api_methods.sort.should == [
|
56
|
+
resource.api_methods.collect{|s| s.to_s}.sort.should == ["current_instance", "destroy", "href", "links", "show", "update"]
|
57
57
|
end
|
58
58
|
end
|
59
59
|
end
|
data/spec/resource_spec.rb
CHANGED
@@ -9,7 +9,7 @@ describe RightApi::Resource do
|
|
9
9
|
|
10
10
|
it "Should have the required methods for instances of the Resource class" do
|
11
11
|
resource = RightApi::Resource.process(@client, 'deployment', '/api/deployments/1')
|
12
|
-
resource.api_methods.sort.should == [
|
12
|
+
resource.api_methods.sort.collect{|s| s.to_s}.should == ["destroy", "show", "update"]
|
13
13
|
end
|
14
14
|
|
15
15
|
it "Should not have destroy/show/update for instances of the Resource class that do not support them" do
|
data/spec/resources_spec.rb
CHANGED
@@ -9,17 +9,17 @@ describe RightApi::Resources do
|
|
9
9
|
|
10
10
|
it "Should have the required methods for instances of the Resources class" do
|
11
11
|
resource = RightApi::Resources.new(@client, '/api/deployments', 'deployments')
|
12
|
-
resource.api_methods.sort.should == [
|
12
|
+
resource.api_methods.sort.collect{|s| s.to_s}.should == ["create", "index"]
|
13
13
|
end
|
14
14
|
|
15
15
|
it "Should not have index for instances of the Resources class that do not support it" do
|
16
16
|
resource = RightApi::Resources.new(@client, '/api/tags', 'tags')
|
17
|
-
resource.api_methods.sort.should == [
|
17
|
+
resource.api_methods.sort.collect{|s| s.to_s}.should == ["by_resource", "by_tag", "multi_add", "multi_delete"]
|
18
18
|
end
|
19
19
|
|
20
20
|
it "Should have resource-specific methods for instances of the Resources class" do
|
21
21
|
resource = RightApi::Resources.new(@client, '/api/backups', 'backups')
|
22
|
-
resource.api_methods.sort.should == [
|
22
|
+
resource.api_methods.sort.collect{|s| s.to_s}.should == ["cleanup", "create", "index"]
|
23
23
|
end
|
24
24
|
end
|
25
25
|
end
|
metadata
CHANGED
@@ -2,15 +2,15 @@
|
|
2
2
|
name: right_api_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 1.5.
|
5
|
+
version: 1.5.2
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
|
-
- Ali Khajeh-Hosseini
|
8
|
+
- Ali Khajeh-Hosseini, Natalie Schauser, Nagender Paduru
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-
|
13
|
+
date: 2011-09-09 00:00:00 +01:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -68,20 +68,9 @@ dependencies:
|
|
68
68
|
type: :development
|
69
69
|
prerelease: false
|
70
70
|
version_requirements: *id005
|
71
|
-
- !ruby/object:Gem::Dependency
|
72
|
-
name: ruby-debug19
|
73
|
-
requirement: &id006 !ruby/object:Gem::Requirement
|
74
|
-
none: false
|
75
|
-
requirements:
|
76
|
-
- - "="
|
77
|
-
- !ruby/object:Gem::Version
|
78
|
-
version: 0.11.6
|
79
|
-
type: :development
|
80
|
-
prerelease: false
|
81
|
-
version_requirements: *id006
|
82
71
|
- !ruby/object:Gem::Dependency
|
83
72
|
name: simplecov
|
84
|
-
requirement: &
|
73
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
85
74
|
none: false
|
86
75
|
requirements:
|
87
76
|
- - "="
|
@@ -89,10 +78,10 @@ dependencies:
|
|
89
78
|
version: 0.4.2
|
90
79
|
type: :development
|
91
80
|
prerelease: false
|
92
|
-
version_requirements: *
|
81
|
+
version_requirements: *id006
|
93
82
|
- !ruby/object:Gem::Dependency
|
94
83
|
name: bundler
|
95
|
-
requirement: &
|
84
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
96
85
|
none: false
|
97
86
|
requirements:
|
98
87
|
- - ">="
|
@@ -100,13 +89,13 @@ dependencies:
|
|
100
89
|
version: "0"
|
101
90
|
type: :development
|
102
91
|
prerelease: false
|
103
|
-
version_requirements: *
|
92
|
+
version_requirements: *id007
|
104
93
|
description: "\n\
|
105
94
|
The right_api_client gem simplifies the use of RightScale's MultiCloud API. It provides\n\
|
106
95
|
a simple object model of the API resources, and handles all of the fine details involved\n\
|
107
96
|
in making HTTP calls and translating their responses.\n "
|
108
97
|
email:
|
109
|
-
-
|
98
|
+
- ali@rightscale.com
|
110
99
|
executables: []
|
111
100
|
|
112
101
|
extensions: []
|
@@ -151,7 +140,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
151
140
|
requirements:
|
152
141
|
- - ">="
|
153
142
|
- !ruby/object:Gem::Version
|
154
|
-
hash:
|
143
|
+
hash: -1047381825894058411
|
155
144
|
segments:
|
156
145
|
- 0
|
157
146
|
version: "0"
|
@@ -160,7 +149,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
160
149
|
requirements:
|
161
150
|
- - ">="
|
162
151
|
- !ruby/object:Gem::Version
|
163
|
-
hash:
|
152
|
+
hash: -1047381825894058411
|
164
153
|
segments:
|
165
154
|
- 0
|
166
155
|
version: "0"
|