def test_list_issuers(self, vault, **kwargs):
        self.assertIsNotNone(vault)
        vault_uri = vault.properties.vault_uri

        max_issuers = self.list_test_size
        expected = {}

        # create some certificate issuers(
        for x in range(0, max_issuers):
            issuer_name = 'pythonIssuer{}'.format(x + 1)
            issuer_credentials = IssuerCredentials(account_id='keyvaultuser', password='******')
            organization_details = OrganizationDetails(
                admin_details=[AdministratorDetails(first_name='Jane',
                                                    last_name='Doe',
                                                    email_address='*****@*****.**',
                                                    phone='4256666666')])
            error_count = 0
            issuer_bundle = None
            while not issuer_bundle:
                try:
                    issuer_bundle = self.client.set_certificate_issuer(vault_uri, issuer_name, 'test',
                                                                       issuer_credentials, organization_details)
                    expected[issuer_bundle.id] = issuer_bundle.provider
                except Exception as ex:
                    if hasattr(ex, 'message') and 'Throttled' in ex.message:
                        error_count += 1
                        time.sleep(2.5 * error_count)
                        continue
                    else:
                        raise ex

        # list certificate issuers
        result = list(self.client.get_certificate_issuers(vault_uri, self.list_test_size))
        self._validate_certificate_issuer_list(result, expected)
Esempio n. 2
0
def create_certificate_issuer(client,
                              vault_base_url,
                              issuer_name,
                              provider_name,
                              account_id=None,
                              password=None,
                              disabled=None,
                              organization_id=None):
    """ Create a certificate issuer record.
    :param issuer_name: Unique identifier for the issuer settings.
    :param provider_name: The certificate provider name. Must be registered with your
        tenant ID and in your region.
    :param account_id: The issuer account id/username/etc.
    :param password: The issuer account password/secret/etc.
    :param organization_id: The organization id.
    """
    from azure.keyvault.models import \
        (CertificateIssuerSetParameters, IssuerCredentials, OrganizationDetails, IssuerAttributes,
         AdministratorDetails, KeyVaultErrorException)
    credentials = IssuerCredentials(account_id, password)
    issuer_attrs = IssuerAttributes(not disabled)
    org_details = OrganizationDetails(organization_id, admin_details=[])
    return client.set_certificate_issuer(vault_base_url, issuer_name,
                                         provider_name, credentials,
                                         org_details, issuer_attrs)
    def test_crud_issuer(self, vault, **kwargs):
        self.assertIsNotNone(vault)
        vault_uri = vault.properties.vault_uri

        issuer_name = 'pythonIssuer'
        issuer_credentials = IssuerCredentials(account_id='keyvaultuser', password='******')
        organization_details = OrganizationDetails(
            admin_details=[AdministratorDetails(first_name='Jane',
                                                last_name='Doe',
                                                email_address='*****@*****.**',
                                                phone='4256666666')])

        # create certificate issuer
        issuer_bundle = self.client.set_certificate_issuer(vault_uri, issuer_name, 'test', issuer_credentials,
                                                           organization_details)
        self._validate_issuer_bundle(issuer_bundle, vault_uri, issuer_name, 'test', issuer_credentials,
                                     organization_details)

        # get certificate issuer
        issuer_bundle = self.client.get_certificate_issuer(vault_uri, issuer_name)
        self._validate_issuer_bundle(issuer_bundle, vault_uri, issuer_name, 'test', issuer_credentials,
                                     organization_details)

        # update certificate issue
        new_credentials = IssuerCredentials(account_id='xboxuser', password='******')
        new_org_details = OrganizationDetails(
            admin_details=[AdministratorDetails(first_name='Jane II',
                                                last_name='Doe',
                                                email_address='*****@*****.**',
                                                phone='1111111111')])
        issuer_bundle = self.client.update_certificate_issuer(vault_uri, issuer_name, 'test', new_credentials,
                                                              new_org_details)
        self._validate_issuer_bundle(issuer_bundle, vault_uri, issuer_name, 'test', new_credentials, new_org_details)

        # delete certificate issuer(
        self.client.delete_certificate_issuer(vault_uri, issuer_name)

        # get certificate issuer returns not found
        try:
            self.client.get_certificate_issuer(vault_uri, issuer_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