Sha256: 54e063277b03aea0cbeffc485cfc6ef7ff22692bfb118ec2479ff933b7131455

Contents?: true

Size: 1.36 KB

Versions: 9

Compression:

Stored size: 1.36 KB

Contents

module Fog
  module Compute
    class QingCloud
      class Real

        # Release an elastic IP address.
        # {API Reference}[https://docs.qingcloud.com/api/eip/release_eips.html]
        def release_address(id)
          args = Fog::QingCloud.indexed_param('eips', [*id])
          args['action'] = 'ReleaseEips'
          request(args)
        end

      end

      class Mock

        def release_address(id)
          response = Excon::Response.new
          ids = [*id]

          address = self.data[:addresses][public_ip_or_allocation_id] || self.data[:addresses].values.detect {|a| a['allocationId'] == public_ip_or_allocation_id }

          if address
            if address['allocationId'] && public_ip_or_allocation_id == address['publicIp']
              raise Fog::Compute::QingCloud::Error, "InvalidParameterValue => You must specify an allocation id when releasing a VPC elastic IP address"
            end

            self.data[:addresses].delete(address['publicIp'])
            response.status = 200
            response.body = {
              'requestId' => Fog::QingCloud::Mock.request_id,
              'return'    => true
            }
            response
          else
            raise Fog::Compute::QingCloud::Error.new("AuthFailure => The address '#{public_ip_or_allocation_id}' does not belong to you.")
          end
        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/release_address.rb
ns-fog-1.22.10 lib/fog/qingcloud/requests/compute/release_address.rb
ns-fog-1.22.9 lib/fog/qingcloud/requests/compute/release_address.rb
ns-fog-1.22.8 lib/fog/qingcloud/requests/compute/release_address.rb
ns-fog-1.22.7 lib/fog/qingcloud/requests/compute/release_address.rb
ns-fog-1.22.6 lib/fog/qingcloud/requests/compute/release_address.rb
ns-fog-1.22.4 lib/fog/qingcloud/requests/compute/release_address.rb
ns-fog-1.22.3 lib/fog/qingcloud/requests/compute/release_address.rb
ns-fog-1.22.2 lib/fog/qingcloud/requests/compute/release_address.rb