Revision 86e9a056
Added by Andy Bohne almost 11 years ago
- ID 86e9a056e5a1d24b9532674d5f14762a1bd9ab78
app/models/host/managed.rb | ||
---|---|---|
def rundeck
|
||
rdecktags = puppetclasses_names.map{|k| "class=#{k}"}
|
||
unless self.params["rundeckfacts"].empty?
|
||
rdecktags += self.params["rundeckfacts"].split(",").map{|rdf| "#{rdf}=#{fact(rdf)[0].value}"}
|
||
rdecktags += self.params["rundeckfacts"].gsub(/\s+/, '').split(',').map { |rdf| "#{rdf}=" + (facts_hash[rdf] || "undefined") }
|
||
end
|
||
{ name => { "description" => comment, "hostname" => name, "nodename" => name,
|
||
"osArch" => arch.name, "osFamily" => os.family, "osName" => os.name,
|
test/functional/hosts_controller_test.rb | ||
---|---|---|
assert_equal new_password, @host.interfaces.bmc.first.password
|
||
end
|
||
|
||
test "index returns YAML output for rundeck" do
|
||
get :index, {:format => 'yaml', :rundeck => true}, set_session_user
|
||
hosts = YAML.load(@response.body)
|
||
assert !hosts.empty?
|
||
host = Host.first
|
||
assert_equal host.os.name, hosts[host.name]["osName"] # rundeck-specific field
|
||
end
|
||
|
||
test "show returns YAML output for rundeck" do
|
||
host = Host.first
|
||
get :show, {:id => host.to_param, :format => 'yaml', :rundeck => true}, set_session_user
|
||
yaml = YAML.load(@response.body)
|
||
assert_kind_of Hash, yaml[host.name]
|
||
assert_equal host.name, yaml[host.name]["hostname"]
|
||
assert_equal host.os.name, yaml[host.name]["osName"] # rundeck-specific field
|
||
end
|
||
|
||
private
|
||
def initialize_host
|
||
User.current = users(:admin)
|
test/unit/host_test.rb | ||
---|---|---|
end
|
||
end
|
||
|
||
test "#rundeck returns hash" do
|
||
h = hosts(:one)
|
||
rundeck = h.rundeck
|
||
assert_kind_of Hash, rundeck
|
||
assert_equal ['my5name.mydomain.net'], rundeck.keys
|
||
assert_kind_of Hash, rundeck[h.name]
|
||
assert_equal 'my5name.mydomain.net', rundeck[h.name]['hostname']
|
||
assert_equal ['class=base'], rundeck[h.name]['tags']
|
||
end
|
||
|
||
test "#rundeck returns extra facts as tags" do
|
||
h = hosts(:one)
|
||
h.params['rundeckfacts'] = "kernelversion, ipaddress\n"
|
||
h.save!
|
||
|
||
rundeck = h.rundeck
|
||
assert rundeck[h.name]['tags'].include?('class=base'), 'puppet class missing'
|
||
assert rundeck[h.name]['tags'].include?('kernelversion=2.6.9'), 'kernelversion fact missing'
|
||
assert rundeck[h.name]['tags'].include?('ipaddress=10.0.19.33'), 'ipaddress fact missing'
|
||
end
|
||
|
||
end
|
Also available in: Unified diff
fixes #1770 - Refactored rdeckfacts definition to use facts_hash