Sha256: 99d96e31286f99a6cfda5f6105b511fffd1e10ba584a517f27ad632c41d93a45

Contents?: true

Size: 1.58 KB

Versions: 9

Compression:

Stored size: 1.58 KB

Contents

module Fog
  module Compute
    class QingCloud
      class Real

        # Describe all or specified security groups
        # {API Reference}[https://docs.qingcloud.com/api/sg/describe_security_groups.html]
        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

      end

      class Mock

        def describe_security_groups(filters = {})
          response = Excon::Response.new
          id = [*filters['group-id']]
          search_word = filters['search-word'] || filters['search_word'] || filters['group-name']

          security_group_info = self.data[:security_groups]

          security_group_info = security_group_info.select {|k, v| id.include? k}
          if search_word
            security_group_info = security_group_info.select {|k, v| k =~ Regexp.new(search_word) or v['security_group_name'] =~ Regexp.new(search_word)}
          end

          response.status = 200
          response.body = {
            'action'             => 'DescribeSecurityGroupsResponse',
            'security_group_set' => security_group_info.values,
            'total_count'        => security_group_info.length,
            '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/describe_security_groups.rb
ns-fog-1.22.10 lib/fog/qingcloud/requests/compute/describe_security_groups.rb
ns-fog-1.22.9 lib/fog/qingcloud/requests/compute/describe_security_groups.rb
ns-fog-1.22.8 lib/fog/qingcloud/requests/compute/describe_security_groups.rb
ns-fog-1.22.7 lib/fog/qingcloud/requests/compute/describe_security_groups.rb
ns-fog-1.22.6 lib/fog/qingcloud/requests/compute/describe_security_groups.rb
ns-fog-1.22.4 lib/fog/qingcloud/requests/compute/describe_security_groups.rb
ns-fog-1.22.3 lib/fog/qingcloud/requests/compute/describe_security_groups.rb
ns-fog-1.22.2 lib/fog/qingcloud/requests/compute/describe_security_groups.rb