right-scale-api 0.0.0
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/.gitignore +4 -0
- data/LICENSE +20 -0
- data/README.md +17 -0
- data/Rakefile +49 -0
- data/VERSION +1 -0
- data/lib/right-scale-api/account.rb +50 -0
- data/lib/right-scale-api/alert_spec.rb +26 -0
- data/lib/right-scale-api/base.rb +123 -0
- data/lib/right-scale-api/client.rb +12 -0
- data/lib/right-scale-api/deployment.rb +27 -0
- data/lib/right-scale-api/ec2_ebs_snapshot.rb +9 -0
- data/lib/right-scale-api/ec2_ebs_volume.rb +31 -0
- data/lib/right-scale-api/ec2_elastic_ip.rb +10 -0
- data/lib/right-scale-api/ec2_security_group.rb +14 -0
- data/lib/right-scale-api/ec2_ssh_key.rb +13 -0
- data/lib/right-scale-api/server.rb +64 -0
- data/lib/right-scale-api/server_template.rb +11 -0
- data/lib/right-scale-api/status.rb +13 -0
- data/lib/right-scale-api.rb +16 -0
- data/right-scale-api.gemspec +75 -0
- data/spec/right-scale-api_spec.rb +7 -0
- data/spec/spec.opts +1 -0
- data/spec/spec_helper.rb +9 -0
- metadata +126 -0
data/.gitignore
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2010 Nick Howard
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
RightScale API Gem
|
2
|
+
=======================
|
3
|
+
|
4
|
+
A client library for the RightScale API.
|
5
|
+
|
6
|
+
RightScale's [API Docs]("http://support.rightscale.com/15-References/RightScale_API_Reference_Guide")
|
7
|
+
|
8
|
+
Usage Examples
|
9
|
+
----------------------
|
10
|
+
|
11
|
+
RightScaleAPI.login user, pass
|
12
|
+
|
13
|
+
account = RightScaleAPI::Account.get id
|
14
|
+
|
15
|
+
foo_server = account.servers.find {|s| s.nickname == 'foo'}
|
16
|
+
|
17
|
+
foo_server.stop
|
data/Rakefile
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake'
|
3
|
+
|
4
|
+
begin
|
5
|
+
require 'jeweler'
|
6
|
+
Jeweler::Tasks.new do |gem|
|
7
|
+
gem.name = "right-scale-api"
|
8
|
+
gem.summary = %Q{A RightScale API gem that doesn't suck.(mostly)}
|
9
|
+
gem.description = %Q{A client for the RightScale API that hides some of the complexity of the API
|
10
|
+
(It doesn't require passing around hrefs as much). Based on HTTParty
|
11
|
+
}
|
12
|
+
gem.email = "ndh@baroquebobcat.com"
|
13
|
+
gem.homepage = "http://github.com/baroquebobcat/right-scale-api"
|
14
|
+
gem.authors = ["Nick Howard"]
|
15
|
+
gem.add_dependency "httparty"
|
16
|
+
gem.add_dependency "activesupport"
|
17
|
+
gem.add_development_dependency "rspec", ">= 1.2.9"
|
18
|
+
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
19
|
+
end
|
20
|
+
Jeweler::GemcutterTasks.new
|
21
|
+
rescue LoadError
|
22
|
+
puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
|
23
|
+
end
|
24
|
+
|
25
|
+
require 'spec/rake/spectask'
|
26
|
+
Spec::Rake::SpecTask.new(:spec) do |spec|
|
27
|
+
spec.libs << 'lib' << 'spec'
|
28
|
+
spec.spec_files = FileList['spec/**/*_spec.rb']
|
29
|
+
end
|
30
|
+
|
31
|
+
Spec::Rake::SpecTask.new(:rcov) do |spec|
|
32
|
+
spec.libs << 'lib' << 'spec'
|
33
|
+
spec.pattern = 'spec/**/*_spec.rb'
|
34
|
+
spec.rcov = true
|
35
|
+
end
|
36
|
+
|
37
|
+
task :spec => :check_dependencies
|
38
|
+
|
39
|
+
task :default => :spec
|
40
|
+
|
41
|
+
require 'rake/rdoctask'
|
42
|
+
Rake::RDocTask.new do |rdoc|
|
43
|
+
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
44
|
+
|
45
|
+
rdoc.rdoc_dir = 'rdoc'
|
46
|
+
rdoc.title = "right-scale-api #{version}"
|
47
|
+
rdoc.rdoc_files.include('README*')
|
48
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
49
|
+
end
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.0.0
|
@@ -0,0 +1,50 @@
|
|
1
|
+
module RightScaleAPI
|
2
|
+
class Account < Base
|
3
|
+
|
4
|
+
collection_uri "/api/acct"
|
5
|
+
|
6
|
+
def self.sub_resources *resources
|
7
|
+
resources.each do |resource|
|
8
|
+
module_eval %(
|
9
|
+
def #{resource}
|
10
|
+
get('/#{resource}.xml')['#{resource}'].map do |attrs|
|
11
|
+
#{resource.to_s.classify}.new attrs.merge(:account => self)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
),__FILE__, __LINE__-6
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
sub_resources :alert_specs,
|
19
|
+
:deployments,
|
20
|
+
:ec2_ebs_volumes,
|
21
|
+
:ec2_elastic_ips,
|
22
|
+
:ec2_security_groups,
|
23
|
+
:server_templates,
|
24
|
+
:servers
|
25
|
+
|
26
|
+
def create_ec2_elastic_ip opts
|
27
|
+
Ec2ElasticIp.create opts.merge :account => self
|
28
|
+
end
|
29
|
+
|
30
|
+
def create_ec2_ebs_volume opts
|
31
|
+
Ec2EbsVolume.create opts.merge :account => self
|
32
|
+
end
|
33
|
+
|
34
|
+
def create_server opts
|
35
|
+
Server.create opts.merge :account => self
|
36
|
+
end
|
37
|
+
def get_ec2_ssh_key id
|
38
|
+
Ec2SshKey.new get("/ec2_ssh_keys/#{id}").merge :id => id, :account => self
|
39
|
+
end
|
40
|
+
|
41
|
+
class SubResource < Base
|
42
|
+
attr_accessor :account
|
43
|
+
|
44
|
+
def collection_uri
|
45
|
+
account.path + "/" + self.class.api_name.pluralize
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module RightScaleAPI
|
2
|
+
class AlertSpec < Account::SubResource
|
3
|
+
attributes %w(
|
4
|
+
name
|
5
|
+
file
|
6
|
+
variable
|
7
|
+
condition
|
8
|
+
threshold
|
9
|
+
escalation_name
|
10
|
+
duration
|
11
|
+
description
|
12
|
+
)
|
13
|
+
|
14
|
+
#params
|
15
|
+
# subject -- either a Server or a ServerTemplate
|
16
|
+
def attach_to subject
|
17
|
+
account.post '/alert_specs_subject', :query => {
|
18
|
+
:alert_specs_subject =>{
|
19
|
+
:alert_spec_href => uri,
|
20
|
+
:subject_href => subject.uri,
|
21
|
+
:subject_type => subject.type
|
22
|
+
}
|
23
|
+
}
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,123 @@
|
|
1
|
+
module RightScaleAPI
|
2
|
+
class Base
|
3
|
+
|
4
|
+
attr_accessor :id, :href
|
5
|
+
|
6
|
+
#attributes that directly correspond to the api's
|
7
|
+
def self.attributes attrs=nil
|
8
|
+
if attrs
|
9
|
+
@attributes ||= []
|
10
|
+
@attributes += attrs
|
11
|
+
attr_accessor *attrs
|
12
|
+
|
13
|
+
@attributes.each do |attr|
|
14
|
+
if attr =~ /(.+)_href$/
|
15
|
+
relation = $1
|
16
|
+
attr_accessor relation
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
@attributes
|
22
|
+
end
|
23
|
+
|
24
|
+
attributes [:tags, :created_at, :updated_at,:errors]
|
25
|
+
|
26
|
+
def self.get id
|
27
|
+
new :id => id
|
28
|
+
end
|
29
|
+
|
30
|
+
def self.create opts
|
31
|
+
object = new opts
|
32
|
+
|
33
|
+
query_opts = opts_to_query_opts opts
|
34
|
+
|
35
|
+
result = RightScaleAPI::Client.post(object.collection_uri, :body => {api_name => query_opts})
|
36
|
+
|
37
|
+
if result.code.to_i != 201
|
38
|
+
p object.collection_uri
|
39
|
+
p query_opts
|
40
|
+
p result.code
|
41
|
+
p result.headers
|
42
|
+
puts result.inspect
|
43
|
+
raise "create failed"
|
44
|
+
end
|
45
|
+
|
46
|
+
new opts.merge(result.merge(:href => result.headers['location'].first))
|
47
|
+
end
|
48
|
+
|
49
|
+
def self.api_name
|
50
|
+
name.demodulize.underscore
|
51
|
+
end
|
52
|
+
|
53
|
+
def initialize attributes
|
54
|
+
attributes.each do |attr,value|
|
55
|
+
send "#{attr}=", value
|
56
|
+
end
|
57
|
+
|
58
|
+
unless id
|
59
|
+
self.id = id_from_href href if href
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
def update attrs
|
64
|
+
put '', :body => {self.class.api_name => self.class.opts_to_query_opts(attrs)}
|
65
|
+
end
|
66
|
+
|
67
|
+
def destroy
|
68
|
+
delete ''
|
69
|
+
end
|
70
|
+
|
71
|
+
def method_missing method,*args
|
72
|
+
if %w(get head post put delete).include? method.to_s
|
73
|
+
args[0] = "#{path}#{args[0]}"
|
74
|
+
RightScaleAPI::Client.send method, *args
|
75
|
+
else
|
76
|
+
super method, *args
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
def uri
|
81
|
+
RightScaleAPI::Client.base_uri + path
|
82
|
+
end
|
83
|
+
protected
|
84
|
+
|
85
|
+
def self.collection_uri uri=nil
|
86
|
+
if uri
|
87
|
+
@collection_uri= uri
|
88
|
+
end
|
89
|
+
@collection_uri
|
90
|
+
end
|
91
|
+
|
92
|
+
def collection_uri
|
93
|
+
self.class.collection_uri
|
94
|
+
end
|
95
|
+
|
96
|
+
def path
|
97
|
+
collection_uri + "/" + id
|
98
|
+
end
|
99
|
+
|
100
|
+
def id_from_href href
|
101
|
+
href.split('/').last
|
102
|
+
end
|
103
|
+
|
104
|
+
def path_from_href href
|
105
|
+
URI.parse(href).path
|
106
|
+
end
|
107
|
+
|
108
|
+
def self.opts_to_query_opts opts
|
109
|
+
query_opts = opts.dup
|
110
|
+
|
111
|
+
relations = attributes.select {|a|a.include? '_href'}
|
112
|
+
relations.each do |r|
|
113
|
+
r_name = r.sub('_href','').to_sym
|
114
|
+
if query_opts[r_name]
|
115
|
+
query_opts[r] = query_opts.delete(r_name).href
|
116
|
+
end
|
117
|
+
end
|
118
|
+
query_opts.delete_if {|k,v| ! attributes.include? k.to_s }
|
119
|
+
|
120
|
+
query_opts
|
121
|
+
end
|
122
|
+
end
|
123
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module RightScaleAPI
|
2
|
+
class Deployment < Account::SubResource
|
3
|
+
attributes %w(
|
4
|
+
nickname
|
5
|
+
description
|
6
|
+
servers
|
7
|
+
parameters
|
8
|
+
default_vpc_subnet_href
|
9
|
+
default_ec2_availability_zone
|
10
|
+
updated_at
|
11
|
+
created_at
|
12
|
+
)
|
13
|
+
|
14
|
+
def start_all
|
15
|
+
post '/start_all'
|
16
|
+
end
|
17
|
+
|
18
|
+
def stop_all
|
19
|
+
post '/stop_all'
|
20
|
+
end
|
21
|
+
|
22
|
+
def duplicate
|
23
|
+
post '/duplicate'
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module RightScaleAPI
|
2
|
+
class Ec2EbsVolume < Account::SubResource
|
3
|
+
|
4
|
+
attributes %w(
|
5
|
+
description
|
6
|
+
ec2_availability_zone
|
7
|
+
aws_attached_at
|
8
|
+
aws_attachment_status
|
9
|
+
aws_device
|
10
|
+
aws_id
|
11
|
+
aws_size
|
12
|
+
aws_status
|
13
|
+
created_at
|
14
|
+
)
|
15
|
+
|
16
|
+
def attach_to_server server, device, mount
|
17
|
+
account.post '/component_ec2_ebs_volumes', :body => {
|
18
|
+
:component_ec2_ebs_volumes => {
|
19
|
+
:ec2_ebs_volume_href => uri,
|
20
|
+
:component_href => server.href,
|
21
|
+
:device => device,
|
22
|
+
:mount => mount
|
23
|
+
}
|
24
|
+
}
|
25
|
+
end
|
26
|
+
|
27
|
+
def collection_uri
|
28
|
+
account.path + "/ec2_ebs_volumes"
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
module RightScaleAPI
|
2
|
+
class Server < Account::SubResource
|
3
|
+
attributes %w(
|
4
|
+
aki_image_href
|
5
|
+
ari_image_href
|
6
|
+
associate_eip_at_launch
|
7
|
+
cloud_id
|
8
|
+
current_instance_href
|
9
|
+
deployment_href
|
10
|
+
ec2_availability_zone
|
11
|
+
ec2_elastic_ip_href
|
12
|
+
ec2_image_href
|
13
|
+
ec2_security_groups_href
|
14
|
+
ec2_ssh_key_href
|
15
|
+
ec2_user_data
|
16
|
+
instance_type
|
17
|
+
nickname
|
18
|
+
parameters
|
19
|
+
server_template_href
|
20
|
+
server_type
|
21
|
+
state
|
22
|
+
type
|
23
|
+
vpc_subnet_href
|
24
|
+
)
|
25
|
+
|
26
|
+
def start
|
27
|
+
post '/start'
|
28
|
+
end
|
29
|
+
|
30
|
+
def stop
|
31
|
+
post '/stop'
|
32
|
+
end
|
33
|
+
|
34
|
+
def reboot
|
35
|
+
post '/reboot'
|
36
|
+
end
|
37
|
+
|
38
|
+
def settings
|
39
|
+
get('/settings')['settings']
|
40
|
+
end
|
41
|
+
|
42
|
+
def attach_volume volume, device
|
43
|
+
if running?
|
44
|
+
post '/attach_volume', :query => {
|
45
|
+
:server => {
|
46
|
+
:ec2_ebs_volume_href => volume.uri,
|
47
|
+
:device => device
|
48
|
+
}
|
49
|
+
}
|
50
|
+
else
|
51
|
+
volume.attach_to_server self, device, 'boot'
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
# Account#create_ec2_ebs_volume's opts +
|
56
|
+
# :device -- device mount point, eg /dev/sdk
|
57
|
+
def attach_blank_volume opts
|
58
|
+
device = opts.delete :device
|
59
|
+
opts = {:ec2_availability_zone => 'us-east-1a'}.merge opts #default to the server's avail zone
|
60
|
+
volume = account.create_ec2_ebs_volume opts
|
61
|
+
attach_volume volume, device
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
require 'httparty'
|
3
|
+
require 'active_support/core_ext'
|
4
|
+
|
5
|
+
module RightScaleAPI
|
6
|
+
API_VERSION = '1.0'
|
7
|
+
BASE_URI = "https://my.rightscale.com/"
|
8
|
+
end
|
9
|
+
|
10
|
+
require File.dirname(__FILE__) + '/right-scale-api/client'
|
11
|
+
require File.dirname(__FILE__) + '/right-scale-api/base'
|
12
|
+
require File.dirname(__FILE__) + '/right-scale-api/account'
|
13
|
+
|
14
|
+
Dir[File.dirname(__FILE__) + "/right-scale-api/*.rb"].each do |src|
|
15
|
+
require src
|
16
|
+
end
|
@@ -0,0 +1,75 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{right-scale-api}
|
8
|
+
s.version = "0.0.0"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Nick Howard"]
|
12
|
+
s.date = %q{2010-05-01}
|
13
|
+
s.description = %q{A client for the RightScale API that hides some of the complexity of the API
|
14
|
+
(It doesn't require passing around hrefs as much). Based on HTTParty
|
15
|
+
}
|
16
|
+
s.email = %q{ndh@baroquebobcat.com}
|
17
|
+
s.extra_rdoc_files = [
|
18
|
+
"LICENSE",
|
19
|
+
"README.md"
|
20
|
+
]
|
21
|
+
s.files = [
|
22
|
+
".gitignore",
|
23
|
+
"LICENSE",
|
24
|
+
"README.md",
|
25
|
+
"Rakefile",
|
26
|
+
"VERSION",
|
27
|
+
"lib/right-scale-api.rb",
|
28
|
+
"lib/right-scale-api/account.rb",
|
29
|
+
"lib/right-scale-api/alert_spec.rb",
|
30
|
+
"lib/right-scale-api/base.rb",
|
31
|
+
"lib/right-scale-api/client.rb",
|
32
|
+
"lib/right-scale-api/deployment.rb",
|
33
|
+
"lib/right-scale-api/ec2_ebs_snapshot.rb",
|
34
|
+
"lib/right-scale-api/ec2_ebs_volume.rb",
|
35
|
+
"lib/right-scale-api/ec2_elastic_ip.rb",
|
36
|
+
"lib/right-scale-api/ec2_security_group.rb",
|
37
|
+
"lib/right-scale-api/ec2_ssh_key.rb",
|
38
|
+
"lib/right-scale-api/server.rb",
|
39
|
+
"lib/right-scale-api/server_template.rb",
|
40
|
+
"lib/right-scale-api/status.rb",
|
41
|
+
"right-scale-api.gemspec",
|
42
|
+
"spec/right-scale-api_spec.rb",
|
43
|
+
"spec/spec.opts",
|
44
|
+
"spec/spec_helper.rb"
|
45
|
+
]
|
46
|
+
s.homepage = %q{http://github.com/baroquebobcat/right-scale-api}
|
47
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
48
|
+
s.require_paths = ["lib"]
|
49
|
+
s.rubygems_version = %q{1.3.6}
|
50
|
+
s.summary = %q{A RightScale API gem that doesn't suck.(mostly)}
|
51
|
+
s.test_files = [
|
52
|
+
"spec/right-scale-api_spec.rb",
|
53
|
+
"spec/spec_helper.rb"
|
54
|
+
]
|
55
|
+
|
56
|
+
if s.respond_to? :specification_version then
|
57
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
58
|
+
s.specification_version = 3
|
59
|
+
|
60
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
61
|
+
s.add_runtime_dependency(%q<httparty>, [">= 0"])
|
62
|
+
s.add_runtime_dependency(%q<activesupport>, [">= 0"])
|
63
|
+
s.add_development_dependency(%q<rspec>, [">= 1.2.9"])
|
64
|
+
else
|
65
|
+
s.add_dependency(%q<httparty>, [">= 0"])
|
66
|
+
s.add_dependency(%q<activesupport>, [">= 0"])
|
67
|
+
s.add_dependency(%q<rspec>, [">= 1.2.9"])
|
68
|
+
end
|
69
|
+
else
|
70
|
+
s.add_dependency(%q<httparty>, [">= 0"])
|
71
|
+
s.add_dependency(%q<activesupport>, [">= 0"])
|
72
|
+
s.add_dependency(%q<rspec>, [">= 1.2.9"])
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
data/spec/spec.opts
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--color
|
data/spec/spec_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,126 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: right-scale-api
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
version: 0.0.0
|
10
|
+
platform: ruby
|
11
|
+
authors:
|
12
|
+
- Nick Howard
|
13
|
+
autorequire:
|
14
|
+
bindir: bin
|
15
|
+
cert_chain: []
|
16
|
+
|
17
|
+
date: 2010-05-01 00:00:00 -06:00
|
18
|
+
default_executable:
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
name: httparty
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ">="
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
segments:
|
28
|
+
- 0
|
29
|
+
version: "0"
|
30
|
+
type: :runtime
|
31
|
+
version_requirements: *id001
|
32
|
+
- !ruby/object:Gem::Dependency
|
33
|
+
name: activesupport
|
34
|
+
prerelease: false
|
35
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - ">="
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
segments:
|
40
|
+
- 0
|
41
|
+
version: "0"
|
42
|
+
type: :runtime
|
43
|
+
version_requirements: *id002
|
44
|
+
- !ruby/object:Gem::Dependency
|
45
|
+
name: rspec
|
46
|
+
prerelease: false
|
47
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
48
|
+
requirements:
|
49
|
+
- - ">="
|
50
|
+
- !ruby/object:Gem::Version
|
51
|
+
segments:
|
52
|
+
- 1
|
53
|
+
- 2
|
54
|
+
- 9
|
55
|
+
version: 1.2.9
|
56
|
+
type: :development
|
57
|
+
version_requirements: *id003
|
58
|
+
description: |
|
59
|
+
A client for the RightScale API that hides some of the complexity of the API
|
60
|
+
(It doesn't require passing around hrefs as much). Based on HTTParty
|
61
|
+
|
62
|
+
email: ndh@baroquebobcat.com
|
63
|
+
executables: []
|
64
|
+
|
65
|
+
extensions: []
|
66
|
+
|
67
|
+
extra_rdoc_files:
|
68
|
+
- LICENSE
|
69
|
+
- README.md
|
70
|
+
files:
|
71
|
+
- .gitignore
|
72
|
+
- LICENSE
|
73
|
+
- README.md
|
74
|
+
- Rakefile
|
75
|
+
- VERSION
|
76
|
+
- lib/right-scale-api.rb
|
77
|
+
- lib/right-scale-api/account.rb
|
78
|
+
- lib/right-scale-api/alert_spec.rb
|
79
|
+
- lib/right-scale-api/base.rb
|
80
|
+
- lib/right-scale-api/client.rb
|
81
|
+
- lib/right-scale-api/deployment.rb
|
82
|
+
- lib/right-scale-api/ec2_ebs_snapshot.rb
|
83
|
+
- lib/right-scale-api/ec2_ebs_volume.rb
|
84
|
+
- lib/right-scale-api/ec2_elastic_ip.rb
|
85
|
+
- lib/right-scale-api/ec2_security_group.rb
|
86
|
+
- lib/right-scale-api/ec2_ssh_key.rb
|
87
|
+
- lib/right-scale-api/server.rb
|
88
|
+
- lib/right-scale-api/server_template.rb
|
89
|
+
- lib/right-scale-api/status.rb
|
90
|
+
- right-scale-api.gemspec
|
91
|
+
- spec/right-scale-api_spec.rb
|
92
|
+
- spec/spec.opts
|
93
|
+
- spec/spec_helper.rb
|
94
|
+
has_rdoc: true
|
95
|
+
homepage: http://github.com/baroquebobcat/right-scale-api
|
96
|
+
licenses: []
|
97
|
+
|
98
|
+
post_install_message:
|
99
|
+
rdoc_options:
|
100
|
+
- --charset=UTF-8
|
101
|
+
require_paths:
|
102
|
+
- lib
|
103
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
104
|
+
requirements:
|
105
|
+
- - ">="
|
106
|
+
- !ruby/object:Gem::Version
|
107
|
+
segments:
|
108
|
+
- 0
|
109
|
+
version: "0"
|
110
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
111
|
+
requirements:
|
112
|
+
- - ">="
|
113
|
+
- !ruby/object:Gem::Version
|
114
|
+
segments:
|
115
|
+
- 0
|
116
|
+
version: "0"
|
117
|
+
requirements: []
|
118
|
+
|
119
|
+
rubyforge_project:
|
120
|
+
rubygems_version: 1.3.6
|
121
|
+
signing_key:
|
122
|
+
specification_version: 3
|
123
|
+
summary: A RightScale API gem that doesn't suck.(mostly)
|
124
|
+
test_files:
|
125
|
+
- spec/right-scale-api_spec.rb
|
126
|
+
- spec/spec_helper.rb
|