Method: Fog::Compute::IBM::Mock#modify_instance

Defined in:
lib/fog/ibm/requests/compute/modify_instance.rb

#modify_instance(instance_id, params = {}) ⇒ Object


39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/fog/ibm/requests/compute/modify_instance.rb', line 39

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