def GrantCronJobApproval(self, cron_job_id, requestor=None, approval_id=None, approver="approver", admin=True): """Grants an approval for a given cron job.""" if not requestor: requestor = self.token.username if not approval_id: raise ValueError("approval_id can't be empty.") self.CreateUser(requestor) if admin: self.CreateAdminUser(approver) else: self.CreateUser(approver) args = api_user.ApiGrantCronJobApprovalArgs(cron_job_id=cron_job_id, username=requestor, approval_id=approval_id) handler = api_user.ApiGrantCronJobApprovalHandler() handler.Handle( args, context=api_call_context.ApiCallContext(username=approver))
def Run(self): with test_lib.FakeTime(42): self.CreateAdminUser(u"requestor") cron_manager = aff4_cronjobs.GetCronManager() cron_args = rdf_cronjobs.CreateCronJobArgs(frequency="1d", allow_overruns=False) cron_id = cron_manager.CreateJob(cron_args=cron_args, token=self.token) with test_lib.FakeTime(44): approval_id = self.RequestCronJobApproval( cron_id, approver=self.token.username, requestor=u"requestor", reason="foo") with test_lib.FakeTime(126): self.Check("GrantCronJobApproval", args=user_plugin.ApiGrantCronJobApprovalArgs( cron_job_id=cron_id, approval_id=approval_id, username=u"requestor"), replace={ cron_id: "CronJob_123456", approval_id: "approval:111111" })