Class: Fog::Compute::AWS::Servers
- Inherits:
-
Fog::Collection
- Object
- Array
- Fog::Collection
- Fog::Compute::AWS::Servers
- Defined in:
- lib/fog/aws/models/compute/servers.rb
Instance Attribute Summary
Attributes inherited from Fog::Collection
Instance Method Summary collapse
- #all(filters = self.filters) ⇒ Object
- #bootstrap(new_attributes = {}) ⇒ Object
-
#get(server_id) ⇒ Object
Used to retrieve a server.
-
#initialize(attributes) ⇒ Servers
constructor
Creates a new server.
Methods inherited from Fog::Collection
#clear, #create, #destroy, #inspect, #load, model, #model, #new, #reload, #table, #to_json
Methods included from Attributes::ClassMethods
#_load, #aliases, #attribute, #attributes, #identity, #ignore_attributes, #ignored_attributes
Methods included from Attributes::InstanceMethods
#_dump, #attributes, #dup, #identity, #identity=, #merge_attributes, #new_record?, #requires, #requires_one
Constructor Details
permalink #initialize(attributes) ⇒ Servers
Creates a new server
AWS.servers.new
Returns
Returns the details of the new server
>> AWS.servers.new
<Fog::AWS::Compute::Server
id=nil,
ami_launch_index=nil,
availability_zone=nil,
block_device_mapping=nil,
client_token=nil,
dns_name=nil,
groups=["default"],
flavor_id="m1.small",
image_id=nil,
ip_address=nil,
kernel_id=nil,
key_name=nil,
created_at=nil,
monitoring=nil,
product_codes=nil,
private_dns_name=nil,
private_ip_address=nil,
ramdisk_id=nil,
reason=nil,
root_device_name=nil,
root_device_type=nil,
state=nil,
state_reason=nil,
subnet_id=nil,
tags=nil,
user_data=nil
>
53 54 55 56 |
# File 'lib/fog/aws/models/compute/servers.rb', line 53 def initialize(attributes) self.filters ||= {} super end |
Instance Method Details
permalink #all(filters = self.filters) ⇒ Object
[View source]
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/fog/aws/models/compute/servers.rb', line 58 def all(filters = self.filters) unless filters.is_a?(Hash) Fog::Logger.deprecation("all with #{filters.class} param is deprecated, use all('instance-id' => []) instead [light_black](#{caller.first})[/]") filters = {'instance-id' => [*filters]} end self.filters = filters data = connection.describe_instances(filters).body load( data['reservationSet'].map do |reservation| reservation['instancesSet'].map do |instance| instance.merge(:groups => reservation['groupSet'], :security_group_ids => reservation['groupIds']) end end.flatten ) end |
permalink #bootstrap(new_attributes = {}) ⇒ Object
[View source]
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
# File 'lib/fog/aws/models/compute/servers.rb', line 74 def bootstrap(new_attributes = {}) server = connection.servers.new(new_attributes) unless new_attributes[:key_name] # first or create fog_#{credential} keypair name = Fog.respond_to?(:credential) && Fog.credential || :default unless server.key_pair = connection.key_pairs.get("fog_#{name}") server.key_pair = connection.key_pairs.create( :name => "fog_#{name}", :public_key => server.public_key ) end end # make sure port 22 is open in the first security group security_group = connection.security_groups.get(server.groups.first) = security_group..detect do || ['ipRanges'].first && ['ipRanges'].first['cidrIp'] == '0.0.0.0/0' && ['fromPort'] == 22 && ['ipProtocol'] == 'tcp' && ['toPort'] == 22 end unless security_group.(22..22) end server.save server.wait_for { ready? } server.setup(:key_data => [server.private_key]) server end |
permalink #get(server_id) ⇒ Object
Used to retrieve a server
server_id is required to get the associated server information.
You can run the following command to get the details: AWS.servers.get(“i-5c973972”)
Returns
>> AWS.servers.get(“i-5c973972”)
<Fog::AWS::Compute::Server
id="i-5c973972",
ami_launch_index=0,
availability_zone="us-east-1b",
block_device_mapping=[],
client_token=nil,
dns_name="ec2-25-2-474-44.compute-1.amazonaws.com",
groups=["default"],
flavor_id="m1.small",
image_id="test",
ip_address="25.2.474.44",
kernel_id="aki-4e1e1da7",
key_name=nil,
created_at=Mon Nov 29 18:09:34 -0500 2010,
monitoring=false,
product_codes=[],
private_dns_name="ip-19-76-384-60.ec2.internal",
private_ip_address="19.76.384.60",
ramdisk_id="ari-0b3fff5c",
reason=nil,
root_device_name=nil,
root_device_type="instance-store",
state="running",
state_reason={},
subnet_id=nil,
tags={},
user_data=nil
>
146 147 148 149 150 151 152 |
# File 'lib/fog/aws/models/compute/servers.rb', line 146 def get(server_id) if server_id self.class.new(:connection => connection).all('instance-id' => server_id).first end rescue Fog::Errors::NotFound nil end |