aliyun-ess 0.1.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.
- checksums.yaml +7 -0
- data/CHANGELOG +5 -0
- data/INSTALL +13 -0
- data/bin/ess +6 -0
- data/bin/setup.rb +11 -0
- data/lib/aliyun/ess.rb +33 -0
- data/lib/aliyun/ess/authentication.rb +121 -0
- data/lib/aliyun/ess/base.rb +128 -0
- data/lib/aliyun/ess/collection.rb +24 -0
- data/lib/aliyun/ess/connection.rb +226 -0
- data/lib/aliyun/ess/error.rb +84 -0
- data/lib/aliyun/ess/exceptions.rb +82 -0
- data/lib/aliyun/ess/extensions.rb +174 -0
- data/lib/aliyun/ess/parsing.rb +67 -0
- data/lib/aliyun/ess/response.rb +161 -0
- data/lib/aliyun/ess/scaling_group.rb +50 -0
- data/lib/aliyun/ess/scaling_rule.rb +45 -0
- data/lib/aliyun/ess/service.rb +31 -0
- data/lib/aliyun/ess/version.rb +14 -0
- metadata +104 -0
@@ -0,0 +1,50 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
module Aliyun
|
3
|
+
module ESS
|
4
|
+
class ScalingGroup < Base
|
5
|
+
class << self
|
6
|
+
def find(params={}, options={})
|
7
|
+
params = {'action' => 'DescribeScalingGroups', '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
|
+
def initialize(attributes = {})
|
20
|
+
super
|
21
|
+
end
|
22
|
+
|
23
|
+
def id
|
24
|
+
attributes['scaling_group_id']
|
25
|
+
end
|
26
|
+
|
27
|
+
def name
|
28
|
+
attributes['scaling_group_name']
|
29
|
+
end
|
30
|
+
|
31
|
+
def scaling_rules
|
32
|
+
@scaling_rules ||= begin
|
33
|
+
build_scaling_rules!
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
private
|
38
|
+
|
39
|
+
def build_scaling_rules!
|
40
|
+
items = ScalingRule.find(:scaling_group_id => id).items
|
41
|
+
items.each {|e| register(e) }
|
42
|
+
items
|
43
|
+
end
|
44
|
+
|
45
|
+
def register(object)
|
46
|
+
object.scaling_group = self
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
module Aliyun
|
3
|
+
module ESS
|
4
|
+
class ScalingRule < Base
|
5
|
+
class << self
|
6
|
+
def find(params={}, options={})
|
7
|
+
params = {'Action' => 'DescribeScalingRules', 'RegionId' => 'cn-hangzhou', 'PageNumber' => 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
|
+
|
16
|
+
def execute(params={'ScalingRuleAri' => 'ari:acs:ess:cn-hangzhou:1358641544878377:scalingrule/duK8myelWehmcB5WH9cUTsu7'}, options={})
|
17
|
+
params = {'Action' => 'ExecuteScalingRule'}.merge params
|
18
|
+
get('/', params, options)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
include SelectiveAttributeProxy
|
23
|
+
|
24
|
+
attr_accessor :scaling_group
|
25
|
+
|
26
|
+
def initialize(attributes = {})
|
27
|
+
super
|
28
|
+
|
29
|
+
end
|
30
|
+
|
31
|
+
def id
|
32
|
+
attributes['scaling_rule_id']
|
33
|
+
end
|
34
|
+
|
35
|
+
def name
|
36
|
+
attributes['scaling_rule_name']
|
37
|
+
end
|
38
|
+
|
39
|
+
def execute
|
40
|
+
self.class.execute :scaling_rule_ari => scaling_rule_ari
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
module Aliyun
|
3
|
+
module ESS
|
4
|
+
# The service lets you find out general information about your account, like what buckets you have.
|
5
|
+
#
|
6
|
+
class Service < Base
|
7
|
+
@@response = nil #:nodoc:
|
8
|
+
|
9
|
+
class << self
|
10
|
+
# Sometimes methods that make requests to the OSS servers return some object, like a Bucket or an OSSObject.
|
11
|
+
# Other times they return just <tt>true</tt>. Other times they raise an exception that you may want to rescue. Despite all these
|
12
|
+
# possible outcomes, every method that makes a request stores its response object for you in Service.response. You can always
|
13
|
+
# get to the last request's response via Service.response.
|
14
|
+
#
|
15
|
+
# objects = Bucket.objects('jukebox')
|
16
|
+
# Service.response.success?
|
17
|
+
# # => true
|
18
|
+
#
|
19
|
+
# This is also useful when an error exception is raised in the console which you weren't expecting. You can
|
20
|
+
# root around in the response to get more details of what might have gone wrong.
|
21
|
+
def response
|
22
|
+
@@response
|
23
|
+
end
|
24
|
+
|
25
|
+
def response=(response) #:nodoc:
|
26
|
+
@@response = response
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
module Aliyun
|
3
|
+
module ESS
|
4
|
+
module VERSION #:nodoc:
|
5
|
+
MAJOR = '0'
|
6
|
+
MINOR = '1'
|
7
|
+
TINY = '0'
|
8
|
+
BETA = nil
|
9
|
+
#BETA = Time.now.to_i.to_s
|
10
|
+
end
|
11
|
+
|
12
|
+
Version = [VERSION::MAJOR, VERSION::MINOR, VERSION::TINY, VERSION::BETA].compact * '.'
|
13
|
+
end
|
14
|
+
end
|
metadata
ADDED
@@ -0,0 +1,104 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: aliyun-ess
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Joshua Li
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-05-11 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.3'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.3'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: yajl-ruby
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rack
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '1.4'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1.4'
|
55
|
+
description: Full documentation of the currently supported API can be found at http://www.aliyun.com/product/ess#resources.
|
56
|
+
email:
|
57
|
+
- sunrisela@gmail.com
|
58
|
+
executables: []
|
59
|
+
extensions: []
|
60
|
+
extra_rdoc_files: []
|
61
|
+
files:
|
62
|
+
- CHANGELOG
|
63
|
+
- INSTALL
|
64
|
+
- bin/ess
|
65
|
+
- bin/setup.rb
|
66
|
+
- lib/aliyun/ess.rb
|
67
|
+
- lib/aliyun/ess/authentication.rb
|
68
|
+
- lib/aliyun/ess/base.rb
|
69
|
+
- lib/aliyun/ess/collection.rb
|
70
|
+
- lib/aliyun/ess/connection.rb
|
71
|
+
- lib/aliyun/ess/error.rb
|
72
|
+
- lib/aliyun/ess/exceptions.rb
|
73
|
+
- lib/aliyun/ess/extensions.rb
|
74
|
+
- lib/aliyun/ess/parsing.rb
|
75
|
+
- lib/aliyun/ess/response.rb
|
76
|
+
- lib/aliyun/ess/scaling_group.rb
|
77
|
+
- lib/aliyun/ess/scaling_rule.rb
|
78
|
+
- lib/aliyun/ess/service.rb
|
79
|
+
- lib/aliyun/ess/version.rb
|
80
|
+
homepage: https://github.com/sunrisela
|
81
|
+
licenses:
|
82
|
+
- MIT
|
83
|
+
metadata: {}
|
84
|
+
post_install_message:
|
85
|
+
rdoc_options: []
|
86
|
+
require_paths:
|
87
|
+
- lib
|
88
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
89
|
+
requirements:
|
90
|
+
- - ">="
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
version: '0'
|
93
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - ">="
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '0'
|
98
|
+
requirements: []
|
99
|
+
rubyforge_project:
|
100
|
+
rubygems_version: 2.4.6
|
101
|
+
signing_key:
|
102
|
+
specification_version: 4
|
103
|
+
summary: Aliyun::ESS is a Ruby library for Aliyun's Elastic Scaling Service API (http://www.aliyun.com/product/ess)
|
104
|
+
test_files: []
|