Пример #1
0
    async def test_get_pending_certificate_signing_request(
            self, vault_client, **kwargs):
        self.assertIsNotNone(vault_client)
        client = vault_client.certificates
        cert_name = "unknownIssuerCert"
        cert_policy = CertificatePolicyGenerated(
            key_properties=KeyProperties(exportable=True,
                                         key_type='RSA',
                                         key_size=2048,
                                         reuse_key=False),
            secret_properties=SecretProperties(
                content_type='application/x-pkcs12'),
            issuer_parameters=IssuerParameters(name='Self'),
            x509_certificate_properties=X509CertificateProperties(
                subject='CN=*.microsoft.com',
                subject_alternative_names=SubjectAlternativeNames(
                    dns_names=['sdk.azure-int.net']),
                validity_in_months=24))

        # get pending certificate signing request
        create_certificate_poller = await client.create_certificate(
            name=cert_name,
            policy=CertificatePolicy._from_certificate_policy_bundle(
                cert_policy))
        await create_certificate_poller
        pending_version_csr = await client.get_pending_certificate_signing_request(
            name=cert_name)
        try:
            self.assertEqual(
                (await client.get_certificate_operation(name=cert_name)).csr,
                pending_version_csr)
        except Exception as ex:
            pass
        finally:
            await client.delete_certificate(name=cert_name)
Пример #2
0
    def test_get_pending_certificate_signing_request(self, vault_client, **kwargs):
        self.assertIsNotNone(vault_client)
        client = vault_client.certificates
        cert_name = "unknownIssuerCert"
        cert_policy = CertificatePolicyGenerated(
            key_properties=KeyProperties(exportable=True, key_type="RSA", key_size=2048, reuse_key=False),
            secret_properties=SecretProperties(content_type="application/x-pkcs12"),
            issuer_parameters=IssuerParameters(name="Self"),
            x509_certificate_properties=X509CertificateProperties(
                subject="CN=*.microsoft.com",
                subject_alternative_names=SubjectAlternativeNames(dns_names=["sdk.azure-int.net"]),
                validity_in_months=24,
            ),
        )

        polling_interval = 0 if self.is_playback() else None

        # get pending certificate signing request
        certificate = client.begin_create_certificate(
            certificate_name=cert_name,
            policy=CertificatePolicy._from_certificate_policy_bundle(cert_policy),
            _polling_interval=polling_interval
        ).wait()
        pending_version_csr = client.get_certificate_operation(certificate_name=cert_name).csr
        try:
            self.assertEqual(client.get_certificate_operation(certificate_name=cert_name).csr, pending_version_csr)
        except Exception as ex:
            pass
        finally:
            client.begin_delete_certificate(certificate_name=cert_name)
Пример #3
0
    async def test_async_request_cancellation_and_deletion(
            self, vault_client, **kwargs):
        self.assertIsNotNone(vault_client)
        client = vault_client.certificates

        cert_name = 'asyncCanceledDeletedCert'
        cert_policy = CertificatePolicyGenerated(
            key_properties=KeyProperties(exportable=True,
                                         key_type='RSA',
                                         key_size=2048,
                                         reuse_key=False),
            secret_properties=SecretProperties(
                content_type='application/x-pkcs12'),
            issuer_parameters=IssuerParameters(name='Self'),
            x509_certificate_properties=X509CertificateProperties(
                subject='CN=*.microsoft.com',
                subject_alternative_names=SubjectAlternativeNames(
                    dns_names=['sdk.azure-int.net']),
                validity_in_months=24))

        # create certificate
        create_certificate_poller = await client.create_certificate(
            name=cert_name,
            policy=CertificatePolicy._from_certificate_policy_bundle(
                cert_policy))

        # cancel certificate operation
        cancel_operation = await client.cancel_certificate_operation(
            name=cert_name)
        self.assertTrue(hasattr(cancel_operation, 'cancellation_requested'))
        self.assertTrue(cancel_operation.cancellation_requested)
        self._validate_certificate_operation(
            pending_cert_operation=cancel_operation,
            vault=client.vault_url,
            cert_name=cert_name,
            cert_policy=cert_policy)

        self.assertEqual((await create_certificate_poller).status.lower(),
                         'cancelled')

        retrieved_operation = await client.get_certificate_operation(
            name=cert_name)
        self.assertTrue(hasattr(retrieved_operation, 'cancellation_requested'))
        self.assertTrue(retrieved_operation.cancellation_requested)
        self._validate_certificate_operation(
            pending_cert_operation=retrieved_operation,
            vault=client.vault_url,
            cert_name=cert_name,
            cert_policy=cert_policy)

        # delete certificate operation
        deleted_operation = await client.delete_certificate_operation(
            name=cert_name)
        self.assertIsNotNone(deleted_operation)
        self._validate_certificate_operation(
            pending_cert_operation=deleted_operation,
            vault=client.vault_url,
            cert_name=cert_name,
            cert_policy=cert_policy)

        try:
            await client.get_certificate_operation(name=cert_name)
            self.fail('Get should fail')
        except Exception as ex:
            if not hasattr(ex,
                           'message') or 'not found' not in ex.message.lower():
                raise ex

        # delete cancelled certificate
        await client.delete_certificate(cert_name)
Пример #4
0
    async def test_async_request_cancellation_and_deletion(
            self, vault_client, **kwargs):
        self.assertIsNotNone(vault_client)
        client = vault_client.certificates

        cert_name = "asyncCanceledDeletedCert"
        cert_policy = CertificatePolicyGenerated(
            key_properties=KeyProperties(exportable=True,
                                         key_type="RSA",
                                         key_size=2048,
                                         reuse_key=False),
            secret_properties=SecretProperties(
                content_type="application/x-pkcs12"),
            issuer_parameters=IssuerParameters(name="Unknown"),
            x509_certificate_properties=X509CertificateProperties(
                subject="CN=*.microsoft.com",
                subject_alternative_names=SubjectAlternativeNames(
                    dns_names=["sdk.azure-int.net"]),
                validity_in_months=24,
            ),
        )

        polling_interval = 0 if self.is_playback() else None

        # create certificate
        await client.create_certificate(
            certificate_name=cert_name,
            policy=CertificatePolicy._from_certificate_policy_bundle(
                cert_policy),
            _polling_interval=polling_interval)

        # cancel certificate operation
        cancel_operation = await client.cancel_certificate_operation(cert_name)
        self.assertTrue(hasattr(cancel_operation, "cancellation_requested"))
        self.assertTrue(cancel_operation.cancellation_requested)
        self._validate_certificate_operation(
            pending_cert_operation=cancel_operation,
            vault=client.vault_url,
            cert_name=cert_name,
            cert_policy=cert_policy,
        )

        cancelled = False
        for _ in range(10):
            if (await client.get_certificate_operation(cert_name)
                ).status.lower() == "cancelled":
                cancelled = True
                break
            await asyncio.sleep(10)
        self.assertTrue(cancelled)

        retrieved_operation = await client.get_certificate_operation(
            certificate_name=cert_name)
        self.assertTrue(hasattr(retrieved_operation, "cancellation_requested"))
        self.assertTrue(retrieved_operation.cancellation_requested)
        self._validate_certificate_operation(
            pending_cert_operation=retrieved_operation,
            vault=client.vault_url,
            cert_name=cert_name,
            cert_policy=cert_policy,
        )

        # delete certificate operation
        deleted_operation = await client.delete_certificate_operation(cert_name
                                                                      )
        self.assertIsNotNone(deleted_operation)
        self._validate_certificate_operation(
            pending_cert_operation=deleted_operation,
            vault=client.vault_url,
            cert_name=cert_name,
            cert_policy=cert_policy,
        )

        try:
            await client.get_certificate_operation(certificate_name=cert_name)
            self.fail("Get should fail")
        except Exception as ex:
            if not hasattr(ex,
                           "message") or "not found" not in ex.message.lower():
                raise ex

        # delete cancelled certificate
        await client.delete_certificate(cert_name,
                                        _polling_interval=polling_interval)
    def test_async_request_cancellation_and_deletion(self, vault_client,
                                                     **kwargs):
        self.assertIsNotNone(vault_client)
        client = vault_client.certificates

        cert_name = "asyncCanceledDeletedCert"
        cert_policy = CertificatePolicyGenerated(
            key_properties=KeyProperties(exportable=True,
                                         key_type="RSA",
                                         key_size=2048,
                                         reuse_key=False),
            secret_properties=SecretProperties(
                content_type="application/x-pkcs12"),
            issuer_parameters=IssuerParameters(name="Self"),
            x509_certificate_properties=X509CertificateProperties(
                subject="CN=*.microsoft.com",
                subject_alternative_names=SubjectAlternativeNames(
                    dns_names=["sdk.azure-int.net"]),
                validity_in_months=24,
            ),
        )

        # create certificate
        create_certificate_poller = client.begin_create_certificate(
            name=cert_name,
            policy=CertificatePolicy._from_certificate_policy_bundle(
                cert_policy))

        # cancel certificate operation
        cancel_operation = client.cancel_certificate_operation(name=cert_name)
        self.assertTrue(hasattr(cancel_operation, "cancellation_requested"))
        self.assertTrue(cancel_operation.cancellation_requested)
        self._validate_certificate_operation(
            pending_cert_operation=cancel_operation,
            vault=client.vault_endpoint,
            cert_name=cert_name,
            cert_policy=cert_policy,
        )

        self.assertEqual(create_certificate_poller.result().status.lower(),
                         "cancelled")

        retrieved_operation = client.get_certificate_operation(name=cert_name)
        self.assertTrue(hasattr(retrieved_operation, "cancellation_requested"))
        self.assertTrue(retrieved_operation.cancellation_requested)
        self._validate_certificate_operation(
            pending_cert_operation=retrieved_operation,
            vault=client.vault_endpoint,
            cert_name=cert_name,
            cert_policy=cert_policy,
        )

        # delete certificate operation
        deleted_operation = client.delete_certificate_operation(name=cert_name)
        self.assertIsNotNone(deleted_operation)
        self._validate_certificate_operation(
            pending_cert_operation=deleted_operation,
            vault=client.vault_endpoint,
            cert_name=cert_name,
            cert_policy=cert_policy,
        )

        try:
            client.get_certificate_operation(name=cert_name)
            self.fail("Get should fail")
        except Exception as ex:
            if not hasattr(ex,
                           "message") or "not found" not in ex.message.lower():
                raise ex

        # delete cancelled certificate
        client.delete_certificate(cert_name)