module GClouderUndefinedResources::RemoteResources::Remote::GCloud::ResourcesList
FIXME: refactor
Public Class Methods
fetch(project_id)
click to toggle source
# File lib/gclouder_undefined_resources/remote_resources/remote.rb, line 31 def self.fetch(project_id) json = JSON.parse(Shell.run("gcloud --project #{project_id} alpha resources list --format json")) json.select do |resource| result = true if resource.key?("projectId") result = nil if resource["projectId"] != project_id #puts "skipping resource because project id does not match: #{resource['projectId']}" elsif resource.key?("selfLink") result = nil if resource["selfLink"] !~ /projects\/#{project_id}\// #puts "skipping resource because project id does not match: #{resource['selfLink']}" else ap resource puts "error: resource has no selfLink or projectId property, unable to determine project id" exit 1 end if !resource.key?("name") puts "resource has no name key:" ap resource end result end.map do |resource| if !resource.key?("name") ap resource puts "error: resource has no name key" exit 1 end Resource.new(resource["name"], resource) end end