|
2 | 2 | # Copyright (c) Microsoft Corporation.
|
3 | 3 | # Licensed under the MIT License.
|
4 | 4 | # ------------------------------------
|
5 |
| -import os |
| 5 | +import asyncio |
6 | 6 | from dotenv import load_dotenv
|
| 7 | +import os |
7 | 8 |
|
8 |
| -from azure.identity import ClientSecretCredential |
9 |
| -from azure.keyvault.certificates import CertificateClient |
10 |
| -from azure.keyvault.keys import KeyClient |
11 |
| -from azure.keyvault.secrets import SecretClient |
| 9 | +from azure.identity.aio import ClientSecretCredential |
| 10 | +from azure.keyvault.certificates.aio import CertificateClient |
| 11 | +from azure.keyvault.keys.aio import KeyClient |
| 12 | +from azure.keyvault.secrets.aio import SecretClient |
12 | 13 |
|
13 | 14 | load_dotenv()
|
14 | 15 |
|
|
31 | 32 | key_client = KeyClient(os.environ["AZURE_KEYVAULT_URL"], credential)
|
32 | 33 | secret_client = SecretClient(os.environ["AZURE_KEYVAULT_URL"], credential)
|
33 | 34 |
|
34 |
| -test_certificates = [c for c in cert_client.list_properties_of_certificates() if c.name.startswith("livekvtest")] |
35 |
| -for certificate in test_certificates: |
36 |
| - cert_client.begin_delete_certificate(certificate.name).wait() |
37 |
| -deleted_test_certificates = [ |
38 |
| - c for c in cert_client.list_deleted_certificates(include_pending=True) if c.name.startswith("livekvtest") |
39 |
| -] |
40 |
| -for certificate in deleted_test_certificates: |
41 |
| - cert_client.purge_deleted_certificate(certificate.name) |
42 |
| - |
43 |
| -test_keys = [k for k in key_client.list_properties_of_keys() if k.name.startswith("livekvtest")] |
44 |
| -for key in test_keys: |
45 |
| - key_client.begin_delete_key(key.name).wait() |
46 |
| -deleted_test_keys = [k for k in key_client.list_deleted_keys() if k.name.startswith("livekvtest")] |
47 |
| -for key in deleted_test_keys: |
48 |
| - key_client.purge_deleted_key(key.name) |
49 |
| - |
50 |
| -test_secrets = [s for s in secret_client.list_properties_of_secrets() if s.name.startswith("livekvtest")] |
51 |
| -for secret in test_secrets: |
52 |
| - secret_client.begin_delete_secret(secret.name).wait() |
53 |
| -deleted_test_secrets = [s for s in secret_client.list_deleted_secrets() if s.name.startswith("livekvtest")] |
54 |
| -for secret in deleted_test_secrets: |
55 |
| - secret_client.purge_deleted_secret(secret.name) |
| 35 | +async def delete_certificates(): |
| 36 | + coroutines = [] |
| 37 | + |
| 38 | + test_certificates = cert_client.list_properties_of_certificates() |
| 39 | + async for certificate in test_certificates: |
| 40 | + if certificate.name.startswith("livekvtest"): |
| 41 | + coroutines.append(cert_client.delete_certificate(certificate.name)) |
| 42 | + |
| 43 | + return await asyncio.gather(*coroutines) |
| 44 | + |
| 45 | +async def delete_keys_and_secrets(): |
| 46 | + coroutines = [] |
| 47 | + |
| 48 | + test_keys = key_client.list_properties_of_keys() |
| 49 | + async for key in test_keys: |
| 50 | + if key.name.startswith("livekvtest"): |
| 51 | + coroutines.append(key_client.delete_key(key.name)) |
| 52 | + |
| 53 | + test_secrets = secret_client.list_properties_of_secrets() |
| 54 | + async for secret in test_secrets: |
| 55 | + if secret.name.startswith("livekvtest"): |
| 56 | + coroutines.append(secret_client.delete_secret(secret.name)) |
| 57 | + |
| 58 | + return await asyncio.gather(*coroutines) |
| 59 | + |
| 60 | +async def purge_resources(): |
| 61 | + coroutines = [] |
| 62 | + |
| 63 | + deleted_test_certificates = cert_client.list_deleted_certificates(include_pending=True) |
| 64 | + async for certificate in deleted_test_certificates: |
| 65 | + if certificate.name.startswith("livekvtest"): |
| 66 | + coroutines.append(cert_client.purge_deleted_certificate(certificate.name)) |
| 67 | + |
| 68 | + deleted_test_keys = key_client.list_deleted_keys() |
| 69 | + async for key in deleted_test_keys: |
| 70 | + if key.name.startswith("livekvtest"): |
| 71 | + coroutines.append(key_client.purge_deleted_key(key.name)) |
| 72 | + |
| 73 | + deleted_test_secrets = secret_client.list_deleted_secrets() |
| 74 | + async for secret in deleted_test_secrets: |
| 75 | + if secret.name.startswith("livekvtest"): |
| 76 | + coroutines.append(secret_client.purge_deleted_secret(secret.name)) |
| 77 | + |
| 78 | + return await asyncio.gather(*coroutines) |
| 79 | + |
| 80 | +async def close_sessions(): |
| 81 | + await credential.close() |
| 82 | + await cert_client.close() |
| 83 | + await key_client.close() |
| 84 | + await secret_client.close() |
| 85 | + |
| 86 | +loop = asyncio.get_event_loop() |
| 87 | +loop.run_until_complete(delete_certificates()) |
| 88 | +loop.run_until_complete(delete_keys_and_secrets()) |
| 89 | +loop.run_until_complete(purge_resources()) |
| 90 | +loop.run_until_complete(close_sessions()) |
| 91 | +loop.close() |
0 commit comments