module GClouder::Resources::Compute::Instances::Local
Public Class Methods
create_from_mapping(mappings, value)
click to toggle source
# File lib/gclouder/resources/compute/instances.rb, line 99 def self.create_from_mapping(mappings, value) mappings.reverse.inject(value) { |obj, key| key.is_a?(Integer) ? [obj] : { key => obj } } end
instance_names()
click to toggle source
# File lib/gclouder/resources/compute/instances.rb, line 83 def self.instance_names list.map { |region, instances| instances.each.map { |instance| instance["name"] } }.flatten end
list()
click to toggle source
# File lib/gclouder/resources/compute/instances.rb, line 79 def self.list Resources::Region.instances(path: section) end
manipulated()
click to toggle source
manipulate local resources so they're comparable with remote..
FIXME this could be automated:
-
iterate over compute::instaces
-
create key for each value
-
assign config to newly made key
# File lib/gclouder/resources/compute/instances.rb, line 110 def self.manipulated list.each do |_region, resources| resources.each do |resource| data_structure = create_from_mapping(mappings, resource["subnet"]) resource.merge! data_structure["compute"]["instances"] resource.delete("subnet") resource end end end
mappings()
click to toggle source
# File lib/gclouder/resources/compute/instances.rb, line 95 def self.mappings Mappings::Property.section(["compute::instances", "subnet"]) end
section()
click to toggle source
# File lib/gclouder/resources/compute/instances.rb, line 75 def self.section %w(compute instances) end
validate()
click to toggle source
# File lib/gclouder/resources/compute/instances.rb, line 87 def self.validate Resources::Validate::Region.instances( list, required_keys: GClouder::Config::Arguments.required(section), permitted_keys: GClouder::Config::Arguments.permitted(section), ) end