rest_connection 0.1.4 → 0.1.5
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/Rakefile +1 -1
- data/VERSION +1 -1
- data/git_hooks/post-commit +43 -0
- data/lib/rest_connection/rightscale/alert_spec_subject.rb +21 -0
- data/lib/rest_connection/rightscale/backup.rb +70 -0
- data/lib/rest_connection/rightscale/cloud_account.rb +39 -0
- data/lib/rest_connection/rightscale/ec2_server_array_internal.rb +43 -0
- data/lib/rest_connection/rightscale/mc_audit_entry.rb +101 -0
- data/lib/rest_connection/rightscale/mc_server_template_multi_cloud_image.rb +50 -0
- data/lib/rest_connection/rightscale/right_script_attachment_internal.rb +92 -0
- data/lib/rest_connection/rightscale/security_group_rule.rb +31 -0
- data/lib/rest_connection/rightscale/server_ec2_ebs_volume.rb +40 -0
- data/lib/rest_connection/rightscale/session.rb +61 -0
- data/lib/rest_connection/rightscale/sqs_queue.rb +22 -0
- data/lib/rest_connection/rightscale/vpc_dhcp_option.rb +19 -0
- data/rest_connection.gemspec +21 -5
- metadata +33 -6
data/Rakefile
CHANGED
@@ -4,7 +4,7 @@ Jeweler::Tasks.new do |gemspec|
|
|
4
4
|
gemspec.name = "rest_connection"
|
5
5
|
gemspec.summary = "Modular RESTful API library"
|
6
6
|
gemspec.description = "A Modular RESTful API library. Current implemented modules: RightScale API"
|
7
|
-
gemspec.email = ["
|
7
|
+
gemspec.email = ["daniel.onorato@rightscale.com"]
|
8
8
|
gemspec.homepage = "http://github.com/rightscale/rest_connection"
|
9
9
|
gemspec.authors = ["Jeremy Deininger", "Timothy Rodriguez"]
|
10
10
|
gemspec.add_dependency('activesupport', "=2.3.10")
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.5
|
@@ -0,0 +1,43 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
puts <<EOS
|
3
|
+
..,ONMMMMMO.
|
4
|
+
NM8~:~:.,+NMM=
|
5
|
+
MO .MM:
|
6
|
+
NM. ,MN
|
7
|
+
.. .7MN . . 8M,
|
8
|
+
==. ?N: .MMN .,,.. 8$ZZ.~MN
|
9
|
+
.$. N8 ,DD. ,MMN ...+:. .MMM
|
10
|
+
D 8D.Z= .$. NMMM..,~8I ,88+. MMMM:.
|
11
|
+
,~... ,MM .N . MMMM7. .... MMMMM,
|
12
|
+
DZ.. .:OZ.:M. ..8= .MMMM. .OMMMMM
|
13
|
+
:7 . 8+$M:.D+ +MMMM, .:N+,MMD: 7MMMMM.
|
14
|
+
.MM7:.... 8 .M. 7MMMMM. MMMMZMMMMO.7MMMMM.
|
15
|
+
,?. .. ..8 ,M =MMMMM MMN8$7O8DMM.OMMM~ +.
|
16
|
+
N.. . .+ M, .MMMMMOM M8. .OM.MIMMMZ =,.
|
17
|
+
=NZI+~, + I8 .MMMMMMM= .=DD, MMMMMI ~~
|
18
|
+
O. .N + M. IMMMMMMMMMD ~MN 7MMMMMMM .Z
|
19
|
+
.MNZZNMZ. . MM 7MMMMMMMMMMMMMMMMMMMMMMMM, .~M,.
|
20
|
+
ID=. . . MMI MMMMMMMMMMMMMMMMMMMMMMMMMD. .+N
|
21
|
+
.DMO,ZND+. MMM. :MMMMMMMMN =MMMMMMMMN:ZMMM,. +M~,$OD$
|
22
|
+
.MMO... MMM OMMMMMMMM~ . ,I++O7. OMMM= .IM7 . .=..+MNI.
|
23
|
+
.8MO :MMM .MMMMMMMMMM. MMMMM= ~D ?MO:7MN...
|
24
|
+
+$ON. $NMM .NMMMMMMMMM7. .MMMMM. .8Z. :7N...MM:
|
25
|
+
O7?N M+MMNMMMMMMMMMMMMMMMMMN MMMMMM8D. . $, .$8 M ..,$MN~,,.
|
26
|
+
N$:=M. .NM.MM. ?MMMMMMO. .. D IO$IM:D.,$O, ,. O.I,Z :M: .+MI
|
27
|
+
MO, MMI ..NM8.MM. =. MM..IMN7,. .,IDN7~MMMMMM, N .Z N.M. ,M. =N.
|
28
|
+
.MO. MMMMMMMM::MM .: . .M :+I?=D.~.MMMMMMM?,,~INMMNNM+ ~ ~. D8. ,8.
|
29
|
+
.M8. MMMMMMMM ZM$. 8 7. ~ M,MM+MMMMMMMMMMMMMMM.. , : ,M. .O+
|
30
|
+
.MO. MMMMMMMI.MM, N = .....,IDI. MMMMMMMM8MMMMMM.. = M+ .M.
|
31
|
+
.MZ~.MMMMMMM..MM . N .=. ?M,NMMMMMM?~MM$IMMM7MMMMM7 :O M
|
32
|
+
M7I.NMMMMM8.$MZ.~ 8 .~, : MMMMMMMMMMMMM.~OOIMMM+MMMMM, .N M
|
33
|
+
N=D OMMMMM, MM O .I .7. MMMMMMMMMMMMMMMMMMMMMD7NMM:MMMMN D .M
|
34
|
+
O:M,~MMMMD NM? D.=, 8 OMMMMMMMMMMMMMMMMMMMMMZZMM?MMMM: ... Z .M
|
35
|
+
+=M$ MMMZ :MN ~, D. I. ~MMMMMMM+,,~I, .NMMMMMZ.MDNMM7 I. . .M.
|
36
|
+
.$NM .,.. MM .M :N. :~ .MMMMMM. MMMMMMZ=M,MM. .M. 7M
|
37
|
+
.N.MM~ $MZ. O. N? N. ,MMMMMMM. MMMMMMMM+8Z: NZ. . .MI.
|
38
|
+
.M.=MMMMN.. .+=..M. M. NMMMMMMMD 8MMMMMMM.MMM. $M. . ?, ~M.
|
39
|
+
+. ~MM .. $, M: N: . 7MMMMMMN .~MMMMMM8,MMMMMMMMMMM ..M. :MM
|
40
|
+
D N . ,M N NN. I8. $MMMMMMM?.. .?MMMMMMM?OMMMMMMMMMMMMMMMMMMMMI . ...MM$
|
41
|
+
7? .?N.7O DM ,M ZMMMMMMMMMM7.IMMMMMMMMD$MMMMMMMMMMMMMMMMMMMMMMMMZ: IMMN.
|
42
|
+
.~MM?.=NM~DM8.. M 8MMMMMMMMMMMMMMMMM7=MMMMMMMMMMMMMMMMMD.IMMMNZZNMMN~
|
43
|
+
EOS
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# This file is part of RestConnection
|
2
|
+
#
|
3
|
+
# RestConnection is free software: you can redistribute it and/or modify
|
4
|
+
# it under the terms of the GNU General Public License as published by
|
5
|
+
# the Free Software Foundation, either version 3 of the License, or
|
6
|
+
# (at your option) any later version.
|
7
|
+
#
|
8
|
+
# RestConnection is distributed in the hope that it will be useful,
|
9
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
10
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
11
|
+
# GNU General Public License for more details.
|
12
|
+
#
|
13
|
+
# You should have received a copy of the GNU General Public License
|
14
|
+
# along with RestConnection. If not, see <http://www.gnu.org/licenses/>.
|
15
|
+
#
|
16
|
+
class AlertSpecSubject
|
17
|
+
include RightScale::Api::Base
|
18
|
+
extend RightScale::Api::BaseExtend
|
19
|
+
|
20
|
+
deny_methods :index, :destroy, :update, :show
|
21
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
# This file is part of RestConnection
|
2
|
+
#
|
3
|
+
# RestConnection is free software: you can redistribute it and/or modify
|
4
|
+
# it under the terms of the GNU General Public License as published by
|
5
|
+
# the Free Software Foundation, either version 3 of the License, or
|
6
|
+
# (at your option) any later version.
|
7
|
+
#
|
8
|
+
# RestConnection is distributed in the hope that it will be useful,
|
9
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
10
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
11
|
+
# GNU General Public License for more details.
|
12
|
+
#
|
13
|
+
# You should have received a copy of the GNU General Public License
|
14
|
+
# along with RestConnection. If not, see <http://www.gnu.org/licenses/>.
|
15
|
+
|
16
|
+
#
|
17
|
+
# You must have Beta v1.5 API access to use these internal API calls.
|
18
|
+
#
|
19
|
+
class Backup
|
20
|
+
include RightScale::Api::Gateway
|
21
|
+
extend RightScale::Api::GatewayExtend
|
22
|
+
|
23
|
+
deny_methods :index
|
24
|
+
|
25
|
+
def self.filters
|
26
|
+
[:cloud_href, :committed, :completed, :from_master, :latest_before]
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.find_all(lineage)
|
30
|
+
index(lineage)
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.find_with_filter(lineage, filter={})
|
34
|
+
index(lineage, filter)
|
35
|
+
end
|
36
|
+
|
37
|
+
def self.index(lineage, filter={})
|
38
|
+
filter_params = []
|
39
|
+
filter.each { |key,val|
|
40
|
+
unless self.filters.include?(key.to_sym)
|
41
|
+
raise ArgumentError.new("#{key} is not a valid filter for resource #{self.resource_singular_name}")
|
42
|
+
end
|
43
|
+
filter_params << "#{key}==#{val}"
|
44
|
+
}
|
45
|
+
|
46
|
+
a = Array.new
|
47
|
+
url = self.resource_plural_name
|
48
|
+
hsh = {'lineage' => lineage}
|
49
|
+
hsh.merge(:filter => filter_params) unless filter_params.empty?
|
50
|
+
connection.get(url, hsh).each do |object|
|
51
|
+
a << self.new(object)
|
52
|
+
end
|
53
|
+
|
54
|
+
return a
|
55
|
+
end
|
56
|
+
|
57
|
+
def self.cleanup(lineage, keep_last, params={})
|
58
|
+
params.merge!('keep_last' => keep_last, 'lineage' => lineage)
|
59
|
+
connection.post(resource_plural_name + "/cleanup", params)
|
60
|
+
end
|
61
|
+
|
62
|
+
def restore(instance_href, name=nil, description=nil)
|
63
|
+
uri = URI.parse(self.href)
|
64
|
+
params = {'instance_href' => instance_href}
|
65
|
+
params.deep_merge!({'backup' => {'name' => name}}) if name
|
66
|
+
params.deep_merge!({'backup' => {'description' => description}}) if description
|
67
|
+
location = connection.post(uri.path + "/restore", params)
|
68
|
+
Task.new('href' => location)
|
69
|
+
end
|
70
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# This file is part of RestConnection
|
2
|
+
#
|
3
|
+
# RestConnection is free software: you can redistribute it and/or modify
|
4
|
+
# it under the terms of the GNU General Public License as published by
|
5
|
+
# the Free Software Foundation, either version 3 of the License, or
|
6
|
+
# (at your option) any later version.
|
7
|
+
#
|
8
|
+
# RestConnection is distributed in the hope that it will be useful,
|
9
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
10
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
11
|
+
# GNU General Public License for more details.
|
12
|
+
#
|
13
|
+
# You should have received a copy of the GNU General Public License
|
14
|
+
# along with RestConnection. If not, see <http://www.gnu.org/licenses/>.
|
15
|
+
|
16
|
+
#
|
17
|
+
# You must have Beta v1.5 API access to use these internal API calls.
|
18
|
+
#
|
19
|
+
class CloudAccount
|
20
|
+
include RightScale::Api::Gateway
|
21
|
+
extend RightScale::Api::GatewayExtend
|
22
|
+
|
23
|
+
deny_methods :update
|
24
|
+
|
25
|
+
def cloud_id
|
26
|
+
self.cloud.split("/").last
|
27
|
+
end
|
28
|
+
|
29
|
+
def create(opts)
|
30
|
+
location = connection.post(self.resource_plural_name, self.resource_singular_name.to_sym => opts)
|
31
|
+
if location =~ /aws/
|
32
|
+
return "AWS Cloud Added successfully"
|
33
|
+
else
|
34
|
+
newrecord = self.new('links' => [ {'rel' => 'self', 'href' => location } ])
|
35
|
+
newrecord.reload
|
36
|
+
return newrecord
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# This file is part of RestConnection
|
2
|
+
#
|
3
|
+
# RestConnection is free software: you can redistribute it and/or modify
|
4
|
+
# it under the terms of the GNU General Public License as published by
|
5
|
+
# the Free Software Foundation, either version 3 of the License, or
|
6
|
+
# (at your option) any later version.
|
7
|
+
#
|
8
|
+
# RestConnection is distributed in the hope that it will be useful,
|
9
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
10
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
11
|
+
# GNU General Public License for more details.
|
12
|
+
#
|
13
|
+
# You should have received a copy of the GNU General Public License
|
14
|
+
# along with RestConnection. If not, see <http://www.gnu.org/licenses/>.
|
15
|
+
|
16
|
+
class Ec2ServerArray
|
17
|
+
include RightScale::Api::Base
|
18
|
+
extend RightScale::Api::BaseExtend
|
19
|
+
include RightScale::Api::Taggable
|
20
|
+
extend RightScale::Api::TaggableExtend
|
21
|
+
|
22
|
+
deny_methods :index, :show, :create, :update, :destroy
|
23
|
+
|
24
|
+
def run_script_on_instances(script, ec2_instance_hrefs=[], opts={})
|
25
|
+
uri = URI.parse(self.href)
|
26
|
+
case script
|
27
|
+
when Executable then script = script.right_script
|
28
|
+
when String then script = RightScript.new('href' => script)
|
29
|
+
end
|
30
|
+
|
31
|
+
params = {:right_script_href => script.href}
|
32
|
+
unless ec2_instance_hrefs.nil? || ec2_instance_hrefs.empty?
|
33
|
+
params[:ec2_instance_hrefs] = ec2_instance_hrefs
|
34
|
+
end
|
35
|
+
unless opts.nil? || opts.empty?
|
36
|
+
params[:parameters] = opts
|
37
|
+
end
|
38
|
+
params = {:ec2_server_array => params}
|
39
|
+
connection.post(uri.path + "/run_script_on_instances", params).map do |work_unit|
|
40
|
+
Status.new('href' => location)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,101 @@
|
|
1
|
+
# This file is part of RestConnection
|
2
|
+
#
|
3
|
+
# RestConnection is free software: you can redistribute it and/or modify
|
4
|
+
# it under the terms of the GNU General Public License as published by
|
5
|
+
# the Free Software Foundation, either version 3 of the License, or
|
6
|
+
# (at your option) any later version.
|
7
|
+
#
|
8
|
+
# RestConnection is distributed in the hope that it will be useful,
|
9
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
10
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
11
|
+
# GNU General Public License for more details.
|
12
|
+
#
|
13
|
+
# You should have received a copy of the GNU General Public License
|
14
|
+
# along with RestConnection. If not, see <http://www.gnu.org/licenses/>.
|
15
|
+
|
16
|
+
#
|
17
|
+
# You must have Beta v1.5 API access to use these internal API calls.
|
18
|
+
#
|
19
|
+
class McAuditEntry
|
20
|
+
include RightScale::Api::Gateway
|
21
|
+
extend RightScale::Api::GatewayExtend
|
22
|
+
|
23
|
+
deny_methods :destroy, :index
|
24
|
+
|
25
|
+
def resource_plural_name
|
26
|
+
"audit_entries"
|
27
|
+
end
|
28
|
+
|
29
|
+
def resource_singular_name
|
30
|
+
"audit_entry"
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.resource_plural_name
|
34
|
+
"audit_entries"
|
35
|
+
end
|
36
|
+
|
37
|
+
def self.resource_singular_name
|
38
|
+
"audit_entry"
|
39
|
+
end
|
40
|
+
|
41
|
+
def self.filters
|
42
|
+
[:auditee_href, :user_email]
|
43
|
+
end
|
44
|
+
|
45
|
+
def self.find_all(start_date=nil, end_date=nil, limit=1000)
|
46
|
+
start_date ||= (Time.now.utc - (60*60*24*31)).strftime(RightScale::Api::DATETIME_FMT)
|
47
|
+
end_date ||= Time.now.utc.strftime(RightScale::Api::DATETIME_FMT)
|
48
|
+
index(start_date, end_date, limit)
|
49
|
+
end
|
50
|
+
|
51
|
+
def self.find_with_filter(start_date, end_date, limit, filter)
|
52
|
+
index(start_date, end_date, limit, filter)
|
53
|
+
end
|
54
|
+
|
55
|
+
def self.index(start_date, end_date, limit=1000, filter={})
|
56
|
+
# Validate index params
|
57
|
+
ex_fmt = "2011/06/25 00:00:00 +0000"
|
58
|
+
regex = /^(\d{4})\/(\d{2})\/(\d{2}) (\d{2}):(\d{2}):(\d{2}) ([+-]\d{4})$/
|
59
|
+
unless start_date =~ regex
|
60
|
+
raise ArgumentError.new("start_date doesn't match format. e.g., #{ex_fmt}")
|
61
|
+
end
|
62
|
+
unless end_date =~ regex
|
63
|
+
raise ArgumentError.new("end_date doesn't match format. e.g., #{ex_fmt}")
|
64
|
+
end
|
65
|
+
unless (1..1000) === limit.to_i
|
66
|
+
raise ArgumentError.new("limit is not within the range of 1..1000")
|
67
|
+
end
|
68
|
+
filter_params = []
|
69
|
+
filter.each { |key,val|
|
70
|
+
unless self.filters.include?(key.to_sym)
|
71
|
+
raise ArgumentError.new("#{key} is not a valid filter for resource #{self.resource_singular_name}")
|
72
|
+
end
|
73
|
+
filter_params << "#{key}==#{val}"
|
74
|
+
}
|
75
|
+
|
76
|
+
a = Array.new
|
77
|
+
url = self.resource_plural_name
|
78
|
+
if filter_params.empty?
|
79
|
+
connection.get(url).each do |object|
|
80
|
+
a << self.new(object)
|
81
|
+
end
|
82
|
+
else
|
83
|
+
connection.get(url, :filter => filter_params).each do |object|
|
84
|
+
a << self.new(object)
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
return a
|
89
|
+
end
|
90
|
+
|
91
|
+
def append(detail, offset)
|
92
|
+
uri = URI.parse(self.href)
|
93
|
+
connection.post(uri.path + "/append", 'detail' => detail, 'offset' => offset)
|
94
|
+
end
|
95
|
+
|
96
|
+
def detail
|
97
|
+
uri = URI.parse(self.href)
|
98
|
+
res = connection.post(uri.path + "/detail")
|
99
|
+
return res.body
|
100
|
+
end
|
101
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
# This file is part of RestConnection
|
2
|
+
#
|
3
|
+
# RestConnection is free software: you can redistribute it and/or modify
|
4
|
+
# it under the terms of the GNU General Public License as published by
|
5
|
+
# the Free Software Foundation, either version 3 of the License, or
|
6
|
+
# (at your option) any later version.
|
7
|
+
#
|
8
|
+
# RestConnection is distributed in the hope that it will be useful,
|
9
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
10
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
11
|
+
# GNU General Public License for more details.
|
12
|
+
#
|
13
|
+
# You should have received a copy of the GNU General Public License
|
14
|
+
# along with RestConnection. If not, see <http://www.gnu.org/licenses/>.
|
15
|
+
|
16
|
+
#
|
17
|
+
# You must have Beta v1.5 API access to use these internal API calls.
|
18
|
+
#
|
19
|
+
|
20
|
+
class McServerTemplateMultiCloudImage
|
21
|
+
include RightScale::Api::Gateway
|
22
|
+
extend RightScale::Api::GatewayExtend
|
23
|
+
|
24
|
+
deny_methods :update
|
25
|
+
|
26
|
+
def resource_plural_name
|
27
|
+
"server_template_multi_cloud_images"
|
28
|
+
end
|
29
|
+
|
30
|
+
def resource_singular_name
|
31
|
+
"server_template_multi_cloud_image"
|
32
|
+
end
|
33
|
+
|
34
|
+
def self.resource_plural_name
|
35
|
+
"server_template_multi_cloud_images"
|
36
|
+
end
|
37
|
+
|
38
|
+
def self.resource_singular_name
|
39
|
+
"server_template_multi_cloud_image"
|
40
|
+
end
|
41
|
+
|
42
|
+
def self.filters
|
43
|
+
[:is_default, :multi_cloud_image_href, :server_template_href]
|
44
|
+
end
|
45
|
+
|
46
|
+
def make_default
|
47
|
+
my_href = URI.parse(self.href)
|
48
|
+
connection.post(my_href + "/make_default")
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,92 @@
|
|
1
|
+
# This file is part of RestConnection
|
2
|
+
#
|
3
|
+
# RestConnection is free software: you can redistribute it and/or modify
|
4
|
+
# it under the terms of the GNU General Public License as published by
|
5
|
+
# the Free Software Foundation, either version 3 of the License, or
|
6
|
+
# (at your option) any later version.
|
7
|
+
#
|
8
|
+
# RestConnection is distributed in the hope that it will be useful,
|
9
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
10
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
11
|
+
# GNU General Public License for more details.
|
12
|
+
#
|
13
|
+
# You should have received a copy of the GNU General Public License
|
14
|
+
# along with RestConnection. If not, see <http://www.gnu.org/licenses/>.
|
15
|
+
|
16
|
+
require 'rest-client'
|
17
|
+
RestClient.log = ENV["REST_CONNECTION_LOG"] || "stdout"
|
18
|
+
|
19
|
+
class RightScriptAttachmentInternal
|
20
|
+
include RightScale::Api::Base
|
21
|
+
extend RightScale::Api::BaseExtend
|
22
|
+
include RightScale::Api::Internal
|
23
|
+
extend RightScale::Api::InternalExtend
|
24
|
+
|
25
|
+
deny_methods :index, :create, :update
|
26
|
+
|
27
|
+
def resource_plural_name
|
28
|
+
"right_script_attachments"
|
29
|
+
end
|
30
|
+
|
31
|
+
def resource_singular_name
|
32
|
+
"right_script_attachment"
|
33
|
+
end
|
34
|
+
|
35
|
+
def self.resource_plural_name
|
36
|
+
"right_script_attachments"
|
37
|
+
end
|
38
|
+
|
39
|
+
def self.resource_singular_name
|
40
|
+
"right_script_attachment"
|
41
|
+
end
|
42
|
+
|
43
|
+
def self.get_s3_upload_params(right_script_href)
|
44
|
+
url = self.resource_plural_name + "/get_s3_upload_params"
|
45
|
+
params = {"right_script_href" => right_script_href}
|
46
|
+
params = {self.resource_singular_name => params}
|
47
|
+
connection.get(url, params)
|
48
|
+
end
|
49
|
+
|
50
|
+
=begin
|
51
|
+
def self.upload(filepath, right_script_href)
|
52
|
+
hsh = get_s3_upload_params(right_script_href)
|
53
|
+
params = {}
|
54
|
+
hsh.keys.each { |k| params[k.gsub(/-/,"_").to_sym] = hsh[k] }
|
55
|
+
params[:file] = File.new(filepath, 'rb')
|
56
|
+
req = RestClient::Request.new({
|
57
|
+
:method => :post,
|
58
|
+
:url => hsh["url"],
|
59
|
+
:payload => params,
|
60
|
+
:multipart => true,
|
61
|
+
})
|
62
|
+
s = req.payload.to_s
|
63
|
+
splitter = s.split("\r\n").first
|
64
|
+
a = s.split(/#{splitter}-?-?\r\n/)
|
65
|
+
a.push(a.delete(a.detect { |n| n =~ %r{name="file";} }))
|
66
|
+
new_payload = a.join(splitter + "\r\n") + splitter + "--\r\n"
|
67
|
+
|
68
|
+
uri = URI.parse(hsh["url"])
|
69
|
+
net_http = Net::HTTP::Post.new(uri.request_uri)
|
70
|
+
req.transmit(uri, net_http, new_payload)
|
71
|
+
# TODO: Precondition Failing
|
72
|
+
|
73
|
+
callback_uri = URI.parse(hsh["success_action_redirect"])
|
74
|
+
connection.get(callback_uri.request_uri)
|
75
|
+
end
|
76
|
+
=end
|
77
|
+
|
78
|
+
def download
|
79
|
+
self.reload unless @params["authenticated_s3_url"]
|
80
|
+
RestClient.get(@params["authenticated_s3_url"])
|
81
|
+
end
|
82
|
+
|
83
|
+
def download_to_file(path=Dir.pwd)
|
84
|
+
data = self.download
|
85
|
+
File.open(File.join(path, @params["filename"]), 'w') { |f| f.write(data) }
|
86
|
+
end
|
87
|
+
|
88
|
+
def reload
|
89
|
+
uri = URI.parse(self.href || "#{resource_plural_name}/#{@params["id"]}")
|
90
|
+
@params ? @params.merge!(connection.get(uri.path)) : @params = connection.get(uri.path)
|
91
|
+
end
|
92
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# This file is part of RestConnection
|
2
|
+
#
|
3
|
+
# RestConnection is free software: you can redistribute it and/or modify
|
4
|
+
# it under the terms of the GNU General Public License as published by
|
5
|
+
# the Free Software Foundation, either version 3 of the License, or
|
6
|
+
# (at your option) any later version.
|
7
|
+
#
|
8
|
+
# RestConnection is distributed in the hope that it will be useful,
|
9
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
10
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
11
|
+
# GNU General Public License for more details.
|
12
|
+
#
|
13
|
+
# You should have received a copy of the GNU General Public License
|
14
|
+
# along with RestConnection. If not, see <http://www.gnu.org/licenses/>.
|
15
|
+
|
16
|
+
#
|
17
|
+
# You must have Beta v1.5 API access to use these internal API calls.
|
18
|
+
#
|
19
|
+
class SecurityGroupRule
|
20
|
+
include RightScale::Api::Gateway
|
21
|
+
extend RightScale::Api::GatewayExtend
|
22
|
+
|
23
|
+
deny_methods :update
|
24
|
+
|
25
|
+
def self.parse_args(cloud_id=nil, security_group_id=nil)
|
26
|
+
if cloud_id.nil? ^ security_group_id.nil?
|
27
|
+
raise ArgumentError.new("#{self} requires either 0 arguments, or 2 arguments")
|
28
|
+
end
|
29
|
+
"clouds/#{cloud_id}/security_groups/#{security_group_id}/"
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# This file is part of RestConnection
|
2
|
+
#
|
3
|
+
# RestConnection is free software: you can redistribute it and/or modify
|
4
|
+
# it under the terms of the GNU General Public License as published by
|
5
|
+
# the Free Software Foundation, either version 3 of the License, or
|
6
|
+
# (at your option) any later version.
|
7
|
+
#
|
8
|
+
# RestConnection is distributed in the hope that it will be useful,
|
9
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
10
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
11
|
+
# GNU General Public License for more details.
|
12
|
+
#
|
13
|
+
# You should have received a copy of the GNU General Public License
|
14
|
+
# along with RestConnection. If not, see <http://www.gnu.org/licenses/>.
|
15
|
+
#
|
16
|
+
|
17
|
+
class ServerEc2EbsVolume
|
18
|
+
include RightScale::Api::Base
|
19
|
+
extend RightScale::Api::BaseExtend
|
20
|
+
include RightScale::Api::Taggable
|
21
|
+
extend RightScale::Api::TaggableExtend
|
22
|
+
|
23
|
+
deny_methods :index, :update
|
24
|
+
|
25
|
+
def resource_plural_name
|
26
|
+
"component_ec2_ebs_volumes"
|
27
|
+
end
|
28
|
+
|
29
|
+
def resource_singular_name
|
30
|
+
"component_ec2_ebs_volume"
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.resource_plural_name
|
34
|
+
"component_ec2_ebs_volumes"
|
35
|
+
end
|
36
|
+
|
37
|
+
def self.resource_singular_name
|
38
|
+
"component_ec2_ebs_volume"
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
# This file is part of RestConnection
|
2
|
+
#
|
3
|
+
# RestConnection is free software: you can redistribute it and/or modify
|
4
|
+
# it under the terms of the GNU General Public License as published by
|
5
|
+
# the Free Software Foundation, either version 3 of the License, or
|
6
|
+
# (at your option) any later version.
|
7
|
+
#
|
8
|
+
# RestConnection is distributed in the hope that it will be useful,
|
9
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
10
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
11
|
+
# GNU General Public License for more details.
|
12
|
+
#
|
13
|
+
# You should have received a copy of the GNU General Public License
|
14
|
+
# along with RestConnection. If not, see <http://www.gnu.org/licenses/>.
|
15
|
+
|
16
|
+
#
|
17
|
+
# You must have Beta v1.5 API access to use these internal API calls.
|
18
|
+
#
|
19
|
+
class Session
|
20
|
+
include RightScale::Api::Gateway
|
21
|
+
extend RightScale::Api::GatewayExtend
|
22
|
+
|
23
|
+
deny_methods :index, :destroy, :update, :show
|
24
|
+
|
25
|
+
def self.index
|
26
|
+
self.new(connection.get(resource_singular_name))
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.create(opts={})
|
30
|
+
settings = connection.settings
|
31
|
+
ignored, account = settings[:api_url].split(/\/acct\//) if settings[:api_url].include?("acct")
|
32
|
+
params = {
|
33
|
+
"email" => settings[:user],
|
34
|
+
"password" => settings[:pass],
|
35
|
+
"account_href" => "/api/accounts/#{account}"
|
36
|
+
}.merge(opts)
|
37
|
+
resp = connection.post(resource_singular_name, params)
|
38
|
+
connection.cookie = resp.response['set-cookie']
|
39
|
+
end
|
40
|
+
|
41
|
+
def self.accounts(opts={})
|
42
|
+
settings = connection.settings
|
43
|
+
params = {
|
44
|
+
"email" => settings[:user],
|
45
|
+
"password" => settings[:pass],
|
46
|
+
}.merge(opts)
|
47
|
+
a = Array.new
|
48
|
+
connection.get(resource_singular_name + "/accounts").each do |object|
|
49
|
+
a << Account.new(object)
|
50
|
+
end
|
51
|
+
return a
|
52
|
+
end
|
53
|
+
|
54
|
+
def self.create_instance_session
|
55
|
+
# TODO
|
56
|
+
end
|
57
|
+
|
58
|
+
def self.index_instance_session
|
59
|
+
# TODO
|
60
|
+
end
|
61
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# This file is part of RestConnection
|
2
|
+
#
|
3
|
+
# RestConnection is free software: you can redistribute it and/or modify
|
4
|
+
# it under the terms of the GNU General Public License as published by
|
5
|
+
# the Free Software Foundation, either version 3 of the License, or
|
6
|
+
# (at your option) any later version.
|
7
|
+
#
|
8
|
+
# RestConnection is distributed in the hope that it will be useful,
|
9
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
10
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
11
|
+
# GNU General Public License for more details.
|
12
|
+
#
|
13
|
+
# You should have received a copy of the GNU General Public License
|
14
|
+
# along with RestConnection. If not, see <http://www.gnu.org/licenses/>.
|
15
|
+
#
|
16
|
+
|
17
|
+
class SqsQueue
|
18
|
+
include RightScale::Api::Base
|
19
|
+
extend RightScale::Api::BaseExtend
|
20
|
+
|
21
|
+
deny_methods :update
|
22
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# This file is part of RestConnection
|
2
|
+
#
|
3
|
+
# RestConnection is free software: you can redistribute it and/or modify
|
4
|
+
# it under the terms of the GNU General Public License as published by
|
5
|
+
# the Free Software Foundation, either version 3 of the License, or
|
6
|
+
# (at your option) any later version.
|
7
|
+
#
|
8
|
+
# RestConnection is distributed in the hope that it will be useful,
|
9
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
10
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
11
|
+
# GNU General Public License for more details.
|
12
|
+
#
|
13
|
+
# You should have received a copy of the GNU General Public License
|
14
|
+
# along with RestConnection. If not, see <http://www.gnu.org/licenses/>.
|
15
|
+
|
16
|
+
class VpcDhcpOption
|
17
|
+
include RightScale::Api::Base
|
18
|
+
extend RightScale::Api::BaseExtend
|
19
|
+
end
|
data/rest_connection.gemspec
CHANGED
@@ -5,12 +5,12 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "rest_connection"
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.5"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Jeremy Deininger", "Timothy Rodriguez"]
|
12
12
|
s.date = "2012-02-27"
|
13
|
-
s.description = "
|
13
|
+
s.description = "A Modular RESTful API library. Current implemented modules: RightScale API"
|
14
14
|
s.email = ["daniel.onorato@rightscale.com"]
|
15
15
|
s.extra_rdoc_files = [
|
16
16
|
"README.rdoc"
|
@@ -29,6 +29,7 @@ Gem::Specification.new do |s|
|
|
29
29
|
"examples/cucumber/step_definitions/spot_check_steps.rb",
|
30
30
|
"examples/relaunch_deployment.rb",
|
31
31
|
"examples/right_scale_ec2_instances_api_test.rb",
|
32
|
+
"git_hooks/post-commit",
|
32
33
|
"git_hooks/post-commit.disabled",
|
33
34
|
"git_hooks/post-merge.disabled",
|
34
35
|
"git_hooks/pre-commit",
|
@@ -36,9 +37,12 @@ Gem::Specification.new do |s|
|
|
36
37
|
"lib/rest_connection/patches.rb",
|
37
38
|
"lib/rest_connection/rightscale/account.rb",
|
38
39
|
"lib/rest_connection/rightscale/alert_spec.rb",
|
40
|
+
"lib/rest_connection/rightscale/alert_spec_subject.rb",
|
39
41
|
"lib/rest_connection/rightscale/audit_entry.rb",
|
42
|
+
"lib/rest_connection/rightscale/backup.rb",
|
40
43
|
"lib/rest_connection/rightscale/child_account.rb",
|
41
44
|
"lib/rest_connection/rightscale/cloud.rb",
|
45
|
+
"lib/rest_connection/rightscale/cloud_account.rb",
|
42
46
|
"lib/rest_connection/rightscale/credential.rb",
|
43
47
|
"lib/rest_connection/rightscale/deployment.rb",
|
44
48
|
"lib/rest_connection/rightscale/ec2_ebs_snapshot.rb",
|
@@ -46,12 +50,14 @@ Gem::Specification.new do |s|
|
|
46
50
|
"lib/rest_connection/rightscale/ec2_elastic_ip.rb",
|
47
51
|
"lib/rest_connection/rightscale/ec2_security_group.rb",
|
48
52
|
"lib/rest_connection/rightscale/ec2_server_array.rb",
|
53
|
+
"lib/rest_connection/rightscale/ec2_server_array_internal.rb",
|
49
54
|
"lib/rest_connection/rightscale/ec2_ssh_key.rb",
|
50
55
|
"lib/rest_connection/rightscale/ec2_ssh_key_internal.rb",
|
51
56
|
"lib/rest_connection/rightscale/executable.rb",
|
52
57
|
"lib/rest_connection/rightscale/instance.rb",
|
53
58
|
"lib/rest_connection/rightscale/instance_type.rb",
|
54
59
|
"lib/rest_connection/rightscale/macro.rb",
|
60
|
+
"lib/rest_connection/rightscale/mc_audit_entry.rb",
|
55
61
|
"lib/rest_connection/rightscale/mc_datacenter.rb",
|
56
62
|
"lib/rest_connection/rightscale/mc_deployment.rb",
|
57
63
|
"lib/rest_connection/rightscale/mc_image.rb",
|
@@ -63,6 +69,7 @@ Gem::Specification.new do |s|
|
|
63
69
|
"lib/rest_connection/rightscale/mc_server.rb",
|
64
70
|
"lib/rest_connection/rightscale/mc_server_array.rb",
|
65
71
|
"lib/rest_connection/rightscale/mc_server_template.rb",
|
72
|
+
"lib/rest_connection/rightscale/mc_server_template_multi_cloud_image.rb",
|
66
73
|
"lib/rest_connection/rightscale/mc_ssh_key.rb",
|
67
74
|
"lib/rest_connection/rightscale/mc_tag.rb",
|
68
75
|
"lib/rest_connection/rightscale/mc_volume.rb",
|
@@ -75,6 +82,7 @@ Gem::Specification.new do |s|
|
|
75
82
|
"lib/rest_connection/rightscale/multi_cloud_image_internal.rb",
|
76
83
|
"lib/rest_connection/rightscale/permission.rb",
|
77
84
|
"lib/rest_connection/rightscale/right_script.rb",
|
85
|
+
"lib/rest_connection/rightscale/right_script_attachment_internal.rb",
|
78
86
|
"lib/rest_connection/rightscale/right_script_internal.rb",
|
79
87
|
"lib/rest_connection/rightscale/rightscale_api_base.rb",
|
80
88
|
"lib/rest_connection/rightscale/rightscale_api_gateway.rb",
|
@@ -85,15 +93,20 @@ Gem::Specification.new do |s|
|
|
85
93
|
"lib/rest_connection/rightscale/rightscale_api_taggable.rb",
|
86
94
|
"lib/rest_connection/rightscale/rs_internal.rb",
|
87
95
|
"lib/rest_connection/rightscale/s3_bucket.rb",
|
96
|
+
"lib/rest_connection/rightscale/security_group_rule.rb",
|
88
97
|
"lib/rest_connection/rightscale/server.rb",
|
98
|
+
"lib/rest_connection/rightscale/server_ec2_ebs_volume.rb",
|
89
99
|
"lib/rest_connection/rightscale/server_interface.rb",
|
90
100
|
"lib/rest_connection/rightscale/server_internal.rb",
|
91
101
|
"lib/rest_connection/rightscale/server_template.rb",
|
92
102
|
"lib/rest_connection/rightscale/server_template_internal.rb",
|
103
|
+
"lib/rest_connection/rightscale/session.rb",
|
104
|
+
"lib/rest_connection/rightscale/sqs_queue.rb",
|
93
105
|
"lib/rest_connection/rightscale/status.rb",
|
94
106
|
"lib/rest_connection/rightscale/tag.rb",
|
95
107
|
"lib/rest_connection/rightscale/task.rb",
|
96
108
|
"lib/rest_connection/rightscale/user.rb",
|
109
|
+
"lib/rest_connection/rightscale/vpc_dhcp_option.rb",
|
97
110
|
"lib/rest_connection/ssh_hax.rb",
|
98
111
|
"rest_connection.gemspec",
|
99
112
|
"spec/ec2_server_array_spec.rb",
|
@@ -110,10 +123,10 @@ Gem::Specification.new do |s|
|
|
110
123
|
"spec/spec_helper.rb",
|
111
124
|
"spec/tag_spec.rb"
|
112
125
|
]
|
113
|
-
s.homepage = "http://github.com/
|
126
|
+
s.homepage = "http://github.com/rightscale/rest_connection"
|
114
127
|
s.require_paths = ["lib"]
|
115
|
-
s.rubygems_version = "1.
|
116
|
-
s.summary = "
|
128
|
+
s.rubygems_version = "1.8.17"
|
129
|
+
s.summary = "Modular RESTful API library"
|
117
130
|
|
118
131
|
if s.respond_to? :specification_version then
|
119
132
|
s.specification_version = 3
|
@@ -123,17 +136,20 @@ Gem::Specification.new do |s|
|
|
123
136
|
s.add_runtime_dependency(%q<net-ssh>, ["= 2.1.4"])
|
124
137
|
s.add_runtime_dependency(%q<json>, [">= 0"])
|
125
138
|
s.add_runtime_dependency(%q<highline>, [">= 0"])
|
139
|
+
s.add_runtime_dependency(%q<rest-client>, [">= 0"])
|
126
140
|
else
|
127
141
|
s.add_dependency(%q<activesupport>, ["= 2.3.10"])
|
128
142
|
s.add_dependency(%q<net-ssh>, ["= 2.1.4"])
|
129
143
|
s.add_dependency(%q<json>, [">= 0"])
|
130
144
|
s.add_dependency(%q<highline>, [">= 0"])
|
145
|
+
s.add_dependency(%q<rest-client>, [">= 0"])
|
131
146
|
end
|
132
147
|
else
|
133
148
|
s.add_dependency(%q<activesupport>, ["= 2.3.10"])
|
134
149
|
s.add_dependency(%q<net-ssh>, ["= 2.1.4"])
|
135
150
|
s.add_dependency(%q<json>, [">= 0"])
|
136
151
|
s.add_dependency(%q<highline>, [">= 0"])
|
152
|
+
s.add_dependency(%q<rest-client>, [">= 0"])
|
137
153
|
end
|
138
154
|
end
|
139
155
|
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rest_connection
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 17
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 5
|
10
|
+
version: 0.1.5
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Jeremy Deininger
|
@@ -78,7 +78,21 @@ dependencies:
|
|
78
78
|
version: "0"
|
79
79
|
type: :runtime
|
80
80
|
version_requirements: *id004
|
81
|
-
|
81
|
+
- !ruby/object:Gem::Dependency
|
82
|
+
name: rest-client
|
83
|
+
prerelease: false
|
84
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
85
|
+
none: false
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
hash: 3
|
90
|
+
segments:
|
91
|
+
- 0
|
92
|
+
version: "0"
|
93
|
+
type: :runtime
|
94
|
+
version_requirements: *id005
|
95
|
+
description: "A Modular RESTful API library. Current implemented modules: RightScale API"
|
82
96
|
email:
|
83
97
|
- daniel.onorato@rightscale.com
|
84
98
|
executables: []
|
@@ -101,6 +115,7 @@ files:
|
|
101
115
|
- examples/cucumber/step_definitions/spot_check_steps.rb
|
102
116
|
- examples/relaunch_deployment.rb
|
103
117
|
- examples/right_scale_ec2_instances_api_test.rb
|
118
|
+
- git_hooks/post-commit
|
104
119
|
- git_hooks/post-commit.disabled
|
105
120
|
- git_hooks/post-merge.disabled
|
106
121
|
- git_hooks/pre-commit
|
@@ -108,9 +123,12 @@ files:
|
|
108
123
|
- lib/rest_connection/patches.rb
|
109
124
|
- lib/rest_connection/rightscale/account.rb
|
110
125
|
- lib/rest_connection/rightscale/alert_spec.rb
|
126
|
+
- lib/rest_connection/rightscale/alert_spec_subject.rb
|
111
127
|
- lib/rest_connection/rightscale/audit_entry.rb
|
128
|
+
- lib/rest_connection/rightscale/backup.rb
|
112
129
|
- lib/rest_connection/rightscale/child_account.rb
|
113
130
|
- lib/rest_connection/rightscale/cloud.rb
|
131
|
+
- lib/rest_connection/rightscale/cloud_account.rb
|
114
132
|
- lib/rest_connection/rightscale/credential.rb
|
115
133
|
- lib/rest_connection/rightscale/deployment.rb
|
116
134
|
- lib/rest_connection/rightscale/ec2_ebs_snapshot.rb
|
@@ -118,12 +136,14 @@ files:
|
|
118
136
|
- lib/rest_connection/rightscale/ec2_elastic_ip.rb
|
119
137
|
- lib/rest_connection/rightscale/ec2_security_group.rb
|
120
138
|
- lib/rest_connection/rightscale/ec2_server_array.rb
|
139
|
+
- lib/rest_connection/rightscale/ec2_server_array_internal.rb
|
121
140
|
- lib/rest_connection/rightscale/ec2_ssh_key.rb
|
122
141
|
- lib/rest_connection/rightscale/ec2_ssh_key_internal.rb
|
123
142
|
- lib/rest_connection/rightscale/executable.rb
|
124
143
|
- lib/rest_connection/rightscale/instance.rb
|
125
144
|
- lib/rest_connection/rightscale/instance_type.rb
|
126
145
|
- lib/rest_connection/rightscale/macro.rb
|
146
|
+
- lib/rest_connection/rightscale/mc_audit_entry.rb
|
127
147
|
- lib/rest_connection/rightscale/mc_datacenter.rb
|
128
148
|
- lib/rest_connection/rightscale/mc_deployment.rb
|
129
149
|
- lib/rest_connection/rightscale/mc_image.rb
|
@@ -135,6 +155,7 @@ files:
|
|
135
155
|
- lib/rest_connection/rightscale/mc_server.rb
|
136
156
|
- lib/rest_connection/rightscale/mc_server_array.rb
|
137
157
|
- lib/rest_connection/rightscale/mc_server_template.rb
|
158
|
+
- lib/rest_connection/rightscale/mc_server_template_multi_cloud_image.rb
|
138
159
|
- lib/rest_connection/rightscale/mc_ssh_key.rb
|
139
160
|
- lib/rest_connection/rightscale/mc_tag.rb
|
140
161
|
- lib/rest_connection/rightscale/mc_volume.rb
|
@@ -147,6 +168,7 @@ files:
|
|
147
168
|
- lib/rest_connection/rightscale/multi_cloud_image_internal.rb
|
148
169
|
- lib/rest_connection/rightscale/permission.rb
|
149
170
|
- lib/rest_connection/rightscale/right_script.rb
|
171
|
+
- lib/rest_connection/rightscale/right_script_attachment_internal.rb
|
150
172
|
- lib/rest_connection/rightscale/right_script_internal.rb
|
151
173
|
- lib/rest_connection/rightscale/rightscale_api_base.rb
|
152
174
|
- lib/rest_connection/rightscale/rightscale_api_gateway.rb
|
@@ -157,15 +179,20 @@ files:
|
|
157
179
|
- lib/rest_connection/rightscale/rightscale_api_taggable.rb
|
158
180
|
- lib/rest_connection/rightscale/rs_internal.rb
|
159
181
|
- lib/rest_connection/rightscale/s3_bucket.rb
|
182
|
+
- lib/rest_connection/rightscale/security_group_rule.rb
|
160
183
|
- lib/rest_connection/rightscale/server.rb
|
184
|
+
- lib/rest_connection/rightscale/server_ec2_ebs_volume.rb
|
161
185
|
- lib/rest_connection/rightscale/server_interface.rb
|
162
186
|
- lib/rest_connection/rightscale/server_internal.rb
|
163
187
|
- lib/rest_connection/rightscale/server_template.rb
|
164
188
|
- lib/rest_connection/rightscale/server_template_internal.rb
|
189
|
+
- lib/rest_connection/rightscale/session.rb
|
190
|
+
- lib/rest_connection/rightscale/sqs_queue.rb
|
165
191
|
- lib/rest_connection/rightscale/status.rb
|
166
192
|
- lib/rest_connection/rightscale/tag.rb
|
167
193
|
- lib/rest_connection/rightscale/task.rb
|
168
194
|
- lib/rest_connection/rightscale/user.rb
|
195
|
+
- lib/rest_connection/rightscale/vpc_dhcp_option.rb
|
169
196
|
- lib/rest_connection/ssh_hax.rb
|
170
197
|
- rest_connection.gemspec
|
171
198
|
- spec/ec2_server_array_spec.rb
|
@@ -181,7 +208,7 @@ files:
|
|
181
208
|
- spec/server_template_internal.rb
|
182
209
|
- spec/spec_helper.rb
|
183
210
|
- spec/tag_spec.rb
|
184
|
-
homepage: http://github.com/
|
211
|
+
homepage: http://github.com/rightscale/rest_connection
|
185
212
|
licenses: []
|
186
213
|
|
187
214
|
post_install_message:
|
@@ -213,6 +240,6 @@ rubyforge_project:
|
|
213
240
|
rubygems_version: 1.8.17
|
214
241
|
signing_key:
|
215
242
|
specification_version: 3
|
216
|
-
summary:
|
243
|
+
summary: Modular RESTful API library
|
217
244
|
test_files: []
|
218
245
|
|