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