Class: CapComputeEngine::InstanceList
- Inherits:
-
Object
- Object
- CapComputeEngine::InstanceList
- Defined in:
- lib/cap_compute_engine/instance_list.rb
Class Method Summary collapse
Instance Method Summary collapse
- #authorize_cloud_sql(name) ⇒ Object
- #external_ips ⇒ Object
-
#initialize(instances = []) ⇒ InstanceList
constructor
A new instance of InstanceList.
- #with_tag(tag_name) ⇒ Object
Constructor Details
#initialize(instances = []) ⇒ InstanceList
Returns a new instance of InstanceList.
5 6 7 |
# File 'lib/cap_compute_engine/instance_list.rb', line 5 def initialize(instances = []) @instances = instances end |
Class Method Details
.get ⇒ Object
9 10 11 12 13 14 |
# File 'lib/cap_compute_engine/instance_list.rb', line 9 def self.get json = `gcloud compute instances list --format json` array = JSON.parse(json) InstanceList.new(array.map { |instance_hash| Instance.new(instance_hash) }) end |
Instance Method Details
#authorize_cloud_sql(name) ⇒ Object
24 25 26 |
# File 'lib/cap_compute_engine/instance_list.rb', line 24 def (name) `gcloud sql instances patch #{name} --authorized-networks "#{external_ips.join(',')}"` end |
#external_ips ⇒ Object
20 21 22 |
# File 'lib/cap_compute_engine/instance_list.rb', line 20 def external_ips @instances.map(&:external_ip).compact end |
#with_tag(tag_name) ⇒ Object
16 17 18 |
# File 'lib/cap_compute_engine/instance_list.rb', line 16 def with_tag(tag_name) InstanceList.new(@instances.select { |ins| ins.has_tag?(tag_name) }) end |