Updated mcollective.init according to OSCI-658
[packages/precise/mcollective.git] / plugins / mcollective / agent / rpcutil.ddl
diff --git a/plugins/mcollective/agent/rpcutil.ddl b/plugins/mcollective/agent/rpcutil.ddl
new file mode 100644 (file)
index 0000000..140abf8
--- /dev/null
@@ -0,0 +1,204 @@
+metadata    :name        => "rpcutil",
+            :description => "General helpful actions that expose stats and internals to SimpleRPC clients",
+            :author      => "R.I.Pienaar <rip@devco.net>",
+            :license     => "Apache License, Version 2.0",
+            :version     => "1.0",
+            :url         => "http://marionette-collective.org/",
+            :timeout     => 10
+
+action "collective_info", :description => "Info about the main and sub collectives" do
+    display :always
+
+    output :main_collective,
+           :description => "The main Collective",
+           :display_as => "Main Collective"
+
+    output :collectives,
+           :description => "All Collectives",
+           :display_as => "All Collectives"
+
+    summarize do
+        aggregate summary(:collectives)
+    end
+end
+
+action "inventory", :description => "System Inventory" do
+    display :always
+
+    output :agents,
+           :description => "List of agent names",
+           :display_as => "Agents"
+
+    output :facts,
+           :description => "List of facts and values",
+           :display_as => "Facts"
+
+    output :classes,
+           :description => "List of classes on the system",
+           :display_as => "Classes"
+
+    output :version,
+           :description => "MCollective Version",
+           :display_as => "Version"
+
+    output :main_collective,
+           :description => "The main Collective",
+           :display_as => "Main Collective"
+
+    output :collectives,
+           :description => "All Collectives",
+           :display_as => "All Collectives"
+
+    output :data_plugins,
+           :description => "List of data plugin names",
+           :display_as => "Data Plugins"
+end
+
+action "get_fact", :description => "Retrieve a single fact from the fact store" do
+     display :always
+
+     input :fact,
+           :prompt      => "The name of the fact",
+           :description => "The fact to retrieve",
+           :type        => :string,
+           :validation  => '^[\w\-\.]+$',
+           :optional    => false,
+           :maxlength   => 40
+
+     output :fact,
+            :description => "The name of the fact being returned",
+            :display_as => "Fact"
+
+     output :value,
+            :description => "The value of the fact",
+            :display_as => "Value"
+
+    summarize do
+        aggregate summary(:value)
+    end
+end
+
+action "daemon_stats", :description => "Get statistics from the running daemon" do
+    display :always
+
+    output :threads,
+           :description => "List of threads active in the daemon",
+           :display_as => "Threads"
+
+    output :agents,
+           :description => "List of agents loaded",
+           :display_as => "Agents"
+
+    output :pid,
+           :description => "Process ID of the daemon",
+           :display_as => "PID"
+
+    output :times,
+           :description => "Processor time consumed by the daemon",
+           :display_as => "Times"
+
+    output :validated,
+           :description => "Messages that passed security validation",
+           :display_as => "Security Validated"
+
+    output :unvalidated,
+           :description => "Messages that failed security validation",
+           :display_as => "Failed Security"
+
+    output :passed,
+           :description => "Passed filter checks",
+           :display_as => "Passed Filter"
+
+    output :filtered,
+           :description => "Didn't pass filter checks",
+           :display_as => "Failed Filter"
+
+    output :starttime,
+           :description => "Time the server started",
+           :display_as => "Start Time"
+
+    output :total,
+           :description => "Total messages received",
+           :display_as => "Total Messages"
+
+    output :replies,
+           :description => "Replies sent back to clients",
+           :display_as => "Replies"
+
+    output :configfile,
+           :description => "Config file used to start the daemon",
+           :display_as => "Config File"
+
+    output :version,
+           :description => "MCollective Version",
+           :display_as => "Version"
+
+    output :ttlexpired,
+           :description => "Messages that did pass TTL checks",
+           :display_as => "TTL Expired"
+
+    summarize do
+        aggregate summary(:version)
+        aggregate summary(:agents)
+    end
+end
+
+action "agent_inventory", :description => "Inventory of all agents on the server" do
+    display :always
+
+    output :agents,
+           :description => "List of agents on the server",
+           :display_as => "Agents"
+end
+
+action "get_config_item", :description => "Get the active value of a specific config property" do
+    display :always
+
+    input :item,
+          :prompt      => "Configuration Item",
+          :description => "The item to retrieve from the server",
+          :type        => :string,
+          :validation  => '^.+$',
+          :optional    => false,
+          :maxlength    => 50
+
+    output :item,
+           :description => "The config property being retrieved",
+           :display_as => "Property"
+
+    output :value,
+           :description => "The value that is in use",
+           :display_as => "Value"
+
+    summarize do
+        aggregate summary(:value)
+    end
+end
+
+action "get_data", :description => "Get data from a data plugin" do
+    display :always
+
+    input :source,
+          :prompt      => "Data Source",
+          :description => "The data plugin to retrieve information from",
+          :type        => :string,
+          :validation  => '^\w+$',
+          :optional    => false,
+          :maxlength   => 50
+
+    input :query,
+          :prompt      => "Query",
+          :description => "The query argument to supply to the data plugin",
+          :type        => :string,
+          :validation  => '^.+$',
+          :optional    => true,
+          :maxlength   => 200
+end
+
+action "ping", :description => "Responds to requests for PING with PONG" do
+    display :always
+
+    output :pong,
+           :description => "The local timestamp",
+           :display_as => "Timestamp"
+end