Class: Fog::AWS::Compute::Servers
- Inherits:
-
Collection
- Object
- Array
- Collection
- Fog::AWS::Compute::Servers
- Defined in:
- lib/fog/aws/models/compute/servers.rb
Instance Attribute Summary
Attributes inherited from Collection
Instance Method Summary collapse
- #all(filters = @filters) ⇒ Object
- #bootstrap(new_attributes = {}) ⇒ Object
- #get(server_id) ⇒ Object
-
#initialize(attributes) ⇒ Servers
constructor
A new instance of Servers.
Methods inherited from Collection
#clear, #create, #inspect, #load, model, #model, #new, #reload, #table, #to_json
Methods included from Fog::Attributes::ClassMethods
#_load, #aliases, #attribute, #attributes, #identity, #ignore_attributes, #ignored_attributes
Methods included from Fog::Attributes::InstanceMethods
#_dump, #attributes, #identity, #identity=, #merge_attributes, #new_record?, #requires
Constructor Details
#initialize(attributes) ⇒ Servers
Returns a new instance of Servers.
16 17 18 19 |
# File 'lib/fog/aws/models/compute/servers.rb', line 16 def initialize(attributes) @filters ||= {} super end |
Instance Method Details
#all(filters = @filters) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/fog/aws/models/compute/servers.rb', line 21 def all(filters = @filters) unless filters.is_a?(Hash) Formatador.display_line("[yellow][WARN] all with #{filters.class} param is deprecated, use all('instance-id' => []) instead[/] [light_black](#{caller.first})[/]") filters = {'instance-id' => [*filters]} end @filters = filters data = connection.describe_instances(filters).body load( data['reservationSet'].map do |reservation| reservation['instancesSet'].map do |instance| instance.merge(:groups => reservation['groupSet']) end end.flatten ) end |
#bootstrap(new_attributes = {}) ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/fog/aws/models/compute/servers.rb', line 37 def bootstrap(new_attributes = {}) server = connection.servers.new(new_attributes) # first or create fog_#{credential} keypair unless server.key_pair = connection.key_pairs.get("fog_#{Fog.credential}") name = Fog.respond_to?(:credential) && Fog.credential || :default server.key_pair = connection.key_pairs.create( :name => "fog_#{name}", :public_key => server.public_key ) 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 |