Esempio n. 1
0
    def test_job_relaunch_resource_access(self, user, inventory,
                                          machine_credential, inv_access,
                                          cred_access, can_start):
        job_template = JobTemplate.objects.create(
            ask_inventory_on_launch=True, ask_credential_on_launch=True)
        u = user('user1', False)
        job_with_links = Job.objects.create(name='existing-job',
                                            inventory=inventory,
                                            job_template=job_template,
                                            created_by=u)
        job_with_links.credentials.add(machine_credential)
        JobLaunchConfig.objects.create(job=job_with_links, inventory=inventory)
        job_with_links.launch_config.credentials.add(
            machine_credential)  # credential was prompted
        job_template.execute_role.members.add(u)
        if inv_access:
            job_with_links.inventory.use_role.members.add(u)
        if cred_access:
            machine_credential.use_role.members.add(u)

        access = JobAccess(u)
        if can_start:
            assert access.can_start(job_with_links, validate_license=False)
        else:
            with pytest.raises(PermissionDenied):
                access.can_start(job_with_links, validate_license=False)
Esempio n. 2
0
    def test_job_relaunch_resource_access(self, user, inventory,
                                          machine_credential, inv_access,
                                          cred_access, can_start):
        job_template = JobTemplate.objects.create(
            ask_inventory_on_launch=True, ask_credential_on_launch=True)
        job_with_links = Job.objects.create(name='existing-job',
                                            inventory=inventory,
                                            job_template=job_template)
        job_with_links.credentials.add(machine_credential)
        JobLaunchConfig.objects.create(job=job_with_links, inventory=inventory)
        job_with_links.launch_config.credentials.add(
            machine_credential)  # credential was prompted
        u = user('user1', False)
        job_template.execute_role.members.add(u)
        if inv_access:
            job_with_links.inventory.use_role.members.add(u)
        if cred_access:
            machine_credential.use_role.members.add(u)

        access = JobAccess(u)
        assert access.can_start(
            job_with_links, validate_license=False
        ) == can_start, (
            "Inventory access: {}\nCredential access: {}\n Expected access: {}"
            .format(inv_access, cred_access, can_start))