Class: Fog::Compute::Google::Servers
- Inherits:
-
Fog::Collection
- Object
- Array
- Fog::Collection
- Fog::Compute::Google::Servers
- Defined in:
- lib/fog/google/models/compute/servers.rb
Instance Attribute Summary
Attributes inherited from Fog::Collection
Instance Method Summary collapse
- #all(zone = nil) ⇒ Object
- #bootstrap(new_attributes = {}) ⇒ Object
- #get(identity, zone = nil) ⇒ Object
Methods inherited from Fog::Collection
#clear, #create, #destroy, #initialize, #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 Fog::Core::DeprecatedConnectionAccessors
#connection, #connection=, #prepare_service_value
Methods included from Attributes::InstanceMethods
#_dump, #attributes, #dup, #identity, #identity=, #merge_attributes, #new_record?, #persisted?, #requires, #requires_one
Constructor Details
This class inherits a constructor from Fog::Collection
Instance Method Details
#all(zone = nil) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/fog/google/models/compute/servers.rb', line 12 def all(zone=nil) if zone.nil? data = [] service.list_zones.body['items'].each do |zone| data += service.list_servers(zone['name']).body["items"] || [] end else data = service.list_servers(zone).body["items"] || [] end load(data) end |
#bootstrap(new_attributes = {}) ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/fog/google/models/compute/servers.rb', line 44 def bootstrap(new_attributes = {}) defaults = { :name => "fog-#{Time.now.to_i}", :image_name => "gcel-12-04-v20130225", :machine_type => "n1-standard-1", :zone_name => "us-central1-a", :private_key_path => File.("~/.ssh/id_rsa"), :public_key_path => File.("~/.ssh/id_rsa.pub"), } server = create(defaults.merge(new_attributes)) server.wait_for(Fog.timeout, 30) { ready? } server end |
#get(identity, zone = nil) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/fog/google/models/compute/servers.rb', line 24 def get(identity, zone=nil) data = nil if zone.nil? service.list_zones.body['items'].each do |zone| data = service.get_server(identity, zone['name']).body break if data["code"] == 200 end else data = service.get_server(identity, zone).body end if data["code"] != 200 nil else new(data) end rescue Excon::Errors::NotFound nil end |