1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
module Fog
module AWS
class Compute
class Real
require 'fog/aws/parsers/compute/move_address_to_vpc'
# Move address to VPC scope
#
# === Returns
# * response<~Excon::Response>:
# * body<~<Hash>:
# * 'allocationId'<~String> - The allocation ID for the Elastic IP address
# * 'requestId'<~String> - Id of the request
# * 'status'<~String> - The status of the move of the IP address (MoveInProgress | InVpc | InClassic)
def move_address_to_vpc(public_ip)
request(
'Action' => 'MoveAddressToVpc',
'PublicIp' => public_ip,
:idempotent => true,
:parser => Fog::Parsers::AWS::Compute::MoveAddressToVpc.new
)
end
end
class Mock
def move_address_to_vpc(public_ip)
response = Excon::Response.new
allocation_id = "eip-#{Fog::Mock.random_hex(8)}"
address = self.data[:addresses][public_ip]
if address
address['domain'] = 'vpc'
address['allocationId'] = allocation_id
response.status = 200
response.body = {
'requestId' => Fog::AWS::Mock.request_id,
'allocationId' => allocation_id,
'status' => "InVpc"
}
response
else
raise Fog::AWS::Compute::NotFound.new("Address does not exist")
end
end
end
end
end
end
|