class Rspec_puppet_osmash

Public Class Methods

new(metadata_file_path = './metadata.json', osmash_library_path = 'default') click to toggle source
# File lib/rspec_puppet_osmash.rb, line 6
def initialize (metadata_file_path = './metadata.json', osmash_library_path = 'default')

  metadata_file = File.read( metadata_file_path )
  @metadata = JSON.parse( metadata_file )

  if osmash_library_path == 'default'
    my_osmash_library = File.join(File.dirname(File.expand_path(__FILE__)), 'osmash.json')
  else
    my_osmash_library = osmash_library_path
  end

  osmash_library_file = File.read( my_osmash_library )
  @osmash = JSON.parse( osmash_library_file )

  @osmash.map! { |os|
    unless os['name']
      if os['codename'] 
        codename = "\"#{os['codename']}\" "
      else
        codename = ""
      end
      os.merge( { 'name' => "#{os['operatingsystem']} #{codename}#{os['release']}" } )
    else
      os
    end
  }

  matched = Set.new
  unmatched = Set.new
  @osmash.each do | os |
    if self.osmetadata.any? { |mos|
        mos['operatingsystem'] == os['operatingsystem'] and
        mos['operatingsystemrelease'].include? os['release']
    }
      matched << os
    else
      unmatched << os
    end
  end
  @supported = matched.to_a
  @unsupported = unmatched.to_a

  knownos = Set.new
  @osmash.each do | os |
    knownos << os
  end
  @known = knownos.to_a

  unknownos = self.osmetadata.dup
  @osmash.each do | os |
    unknownos.delete_if { | mos |
      mos['operatingsystem'] == os['operatingsystem'] and
      mos['operatingsystemrelease'].include? os['release']
    }
  end
  @unknown = unknownos.to_a 
end

Public Instance Methods

all() click to toggle source
# File lib/rspec_puppet_osmash.rb, line 64
def all
  @osmash
end
known() click to toggle source
# File lib/rspec_puppet_osmash.rb, line 88
def known
  @known
end
metadata(key = 'all') click to toggle source
# File lib/rspec_puppet_osmash.rb, line 68
def metadata(key = 'all')
  if key == 'all'
    @metadata
  else
    @metadata[key]
  end
end
osmetadata() click to toggle source
# File lib/rspec_puppet_osmash.rb, line 76
def osmetadata
  @metadata['operatingsystem_support']
end
supported() click to toggle source
# File lib/rspec_puppet_osmash.rb, line 80
def supported
  @supported
end
unknown() click to toggle source
# File lib/rspec_puppet_osmash.rb, line 92
def unknown
  @unknown
end
unsupported() click to toggle source
# File lib/rspec_puppet_osmash.rb, line 84
def unsupported
  @unsupported
end