class Egi::Fedcloud::Cloudhound::AppdbAppliance

Attributes

checksum[R]
format[R]
identifier[R]
mpuri[R]
owner[R]
published[R]
sites[R]
url[R]
version[R]

Public Class Methods

extract_site_vos(element) click to toggle source
# File lib/egi/fedcloud/cloudhound/appdb_appliance.rb, line 41
def extract_site_vos(element)
  return [] if element.blank?

  vos = []
  element.each do |service|
    vos << service['vos'].collect { |vo| vo['name'] }
  end
  vos.flatten!
  vos.compact!
  vos.uniq!

  vos
end
extract_sites(element) click to toggle source
# File lib/egi/fedcloud/cloudhound/appdb_appliance.rb, line 28
def extract_sites(element)
  return [] if element.blank?

  element.collect do |site|
    st = {}
    st['name'] = site['name']
    st['gocdb_link'] = site['url'] ? site['url']['portal'] : 'unknown'
    st['vos'] = extract_site_vos(site['services'])
    st
  end
end
new(element) click to toggle source
# File lib/egi/fedcloud/cloudhound/appdb_appliance.rb, line 10
def initialize(element)
  Egi::Fedcloud::Cloudhound::Log.debug "[#{self.class}] Initializing with #{element.inspect}"

  @identifier = element['identifier']
  @version = element['version']
  @url = element['url']
  @checksum = element['checksum']
  @format = element['format']
  @owner = element['addedby'] ? element['addedby']['permalink'] : 'unknown'
  @published = element['published']
  @mpuri = element['mpuri']

  # and now the difficult part
  @sites = self.class.extract_sites(element['sites'])
end