2011-09-07 10:00:25 -04:00
module Fog
module Compute
class Cloudstack
class Real
# Updates account information for the authenticated user.
#
# {CloudStack API Reference}[http://download.cloud.com/releases/2.2.0/api_2.2.4/global_admin/destroyVirtualMachine.html]
def destroy_virtual_machine ( options = { } )
options . merge! (
'command' = > 'destroyVirtualMachine'
)
request ( options )
end
2012-05-08 13:01:13 -04:00
end # Real
class Mock
def destroy_virtual_machine ( options = { } )
2012-07-18 19:00:32 -04:00
identity = options [ " id " ]
2012-05-08 13:01:13 -04:00
2012-07-18 19:00:32 -04:00
server = self . data [ :servers ] [ identity ]
unless server
raise Fog :: Compute :: Cloudstack :: BadRequest . new ( " Unable to execute API command attachserver due to invalid value. Object servers(uuid: #{ identity } ) does not exist. " )
end
job_id = Fog :: Cloudstack . uuid
job = {
" cmd " = > " com.cloud.api.commands.DestroyVirtualMachineCmd " ,
" created " = > Time . now . iso8601 ,
" jobid " = > job_id ,
" jobstatus " = > 1 ,
" jobprocstatus " = > 0 ,
" jobresultcode " = > 0 ,
" jobresulttype " = > " object " ,
" jobresult " = >
{ " virtualmachine " = > server }
}
self . data [ :jobs ] [ job_id ] = job
2012-05-08 13:01:13 -04:00
self . data [ :servers ] . delete ( identity )
2012-07-18 19:00:32 -04:00
{ " destroyvirtualmachineresponse " = > { " jobid " = > job_id } }
2012-05-08 13:01:13 -04:00
end
2011-09-07 10:00:25 -04:00
end
2012-05-08 13:01:13 -04:00
end # Cloudstack
end # Compute
end # Fog