Parent

Class/Module Index [+]

Quicksearch

Fog::Terremark::Shared::Server

Public Instance Methods

PublicIpAddress() click to toggle source
# File lib/fog/terremark/models/shared/server.rb, line 50
def PublicIpAddress
  @PublicIpAddress ||=
    if internet_services.size > 0
      internet_services[0].PublicIpAddress["Name"]
    end
  @PublicIpAddress
end
create_internet_services(internet_spec) click to toggle source
# File lib/fog/terremark/models/shared/server.rb, line 135
def create_internet_services(internet_spec)
  public_ip_info = nil
  internet_service_id = nil
  internet_spec.each do |proto, ports|
    for port in ports
      if not public_ip_info
        #Create the first internet service and allocate public IP
        inet_services = service.internetservices.create({
              "Name" => self.name,
              "Protocol" => proto,
              "Port" => port,
        })
        internet_service_id = inet_services.Id
        public_ip_info = inet_services.PublicIpAddress

      else
        #create additional services to existing Public IP
        inet_services = service.internetservices.create({
              "public_ip_address_id" => public_ip_info["Id"],
              "Name" => self.name,
              "Protocol" => proto,
              "Port" => port,
        }
            )
        internet_service_id = inet_services.Id
      end

      #Create the associate node service to the server
      service.nodeservices.create({"Name" => self.name,
                                   "IpAddress" => self.IpAddress,
                                   "Port" => port,
                                   "InternetServiceId" => internet_service_id
      })
    end
  end
  true
end
delete_internet_services() click to toggle source
# File lib/fog/terremark/models/shared/server.rb, line 62
def delete_internet_services
    #Find the internet service

    while (inet_service = internet_services.pop) do

      nodes = service.nodeservices.all(inet_service.Id)
      #Delete all the associated nodes
      nodes.select { |item| item.destroy }
      #Clear out the services
      inet_service.destroy(delete_public_ip = !(internet_services.size > 0))
    end
    true
end
destroy() click to toggle source
# File lib/fog/terremark/models/shared/server.rb, line 36
def destroy
  case self.status
    when VAppStatus::BEING_CREATED, VAppStatus::BEING_DEPLOYED
      return false
    when VAppStatus::POWERED_ON
      data = service.power_off(self.id).body
      wait_for { off? }
    end
    #Failsafe .. Always check if we are ready
  wait_for { ready? }
  service.delete_vapp(self.id)
  true
end
graceful_restart() click to toggle source
# File lib/fog/terremark/models/shared/server.rb, line 128
def graceful_restart
  requires :id
  shutdown
  wait_for { off? }
  power_on
end
internet_services() click to toggle source
# File lib/fog/terremark/models/shared/server.rb, line 58
def internet_services
    @internet_services ||= service.internetservices.all.select {|item| item.Name == self.name}
end
off?() click to toggle source
# File lib/fog/terremark/models/shared/server.rb, line 85
def off?
  status == VAppStatus::POWERED_OFF
end
on?() click to toggle source
# File lib/fog/terremark/models/shared/server.rb, line 81
def on?
  status == VAppStatus::POWERED_ON
end
power_off() click to toggle source
# File lib/fog/terremark/models/shared/server.rb, line 100
def power_off
  requires :id
  begin
    service.power_off(id)
  rescue Excon::Errors::InternalServerError => e
    #Frankly we shouldn't get here ...
    raise e unless e.to_s =~ /because it is already powered off/
  end
  true
end
power_on(options = {}) click to toggle source
# File lib/fog/terremark/models/shared/server.rb, line 89
def power_on(options = {})
  requires :id
  begin
    service.power_on(id)
  rescue Excon::Errors::InternalServerError => e
    #Frankly we shouldn't get here ...
    raise e unless e.to_s =~ /because it is already powered on/
  end
  true
end
power_reset() click to toggle source
# File lib/fog/terremark/models/shared/server.rb, line 122
def power_reset
  requires :id
  service.power_reset(id)
  true
end
ready?() click to toggle source

{ '0' => 'Being created', '2' => 'Powered Off', '4' => 'Powered On'}

# File lib/fog/terremark/models/shared/server.rb, line 77
def ready?
  status == VAppStatus::POWERED_OFF
end
reload() click to toggle source
# File lib/fog/terremark/models/shared/server.rb, line 33
def reload
 merge_attributes(service.get_vapp(id).body)
end
save() click to toggle source
# File lib/fog/terremark/models/shared/server.rb, line 173
def save
  requires :name
  if powerOn
  end
  data = service.instantiate_vapp_template(
      server_name=name,
      vapp_template=image,
      options={
          'ssh_key_fingerprint' => sshkeyFingerPrint,
          'cpus' => vcpus,
          'memory' => memory
      })

  merge_attributes(data.body)
  wait_for { ready? }

  #Optional, incase further configuration required.
  if powerOn
    power_on
    wait_for { ready? }
  end

  true
end
shutdown() click to toggle source
# File lib/fog/terremark/models/shared/server.rb, line 111
def shutdown
  requires :id
  begin
    service.power_shutdown(id)
  rescue Excon::Errors::InternalServerError => e
    #Frankly we shouldn't get here ...
    raise e unless e.to_s =~ /because it is already powered off/
  end
  true
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.