fog-aliyun 0.3.3 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.gitignore +2 -0
- data/.ruby-version +1 -1
- data/CHANGELOG.md +114 -0
- data/README.md +61 -3
- data/fog-aliyun.gemspec +9 -4
- data/lib/fog/aliyun/compute.rb +34 -10
- data/lib/fog/aliyun/models/compute/flavor.rb +28 -0
- data/lib/fog/aliyun/models/compute/flavors.rb +13 -0
- data/lib/fog/aliyun/models/compute/image.rb +3 -1
- data/lib/fog/aliyun/models/compute/server.rb +13 -1
- data/lib/fog/aliyun/models/compute/servers.rb +2 -1
- data/lib/fog/aliyun/models/compute/vpcs.rb +1 -1
- data/lib/fog/aliyun/models/storage/directories.rb +34 -17
- data/lib/fog/aliyun/models/storage/directory.rb +102 -14
- data/lib/fog/aliyun/models/storage/file.rb +130 -120
- data/lib/fog/aliyun/models/storage/files.rb +69 -128
- data/lib/fog/aliyun/requests/compute/allocate_eip_address.rb +1 -1
- data/lib/fog/aliyun/requests/compute/allocate_public_ip_address.rb +1 -1
- data/lib/fog/aliyun/requests/compute/associate_eip_address.rb +1 -1
- data/lib/fog/aliyun/requests/compute/attach_disk.rb +4 -2
- data/lib/fog/aliyun/requests/compute/create_disk.rb +2 -2
- data/lib/fog/aliyun/requests/compute/create_image.rb +1 -1
- data/lib/fog/aliyun/requests/compute/create_security_group.rb +1 -1
- data/lib/fog/aliyun/requests/compute/create_security_group_egress_ip_rule.rb +5 -3
- data/lib/fog/aliyun/requests/compute/create_security_group_egress_sg_rule.rb +4 -2
- data/lib/fog/aliyun/requests/compute/create_security_group_ip_rule.rb +5 -3
- data/lib/fog/aliyun/requests/compute/create_security_group_sg_rule.rb +4 -2
- data/lib/fog/aliyun/requests/compute/create_server.rb +23 -12
- data/lib/fog/aliyun/requests/compute/create_snapshot.rb +1 -1
- data/lib/fog/aliyun/requests/compute/create_vpc.rb +4 -2
- data/lib/fog/aliyun/requests/compute/create_vswitch.rb +4 -2
- data/lib/fog/aliyun/requests/compute/delete_disk.rb +1 -1
- data/lib/fog/aliyun/requests/compute/delete_image.rb +1 -1
- data/lib/fog/aliyun/requests/compute/delete_security_group.rb +1 -1
- data/lib/fog/aliyun/requests/compute/delete_security_group_egress_ip_rule.rb +5 -3
- data/lib/fog/aliyun/requests/compute/delete_security_group_egress_sg_rule.rb +4 -2
- data/lib/fog/aliyun/requests/compute/delete_security_group_ip_rule.rb +5 -3
- data/lib/fog/aliyun/requests/compute/delete_security_group_sg_rule.rb +4 -2
- data/lib/fog/aliyun/requests/compute/delete_server.rb +1 -1
- data/lib/fog/aliyun/requests/compute/delete_snapshot.rb +1 -1
- data/lib/fog/aliyun/requests/compute/delete_vpc.rb +1 -1
- data/lib/fog/aliyun/requests/compute/delete_vswitch.rb +1 -1
- data/lib/fog/aliyun/requests/compute/detach_disk.rb +4 -2
- data/lib/fog/aliyun/requests/compute/join_security_group.rb +1 -1
- data/lib/fog/aliyun/requests/compute/leave_security_group.rb +1 -1
- data/lib/fog/aliyun/requests/compute/list_disks.rb +1 -1
- data/lib/fog/aliyun/requests/compute/list_eip_addresses.rb +1 -1
- data/lib/fog/aliyun/requests/compute/list_images.rb +1 -1
- data/lib/fog/aliyun/requests/compute/list_route_tables.rb +1 -1
- data/lib/fog/aliyun/requests/compute/list_security_group_rules.rb +1 -1
- data/lib/fog/aliyun/requests/compute/list_security_groups.rb +1 -1
- data/lib/fog/aliyun/requests/compute/list_server_types.rb +3 -3
- data/lib/fog/aliyun/requests/compute/list_servers.rb +10 -10
- data/lib/fog/aliyun/requests/compute/list_snapshots.rb +1 -1
- data/lib/fog/aliyun/requests/compute/list_vpcs.rb +1 -1
- data/lib/fog/aliyun/requests/compute/list_vrouters.rb +1 -1
- data/lib/fog/aliyun/requests/compute/list_vswitchs.rb +1 -1
- data/lib/fog/aliyun/requests/compute/list_zones.rb +1 -1
- data/lib/fog/aliyun/requests/compute/modify_vpc.rb +4 -2
- data/lib/fog/aliyun/requests/compute/modify_vswitch.rb +4 -2
- data/lib/fog/aliyun/requests/compute/reboot_server.rb +1 -1
- data/lib/fog/aliyun/requests/compute/release_eip_address.rb +1 -1
- data/lib/fog/aliyun/requests/compute/start_server.rb +1 -1
- data/lib/fog/aliyun/requests/compute/stop_server.rb +1 -1
- data/lib/fog/aliyun/requests/compute/unassociate_eip_address.rb +1 -1
- data/lib/fog/aliyun/requests/storage/abort_multipart_upload.rb +22 -0
- data/lib/fog/aliyun/requests/storage/complete_multipart_upload.rb +21 -0
- data/lib/fog/aliyun/requests/storage/copy_object.rb +16 -23
- data/lib/fog/aliyun/requests/storage/delete_bucket.rb +5 -14
- data/lib/fog/aliyun/requests/storage/delete_multiple_objects.rb +20 -0
- data/lib/fog/aliyun/requests/storage/delete_object.rb +12 -35
- data/lib/fog/aliyun/requests/storage/get_bucket.rb +30 -110
- data/lib/fog/aliyun/requests/storage/get_bucket_location.rb +33 -0
- data/lib/fog/aliyun/requests/storage/get_object.rb +29 -24
- data/lib/fog/aliyun/requests/storage/get_object_acl.rb +30 -0
- data/lib/fog/aliyun/requests/storage/get_object_http_url.rb +14 -15
- data/lib/fog/aliyun/requests/storage/get_object_https_url.rb +14 -15
- data/lib/fog/aliyun/requests/storage/get_service.rb +13 -0
- data/lib/fog/aliyun/requests/storage/head_object.rb +27 -18
- data/lib/fog/aliyun/requests/storage/initiate_multipart_upload.rb +19 -0
- data/lib/fog/aliyun/requests/storage/list_buckets.rb +8 -26
- data/lib/fog/aliyun/requests/storage/list_objects.rb +14 -73
- data/lib/fog/aliyun/requests/storage/put_bucket.rb +4 -10
- data/lib/fog/aliyun/requests/storage/put_object.rb +18 -162
- data/lib/fog/aliyun/requests/storage/upload_part.rb +24 -0
- data/lib/fog/aliyun/storage.rb +57 -29
- data/lib/fog/aliyun/version.rb +1 -1
- data/lib/fog/aliyun.rb +6 -9
- data/lib/fog/bin/aliyun.rb +1 -1
- metadata +118 -47
- data/lib/fog/aliyun/requests/storage/delete_container.rb +0 -33
- data/lib/fog/aliyun/requests/storage/get_container.rb +0 -56
- data/lib/fog/aliyun/requests/storage/get_containers.rb +0 -60
- data/lib/fog/aliyun/requests/storage/put_container.rb +0 -32
@@ -2,45 +2,48 @@
|
|
2
2
|
|
3
3
|
require 'fog/core/collection'
|
4
4
|
require 'fog/aliyun/models/storage/file'
|
5
|
+
require 'aliyun/oss'
|
5
6
|
|
6
7
|
module Fog
|
7
|
-
module
|
8
|
-
class
|
8
|
+
module Aliyun
|
9
|
+
class Storage
|
9
10
|
class Files < Fog::Collection
|
10
11
|
attribute :directory
|
11
12
|
attribute :limit
|
12
|
-
attribute :
|
13
|
+
attribute :prefix, :aliases => 'Prefix'
|
13
14
|
attribute :path
|
14
|
-
attribute :
|
15
|
+
attribute :common_prefixes, :aliases => 'CommonPrefixes'
|
16
|
+
attribute :delimiter, :aliases => 'Delimiter'
|
17
|
+
attribute :is_truncated, :aliases => 'IsTruncated'
|
18
|
+
attribute :marker, :aliases => 'Marker'
|
19
|
+
attribute :max_keys, :aliases => ['MaxKeys', 'max-keys']
|
15
20
|
|
16
|
-
model Fog::Storage::
|
21
|
+
model Fog::Aliyun::Storage::File
|
17
22
|
|
18
|
-
def all(
|
23
|
+
def all(options = {})
|
19
24
|
requires :directory
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
i += 1
|
25
|
+
options = {
|
26
|
+
'delimiter': delimiter,
|
27
|
+
'marker': marker,
|
28
|
+
'max-keys': max_keys.to_i,
|
29
|
+
'prefix': prefix
|
30
|
+
}.merge!(options)
|
31
|
+
options = options.reject {|key,value| value.nil? || value.to_s.empty?}
|
32
|
+
merge_attributes(options)
|
33
|
+
parent = directory.collection.get(
|
34
|
+
directory.key,
|
35
|
+
options
|
36
|
+
)
|
37
|
+
if parent
|
38
|
+
merge_attributes(parent.files.attributes)
|
39
|
+
load(parent.files.map {|file| file.attributes})
|
40
|
+
else
|
41
|
+
nil
|
38
42
|
end
|
39
|
-
|
40
|
-
load(data)
|
41
43
|
end
|
42
44
|
|
43
|
-
|
45
|
+
alias_method :each_file_this_page, :each
|
46
|
+
|
44
47
|
def each
|
45
48
|
if !block_given?
|
46
49
|
self
|
@@ -48,7 +51,7 @@ module Fog
|
|
48
51
|
subset = dup.all
|
49
52
|
|
50
53
|
subset.each_file_this_page { |f| yield f }
|
51
|
-
while subset.
|
54
|
+
while subset.is_truncated
|
52
55
|
subset = subset.all(marker: subset.last.key)
|
53
56
|
subset.each_file_this_page { |f| yield f }
|
54
57
|
end
|
@@ -57,131 +60,69 @@ module Fog
|
|
57
60
|
end
|
58
61
|
end
|
59
62
|
|
60
|
-
def get(key)
|
63
|
+
def get(key, options = {}, &block)
|
61
64
|
requires :directory
|
62
|
-
object = if directory.key == ''
|
63
|
-
key
|
64
|
-
else
|
65
|
-
directory.key + '/' + key
|
66
|
-
end
|
67
65
|
begin
|
68
|
-
data = service.get_object(
|
69
|
-
|
70
|
-
|
71
|
-
|
66
|
+
data = service.get_object(directory.key, key, options, &block)
|
67
|
+
normalize_headers(data)
|
68
|
+
file_data = data.headers.merge({
|
69
|
+
:body => data.body,
|
70
|
+
:key => key
|
71
|
+
})
|
72
|
+
new(file_data)
|
73
|
+
rescue Exception => error
|
74
|
+
if error.respond_to?(:http_code) && error.http_code.to_i == 404
|
72
75
|
nil
|
73
76
|
else
|
74
77
|
raise(error)
|
75
78
|
end
|
76
79
|
end
|
77
|
-
|
78
|
-
contentLen = data[:headers]['Content-Length'].to_i
|
79
|
-
|
80
|
-
if block_given?
|
81
|
-
pagesNum = (contentLen + Excon::CHUNK_SIZE - 1) / Excon::CHUNK_SIZE
|
82
|
-
|
83
|
-
for i in 1..pagesNum
|
84
|
-
_start = (i - 1) * Excon::CHUNK_SIZE
|
85
|
-
_end = i * Excon::CHUNK_SIZE - 1
|
86
|
-
range = "#{_start}-#{_end}"
|
87
|
-
data = service.get_object(object, range)
|
88
|
-
chunk = data[:body]
|
89
|
-
yield(chunk)
|
90
|
-
body = nil
|
91
|
-
end
|
92
|
-
else
|
93
|
-
body = data[:body]
|
94
|
-
end
|
95
|
-
|
96
|
-
lastModified = data[:headers]['Last-Modified']
|
97
|
-
last_modified = (Time.parse(lastModified).localtime if !lastModified.nil? && lastModified != '')
|
98
|
-
|
99
|
-
date = data[:headers]['Date']
|
100
|
-
date = (Time.parse(date).localtime if !date.nil? && date != '')
|
101
|
-
file_data = {
|
102
|
-
body: body,
|
103
|
-
content_length: contentLen,
|
104
|
-
key: key,
|
105
|
-
last_modified: last_modified,
|
106
|
-
content_type: data[:headers]['Content-Type'],
|
107
|
-
etag: data[:headers]['ETag'],
|
108
|
-
date: date,
|
109
|
-
connection: data[:headers]['Connection'],
|
110
|
-
accept_ranges: data[:headers]['Accept-Ranges'],
|
111
|
-
server: data[:headers]['Server'],
|
112
|
-
object_type: data[:headers]['x-oss-object-type'],
|
113
|
-
content_disposition: data[:headers]['Content-Disposition']
|
114
|
-
}
|
115
|
-
|
116
|
-
new(file_data)
|
117
80
|
end
|
118
81
|
|
119
|
-
|
82
|
+
# @param options[Hash] No need to use
|
83
|
+
def get_url(key, options = {})
|
120
84
|
requires :directory
|
121
|
-
|
122
|
-
key
|
123
|
-
else
|
124
|
-
directory.key + '/' + key
|
125
|
-
end
|
126
|
-
service.get_object_http_url_public(object, 3600)
|
85
|
+
service.get_object_http_url_public(directory.key, key, 3600)
|
127
86
|
end
|
128
87
|
|
88
|
+
# @param options[Hash] No need to use
|
129
89
|
def get_http_url(key, expires, options = {})
|
130
90
|
requires :directory
|
131
|
-
|
132
|
-
key
|
133
|
-
else
|
134
|
-
directory.key + '/' + key
|
135
|
-
end
|
136
|
-
expires = expires.nil? ? 0 : expires.to_i
|
137
|
-
service.get_object_http_url_public(object, expires, options)
|
91
|
+
service.get_object_http_url_public(directory.key, key, expires)
|
138
92
|
end
|
139
93
|
|
94
|
+
# @param options[Hash] No need to use
|
140
95
|
def get_https_url(key, expires, options = {})
|
141
96
|
requires :directory
|
142
|
-
|
143
|
-
key
|
144
|
-
else
|
145
|
-
directory.key + '/' + key
|
146
|
-
end
|
147
|
-
expires = expires.nil? ? 0 : expires.to_i
|
148
|
-
service.get_object_https_url_public(object, expires, options)
|
97
|
+
service.get_object_https_url_public(directory.key, key, expires)
|
149
98
|
end
|
150
99
|
|
151
|
-
def head(key,
|
100
|
+
def head(key, options = {})
|
152
101
|
requires :directory
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
key: key,
|
168
|
-
last_modified: last_modified,
|
169
|
-
content_type: data[:headers]['Content-Type'],
|
170
|
-
etag: data[:headers]['ETag'],
|
171
|
-
date: date,
|
172
|
-
connection: data[:headers]['Connection'],
|
173
|
-
accept_ranges: data[:headers]['Accept-Ranges'],
|
174
|
-
server: data[:headers]['Server'],
|
175
|
-
object_type: data[:headers]['x-oss-object-type']
|
176
|
-
}
|
177
|
-
new(file_data)
|
178
|
-
rescue Fog::Storage::Aliyun::NotFound
|
179
|
-
nil
|
102
|
+
begin
|
103
|
+
data = service.head_object(directory.key, key, options)
|
104
|
+
normalize_headers(data)
|
105
|
+
file_data = data.headers.merge({
|
106
|
+
:key => key
|
107
|
+
})
|
108
|
+
new(file_data)
|
109
|
+
rescue Exception => error
|
110
|
+
if error.respond_to?(:http_code) && error.http_code.to_i == 404
|
111
|
+
nil
|
112
|
+
else
|
113
|
+
raise(error)
|
114
|
+
end
|
115
|
+
end
|
180
116
|
end
|
181
117
|
|
182
118
|
def new(attributes = {})
|
183
119
|
requires :directory
|
184
|
-
super({ directory
|
120
|
+
super({ :directory => directory }.merge!(attributes))
|
121
|
+
end
|
122
|
+
|
123
|
+
def normalize_headers(data)
|
124
|
+
data.headers[:last_modified] = Time.parse(data.headers[:last_modified])
|
125
|
+
data.headers[:etag] = data.headers[:etag].gsub('"','')
|
185
126
|
end
|
186
127
|
end
|
187
128
|
end
|
@@ -26,7 +26,7 @@ module Fog
|
|
26
26
|
_sigNonce = randonStr
|
27
27
|
_time = Time.new.utc
|
28
28
|
|
29
|
-
_parameters =
|
29
|
+
_parameters = defaultParameters(_action, _sigNonce, _time)
|
30
30
|
_pathURL = defaultAliyunUri(_action, _sigNonce, _time)
|
31
31
|
|
32
32
|
# optional parameters
|
@@ -20,7 +20,7 @@ module Fog
|
|
20
20
|
_sigNonce = randonStr
|
21
21
|
_time = Time.new.utc
|
22
22
|
|
23
|
-
_parameters =
|
23
|
+
_parameters = defaultParameters(_action, _sigNonce, _time)
|
24
24
|
_pathURL = defaultAliyunUri(_action, _sigNonce, _time)
|
25
25
|
|
26
26
|
_parameters['InstanceId'] = server_id
|
@@ -22,7 +22,7 @@ module Fog
|
|
22
22
|
|
23
23
|
type = options['instance_type']
|
24
24
|
|
25
|
-
_parameters =
|
25
|
+
_parameters = defaultParameters(_action, _sigNonce, _time)
|
26
26
|
_pathURL = defaultAliyunUri(_action, _sigNonce, _time)
|
27
27
|
|
28
28
|
_parameters['InstanceId'] = server_id
|
@@ -1,5 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'addressable'
|
4
|
+
|
3
5
|
module Fog
|
4
6
|
module Compute
|
5
7
|
class Aliyun
|
@@ -23,7 +25,7 @@ module Fog
|
|
23
25
|
sigNonce = randonStr
|
24
26
|
time = Time.new.utc
|
25
27
|
|
26
|
-
parameters =
|
28
|
+
parameters = defaultParameters(action, sigNonce, time)
|
27
29
|
pathUrl = defaultAliyunUri(action, sigNonce, time)
|
28
30
|
|
29
31
|
parameters['InstanceId'] = instanceId
|
@@ -46,7 +48,7 @@ module Fog
|
|
46
48
|
if device
|
47
49
|
parameters['Device'] = device
|
48
50
|
pathUrl += '&Device='
|
49
|
-
pathUrl += URI.
|
51
|
+
pathUrl += Addressable::URI.encode_component(device, Addressable::URI::CharacterClasses::UNRESERVED + '|')
|
50
52
|
end
|
51
53
|
|
52
54
|
signature = sign(@aliyun_accesskey_secret, parameters)
|
@@ -25,7 +25,7 @@ module Fog
|
|
25
25
|
sigNonce = randonStr
|
26
26
|
time = Time.new.utc
|
27
27
|
|
28
|
-
parameters =
|
28
|
+
parameters = defaultParameters(action, sigNonce, time)
|
29
29
|
pathUrl = defaultAliyunUri(action, sigNonce, time)
|
30
30
|
|
31
31
|
parameters['ZoneId'] = @aliyun_zone_id
|
@@ -90,7 +90,7 @@ module Fog
|
|
90
90
|
sigNonce = randonStr
|
91
91
|
time = Time.new.utc
|
92
92
|
|
93
|
-
parameters =
|
93
|
+
parameters = defaultParameters(action, sigNonce, time)
|
94
94
|
pathUrl = defaultAliyunUri(action, sigNonce, time)
|
95
95
|
|
96
96
|
parameters['ZoneId'] = @aliyun_zone_id
|
@@ -10,7 +10,7 @@ module Fog
|
|
10
10
|
sigNonce = randonStr
|
11
11
|
time = Time.new.utc
|
12
12
|
|
13
|
-
parameters =
|
13
|
+
parameters = defaultParameters(action, sigNonce, time)
|
14
14
|
pathUrl = defaultAliyunUri(action, sigNonce, time)
|
15
15
|
|
16
16
|
parameters['SnapshotId'] = snapshotId
|
@@ -1,5 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'addressable'
|
4
|
+
|
3
5
|
module Fog
|
4
6
|
module Compute
|
5
7
|
class Aliyun
|
@@ -10,7 +12,7 @@ module Fog
|
|
10
12
|
sigNonce = randonStr
|
11
13
|
time = Time.new.utc
|
12
14
|
|
13
|
-
parameters =
|
15
|
+
parameters = defaultParameters(action, sigNonce, time)
|
14
16
|
pathUrl = defaultAliyunUri(action, sigNonce, time)
|
15
17
|
|
16
18
|
parameters['SecurityGroupId'] = securitygroup_id
|
@@ -19,7 +21,7 @@ module Fog
|
|
19
21
|
|
20
22
|
parameters['DestCidrIp'] = destCidrIp
|
21
23
|
pathUrl += '&DestCidrIp='
|
22
|
-
pathUrl += URI.
|
24
|
+
pathUrl += Addressable::URI.encode_component(destCidrIp, Addressable::URI::CharacterClasses::UNRESERVED + '|')
|
23
25
|
nicType ||= 'intranet'
|
24
26
|
parameters['NicType'] = nicType
|
25
27
|
pathUrl += '&NicType='
|
@@ -29,7 +31,7 @@ module Fog
|
|
29
31
|
portRange ||= '-1/-1'
|
30
32
|
parameters['PortRange'] = portRange
|
31
33
|
pathUrl += '&PortRange='
|
32
|
-
pathUrl += URI.
|
34
|
+
pathUrl += Addressable::URI.encode_component(portRange, Addressable::URI::CharacterClasses::UNRESERVED + '|')
|
33
35
|
|
34
36
|
protocol = option[:protocol]
|
35
37
|
protocol ||= 'all'
|
@@ -1,5 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'addressable'
|
4
|
+
|
3
5
|
module Fog
|
4
6
|
module Compute
|
5
7
|
class Aliyun
|
@@ -10,7 +12,7 @@ module Fog
|
|
10
12
|
sigNonce = randonStr
|
11
13
|
time = Time.new.utc
|
12
14
|
|
13
|
-
parameters =
|
15
|
+
parameters = defaultParameters(action, sigNonce, time)
|
14
16
|
pathUrl = defaultAliyunUri(action, sigNonce, time)
|
15
17
|
|
16
18
|
parameters['SecurityGroupId'] = securitygroup_id
|
@@ -30,7 +32,7 @@ module Fog
|
|
30
32
|
portRange ||= '-1/-1'
|
31
33
|
parameters['PortRange'] = portRange
|
32
34
|
pathUrl += '&PortRange='
|
33
|
-
pathUrl += URI.
|
35
|
+
pathUrl += Addressable::URI.encode_component(portRange, Addressable::URI::CharacterClasses::UNRESERVED + '|')
|
34
36
|
|
35
37
|
protocol = option[:protocol]
|
36
38
|
protocol ||= 'all'
|
@@ -1,5 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'addressable'
|
4
|
+
|
3
5
|
module Fog
|
4
6
|
module Compute
|
5
7
|
class Aliyun
|
@@ -10,7 +12,7 @@ module Fog
|
|
10
12
|
sigNonce = randonStr
|
11
13
|
time = Time.new.utc
|
12
14
|
|
13
|
-
parameters =
|
15
|
+
parameters = defaultParameters(action, sigNonce, time)
|
14
16
|
pathUrl = defaultAliyunUri(action, sigNonce, time)
|
15
17
|
|
16
18
|
parameters['SecurityGroupId'] = securitygroup_id
|
@@ -19,7 +21,7 @@ module Fog
|
|
19
21
|
|
20
22
|
parameters['SourceCidrIp'] = sourceCidrIp
|
21
23
|
pathUrl += '&SourceCidrIp='
|
22
|
-
pathUrl += URI.
|
24
|
+
pathUrl += Addressable::URI.encode_component(sourceCidrIp, Addressable::URI::CharacterClasses::UNRESERVED + '|')
|
23
25
|
nicType ||= 'intranet'
|
24
26
|
parameters['NicType'] = nicType
|
25
27
|
pathUrl += '&NicType='
|
@@ -29,7 +31,7 @@ module Fog
|
|
29
31
|
portRange ||= '-1/-1'
|
30
32
|
parameters['PortRange'] = portRange
|
31
33
|
pathUrl += '&PortRange='
|
32
|
-
pathUrl += URI.
|
34
|
+
pathUrl += Addressable::URI.encode_component(portRange, Addressable::URI::CharacterClasses::UNRESERVED + '|')
|
33
35
|
|
34
36
|
protocol = option[:protocol]
|
35
37
|
protocol ||= 'all'
|
@@ -1,5 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'addressable'
|
4
|
+
|
3
5
|
module Fog
|
4
6
|
module Compute
|
5
7
|
class Aliyun
|
@@ -10,7 +12,7 @@ module Fog
|
|
10
12
|
sigNonce = randonStr
|
11
13
|
time = Time.new.utc
|
12
14
|
|
13
|
-
parameters =
|
15
|
+
parameters = defaultParameters(action, sigNonce, time)
|
14
16
|
pathUrl = defaultAliyunUri(action, sigNonce, time)
|
15
17
|
|
16
18
|
parameters['SecurityGroupId'] = securitygroup_id
|
@@ -30,7 +32,7 @@ module Fog
|
|
30
32
|
portRange ||= '-1/-1'
|
31
33
|
parameters['PortRange'] = portRange
|
32
34
|
pathUrl += '&PortRange='
|
33
|
-
pathUrl += URI.
|
35
|
+
pathUrl += Addressable::URI.encode_component(portRange, Addressable::URI::CharacterClasses::UNRESERVED + '|')
|
34
36
|
|
35
37
|
protocol = option[:protocol]
|
36
38
|
protocol ||= 'all'
|
@@ -10,7 +10,7 @@ module Fog
|
|
10
10
|
_sigNonce = randonStr
|
11
11
|
_time = Time.new.utc
|
12
12
|
|
13
|
-
_parameters =
|
13
|
+
_parameters = defaultParameters(_action, _sigNonce, _time)
|
14
14
|
_pathURL = defaultAliyunUri(_action, _sigNonce, _time)
|
15
15
|
|
16
16
|
_parameters['ImageId'] = imageId
|
@@ -68,19 +68,30 @@ module Fog
|
|
68
68
|
_parameters['PrivateIpAddress'] = _PrivateIpAddress
|
69
69
|
_pathURL += '&PrivateIpAddress=' + _PrivateIpAddress
|
70
70
|
end
|
71
|
-
|
71
|
+
end
|
72
72
|
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
73
|
+
_InternetMaxBandwidthIn = options[:InternetMaxBandwidthIn]
|
74
|
+
if _InternetMaxBandwidthIn
|
75
|
+
_parameters['InternetMaxBandwidthIn'] = _InternetMaxBandwidthIn
|
76
|
+
_pathURL += '&InternetMaxBandwidthIn=' + _InternetMaxBandwidthIn
|
77
|
+
end
|
78
78
|
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
79
|
+
_InternetMaxBandwidthOut = options[:InternetMaxBandwidthOut]
|
80
|
+
if _InternetMaxBandwidthOut
|
81
|
+
_parameters['InternetMaxBandwidthOut'] = _InternetMaxBandwidthOut
|
82
|
+
_pathURL += '&InternetMaxBandwidthOut=' + _InternetMaxBandwidthOut
|
83
|
+
end
|
84
|
+
|
85
|
+
_KeyPairName = options[:KeyPairName]
|
86
|
+
if _KeyPairName
|
87
|
+
_parameters['KeyPairName'] = _KeyPairName
|
88
|
+
_pathURL += '&KeyPairName=' + _KeyPairName
|
89
|
+
end
|
90
|
+
|
91
|
+
_UserData = options[:UserData]
|
92
|
+
if _UserData
|
93
|
+
_parameters['UserData'] = _UserData
|
94
|
+
_pathURL += '&UserData=' + _UserData
|
84
95
|
end
|
85
96
|
|
86
97
|
_signature = sign(@aliyun_accesskey_secret, _parameters)
|
@@ -10,7 +10,7 @@ module Fog
|
|
10
10
|
sigNonce = randonStr
|
11
11
|
time = Time.new.utc
|
12
12
|
|
13
|
-
parameters =
|
13
|
+
parameters = defaultParameters(action, sigNonce, time)
|
14
14
|
pathUrl = defaultAliyunUri(action, sigNonce, time)
|
15
15
|
|
16
16
|
parameters['DiskId'] = diskId
|
@@ -1,5 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'addressable'
|
4
|
+
|
3
5
|
module Fog
|
4
6
|
module Compute
|
5
7
|
class Aliyun
|
@@ -10,12 +12,12 @@ module Fog
|
|
10
12
|
sigNonce = randonStr
|
11
13
|
time = Time.new.utc
|
12
14
|
|
13
|
-
parameters =
|
15
|
+
parameters = defaultParameters(action, sigNonce, time)
|
14
16
|
pathUrl = defaultAliyunUri(action, sigNonce, time)
|
15
17
|
|
16
18
|
parameters['CidrBlock'] = cidrBlock
|
17
19
|
pathUrl += '&CidrBlock='
|
18
|
-
pathUrl += URI.
|
20
|
+
pathUrl += Addressable::URI.encode_component(cidrBlock, Addressable::URI::CharacterClasses::UNRESERVED + '|')
|
19
21
|
|
20
22
|
name = options[:name]
|
21
23
|
desc = options[:description]
|
@@ -1,5 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'addressable'
|
4
|
+
|
3
5
|
module Fog
|
4
6
|
module Compute
|
5
7
|
class Aliyun
|
@@ -10,7 +12,7 @@ module Fog
|
|
10
12
|
sigNonce = randonStr
|
11
13
|
time = Time.new.utc
|
12
14
|
|
13
|
-
parameters =
|
15
|
+
parameters = defaultParameters(action, sigNonce, time)
|
14
16
|
pathUrl = defaultAliyunUri(action, sigNonce, time)
|
15
17
|
|
16
18
|
parameters['VpcId'] = vpcId
|
@@ -19,7 +21,7 @@ module Fog
|
|
19
21
|
|
20
22
|
parameters['CidrBlock'] = cidrBlock
|
21
23
|
pathUrl += '&CidrBlock='
|
22
|
-
pathUrl += URI.
|
24
|
+
pathUrl += Addressable::URI.encode_component(cidrBlock, Addressable::URI::CharacterClasses::UNRESERVED + '|')
|
23
25
|
|
24
26
|
parameters['ZoneId'] = @aliyun_zone_id
|
25
27
|
pathUrl += '&ZoneId='
|
@@ -20,7 +20,7 @@ module Fog
|
|
20
20
|
sigNonce = randonStr
|
21
21
|
time = Time.new.utc
|
22
22
|
|
23
|
-
parameters =
|
23
|
+
parameters = defaultParameters(action, sigNonce, time)
|
24
24
|
pathUrl = defaultAliyunUri(action, sigNonce, time)
|
25
25
|
|
26
26
|
parameters['DiskId'] = diskId
|
@@ -10,7 +10,7 @@ module Fog
|
|
10
10
|
sigNonce = randonStr
|
11
11
|
time = Time.new.utc
|
12
12
|
|
13
|
-
parameters =
|
13
|
+
parameters = defaultParameters(action, sigNonce, time)
|
14
14
|
pathUrl = defaultAliyunUri(action, sigNonce, time)
|
15
15
|
|
16
16
|
parameters['ImageId'] = imageId
|
@@ -1,5 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'addressable'
|
4
|
+
|
3
5
|
module Fog
|
4
6
|
module Compute
|
5
7
|
class Aliyun
|
@@ -10,7 +12,7 @@ module Fog
|
|
10
12
|
sigNonce = randonStr
|
11
13
|
time = Time.new.utc
|
12
14
|
|
13
|
-
parameters =
|
15
|
+
parameters = defaultParameters(action, sigNonce, time)
|
14
16
|
pathUrl = defaultAliyunUri(action, sigNonce, time)
|
15
17
|
|
16
18
|
parameters['SecurityGroupId'] = securitygroup_id
|
@@ -19,7 +21,7 @@ module Fog
|
|
19
21
|
|
20
22
|
parameters['DestCidrIp'] = destCidrIp
|
21
23
|
pathUrl += '&DestCidrIp='
|
22
|
-
pathUrl += URI.
|
24
|
+
pathUrl += Addressable::URI.encode_component(destCidrIp, Addressable::URI::CharacterClasses::UNRESERVED + '|')
|
23
25
|
nicType ||= 'intranet'
|
24
26
|
parameters['NicType'] = nicType
|
25
27
|
pathUrl += '&NicType='
|
@@ -29,7 +31,7 @@ module Fog
|
|
29
31
|
portRange ||= '-1/-1'
|
30
32
|
parameters['PortRange'] = portRange
|
31
33
|
pathUrl += '&PortRange='
|
32
|
-
pathUrl += URI.
|
34
|
+
pathUrl += Addressable::URI.encode_component(portRange, Addressable::URI::CharacterClasses::UNRESERVED + '|')
|
33
35
|
|
34
36
|
protocol = option[:protocol]
|
35
37
|
protocol ||= 'all'
|