rightresource 0.1.9 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
data/lib/right_resource/base.rb
CHANGED
@@ -1,6 +1,11 @@
|
|
1
1
|
module RightResource
|
2
2
|
class Base
|
3
3
|
class << self # Define singleton methods
|
4
|
+
# Set Logger object
|
5
|
+
# === Examples
|
6
|
+
# logger = Logger.new(STDERR)
|
7
|
+
# logger.level = Logger::WARN [Default: Logger::DEBUG]
|
8
|
+
# Server.logger = logger
|
4
9
|
def logger=(logger)
|
5
10
|
@logger = logger
|
6
11
|
end
|
@@ -81,6 +86,9 @@ module RightResource
|
|
81
86
|
# Server.index.each do |server|
|
82
87
|
# puts server.nickname if server.state = "operational"
|
83
88
|
# end
|
89
|
+
#
|
90
|
+
# Get EC2 Security Groups(aws ap = 4)
|
91
|
+
# sec_grps = Ec2SecurityGroup.index(:cloud_id => "4")
|
84
92
|
def index(params = {})
|
85
93
|
path = "#{resource_name}s.#{format.extension}#{query_string(params)}"
|
86
94
|
connection.clear
|
@@ -237,8 +245,7 @@ module RightResource
|
|
237
245
|
end
|
238
246
|
yield self if block_given?
|
239
247
|
end
|
240
|
-
attr_accessor :id
|
241
|
-
attr_reader :attributes
|
248
|
+
attr_accessor :id, :attributes
|
242
249
|
|
243
250
|
def loads(attributes)
|
244
251
|
raise ArgumentError, "expected an attributes Hash, got #{attributes.pretty_inspect}" unless attributes.is_a?(Hash)
|
@@ -295,11 +302,9 @@ module RightResource
|
|
295
302
|
def create
|
296
303
|
#TODO: refactor hard coding
|
297
304
|
attrs = self.attributes.reject {|key,value| key.to_s == "cloud_id"}
|
298
|
-
puts attrs.pretty_inspect
|
299
305
|
pair = URI.decode({resource_name.to_sym => attrs}.to_params).split('&').map {|l| l.split('=')}
|
300
306
|
headers = Hash[*pair.flatten]
|
301
307
|
headers["cloud_id"] = self.attributes[:cloud_id] if self.attributes.has_key?(:cloud_id)
|
302
|
-
puts headers.pretty_inspect
|
303
308
|
connection.post(collection_path, headers)
|
304
309
|
self.id = self.class.resource_id
|
305
310
|
end
|
@@ -1,7 +1,6 @@
|
|
1
1
|
module RightResource
|
2
2
|
class Connection
|
3
3
|
@reraise = false
|
4
|
-
RestClient.log = STDERR
|
5
4
|
|
6
5
|
attr_accessor :api_version, :log, :api, :format, :username, :password, :account, :reraise
|
7
6
|
attr_reader :headers, :resource_id, :response, :status
|
@@ -12,9 +11,15 @@ module RightResource
|
|
12
11
|
@api = "https://my.rightscale.com/api/acct/"
|
13
12
|
@format = params[:format] || RightResource::Formats::JsonFormat
|
14
13
|
@logger = params[:logger] || Logger.new(STDERR)
|
14
|
+
RestClient.log = STDERR if @logger.level == Logger::DEBUG # HTTP request/response log
|
15
15
|
yield self if block_given? # RightResource::Connection.new {|conn| ...}
|
16
16
|
end
|
17
17
|
|
18
|
+
# RestClient authentication
|
19
|
+
# === Examples
|
20
|
+
# params = {:username => "foo", :password => "bar", :account => "1"}
|
21
|
+
# conn = Connection.new
|
22
|
+
# conn.login(params)
|
18
23
|
def login(params={})
|
19
24
|
@username = params[:username] unless params[:username].nil? || params[:username].empty?
|
20
25
|
@password = params[:password] unless params[:password].nil? || params[:password].empty?
|
@@ -32,6 +37,7 @@ module RightResource
|
|
32
37
|
@api_object ? true : false
|
33
38
|
end
|
34
39
|
|
40
|
+
# Send HTTP Request
|
35
41
|
def request(path, method="get", headers={})
|
36
42
|
raise "Not Login!!" unless self.login?
|
37
43
|
# if /(.xml|.js)/ =~ path
|
@@ -79,6 +85,8 @@ module RightResource
|
|
79
85
|
|
80
86
|
# update
|
81
87
|
def put(path, headers={})
|
88
|
+
puts path.pretty_inspect
|
89
|
+
puts headers.pretty_inspect
|
82
90
|
self.request(path, "put", headers)
|
83
91
|
end
|
84
92
|
|
@@ -1,14 +1,21 @@
|
|
1
1
|
class Server < RightResource::Base
|
2
2
|
class << self
|
3
|
+
#TODO: refactor define_method or method_missing
|
3
4
|
def action; end
|
5
|
+
# server start(Starting created instance)
|
6
|
+
# === Examples
|
7
|
+
# server_id = Server.index(:filter => "nickname=dev001").first.id
|
8
|
+
# Server.start(server_id)
|
4
9
|
def start(id)
|
5
10
|
connection.post(element_path(id, :start))
|
6
11
|
end
|
7
12
|
|
13
|
+
# server stop(Starting created instance)
|
8
14
|
def stop(id)
|
9
15
|
connection.post(element_path(id, :stop))
|
10
16
|
end
|
11
17
|
|
18
|
+
# server restart(Starting created instance)
|
12
19
|
def reboot(id)
|
13
20
|
connection.post(element_path(id, :reboot))
|
14
21
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rightresource
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 23
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 0.
|
8
|
+
- 2
|
9
|
+
- 0
|
10
|
+
version: 0.2.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Satoshi Ohki
|