class Egi::Fedcloud::Cloudhound::Appdb
Constants
- APPDB_SITES_URL
Public Class Methods
new(opts = {}, password = nil)
click to toggle source
Calls superclass method
Egi::Fedcloud::Cloudhound::Connector::new
# File lib/egi/fedcloud/cloudhound/appdb.rb, line 9 def initialize(opts = {}, password = nil) super Egi::Fedcloud::Cloudhound::Log.debug "[#{self.class}] With AppDB instance at #{opts[:appdb_base_url].inspect}" @appdb_base_url = opts[:appdb_base_url].chomp '/' end
Public Instance Methods
appliance(uri)
click to toggle source
# File lib/egi/fedcloud/cloudhound/appdb.rb, line 50 def appliance(uri) uri = uri.chomp '/' Egi::Fedcloud::Cloudhound::Log.debug "[#{self.class}] Pulling appliance data from \"#{uri}/json\"" raw_appliance = JSON.parse retrieve("#{uri}/json") Egi::Fedcloud::Cloudhound::AppdbAppliance.new raw_appliance end
certified_production_cloud_sites()
click to toggle source
# File lib/egi/fedcloud/cloudhound/appdb.rb, line 45 def certified_production_cloud_sites certified production_cloud_sites end
certified_production_sites()
click to toggle source
# File lib/egi/fedcloud/cloudhound/appdb.rb, line 30 def certified_production_sites certified production_sites end
cloud_sites()
click to toggle source
# File lib/egi/fedcloud/cloudhound/appdb.rb, line 35 def cloud_sites sites.select { |site| site.type == 'cloud' } end
production_cloud_sites()
click to toggle source
# File lib/egi/fedcloud/cloudhound/appdb.rb, line 40 def production_cloud_sites production cloud_sites end
production_sites()
click to toggle source
# File lib/egi/fedcloud/cloudhound/appdb.rb, line 25 def production_sites production sites end
site_gocdb(site_name)
click to toggle source
# File lib/egi/fedcloud/cloudhound/appdb.rb, line 58 def site_gocdb(site_name) found = sites.select { |site| site.name == site_name } found.first ? found.first.gocdb_link : nil end
sites()
click to toggle source
# File lib/egi/fedcloud/cloudhound/appdb.rb, line 16 def sites return @cached_sites if @cached_sites Egi::Fedcloud::Cloudhound::Log.debug "[#{self.class}] Pulling site data from \"#{@appdb_base_url}#{APPDB_SITES_URL}\"" sites = Ox.parse retrieve("#{@appdb_base_url}#{APPDB_SITES_URL}") @cached_sites = sites.locate('appdb/*').map { |site| Egi::Fedcloud::Cloudhound::AppdbSite.new(site) } end
Private Instance Methods
certified(sites)
click to toggle source
# File lib/egi/fedcloud/cloudhound/appdb.rb, line 69 def certified(sites) sites.select { |site| site.status == 'Certified' } end
production(sites)
click to toggle source
# File lib/egi/fedcloud/cloudhound/appdb.rb, line 65 def production(sites) sites.select { |site| site.infrastructure == 'Production' } end