Sha256: 60150ac16bcd988d3b738ed6d10003ffc639cd730429d425b6bcfd3432d58297

Contents?: true

Size: 1.99 KB

Versions: 13

Compression:

Stored size: 1.99 KB

Contents

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

Version data entries

13 entries across 11 versions & 3 rubygems

Version Path
fog-2.3.0 lib/fog/opennebula/models/compute/server.rb
fog-ifeel-2.2.0 lib/fog/opennebula/models/compute/server.rb
fog-2.2.0 lib/fog/opennebula/models/compute/server.rb
fog-2.1.0 lib/fog/opennebula/models/compute/server.rb
vagrant-packet-0.1.1 vendor/bundle/ruby/2.4.0/gems/fog-1.42.1/lib/fog/opennebula/models/compute/server.rb
vagrant-packet-0.1.1 vendor/bundle/ruby/2.5.0/gems/fog-1.42.1/lib/fog/opennebula/models/compute/server.rb
vagrant-packet-0.1.1 vendor/bundle/ruby/2.3.0/gems/fog-1.42.1/lib/fog/opennebula/models/compute/server.rb
fog-1.42.1 lib/fog/opennebula/models/compute/server.rb
fog-2.0.0 lib/fog/opennebula/models/compute/server.rb
fog-1.42.0 lib/fog/opennebula/models/compute/server.rb
fog-1.41.0 lib/fog/opennebula/models/compute/server.rb
fog-1.40.0 lib/fog/opennebula/models/compute/server.rb
fog-1.39.0 lib/fog/opennebula/models/compute/server.rb