class MCollective::Application::Completion

Public Instance Methods

list_actions() click to toggle source
# File lib/mcollective/application/completion.rb, line 55
def list_actions
  abort "Please specify an agent to list actions for" unless configuration[:agent]

  if options[:verbose]
    ddl = DDL.new(configuration[:agent], :agent)

    ddl.actions.sort.each do |action|
      puts "%s:%s" % [action, ddl.action_interface(action)[:description]]
    end
  else
    DDL.new(configuration[:agent], :agent).actions.sort.each {|a| puts a}
  end
rescue
end
list_agents() click to toggle source
# File lib/mcollective/application/completion.rb, line 41
def list_agents
  if options[:verbose]
    PluginManager.find(:agent, "ddl").each do |agent|
      begin
        ddl = DDL.new(agent)
        puts "%s:%s" % [ agent, ddl.meta[:description] ]
      rescue
      end
    end
  else
    PluginManager.find(:agent, "ddl").each {|p| puts p}
  end
end
list_applications() click to toggle source
# File lib/mcollective/application/completion.rb, line 85
def list_applications
  if options[:verbose]
    Applications.list.each do |app|
      puts "%s:%s" % [app, Applications[app].application_description]
    end
  else
    Applications.list.each {|a| puts a}
  end
end
list_inputs() click to toggle source
# File lib/mcollective/application/completion.rb, line 70
def list_inputs
  abort "Please specify an action and agent to list inputs for" unless configuration[:agent] && configuration[:action]

  if options[:verbose]
    ddl = DDL.new(configuration[:agent], :agent)
    action = ddl.action_interface(configuration[:action])
    action[:input].keys.sort.each do |input|
      puts "%s:%s" % [input, action[:input][input][:description]]
    end
  else
    DDL.new(configuration[:agent], :agent).action_interface(configuration[:action])[:input].keys.sort.each {|i| puts i}
  end
rescue
end
main() click to toggle source
# File lib/mcollective/application/completion.rb, line 95
def main
  actions = configuration.keys.map{|k| k.to_s}.grep(/^list_/)

  abort "Please choose either --list-[agents|actions|inputs|applications]" if actions.empty?
  abort "Please choose only one of --list-[agents|actions|inputs|applications]" if actions.size > 1

  send actions.first
end