Dummy orchestrator

This commit is contained in:
Mike Scherbakov 2012-10-03 17:33:45 +04:00
parent 5e5d0131e0
commit 77a81084d2
3 changed files with 41 additions and 3 deletions

8
naily/bin/naily.rb Executable file
View File

@ -0,0 +1,8 @@
#!/usr/bin/env ruby
$LOAD_PATH << File.join(File.dirname(__FILE__),"..","lib")
require 'naily'
nodes = ['admin']
metadata = {'role' => 'test_compute', 'meta' => 'some metadata'}
orchestrator = Naily::Orchestrator.new(nodes, metadata)
orchestrator.deploy

View File

@ -1,4 +1,37 @@
require 'mcollective'
module Naily
class Orchestrator
include MCollective::RPC
def initialize(nodes, metadata={})
@nodes = nodes
@metadata = metadata
end
private
def check_mcollective_result(stats)
stats.each do |agent|
status = agent.results[:statuscode]
raise "MCollective call failed in agent: #{agent}" unless status == 0
end
end
public
def deploy
mc = rpcclient("nailyfact")
mc.progress = false
mc.discover(:nodes => @nodes)
stats = mc.post(:value => @metadata)
check_mcollective_result(stats)
mc = rpcclient("puppetd")
mc.progress = false
mc.discover(:nodes => @nodes)
stats = mc.runonce
printrpc mc.status
sleep 5
printrpc mc.status
end
end
end

View File

@ -9,9 +9,6 @@ if File.exist?("/etc/naily.facts")
Facter.add(var) do
setcode { val }
end
Facter.add("myrole") do
setcode {'a' => {'b' => {'c' => 'd'}}}
end
end
end
end