Sha256: e2a92bf93b37855ba0c0e64f8d98fe5613e04b722fb7ff06c3f8fdfdcc80496b

Contents?: true

Size: 1.71 KB

Versions: 2

Compression:

Stored size: 1.71 KB

Contents

require 'yao/resources/metadata_available'
require 'yao/resources/action'
module Yao::Resources
  class Server < Base
    friendly_attributes :addresses, :metadata, :name, :progress,
                        :status, :tenant_id, :user_id, :key_name
    map_attribute_to_attribute :hostId => :host_id
    map_attribute_to_resource  :flavor => Flavor
    map_attribute_to_resource  :image  => Image
    map_attribute_to_resources :security_groups => SecurityGroup

    map_attribute_to_attribute 'OS-EXT-AZ:availability_zone'         => :availability_zone
    map_attribute_to_attribute 'OS-DCF:diskConfig'                   => :dcf_disk_config
    map_attribute_to_attribute 'OS-EXT-SRV-ATTR:host'                => :ext_srv_attr_host
    map_attribute_to_attribute 'OS-EXT-SRV-ATTR:hypervisor_hostname' => :ext_srv_attr_hypervisor_hostname
    map_attribute_to_attribute 'OS-EXT-SRV-ATTR:instance_name'       => :ext_srv_attr_instance_name
    map_attribute_to_attribute 'OS-EXT-STS:power_state'              => :ext_sts_power_state
    map_attribute_to_attribute 'OS-EXT-STS:task_state'               => :ext_sts_task_state
    map_attribute_to_attribute 'OS-EXT-STS:vm_state'                 => :ext_sts_vm_state

    self.service        = "compute"
    self.resource_name  = "server"
    self.resources_name = "servers"
    def self.start(id)
      action(id, "os-start" => nil)
    end

    def self.shutoff(id)
      action(id, "os-stop" => nil)
    end

    def self.reboot(id)
      action(id,"reboot" => { "type" => "HARD" })
    end

    def self.resize(id, flavor_id)
      action(id,"resize" => { "flavorRef" => flavor_id })
    end

    class << self
      alias :stop :shutoff
    end

    extend MetadataAvailable
    extend Action
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
yao-0.2.2 lib/yao/resources/server.rb
yao-0.2.1 lib/yao/resources/server.rb