from ganeti.cli import *
from ganeti import constants
from ganeti import errors
+from ganeti import utils
#: default list of fields for L{ListJobs}
_USER_JOB_STATUS = {
constants.JOB_STATUS_QUEUED: "queued",
constants.JOB_STATUS_WAITLOCK: "waiting",
+ constants.JOB_STATUS_CANCELING: "canceling",
constants.JOB_STATUS_RUNNING: "running",
constants.JOB_STATUS_CANCELED: "canceled",
constants.JOB_STATUS_SUCCESS: "success",
@param opts: the command line options selected by the user
@type args: list
@param args: should contain only one element, the age as a time spec
- that can be parsed by L{cli.ParseTimespec} or the keyword I{all},
- which will cause all jobs to be archived
+ that can be parsed by L{ganeti.cli.ParseTimespec} or the
+ keyword I{all}, which will cause all jobs to be archived
@rtype: int
@return: the desired exit code
else:
age = ParseTimespec(age)
- client.AutoArchiveJobs(age)
+ (archived_count, jobs_left) = client.AutoArchiveJobs(age)
+ ToStdout("Archived %s jobs, %s unchecked left", archived_count, jobs_left)
+
return 0
client = GetClient()
for job_id in args:
- client.CancelJob(job_id)
+ (success, msg) = client.CancelJob(job_id)
+ ToStdout(msg)
+ # TODO: Different exit value if not all jobs were canceled?
return 0
format(3, "Execution log:")
for serial, log_ts, log_type, log_msg in log:
time_txt = FormatTimestamp(log_ts)
- encoded = str(log_msg).encode('string_escape')
+ encoded = utils.SafeEncode(log_msg)
format(4, "%s:%s:%s %s" % (serial, time_txt, log_type, encoded))
return 0