From 45cba13ee6d67c9c48e6db7b810f2fc55b1b14b8 Mon Sep 17 00:00:00 2001 From: Dominic Cleal Date: Fri, 25 Feb 2011 22:06:28 +0000 Subject: (#6494) Add defvar command to Augeas provider Uses Augeas' native defvar command to define variables for certain expressions that can then be referenced later with $variable. --- lib/puppet/provider/augeas/augeas.rb | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'lib') diff --git a/lib/puppet/provider/augeas/augeas.rb b/lib/puppet/provider/augeas/augeas.rb index 461968245..89f08ac00 100644 --- a/lib/puppet/provider/augeas/augeas.rb +++ b/lib/puppet/provider/augeas/augeas.rb @@ -36,6 +36,7 @@ Puppet::Type.type(:augeas).provide(:augeas) do "clear" => [ :path ], "insert" => [ :string, :string, :path ], "get" => [ :path, :comparator, :string ], + "defvar" => [ :string, :path ], "match" => [ :path, :glob ], "size" => [:comparator, :int], "include" => [:string], @@ -354,6 +355,10 @@ Puppet::Type.type(:augeas).provide(:augeas) do debug("sending command '#{command}' with params #{[label, where, path].inspect}") rv = aug.insert(path, label, before) fail("Error sending command '#{command}' with params #{cmd_array.inspect}") if (rv == -1) + when "defvar" + debug("sending command '#{command}' with params #{cmd_array.inspect}") + rv = aug.defvar(cmd_array[0], cmd_array[1]) + fail("Error sending command '#{command}' with params #{cmd_array.inspect}") if (!rv) else fail("Command '#{command}' is not supported") end rescue SystemExit,NoMemoryError -- cgit From 67ed16031c6f1695a5b9933169b1f8ec1a4cce53 Mon Sep 17 00:00:00 2001 From: Dominic Cleal Date: Fri, 25 Feb 2011 22:13:33 +0000 Subject: (#6494) Add defnode command to Augeas provider Uses Augeas' defnode command which creates a variable pointing to a node, creating it with 'set' if it doesn't already exist. --- lib/puppet/provider/augeas/augeas.rb | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'lib') diff --git a/lib/puppet/provider/augeas/augeas.rb b/lib/puppet/provider/augeas/augeas.rb index 89f08ac00..59513e35a 100644 --- a/lib/puppet/provider/augeas/augeas.rb +++ b/lib/puppet/provider/augeas/augeas.rb @@ -37,6 +37,7 @@ Puppet::Type.type(:augeas).provide(:augeas) do "insert" => [ :string, :string, :path ], "get" => [ :path, :comparator, :string ], "defvar" => [ :string, :path ], + "defnode" => [ :string, :path, :string ], "match" => [ :path, :glob ], "size" => [:comparator, :int], "include" => [:string], @@ -359,6 +360,10 @@ Puppet::Type.type(:augeas).provide(:augeas) do debug("sending command '#{command}' with params #{cmd_array.inspect}") rv = aug.defvar(cmd_array[0], cmd_array[1]) fail("Error sending command '#{command}' with params #{cmd_array.inspect}") if (!rv) + when "defnode" + debug("sending command '#{command}' with params #{cmd_array.inspect}") + rv = aug.defnode(cmd_array[0], cmd_array[1], cmd_array[2]) + fail("Error sending command '#{command}' with params #{cmd_array.inspect}") if (!rv) else fail("Command '#{command}' is not supported") end rescue SystemExit,NoMemoryError -- cgit From 0026e43ef99f411ac66e76b88bae2bf3c0cc3734 Mon Sep 17 00:00:00 2001 From: Dominic Cleal Date: Fri, 25 Feb 2011 22:22:04 +0000 Subject: (#6494) Add mv command to Augeas provider Moves the first node to the position of the second, deleting it and its children if it already exists. --- lib/puppet/provider/augeas/augeas.rb | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'lib') diff --git a/lib/puppet/provider/augeas/augeas.rb b/lib/puppet/provider/augeas/augeas.rb index 59513e35a..110885be8 100644 --- a/lib/puppet/provider/augeas/augeas.rb +++ b/lib/puppet/provider/augeas/augeas.rb @@ -34,6 +34,7 @@ Puppet::Type.type(:augeas).provide(:augeas) do "set" => [ :path, :string ], "rm" => [ :path ], "clear" => [ :path ], + "mv" => [ :path, :path ], "insert" => [ :string, :string, :path ], "get" => [ :path, :comparator, :string ], "defvar" => [ :string, :path ], @@ -48,6 +49,7 @@ Puppet::Type.type(:augeas).provide(:augeas) do COMMANDS["ins"] = COMMANDS["insert"] COMMANDS["remove"] = COMMANDS["rm"] + COMMANDS["move"] = COMMANDS["mv"] attr_accessor :aug @@ -364,6 +366,10 @@ Puppet::Type.type(:augeas).provide(:augeas) do debug("sending command '#{command}' with params #{cmd_array.inspect}") rv = aug.defnode(cmd_array[0], cmd_array[1], cmd_array[2]) fail("Error sending command '#{command}' with params #{cmd_array.inspect}") if (!rv) + when "mv", "move" + debug("sending command '#{command}' with params #{cmd_array.inspect}") + rv = aug.mv(cmd_array[0], cmd_array[1]) + fail("Error sending command '#{command}' with params #{cmd_array.inspect}") if (rv == -1) else fail("Command '#{command}' is not supported") end rescue SystemExit,NoMemoryError -- cgit From f0d768465d011e01a4ce247130e3f139a23b4c54 Mon Sep 17 00:00:00 2001 From: Dominic Cleal Date: Fri, 25 Feb 2011 22:48:36 +0000 Subject: (#6494) Add setm command to Augeas provider The Augeas setm command can set the value of multiple nodes in a single operation. Takes a base path, then a subnode path expression (relative to the base) and then the value itself. --- lib/puppet/provider/augeas/augeas.rb | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'lib') diff --git a/lib/puppet/provider/augeas/augeas.rb b/lib/puppet/provider/augeas/augeas.rb index 110885be8..5488c6674 100644 --- a/lib/puppet/provider/augeas/augeas.rb +++ b/lib/puppet/provider/augeas/augeas.rb @@ -32,6 +32,7 @@ Puppet::Type.type(:augeas).provide(:augeas) do COMMANDS = { "set" => [ :path, :string ], + "setm" => [ :path, :string, :string ], "rm" => [ :path ], "clear" => [ :path ], "mv" => [ :path, :path ], @@ -338,6 +339,10 @@ Puppet::Type.type(:augeas).provide(:augeas) do debug("sending command '#{command}' with params #{cmd_array.inspect}") rv = aug.set(cmd_array[0], cmd_array[1]) fail("Error sending command '#{command}' with params #{cmd_array.inspect}") if (!rv) + when "setm" + debug("sending command '#{command}' with params #{cmd_array.inspect}") + rv = aug.setm(cmd_array[0], cmd_array[1], cmd_array[2]) + fail("Error sending command '#{command}' with params #{cmd_array.inspect}") if (rv == -1) when "rm", "remove" debug("sending command '#{command}' with params #{cmd_array.inspect}") rv = aug.rm(cmd_array[0]) -- cgit