Class: ChefVPCToolkit::CloudServersVPC::Server
- Inherits:
-
Object
- Object
- ChefVPCToolkit::CloudServersVPC::Server
- Defined in:
- lib/chef-vpc-toolkit/cloud-servers-vpc/server.rb
Instance Attribute Summary collapse
-
#admin_password ⇒ Object
Returns the value of attribute admin_password.
-
#cloud_server_id_number ⇒ Object
Returns the value of attribute cloud_server_id_number.
-
#description ⇒ Object
Returns the value of attribute description.
-
#error_message ⇒ Object
Returns the value of attribute error_message.
-
#external_ip_addr ⇒ Object
Returns the value of attribute external_ip_addr.
-
#flavor_id ⇒ Object
Returns the value of attribute flavor_id.
-
#id ⇒ Object
Returns the value of attribute id.
-
#image_id ⇒ Object
Returns the value of attribute image_id.
-
#internal_ip_addr ⇒ Object
Returns the value of attribute internal_ip_addr.
-
#name ⇒ Object
Returns the value of attribute name.
-
#openvpn_server ⇒ Object
Returns the value of attribute openvpn_server.
-
#retry_count ⇒ Object
Returns the value of attribute retry_count.
-
#server_group_id ⇒ Object
Returns the value of attribute server_group_id.
-
#status ⇒ Object
Returns the value of attribute status.
Class Method Summary collapse
Instance Method Summary collapse
- #delete ⇒ Object
-
#initialize(options = {}) ⇒ Server
constructor
A new instance of Server.
- #openvpn_server? ⇒ Boolean
- #rebuild ⇒ Object
- #to_xml ⇒ Object
Constructor Details
#initialize(options = {}) ⇒ Server
Returns a new instance of Server.
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/chef-vpc-toolkit/cloud-servers-vpc/server.rb', line 22 def initialize(={}) @id=[:id].to_i @name=[:name] @description=[:description] or @description=@name @external_ip_addr=[:external_ip_addr] @internal_ip_addr=[:internal_ip_addr] @cloud_server_id_number=[:cloud_server_id_number].to_i @flavor_id=[:flavor_id].to_i @image_id=[:image_id].to_i @admin_password=[:admin_password] @server_group_id=[:server_group_id].to_i @openvpn_server = [true, "true"].include?([:openvpn_server]) @retry_count=[:retry_count].to_i or 0 @error_message=[:error_message] @status=[:status] end |
Instance Attribute Details
#admin_password ⇒ Object
Returns the value of attribute admin_password.
20 21 22 |
# File 'lib/chef-vpc-toolkit/cloud-servers-vpc/server.rb', line 20 def admin_password @admin_password end |
#cloud_server_id_number ⇒ Object
Returns the value of attribute cloud_server_id_number.
12 13 14 |
# File 'lib/chef-vpc-toolkit/cloud-servers-vpc/server.rb', line 12 def cloud_server_id_number @cloud_server_id_number end |
#description ⇒ Object
Returns the value of attribute description.
9 10 11 |
# File 'lib/chef-vpc-toolkit/cloud-servers-vpc/server.rb', line 9 def description @description end |
#error_message ⇒ Object
Returns the value of attribute error_message.
18 19 20 |
# File 'lib/chef-vpc-toolkit/cloud-servers-vpc/server.rb', line 18 def @error_message end |
#external_ip_addr ⇒ Object
Returns the value of attribute external_ip_addr.
10 11 12 |
# File 'lib/chef-vpc-toolkit/cloud-servers-vpc/server.rb', line 10 def external_ip_addr @external_ip_addr end |
#flavor_id ⇒ Object
Returns the value of attribute flavor_id.
13 14 15 |
# File 'lib/chef-vpc-toolkit/cloud-servers-vpc/server.rb', line 13 def flavor_id @flavor_id end |
#id ⇒ Object
Returns the value of attribute id.
7 8 9 |
# File 'lib/chef-vpc-toolkit/cloud-servers-vpc/server.rb', line 7 def id @id end |
#image_id ⇒ Object
Returns the value of attribute image_id.
14 15 16 |
# File 'lib/chef-vpc-toolkit/cloud-servers-vpc/server.rb', line 14 def image_id @image_id end |
#internal_ip_addr ⇒ Object
Returns the value of attribute internal_ip_addr.
11 12 13 |
# File 'lib/chef-vpc-toolkit/cloud-servers-vpc/server.rb', line 11 def internal_ip_addr @internal_ip_addr end |
#name ⇒ Object
Returns the value of attribute name.
8 9 10 |
# File 'lib/chef-vpc-toolkit/cloud-servers-vpc/server.rb', line 8 def name @name end |
#openvpn_server ⇒ Object
Returns the value of attribute openvpn_server.
16 17 18 |
# File 'lib/chef-vpc-toolkit/cloud-servers-vpc/server.rb', line 16 def openvpn_server @openvpn_server end |
#retry_count ⇒ Object
Returns the value of attribute retry_count.
17 18 19 |
# File 'lib/chef-vpc-toolkit/cloud-servers-vpc/server.rb', line 17 def retry_count @retry_count end |
#server_group_id ⇒ Object
Returns the value of attribute server_group_id.
15 16 17 |
# File 'lib/chef-vpc-toolkit/cloud-servers-vpc/server.rb', line 15 def server_group_id @server_group_id end |
#status ⇒ Object
Returns the value of attribute status.
19 20 21 |
# File 'lib/chef-vpc-toolkit/cloud-servers-vpc/server.rb', line 19 def status @status end |
Class Method Details
.create(server) ⇒ Object
106 107 108 109 110 111 |
# File 'lib/chef-vpc-toolkit/cloud-servers-vpc/server.rb', line 106 def self.create(server) xml=Connection.post("/servers.xml", server.to_xml) server=Server.from_xml(xml) end |
.from_xml(xml) ⇒ Object
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
# File 'lib/chef-vpc-toolkit/cloud-servers-vpc/server.rb', line 65 def self.from_xml(xml) server=nil dom = REXML::Document.new(xml) REXML::XPath.each(dom, "/*") do |sg_xml| server=Server.new( :id => XMLUtil.element_text(sg_xml, "id").to_i, :name => XMLUtil.element_text(sg_xml, "name"), :flavor_id => XMLUtil.element_text(sg_xml, "flavor-id"), :image_id => XMLUtil.element_text(sg_xml, "image-id"), :admin_password => XMLUtil.element_text(sg_xml, "admin-password"), :description => XMLUtil.element_text(sg_xml, "description"), :cloud_server_id_number => XMLUtil.element_text(sg_xml, "cloud-server-id-number"), :description => XMLUtil.element_text(sg_xml, "description"), :external_ip_addr => XMLUtil.element_text(sg_xml, "external-ip-addr"), :internal_ip_addr => XMLUtil.element_text(sg_xml, "internal-ip-addr"), :server_group_id => XMLUtil.element_text(sg_xml, "server-group-id"), :openvpn_server => XMLUtil.element_text(sg_xml, "openvpn_server"), :retry_count => XMLUtil.element_text(sg_xml, "retry-count"), :error_message => XMLUtil.element_text(sg_xml, "error-message"), :status => XMLUtil.element_text(sg_xml, "status") ) end server end |
Instance Method Details
#delete ⇒ Object
102 103 104 |
# File 'lib/chef-vpc-toolkit/cloud-servers-vpc/server.rb', line 102 def delete Connection.delete("/servers/#{@id}.xml") end |
#openvpn_server? ⇒ Boolean
39 40 41 |
# File 'lib/chef-vpc-toolkit/cloud-servers-vpc/server.rb', line 39 def openvpn_server? return @openvpn_server end |
#rebuild ⇒ Object
94 95 96 97 98 99 100 |
# File 'lib/chef-vpc-toolkit/cloud-servers-vpc/server.rb', line 94 def rebuild raise "Error: Rebuilding the OpenVPN server is not supported at this time." if openvpn_server? Connection.post("/servers/#{@id}/rebuild", {}) end |
#to_xml ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/chef-vpc-toolkit/cloud-servers-vpc/server.rb', line 43 def to_xml xml = Builder::XmlMarkup.new xml.tag! "server" do |server| server.id(@id) server.name(@name) server.description(@description) server.status(@status) if @status server.tag! "external-ip-addr", @external_ip_addr if @external_ip_addr server.tag! "internal-ip-addr", @internal_ip_addr if @internal_ip_addr server.tag! "cloud-server-id-number", @cloud_server_id_number if @cloud_server_id_number server.tag! "flavor-id", @flavor_id server.tag! "image-id", @image_id server.tag! "admin-password", @admin_password server.tag! "server-group-id", @server_group_id server.tag! "openvpn-server", "true" if openvpn_server? server.tag! "error-message", @error_message if @error_message end xml.target! end |