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

Version Path
ns-fog-1.22.11 lib/fog/qingcloud/requests/compute/apply_security_group.rb
ns-fog-1.22.10 lib/fog/qingcloud/requests/compute/apply_security_group.rb
ns-fog-1.22.9 lib/fog/qingcloud/requests/compute/apply_security_group.rb
ns-fog-1.22.8 lib/fog/qingcloud/requests/compute/apply_security_group.rb
ns-fog-1.22.7 lib/fog/qingcloud/requests/compute/apply_security_group.rb
ns-fog-1.22.6 lib/fog/qingcloud/requests/compute/apply_security_group.rb
ns-fog-1.22.4 lib/fog/qingcloud/requests/compute/apply_security_group.rb
ns-fog-1.22.3 lib/fog/qingcloud/requests/compute/apply_security_group.rb
ns-fog-1.22.2 lib/fog/qingcloud/requests/compute/apply_security_group.rb