Sha256: dbb1f9aec097bfd0f8df89dedf95500422281bda3fb6d72cd1f469a3301fc91d

Contents?: true

Size: 1.46 KB

Versions: 1

Compression:

Stored size: 1.46 KB

Contents

module Fog
  module Resources
    class AzureRM
      # This class provides the actual implemention for service calls.
      class Real
        def list_tagged_resources(tag_name, tag_value = nil)
          begin
            unless tag_name.nil?
              query_filter = "tagname eq '#{tag_name}' "
              query_filter += tag_value.nil? ? '' : "and tagvalue eq '#{tag_value}'"
              promise = @rmc.resources.list(query_filter)
              result = promise.value!
              result.body.next_link = ''
              Azure::ARM::Resources::Models::ResourceListResult.serialize_object(result.body)['value']
            end
          rescue MsRestAzure::AzureOperationError => e
            msg = "Exception listing Resources . #{e.body['error']['message']}"
            raise msg
          end
        end
      end

      # This class provides the mock implementation for unit tests.
      class Mock
        def list_tagged_resources(tag_name, tag_value)
          [
            {
              'id' => _resource_id,
              'name' => 'your-resource-name',
              'type' => 'providernamespace/resourcetype',
              'location' => 'westus',
              'tags' =>
                {
                  tag_name => tag_value
                },
              'plan' =>
                {
                  'name' => 'free'
                }
            }
          ]
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
fog-azure-rm-0.0.4 lib/fog/azurerm/requests/resources/list_tagged_resources.rb