Class: Fog::XenServer::Compute::Models::Server

Inherits:
Compute::Server
  • Object
show all
Extended by:
ClassMethods
Includes:
InstanceMethods
Defined in:
lib/fog/xenserver/compute/models/server.rb

Instance Method Summary collapse

Methods included from ClassMethods

collection_name, provider_class, require_before_save

Methods included from InstanceMethods

#collection, #method_missing, #provider_class, #require_creation_attributes, #respond_to?, #save, #set_attribute

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Fog::XenServer::Compute::Models::InstanceMethods

Instance Method Details

#can_be_cloned?Boolean

Returns:

  • (Boolean)


151
152
153
# File 'lib/fog/xenserver/compute/models/server.rb', line 151

def can_be_cloned?
  allowed_operations.include?("clone")
end

#clean_shutdownObject



144
145
146
147
148
149
# File 'lib/fog/xenserver/compute/models/server.rb', line 144

def clean_shutdown
  return false if halted?
  service.clean_shutdown_vm(reference)
  wait_for(&:halted?)
  true
end

#clone(name) ⇒ Object



155
156
157
158
159
# File 'lib/fog/xenserver/compute/models/server.rb', line 155

def clone(name)
  raise "Clone Operation not Allowed" unless can_be_cloned?
  self.reference = service.clone_vm(reference, name)
  reload
end

#destroyObject



124
125
126
127
128
# File 'lib/fog/xenserver/compute/models/server.rb', line 124

def destroy
  hard_shutdown
  vbds.map(&:destroy)
  service.destroy_record(reference, provider_class)
end

#halted?Boolean

Returns:

  • (Boolean)


119
120
121
122
# File 'lib/fog/xenserver/compute/models/server.rb', line 119

def halted?
  reload
  power_state == "Halted"
end

#hard_shutdownObject



137
138
139
140
141
142
# File 'lib/fog/xenserver/compute/models/server.rb', line 137

def hard_shutdown
  return false if halted?
  service.hard_shutdown_vm(reference)
  wait_for(&:halted?)
  true
end

#home_hypervisorObject



106
107
108
# File 'lib/fog/xenserver/compute/models/server.rb', line 106

def home_hypervisor
  service.hosts.first
end

#mac_addressObject



110
111
112
# File 'lib/fog/xenserver/compute/models/server.rb', line 110

def mac_address
  vifs.first.mac
end

#revert(snapshot) ⇒ Object Also known as: revert_to



161
162
163
164
# File 'lib/fog/xenserver/compute/models/server.rb', line 161

def revert(snapshot)
  snapshot = collection.get_by_reference_or_name_or_uuid(snapshot)
  service.revert_vm(snapshot.reference)
end

#running?Boolean

Returns:

  • (Boolean)


114
115
116
117
# File 'lib/fog/xenserver/compute/models/server.rb', line 114

def running?
  reload
  power_state == "Running"
end

#startObject



130
131
132
133
134
135
# File 'lib/fog/xenserver/compute/models/server.rb', line 130

def start
  return false if running?
  service.start_vm(reference)
  wait_for(&:running?)
  true
end

#tools_installed?Boolean

Returns:

  • (Boolean)


102
103
104
# File 'lib/fog/xenserver/compute/models/server.rb', line 102

def tools_installed?
  !guest_metrics.nil?
end