ace-client 0.0.4 → 0.0.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/README.md +20 -0
- data/VERSION +1 -1
- data/lib/ace-client/base.rb +5 -4
- data/lib/ace-client/query2.rb +12 -7
- metadata +13 -13
data/README.md
CHANGED
|
@@ -166,6 +166,26 @@ Then output would be:
|
|
|
166
166
|
</ResponseMetadata>
|
|
167
167
|
</CreateQueueResponse>
|
|
168
168
|
|
|
169
|
+
### Rewrite Parameters before Creating Signature
|
|
170
|
+
|
|
171
|
+
You can rewrite default parameters with `:before_signature` hook before creating signature.
|
|
172
|
+
For example, you have to specify `AccessKeyId` instead of `AWSAccessKeyId` when using NIFTY Cloud API (http://cloud.nifty.com/api/rest/authenticate.htm).
|
|
173
|
+
You can intercept params and rewrite `AWSAccessKeyId` to `AccessKeyId` using `:before_signature`.
|
|
174
|
+
|
|
175
|
+
require 'ace-client'
|
|
176
|
+
|
|
177
|
+
compute = AceClient::Query2.new(
|
|
178
|
+
:endpoint => 'cp.cloud.nifty.com',
|
|
179
|
+
:path => '/api',
|
|
180
|
+
:access_key_id => ENV['AWS_ACCESS_KEY_ID'],
|
|
181
|
+
:secret_access_key => ENV['AWS_SECRET_ACCESS_KEY'],
|
|
182
|
+
:before_signature => lambda {|params|
|
|
183
|
+
params['AccessKeyId'] = params.delete('AWSAccessKeyId')
|
|
184
|
+
}
|
|
185
|
+
)
|
|
186
|
+
p compute.action('DescribeRegions')
|
|
187
|
+
# => #<HTTParty::Response:0x7c0b0a0 parsed_response={"DescribeRegionsResponse"=>{"requestId"=>"df9de22f-cb3b-4cf9-9ee0-377e78742bf4", "regionInfo"=>{"item"=>[{"regionName"=>"east-1", "regionEndpoint"=>"east-1.cp.cloud.nifty.com", "messageSet"=>{"item"=>nil}, "isDefault"=>"true"}, {"regionName"=>"west-1", "regionEndpoint"=>"west-1.cp.cloud.nifty.com", "messageSet"=>{"item"=>nil}, "isDefault"=>"false"}]}}}, @response=#<Net::HTTPOK 200 OK readbody=true>, @headers={"date"=>["Sat, 23 Nov 2013 05:03:20 GMT"], "x-frame-options"=>["SAMEORIGIN"], "content-type"=>["text/xml;charset=utf-8"], "content-length"=>["558"], "vary"=>["Accept-Encoding"], "connection"=>["close"]}>
|
|
188
|
+
|
|
169
189
|
## TODO
|
|
170
190
|
|
|
171
191
|
* query + sig4 support
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.0.
|
|
1
|
+
0.0.5
|
data/lib/ace-client/base.rb
CHANGED
|
@@ -4,6 +4,7 @@ require 'uri'
|
|
|
4
4
|
module AceClient
|
|
5
5
|
class Base
|
|
6
6
|
include HTTParty
|
|
7
|
+
ssl_version :SSLv3
|
|
7
8
|
|
|
8
9
|
attr_accessor :access_key_id
|
|
9
10
|
attr_accessor :secret_access_key
|
|
@@ -16,10 +17,10 @@ module AceClient
|
|
|
16
17
|
attr_accessor :user_agent
|
|
17
18
|
|
|
18
19
|
def initialize(options)
|
|
19
|
-
@access_key_id = options[:access_key_id]
|
|
20
|
-
@secret_access_key = options[:secret_access_key]
|
|
21
|
-
@endpoint = options[:endpoint]
|
|
22
|
-
@http_proxy = options[:http_proxy]
|
|
20
|
+
@access_key_id = options[:access_key_id] || ENV['ACE_ACCESS_KEY_ID']
|
|
21
|
+
@secret_access_key = options[:secret_access_key] || ENV['ACE_SECRET_ACCESS_KEY']
|
|
22
|
+
@endpoint = options[:endpoint] || ENV['ACE_ENDPOINT']
|
|
23
|
+
@http_proxy = options[:http_proxy] || ENV['HTTP_PROXY']
|
|
23
24
|
@http_method = options[:http_method] || :post
|
|
24
25
|
@use_ssl = options[:use_ssl] || true
|
|
25
26
|
@version = options[:version]
|
data/lib/ace-client/query2.rb
CHANGED
|
@@ -15,6 +15,8 @@ module AceClient
|
|
|
15
15
|
super(options)
|
|
16
16
|
@signature_method = options[:signature_method] || 'HmacSHA256'
|
|
17
17
|
@sampler = options[:sampler]
|
|
18
|
+
@before_signature = options[:before_signature]
|
|
19
|
+
@before_request = options[:before_request]
|
|
18
20
|
end
|
|
19
21
|
|
|
20
22
|
def action(action, params={})
|
|
@@ -36,23 +38,26 @@ module AceClient
|
|
|
36
38
|
'Timestamp' => Time.now.getutc.iso8601.sub(/Z/, sprintf(".%03dZ",(Time.now.getutc.usec/1000)))
|
|
37
39
|
)
|
|
38
40
|
@params['Version'] = @version if @version
|
|
41
|
+
|
|
42
|
+
@before_signature.call(@params) if @before_signature
|
|
43
|
+
|
|
39
44
|
@params['Signature'] = create_signature
|
|
40
45
|
|
|
41
46
|
options = self.class.default_options.dup
|
|
42
|
-
options
|
|
43
|
-
|
|
44
|
-
'Content-Type' => 'application/x-www-form-urlencoded;charset=UTF-8'
|
|
45
|
-
},
|
|
46
|
-
:query => @params
|
|
47
|
-
)
|
|
47
|
+
options[:headers] = {}
|
|
48
|
+
options[:headers]['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8'
|
|
48
49
|
options[:headers]['User-Agent'] = @user_agent if @user_agent
|
|
49
50
|
|
|
50
51
|
if http_method == :get
|
|
52
|
+
options[:query] = @params
|
|
51
53
|
http_method_class = Net::HTTP::Get
|
|
52
54
|
elsif http_method == :post
|
|
55
|
+
options[:body] = @params
|
|
53
56
|
http_method_class = Net::HTTP::Post
|
|
54
57
|
end
|
|
55
58
|
|
|
59
|
+
@before_request.call(@params) if @before_request
|
|
60
|
+
|
|
56
61
|
request = HTTParty::Request.new(http_method_class, endpoint_url + @path, options)
|
|
57
62
|
if dryrun
|
|
58
63
|
request
|
|
@@ -65,7 +70,7 @@ module AceClient
|
|
|
65
70
|
end
|
|
66
71
|
|
|
67
72
|
def sample_request(request)
|
|
68
|
-
query = request.options[:query].dup
|
|
73
|
+
query = (request.options[:query] || request.options[:body]).dup
|
|
69
74
|
variable_keys = %w(Version SignatureVersion SignatureMethod Timestamp AWSAccessKeyId Signature)
|
|
70
75
|
variables = {}
|
|
71
76
|
variable_keys.each do |key|
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ace-client
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.5
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -9,11 +9,11 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2013-11-
|
|
12
|
+
date: 2013-11-23 00:00:00.000000000Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: rspec
|
|
16
|
-
requirement: &
|
|
16
|
+
requirement: &182806060 !ruby/object:Gem::Requirement
|
|
17
17
|
none: false
|
|
18
18
|
requirements:
|
|
19
19
|
- - ~>
|
|
@@ -21,10 +21,10 @@ dependencies:
|
|
|
21
21
|
version: 2.8.0
|
|
22
22
|
type: :development
|
|
23
23
|
prerelease: false
|
|
24
|
-
version_requirements: *
|
|
24
|
+
version_requirements: *182806060
|
|
25
25
|
- !ruby/object:Gem::Dependency
|
|
26
26
|
name: rdoc
|
|
27
|
-
requirement: &
|
|
27
|
+
requirement: &182804780 !ruby/object:Gem::Requirement
|
|
28
28
|
none: false
|
|
29
29
|
requirements:
|
|
30
30
|
- - ~>
|
|
@@ -32,10 +32,10 @@ dependencies:
|
|
|
32
32
|
version: '3.12'
|
|
33
33
|
type: :development
|
|
34
34
|
prerelease: false
|
|
35
|
-
version_requirements: *
|
|
35
|
+
version_requirements: *182804780
|
|
36
36
|
- !ruby/object:Gem::Dependency
|
|
37
37
|
name: bundler
|
|
38
|
-
requirement: &
|
|
38
|
+
requirement: &182803780 !ruby/object:Gem::Requirement
|
|
39
39
|
none: false
|
|
40
40
|
requirements:
|
|
41
41
|
- - ~>
|
|
@@ -43,10 +43,10 @@ dependencies:
|
|
|
43
43
|
version: '1.0'
|
|
44
44
|
type: :development
|
|
45
45
|
prerelease: false
|
|
46
|
-
version_requirements: *
|
|
46
|
+
version_requirements: *182803780
|
|
47
47
|
- !ruby/object:Gem::Dependency
|
|
48
48
|
name: jeweler
|
|
49
|
-
requirement: &
|
|
49
|
+
requirement: &182802740 !ruby/object:Gem::Requirement
|
|
50
50
|
none: false
|
|
51
51
|
requirements:
|
|
52
52
|
- - ~>
|
|
@@ -54,10 +54,10 @@ dependencies:
|
|
|
54
54
|
version: 1.8.7
|
|
55
55
|
type: :development
|
|
56
56
|
prerelease: false
|
|
57
|
-
version_requirements: *
|
|
57
|
+
version_requirements: *182802740
|
|
58
58
|
- !ruby/object:Gem::Dependency
|
|
59
59
|
name: rcov
|
|
60
|
-
requirement: &
|
|
60
|
+
requirement: &182800860 !ruby/object:Gem::Requirement
|
|
61
61
|
none: false
|
|
62
62
|
requirements:
|
|
63
63
|
- - ! '>='
|
|
@@ -65,7 +65,7 @@ dependencies:
|
|
|
65
65
|
version: '0'
|
|
66
66
|
type: :development
|
|
67
67
|
prerelease: false
|
|
68
|
-
version_requirements: *
|
|
68
|
+
version_requirements: *182800860
|
|
69
69
|
description: Simple ACE(Amazon Compatible Environment) Client
|
|
70
70
|
email: tily05@gmail.com
|
|
71
71
|
executables: []
|
|
@@ -101,7 +101,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
101
101
|
version: '0'
|
|
102
102
|
segments:
|
|
103
103
|
- 0
|
|
104
|
-
hash: -
|
|
104
|
+
hash: -3654989663999187690
|
|
105
105
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
106
106
|
none: false
|
|
107
107
|
requirements:
|