Пример #1
0
	def search_job(args):
		"""That moment when you have to rely on a function to look for a job"""
		try:
			count = 0
			name = str(args.name)
			job_list = []
			cron = TCronTab(user=True)
			if name == "@all":
				for job in cron:
					job_name = job.get_name()
					enabled = "ON" if job.is_enabled() else "OFF"
					job_list.append([job_name, job.repr_trigger(), enabled, str(job.slices), job.command])
			elif name == "@supercron":
				for job in cron:
					if job.is_superjob():
						job_name = job.get_name()
						enabled = "ON" if job.is_enabled() else "OFF"
						job_list.append([job_name, enabled, job.repr_trigger(), str(job.slices), job.command])
			else:
				jobs = cron.find_name(name)
				for job in jobs:
					enabled = "ON" if job.is_enabled() else "OFF"
					job_list.append([name, enabled, job.repr_trigger(), str(job.slices), job.command])
			if job_list:
				col_widths = []
				col_titles = ["Name", "State", "Trigger", "Repetition", "Command"]
				for i in range(0, 5):
					col_widths.append(max(max(len(n[i]) for n in job_list) + 2, len(col_titles[i]) + 2))
				Utils.debug_print("".join(word.ljust(col_widths[i]) for word, i in zip(col_titles, range(0, 5))))
				Utils.debug_print("-" * (sum(col_widths) - 2))
				for job_item in job_list:
					Utils.debug_print("".join(word.ljust(col_widths[i]) for word, i in zip(job_item, range(0, 5))))
					count += 1
			else:
				Utils.debug_print("Zero search results.")
			return count
		except:
			# in case of any error, so the unittests can detect it
			return -1
Пример #2
0
	def trigger_job(args):
		remove_trigger = False
		count = 0
		cron = TCronTab(user=True)
		if "quiet" in args:
			Utils.DEBUG = not args.quiet
		name = str(args.name)
		trigger = str(args.trigger[0])
		jobs = cron.find_name(name)
		if trigger.lower().strip() == "none":
			remove_trigger = True
			for job in jobs:
				job.set_trigger("")
				count += 1
		else:
			trigger_list = Utils.parse_trigger(trigger.strip())
			if trigger_list:
				for job in jobs:
					job.set_trigger(trigger_list)
					count += 1
			else:
				print(trigger.strip())
				Utils.debug_print("Error: invalid trigger (expected format is \"NONE\" or \"ACTION if NAME is STATE\").")
				sys.exit(1)
		cron.write_to_user(user=True)
		if remove_trigger:
			if count == 1:
				Utils.debug_print("Trigger was removed from 1 job named '{}'.".format(name))
			else:
				Utils.debug_print("Trigger was removed from {} jobs named '{}'.".format(count, name))
		else:
			if count == 1:
				Utils.debug_print("Trigger '{}' was added to 1 job named '{}'."
					.format(trigger.strip(), name))
			else:
				Utils.debug_print("Trigger '{}' was added to {} jobs named '{}'."
					.format(trigger.strip(), count, name))