Class: Fog::Compute::AWS::Servers
- Inherits:
-
Fog::Collection
- Object
- Fog::Collection
- Fog::Compute::AWS::Servers
- Defined in:
- lib/fog/aws/models/compute/servers.rb
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.
Constructor Details
#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,
network_interfaces=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
>
54 55 56 57 |
# File 'lib/fog/aws/models/compute/servers.rb', line 54 def initialize(attributes) self.filters ||= {} super end |
Instance Method Details
#all(filters = self.filters) ⇒ Object
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/fog/aws/models/compute/servers.rb', line 59 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 = service.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 |
#bootstrap(new_attributes = {}) ⇒ Object
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 105 106 107 108 109 110 |
# File 'lib/fog/aws/models/compute/servers.rb', line 75 def bootstrap(new_attributes = {}) server = service.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 = service.key_pairs.get("fog_#{name}") server.key_pair = service.key_pairs.create( :name => "fog_#{name}", :public_key => server.public_key ) end end security_group = service.security_groups.get(server.groups.first) if security_group.nil? raise Fog::Compute::AWS::Error, "The security group" \ " #{server.groups.first} doesn't exist." end # make sure port 22 is open in the first security group = 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 |
#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
>
152 153 154 155 156 157 158 |
# File 'lib/fog/aws/models/compute/servers.rb', line 152 def get(server_id) if server_id self.class.new(:service => service).all('instance-id' => server_id).first end rescue Fog::Errors::NotFound nil end |