320: def do_execute_changes
321: commands = parse_commands(resource[:changes])
322: commands.each do |cmd_array|
323: fail("invalid command #{cmd_array.join[" "]}") if cmd_array.length < 2
324: command = cmd_array[0]
325: cmd_array.shift
326: begin
327: case command
328: when "set"
329: debug("sending command '#{command}' with params #{cmd_array.inspect}")
330: rv = aug.set(cmd_array[0], cmd_array[1])
331: fail("Error sending command '#{command}' with params #{cmd_array.inspect}") if (!rv)
332: when "rm", "remove"
333: debug("sending command '#{command}' with params #{cmd_array.inspect}")
334: rv = aug.rm(cmd_array[0])
335: fail("Error sending command '#{command}' with params #{cmd_array.inspect}") if (rv == -1)
336: when "clear"
337: debug("sending command '#{command}' with params #{cmd_array.inspect}")
338: rv = aug.clear(cmd_array[0])
339: fail("Error sending command '#{command}' with params #{cmd_array.inspect}") if (!rv)
340: when "insert", "ins"
341: label = cmd_array[0]
342: where = cmd_array[1]
343: path = cmd_array[2]
344: case where
345: when "before"; before = true
346: when "after"; before = false
347: else fail("Invalid value '#{where}' for where param")
348: end
349: debug("sending command '#{command}' with params #{[label, where, path].inspect}")
350: rv = aug.insert(path, label, before)
351: fail("Error sending command '#{command}' with params #{cmd_array.inspect}") if (rv == -1)
352: else fail("Command '#{command}' is not supported")
353: end
354: rescue SystemExit,NoMemoryError
355: raise
356: rescue Exception => e
357: fail("Error sending command '#{command}' with params #{cmd_array.inspect}/#{e.message}")
358: end
359: end
360: end