1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
# frozen_string_literal: true
module Fog
module Compute
class Aliyun
class Real
# {Aliyun API Reference}[https://docs.aliyun.com/?spm=5176.100054.3.1.DGkmH7#/pub/ecs/open-api/instance&describeinstances]
def list_servers(options = {})
_action = 'DescribeInstances'
_sigNonce = randonStr
_time = Time.new.utc
_parameters = defaultParameters(_action, _sigNonce, _time)
_query_parameters = defaultAliyunQueryParameters(_action, _sigNonce, _time)
_InstanceId = options[:instanceId]
_VpcId = options[:vpcId]
_SecurityGroupId = options[:securityGroupId]
_PageNumber = options[:pageNumber]
_PageSize = options[:pageSize]
unless _InstanceId.nil?
_InstanceStr = "[\"#{_InstanceId}\"]"
_parameters['InstanceIds'] = _InstanceStr
_query_parameters[:InstanceIds] = _InstanceStr
end
unless _VpcId.nil?
_parameters['VpcId'] = _VpcId
_query_parameters[:VpcId] = _VpcId
end
unless _SecurityGroupId.nil?
_parameters['SecurityGroupId'] = _SecurityGroupId
_query_parameters[:SecurityGroupId] = _SecurityGroupId
end
unless _PageNumber.nil?
_parameters['PageNumber'] = _PageNumber
_query_parameters[:PageNumber] = _PageNumber
end
_PageSize ||= '50'
_parameters['PageSize'] = _PageSize
_query_parameters[:PageSize] = _PageSize
_signature = sign_without_encoding(@aliyun_accesskey_secret, _parameters)
_query_parameters[:Signature] = _signature
request(
expects: [200, 203],
method: 'GET',
query: _query_parameters
)
end
end
class Mock
def list_servers(_options = {})
response = Excon::Response.new
data = list_servers_detail.body['servers']
servers = []
for server in data
servers << server.select { |key, _value| %w[id name links].include?(key) }
end
response.status = [200, 203][rand(1)]
response.body = { 'servers' => servers }
response
end
end
end
end
end
|