: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)