diff --git a/lib/fog/hp/compute.rb b/lib/fog/hp/compute.rb index 4f42b46d2..e4dd43ded 100644 --- a/lib/fog/hp/compute.rb +++ b/lib/fog/hp/compute.rb @@ -51,6 +51,7 @@ module Fog request :list_servers_detail request :reboot_server request :rebuild_server + request :release_address #request :resize_server #request :revert_resized_server request :server_action diff --git a/lib/fog/hp/requests/compute/release_address.rb b/lib/fog/hp/requests/compute/release_address.rb new file mode 100644 index 000000000..87a88cf1f --- /dev/null +++ b/lib/fog/hp/requests/compute/release_address.rb @@ -0,0 +1,39 @@ +module Fog + module Compute + class HP + class Real + + # Release an existing floating IP address + # + # ==== Parameters + # * id<~Integer> - Id of floating IP address to delete + # + def release_address(address_id) + request( + :expects => 202, + :method => 'DELETE', + :path => "os-floating-ips/#{address_id}" + ) + end + + end + + class Mock + + def release_address(address_id) + response = Excon::Response.new + if self.data[:addresses][address_id] + self.data[:last_modified][:addresses].delete(address_id) + self.data[:addresses].delete(address_id) + response.status = 202 + response.body = "202 Accepted\n\nThe request is accepted for processing.\n\n " + response + else + raise Fog::Compute::HP::NotFound + end + end + + end + end + end +end