Sha256: 3c7a205c4529ae303d3030f6fc6517cc3652a8c8847c660879f4cac56f5233ea

Contents?: true

Size: 1.31 KB

Versions: 1

Compression:

Stored size: 1.31 KB

Contents

module Cluster
  
  module Base
    include GoldenBrindle::Command::Base
    
    def configure 
      options [ 
        ["-c", "--conf_path PATH", "Path to golden_brindle configuration files", :@cwd, "."],
        ["-V", "", "Verbose output", :@verbose, false]
      ]
    end
    
    def validate
      @cwd = File.expand_path(@cwd)
      valid_dir? @cwd, "Invalid path to golden_brindle configuration files: #{@cwd}"
      @valid
    end

    def run
      command = self.class.to_s.downcase.split('::')[1]
      counter = 0
      errors = 0
      Dir.chdir @cwd do
        Dir.glob("**/*.{yml,conf}").each do |conf|
          cmd = "golden_brindle #{command} -C #{conf}"
          cmd += " -d" if command == "start" #daemonize only when start
          puts cmd if @verbose 
          output = `#{cmd}`
          puts output if @verbose
          status = $?.success?
          puts "golden_brindle #{command} returned an error." unless status
          status ? counter += 1 : errors += 1
        end
      end
      puts "Success:#{counter}; Errors: #{errors}"
    end
    
  end
  
  class Start < GemPlugin::Plugin "/commands"
    include Cluster::Base
  end
  
  class Stop < GemPlugin::Plugin "/commands"
    include Cluster::Base
  end
  
  class Restart < GemPlugin::Plugin "/commands"
    include Cluster::Base
  end
  
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
golden_brindle-0.2 lib/golden_brindle/cluster.rb