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/opennebula/models/compute/server.rb
2016-05-10 13:33:48 +06:00

100 lines
2 KiB
Ruby

require 'fog/compute/models/server'
module Fog
module Compute
class OpenNebula
class Server < Fog::Compute::Server
identity :id
attribute :template_str
attribute :name
attribute :uuid
attribute :state
attribute :status
attribute :ip
attribute :mac
attribute :vcpu
attribute :cpu
attribute :memory
attribute :user
attribute :gid
attribute :group
attribute :onevm_object
attribute :flavor
def save
merge_attributes(service.vm_allocate(attributes))
end
# only for integration in foreman
# needed by formbuilder
# should be handled by foreman and not by fog
def vminterfaces
[]
end
# only for integration in foreman
# needed by formbuilder
# should be handled by foreman and not from by fog
def vminterfaces_attributes=(attributes)
true
end
def vm_ip_address
ip
end
def private_ip_address
ip
end
def public_ip_address
ip
end
def vm_mac_address
mac
end
def start
if status == 4
service.vm_resume(id)
end
true
end
def stop
Fog::Logger.warning("stop VM: ID:#{id}")
service.vm_stop(id)
end
def suspend
service.vm_suspend(id)
end
def resume
service.vm_resume(id)
end
def destroy
service.vm_destroy(id)
end
def ready?
(status == 3)
end
# only for integration in foreman
# needed by formbuilder
# should be handled by foreman and not by fog
def template_id
""
end
def console_output
requires :id
service.get_vnc_console(id, "vnc", onevm_object)
end
end
end
end
end