Sha256: ccb061dcef4470631acfd4ad401c1f7464a7e5c567ef42cb2c554a0b003e392e
Contents?: true
Size: 1.33 KB
Versions: 9
Compression:
Stored size: 1.33 KB
Contents
module Fog module Compute class QingCloud class Real # {API Reference}[https://docs.qingcloud.com/api/sg/apply_security_group.html] 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 end class Mock def apply_security_group(id, server_ids = []) sg = self.data[:security_groups][id] raise Fog::QingCloud::Errors::NotFound, "security group #{id} does not exist" unless sg unknown_servers = server_ids - self.data[:instances].keys raise Fog::QingCloud::Errors::NotFound, "servers #{unknown_servers.join(', ')} are not found" unless unknown_servers.empty? server_ids.each do |sid| self.data[:instances][sid]['security_group'] = { 'is_default' => 0, 'security_group_id' => id } end sg['is_applied'] = 1 response = Excon::Response.new response.body = { 'action' => 'ApplySecurityGroupResponse', 'job_id' => Fog::QingCloud::Mock.job_id, 'ret_code' => 0 } response end end end end end
Version data entries
9 entries across 9 versions & 1 rubygems