aliyun-ess 0.1.1 → 0.1.3
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.
- checksums.yaml +4 -4
- data/lib/aliyun/ess.rb +2 -1
- data/lib/aliyun/ess/extensions.rb +14 -30
- data/lib/aliyun/ess/response.rb +8 -0
- data/lib/aliyun/ess/scaling_group.rb +12 -0
- data/lib/aliyun/ess/scaling_instance.rb +31 -0
- data/lib/aliyun/ess/scaling_rule.rb +1 -1
- data/lib/aliyun/ess/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9b55fac45d4545646bdf5d05c10d6247ca88196b
|
4
|
+
data.tar.gz: 2dbdaa0905cc29d214b8feef97a35ffe10e403b3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 19b63079b007d1e02b93ff5b71c46063b3fd82ed0114279540b0dd82c33fc071ce05185874e5ce3ac24368a19997088255deb698e45f1316fe7020f90503f1b1
|
7
|
+
data.tar.gz: 6c10c8171b2224a7d6f32958006f73bff98b08457229c8a1bb83ae0ec546e29e572f5d67ef8ec5e89ca859ecc8a6b45b1171d0ea3a77e0debcd6a414014ef790
|
data/lib/aliyun/ess.rb
CHANGED
@@ -14,7 +14,7 @@ require 'byebug'
|
|
14
14
|
$:.unshift(File.dirname(__FILE__))
|
15
15
|
|
16
16
|
require 'ess/version'
|
17
|
-
require 'ess/extensions'
|
17
|
+
require 'ess/extensions'
|
18
18
|
require 'ess/exceptions'
|
19
19
|
require 'ess/error'
|
20
20
|
require 'ess/authentication'
|
@@ -25,6 +25,7 @@ require 'ess/service'
|
|
25
25
|
require 'ess/collection'
|
26
26
|
require 'ess/scaling_group'
|
27
27
|
require 'ess/scaling_rule'
|
28
|
+
require 'ess/scaling_instance'
|
28
29
|
require 'ess/response'
|
29
30
|
|
30
31
|
|
@@ -25,40 +25,24 @@ class String
|
|
25
25
|
string
|
26
26
|
end unless public_method_defined? :camelize
|
27
27
|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
end
|
32
|
-
else
|
33
|
-
def valid_utf8?
|
34
|
-
scan(Regexp.new('[^\x00-\xa0]', nil, 'u')) { |s| s.unpack('U') }
|
35
|
-
true
|
36
|
-
rescue ArgumentError
|
37
|
-
false
|
38
|
-
end
|
39
|
-
end
|
28
|
+
def valid_utf8?
|
29
|
+
dup.force_encoding('UTF-8').valid_encoding?
|
30
|
+
end unless public_method_defined? :valid_utf8?
|
40
31
|
|
41
|
-
# All paths in in
|
32
|
+
# All paths in in ESS have to be valid unicode so this takes care of
|
42
33
|
# cleaning up any strings that aren't valid utf-8 according to String#valid_utf8?
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
sanitized_string << character if character.ascii_only?
|
49
|
-
end
|
50
|
-
sanitized_string
|
51
|
-
end
|
52
|
-
else
|
53
|
-
def remove_extended!
|
54
|
-
#gsub!(/[\x80-\xFF]/) { "%02X" % $&[0] }
|
55
|
-
gsub!(Regext.new('/[\x80-\xFF]')) { "%02X" % $&[0] }
|
34
|
+
def remove_extended!
|
35
|
+
sanitized_string = ''
|
36
|
+
each_byte do |byte|
|
37
|
+
character = byte.chr
|
38
|
+
sanitized_string << character if character.ascii_only?
|
56
39
|
end
|
57
|
-
|
40
|
+
sanitized_string
|
41
|
+
end unless public_method_defined? :remove_extended!
|
58
42
|
|
59
43
|
def remove_extended
|
60
44
|
dup.remove_extended!
|
61
|
-
end
|
45
|
+
end unless public_method_defined? :remove_extended
|
62
46
|
end
|
63
47
|
|
64
48
|
class CoercibleString < String
|
@@ -85,7 +69,7 @@ class CoercibleString < String
|
|
85
69
|
# so unless the string looks like that, don't even try, otherwise it might convert an object's
|
86
70
|
# key from something like '03 1-2-3-Apple-Tree.mp3' to Sat Feb 03 00:00:00 CST 2001.
|
87
71
|
def datetime_format
|
88
|
-
/^\d{4}-\d{2}-\d{2}\w\d{2}:\d{2}
|
72
|
+
/^\d{4}-\d{2}-\d{2}\w\d{2}:\d{2}/
|
89
73
|
end
|
90
74
|
end
|
91
75
|
|
@@ -169,6 +153,6 @@ module SelectiveAttributeProxy
|
|
169
153
|
|
170
154
|
module ClassMethods
|
171
155
|
end
|
172
|
-
end
|
156
|
+
end unless defined? SelectiveAttributeProxy
|
173
157
|
|
174
158
|
#:startdoc:
|
data/lib/aliyun/ess/response.rb
CHANGED
@@ -77,6 +77,14 @@ module Aliyun
|
|
77
77
|
end
|
78
78
|
end
|
79
79
|
end
|
80
|
+
|
81
|
+
class ScalingInstance
|
82
|
+
class Response < Base::Response
|
83
|
+
def items
|
84
|
+
(parsed['scaling_instances'] && parsed['scaling_instances']['scaling_instance']) || []
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
80
88
|
|
81
89
|
|
82
90
|
# Requests whose response code is between 300 and 599 and contain an <Error></Error> in their body
|
@@ -34,8 +34,20 @@ module Aliyun
|
|
34
34
|
end
|
35
35
|
end
|
36
36
|
|
37
|
+
def scaling_instances
|
38
|
+
@scaling_instances ||= begin
|
39
|
+
build_scaling_instances!
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
37
43
|
private
|
38
44
|
|
45
|
+
def build_scaling_instances!
|
46
|
+
items = ScalingInstance.find(:scaling_group_id => id).items
|
47
|
+
items.each {|e| register(e) }
|
48
|
+
items
|
49
|
+
end
|
50
|
+
|
39
51
|
def build_scaling_rules!
|
40
52
|
items = ScalingRule.find(:scaling_group_id => id).items
|
41
53
|
items.each {|e| register(e) }
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
module Aliyun
|
3
|
+
module ESS
|
4
|
+
class ScalingInstance < Base
|
5
|
+
class << self
|
6
|
+
def find(params={}, options={})
|
7
|
+
params = {'action' => 'DescribeScalingInstances', 'region_id' => 'cn-hangzhou', 'page_number' => 1}.merge params
|
8
|
+
Collection.new get('/', params, options)
|
9
|
+
end
|
10
|
+
|
11
|
+
def find_by(*args)
|
12
|
+
c = find(*args)
|
13
|
+
c.items.first
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
include SelectiveAttributeProxy
|
18
|
+
|
19
|
+
attr_accessor :scaling_group
|
20
|
+
|
21
|
+
def initialize(attributes = {})
|
22
|
+
super
|
23
|
+
end
|
24
|
+
|
25
|
+
def id
|
26
|
+
attributes['instance_id']
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -13,7 +13,7 @@ module Aliyun
|
|
13
13
|
c.items.first
|
14
14
|
end
|
15
15
|
|
16
|
-
def execute(params={
|
16
|
+
def execute(params={}, options={})
|
17
17
|
params = {'Action' => 'ExecuteScalingRule'}.merge params
|
18
18
|
get('/', params, options)
|
19
19
|
end
|
data/lib/aliyun/ess/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aliyun-ess
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joshua Li
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-05-
|
11
|
+
date: 2015-05-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -91,6 +91,7 @@ files:
|
|
91
91
|
- lib/aliyun/ess/parsing.rb
|
92
92
|
- lib/aliyun/ess/response.rb
|
93
93
|
- lib/aliyun/ess/scaling_group.rb
|
94
|
+
- lib/aliyun/ess/scaling_instance.rb
|
94
95
|
- lib/aliyun/ess/scaling_rule.rb
|
95
96
|
- lib/aliyun/ess/service.rb
|
96
97
|
- lib/aliyun/ess/version.rb
|