qingcloud-sdk 0.4.1 → 2.0.0.pre.alpha.1
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/LICENSE +201 -21
- data/README.md +141 -61
- data/bin/console +3 -3
- data/lib/qingcloud/sdk.rb +16 -14
- data/lib/qingcloud/sdk/general/config.rb +70 -0
- data/lib/qingcloud/sdk/general/contract.rb +28 -17
- data/lib/qingcloud/sdk/general/default/config.yaml +13 -0
- data/lib/qingcloud/sdk/general/error.rb +41 -32
- data/lib/qingcloud/sdk/general/logger.rb +54 -0
- data/lib/qingcloud/sdk/request/preprocessor.rb +81 -0
- data/lib/qingcloud/sdk/request/request.rb +80 -0
- data/lib/qingcloud/sdk/request/signer.rb +53 -0
- data/lib/qingcloud/sdk/service/cache.rb +1005 -0
- data/lib/qingcloud/sdk/service/dns_alias.rb +150 -0
- data/lib/qingcloud/sdk/service/eip.rb +389 -0
- data/lib/qingcloud/sdk/service/image.rb +304 -0
- data/lib/qingcloud/sdk/service/instance.rb +585 -0
- data/lib/qingcloud/sdk/service/job.rb +71 -0
- data/lib/qingcloud/sdk/service/key_pair.rb +257 -0
- data/lib/qingcloud/sdk/service/load_balancer.rb +1119 -0
- data/lib/qingcloud/sdk/service/mongo.rb +566 -0
- data/lib/qingcloud/sdk/service/qingcloud.rb +185 -0
- data/lib/qingcloud/sdk/service/rdb.rb +751 -0
- data/lib/qingcloud/sdk/service/router.rb +778 -0
- data/lib/qingcloud/sdk/service/security_group.rb +645 -0
- data/lib/qingcloud/sdk/service/shared_storage.rb +666 -0
- data/lib/qingcloud/sdk/service/snapshot.rb +283 -0
- data/lib/qingcloud/sdk/service/tag.rb +227 -0
- data/lib/qingcloud/sdk/service/user_data.rb +61 -0
- data/lib/qingcloud/sdk/service/volume.rb +296 -0
- data/lib/qingcloud/sdk/service/vxnet.rb +295 -0
- data/lib/qingcloud/sdk/version.rb +19 -5
- metadata +98 -29
- data/.gitignore +0 -13
- data/.rspec +0 -2
- data/.travis.yml +0 -3
- data/Rakefile +0 -6
- data/lib/qingcloud/sdk/iaas/connector.rb +0 -99
- data/lib/qingcloud/sdk/iaas/foundation.rb +0 -73
- data/lib/qingcloud/sdk/iaas/service.rb +0 -1274
- data/lib/qingcloud/sdk/template/config.json +0 -4
- data/lib/qingcloud/sdk/utility/file_manager.rb +0 -43
- data/lib/qingcloud/sdk/utility/json_parser.rb +0 -41
- data/lib/qingcloud/sdk/utility/logger.rb +0 -19
- data/qingcloud-sdk.gemspec +0 -31
@@ -0,0 +1,666 @@
|
|
1
|
+
# +-------------------------------------------------------------------------
|
2
|
+
# | Copyright (C) 2016 Yunify, Inc.
|
3
|
+
# +-------------------------------------------------------------------------
|
4
|
+
# | Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# | you may not use this work except in compliance with the License.
|
6
|
+
# | You may obtain a copy of the License in the LICENSE file, or at:
|
7
|
+
# |
|
8
|
+
# | http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
# |
|
10
|
+
# | Unless required by applicable law or agreed to in writing, software
|
11
|
+
# | distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# | See the License for the specific language governing permissions and
|
14
|
+
# | limitations under the License.
|
15
|
+
# +-------------------------------------------------------------------------
|
16
|
+
|
17
|
+
require 'active_support/core_ext/hash/keys'
|
18
|
+
|
19
|
+
module QingCloud
|
20
|
+
module SDK
|
21
|
+
class SharedStorageService
|
22
|
+
attr_accessor :config, :properties
|
23
|
+
|
24
|
+
def initialize(config, properties)
|
25
|
+
self.config = config
|
26
|
+
self.properties = properties.deep_symbolize_keys
|
27
|
+
end
|
28
|
+
|
29
|
+
# Documentation URL: https://docs.qingcloud.com/api/vsan/attach_to_s2_shared_target.html
|
30
|
+
def attach_to_s2_shared_target(shared_target: '', volumes: [])
|
31
|
+
input = {
|
32
|
+
config: config,
|
33
|
+
properties: properties,
|
34
|
+
api_name: 'AttachToS2SharedTarget',
|
35
|
+
request_method: 'GET',
|
36
|
+
request_params: {
|
37
|
+
'shared_target' => shared_target,
|
38
|
+
'volumes' => volumes,
|
39
|
+
},
|
40
|
+
}
|
41
|
+
|
42
|
+
attach_to_s2_shared_target_input_validate input
|
43
|
+
|
44
|
+
request = Request.new input
|
45
|
+
request.send
|
46
|
+
end
|
47
|
+
|
48
|
+
private
|
49
|
+
|
50
|
+
def attach_to_s2_shared_target_input_validate(input)
|
51
|
+
input.deep_stringify_keys!
|
52
|
+
|
53
|
+
unless !input['request_params']['shared_target'].nil? && !input['request_params']['shared_target'].to_s.empty?
|
54
|
+
raise ParameterRequiredError.new('shared_target', 'AttachToS2SharedTargetInput')
|
55
|
+
end
|
56
|
+
|
57
|
+
unless !input['request_params']['volumes'].nil? && !input['request_params']['volumes'].to_s.empty?
|
58
|
+
raise ParameterRequiredError.new('volumes', 'AttachToS2SharedTargetInput')
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
public
|
63
|
+
|
64
|
+
# Documentation URL: https://docs.qingcloud.com/api/vsan/change_s2_server_vxnet.html
|
65
|
+
def change_s2_server_vxnet(private_ip: '', s2_server: '', vxnet: '')
|
66
|
+
input = {
|
67
|
+
config: config,
|
68
|
+
properties: properties,
|
69
|
+
api_name: 'ChangeS2ServerVxnet',
|
70
|
+
request_method: 'GET',
|
71
|
+
request_params: {
|
72
|
+
'private_ip' => private_ip,
|
73
|
+
's2_server' => s2_server,
|
74
|
+
'vxnet' => vxnet,
|
75
|
+
},
|
76
|
+
}
|
77
|
+
|
78
|
+
change_s2_server_vxnet_input_validate input
|
79
|
+
|
80
|
+
request = Request.new input
|
81
|
+
request.send
|
82
|
+
end
|
83
|
+
|
84
|
+
private
|
85
|
+
|
86
|
+
def change_s2_server_vxnet_input_validate(input)
|
87
|
+
input.deep_stringify_keys!
|
88
|
+
|
89
|
+
unless !input['request_params']['s2_server'].nil? && !input['request_params']['s2_server'].to_s.empty?
|
90
|
+
raise ParameterRequiredError.new('s2_server', 'ChangeS2ServerVxnetInput')
|
91
|
+
end
|
92
|
+
|
93
|
+
unless !input['request_params']['vxnet'].nil? && !input['request_params']['vxnet'].to_s.empty?
|
94
|
+
raise ParameterRequiredError.new('vxnet', 'ChangeS2ServerVxnetInput')
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
public
|
99
|
+
|
100
|
+
# Documentation URL: https://docs.qingcloud.com/api/vsan/create_s2_server.html
|
101
|
+
def create_s2_server(description: '', private_ip: '', s2_class: nil, s2_server_name: '', service_type: '', vxnet: '')
|
102
|
+
input = {
|
103
|
+
config: config,
|
104
|
+
properties: properties,
|
105
|
+
api_name: 'CreateS2Server',
|
106
|
+
request_method: 'GET',
|
107
|
+
request_params: {
|
108
|
+
'description' => description,
|
109
|
+
'private_ip' => private_ip,
|
110
|
+
's2_class' => s2_class, # s2_class's available values: 0, 1
|
111
|
+
's2_server_name' => s2_server_name,
|
112
|
+
'service_type' => service_type,
|
113
|
+
'vxnet' => vxnet,
|
114
|
+
},
|
115
|
+
}
|
116
|
+
|
117
|
+
create_s2_server_input_validate input
|
118
|
+
|
119
|
+
request = Request.new input
|
120
|
+
request.send
|
121
|
+
end
|
122
|
+
|
123
|
+
private
|
124
|
+
|
125
|
+
def create_s2_server_input_validate(input)
|
126
|
+
input.deep_stringify_keys!
|
127
|
+
|
128
|
+
if input['request_params']['s2_class'] && !input['request_params']['s2_class'].to_s.empty?
|
129
|
+
s2_class_valid_values = %w(0 1)
|
130
|
+
unless s2_class_valid_values.include? input['request_params']['s2_class'].to_s
|
131
|
+
raise ParameterValueNotAllowedError.new(
|
132
|
+
's2_class',
|
133
|
+
input['request_params']['s2_class'],
|
134
|
+
s2_class_valid_values,
|
135
|
+
)
|
136
|
+
end
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
public
|
141
|
+
|
142
|
+
# Documentation URL: https://docs.qingcloud.com/api/vsan/create_s2_shared_target.html
|
143
|
+
def create_s2_shared_target(description: '', export_name: '', export_name_nfs: '', initiator_names: [], s2_group: '', s2_server_id: '', target_type: '', volumes: [])
|
144
|
+
input = {
|
145
|
+
config: config,
|
146
|
+
properties: properties,
|
147
|
+
api_name: 'CreateS2SharedTarget',
|
148
|
+
request_method: 'GET',
|
149
|
+
request_params: {
|
150
|
+
'description' => description,
|
151
|
+
'export_name' => export_name,
|
152
|
+
'export_name_nfs' => export_name_nfs,
|
153
|
+
'initiator_names' => initiator_names,
|
154
|
+
's2_group' => s2_group,
|
155
|
+
's2_server_id' => s2_server_id,
|
156
|
+
'target_type' => target_type, # target_type's available values: ISCSI, NFS
|
157
|
+
'volumes' => volumes,
|
158
|
+
},
|
159
|
+
}
|
160
|
+
|
161
|
+
create_s2_shared_target_input_validate input
|
162
|
+
|
163
|
+
request = Request.new input
|
164
|
+
request.send
|
165
|
+
end
|
166
|
+
|
167
|
+
private
|
168
|
+
|
169
|
+
def create_s2_shared_target_input_validate(input)
|
170
|
+
input.deep_stringify_keys!
|
171
|
+
|
172
|
+
unless !input['request_params']['export_name'].nil? && !input['request_params']['export_name'].to_s.empty?
|
173
|
+
raise ParameterRequiredError.new('export_name', 'CreateS2SharedTargetInput')
|
174
|
+
end
|
175
|
+
|
176
|
+
unless !input['request_params']['s2_server_id'].nil? && !input['request_params']['s2_server_id'].to_s.empty?
|
177
|
+
raise ParameterRequiredError.new('s2_server_id', 'CreateS2SharedTargetInput')
|
178
|
+
end
|
179
|
+
|
180
|
+
unless !input['request_params']['target_type'].nil? && !input['request_params']['target_type'].to_s.empty?
|
181
|
+
raise ParameterRequiredError.new('target_type', 'CreateS2SharedTargetInput')
|
182
|
+
end
|
183
|
+
|
184
|
+
if input['request_params']['target_type'] && !input['request_params']['target_type'].to_s.empty?
|
185
|
+
target_type_valid_values = %w(ISCSI NFS)
|
186
|
+
unless target_type_valid_values.include? input['request_params']['target_type'].to_s
|
187
|
+
raise ParameterValueNotAllowedError.new(
|
188
|
+
'target_type',
|
189
|
+
input['request_params']['target_type'],
|
190
|
+
target_type_valid_values,
|
191
|
+
)
|
192
|
+
end
|
193
|
+
end
|
194
|
+
end
|
195
|
+
|
196
|
+
public
|
197
|
+
|
198
|
+
# Documentation URL: https://docs.qingcloud.com/api/vsan/delete_s2_servers.html
|
199
|
+
def delete_s2_servers(s2_servers: [])
|
200
|
+
input = {
|
201
|
+
config: config,
|
202
|
+
properties: properties,
|
203
|
+
api_name: 'DeleteS2Servers',
|
204
|
+
request_method: 'GET',
|
205
|
+
request_params: {
|
206
|
+
's2_servers' => s2_servers,
|
207
|
+
},
|
208
|
+
}
|
209
|
+
|
210
|
+
delete_s2_servers_input_validate input
|
211
|
+
|
212
|
+
request = Request.new input
|
213
|
+
request.send
|
214
|
+
end
|
215
|
+
|
216
|
+
private
|
217
|
+
|
218
|
+
def delete_s2_servers_input_validate(input)
|
219
|
+
input.deep_stringify_keys!
|
220
|
+
|
221
|
+
unless !input['request_params']['s2_servers'].nil? && !input['request_params']['s2_servers'].to_s.empty?
|
222
|
+
raise ParameterRequiredError.new('s2_servers', 'DeleteS2ServersInput')
|
223
|
+
end
|
224
|
+
end
|
225
|
+
|
226
|
+
public
|
227
|
+
|
228
|
+
# Documentation URL: https://docs.qingcloud.com/api/vsan/delete_s2_shared_targets.html
|
229
|
+
def delete_s2_shared_targets(shared_targets: [])
|
230
|
+
input = {
|
231
|
+
config: config,
|
232
|
+
properties: properties,
|
233
|
+
api_name: 'DeleteS2SharedTargets',
|
234
|
+
request_method: 'GET',
|
235
|
+
request_params: {
|
236
|
+
'shared_targets' => shared_targets,
|
237
|
+
},
|
238
|
+
}
|
239
|
+
|
240
|
+
delete_s2_shared_targets_input_validate input
|
241
|
+
|
242
|
+
request = Request.new input
|
243
|
+
request.send
|
244
|
+
end
|
245
|
+
|
246
|
+
private
|
247
|
+
|
248
|
+
def delete_s2_shared_targets_input_validate(input)
|
249
|
+
input.deep_stringify_keys!
|
250
|
+
|
251
|
+
unless !input['request_params']['shared_targets'].nil? && !input['request_params']['shared_targets'].to_s.empty?
|
252
|
+
raise ParameterRequiredError.new('shared_targets', 'DeleteS2SharedTargetsInput')
|
253
|
+
end
|
254
|
+
end
|
255
|
+
|
256
|
+
public
|
257
|
+
|
258
|
+
# Documentation URL: https://docs.qingcloud.com/api/vsan/describle_s2_default_parameters.html
|
259
|
+
def describe_s2_default_parameters(limit: nil, offset: nil, service_type: '', target_type: '')
|
260
|
+
input = {
|
261
|
+
config: config,
|
262
|
+
properties: properties,
|
263
|
+
api_name: 'DescribeS2DefaultParameters',
|
264
|
+
request_method: 'GET',
|
265
|
+
request_params: {
|
266
|
+
'limit' => limit,
|
267
|
+
'offset' => offset,
|
268
|
+
'service_type' => service_type, # service_type's available values: vsan
|
269
|
+
'target_type' => target_type, # target_type's available values: ISCSI
|
270
|
+
},
|
271
|
+
}
|
272
|
+
|
273
|
+
describe_s2_default_parameters_input_validate input
|
274
|
+
|
275
|
+
request = Request.new input
|
276
|
+
request.send
|
277
|
+
end
|
278
|
+
|
279
|
+
private
|
280
|
+
|
281
|
+
def describe_s2_default_parameters_input_validate(input)
|
282
|
+
input.deep_stringify_keys!
|
283
|
+
|
284
|
+
if input['request_params']['service_type'] && !input['request_params']['service_type'].to_s.empty?
|
285
|
+
service_type_valid_values = ['vsan']
|
286
|
+
unless service_type_valid_values.include? input['request_params']['service_type'].to_s
|
287
|
+
raise ParameterValueNotAllowedError.new(
|
288
|
+
'service_type',
|
289
|
+
input['request_params']['service_type'],
|
290
|
+
service_type_valid_values,
|
291
|
+
)
|
292
|
+
end
|
293
|
+
end
|
294
|
+
|
295
|
+
if input['request_params']['target_type'] && !input['request_params']['target_type'].to_s.empty?
|
296
|
+
target_type_valid_values = ['ISCSI']
|
297
|
+
unless target_type_valid_values.include? input['request_params']['target_type'].to_s
|
298
|
+
raise ParameterValueNotAllowedError.new(
|
299
|
+
'target_type',
|
300
|
+
input['request_params']['target_type'],
|
301
|
+
target_type_valid_values,
|
302
|
+
)
|
303
|
+
end
|
304
|
+
end
|
305
|
+
end
|
306
|
+
|
307
|
+
public
|
308
|
+
|
309
|
+
# Documentation URL: https://docs.qingcloud.com/api/vsan/describe_s2_servers.html
|
310
|
+
def describe_s2_servers(limit: nil, offset: nil, s2_servers: [], search_word: '', status: [], tags: [], verbose: nil)
|
311
|
+
input = {
|
312
|
+
config: config,
|
313
|
+
properties: properties,
|
314
|
+
api_name: 'DescribeS2Servers',
|
315
|
+
request_method: 'GET',
|
316
|
+
request_params: {
|
317
|
+
'limit' => limit,
|
318
|
+
'offset' => offset,
|
319
|
+
's2_servers' => s2_servers,
|
320
|
+
'search_word' => search_word,
|
321
|
+
'status' => status,
|
322
|
+
'tags' => tags,
|
323
|
+
'verbose' => verbose,
|
324
|
+
},
|
325
|
+
}
|
326
|
+
|
327
|
+
describe_s2_servers_input_validate input
|
328
|
+
|
329
|
+
request = Request.new input
|
330
|
+
request.send
|
331
|
+
end
|
332
|
+
|
333
|
+
private
|
334
|
+
|
335
|
+
def describe_s2_servers_input_validate(input)
|
336
|
+
input.deep_stringify_keys!
|
337
|
+
end
|
338
|
+
|
339
|
+
public
|
340
|
+
|
341
|
+
# Documentation URL: https://docs.qingcloud.com/api/vsan/describe_s2_shared_targets.html
|
342
|
+
def describe_s2_shared_targets(limit: nil, offset: nil, s2_server_id: '', search_word: '', shared_targets: [], verbose: nil)
|
343
|
+
input = {
|
344
|
+
config: config,
|
345
|
+
properties: properties,
|
346
|
+
api_name: 'DescribeS2SharedTargets',
|
347
|
+
request_method: 'GET',
|
348
|
+
request_params: {
|
349
|
+
'limit' => limit,
|
350
|
+
'offset' => offset,
|
351
|
+
's2_server_id' => s2_server_id,
|
352
|
+
'search_word' => search_word,
|
353
|
+
'shared_targets' => shared_targets,
|
354
|
+
'verbose' => verbose,
|
355
|
+
},
|
356
|
+
}
|
357
|
+
|
358
|
+
describe_s2_shared_targets_input_validate input
|
359
|
+
|
360
|
+
request = Request.new input
|
361
|
+
request.send
|
362
|
+
end
|
363
|
+
|
364
|
+
private
|
365
|
+
|
366
|
+
def describe_s2_shared_targets_input_validate(input)
|
367
|
+
input.deep_stringify_keys!
|
368
|
+
end
|
369
|
+
|
370
|
+
public
|
371
|
+
|
372
|
+
# Documentation URL: https://docs.qingcloud.com/api/vsan/detach_from_s2_shared_target.html
|
373
|
+
def detach_from_s2_shared_target(shared_target: '', volumes: [])
|
374
|
+
input = {
|
375
|
+
config: config,
|
376
|
+
properties: properties,
|
377
|
+
api_name: 'DetachFromS2SharedTarget',
|
378
|
+
request_method: 'GET',
|
379
|
+
request_params: {
|
380
|
+
'shared_target' => shared_target,
|
381
|
+
'volumes' => volumes,
|
382
|
+
},
|
383
|
+
}
|
384
|
+
|
385
|
+
detach_from_s2_shared_target_input_validate input
|
386
|
+
|
387
|
+
request = Request.new input
|
388
|
+
request.send
|
389
|
+
end
|
390
|
+
|
391
|
+
private
|
392
|
+
|
393
|
+
def detach_from_s2_shared_target_input_validate(input)
|
394
|
+
input.deep_stringify_keys!
|
395
|
+
|
396
|
+
unless !input['request_params']['shared_target'].nil? && !input['request_params']['shared_target'].to_s.empty?
|
397
|
+
raise ParameterRequiredError.new('shared_target', 'DetachFromS2SharedTargetInput')
|
398
|
+
end
|
399
|
+
|
400
|
+
unless !input['request_params']['volumes'].nil? && !input['request_params']['volumes'].to_s.empty?
|
401
|
+
raise ParameterRequiredError.new('volumes', 'DetachFromS2SharedTargetInput')
|
402
|
+
end
|
403
|
+
end
|
404
|
+
|
405
|
+
public
|
406
|
+
|
407
|
+
# Documentation URL: https://docs.qingcloud.com/api/vsan/disable_s2_shared_targets.html
|
408
|
+
def disable_s2_shared_targets(shared_targets: [])
|
409
|
+
input = {
|
410
|
+
config: config,
|
411
|
+
properties: properties,
|
412
|
+
api_name: 'DisableS2SharedTargets',
|
413
|
+
request_method: 'GET',
|
414
|
+
request_params: {
|
415
|
+
'shared_targets' => shared_targets,
|
416
|
+
},
|
417
|
+
}
|
418
|
+
|
419
|
+
disable_s2_shared_targets_input_validate input
|
420
|
+
|
421
|
+
request = Request.new input
|
422
|
+
request.send
|
423
|
+
end
|
424
|
+
|
425
|
+
private
|
426
|
+
|
427
|
+
def disable_s2_shared_targets_input_validate(input)
|
428
|
+
input.deep_stringify_keys!
|
429
|
+
|
430
|
+
unless !input['request_params']['shared_targets'].nil? && !input['request_params']['shared_targets'].to_s.empty?
|
431
|
+
raise ParameterRequiredError.new('shared_targets', 'DisableS2SharedTargetsInput')
|
432
|
+
end
|
433
|
+
end
|
434
|
+
|
435
|
+
public
|
436
|
+
|
437
|
+
# Documentation URL: https://docs.qingcloud.com/api/vsan/enable_s2_shared_targets.html
|
438
|
+
def enable_s2_shared_targets(shared_targets: [])
|
439
|
+
input = {
|
440
|
+
config: config,
|
441
|
+
properties: properties,
|
442
|
+
api_name: 'EnableS2SharedTargets',
|
443
|
+
request_method: 'GET',
|
444
|
+
request_params: {
|
445
|
+
'shared_targets' => shared_targets,
|
446
|
+
},
|
447
|
+
}
|
448
|
+
|
449
|
+
enable_s2_shared_targets_input_validate input
|
450
|
+
|
451
|
+
request = Request.new input
|
452
|
+
request.send
|
453
|
+
end
|
454
|
+
|
455
|
+
private
|
456
|
+
|
457
|
+
def enable_s2_shared_targets_input_validate(input)
|
458
|
+
input.deep_stringify_keys!
|
459
|
+
|
460
|
+
unless !input['request_params']['shared_targets'].nil? && !input['request_params']['shared_targets'].to_s.empty?
|
461
|
+
raise ParameterRequiredError.new('shared_targets', 'EnableS2SharedTargetsInput')
|
462
|
+
end
|
463
|
+
end
|
464
|
+
|
465
|
+
public
|
466
|
+
|
467
|
+
# Documentation URL: https://docs.qingcloud.com/api/vsan/modify_s2_server.html
|
468
|
+
def modify_s2_server(description: '', s2_server: '', s2_server_name: '')
|
469
|
+
input = {
|
470
|
+
config: config,
|
471
|
+
properties: properties,
|
472
|
+
api_name: 'ModifyS2Server',
|
473
|
+
request_method: 'GET',
|
474
|
+
request_params: {
|
475
|
+
'description' => description,
|
476
|
+
's2_server' => s2_server,
|
477
|
+
's2_server_name' => s2_server_name,
|
478
|
+
},
|
479
|
+
}
|
480
|
+
|
481
|
+
modify_s2_server_input_validate input
|
482
|
+
|
483
|
+
request = Request.new input
|
484
|
+
request.send
|
485
|
+
end
|
486
|
+
|
487
|
+
private
|
488
|
+
|
489
|
+
def modify_s2_server_input_validate(input)
|
490
|
+
input.deep_stringify_keys!
|
491
|
+
|
492
|
+
unless !input['request_params']['s2_server'].nil? && !input['request_params']['s2_server'].to_s.empty?
|
493
|
+
raise ParameterRequiredError.new('s2_server', 'ModifyS2ServerInput')
|
494
|
+
end
|
495
|
+
end
|
496
|
+
|
497
|
+
public
|
498
|
+
|
499
|
+
# Documentation URL: https://docs.qingcloud.com/api/vsan/modify_s2_shared_target.html
|
500
|
+
def modify_s2_shared_targets(initiator_names: [], operation: '', parameters: [], shared_targets: [])
|
501
|
+
input = {
|
502
|
+
config: config,
|
503
|
+
properties: properties,
|
504
|
+
api_name: 'ModifyS2SharedTargets',
|
505
|
+
request_method: 'GET',
|
506
|
+
request_params: {
|
507
|
+
'initiator_names' => initiator_names,
|
508
|
+
'operation' => operation,
|
509
|
+
'parameters' => parameters,
|
510
|
+
'shared_targets' => shared_targets,
|
511
|
+
},
|
512
|
+
}
|
513
|
+
|
514
|
+
modify_s2_shared_targets_input_validate input
|
515
|
+
|
516
|
+
request = Request.new input
|
517
|
+
request.send
|
518
|
+
end
|
519
|
+
|
520
|
+
private
|
521
|
+
|
522
|
+
def modify_s2_shared_targets_input_validate(input)
|
523
|
+
input.deep_stringify_keys!
|
524
|
+
|
525
|
+
unless !input['request_params']['operation'].nil? && !input['request_params']['operation'].to_s.empty?
|
526
|
+
raise ParameterRequiredError.new('operation', 'ModifyS2SharedTargetsInput')
|
527
|
+
end
|
528
|
+
|
529
|
+
unless !input['request_params']['parameters'].nil? && !input['request_params']['parameters'].to_s.empty?
|
530
|
+
raise ParameterRequiredError.new('parameters', 'ModifyS2SharedTargetsInput')
|
531
|
+
end
|
532
|
+
|
533
|
+
unless !input['request_params']['shared_targets'].nil? && !input['request_params']['shared_targets'].to_s.empty?
|
534
|
+
raise ParameterRequiredError.new('shared_targets', 'ModifyS2SharedTargetsInput')
|
535
|
+
end
|
536
|
+
end
|
537
|
+
|
538
|
+
public
|
539
|
+
|
540
|
+
# Documentation URL: https://docs.qingcloud.com/api/vsan/poweroff_s2_servers.html
|
541
|
+
def power_off_s2_servers(s2_servers: '')
|
542
|
+
input = {
|
543
|
+
config: config,
|
544
|
+
properties: properties,
|
545
|
+
api_name: 'PowerOffS2Servers',
|
546
|
+
request_method: 'GET',
|
547
|
+
request_params: {
|
548
|
+
's2_servers' => s2_servers,
|
549
|
+
},
|
550
|
+
}
|
551
|
+
|
552
|
+
power_off_s2_servers_input_validate input
|
553
|
+
|
554
|
+
request = Request.new input
|
555
|
+
request.send
|
556
|
+
end
|
557
|
+
|
558
|
+
private
|
559
|
+
|
560
|
+
def power_off_s2_servers_input_validate(input)
|
561
|
+
input.deep_stringify_keys!
|
562
|
+
|
563
|
+
unless !input['request_params']['s2_servers'].nil? && !input['request_params']['s2_servers'].to_s.empty?
|
564
|
+
raise ParameterRequiredError.new('s2_servers', 'PowerOffS2ServersInput')
|
565
|
+
end
|
566
|
+
end
|
567
|
+
|
568
|
+
public
|
569
|
+
|
570
|
+
# Documentation URL: https://docs.qingcloud.com/api/vsan/poweron_s2_servers.html
|
571
|
+
def power_on_s2_servers(s2_servers: [])
|
572
|
+
input = {
|
573
|
+
config: config,
|
574
|
+
properties: properties,
|
575
|
+
api_name: 'PowerOnS2Servers',
|
576
|
+
request_method: 'GET',
|
577
|
+
request_params: {
|
578
|
+
's2_servers' => s2_servers,
|
579
|
+
},
|
580
|
+
}
|
581
|
+
|
582
|
+
power_on_s2_servers_input_validate input
|
583
|
+
|
584
|
+
request = Request.new input
|
585
|
+
request.send
|
586
|
+
end
|
587
|
+
|
588
|
+
private
|
589
|
+
|
590
|
+
def power_on_s2_servers_input_validate(input)
|
591
|
+
input.deep_stringify_keys!
|
592
|
+
|
593
|
+
unless !input['request_params']['s2_servers'].nil? && !input['request_params']['s2_servers'].to_s.empty?
|
594
|
+
raise ParameterRequiredError.new('s2_servers', 'PowerOnS2ServersInput')
|
595
|
+
end
|
596
|
+
end
|
597
|
+
|
598
|
+
public
|
599
|
+
|
600
|
+
# Documentation URL: https://docs.qingcloud.com/api/vsan/resize_s2_servers.html
|
601
|
+
def resize_s2_servers(s2_server: '', s2_server_type: nil)
|
602
|
+
input = {
|
603
|
+
config: config,
|
604
|
+
properties: properties,
|
605
|
+
api_name: 'ResizeS2Servers',
|
606
|
+
request_method: 'GET',
|
607
|
+
request_params: {
|
608
|
+
's2_server' => s2_server,
|
609
|
+
's2_server_type' => s2_server_type,
|
610
|
+
},
|
611
|
+
}
|
612
|
+
|
613
|
+
resize_s2_servers_input_validate input
|
614
|
+
|
615
|
+
request = Request.new input
|
616
|
+
request.send
|
617
|
+
end
|
618
|
+
|
619
|
+
private
|
620
|
+
|
621
|
+
def resize_s2_servers_input_validate(input)
|
622
|
+
input.deep_stringify_keys!
|
623
|
+
|
624
|
+
unless !input['request_params']['s2_server'].nil? && !input['request_params']['s2_server'].to_s.empty?
|
625
|
+
raise ParameterRequiredError.new('s2_server', 'ResizeS2ServersInput')
|
626
|
+
end
|
627
|
+
|
628
|
+
unless !input['request_params']['s2_server_type'].nil? && !input['request_params']['s2_server_type'].to_s.empty?
|
629
|
+
raise ParameterRequiredError.new('s2_server_type', 'ResizeS2ServersInput')
|
630
|
+
end
|
631
|
+
end
|
632
|
+
|
633
|
+
public
|
634
|
+
|
635
|
+
# Documentation URL: https://docs.qingcloud.com/api/vsan/update_s2_servers.html
|
636
|
+
def update_s2_servers(s2_servers: [])
|
637
|
+
input = {
|
638
|
+
config: config,
|
639
|
+
properties: properties,
|
640
|
+
api_name: 'UpdateS2Servers',
|
641
|
+
request_method: 'GET',
|
642
|
+
request_params: {
|
643
|
+
's2_servers' => s2_servers,
|
644
|
+
},
|
645
|
+
}
|
646
|
+
|
647
|
+
update_s2_servers_input_validate input
|
648
|
+
|
649
|
+
request = Request.new input
|
650
|
+
request.send
|
651
|
+
end
|
652
|
+
|
653
|
+
private
|
654
|
+
|
655
|
+
def update_s2_servers_input_validate(input)
|
656
|
+
input.deep_stringify_keys!
|
657
|
+
|
658
|
+
unless !input['request_params']['s2_servers'].nil? && !input['request_params']['s2_servers'].to_s.empty?
|
659
|
+
raise ParameterRequiredError.new('s2_servers', 'UpdateS2ServersInput')
|
660
|
+
end
|
661
|
+
end
|
662
|
+
|
663
|
+
public
|
664
|
+
end
|
665
|
+
end
|
666
|
+
end
|