From 71313a990ff9060e83562e6f336b2ae9d24b2880 Mon Sep 17 00:00:00 2001 From: Georgy Kibardin Date: Mon, 26 Sep 2016 16:19:47 +0300 Subject: [PATCH] Do not change mcollective config The idea is to stop changing mcollective config and restarting it from nailgun agent. This causes a lot of problems related to mcollective config restarted at wrong time. From now at the bootstrap stage mcollective is expected to be configured and started by startup scripts while in bootstrap and by cloud-init at first boot into provisioned node. Change-Id: Ic8e31d6381d8ffb8f7fdfd1aa8ebc655bb4535ec Partial-Bug: #1585671 (cherry picked from commit b33cfab5c3594b06cfe3e647672e243303041ad8) --- agent | 66 ----------------------------------------------------------- 1 file changed, 66 deletions(-) diff --git a/agent b/agent index 511b5c3..e0251be 100755 --- a/agent +++ b/agent @@ -79,59 +79,6 @@ def createsig(body) Digest::SHA1.hexdigest( digest body ) end -class McollectiveConfig - def initialize(logger) - @logger = logger - @configfile = '/etc/mcollective/server.cfg' - end - - def get_config_by_key(find_key) - found_key = nil - found_value = nil - # This code is from mcollective's sources - File.open(@configfile, "r").each do |line| - # strip blank spaces, tabs etc off the end of all lines - line.gsub!(/\s*$/, "") - unless line =~ /^#|^$/ - if line =~ /(.+?)\s*=\s*(.+)/ - key = $1 - val = $2 - if key == find_key - found_key = key - found_value = val - end - end - end - end - - found_value if found_key - end - - def replace_identity(new_id) - # check if id complies reqs - raise 'Identities can only match /\w\.\-/' unless new_id.to_s.match(/^[\w\.\-]+$/) - - value_from_config = get_config_by_key('identity') - - if value_from_config == new_id.to_s - @logger.info "MCollective is up to date with identity = #{new_id}" - else - config = File.open(@configfile, "rb").read - if value_from_config - # Key found, but it has other value - @logger.info "Replacing identity in mcollective server.cfg to new value = '#{new_id}'" - config.gsub!(/^identity[ =].*$/, "identity = #{new_id}") - File.open(@configfile, "w") { |f| f.write(config) } - else # if key was not found - config += "\nidentity = #{new_id}\n" - @logger.info "Identity in mcollective server.cfg has not been found. Setting to '#{new_id}'" - File.open(@configfile, "w") { |f| f.write(config) } - end - puts `service mcollective restart` - end - end -end - class Offloading def initialize(name, sub) @name, @sub = name, sub @@ -1403,10 +1350,6 @@ def write_data_to_file(logger, filename, data) end end -def provisioned? - Socket.gethostname != 'bootstrap' -end - dry_run = false OptionParser.new do |opts| opts.banner = "Usage: nailgun-agent [options]" @@ -1432,11 +1375,6 @@ unless dry_run sleep(sleep_time) end -if File.exist?('/etc/nailgun-agent/nodiscover') - logger.info("Discover prevented by /etc/nailgun-agent/nodiscover presence.") - exit 1 -end - agent = NodeAgent.new(logger, dry_run) agent.update_state @@ -1465,10 +1403,6 @@ begin exit 1 end new_id = JSON.parse(resp.body)['id'] - mc_config = McollectiveConfig.new(logger) - unless provisioned? - mc_config.replace_identity(new_id) - end write_data_to_file(logger, '/etc/nailgun_uid', new_id.to_s) rescue => ex # NOTE(mihgen): There is no need to retry - cron will do it for us