Class: Egi::Fedcloud::Cloudhound::Appdb
- Defined in:
- lib/egi/fedcloud/cloudhound/appdb.rb
Constant Summary collapse
- APPDB_SITES_URL =
'/rest/1.0/sites?flt=+=&site.supports:1'
Instance Method Summary collapse
- #appliance(uri) ⇒ Object
- #certified_production_cloud_sites ⇒ Object
- #certified_production_sites ⇒ Object
- #cloud_sites ⇒ Object
-
#initialize(opts = {}, password = nil) ⇒ Appdb
constructor
A new instance of Appdb.
- #production_cloud_sites ⇒ Object
- #production_sites ⇒ Object
- #site_gocdb(site_name) ⇒ Object
- #sites ⇒ Object
Methods inherited from Connector
Constructor Details
#initialize(opts = {}, password = nil) ⇒ Appdb
Returns a new instance of Appdb.
9 10 11 12 13 |
# 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 |
Instance Method Details
#appliance(uri) ⇒ Object
50 51 52 53 54 55 |
# 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 ⇒ Object
45 46 47 |
# File 'lib/egi/fedcloud/cloudhound/appdb.rb', line 45 def certified_production_cloud_sites certified production_cloud_sites end |
#certified_production_sites ⇒ Object
30 31 32 |
# File 'lib/egi/fedcloud/cloudhound/appdb.rb', line 30 def certified_production_sites certified production_sites end |
#cloud_sites ⇒ Object
35 36 37 |
# File 'lib/egi/fedcloud/cloudhound/appdb.rb', line 35 def cloud_sites sites.select { |site| site.type == 'cloud' } end |
#production_cloud_sites ⇒ Object
40 41 42 |
# File 'lib/egi/fedcloud/cloudhound/appdb.rb', line 40 def production_cloud_sites production cloud_sites end |
#production_sites ⇒ Object
25 26 27 |
# File 'lib/egi/fedcloud/cloudhound/appdb.rb', line 25 def production_sites production sites end |
#site_gocdb(site_name) ⇒ Object
58 59 60 61 |
# 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 ⇒ Object
16 17 18 19 20 21 22 |
# 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 |