From: Samir Aguiar Date: Fri, 14 Dec 2018 18:28:00 +0000 (-0200) Subject: Fix remote scheduling of programs X-Git-Tag: v1.4~10^2 X-Git-Url: http://developer.intra2net.com/git/?a=commitdiff_plain;h=ef5c0c2066a47a978743c14f95cbf1ba83e1d165;p=pyi2ncommon Fix remote scheduling of programs When scheduling a program on a remote VM, the schedule file was not being sent to the VM. Also, when removing previously schedule files rm was waiting for confirmation since we didn't pass it the `-f` option. --- diff --git a/src/arnied_wrapper.py b/src/arnied_wrapper.py index 2f279a4..fc5dc1b 100644 --- a/src/arnied_wrapper.py +++ b/src/arnied_wrapper.py @@ -331,30 +331,34 @@ def schedule(program, exec_time=0, optional_args="", vm=None): :type vm: VM object or None """ log.info("Scheduling %s to be executed at %i", program, exec_time) - tmp_file = tempfile.NamedTemporaryFile(mode="w+", - prefix=program.upper() + "_", - dir=DUMP_CONFIG_DIR, - delete=False) - log.debug("Created temporary file %s", tmp_file.name) - contents = "%i\n%s\n" % (exec_time, optional_args) - tmp_file.write(contents) - tmp_file.close() schedule_dir = "/var/intranator/schedule" - # clean from already scheduled backups + # clean previous schedules of the same program files = vm.session.cmd("ls " + schedule_dir).split() if vm else os.listdir(schedule_dir) for file_name in files: if file_name.startswith(program.upper()): log.debug("Removing previous scheduled %s", file_name) if vm: - vm.session.cmd("rm " + file_name) + vm.session.cmd("rm -f " + os.path.join(schedule_dir, file_name)) else: os.unlink(os.path.join(schedule_dir, file_name)) - moved_tmp_file = os.path.join(schedule_dir, - os.path.basename(tmp_file.name)) + + contents = "%i\n%s\n" % (exec_time, optional_args) + + tmp_file = tempfile.NamedTemporaryFile(mode="w+", + prefix=program.upper() + "_", + dir=DUMP_CONFIG_DIR, + delete=False) + log.debug("Created temporary file %s", tmp_file.name) + tmp_file.write(contents) + tmp_file.close() + moved_tmp_file = os.path.join(schedule_dir, os.path.basename(tmp_file.name)) + if vm: - vm.session.cmd("mv " + tmp_file.name + " " + moved_tmp_file) + vm.copy_files_to(tmp_file.name, moved_tmp_file) + os.remove(tmp_file.name) else: shutil.move(tmp_file.name, moved_tmp_file) + log.debug("Moved temporary file to %s", moved_tmp_file)