Пример #1
0
    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))
Пример #2
0
    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"
                       })