From 77a81084d2588933c04262667315afdbd6395e0a Mon Sep 17 00:00:00 2001 From: Mike Scherbakov Date: Wed, 3 Oct 2012 17:33:45 +0400 Subject: [PATCH] Dummy orchestrator --- naily/bin/naily.rb | 8 +++++ naily/lib/naily/orchestrator.rb | 33 +++++++++++++++++++ .../modules/nailytest/lib/facter/naily.rb | 3 -- 3 files changed, 41 insertions(+), 3 deletions(-) create mode 100755 naily/bin/naily.rb diff --git a/naily/bin/naily.rb b/naily/bin/naily.rb new file mode 100755 index 000000000..b0724b211 --- /dev/null +++ b/naily/bin/naily.rb @@ -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 diff --git a/naily/lib/naily/orchestrator.rb b/naily/lib/naily/orchestrator.rb index 841104889..78be25d32 100644 --- a/naily/lib/naily/orchestrator.rb +++ b/naily/lib/naily/orchestrator.rb @@ -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 diff --git a/naily/puppet/modules/nailytest/lib/facter/naily.rb b/naily/puppet/modules/nailytest/lib/facter/naily.rb index a6d1a4cc8..6c5ef356b 100644 --- a/naily/puppet/modules/nailytest/lib/facter/naily.rb +++ b/naily/puppet/modules/nailytest/lib/facter/naily.rb @@ -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