class Fog::Compute::Aliyun::Real
Attributes
Initialize connection to ECS
Notes¶ ↑
options parameter must include values for :aliyun_url, :aliyun_accesskey_id, :aliyun_secret_access_key, :aliyun_region_id and :aliyun_zone_id in order to create a connection. if you haven't set these values in the configuration file.
Examples¶ ↑
sdb = Fog::Compute.new(:provider=>'aliyun', :aliyun_accesskey_id => your_:aliyun_accesskey_id, :aliyun_secret_access_key => your_aliyun_secret_access_key )
Parameters¶ ↑
-
options<~Hash> - config arguments for connection. Defaults to {}.
Returns¶ ↑
-
ECS object with connection to aliyun.
Public Class Methods
# File lib/fog/aliyun/compute.rb, line 261 def initialize(options={}) #initialize the parameters @aliyun_url = options[:aliyun_url] @aliyun_accesskey_id = options[:aliyun_accesskey_id] @aliyun_accesskey_secret = options[:aliyun_accesskey_secret] @aliyun_region_id = options[:aliyun_region_id] @aliyun_zone_id = options[:aliyun_zone_id] #check for the parameters missing_credentials = Array.new missing_credentials << :aliyun_accesskey_id unless @aliyun_accesskey_id missing_credentials << :aliyun_accesskey_secret unless @aliyun_accesskey_secret missing_credentials << :aliyun_region_id unless @aliyun_region_id missing_credentials << :aliyun_url unless @aliyun_url missing_credentials << :aliyun_zone_id unless @aliyun_zone_id raise ArgumentError, "Missing required arguments: #{missing_credentials.join(', ')}" unless missing_credentials.empty? @connection_options = options[:connection_options] || {} uri = URI.parse(@aliyun_url) @host = uri.host @path = uri.path @port = uri.port @scheme = uri.scheme @persistent = options[:persistent] || false @connection = Fog::Core::Connection.new("#{@scheme}://#{@host}:#{@port}", @persistent, @connection_options) end
Public Instance Methods
Allocate an eip IP address.
Notes¶ ↑
The new eip Ip address would be avalable The allocated eip Ip address can only associate to the instance of the vpc in the same region Now the eip can support ICMP,TCP,UDP
Parameters¶ ↑
-
server_id<~String> - id of the instance
-
allocationId<~String> - id of the EIP
Returns¶ ↑
-
response<~Excon::Response>:
-
body<~Hash>:
-
'EipAddress'<~String> - the allocated eip address
-
'AllocationId'<~String> - the instance id on the public ip
-
'RequestId'<~String> - Id of the request
-
-
# File lib/fog/aliyun/requests/compute/allocate_eip_address.rb, line 22 def allocate_eip_address(options={}) _action = 'AllocateEipAddress' _sigNonce = randonStr() _time = Time.new.utc _parameters = defalutParameters(_action, _sigNonce, _time) _pathURL = defaultAliyunUri(_action, _sigNonce, _time) #optional parameters _Bandwidth = options[:bandwidth] if _Bandwidth _parameters['Bandwidth']=_Bandwidth _pathURL += '&Bandwidth='+_Bandwidth end _InternetChargeType = options[:internet_charge_type] unless _InternetChargeType _InternetChargeType = 'PayByTraffic' end _parameters['InternetChargeType']=_InternetChargeType _pathURL += '&InternetChargeType='+_InternetChargeType _signature = sign(@aliyun_accesskey_secret, _parameters) _pathURL += '&Signature='+_signature request( :expects => [200, 204], :method => 'GET', :path => _pathURL ) end
Allocate an avalable public IP address to the given instance.
Parameters¶ ↑
-
server_id<~String> - id of the instance
Returns¶ ↑
-
response<~Excon::Response>:
-
body<~Hash>:
-
'IpAddress'<~String> - The allocated ip address
-
'RequestId'<~String> - Id of the request
-
-
# File lib/fog/aliyun/requests/compute/allocate_public_ip_address.rb, line 16 def allocate_public_ip_address(server_id) _action = 'AllocatePublicIpAddress' _sigNonce = randonStr() _time = Time.new.utc _parameters = defalutParameters(_action, _sigNonce, _time) _pathURL = defaultAliyunUri(_action, _sigNonce, _time) _parameters['InstanceId']=server_id _pathURL += '&InstanceId='+server_id _signature = sign(@aliyun_accesskey_secret, _parameters) _pathURL += '&Signature='+_signature request( :expects => [200, 204], :method => 'GET', :path => _pathURL ) end
Associate an avalable eip IP address to the given instance.
Parameters¶ ↑
-
server_id<~String> - id of the instance
-
allocationId<~String> - id of the EIP
Returns¶ ↑
-
response<~Excon::Response>:
-
body<~Hash>:
-
'RequestId'<~String> - Id of the request
-
-
# File lib/fog/aliyun/requests/compute/associate_eip_address.rb, line 16 def associate_eip_address(server_id, allocationId,options={}) _action = 'AssociateEipAddress' _sigNonce = randonStr() _time = Time.new.utc type=options['instance_type'] _parameters = defalutParameters(_action, _sigNonce, _time) _pathURL = defaultAliyunUri(_action, _sigNonce, _time) _parameters['InstanceId'] = server_id _pathURL += '&InstanceId='+server_id _parameters['AllocationId'] = allocationId _pathURL += '&AllocationId='+allocationId if type _parameters['InstanceType'] = type _pathURL += 'InstanceType='+type end _signature = sign(@aliyun_accesskey_secret, _parameters) _pathURL += '&Signature='+_signature request( :expects => [200, 204], :method => 'GET', :path => _pathURL ) end
Mount a disk.
Parameters¶ ↑
-
instanceId<~String> - id of the instance
-
diskId<~String> - id of the disk
-
options<~hash>
* :deleteWithInstance - if 'true',the disk will be relese with the instance.else, won't * :device - if nil, the system will default allocate from /dev/xvdb to /dev/xvdz. default nil
Returns¶ ↑
-
response<~Excon::Response>:
-
body<~Hash>:
-
'RequestId'<~String> - Id of the request
-
-
# File lib/fog/aliyun/requests/compute/attach_disk.rb, line 19 def attach_disk(instanceId, diskId, options={}) action = 'AttachDisk' sigNonce = randonStr() time = Time.new.utc parameters = defalutParameters(action, sigNonce, time) pathUrl = defaultAliyunUri(action, sigNonce, time) parameters["InstanceId"] = instanceId pathUrl += '&InstanceId=' pathUrl += instanceId parameters["DiskId"] = diskId pathUrl += '&DiskId=' pathUrl += diskId deleteWithInstance = options[:deleteWithInstance] device = options[:device] unless deleteWithInstance deleteWithInstance = 'true' end parameters["DeleteWithInstance"] = deleteWithInstance pathUrl += '&DeleteWithInstance=' pathUrl += deleteWithInstance if device parameters["Device"] = device pathUrl += '&Device=' pathUrl += URI.encode(device,'/[^!*\()\;?:@#&%=+$,{}[]<>`" ') end signature = sign(@aliyun_accesskey_secret, parameters) pathUrl += '&Signature=' pathUrl += signature request( :expects => [200, 203], :method => 'GET', :path => pathUrl ) end
Create a disk with assigned size.
Parameters¶ ↑
-
size<~String> - the size of the disk (GB).–cloud:5~2000GB,cloud_efficiency: 20~2048GB,cloud_ssd:20~1024GB
-
options<~hash>
* :name - The name of the disk,default nil. If not nil, it must start with english or chinise character. The length should be within [2,128]. It can contain digits,'.','_' or '-'.It shouldn't start with 'http://' or 'https://' * :description - The name of the disk,default nil. If not nil, the length should be within [2,255].It shouldn't start with 'http://' or 'https://' * :category - Default 'cloud'. can be set to 'cloud','cloud_efficiency' or 'cloud_ssd'
Returns¶ ↑
-
response<~Excon::Response>:
-
body<~Hash>:
-
'RequestId'<~String> - Id of the request
-
'DiskId'<~String> - Id of the created disk
-
-
# File lib/fog/aliyun/requests/compute/create_disk.rb, line 21 def create_disk(size, options={}) action = 'CreateDisk' sigNonce = randonStr() time = Time.new.utc parameters = defalutParameters(action, sigNonce, time) pathUrl = defaultAliyunUri(action, sigNonce, time) parameters["ZoneId"] = @aliyun_zone_id pathUrl += '&ZoneId=' pathUrl += @aliyun_zone_id parameters["Size"] = size pathUrl += '&Size=' pathUrl += size name = options[:name] desc = options[:description] category = options[:category] if name parameters["DiskName"] = name pathUrl += '&DiskName=' pathUrl += name end if desc parameters["Description"] = desc pathUrl += '&Description=' pathUrl += desc end if category parameters["DiskCategory"] = category pathUrl += 'DiskCategory' pathUrl += category end signature = sign(@aliyun_accesskey_secret, parameters) pathUrl += '&Signature=' pathUrl += signature request( :expects => [200, 203], :method => 'GET', :path => pathUrl ).merge(options) end
Create a disk By the snapshot with given snapshot_id.
Parameters¶ ↑
-
snapshotId<~String> - the snapshot_id
-
options<~hash>
* :name - The name of the disk,default nil. If not nil, it must start with english or chinise character. The length should be within [2,128]. It can contain digits,'.','_' or '-'.It shouldn't start with 'http://' or 'https://' * :description - The name of the disk,default nil. If not nil, the length should be within [2,255].It shouldn't start with 'http://' or 'https://' * :category - Default 'cloud'. can be set to 'cloud','cloud_efficiency' or 'cloud_ssd'
Returns¶ ↑
-
response<~Excon::Response>:
-
body<~Hash>:
-
'RequestId'<~String> - Id of the request
-
'DiskId'<~String> - Id of the created disk
-
-
# File lib/fog/aliyun/requests/compute/create_disk.rb, line 87 def create_disk_by_snapshot(snapshotId, options={}) action = 'CreateDisk' sigNonce = randonStr() time = Time.new.utc parameters = defalutParameters(action, sigNonce, time) pathUrl = defaultAliyunUri(action, sigNonce, time) parameters["ZoneId"] = @aliyun_zone_id pathUrl += '&ZoneId=' pathUrl += @aliyun_zone_id parameters["SnapshotId"] = snapshotId pathUrl += '&SnapshotId=' pathUrl += snapshotId name = options[:name] desc = options[:description] category = options[:category] if name parameters["DiskName"] = name pathUrl += '&DiskName=' pathUrl += name end if desc parameters["Description"] = desc pathUrl += '&Description=' pathUrl += desc end if category parameters["DiskCategory"] = category pathUrl += 'DiskCategory' pathUrl += category end signature = sign(@aliyun_accesskey_secret, parameters) pathUrl += '&Signature=' pathUrl += signature request( :expects => [200, 203], :method => 'GET', :path => pathUrl ) end
# File lib/fog/aliyun/requests/compute/create_image.rb, line 6 def create_image(snapshotId, options={}) action = 'CreateImage' sigNonce = randonStr() time = Time.new.utc parameters = defalutParameters(action, sigNonce, time) pathUrl = defaultAliyunUri(action, sigNonce, time) parameters["SnapshotId"] = snapshotId pathUrl += '&SnapshotId=' pathUrl += snapshotId name = options[:name] if name parameters["ImageName"] = name pathUrl += '&ImageName=' pathUrl += name end desc = options[:description] if desc parameters["Description"] = desc pathUrl += '&Description=' pathUrl += desc end version = options[:version] if version parameters["ImageVersion"] = version pathUrl += '&ImageVersion=' pathUrl += version end signature = sign(@aliyun_accesskey_secret, parameters) pathUrl += '&Signature=' pathUrl += signature request( :expects => [200, 203], :method => 'GET', :path => pathUrl ) end
# File lib/fog/aliyun/requests/compute/create_security_group.rb, line 6 def create_security_group(options={}) action = 'CreateSecurityGroup' sigNonce = randonStr() time = Time.new.utc parameters = defalutParameters(action, sigNonce, time) pathUrl = defaultAliyunUri(action, sigNonce, time) name = options[:name] desc = options[:description] vpcid = options[:vpcId] if name parameters["SecurityGroupName"] = name pathUrl += '&SecurityGroupName=' pathUrl += name end if desc parameters["Description"] = desc pathUrl += '&Description=' pathUrl += desc end if vpcid parameters["VpcId"] = vpcid pathUrl += '&VpcId=' pathUrl += vpcid end signature = sign(@aliyun_accesskey_secret, parameters) pathUrl += '&Signature=' pathUrl += signature request( :expects => [200, 203], :method => 'GET', :path => pathUrl ) end
# File lib/fog/aliyun/requests/compute/create_security_group_egress_ip_rule.rb, line 6 def create_security_group_egress_ip_rule(securitygroup_id,destCidrIp, nicType, option={}) action = 'AuthorizeSecurityGroupEgress' sigNonce = randonStr() time = Time.new.utc parameters = defalutParameters(action, sigNonce, time) pathUrl = defaultAliyunUri(action, sigNonce, time) parameters["SecurityGroupId"] = securitygroup_id pathUrl += '&SecurityGroupId=' pathUrl += securitygroup_id parameters["DestCidrIp"] = destCidrIp pathUrl += '&DestCidrIp=' pathUrl += URI.encode(destCidrIp,'/[^!*\()\;?:@#&%=+$,{}[]<>`" ') unless nicType nicType='intranet' end parameters["NicType"] = nicType pathUrl += '&NicType=' pathUrl += nicType portRange = option[:portRange] unless portRange portRange = '-1/-1' end parameters["PortRange"] = portRange pathUrl += '&PortRange=' pathUrl += URI.encode(portRange,'/[^!*\()\;?:@#&%=+$,{}[]<>`" ') protocol = option[:protocol] unless protocol protocol = 'all' end parameters["IpProtocol"] = protocol pathUrl += '&IpProtocol=' pathUrl += protocol policy = option[:policy] unless policy policy = 'accept' end parameters["Policy"] = policy pathUrl += '&Policy=' pathUrl += policy priority = option[:priority] unless priority priority = '1' end parameters["Priority"] = priority pathUrl += '&Priority=' pathUrl += priority signature = sign(@aliyun_accesskey_secret, parameters) pathUrl += '&Signature=' pathUrl += signature request( :expects => [200, 203], :method => 'GET', :path => pathUrl ) end
# File lib/fog/aliyun/requests/compute/create_security_group_egress_sg_rule.rb, line 6 def create_security_group_egress_sg_rule(securitygroup_id, dest_group_id, option={}) action = 'AuthorizeSecurityGroupEgress' sigNonce = randonStr() time = Time.new.utc parameters = defalutParameters(action, sigNonce, time) pathUrl = defaultAliyunUri(action, sigNonce, time) parameters["SecurityGroupId"] = securitygroup_id pathUrl += '&SecurityGroupId=' pathUrl += securitygroup_id parameters["DestGroupId"] = dest_group_id pathUrl += '&DestGroupId=' pathUrl += dest_group_id nicType = 'intranet' parameters["NicType"] = nicType pathUrl += '&NicType=' pathUrl += nicType portRange = option[:portRange] unless portRange portRange = '-1/-1' end parameters["PortRange"] = portRange pathUrl += '&PortRange=' pathUrl += URI.encode(portRange,'/[^!*\()\;?:@#&%=+$,{}[]<>`" ') protocol = option[:protocol] unless protocol protocol = 'all' end parameters["IpProtocol"] = protocol pathUrl += '&IpProtocol=' pathUrl += protocol destGOAccount = option[:destGroupOwnerAccount] if sourceGOAccount parameters["DestGroupOwnerAccount"]=destGOAccount pathUrl += '&DestGroupOwnerAccount=' pathUrl += destGOAccount end policy = option[:policy] unless policy policy = 'accept' end parameters["Policy"] = policy pathUrl += '&Policy=' pathUrl += policy priority = option[:priority] unless priority priority = '1' end parameters["Priority"] = priority pathUrl += '&Priority=' pathUrl += priority signature = sign(@aliyun_accesskey_secret, parameters) pathUrl += '&Signature=' pathUrl += signature request( :expects => [200, 203], :method => 'GET', :path => pathUrl ) end
# File lib/fog/aliyun/requests/compute/create_security_group_ip_rule.rb, line 6 def create_security_group_ip_rule(securitygroup_id,sourceCidrIp, nicType, option={}) action = 'AuthorizeSecurityGroup' sigNonce = randonStr() time = Time.new.utc parameters = defalutParameters(action, sigNonce, time) pathUrl = defaultAliyunUri(action, sigNonce, time) parameters["SecurityGroupId"] = securitygroup_id pathUrl += '&SecurityGroupId=' pathUrl += securitygroup_id parameters["SourceCidrIp"] = sourceCidrIp pathUrl += '&SourceCidrIp=' pathUrl += URI.encode(sourceCidrIp,'/[^!*\()\;?:@#&%=+$,{}[]<>`" ') unless nicType nicType='intranet' end parameters["NicType"] = nicType pathUrl += '&NicType=' pathUrl += nicType portRange = option[:portRange] unless portRange portRange = '-1/-1' end parameters["PortRange"] = portRange pathUrl += '&PortRange=' pathUrl += URI.encode(portRange,'/[^!*\()\;?:@#&%=+$,{}[]<>`" ') protocol = option[:protocol] unless protocol protocol = 'all' end parameters["IpProtocol"] = protocol pathUrl += '&IpProtocol=' pathUrl += protocol policy = option[:policy] unless policy policy = 'accept' end parameters["Policy"] = policy pathUrl += '&Policy=' pathUrl += policy priority = option[:priority] unless priority priority = '1' end parameters["Priority"] = priority pathUrl += '&Priority=' pathUrl += priority signature = sign(@aliyun_accesskey_secret, parameters) pathUrl += '&Signature=' pathUrl += signature request( :expects => [200, 203], :method => 'GET', :path => pathUrl ) end
# File lib/fog/aliyun/requests/compute/create_security_group_sg_rule.rb, line 6 def create_security_group_sg_rule(securitygroup_id, source_securitygroup_id, option={}) action = 'AuthorizeSecurityGroup' sigNonce = randonStr() time = Time.new.utc parameters = defalutParameters(action, sigNonce, time) pathUrl = defaultAliyunUri(action, sigNonce, time) parameters["SecurityGroupId"] = securitygroup_id pathUrl += '&SecurityGroupId=' pathUrl += securitygroup_id parameters["SourceGroupId"] = source_securitygroup_id pathUrl += '&SourceGroupId=' pathUrl += source_securitygroup_id nicType = 'intranet' parameters["NicType"] = nicType pathUrl += '&NicType=' pathUrl += nicType portRange = option[:portRange] unless portRange portRange = '-1/-1' end parameters["PortRange"] = portRange pathUrl += '&PortRange=' pathUrl += URI.encode(portRange,'/[^!*\()\;?:@#&%=+$,{}[]<>`" ') protocol = option[:protocol] unless protocol protocol = 'all' end parameters["IpProtocol"] = protocol pathUrl += '&IpProtocol=' pathUrl += protocol sourceGOAccount = option[:sourceGroupOwnerAccount] if sourceGOAccount parameters["SourceGroupOwnerAccount"]=sourceGOAccount pathUrl += '&SourceGroupOwnerAccount=' pathUrl += sourceGOAccount end policy = option[:policy] unless policy policy = 'accept' end parameters["Policy"] = policy pathUrl += '&Policy=' pathUrl += policy priority = option[:priority] unless priority priority = '1' end parameters["Priority"] = priority pathUrl += '&Priority=' pathUrl += priority signature = sign(@aliyun_accesskey_secret, parameters) pathUrl += '&Signature=' pathUrl += signature request( :expects => [200, 203], :method => 'GET', :path => pathUrl ) end
# File lib/fog/aliyun/requests/compute/create_server.rb, line 6 def create_server(imageId, securityGroupId, instanceType, options = {}) _action = 'CreateInstance' _sigNonce = randonStr() _time = Time.new.utc _parameters = defalutParameters(_action, _sigNonce, _time) _pathURL = defaultAliyunUri(_action, _sigNonce, _time) _parameters['ImageId'] = imageId _pathURL += '&ImageId='+imageId _parameters['InstanceType'] = instanceType _pathURL += '&InstanceType='+instanceType _parameters['SecurityGroupId'] = securityGroupId _pathURL += '&SecurityGroupId='+securityGroupId _ZoneId = options[:ZoneId] if _ZoneId _parameters['ZoneId']=_ZoneId _pathURL += '&ZoneId='+_ZoneId end _InstanceName = options[:InstanceName] if _InstanceName _parameters['InstanceName']=_InstanceName _pathURL += '&InstanceName='+_InstanceName end _Description = options[:Description] if _Description _parameters['Description']=_Description _pathURL += '&Description='+_Description end _InternetChargeType = options[:InternetChargeType] if _InternetChargeType _parameters['InternetChargeType']=_InternetChargeType _pathURL += '&InternetChargeType='+_InternetChargeType end _HostName = options[:HostName] if _HostName _parameters['HostName']=_HostName _pathURL += '&HostName='+_HostName end _Password = options[:Password] if _Password _parameters['Password']=_Password _pathURL += '&Password='+_Password end _VSwitchId = options[:VSwitchId] _PrivateIpAddress= options[:PrivateIpAddress] if _VSwitchId _parameters['VSwitchId']=_VSwitchId _pathURL += '&VSwitchId='+_VSwitchId if _PrivateIpAddress _parameters['PrivateIpAddress']=_PrivateIpAddress _pathURL += '&PrivateIpAddress='+_PrivateIpAddress end else _InternetMaxBandwidthIn = options[:InternetMaxBandwidthIn] if _InternetMaxBandwidthIn _parameters['InternetMaxBandwidthIn']=_InternetMaxBandwidthIn _pathURL += '&InternetMaxBandwidthIn='+_InternetMaxBandwidthIn end _InternetMaxBandwidthOut = options[:InternetMaxBandwidthOut] if _InternetMaxBandwidthOut _parameters['InternetMaxBandwidthOut']=_InternetMaxBandwidthOut _pathURL += '&InternetMaxBandwidthOut='+_InternetMaxBandwidthOut end end _signature = sign(@aliyun_accesskey_secret, _parameters) _pathURL += '&Signature='+_signature request( :expects => [200, 203], :method => 'GET', :path => _pathURL ) end
# File lib/fog/aliyun/requests/compute/create_snapshot.rb, line 5 def create_snapshot(diskId, options={}) # {Aliyun API Reference}[https://docs.aliyun.com/?spm=5176.100054.3.1.DGkmH7#/pub/ecs/open-api/snapshot&createsnapshot] action = 'CreateSnapshot' sigNonce = randonStr() time = Time.new.utc parameters = defalutParameters(action, sigNonce, time) pathUrl = defaultAliyunUri(action, sigNonce, time) parameters["DiskId"] = diskId pathUrl += '&DiskId=' pathUrl += diskId name = options[:name] desc = options[:description] if name parameters["SnapshotName"] = name pathUrl += '&SnapshotName=' pathUrl += name end if desc parameters["Description"] = desc pathUrl += '&Description=' pathUrl += desc end signature = sign(@aliyun_accesskey_secret, parameters) pathUrl += '&Signature=' pathUrl += signature request( :expects => [200, 203], :method => 'GET', :path => pathUrl ) end
# File lib/fog/aliyun/requests/compute/create_vpc.rb, line 5 def create_vpc(cidrBlock, options={}) # {Aliyun API Reference}[https://docs.aliyun.com/?spm=5176.100054.3.1.DGkmH7#/pub/ecs/open-api/vpc&createvpc] action = 'CreateVpc' sigNonce = randonStr() time = Time.new.utc parameters = defalutParameters(action, sigNonce, time) pathUrl = defaultAliyunUri(action, sigNonce, time) parameters["CidrBlock"] = cidrBlock pathUrl += '&CidrBlock=' pathUrl += URI.encode(cidrBlock,'/[^!*\()\;?:@#&%=+$,{}[]<>`" ') name = options[:name] desc = options[:description] if name parameters["VpcName"] = name pathUrl += '&VpcName=' pathUrl += name end if desc parameters["Description"] = desc pathUrl += '&Description=' pathUrl += desc end signature = sign(@aliyun_accesskey_secret, parameters) pathUrl += '&Signature=' pathUrl += signature request( :expects => [200, 203], :method => 'GET', :path => pathUrl ) end
# File lib/fog/aliyun/requests/compute/create_vswitch.rb, line 5 def create_vswitch(vpcId, cidrBlock, options={}) # {Aliyun API Reference}[https://docs.aliyun.com/?spm=5176.100054.3.1.DGkmH7#/pub/ecs/open-api/vswitch&createvswitch] action = 'CreateVSwitch' sigNonce = randonStr() time = Time.new.utc parameters = defalutParameters(action, sigNonce, time) pathUrl = defaultAliyunUri(action, sigNonce, time) parameters["VpcId"] = vpcId pathUrl += '&VpcId=' pathUrl += vpcId parameters["CidrBlock"] = cidrBlock pathUrl += '&CidrBlock=' pathUrl += URI.encode(cidrBlock,'/[^!*\()\;?:@#&%=+$,{}[]<>`" ') parameters["ZoneId"] = @aliyun_zone_id pathUrl += '&ZoneId=' pathUrl += @aliyun_zone_id name = options[:name] desc = options[:description] if name parameters["VSwitchName"] = name pathUrl += '&VSwitchName=' pathUrl += name end if desc parameters["Description"] = desc pathUrl += '&Description=' pathUrl += desc end signature = sign(@aliyun_accesskey_secret, parameters) pathUrl += '&Signature=' pathUrl += signature request( :expects => [200, 203], :method => 'GET', :path => pathUrl ) end
operation compute–collection of default parameters
# File lib/fog/aliyun/compute.rb, line 339 def defalutParameters(action, sigNonce, time) parTimeFormat = time.strftime("%Y-%m-%dT%H:%M:%SZ") para = { 'Format'=>'JSON', 'Version'=>'2014-05-26', 'Action'=>action, 'AccessKeyId'=>@aliyun_accesskey_id, 'SignatureVersion'=>'1.0', 'SignatureMethod'=>'HMAC-SHA1', 'SignatureNonce'=>sigNonce, 'RegionId'=>@aliyun_region_id, 'Timestamp'=>parTimeFormat}; return para end
operation compute– default URL
# File lib/fog/aliyun/compute.rb, line 324 def defaultAliyunUri(action, sigNonce, time) parTimeFormat = time.strftime("%Y-%m-%dT%H:%M:%SZ") urlTimeFormat = URI.encode(parTimeFormat,':') return '?Format=JSON&AccessKeyId='+@aliyun_accesskey_id+'&Action='+action+'&SignatureMethod=HMAC-SHA1&RegionId='+@aliyun_region_id+'&SignatureNonce='+sigNonce+'&SignatureVersion=1.0&Version=2014-05-26&Timestamp='+urlTimeFormat end
Delete a disk By the given id.
Parameters¶ ↑
-
diskId<~String> - the disk_id
Returns¶ ↑
-
response<~Excon::Response>:
-
body<~Hash>:
-
'RequestId'<~String> - Id of the request
-
-
# File lib/fog/aliyun/requests/compute/delete_disk.rb, line 16 def delete_disk(diskId) action = 'DeleteDisk' sigNonce = randonStr() time = Time.new.utc parameters = defalutParameters(action, sigNonce, time) pathUrl = defaultAliyunUri(action, sigNonce, time) parameters["DiskId"] = diskId pathUrl += '&DiskId=' pathUrl += diskId signature = sign(@aliyun_accesskey_secret, parameters) pathUrl += '&Signature=' pathUrl += signature request( :expects => [200, 203], :method => 'GET', :path => pathUrl ) end
# File lib/fog/aliyun/requests/compute/delete_image.rb, line 6 def delete_image(imageId) action = 'DeleteImage' sigNonce = randonStr() time = Time.new.utc parameters = defalutParameters(action, sigNonce, time) pathUrl = defaultAliyunUri(action, sigNonce, time) parameters["ImageId"] = imageId pathUrl += '&ImageId=' pathUrl += imageId signature = sign(@aliyun_accesskey_secret, parameters) pathUrl += '&Signature=' pathUrl += signature request( :expects => [200, 203], :method => 'GET', :path => pathUrl ) end
# File lib/fog/aliyun/requests/compute/delete_security_group.rb, line 5 def delete_security_group(security_group_id) # {Aliyun API Reference}[https://docs.aliyun.com/?spm=5176.100054.3.1.DGkmH7#/pub/ecs/open-api/securitygroup&deletesecuritygroup] action = 'DeleteSecurityGroup' sigNonce = randonStr() time = Time.new.utc parameters = defalutParameters(action, sigNonce, time) pathUrl = defaultAliyunUri(action, sigNonce, time) if security_group_id parameters["SecurityGroupId"] = security_group_id pathUrl += '&SecurityGroupId=' pathUrl += security_group_id else raise ArgumentError, "Missing required securyti id " end signature = sign(@aliyun_accesskey_secret, parameters) pathUrl += '&Signature=' pathUrl += signature request( :expects => [200, 203], :method => 'GET', :path => pathUrl ) end
# File lib/fog/aliyun/requests/compute/delete_security_group_egress_ip_rule.rb, line 6 def delete_security_group_egress_ip_rule(securitygroup_id,destCidrIp, nicType, option={}) action = 'RevokeSecurityGroupEgress' sigNonce = randonStr() time = Time.new.utc parameters = defalutParameters(action, sigNonce, time) pathUrl = defaultAliyunUri(action, sigNonce, time) parameters["SecurityGroupId"] = securitygroup_id pathUrl += '&SecurityGroupId=' pathUrl += securitygroup_id parameters["DestCidrIp"] = destCidrIp pathUrl += '&DestCidrIp=' pathUrl += URI.encode(destCidrIp,'/[^!*\()\;?:@#&%=+$,{}[]<>`" ') unless nicType nicType='intranet' end parameters["NicType"] = nicType pathUrl += '&NicType=' pathUrl += nicType portRange = option[:portRange] unless portRange portRange = '-1/-1' end parameters["PortRange"] = portRange pathUrl += '&PortRange=' pathUrl += URI.encode(portRange,'/[^!*\()\;?:@#&%=+$,{}[]<>`" ') protocol = option[:protocol] unless protocol protocol = 'all' end parameters["IpProtocol"] = protocol pathUrl += '&IpProtocol=' pathUrl += protocol policy = option[:policy] unless policy policy = 'accept' end parameters["Policy"] = policy pathUrl += '&Policy=' pathUrl += policy priority = option[:priority] unless priority priority = '1' end parameters["Priority"] = priority pathUrl += '&Priority=' pathUrl += priority signature = sign(@aliyun_accesskey_secret, parameters) pathUrl += '&Signature=' pathUrl += signature request( :expects => [200, 203], :method => 'GET', :path => pathUrl ) end
# File lib/fog/aliyun/requests/compute/delete_security_group_egress_sg_rule.rb, line 6 def delete_security_group_egress_sg_rule(securitygroup_id, dest_group_id, option={}) action = 'RevokeSecurityGroupEgress' sigNonce = randonStr() time = Time.new.utc parameters = defalutParameters(action, sigNonce, time) pathUrl = defaultAliyunUri(action, sigNonce, time) parameters["SecurityGroupId"] = securitygroup_id pathUrl += '&SecurityGroupId=' pathUrl += securitygroup_id parameters["DestGroupId"] = dest_group_id pathUrl += '&DestGroupId=' pathUrl += dest_group_id nicType = 'intranet' parameters["NicType"] = nicType pathUrl += '&NicType=' pathUrl += nicType portRange = option[:portRange] unless portRange portRange = '-1/-1' end parameters["PortRange"] = portRange pathUrl += '&PortRange=' pathUrl += URI.encode(portRange,'/[^!*\()\;?:@#&%=+$,{}[]<>`" ') protocol = option[:protocol] unless protocol protocol = 'all' end parameters["IpProtocol"] = protocol pathUrl += '&IpProtocol=' pathUrl += protocol destGOAccount = option[:destGroupOwnerAccount] if sourceGOAccount parameters["DestGroupOwnerAccount"]=destGOAccount pathUrl += '&DestGroupOwnerAccount=' pathUrl += destGOAccount end policy = option[:policy] unless policy policy = 'accept' end parameters["Policy"] = policy pathUrl += '&Policy=' pathUrl += policy priority = option[:priority] unless priority priority = '1' end parameters["Priority"] = priority pathUrl += '&Priority=' pathUrl += priority signature = sign(@aliyun_accesskey_secret, parameters) pathUrl += '&Signature=' pathUrl += signature request( :expects => [200, 203], :method => 'GET', :path => pathUrl ) end
# File lib/fog/aliyun/requests/compute/delete_security_group_ip_rule.rb, line 5 def delete_security_group_ip_rule(securitygroup_id,sourceCidrIp, nicType, option={}) # {Aliyun API Reference}[https://docs.aliyun.com/?spm=5176.100054.3.1.DGkmH7#/pub/ecs/open-api/securitygroup&revokesecuritygroup] action = 'RevokeSecurityGroup' sigNonce = randonStr() time = Time.new.utc parameters = defalutParameters(action, sigNonce, time) pathUrl = defaultAliyunUri(action, sigNonce, time) parameters["SecurityGroupId"] = securitygroup_id pathUrl += '&SecurityGroupId=' pathUrl += securitygroup_id parameters["SourceCidrIp"] = sourceCidrIp pathUrl += '&SourceCidrIp=' pathUrl += URI.encode(sourceCidrIp,'/[^!*\()\;?:@#&%=+$,{}[]<>`" ') unless nicType nicType='intranet' end parameters["NicType"] = nicType pathUrl += '&NicType=' pathUrl += nicType portRange = option[:portRange] unless portRange portRange = '-1/-1' end parameters["PortRange"] = portRange pathUrl += '&PortRange=' pathUrl += URI.encode(portRange,'/[^!*\()\;?:@#&%=+$,{}[]<>`" ') protocol = option[:protocol] unless protocol protocol = 'all' end parameters["IpProtocol"] = protocol pathUrl += '&IpProtocol=' pathUrl += protocol policy = option[:policy] unless policy policy = 'accept' end parameters["Policy"] = policy pathUrl += '&Policy=' pathUrl += policy priority = option[:priority] unless priority priority = '1' end parameters["Priority"] = priority pathUrl += '&Priority=' pathUrl += priority signature = sign(@aliyun_accesskey_secret, parameters) pathUrl += '&Signature=' pathUrl += signature request( :expects => [200, 203], :method => 'GET', :path => pathUrl ) end
# File lib/fog/aliyun/requests/compute/delete_security_group_sg_rule.rb, line 5 def delete_security_group_sg_rule(securitygroup_id, source_securitygroup_id, option={}) # {Aliyun API Reference}[https://docs.aliyun.com/?spm=5176.100054.3.1.DGkmH7#/pub/ecs/open-api/securitygroup&revokesecuritygroup] action = 'RevokeSecurityGroup' sigNonce = randonStr() time = Time.new.utc parameters = defalutParameters(action, sigNonce, time) pathUrl = defaultAliyunUri(action, sigNonce, time) parameters["SecurityGroupId"] = securitygroup_id pathUrl += '&SecurityGroupId=' pathUrl += securitygroup_id parameters["SourceGroupId"] = source_securitygroup_id pathUrl += '&SourceGroupId=' pathUrl += source_securitygroup_id nicType = 'intranet' parameters["NicType"] = nicType pathUrl += '&NicType=' pathUrl += nicType portRange = option[:portRange] unless portRange portRange = '-1/-1' end parameters["PortRange"] = portRange pathUrl += '&PortRange=' pathUrl += URI.encode(portRange,'/[^!*\()\;?:@#&%=+$,{}[]<>`" ') protocol = option[:protocol] unless protocol protocol = 'all' end parameters["IpProtocol"] = protocol pathUrl += '&IpProtocol=' pathUrl += protocol sourceGOAccount = option[:sourceGroupOwnerAccount] if sourceGOAccount parameters["SourceGroupOwnerAccount"]=sourceGOAccount pathUrl += '&SourceGroupOwnerAccount=' pathUrl += sourceGOAccount end policy = option[:policy] unless policy policy = 'accept' end parameters["Policy"] = policy pathUrl += '&Policy=' pathUrl += policy priority = option[:priority] unless priority priority = '1' end parameters["Priority"] = priority pathUrl += '&Priority=' pathUrl += priority signature = sign(@aliyun_accesskey_secret, parameters) pathUrl += '&Signature=' pathUrl += signature request( :expects => [200, 203], :method => 'GET', :path => pathUrl ) end
# File lib/fog/aliyun/requests/compute/delete_server.rb, line 5 def delete_server(server_id) # {Aliyun API Reference}[https://docs.aliyun.com/?spm=5176.100054.3.1.DGkmH7#/pub/ecs/open-api/instance&deleteinstance] _action = 'DeleteInstance' _sigNonce = randonStr() _time = Time.new.utc _parameters = defalutParameters(_action, _sigNonce, _time) _pathURL = defaultAliyunUri(_action, _sigNonce, _time) _parameters['InstanceId']=server_id _pathURL += '&InstanceId='+server_id _signature = sign(@aliyun_accesskey_secret, _parameters) _pathURL += '&Signature='+_signature request( :expects => [200, 204], :method => 'GET', :path => _pathURL ) end
# File lib/fog/aliyun/requests/compute/delete_snapshot.rb, line 5 def delete_snapshot(snapshotId) # {Aliyun API Reference}[https://docs.aliyun.com/?spm=5176.100054.3.1.DGkmH7#/pub/ecs/open-api/snapshot&deletesnapshot] action = 'DeleteSnapshot' sigNonce = randonStr() time = Time.new.utc parameters = defalutParameters(action, sigNonce, time) pathUrl = defaultAliyunUri(action, sigNonce, time) parameters["SnapshotId"] = snapshotId pathUrl += '&SnapshotId=' pathUrl += snapshotId signature = sign(@aliyun_accesskey_secret, parameters) pathUrl += '&Signature=' pathUrl += signature request( :expects => [200, 203], :method => 'GET', :path => pathUrl ) end
# File lib/fog/aliyun/requests/compute/delete_vpc.rb, line 6 def delete_vpc(vpc_id) action = 'DeleteVpc' sigNonce = randonStr() time = Time.new.utc parameters = defalutParameters(action, sigNonce, time) pathUrl = defaultAliyunUri(action, sigNonce, time) if vpc_id parameters["VpcId"] = vpc_id pathUrl += '&VpcId=' pathUrl += vpc_id else raise ArgumentError, "Missing required vpc_id" end signature = sign(@aliyun_accesskey_secret, parameters) pathUrl += '&Signature=' pathUrl += signature request( :expects => [200, 203], :method => 'GET', :path => pathUrl ) end
# File lib/fog/aliyun/requests/compute/delete_vswitch.rb, line 5 def delete_vswitch(vswitch_id) # {Aliyun API Reference}[https://docs.aliyun.com/?spm=5176.100054.3.1.DGkmH7#/pub/ecs/open-api/vswitch&deletevswitch] action = 'DeleteVSwitch' sigNonce = randonStr() time = Time.new.utc parameters = defalutParameters(action, sigNonce, time) pathUrl = defaultAliyunUri(action, sigNonce, time) if vswitch_id parameters["VSwitchId"] = vswitch_id pathUrl += '&VSwitchId=' pathUrl += vswitch_id else raise ArgumentError, "Missing required vswitch_id" end signature = sign(@aliyun_accesskey_secret, parameters) pathUrl += '&Signature=' pathUrl += signature request( :expects => [200, 203], :method => 'GET', :path => pathUrl ) end
# File lib/fog/aliyun/requests/compute/detach_disk.rb, line 6 def detach_disk(instanceId, diskId,options={}) action = 'DetachDisk' sigNonce = randonStr() time = Time.new.utc parameters = defalutParameters(action, sigNonce, time) pathUrl = defaultAliyunUri(action, sigNonce, time) parameters["InstanceId"] = instanceId pathUrl += '&InstanceId=' pathUrl += instanceId parameters["DiskId"] = diskId pathUrl += '&DiskId=' pathUrl += diskId if device parameters["Device"] = device pathUrl += '&Device=' pathUrl += URI.encode(device,'/[^!*\()\;?:@#&%=+$,{}[]<>`" ') end signature = sign(@aliyun_accesskey_secret, parameters) pathUrl += '&Signature=' pathUrl += signature request( :expects => [200, 203], :method => 'GET', :path => pathUrl ) end
# File lib/fog/aliyun/requests/compute/list_server_types.rb, line 31 def get_instance_type(cpuCount, memorySize) _action = 'DescribeInstanceTypes' _sigNonce = randonStr() _time = Time.new.utc _parameters = defalutParameters(_action, _sigNonce, _time) _pathURL = defaultAliyunUri(_action, _sigNonce, _time) _signature = sign(@aliyun_accesskey_secret, _parameters) _pathURL += '&Signature='+_signature response = request( :expects => [200, 203], :method => 'GET', :path => _pathURL ) _InstanceTypeId = nil _InstanceTypeList = Fog::JSON.decode(response.body)["InstanceTypes"]["InstanceType"] _InstanceTypeList.each do |instanceType| if ((instanceType["CpuCoreCount"] == cpuCount) && (instanceType["MemorySize"] == memorySize)) _InstanceTypeId = instanceType["InstanceTypeId"] puts "_instanceTypeId: "+_InstanceTypeId break end #end if end #end each _InstanceTypeId end
# File lib/fog/aliyun/requests/compute/join_security_group.rb, line 6 def join_security_group(server_id, group_id) _action = 'JoinSecurityGroup' _sigNonce = randonStr() _time = Time.new.utc _parameters = defalutParameters(_action, _sigNonce, _time) _pathURL = defaultAliyunUri(_action, _sigNonce, _time) _parameters['InstanceId']=server_id _pathURL += '&InstanceId='+server_id _parameters['SecurityGroupId']=group_id _pathURL += '&SecurityGroupId='+group_id _signature = sign(@aliyun_accesskey_secret, _parameters) _pathURL += '&Signature='+_signature request( :expects => [200, 204], :method => 'GET', :path => _pathURL ) end
# File lib/fog/aliyun/requests/compute/leave_security_group.rb, line 6 def leave_security_group(server_id, group_id) _action = 'LeaveSecurityGroup' _sigNonce = randonStr() _time = Time.new.utc _parameters = defalutParameters(_action, _sigNonce, _time) _pathURL = defaultAliyunUri(_action, _sigNonce, _time) _parameters['InstanceId']=server_id _pathURL += '&InstanceId='+server_id _parameters['SecurityGroupId']=group_id _pathURL += '&SecurityGroupId='+group_id _signature = sign(@aliyun_accesskey_secret, _parameters) _pathURL += '&Signature='+_signature request( :expects => [200, 204], :method => 'GET', :path => _pathURL ) end
Describe disks.
Parameters¶ ↑
-
options<~hash>
* :diskIds - arry of diskId, the length of arry should less than or equal to 100. * :instanceId - id of the instance * :diskType - Default 'all'.Can be set to all | system | data * :category - Default 'all'. Can be set to all | cloud | cloud_efficiency | cloud_ssd | ephemeral | ephemeral_ssd * :state - status of the disk. Default 'All'. Can be set to In_use | Available | Attaching | Detaching | Creating | ReIniting | All * :snapshotId - id of snapshot which used to create disk. * :name - name of disk * :portable - If ture, can exist dependently,which means it can be mount or umont in available zones. Else, it must be created or destroyed with a instance. The value for ocal disks and system disks on the cloud and cloud disks paid by month must be false. * :delWithIns - If ture, the disk will be released when the instance is released. * :delAutoSna - If ture, the auto created snapshot will be destroyed when the disk is destroyed * :enAutoSna - Whether the disk apply the auto snapshot strategy. * :diskChargeType - Prepaid | Postpaid
Returns¶ ↑
-
response<~Excon::Response>:
-
body<~Hash>:
-
'RequestId'<~String> - Id of the request
-
'Disks'<~Hash> - list of Disk,and the parameter of disk refer to the Volume model
-
-
# File lib/fog/aliyun/requests/compute/list_disks.rb, line 30 def list_disks(options={}) action = 'DescribeDisks' sigNonce = randonStr() time = Time.new.utc parameters = defalutParameters(action, sigNonce, time) pathUrl = defaultAliyunUri(action, sigNonce, time) pageNumber = options[:pageNumber] pageSize = options[:pageSize] instanceId = options[:instanceId] diskIds = options[:diskIds] diskType = options[:diskType] category = options[:category] state = options[:state] snapshotId = options[:snapshotId] name = options[:name] portable = options[:portable] delWithIns = options[:deleteWithInstance] delAutoSna = options[:deleteAutoSnapshot] enAutoSna = options[:enableAutoSnapshot] diskChargeType = options[:diskChargeType] if diskChargeType parameters["DiskChargeType"] = diskChargeType pathUrl += '&DiskChargeType=' pathUrl += diskChargeType end if enAutoSna parameters["EnableAutoSnapshot"] = enAutoSna pathUrl += '&EnableAutoSnapshot=' pathUrl += enAutoSna end if delAutoSna parameters["DeleteAutoSnapshot"] = delAutoSna pathUrl += '&DeleteAutoSnapshot=' pathUrl += delAutoSna end if delWithIns parameters["DeleteWithInstance"] = delWithIns pathUrl += '&DeleteWithInstance=' pathUrl += delWithIns end if portable parameters["Portable"] = portable pathUrl += '&Portable=' pathUrl += portable end if name parameters["DiskName"] = name pathUrl += '&DiskName=' pathUrl += name end if snapshotId parameters["SnapshotId"] = snapshotId pathUrl += '&SnapshotId=' pathUrl += snapshotId end if state parameters["Status"] = state pathUrl += '&Status=' pathUrl += state end if category parameters["DiskType"] = diskType pathUrl += '&DiskType=' pathUrl += diskType end if category parameters["Category"] = category pathUrl += '&Category=' pathUrl += category end if instanceId parameters["InstanceId"] = instanceId pathUrl += '&InstanceId=' pathUrl += instanceId end if diskIds parameters["DiskIds"] = Fog::JSON.encode(diskIds) pathUrl += '&DiskIds=' pathUrl += Fog::JSON.encode(diskIds) end if pageNumber parameters["PageNumber"] = pageNumber pathUrl += '&PageNumber=' pathUrl += pageNumber end pageSize = options[:pageSize] unless pageSize pageSize = '50' end parameters["PageSize"] = pageSize pathUrl += '&PageSize=' pathUrl += pageSize signature = sign(@aliyun_accesskey_secret, parameters) pathUrl += '&Signature=' pathUrl += signature request( :expects => [200, 203], :method => 'GET', :path => pathUrl ) end
# File lib/fog/aliyun/requests/compute/list_eip_addresses.rb, line 6 def list_eip_addresses(options={}) _action = 'DescribeEipAddresses' _sigNonce = randonStr() _time = Time.new.utc _parameters = defalutParameters(_action, _sigNonce, _time) _pathURL = defaultAliyunUri(_action, _sigNonce, _time) _Status = options[:state] if _Status _parameters['Status']=_Status _pathURL += '&Status='+_Status end _EipAddress = options[:ip_address] if _EipAddress _parameters['EipAddress']=_EipAddress _pathURL += '&EipAddress='+_EipAddress end _AllocationId = options[:allocation_id] if _AllocationId _parameters['AllocationId']=_AllocationId _pathURL += '&AllocationId='+_AllocationId end _PageNumber = options[:page_number] if _PageNumber _parameters['PageNumber']=_PageNumber _pathURL += '&PageNumber='+_PageNumber end _PageSize = options[:page_size] unless _PageSize _PageSize = '50' end _parameters['PageSize']=_PageSize _pathURL += '&PageSize='+_PageSize _signature = sign(@aliyun_accesskey_secret, _parameters) _pathURL += '&Signature='+_signature request( :expects => [200, 204], :method => 'GET', :path => _pathURL ) end
# File lib/fog/aliyun/requests/compute/list_images.rb, line 6 def list_images(options={}) action = 'DescribeImages' sigNonce = randonStr() time = Time.new.utc parameters = defalutParameters(action, sigNonce, time) pathUrl = defaultAliyunUri(action, sigNonce, time) pageNumber = options[:pageNumber] if pageNumber parameters["PageNumber"] = pageNumber pathUrl += '&PageNumber=' pathUrl += pageNumber end pageSize = options[:pageSize] unless pageSize pageSize = '50' end parameters["PageSize"] = pageSize pathUrl += '&PageSize=' pathUrl += pageSize imageId = options[:imageId] if imageId parameters["ImageId"] = imageId pathUrl += '&ImageId=' pathUrl += imageId end imageName = options[:imageName] if imageName parameters["ImageName"] = imageName pathUrl += '&ImageName=' pathUrl += imageName end snapshotId = options[:snapshotId] if snapshotId parameters["SnapshotId"] = snapshotId pathUrl += '&SnapshotId=' pathUrl += snapshotId end ownerAlias = options[:ownerAlias] if ownerAlias parameters["ImageOwnerAlias"] = ownerAlias pathUrl += '&ImageOwnerAlias=' pathUrl += ownerAlias end signature = sign(@aliyun_accesskey_secret, parameters) pathUrl += '&Signature=' pathUrl += signature request( :expects => [200, 203], :method => 'GET', :path => pathUrl ) end
# File lib/fog/aliyun/requests/compute/list_route_tables.rb, line 6 def list_route_tables(vrouterid, options={}) action = 'DescribeRouteTables' sigNonce = randonStr() time = Time.new.utc parameters = defalutParameters(action, sigNonce, time) pathUrl = defaultAliyunUri(action, sigNonce, time) parameters["VRouterId"] = vrouterid pathUrl += '&VRouterId=' pathUrl += vrouterid pageNumber = options[:pageNumber] pageSize = options[:pageSize] routeTableId = options[:routeTableId] if routeTableId parameters["RouteTableId"] = routeTableId pathUrl +='&RouteTableId=' pathUrl += routeTableId end if pageNumber parameters["PageNumber"] = pageNumber pathUrl += '&PageNumber=' pathUrl += pageNumber end unless pageSize pageSize = '50' end parameters["PageSize"] = pageSize pathUrl += '&PageSize=' pathUrl += pageSize signature = sign(@aliyun_accesskey_secret, parameters) pathUrl += '&Signature=' pathUrl += signature request( :expects => [200, 203], :method => 'GET', :path => pathUrl ) end
# File lib/fog/aliyun/requests/compute/list_security_group_rules.rb, line 6 def list_security_group_rules(securityGroupId, options = {}) action = 'DescribeSecurityGroupAttribute' sigNonce = randonStr() time = Time.new.utc parameters = defalutParameters(action, sigNonce, time) pathUrl = defaultAliyunUri(action, sigNonce, time) parameters["SecurityGroupId"] = securityGroupId pathUrl += '&SecurityGroupId=' pathUrl += securityGroupId nicType = options[:nicType] if nicType parameters["NicType"] = nicType pathUrl += '&NicType=' pathUrl += nicType end pageNumber = options[:pageNumber] pageSize = options[:pageSize] if pageNumber parameters["PageNumber"] = pageNumber pathUrl += '&PageNumber=' pathUrl += pageNumber end if pageSize parameters["PageSize"] = pageSize pathUrl += '&PageSize=' pathUrl += pageSize end signature = sign(@aliyun_accesskey_secret, parameters) pathUrl += '&Signature=' pathUrl += signature request( :expects => [200, 203], :method => 'GET', :path => pathUrl ) end
# File lib/fog/aliyun/requests/compute/list_security_groups.rb, line 6 def list_security_groups(options={}) action = 'DescribeSecurityGroups' sigNonce = randonStr() time = Time.new.utc parameters = defalutParameters(action, sigNonce, time) pathUrl = defaultAliyunUri(action, sigNonce, time) pageNumber = options[:pageNumber] pageSize = options[:pageSize] vpcId = options[:vpcId] if vpcId parameters["VpcId"] = vpcId pathUrl += '&VpcId=' pathUrl += vpcId end if pageNumber parameters["PageNumber"] = pageNumber pathUrl += '&PageNumber=' pathUrl += pageNumber end pageSize = options[:pageSize] unless pageSize pageSize = '50' end parameters["PageSize"] = pageSize pathUrl += '&PageSize=' pathUrl += pageSize signature = sign(@aliyun_accesskey_secret, parameters) pathUrl += '&Signature=' pathUrl += signature request( :expects => [200], :method => 'GET', :path => pathUrl ) end
# File lib/fog/aliyun/requests/compute/list_server_types.rb, line 6 def list_server_types _action = 'DescribeInstanceTypes' _sigNonce = randonStr() _time = Time.new.utc _parameters = defalutParameters(_action, _sigNonce, _time) _pathURL = defaultAliyunUri(_action, _sigNonce, _time) _signature = sign(@aliyun_accesskey_secret, _parameters) _pathURL += '&Signature='+_signature response = request( :expects => [200, 203], :method => 'GET', :path => _pathURL ) #_InstanceType = Hash.new #_InstanceTypeList = Fog::JSON.decode(response.body)["InstanceTypes"]["InstanceType"] #_InstanceTypeList.each do |instanceType| # _InstanceType[[instanceType["CpuCoreCount"], instanceType["MemorySize"]]] = instanceType["InstanceTypeId"] #end #_InstanceType end
# File lib/fog/aliyun/requests/compute/list_servers.rb, line 6 def list_servers(options={}) _action = 'DescribeInstances' _sigNonce = randonStr() _time = Time.new.utc _parameters = defalutParameters(_action, _sigNonce, _time) _pathURL = defaultAliyunUri(_action, _sigNonce, _time) _InstanceId = options[:instanceId] _VpcId = options[:vpcId] _SecurityGroupId = options[:securityGroupId] _PageNumber = options[:pageNumber] _PageSize = options[:pageSize] if _InstanceId != nil _InstanceStr = "[\"#{_InstanceId}\"]" _parameters['InstanceIds'] = _InstanceStr _pathURL += '&InstanceIds='+_InstanceStr end if _VpcId != nil _parameters['VpcId'] = _VpcId _pathURL += '&VpcId='+_VpcId end if _SecurityGroupId != nil _parameters['SecurityGroupId']=_SecurityGroupId _pathURL += '&SecurityGroupId='+_SecurityGroupId end if _PageNumber != nil _parameters['PageNumber']=_PageNumber _pathURL += '&PageNumber='+_PageNumber end unless _PageSize _PageSize = '50' end _parameters['PageSize']=_PageSize _pathURL += '&PageSize='+_PageSize _signature = sign(@aliyun_accesskey_secret, _parameters) _pathURL += '&Signature='+_signature request( :expects => [200, 203], :method => 'GET', :path => _pathURL ) end
# File lib/fog/aliyun/requests/compute/list_snapshots.rb, line 6 def list_snapshots(options={}) action = 'DescribeSnapshots' sigNonce = randonStr() time = Time.new.utc parameters = defalutParameters(action, sigNonce, time) pathUrl = defaultAliyunUri(action, sigNonce, time) pageNumber = options[:pageNumber] pageSize = options[:pageSize] instanceId = options[:instanceId] diskId = options[:diskId] snapshotId = options[:snapshotIds] sourceDiskType = options[:sourceDiskType] name = options[:snapshotName] state = options[:state] type = options[:snapshotType] usage = options[:usage] if usage parameters["Usage"] = usage pathUrl += '&Usage=' pathUrl += usage end if type parameters["SnapshotType"] = type pathUrl += '&SnapshotType=' pathUrl += type end if state parameters["Status"] = state pathUrl += '&Status=' pathUrl += state end if name parameters["SnapshotName"] = name pathUrl += '&SnapshotName=' pathUrl += name end if instanceId parameters["InstanceId"] = instanceId pathUrl += '&InstanceId=' pathUrl += instanceId end if diskId parameters["DiskId"] = diskId pathUrl += '&DiskId=' pathUrl += diskId end if snapshotId parameters["SnapshotIds"] = Fog::JSON.encode(snapshotId) pathUrl += '&SnapshotIds=' pathUrl += Fog::JSON.encode(snapshotId) end if sourceDiskType parameters["SourceDiskType"] = sourceDiskType pathUrl += '&SourceDiskType=' pathUrl += sourceDiskType end if pageNumber parameters["PageNumber"] = pageNumber pathUrl += '&PageNumber=' pathUrl += pageNumber end unless pageSize pageSize = '50' end parameters["PageSize"] = pageSize pathUrl += '&PageSize=' pathUrl += pageSize signature = sign(@aliyun_accesskey_secret, parameters) pathUrl += '&Signature=' pathUrl += signature request( :expects => [200, 203], :method => 'GET', :path => pathUrl ) end
# File lib/fog/aliyun/requests/compute/list_vpcs.rb, line 6 def list_vpcs(options={}) action = 'DescribeVpcs' sigNonce = randonStr() time = Time.new.utc parameters = defalutParameters(action, sigNonce, time) pathUrl = defaultAliyunUri(action, sigNonce, time) _VpcId = options[:vpcId] if _VpcId parameters["VpcId"] = _VpcId pathUrl += '&VpcId=' pathUrl += _VpcId end pageNumber = options[:pageNumber] pageSize = options[:pageSize] if pageNumber parameters["PageNumber"] = pageNumber pathUrl += '&PageNumber=' pathUrl += pageNumber end unless pageSize pageSize = '50' end parameters["PageSize"] = pageSize pathUrl += '&PageSize=' pathUrl += pageSize signature = sign(@aliyun_accesskey_secret, parameters) pathUrl += '&Signature=' pathUrl += signature request( :expects => [200, 203], :method => 'GET', :path => pathUrl ) end
# File lib/fog/aliyun/requests/compute/list_vrouters.rb, line 6 def list_vrouters(options={}) action = 'DescribeVrouters' sigNonce = randonStr() time = Time.new.utc parameters = defalutParameters(action, sigNonce, time) pathUrl = defaultAliyunUri(action, sigNonce, time) _VRouterId = options[:vRouterId] if _VRouterId parameters["VRouterId"] = _VRouterId pathUrl += '&VRouterId=' pathUrl += _VRouterId end pageNumber = options[:pageNumber] pageSize = options[:pageSize] if pageNumber parameters["PageNumber"] = pageNumber pathUrl += '&PageNumber=' pathUrl += pageNumber end unless pageSize pageSize = '50' end parameters["PageSize"] = pageSize pathUrl += '&PageSize=' pathUrl += pageSize signature = sign(@aliyun_accesskey_secret, parameters) pathUrl += '&Signature=' pathUrl += signature request( :expects => [200, 203], :method => 'GET', :path => pathUrl ) end
# File lib/fog/aliyun/requests/compute/list_vswitchs.rb, line 6 def list_vswitchs(vpcid, options={}) action = 'DescribeVSwitches' sigNonce = randonStr() time = Time.new.utc parameters = defalutParameters(action, sigNonce, time) pathUrl = defaultAliyunUri(action, sigNonce, time) parameters["VpcId"] = vpcid pathUrl += '&VpcId=' pathUrl += vpcid pageNumber = options[:pageNumber] pageSize = options[:pageSize] vswitchId = options[:vSwitchId] if vswitchId parameters["VSwitchId"] = vswitchId pathUrl +='&VSwitchId=' pathUrl += vswitchId end if pageNumber parameters["PageNumber"] = pageNumber pathUrl += '&PageNumber=' pathUrl += pageNumber end unless pageSize pageSize = '50' end parameters["PageSize"] = pageSize pathUrl += '&PageSize=' pathUrl += pageSize signature = sign(@aliyun_accesskey_secret, parameters) pathUrl += '&Signature=' pathUrl += signature request( :expects => [200, 203], :method => 'GET', :path => pathUrl ) end
# File lib/fog/aliyun/requests/compute/list_zones.rb, line 6 def list_zones() action = 'DescribeZones' sigNonce = randonStr() time = Time.new.utc parameters = defalutParameters(action, sigNonce, time) pathUrl = defaultAliyunUri(action, sigNonce, time) signature = sign(@aliyun_accesskey_secret, parameters) pathUrl += '&Signature=' pathUrl += signature request( :expects => [200, 203], :method => 'GET', :path => pathUrl ) end
# File lib/fog/aliyun/requests/compute/modify_vpc.rb, line 6 def modify_vpc(vpcId,options={}) action = 'ModifyVpcAttribute' sigNonce = randonStr() time = Time.new.utc parameters = defalutParameters(action, sigNonce, time) pathUrl = defaultAliyunUri(action, sigNonce, time) parameters["VpcId"] = vpcId pathUrl += '&VpcId=' pathUrl += URI.encode(vpcId,'/[^!*\()\;?:@#&%=+$,{}[]<>`" ') name = options[:name] desc = options[:description] if name parameters["VpcName"] = name pathUrl += '&VpcName=' pathUrl += name end if desc parameters["Description"] = desc pathUrl += '&Description=' pathUrl += desc end signature = sign(@aliyun_accesskey_secret, parameters) pathUrl += '&Signature=' pathUrl += signature request( :expects => [200, 203], :method => 'GET', :path => pathUrl ) end
generate random num
# File lib/fog/aliyun/compute.rb, line 331 def randonStr () numStr = rand(100000).to_s timeStr = Time.now.to_f.to_s ranStr = timeStr+"-"+numStr return ranStr end
# File lib/fog/aliyun/requests/compute/reboot_server.rb, line 6 def reboot_server(server_id, options = {}) _action = 'RebootInstance' _sigNonce = randonStr() _time = Time.new.utc _parameters = defalutParameters(_action, _sigNonce, _time) _pathURL = defaultAliyunUri(_action, _sigNonce, _time) _parameters['InstanceId']=server_id _pathURL += '&InstanceId='+server_id _ForceStop = options[:aliyun_ForceStop] if _ForceStop _parameters['ForceStop']=_ForceStop _pathURL += '&ForceStop='+_ForceStop end _signature = sign(@aliyun_accesskey_secret, _parameters) _pathURL += '&Signature='+_signature request( :expects => [200, 204], :method => 'GET', :path => _pathURL ) end
# File lib/fog/aliyun/requests/compute/release_eip_address.rb, line 6 def release_eip_address(allocationId) _action = 'ReleaseEipAddress' _sigNonce = randonStr() _time = Time.new.utc _parameters = defalutParameters(_action, _sigNonce, _time) _pathURL = defaultAliyunUri(_action, _sigNonce, _time) _parameters['AllocationId'] = allocationId _pathURL += '&AllocationId='+allocationId _signature = sign(@aliyun_accesskey_secret, _parameters) _pathURL += '&Signature='+_signature request( :expects => [200, 204], :method => 'GET', :path => _pathURL ) end
# File lib/fog/aliyun/compute.rb, line 292 def reload @connection.reset end
# File lib/fog/aliyun/compute.rb, line 296 def request(params) begin response = @connection.request(params.merge({ :headers => { 'Content-Type' => 'application/json', 'Accept' => 'application/json', 'X-Auth-Token' => @auth_token }.merge!(params[:headers] || {}), :path => "#{@path}/#{params[:path]}", :query => params[:query] })) rescue Excon::Errors::HTTPStatusError => error raise case error when Excon::Errors::NotFound Fog::Compute::Aliyun::NotFound.slurp(error) else error end end if !response.body.empty? and response.get_header('Content-Type') == 'application/json' response.body = Fog::JSON.decode(response.body) end response end
compute signature
# File lib/fog/aliyun/compute.rb, line 355 def sign (accessKeySecret,parameters) sortedParameters = parameters.sort canonicalizedQueryString = '' sortedParameters.each do | k, v | canonicalizedQueryString += '&' + URI.encode(k,'/[^!*\()\;?:@#&%=+$,{}[]<>`" ') + '=' + URI.encode(v,'/[^!*\()\;?:@#&%=+$,{}[]<>`" ') end canonicalizedQueryString[0] = '' stringToSign = 'GET&%2F&' + URI.encode(canonicalizedQueryString,'/[^!*\()\;?:@#&%=+$,{}[]<>`" ') key = accessKeySecret + '&' digVer = OpenSSL::Digest.new("sha1") digest = OpenSSL::HMAC.digest(digVer, key, stringToSign) signature = Base64.encode64(digest) signature[-1] = '' encodedSig = URI.encode(signature,'/[^!*\()\;?:@#&%=+$,{}[]<>`" ') return encodedSig end
Start the server.
Parameters¶ ↑
-
server_id <~String> - The ID of the server to be started.
Returns¶ ↑
-
success <~Boolean>
# File lib/fog/aliyun/requests/compute/start_server.rb, line 12 def start_server(server_id) _action = 'StartInstance' _sigNonce = randonStr() _time = Time.new.utc _parameters = defalutParameters(_action, _sigNonce, _time) _pathURL = defaultAliyunUri(_action, _sigNonce, _time) _parameters['InstanceId']=server_id _pathURL += '&InstanceId='+server_id _signature = sign(@aliyun_accesskey_secret, _parameters) _pathURL += '&Signature='+_signature request( :expects => [200, 204], :method => 'GET', :path => _pathURL ) end
Stop the server.
Parameters¶ ↑
-
server_id <~String> - The ID of the server to be stopped.
Returns¶ ↑
-
success <~Boolean>
# File lib/fog/aliyun/requests/compute/stop_server.rb, line 12 def stop_server(server_id) _action = 'StopInstance' _sigNonce = randonStr() _time = Time.new.utc _parameters = defalutParameters(_action, _sigNonce, _time) _pathURL = defaultAliyunUri(_action, _sigNonce, _time) _parameters['InstanceId']=server_id _pathURL += '&InstanceId='+server_id _signature = sign(@aliyun_accesskey_secret, _parameters) _pathURL += '&Signature='+_signature request( :expects => [200, 204], :method => 'GET', :path => _pathURL ) end
Disassociate an avalable eip IP address to the given instance.
Parameters¶ ↑
-
server_id<~String> - id of the instance
-
allocationId<~String> - id of the EIP
Returns¶ ↑
-
response<~Excon::Response>:
-
body<~Hash>:
-
'RequestId'<~String> - Id of the request
-
-
# File lib/fog/aliyun/requests/compute/unassociate_eip_address.rb, line 16 def unassociate_eip_address(server_id, allocationId, options={}) _action = 'UnassociateEipAddress' _sigNonce = randonStr() _time = Time.new.utc type=options['instance_type'] _parameters = defalutParameters(_action, _sigNonce, _time) _pathURL = defaultAliyunUri(_action, _sigNonce, _time) _parameters['InstanceId'] = server_id _pathURL += '&InstanceId='+server_id _parameters['AllocationId'] = allocationId _pathURL += '&AllocationId='+allocationId if type _parameters['InstanceType'] = type _pathURL += 'InstanceType='+type end _signature = sign(@aliyun_accesskey_secret, _parameters) _pathURL += '&Signature='+_signature request( :expects => [200, 204], :method => 'GET', :path => _pathURL ) end