Sha256: 1d850d904f407a36a66621e351a891837d14ff172b7ccf831aade35fe7eff993

Contents?: true

Size: 1.47 KB

Versions: 23

Compression:

Stored size: 1.47 KB

Contents

module LitmusPaper
  module CLI
    class Admin
      class Force < Command
        def self.description
          "Force services up or down"
        end

        def self.build_request(options, args)
          options.merge! _default_options
          opt_parser = _extend_default_parser(options) do |opts|
            opts.banner = "Usage: litmusctl force <up|down|health N> [service] [options]"
            opts.on("-d", "--delete", "Remove status file") do
              options[:delete] = true
            end
            opts.on("-r", "--reason=reason", String, "Reason for status file") do |reason|
              options[:reason] = reason.gsub("\n", " ")
            end
          end

          opt_parser.parse! args
          if args[0] == "health" && !options[:delete]
            direction, value, service = args
          else
            direction, service = args
          end
          path = service ? "/#{service}/#{direction}" : "/#{direction}"

          if options[:delete]
            request = Net::HTTP::Delete.new(path)
          else
            if !options.has_key?(:reason)
              print "Reason? "
              options[:reason] = STDIN.gets.chomp.gsub("\n", " ")
            end
            request = Net::HTTP::Post.new(path)
            params = {'reason' => options[:reason]}
            params.merge!({'health' => value}) if direction == 'health'
            request.set_form_data(params)
          end

          request
        end
      end
    end
  end
end

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
litmus_paper-1.6.2 lib/litmus_paper/cli/admin/force.rb
litmus_paper-1.6.1 lib/litmus_paper/cli/admin/force.rb
litmus_paper-1.6.0 lib/litmus_paper/cli/admin/force.rb
litmus_paper-1.5.0 lib/litmus_paper/cli/admin/force.rb
litmus_paper-1.4.2 lib/litmus_paper/cli/admin/force.rb
litmus_paper-1.4.1 lib/litmus_paper/cli/admin/force.rb
litmus_paper-1.3.0 lib/litmus_paper/cli/admin/force.rb
litmus_paper-1.2.0 lib/litmus_paper/cli/admin/force.rb
litmus_paper-1.1.1 lib/litmus_paper/cli/admin/force.rb
litmus_paper-1.1.0 lib/litmus_paper/cli/admin/force.rb
litmus_paper-1.0.0 lib/litmus_paper/cli/admin/force.rb
litmus_paper-0.9.9 lib/litmus_paper/cli/admin/force.rb
litmus_paper-0.9.7 lib/litmus_paper/cli/admin/force.rb
litmus_paper-0.9.6 lib/litmus_paper/cli/admin/force.rb
litmus_paper-0.9.5 lib/litmus_paper/cli/admin/force.rb
litmus_paper-0.9.4 lib/litmus_paper/cli/admin/force.rb
litmus_paper-0.9.3 lib/litmus_paper/cli/admin/force.rb
litmus_paper-0.9.2 lib/litmus_paper/cli/admin/force.rb
litmus_paper-0.9.1 lib/litmus_paper/cli/admin/force.rb
litmus_paper-0.9.0 lib/litmus_paper/cli/admin/force.rb