class NOMS::CMDB

Public Class Methods

mockery() click to toggle source
# File lib/noms/cmdb.rb, line 27
def self.mockery
    NOMS::CMDB::Mock
end

Public Instance Methods

config_key() click to toggle source
# File lib/noms/cmdb.rb, line 31
def config_key
  'cmdb'
end
create(type, obj, key=nil) click to toggle source
# File lib/noms/cmdb.rb, line 64
def create(type, obj, key=nil)
    keyfield = key_field_of(type)
    objkey = obj[keyfield]

    if key.nil? and objkey.nil?
        raise NOMS::Error, "Must specify a key value or imply it in the object's #{key_field_of(type)} value"
    end
    if (obj.has_key?(keyfield) and (! key.nil?) and obj[keyfield] != key)
        raise NOMS::Error, "You specified different keys for a new #{type} object: #{objkey} in the object vs. #{key}"
    end
    newobj = { keyfield => (objkey || key) }.merge obj
    do_request(:POST => type, :body => newobj)
end
create_environment(env, attrs) click to toggle source
# File lib/noms/cmdb.rb, line 94
def create_environment(env, attrs)
    do_request :POST => "environments", :body => attrs.merge({ :name => env })
    environment env
end
create_service(env, service, attrs) click to toggle source

CMDB API bug means use this endpoint to create TODO needs update as this bug is no longer present

# File lib/noms/cmdb.rb, line 118
def create_service(env, service, attrs)
    attrs[:name] = service
    attrs[:environment_name] = env
    do_request :POST => "service_instance", :body => attrs
    do_request :PUT => "environments/#{env}/services/#{service}",
        :body => attrs
end
delete_environment(env) click to toggle source
# File lib/noms/cmdb.rb, line 99
def delete_environment(env)
    do_request :DELETE => "environments/#{env}"
end
delete_service(env, service) click to toggle source
# File lib/noms/cmdb.rb, line 126
def delete_service(env, service)
    do_request :DELETE => "environments/#{env}/services/#{service}"
end
environment(env) click to toggle source
# File lib/noms/cmdb.rb, line 90
def environment(env)
  do_request :GET => "environments/#{env}"
end
environments() click to toggle source
# File lib/noms/cmdb.rb, line 86
def environments
  do_request :GET => 'environments'
end
get_or_assign_system_name(serial) click to toggle source
# File lib/noms/cmdb.rb, line 60
def get_or_assign_system_name(serial)
    do_request(:GET => "pcmsystemname/#{serial}")
end
help(type) click to toggle source
# File lib/noms/cmdb.rb, line 39
def help(type)
    do_request(:GET => type, :query => 'help')
end
key_field_of(type) click to toggle source
# File lib/noms/cmdb.rb, line 43
def key_field_of(type)
    case type
    when 'system'
        'fqdn'
    else
        'id'
    end
end
query(type, *condlist) click to toggle source
# File lib/noms/cmdb.rb, line 35
def query(type, *condlist)
  do_request(:GET => "#{type}", :query => URI.encode(condlist.join('&')))
end
service(env, service) click to toggle source
# File lib/noms/cmdb.rb, line 107
def service(env, service)
  do_request :GET => "environments/#{env}/services/#{service}"
end
services(env) click to toggle source
# File lib/noms/cmdb.rb, line 103
def services(env)
  do_request :GET => "environments/#{env}/services"
end
system(hostname) click to toggle source
# File lib/noms/cmdb.rb, line 52
def system(hostname)
  do_request(:GET => "system/#{hostname}")
end
system_audit(hostname) click to toggle source
# File lib/noms/cmdb.rb, line 56
def system_audit(hostname)
  do_request(:GET => "inv_audit", :query => "entity_key=#{hostname}")
end
tc_post(obj) click to toggle source
# File lib/noms/cmdb.rb, line 83
def tc_post(obj)
    do_request(:POST => "fact", :body => obj)
end
update(type, obj, key=nil) click to toggle source
# File lib/noms/cmdb.rb, line 78
def update(type, obj, key=nil)
    key ||= obj[key_field_of(type)]
    do_request(:PUT => "#{type}/#{key}", :body => obj)
end
update_service(env, service, attrs) click to toggle source
# File lib/noms/cmdb.rb, line 111
def update_service(env, service, attrs)
    do_request :PUT => "environments/#{env}/services/#{service}",
        :body => attrs
end