Class: Fog::Compute::QingCloud::Real
- Inherits:
-
Object
- Object
- Fog::Compute::QingCloud::Real
- Defined in:
- lib/fog/qingcloud/compute.rb,
lib/fog/qingcloud/requests/compute/join_vxnet.rb,
lib/fog/qingcloud/requests/compute/join_router.rb,
lib/fog/qingcloud/requests/compute/leave_vxnet.rb,
lib/fog/qingcloud/requests/compute/leave_router.rb,
lib/fog/qingcloud/requests/compute/create_vxnets.rb,
lib/fog/qingcloud/requests/compute/delete_vxnets.rb,
lib/fog/qingcloud/requests/compute/routers_power.rb,
lib/fog/qingcloud/requests/compute/run_instances.rb,
lib/fog/qingcloud/requests/compute/attach_volumes.rb,
lib/fog/qingcloud/requests/compute/create_routers.rb,
lib/fog/qingcloud/requests/compute/create_volumes.rb,
lib/fog/qingcloud/requests/compute/delete_routers.rb,
lib/fog/qingcloud/requests/compute/delete_volumes.rb,
lib/fog/qingcloud/requests/compute/detach_volumes.rb,
lib/fog/qingcloud/requests/compute/stop_instances.rb,
lib/fog/qingcloud/requests/compute/update_routers.rb,
lib/fog/qingcloud/requests/compute/create_key_pair.rb,
lib/fog/qingcloud/requests/compute/describe_vxnets.rb,
lib/fog/qingcloud/requests/compute/release_address.rb,
lib/fog/qingcloud/requests/compute/reset_instances.rb,
lib/fog/qingcloud/requests/compute/start_instances.rb,
lib/fog/qingcloud/requests/compute/allocate_address.rb,
lib/fog/qingcloud/requests/compute/attach_key_pairs.rb,
lib/fog/qingcloud/requests/compute/delete_key_pairs.rb,
lib/fog/qingcloud/requests/compute/describe_routers.rb,
lib/fog/qingcloud/requests/compute/describe_volumes.rb,
lib/fog/qingcloud/requests/compute/detach_key_pairs.rb,
lib/fog/qingcloud/requests/compute/reboot_instances.rb,
lib/fog/qingcloud/requests/compute/resize_instances.rb,
lib/fog/qingcloud/requests/compute/associate_address.rb,
lib/fog/qingcloud/requests/compute/add_router_statics.rb,
lib/fog/qingcloud/requests/compute/describe_addresses.rb,
lib/fog/qingcloud/requests/compute/describe_instances.rb,
lib/fog/qingcloud/requests/compute/describe_key_pairs.rb,
lib/fog/qingcloud/requests/compute/terminate_instances.rb,
lib/fog/qingcloud/requests/compute/apply_security_group.rb,
lib/fog/qingcloud/requests/compute/disassociate_address.rb,
lib/fog/qingcloud/requests/compute/create_security_group.rb,
lib/fog/qingcloud/requests/compute/delete_router_statics.rb,
lib/fog/qingcloud/requests/compute/delete_security_groups.rb,
lib/fog/qingcloud/requests/compute/describe_router_vxnets.rb,
lib/fog/qingcloud/requests/compute/describe_router_statics.rb,
lib/fog/qingcloud/requests/compute/add_security_group_rules.rb,
lib/fog/qingcloud/requests/compute/change_address_bandwidth.rb,
lib/fog/qingcloud/requests/compute/describe_security_groups.rb,
lib/fog/qingcloud/requests/compute/describe_vxnet_instances.rb,
lib/fog/qingcloud/requests/compute/modify_router_attributes.rb,
lib/fog/qingcloud/requests/compute/modify_resource_attributes.rb,
lib/fog/qingcloud/requests/compute/upload_userdata_attachment.rb,
lib/fog/qingcloud/requests/compute/delete_security_group_rules.rb,
lib/fog/qingcloud/requests/compute/describe_security_group_rules.rb,
lib/fog/qingcloud/requests/compute/modify_security_group_rule_attributes.rb
Instance Attribute Summary collapse
-
#zone ⇒ Object
Returns the value of attribute zone.
Instance Method Summary collapse
- #add_router_statics(rt_id, rules) ⇒ Object
- #add_security_group_rules(group_id, options) ⇒ Object
-
#allocate_address(bandwidth, count = 1, name = nil, need_icp = 0) ⇒ Object
Acquire an elastic IP address.
- #apply_security_group(id, server_ids = []) ⇒ Object
-
#associate_address(id, instance_id) ⇒ Object
Associate an elastic IP address with an instance API Reference.
-
#attach_key_pairs(key_id, instance_id) ⇒ Object
Delete a key pair that you own API Reference.
-
#attach_volumes(server_id, volume_id) ⇒ Object
Attach an EBS volume with a running instance, exposing as specified device API Reference.
-
#change_address_bandwidth(id, bandwidth) ⇒ Object
Delete a key pair that you own API Reference.
-
#create_key_pair(key_name = '', mode = 'system', encrypt_method = 'ssh-rsa', public_key = '') ⇒ Object
Create a new key pair Reference [docs.qingcloud.com/api/keypair/create_key_pairs.html].
- #create_routers(name = nil, count = 1, security_group = nil) ⇒ Object
-
#create_security_group(name = nil) ⇒ Object
Create a new security group.
-
#create_volumes(zone, size, options = {}) ⇒ Object
Create an EBS volume API Reference.
-
#create_vxnets(options) ⇒ Object
Creates a Vxnet with the CIDR block you specify.
-
#delete_key_pairs(key_id) ⇒ Object
Delete a key pair that you own API Reference.
- #delete_router_statics(rule_id) ⇒ Object
- #delete_routers(id) ⇒ Object
- #delete_security_group_rules(rule_id) ⇒ Object
-
#delete_security_groups(id) ⇒ Object
Delete a security group that you own API Reference.
-
#delete_volumes(volume_id) ⇒ Object
Delete an EBS volume.
- #delete_vxnets(vxnet_id) ⇒ Object
- #describe_addresses(filters = {}) ⇒ Object
- #describe_instances(filters = {}) ⇒ Object
-
#describe_key_pairs(filters = {}) ⇒ Object
Describe all or specified key pairs API Reference.
- #describe_router_statics(rt_id, rule_id = [], type = nil) ⇒ Object
-
#describe_router_vxnets(router_id, vxnet_id) ⇒ Object
Describe all or specified routers API Reference.
-
#describe_routers(filters = {}) ⇒ Object
Describe all or specified routers API Reference.
-
#describe_security_group_rules(group_id = nil, rule_ids = nil, direction = nil) ⇒ Object
Describe all specified security group rules API Reference.
-
#describe_security_groups(filters = {}) ⇒ Object
Describe all or specified security groups API Reference.
-
#describe_volumes(filters = {}) ⇒ Object
Describe all or specified volumes.
-
#describe_vxnet_instances(vxnet_id, filters = {}) ⇒ Object
Describe all or specified vxnets API Reference.
-
#describe_vxnets(filters = {}) ⇒ Object
Describe all or specified vxnets API Reference.
-
#detach_key_pairs(key_id, instance_id) ⇒ Object
Delete a key pair that you own API Reference.
-
#detach_volumes(server_id, volume_id) ⇒ Object
Detach an EBS volume from a running instance.
-
#disassociate_address(id) ⇒ Object
Disassociate an elastic IP address from its instance (if any) API Reference.
-
#initialize(options = {}) ⇒ Real
constructor
A new instance of Real.
- #join_router(rt_id, vxnet_id, ip_network, features = 1) ⇒ Object
- #join_vxnet(vxnet_id, server_id) ⇒ Object
- #leave_router(rt_id, vxnet_id) ⇒ Object
- #leave_vxnet(vxnet_id, server_id) ⇒ Object
-
#modify_resource_attributes(id, resource_type, name = nil, description = nil) ⇒ Object
Delete a key pair that you own API Reference API Reference API Reference API Reference API Reference API Reference API Reference.
- #modify_router_attributes(id, attributes) ⇒ Object
- #modify_security_group_rule_attributes(rule_id, priority, name = nil) ⇒ Object
-
#reboot_instances(instance_id) ⇒ Object
Reboot specified instances API Reference.
-
#release_address(id) ⇒ Object
Release an elastic IP address.
- #reload ⇒ Object
-
#reset_instances(instance_id) ⇒ Object
Stop specified instance API Reference.
-
#resize_instances(instance_id, target_instance_type = nil, cpu = nil, memory = nil) ⇒ Object
Resize specified instance If target_instance_type is specified, cpu and memory will be ignored.
- #routers_power(id, action) ⇒ Object
- #run_instances(image_id, count, options = {}) ⇒ Object
-
#start_instances(instance_id) ⇒ Object
Start specified instance API Reference.
-
#stop_instances(instance_id, force = false) ⇒ Object
Stop specified instance API Reference.
- #terminate_instances(instance_id) ⇒ Object
- #update_routers(id) ⇒ Object
-
#upload_userdata_attachment(options) ⇒ Object
Delete a key pair that you own API Reference.
Constructor Details
#initialize(options = {}) ⇒ Real
Returns a new instance of Real.
164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 |
# File 'lib/fog/qingcloud/compute.rb', line 164 def initialize(={}) setup_credentials() @connection_options = [:connection_options] || {} @zone = [:zone] ||= 'pek1' @version = [:version] || '1' @signature_method = 'HmacSHA256' @signature_version = '1' if @endpoint = [:endpoint] endpoint = URI.parse(@endpoint) @host = endpoint.host @path = endpoint.path @port = endpoint.port @scheme = endpoint.scheme else @host = [:host] || "api.qingcloud.com" @path = [:path] || '/iaas/' @persistent = [:persistent] || false @port = [:port] || 443 @scheme = [:scheme] || 'https' end @connection = Fog::Core::Connection.new("#{@scheme}://#{@host}:#{@port}#{@path}", @persistent, @connection_options) end |
Instance Attribute Details
#zone ⇒ Object
Returns the value of attribute zone.
162 163 164 |
# File 'lib/fog/qingcloud/compute.rb', line 162 def zone @zone end |
Instance Method Details
#add_router_statics(rt_id, rules) ⇒ Object
7 8 9 10 |
# File 'lib/fog/qingcloud/requests/compute/add_router_statics.rb', line 7 def add_router_statics(rt_id, rules) args = {'action' => 'AddRouterStatics', 'router' => rt_id}.merge(rules) request(args) end |
#add_security_group_rules(group_id, options) ⇒ Object
7 8 9 10 11 12 13 |
# File 'lib/fog/qingcloud/requests/compute/add_security_group_rules.rb', line 7 def add_security_group_rules(group_id, ) args = { 'action' => 'AddSecurityGroupRules', 'security_group' => group_id }.merge() request(args) end |
#allocate_address(bandwidth, count = 1, name = nil, need_icp = 0) ⇒ Object
Acquire an elastic IP address.
Parameters
-
domain<~String> - Type of EIP, either standard or vpc
Returns
-
response<~Excon::Response>:
-
body<~Hash>:
-
‘publicIp’<~String> - The acquired address
-
‘requestId’<~String> - Id of the request
-
-
17 18 19 20 21 22 23 24 |
# File 'lib/fog/qingcloud/requests/compute/allocate_address.rb', line 17 def allocate_address(bandwidth, count = 1, name = nil, need_icp = 0) args = {'action' => 'AllocateEips', 'count' => count, 'eip_name' => name, 'bandwidth' => bandwidth, 'need_icp' => need_icp} request(args) end |
#apply_security_group(id, server_ids = []) ⇒ Object
7 8 9 10 11 12 |
# File 'lib/fog/qingcloud/requests/compute/apply_security_group.rb', line 7 def apply_security_group(id, server_ids = []) args = {'action' => 'ApplySecurityGroup', 'security_group' => id} args.merge!(Fog::QingCloud.indexed_param('instances', [*server_ids])) request(args) end |
#associate_address(id, instance_id) ⇒ Object
Associate an elastic IP address with an instance API Reference
8 9 10 11 12 13 14 15 |
# File 'lib/fog/qingcloud/requests/compute/associate_address.rb', line 8 def associate_address(id, instance_id) args = { 'action' => 'AssociateEip', 'eip' => id, 'instance' => instance_id } request(args) end |
#attach_key_pairs(key_id, instance_id) ⇒ Object
Delete a key pair that you own API Reference
8 9 10 11 12 13 14 15 |
# File 'lib/fog/qingcloud/requests/compute/attach_key_pairs.rb', line 8 def attach_key_pairs(key_id, instance_id) args = { 'action' => 'AttachKeyPairs', } args.merge! Fog::QingCloud.indexed_param('keypairs', [*key_id]) args.merge! Fog::QingCloud.indexed_param('instances', [*key_id]) request(args) end |
#attach_volumes(server_id, volume_id) ⇒ Object
Attach an EBS volume with a running instance, exposing as specified device API Reference
9 10 11 12 13 14 15 |
# File 'lib/fog/qingcloud/requests/compute/attach_volumes.rb', line 9 def attach_volumes(server_id, volume_id) args = { 'action' => 'AttachVolumes', 'instance' => server_id }.merge Fog::QingCloud.indexed_param('volumes', volume_id) request(args) end |
#change_address_bandwidth(id, bandwidth) ⇒ Object
Delete a key pair that you own API Reference
8 9 10 11 12 13 14 |
# File 'lib/fog/qingcloud/requests/compute/change_address_bandwidth.rb', line 8 def change_address_bandwidth(id, bandwidth) args = { 'action' => 'ChangeEipsBandwidth', 'bandwidth' => bandwidth }.merge(Fog::QingCloud.indexed_param('eips', id)) request(args) end |
#create_key_pair(key_name = '', mode = 'system', encrypt_method = 'ssh-rsa', public_key = '') ⇒ Object
Create a new key pair Reference [docs.qingcloud.com/api/keypair/create_key_pairs.html]
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/fog/qingcloud/requests/compute/create_key_pair.rb', line 8 def create_key_pair(key_name = '', mode = 'system', encrypt_method = 'ssh-rsa', public_key = '') args = { 'action' => 'CreateKeyPair', 'keypair_name' => key_name, 'mode' => mode } if mode == 'user' args['public_key'] = public_key else args['encrypt_method'] = encrypt_method end request(args) end |
#create_routers(name = nil, count = 1, security_group = nil) ⇒ Object
7 8 9 10 11 12 13 |
# File 'lib/fog/qingcloud/requests/compute/create_routers.rb', line 7 def create_routers(name = nil, count = 1, security_group = nil) args = {'action' => 'CreateRouters', 'count' => count, 'router_name' => name, 'security_group' => security_group}.reject {|k, v| v.nil?} request(args) end |
#create_security_group(name = nil) ⇒ Object
Create a new security group
8 9 10 11 12 13 |
# File 'lib/fog/qingcloud/requests/compute/create_security_group.rb', line 8 def create_security_group(name = nil) request( 'action' => 'CreateSecurityGroup', 'security_group_name' => name ) end |
#create_volumes(zone, size, options = {}) ⇒ Object
Create an EBS volume API Reference
8 9 10 11 12 13 14 |
# File 'lib/fog/qingcloud/requests/compute/create_volumes.rb', line 8 def create_volumes(zone, size, = {}) request({ 'action' => 'CreateVolumes', 'zone' => zone, 'size' => size, }.merge(.reject{|k, v| v.nil?})) end |
#create_vxnets(options) ⇒ Object
Creates a Vxnet with the CIDR block you specify. API Reference
8 9 10 11 12 13 |
# File 'lib/fog/qingcloud/requests/compute/create_vxnets.rb', line 8 def create_vxnets() request({ 'action' => 'CreateVxnets', }.merge!()) end |
#delete_key_pairs(key_id) ⇒ Object
Delete a key pair that you own API Reference
8 9 10 11 12 13 14 |
# File 'lib/fog/qingcloud/requests/compute/delete_key_pairs.rb', line 8 def delete_key_pairs(key_id) args = { 'action' => 'DeleteKeyPairs', } args.merge! Fog::QingCloud.indexed_param('keypairs', [*key_id]) request(args) end |
#delete_router_statics(rule_id) ⇒ Object
7 8 9 10 11 12 |
# File 'lib/fog/qingcloud/requests/compute/delete_router_statics.rb', line 7 def delete_router_statics(rule_id) args = {'action' => 'DeleteRouterStatics'}.merge( Fog::QingCloud.indexed_param('router_statics', [*rule_id]) ) request(args) end |
#delete_routers(id) ⇒ Object
7 8 9 10 11 |
# File 'lib/fog/qingcloud/requests/compute/delete_routers.rb', line 7 def delete_routers(id) args = {'action' => 'DeleteRouters'} args.merge!(Fog::QingCloud.indexed_param('routers', [*id])) request(args) end |
#delete_security_group_rules(rule_id) ⇒ Object
7 8 9 10 11 12 |
# File 'lib/fog/qingcloud/requests/compute/delete_security_group_rules.rb', line 7 def delete_security_group_rules(rule_id) args = { 'action' => 'DeleteSecurityGroupRules' }.merge(Fog::QingCloud.indexed_param('security_group_rules', rule_id)) request(args) end |
#delete_security_groups(id) ⇒ Object
Delete a security group that you own API Reference
9 10 11 12 13 |
# File 'lib/fog/qingcloud/requests/compute/delete_security_groups.rb', line 9 def delete_security_groups(id) args = Fog::QingCloud.indexed_param('security_groups', id) args['action'] = 'DeleteSecurityGroups' request(args) end |
#delete_volumes(volume_id) ⇒ Object
Delete an EBS volume
Parameters
-
volume_id<~String> - Id of volume to delete.
Returns
-
response<~Excon::Response>:
-
body<~Hash>:
-
‘requestId’<~String> - Id of request
-
‘return’<~Boolean> - success?
-
-
18 19 20 21 22 23 |
# File 'lib/fog/qingcloud/requests/compute/delete_volumes.rb', line 18 def delete_volumes(volume_id) args = { 'action' => 'DeleteVolumes', }.merge(Fog::QingCloud.indexed_param('volumes', [*volume_id])) request(args) end |
#delete_vxnets(vxnet_id) ⇒ Object
7 8 9 10 11 12 |
# File 'lib/fog/qingcloud/requests/compute/delete_vxnets.rb', line 7 def delete_vxnets(vxnet_id) args = { 'action' => 'DeleteVxnets' }.merge(Fog::QingCloud.indexed_param('vxnets', [*vxnet_id])) request(args) end |
#describe_addresses(filters = {}) ⇒ Object
7 8 9 10 11 12 13 14 15 16 |
# File 'lib/fog/qingcloud/requests/compute/describe_addresses.rb', line 7 def describe_addresses(filters = {}) params = {} params['search_word'] = filters['public-ip'] if filters['public-ip'] params.merge!(Fog::QingCloud.indexed_param('eips', filters['eip-id'])) params.merge!(Fog::QingCloud.indexed_param('status', filters['status'])) request({ 'action' => 'DescribeEips', }.merge!(params)) end |
#describe_instances(filters = {}) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/fog/qingcloud/requests/compute/describe_instances.rb', line 6 def describe_instances(filters = {}) params = {} ['instance-id', 'image-id', 'instance-type', 'status', 'state'].each do |item| if filters[item] ids = filters.delete(item) item = 'instances' if item == 'instance-id' item = 'status' if item == 'state' [*ids].each_with_index do |id, index| params.merge!("#{item.gsub(/-/, '_')}.#{index + 1}" => id) end end end params['search_word'] = filters['search-word'] || filters['search_word'] request({ 'action' => 'DescribeInstances', 'verbose' => 1 }.merge!(params)) end |
#describe_key_pairs(filters = {}) ⇒ Object
Describe all or specified key pairs API Reference
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/fog/qingcloud/requests/compute/describe_key_pairs.rb', line 9 def describe_key_pairs(filters = {}) unless filters.is_a?(Hash) Fog::Logger.deprecation("describe_key_pairs with #{filters.class} param is deprecated, use describe_key_pairs('keypair-id' => []) instead [light_black](#{caller.first})[/]") filters = {'keypair-id' => [*filters]} end args = { 'action' => 'DescribeKeyPairs', 'verbose' => filters['verbose'] || 1 } args['instance_id'] = filters['instance-id'] || filters['instance_id'] args.merge!(Fog::QingCloud.indexed_param('keypairs', [*filters['keypair-id']])) args['encrypt_method'] = filters['encrypt_method'] || filters['encrypt-method'] args['search_word'] = filters['search_word'] || filters['search-word'] || filters['keypair-name'] request(args) end |
#describe_router_statics(rt_id, rule_id = [], type = nil) ⇒ Object
7 8 9 10 11 12 13 |
# File 'lib/fog/qingcloud/requests/compute/describe_router_statics.rb', line 7 def describe_router_statics(rt_id, rule_id = [], type = nil) args = {'action' => 'DescribeRouterStatics', 'static_type' => type, 'router' => rt_id} args.merge!(Fog::QingCloud.indexed_param('router_statics', [*rule_id])) request(args) end |
#describe_router_vxnets(router_id, vxnet_id) ⇒ Object
Describe all or specified routers API Reference
8 9 10 11 12 13 14 |
# File 'lib/fog/qingcloud/requests/compute/describe_router_vxnets.rb', line 8 def describe_router_vxnets(router_id, vxnet_id) request({ 'action' => 'DescribeRouterVxnets', 'router' => router_id, 'vxnet' => vxnet_id }) end |
#describe_routers(filters = {}) ⇒ Object
Describe all or specified routers API Reference
8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/fog/qingcloud/requests/compute/describe_routers.rb', line 8 def describe_routers(filters = {}) unless filters.is_a?(Hash) Fog::Logger.warning("describe_routers with #{filters.class} param is deprecated, use describe_routers('router-id' => []) instead [light_black](#{caller.first})[/]") filters = {'router-id' => [*filters]} end params = Fog::QingCloud.indexed_param('routers', filters['router-id']) || {} params.merge!(Fog::QingCloud.indexed_param('status', filters['status'])) if filters['status'] params['search_word'] = filters['search_word'] request({ 'action' => 'DescribeRouters', }.merge!(params)) end |
#describe_security_group_rules(group_id = nil, rule_ids = nil, direction = nil) ⇒ Object
Describe all specified security group rules API Reference
8 9 10 11 12 13 14 15 |
# File 'lib/fog/qingcloud/requests/compute/describe_security_group_rules.rb', line 8 def describe_security_group_rules(group_id = nil, rule_ids = nil, direction = nil) params = { 'action' => 'DescribeSecurityGroupRules', 'security_group' => group_id, 'direction' => direction }.merge(Fog::QingCloud.indexed_param('security_group_rules', rule_ids)) request(params) end |
#describe_security_groups(filters = {}) ⇒ Object
Describe all or specified security groups API Reference
8 9 10 11 12 13 14 15 16 |
# File 'lib/fog/qingcloud/requests/compute/describe_security_groups.rb', line 8 def describe_security_groups(filters = {}) id = filters['group-id'] params = Fog::QingCloud.indexed_param('security_groups', filters['group-id']) params['search_word'] = filters['search-word'] || filters['search_word'] || filters['group-name'] request({ 'action' => 'DescribeSecurityGroups', 'verbose' => filters['verbose'] || 1 }.merge!(params)) end |
#describe_volumes(filters = {}) ⇒ Object
Describe all or specified volumes. API Reference
8 9 10 11 12 13 14 15 16 17 |
# File 'lib/fog/qingcloud/requests/compute/describe_volumes.rb', line 8 def describe_volumes(filters = {}) params = Fog::QingCloud.indexed_param('volumes', filters['volume-id']) params.merge!(Fog::QingCloud.indexed_param('status', filters['status'])) params['search_word'] = filters['name'] params['instance_id'] = filters['instance-id'] request({ 'action' => 'DescribeVolumes', 'verbose' => filters['verbose'] || 1 }.merge!(params)) end |
#describe_vxnet_instances(vxnet_id, filters = {}) ⇒ Object
Describe all or specified vxnets API Reference
8 9 10 11 12 13 14 15 |
# File 'lib/fog/qingcloud/requests/compute/describe_vxnet_instances.rb', line 8 def describe_vxnet_instances(vxnet_id, filters = {}) params = { 'action' => 'DescribeVxnetInstances', 'status' => filters['status'] || 'running' }.merge Fog::QingCloud.indexed_param('instances', filters['instance-id']) request(params) end |
#describe_vxnets(filters = {}) ⇒ Object
Describe all or specified vxnets API Reference
8 9 10 11 12 13 14 15 |
# File 'lib/fog/qingcloud/requests/compute/describe_vxnets.rb', line 8 def describe_vxnets(filters = {}) params = Fog::QingCloud.indexed_param('vxnets', [*filters['vxnet-id']]) params['search_word'] = filters['search_word'] request({ 'action' => 'DescribeVxnets', 'verbose' => filters['verbose'] || 1 }.merge!(params)) end |
#detach_key_pairs(key_id, instance_id) ⇒ Object
Delete a key pair that you own API Reference
8 9 10 11 12 13 14 15 |
# File 'lib/fog/qingcloud/requests/compute/detach_key_pairs.rb', line 8 def detach_key_pairs(key_id, instance_id) args = { 'action' => 'DetachKeyPairs', } args.merge! Fog::QingCloud.indexed_param('keypairs', [*key_id]) args.merge! Fog::QingCloud.indexed_param('instances', [*key_id]) request(args) end |
#detach_volumes(server_id, volume_id) ⇒ Object
Detach an EBS volume from a running instance
10 11 12 13 14 15 16 |
# File 'lib/fog/qingcloud/requests/compute/detach_volumes.rb', line 10 def detach_volumes(server_id, volume_id) args = { 'action' => 'DetachVolumes', 'instance' => server_id }.merge Fog::QingCloud.indexed_param('volumes', volume_id) request(args) end |
#disassociate_address(id) ⇒ Object
Disassociate an elastic IP address from its instance (if any) API Reference
8 9 10 11 12 13 |
# File 'lib/fog/qingcloud/requests/compute/disassociate_address.rb', line 8 def disassociate_address(id) args = { 'action' => 'DissociateEips' }.merge(Fog::QingCloud.indexed_param('eips', [*id])) request(args) end |
#join_router(rt_id, vxnet_id, ip_network, features = 1) ⇒ Object
7 8 9 10 11 12 13 14 |
# File 'lib/fog/qingcloud/requests/compute/join_router.rb', line 7 def join_router(rt_id, vxnet_id, ip_network, features = 1) args = {'action' => 'JoinRouter', 'router' => rt_id, 'vxnet' => vxnet_id, 'ip_network' => ip_network, 'features' => features} request(args) end |
#join_vxnet(vxnet_id, server_id) ⇒ Object
6 7 8 9 10 11 12 |
# File 'lib/fog/qingcloud/requests/compute/join_vxnet.rb', line 6 def join_vxnet(vxnet_id, server_id) params = Fog::QingCloud.indexed_param('instances', [*server_id]) params['vxnet'] = vxnet_id request({ 'action' => 'JoinVxnet', }.merge!(params)) end |
#leave_router(rt_id, vxnet_id) ⇒ Object
7 8 9 10 11 12 |
# File 'lib/fog/qingcloud/requests/compute/leave_router.rb', line 7 def leave_router(rt_id, vxnet_id) args = {'action' => 'LeaveRouter', 'router' => rt_id} args.merge! Fog::QingCloud.indexed_param('vxnets', [*vxnet_id]) request(args) end |
#leave_vxnet(vxnet_id, server_id) ⇒ Object
6 7 8 9 10 11 12 |
# File 'lib/fog/qingcloud/requests/compute/leave_vxnet.rb', line 6 def leave_vxnet(vxnet_id, server_id) params = Fog::QingCloud.indexed_param('instances', [*server_id]) params['vxnet'] = vxnet_id request({ 'action' => 'LeaveVxnet', }.merge!(params)) end |
#modify_resource_attributes(id, resource_type, name = nil, description = nil) ⇒ Object
Delete a key pair that you own API Reference API Reference API Reference API Reference API Reference API Reference API Reference
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/fog/qingcloud/requests/compute/modify_resource_attributes.rb', line 14 def modify_resource_attributes(id, resource_type, name = nil, description = nil) aliased_resource_type = { 'address' => 'eip', 'server' => 'instance' } resource_type = aliased_resource_type.fetch(resource_type, resource_type) action = "Modify#{Fog::QingCloud.camelcase_string(resource_type)}Attributes" action = "ModifyKeyPairAttributes" if resource_type == 'keypair' name_key = "#{resource_type}_name" args = { 'action' => action, name_key => name, 'description' => description, resource_type => id } puts args request(args) end |
#modify_router_attributes(id, attributes) ⇒ Object
7 8 9 10 11 12 13 14 15 16 |
# File 'lib/fog/qingcloud/requests/compute/modify_router_attributes.rb', line 7 def modify_router_attributes(id, attributes) args = {'action' => 'ModifyRouterAttributes', 'router' => id, 'eip' => attributes['eip'], 'security_group' => attributes['security_group_id'], 'router_name' => attributes['name'], 'description' => attributes['description']} args['eip'] ||= '' request(args) end |
#modify_security_group_rule_attributes(rule_id, priority, name = nil) ⇒ Object
7 8 9 10 11 12 13 14 |
# File 'lib/fog/qingcloud/requests/compute/modify_security_group_rule_attributes.rb', line 7 def modify_security_group_rule_attributes(rule_id, priority, name = nil) args = { 'action' => 'ModifySecurityGroupRuleAttributes', 'security_group_rule' => rule_id, 'security_group_rule_name' => name } request(args) end |
#reboot_instances(instance_id) ⇒ Object
Reboot specified instances API Reference
9 10 11 12 13 14 |
# File 'lib/fog/qingcloud/requests/compute/reboot_instances.rb', line 9 def reboot_instances(instance_id) params = Fog::QingCloud.indexed_param('instances', instance_id) request({ 'action' => 'RestartInstances', }.merge!(params)) end |
#release_address(id) ⇒ Object
Release an elastic IP address. API Reference
8 9 10 11 12 |
# File 'lib/fog/qingcloud/requests/compute/release_address.rb', line 8 def release_address(id) args = Fog::QingCloud.indexed_param('eips', [*id]) args['action'] = 'ReleaseEips' request(args) end |
#reload ⇒ Object
188 189 190 |
# File 'lib/fog/qingcloud/compute.rb', line 188 def reload @connection.reset end |
#reset_instances(instance_id) ⇒ Object
Stop specified instance API Reference
8 9 10 11 12 13 14 |
# File 'lib/fog/qingcloud/requests/compute/reset_instances.rb', line 8 def reset_instances(instance_id) params = Fog::QingCloud.indexed_param('instances', instance_id) params['force'] = 1 if force request({ 'action' => 'ResetInstances' }.merge!(params)) end |
#resize_instances(instance_id, target_instance_type = nil, cpu = nil, memory = nil) ⇒ Object
Resize specified instance If target_instance_type is specified, cpu and memory will be ignored. Otherwise cpu and memory must be specified. API Reference
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/fog/qingcloud/requests/compute/resize_instances.rb', line 10 def resize_instances(instance_id, target_instance_type = nil, cpu = nil, memory = nil) params = Fog::QingCloud.indexed_param('instances', instance_id) if target_instance_type params['instance_type'] = target_instance_type else raise Fog::QingCloud::Errors::CommonClientError, "cpu must be one of [1, 2, 4, 8, 16]." unless [1, 2, 4, 8, 16].include? cpu raise Fog::QingCloud::Errors::CommonClientError, "memory must be one of [512, 1024, 2048, 4096, 8192, 16384]." unless [512, 1024, 2048, 4096, 8192, 16384].include? memory params['cpu'] = cpu params['memory'] = memory end request({ 'action' => 'ResizeInstances' }.merge!(params)) end |
#routers_power(id, action) ⇒ Object
8 9 10 11 12 13 |
# File 'lib/fog/qingcloud/requests/compute/routers_power.rb', line 8 def routers_power(id, action) action = action.downcase.capitalize args = {'action' => "Power#{action}Routers"} args.merge!(Fog::QingCloud.indexed_param('routers', [*id])) request(args) end |
#run_instances(image_id, count, options = {}) ⇒ Object
5 6 7 8 9 10 11 12 13 |
# File 'lib/fog/qingcloud/requests/compute/run_instances.rb', line 5 def run_instances(image_id, count, = {}) vxnets = .delete('vxnets') || [] .merge! Fog::QingCloud.indexed_param('vxnets', vxnets) request({ 'action' => 'RunInstances', 'image_id' => image_id, 'count' => count, }.merge!()) end |
#start_instances(instance_id) ⇒ Object
Start specified instance API Reference
8 9 10 11 |
# File 'lib/fog/qingcloud/requests/compute/start_instances.rb', line 8 def start_instances(instance_id) params = Fog::QingCloud.indexed_param('instances', instance_id).merge('action' => 'StartInstances') request(params) end |
#stop_instances(instance_id, force = false) ⇒ Object
Stop specified instance API Reference
8 9 10 11 12 13 14 |
# File 'lib/fog/qingcloud/requests/compute/stop_instances.rb', line 8 def stop_instances(instance_id, force = false) params = Fog::QingCloud.indexed_param('instances', instance_id) params['force'] = 1 if force request({ 'action' => 'StopInstances' }.merge!(params)) end |
#terminate_instances(instance_id) ⇒ Object
7 8 9 10 11 12 |
# File 'lib/fog/qingcloud/requests/compute/terminate_instances.rb', line 7 def terminate_instances(instance_id) params = Fog::QingCloud.indexed_param('instances', instance_id) request({ 'action' => 'TerminateInstances', }.merge!(params)) end |
#update_routers(id) ⇒ Object
7 8 9 10 11 |
# File 'lib/fog/qingcloud/requests/compute/update_routers.rb', line 7 def update_routers(id) args = {'action' => 'UpdateRouters'} args.merge!(Fog::QingCloud.indexed_param('routers', [*id])) request(args) end |
#upload_userdata_attachment(options) ⇒ Object
Delete a key pair that you own API Reference
8 9 10 |
# File 'lib/fog/qingcloud/requests/compute/upload_userdata_attachment.rb', line 8 def () request(.merge('action' => 'UploadUserDataAttachment')) end |