1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00
fog--fog/lib/fog/ibm/requests/compute/modify_instance.rb

71 lines
2.4 KiB
Ruby

module Fog
module Compute
class IBM
class Real
# Modify an instance
#
# ==== Parameters
# * instance_id<~String> - id of instance to rename
# * params<~Hash> - depends on type of request
#
# ==== Returns
# * response<~Excon::Response>:
# * body<~Hash>:
# * 'success'<~Bool>:
# OR
# * response<~Excon::Response>:
# * body<~Hash>:
# ????
# * 'expirationTime'<~Integer>: new expiration time of instance (epoch)
#
# Note: The feature of dynamically attaching or detaching storage is only
# supported by data centers where the KVM host version is RHEL 6.1. If the
# feature is not supported by the data center, you will get an exception like
# "Unsupported exception. Dynamic features are not supported on the KVM
# Host".
def modify_instance(instance_id, options={})
request(
:method => 'PUT',
:expects => 200,
:path => "/instances/#{instance_id}",
:body => options
)
end
end
class Mock
def modify_instance(instance_id, params={})
response = Excon::Response.new
if instance_exists? instance_id
if params['state'] == 'restart'
self.data[:instances][instance_id]["status"] = "8"
response.status = 200
response.body = { "success" => true }
elsif params['type'] == 'attach' || params['type'] == 'detach'
if Fog::Storage[:ibm].volume_exists?(params['volume_id'])
# TODO: Update the instance in the data hash, assuming IBM ever gets this feature working properly.
response.status = 415
else
response.status = 404
end
elsif params['name']
self.data[:instances][instance_id]["name"] = params['name']
response.status = 200
response.body = { "success" => true }
elsif params['expirationTime']
self.data[:instances][instance_id]["expirationTime"] = params['expirationTime']
response.status = 200
response.body = { 'expirationTime' => params['expirationTime'] }
end
else
response.status = 404
end
response
end
end
end
end
end