# 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
# 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
# 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
# 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
# File lib/fog/terremark/models/shared/server.rb, line 128 def graceful_restart requires :id shutdown wait_for { off? } power_on end
# 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
# File lib/fog/terremark/models/shared/server.rb, line 85 def off? status == VAppStatus::POWERED_OFF end
# File lib/fog/terremark/models/shared/server.rb, line 81 def on? status == VAppStatus::POWERED_ON end
# 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
# 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
# File lib/fog/terremark/models/shared/server.rb, line 122 def power_reset requires :id service.power_reset(id) true end
{ '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
# File lib/fog/terremark/models/shared/server.rb, line 33 def reload merge_attributes(service.get_vapp(id).body) end
# 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
# 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
Generated with the Darkfish Rdoc Generator 2.