Esempio n. 1
0
    def RequestCronJobApproval(self,
                               cron_job_id,
                               requestor=None,
                               reason=None,
                               email_cc_address=None,
                               approver=u"approver"):
        """Request cron job approval for a given cron job."""

        if not requestor:
            requestor = self.token.username

        if not reason:
            reason = self.token.reason

        self.CreateUser(requestor)
        self.CreateUser(approver)

        args = api_user.ApiCreateCronJobApprovalArgs(
            cron_job_id=cron_job_id,
            approval=api_user.ApiCronJobApproval(
                reason=reason,
                notified_users=[approver],
                email_cc_addresses=([email_cc_address]
                                    if email_cc_address else [])))
        handler = api_user.ApiCreateCronJobApprovalHandler()
        result = handler.Handle(
            args, token=access_control.ACLToken(username=requestor))

        return result.id
Esempio n. 2
0
    def RequestCronJobApproval(self,
                               cron_job_id,
                               requestor=None,
                               reason="Running tests",
                               email_cc_address=None,
                               approver=u"approver"):
        """Request cron job approval for a given cron job."""

        if not requestor:
            requestor = self.test_username

        self.CreateUser(requestor)
        self.CreateUser(approver)

        args = api_user.ApiCreateCronJobApprovalArgs(
            cron_job_id=cron_job_id,
            approval=api_user.ApiCronJobApproval(
                reason=reason,
                notified_users=[approver],
                email_cc_addresses=([email_cc_address]
                                    if email_cc_address else [])))
        handler = api_user.ApiCreateCronJobApprovalHandler()
        result = handler.Handle(
            args, context=api_call_context.ApiCallContext(username=requestor))

        return result.id
Esempio n. 3
0
    def Run(self):
        with test_lib.FakeTime(42):
            self.CreateUser(u"approver")

        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)

        def ReplaceCronAndApprovalIds():
            approvals = self.ListCronJobApprovals()
            return {
                approvals[0].id: "approval:112233",
                cron_id: "CronJob_123456"
            }

        with test_lib.FakeTime(126):
            self.Check("CreateCronJobApproval",
                       args=user_plugin.ApiCreateCronJobApprovalArgs(
                           cron_job_id=cron_id,
                           approval=user_plugin.ApiCronJobApproval(
                               reason="really important reason!",
                               notified_users=["approver1", "approver2"],
                               email_cc_addresses=["*****@*****.**"])),
                       replace=ReplaceCronAndApprovalIds)
Esempio n. 4
0
  def setUp(self):
    super(ApiCreateCronJobApprovalHandlerTest, self).setUp()

    self.SetUpApprovalTest()

    cron_manager = cronjobs.CronManager()
    cron_args = rdf_cronjobs.CreateCronJobArgs(
        frequency="1d", allow_overruns=False)
    cron_id = cron_manager.CreateJob(cron_args=cron_args)

    self.handler = user_plugin.ApiCreateCronJobApprovalHandler()

    self.args = user_plugin.ApiCreateCronJobApprovalArgs(cron_job_id=cron_id)
    self.args.approval.reason = self.token.reason
    self.args.approval.notified_users = [u"approver"]
    self.args.approval.email_cc_addresses = ["*****@*****.**"]
Esempio n. 5
0
  def setUp(self):
    super().setUp()

    self.SetUpApprovalTest()

    cron_manager = cronjobs.CronManager()
    cron_args = rdf_cronjobs.CreateCronJobArgs(
        frequency="1d",
        allow_overruns=False,
        flow_name=file.CollectSingleFile.__name__)
    cron_id = cron_manager.CreateJob(cron_args=cron_args)

    self.handler = user_plugin.ApiCreateCronJobApprovalHandler()

    self.args = user_plugin.ApiCreateCronJobApprovalArgs(cron_job_id=cron_id)
    self.args.approval.reason = "Running tests"
    self.args.approval.notified_users = [u"approver"]
    self.args.approval.email_cc_addresses = ["*****@*****.**"]