class Fog::Baremetal::OpenStack::Node

Public Class Methods

new(attributes) click to toggle source
Calls superclass method
# File lib/fog/openstack/models/baremetal/node.rb, line 32
def initialize(attributes)
  # Old 'connection' is renamed as service and should be used instead
  prepare_service_value(attributes)
  super
end

Public Instance Methods

chassis() click to toggle source
# File lib/fog/openstack/models/baremetal/node.rb, line 68
def chassis
  requires :uuid
  service.get_chassis(self.chassis_uuid).body
end
create() click to toggle source
# File lib/fog/openstack/models/baremetal/node.rb, line 43
def create
  requires :driver
  merge_attributes(service.create_node(self.attributes).body)
  self
end
destroy() click to toggle source
# File lib/fog/openstack/models/baremetal/node.rb, line 62
def destroy
  requires :uuid
  service.delete_node(self.uuid)
  true
end
metadata() click to toggle source
# File lib/fog/openstack/models/baremetal/node.rb, line 78
def metadata
  requires :uuid
  service.get_node(self.uuid).headers
end
ports() click to toggle source
# File lib/fog/openstack/models/baremetal/node.rb, line 73
def ports
  requires :uuid
  service.list_ports_detailed({:node_uuid => self.uuid}).body['ports']
end
save() click to toggle source
# File lib/fog/openstack/models/baremetal/node.rb, line 38
def save
  requires :driver
  identity ? update : create
end
update(patch=nil) click to toggle source
# File lib/fog/openstack/models/baremetal/node.rb, line 49
def update(patch=nil)
  requires :uuid
  if patch
    merge_attributes(service.patch_node(uuid, patch).body)
  else
    # TODO implement update_node method using PUT method and self.attributes
    # once it is supported by Ironic
    raise ArgumentError, ('You need to provide patch attribute. Ironic does '
                          'not support update by hash yet, only by jsonpatch.')
  end
  self
end