308: def do_execute_changes
309: commands = parse_commands(resource[:changes])
310: commands.each do |cmd_array|
311: fail("invalid command #{cmd_array.join[" "]}") if cmd_array.length < 2
312: command = cmd_array[0]
313: cmd_array.shift
314: begin
315: case command
316: when "set"
317: debug("sending command '#{command}' with params #{cmd_array.inspect}")
318: aug.set(cmd_array[0], cmd_array[1])
319: when "rm", "remove"
320: debug("sending command '#{command}' with params #{cmd_array.inspect}")
321: aug.rm(cmd_array[0])
322: when "clear"
323: debug("sending command '#{command}' with params #{cmd_array.inspect}")
324: @aug.clear(cmd_array[0])
325: when "insert", "ins"
326: label = cmd_array[0]
327: where = cmd_array[1]
328: path = cmd_array[2]
329: case where
330: when "before"; before = true
331: when "after"; before = false
332: else fail("Invalid value '#{where}' for where param")
333: end
334: debug("sending command '#{command}' with params #{[label, where, path].inspect}")
335: aug.insert(path, label, before)
336: else fail("Command '#{command}' is not supported")
337: end
338: rescue Exception => e
339: fail("Error sending command '#{command}' with params #{cmd_array.inspect}/#{e.message}")
340: end
341: end
342: end