rest_connection 0.1.4 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
|