From 2cd779a49e56ddf5dd400e48f2cfa20fffa9722e Mon Sep 17 00:00:00 2001 From: seankane-msft Date: Fri, 23 Apr 2021 11:17:41 -0400 Subject: [PATCH 1/8] added another sample, inline samples for docs --- .../_container_registry_client.py | 37 ++++++++++ .../_container_repository_client.py | 9 +++ .../aio/_async_container_registry_client.py | 37 ++++++++++ .../aio/_async_container_repository_client.py | 9 +++ .../azure-containerregistry/samples/README.md | 8 ++- .../sample_create_client_async.py | 12 +++- .../sample_delete_old_tags_async.py | 68 +++++++++++++++++++ .../samples/sample_create_client.py | 4 ++ .../samples/sample_delete_old_tags.py | 56 +++++++++++++++ 9 files changed, 238 insertions(+), 2 deletions(-) create mode 100644 sdk/containerregistry/azure-containerregistry/samples/async_samples/sample_delete_old_tags_async.py create mode 100644 sdk/containerregistry/azure-containerregistry/samples/sample_delete_old_tags.py diff --git a/sdk/containerregistry/azure-containerregistry/azure/containerregistry/_container_registry_client.py b/sdk/containerregistry/azure-containerregistry/azure/containerregistry/_container_registry_client.py index 67456d6f95fb..725388bbd99b 100644 --- a/sdk/containerregistry/azure-containerregistry/azure/containerregistry/_container_registry_client.py +++ b/sdk/containerregistry/azure-containerregistry/azure/containerregistry/_container_registry_client.py @@ -36,6 +36,15 @@ def __init__(self, endpoint, credential, **kwargs): :type credential: :class:`~azure.core.credentials.TokenCredential` :returns: None :raises: None + + .. admonition:: Example: + + .. literalinclude:: ../samples/sample_create_client.py + :start-after: [START create_registry_client] + :end-before: [END create_registry_client] + :language: python + :dedent: 8 + :caption: Instantiate an instance of `ContainerRegistryClient` """ if not endpoint.startswith("https://") and not endpoint.startswith("http://"): endpoint = "https://" + endpoint @@ -52,6 +61,15 @@ def delete_repository(self, repository, **kwargs): :returns: Object containing information about the deleted repository :rtype: :class:`~azure.containerregistry.DeletedRepositoryResult` :raises: :class:`~azure.core.exceptions.ResourceNotFoundError` + + .. admonition:: Example: + + .. literalinclude:: ../samples/sample_create_client.py + :start-after: [START delete_repository] + :end-before: [END delete_repository] + :language: python + :dedent: 8 + :caption: Delete a repository from the `ContainerRegistryClient` """ return DeletedRepositoryResult._from_generated( # pylint: disable=protected-access self._client.container_registry.delete_repository(repository, **kwargs) @@ -72,6 +90,15 @@ def list_repositories(self, **kwargs): :return: ItemPaged[str] :rtype: :class:`~azure.core.paging.ItemPaged` :raises: :class:`~azure.core.exceptions.ResourceNotFoundError` + + .. admonition:: Example: + + .. literalinclude:: ../samples/sample_delete_old_tags.py + :start-after: [START list_repositories] + :end-before: [END list_repositories] + :language: python + :dedent: 8 + :caption: List repositories in a container registry account """ n = kwargs.pop("results_per_page", None) last = kwargs.pop("last", None) @@ -172,6 +199,16 @@ def get_repository_client(self, repository, **kwargs): :param str repository: The repository to create a client for :returns: :class:`~azure.containerregistry.ContainerRepositoryClient` :raises: None + + Example + + .. code-block:: python + from azure.containerregistry import ContainerRepositoryClient + from azure.identity import DefaultAzureCredential + + account_url = os.environ["CONTAINERREGISTRY_ENDPOINT"] + client = ContainerRegistryClient(account_url, DefaultAzureCredential()) + repository_client = client.get_repository_client("my_repository") """ _pipeline = Pipeline( transport=TransportWrapper(self._client._client._pipeline._transport), # pylint: disable=protected-access diff --git a/sdk/containerregistry/azure-containerregistry/azure/containerregistry/_container_repository_client.py b/sdk/containerregistry/azure-containerregistry/azure/containerregistry/_container_repository_client.py index 9c6e44c18830..2784195e267b 100644 --- a/sdk/containerregistry/azure-containerregistry/azure/containerregistry/_container_repository_client.py +++ b/sdk/containerregistry/azure-containerregistry/azure/containerregistry/_container_repository_client.py @@ -44,6 +44,15 @@ def __init__(self, endpoint, repository, credential, **kwargs): :type credential: :class:`~azure.core.credentials.TokenCredential` :returns: None :raises: None + + .. admonition:: Example: + + .. literalinclude:: ../samples/sample_create_client.py + :start-after: [START create_registry_client] + :end-before: [END create_registry_client] + :language: python + :dedent: 8 + :caption: Instantiate an instance of `ContainerRepositoryClient` """ if not endpoint.startswith("https://") and not endpoint.startswith("http://"): endpoint = "https://" + endpoint diff --git a/sdk/containerregistry/azure-containerregistry/azure/containerregistry/aio/_async_container_registry_client.py b/sdk/containerregistry/azure-containerregistry/azure/containerregistry/aio/_async_container_registry_client.py index 9e6fa68e96fb..734e3eb0349f 100644 --- a/sdk/containerregistry/azure-containerregistry/azure/containerregistry/aio/_async_container_registry_client.py +++ b/sdk/containerregistry/azure-containerregistry/azure/containerregistry/aio/_async_container_registry_client.py @@ -37,6 +37,15 @@ def __init__(self, endpoint: str, credential: "AsyncTokenCredential", **kwargs: :type credential: :class:`~azure.core.credentials_async.AsyncTokenCredential` :returns: None :raises: None + + .. admonition:: Example: + + .. literalinclude:: ../samples/async_samples/sample_create_client.py + :start-after: [START create_registry_client] + :end-before: [END create_registry_client] + :language: python + :dedent: 8 + :caption: Instantiate an instance of `ContainerRegistryClient` """ if not endpoint.startswith("https://") and not endpoint.startswith("http://"): endpoint = "https://" + endpoint @@ -53,6 +62,15 @@ async def delete_repository(self, repository: str, **kwargs: Dict[str, Any]) -> :returns: Object containing information about the deleted repository :rtype: :class:`~azure.containerregistry.DeletedRepositoryResult` :raises: :class:`~azure.core.exceptions.ResourceNotFoundError` + + .. admonition:: Example: + + .. literalinclude:: ../samples/async_samples/sample_create_client.py + :start-after: [START delete_repository] + :end-before: [END delete_repository] + :language: python + :dedent: 8 + :caption: Delete a repository from the `ContainerRegistryClient` """ result = await self._client.container_registry.delete_repository(repository, **kwargs) return DeletedRepositoryResult._from_generated(result) # pylint: disable=protected-access @@ -71,6 +89,15 @@ def list_repositories(self, **kwargs: Dict[str, Any]) -> AsyncItemPaged[str]: :return: ItemPaged[str] :rtype: :class:`~azure.core.async_paging.AsyncItemPaged` :raises: :class:`~azure.core.exceptions.ResourceNotFoundError` + + .. admonition:: Example: + + .. literalinclude:: ../samples//async_samples/sample_delete_old_tags.py + :start-after: [START list_repositories] + :end-before: [END list_repositories] + :language: python + :dedent: 8 + :caption: List repositories in a container registry account """ n = kwargs.pop("results_per_page", None) last = kwargs.pop("last", None) @@ -168,6 +195,16 @@ def get_repository_client(self, repository: str, **kwargs: Dict[str, Any]) -> Co :param repository: The repository to create a client for :type repository: str :returns: :class:`~azure.containerregistry.aio.ContainerRepositoryClient` + + Example + + .. code-block:: python + from azure.containerregistry.aio import ContainerRepositoryClient + from azure.identity.aio import DefaultAzureCredential + + account_url = os.environ["CONTAINERREGISTRY_ENDPOINT"] + client = ContainerRegistryClient(account_url, DefaultAzureCredential()) + repository_client = client.get_repository_client("my_repository") """ _pipeline = AsyncPipeline( transport=AsyncTransportWrapper( diff --git a/sdk/containerregistry/azure-containerregistry/azure/containerregistry/aio/_async_container_repository_client.py b/sdk/containerregistry/azure-containerregistry/azure/containerregistry/aio/_async_container_repository_client.py index b3b9c0a75451..43a4db5266ee 100644 --- a/sdk/containerregistry/azure-containerregistry/azure/containerregistry/aio/_async_container_repository_client.py +++ b/sdk/containerregistry/azure-containerregistry/azure/containerregistry/aio/_async_container_repository_client.py @@ -45,6 +45,15 @@ def __init__( :type credential: :class:`~azure.core.credentials_async.AsyncTokenCredential` :returns: None :raises: None + + .. admonition:: Example: + + .. literalinclude:: ../samples/sample_create_client.py + :start-after: [START create_registry_client] + :end-before: [END create_registry_client] + :language: python + :dedent: 8 + :caption: Instantiate an instance of `ContainerRepositoryClient` """ if not endpoint.startswith("https://") and not endpoint.startswith("http://"): endpoint = "https://" + endpoint diff --git a/sdk/containerregistry/azure-containerregistry/samples/README.md b/sdk/containerregistry/azure-containerregistry/samples/README.md index 450b78446598..fa696b81cf2c 100644 --- a/sdk/containerregistry/azure-containerregistry/samples/README.md +++ b/sdk/containerregistry/azure-containerregistry/samples/README.md @@ -16,7 +16,8 @@ The async versions of the samples require Python 3.6 or later. |**File Name**|**Description**| |-------------|---------------| -|[sample_create_client.py][create_client] and [sample_create_client_async.py][create_client_async]|Instantiate a client|Authorizing a `ContainerRegistryClient` object and `ContainerRepositoryClient` object| +|[sample_create_client.py][create_client] and [sample_create_client_async.py][create_client_async]|Instantiate a client | Authorizing a `ContainerRegistryClient` object and `ContainerRepositoryClient` object | +|[sample_delete_old_tags.py][delete_old_tags] and [sample_delete_old_tags_async.py][delete_old_tags_async] | Delete tags from a repository | ### Prerequisites * Python 2.7, or 3.6 or later is required to use this package. @@ -47,3 +48,8 @@ Check out the [API reference documentation][rest_docs] to learn more about what [rest_docs]: https://docs.microsoft.com/rest/api/containerregistry/ [container_registry_docs]: https://docs.microsoft.com/azure/container-registry/container-registry-intro + +[create_client]: https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/containerregistry/azure-containerregistry/samples/sample_create_client.py +[create_client_async]: https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/containerregistry/azure-containerregistry/samples/async_samples/sample_create_client_async.py +[delete_old_tags]: https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/containerregistry/azure-containerregistry/samples/sample_delete_old_tags.py +[delete_old_tags_async]: https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/containerregistry/azure-containerregistry/samples/async_samples/sample_delete_old_tags_async.py \ No newline at end of file diff --git a/sdk/containerregistry/azure-containerregistry/samples/async_samples/sample_create_client_async.py b/sdk/containerregistry/azure-containerregistry/samples/async_samples/sample_create_client_async.py index 718c605ee239..55e373cd538b 100644 --- a/sdk/containerregistry/azure-containerregistry/samples/async_samples/sample_create_client_async.py +++ b/sdk/containerregistry/azure-containerregistry/samples/async_samples/sample_create_client_async.py @@ -19,6 +19,7 @@ 1) AZURE_CONTAINERREGISTRY_URL - The URL of you Container Registry account """ +import asyncio from dotenv import find_dotenv, load_dotenv import os @@ -65,8 +66,17 @@ async def basic_sample(self): async for tag in repository_client.list_tags(): print(tag.digest) + # [START delete_repository] + await client.delete_repository("hello-world") + # [END delete_repository] -if __name__ == "__main__": + +async def main(): sample = CreateClients() sample.create_registry_client() sample.create_repository_client() + + +if __name__ == '__main__': + loop = asyncio.get_event_loop() + loop.run_until_complete(main()) diff --git a/sdk/containerregistry/azure-containerregistry/samples/async_samples/sample_delete_old_tags_async.py b/sdk/containerregistry/azure-containerregistry/samples/async_samples/sample_delete_old_tags_async.py new file mode 100644 index 000000000000..b3f17bfe35ec --- /dev/null +++ b/sdk/containerregistry/azure-containerregistry/samples/async_samples/sample_delete_old_tags_async.py @@ -0,0 +1,68 @@ +# coding: utf-8 + +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +""" +FILE: sample_delete_old_tags.py + +DESCRIPTION: + These samples demonstrates deleting the three oldest tags for each repository + +USAGE: + python sample_delete_old_tags.py + + Set the environment variables with your own values before running the sample: + 1) CONTAINERREGISTRY_ENDPOINT - The URL of you Container Registry account +""" + +import asyncio +from dotenv import find_dotenv, load_dotenv +import os + + +class DeleteOperations(object): + def __init__(self): + load_dotenv(find_dotenv()) + self.account_url = os.environ["CONTAINERREGISTRY_ENDPOINT"] + + async def delete_old_tags(self): + from azure.containerregistry import TagOrderBy + from azure.containerregistry.aio import ( + ContainerRegistryClient, + ContainerRepositoryClient, + ) + from azure.identity.aio import DefaultAzureCredential + + # [START list_repositories] + account_url = os.environ["CONTAINERREGISTRY_ENDPOINT"] + credential = DefaultAzureCredential() + client = ContainerRegistryClient(account_url, credential) + + async for repository in client.list_repositories(): + repository_client = ContainerRepositoryClient(account_url, repository, credential) + # [END list_repositories] + + # [START list_tags] + tag_count = 0 + async for tag in repository_client.list_tags(order_by=TagOrderBy.LAST_UPDATE_TIME_DESCENDING): + tag_count += 1 + if tag_count > 3: + await repository_client.delete_tag(tag.name) + # [END list_tags] + + await client.close() + + +async def main(): + sample = DeleteOperations() + sample.delete_old_tags() + + +if __name__ == '__main__': + loop = asyncio.get_event_loop() + loop.run_until_complete(main()) + diff --git a/sdk/containerregistry/azure-containerregistry/samples/sample_create_client.py b/sdk/containerregistry/azure-containerregistry/samples/sample_create_client.py index df9fa8066d4e..1ce7cf38438d 100644 --- a/sdk/containerregistry/azure-containerregistry/samples/sample_create_client.py +++ b/sdk/containerregistry/azure-containerregistry/samples/sample_create_client.py @@ -65,6 +65,10 @@ def basic_sample(self): for tag in repository_client.list_tags(): print(tag.digest) + # [START delete_repository] + client.delete_repository("hello-world") + # [END delete_repository] + if __name__ == "__main__": sample = CreateClients() diff --git a/sdk/containerregistry/azure-containerregistry/samples/sample_delete_old_tags.py b/sdk/containerregistry/azure-containerregistry/samples/sample_delete_old_tags.py new file mode 100644 index 000000000000..521c25fcb4bd --- /dev/null +++ b/sdk/containerregistry/azure-containerregistry/samples/sample_delete_old_tags.py @@ -0,0 +1,56 @@ +# coding: utf-8 + +# ------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# -------------------------------------------------------------------------- + +""" +FILE: sample_delete_old_tags.py + +DESCRIPTION: + These samples demonstrates deleting the three oldest tags for each repository + +USAGE: + python sample_delete_old_tags.py + + Set the environment variables with your own values before running the sample: + 1) CONTAINERREGISTRY_ENDPOINT - The URL of you Container Registry account +""" + +from dotenv import find_dotenv, load_dotenv +import os + + +class DeleteOperations(object): + def __init__(self): + load_dotenv(find_dotenv()) + self.account_url = os.environ["CONTAINERREGISTRY_ENDPOINT"] + + def delete_old_tags(self): + from azure.containerregistry import ( + ContainerRegistryClient, + ContainerRepositoryClient, + TagOrderBy + ) + from azure.identity import DefaultAzureCredential + + # [START list_repositories] + account_url = os.environ["CONTAINERREGISTRY_ENDPOINT"] + credential = DefaultAzureCredential() + client = ContainerRegistryClient(account_url, credential) + + for repository in client.list_repositories(): + repository_client = ContainerRepositoryClient(account_url, repository, credential) + # [END list_repositories] + + # [START list_tags] + tag_count = 0 + for tag in repository_client.list_tags(order_by=TagOrderBy.LAST_UPDATE_TIME_DESCENDING): + tag_count += 1 + if tag_count > 3: + repository_client.delete_tag(tag.name) + # [END list_tags] + + client.close() From 89ff2261135905804172908678a2cd08ff18c75d Mon Sep 17 00:00:00 2001 From: seankane-msft Date: Fri, 23 Apr 2021 11:32:39 -0400 Subject: [PATCH 2/8] examples for sync repository client --- .../_container_repository_client.py | 132 ++++++++++++++++++ 1 file changed, 132 insertions(+) diff --git a/sdk/containerregistry/azure-containerregistry/azure/containerregistry/_container_repository_client.py b/sdk/containerregistry/azure-containerregistry/azure/containerregistry/_container_repository_client.py index 2784195e267b..8322ccdda3bc 100644 --- a/sdk/containerregistry/azure-containerregistry/azure/containerregistry/_container_repository_client.py +++ b/sdk/containerregistry/azure-containerregistry/azure/containerregistry/_container_repository_client.py @@ -73,6 +73,16 @@ def delete(self, **kwargs): :returns: Object containing information about the deleted repository :rtype: :class:`~azure.containerregistry.DeletedRepositoryResult` :raises: :class:`~azure.core.exceptions.ResourceNotFoundError` + + Example + + .. code-block:: python + from azure.containerregistry import ContainerRepositoryClient + from azure.identity import DefaultAzureCredential + + account_url = os.environ["CONTAINERREGISTRY_ENDPOINT"] + client = ContainerRepositoryClient(account_url, "my_repository", DefaultAzureCredential()) + client.delete() """ return DeletedRepositoryResult._from_generated( # pylint: disable=protected-access self._client.container_registry.delete_repository(self.repository, **kwargs) @@ -87,6 +97,17 @@ def delete_registry_artifact(self, digest, **kwargs): :type digest: str :returns: None :raises: :class:`~azure.core.exceptions.ResourceNotFoundError` + + Example + + .. code-block:: python + from azure.containerregistry import ContainerRepositoryClient + from azure.identity import DefaultAzureCredential + + account_url = os.environ["CONTAINERREGISTRY_ENDPOINT"] + client = ContainerRepositoryClient(account_url, "my_repository", DefaultAzureCredential()) + for artifact in client.list_registry_artifacts(): + client.delete_registry_artifact(artifact.digest) """ self._client.container_registry_repository.delete_manifest(self.repository, digest, **kwargs) @@ -98,6 +119,17 @@ def delete_tag(self, tag, **kwargs): :param str tag: The tag to be deleted :returns: None :raises: :class:`~azure.core.exceptions.ResourceNotFoundError` + + Example + + .. code-block:: python + from azure.containerregistry import ContainerRepositoryClient + from azure.identity import DefaultAzureCredential + + account_url = os.environ["CONTAINERREGISTRY_ENDPOINT"] + client = ContainerRepositoryClient(account_url, "my_repository", DefaultAzureCredential()) + for artifact in client.list_tags(): + client.delete_tag(tag.name) """ self._client.container_registry_repository.delete_tag(self.repository, tag, **kwargs) @@ -108,6 +140,23 @@ def get_properties(self, **kwargs): :returns: :class:`~azure.containerregistry.RepositoryProperties` :raises: :class:`~azure.core.exceptions.ResourceNotFoundError` + + Example + + .. code-block:: python + from azure.containerregistry import ContainerRepositoryClient + from azure.identity import DefaultAzureCredential + + account_url = os.environ["CONTAINERREGISTRY_ENDPOINT"] + client = ContainerRepositoryClient(account_url, "my_repository", DefaultAzureCredential()) + repository_properties = client.get_properties() + print(repository_properties.name) + print(repository_properties.content_permissions) + print(repository_properties.created_on) + print(repository_properties.last_updated_on) + print(repository_properties.manifest_count) + print(repository_properties.registry) + print(repository_properties.tag_count) """ return RepositoryProperties._from_generated( # pylint: disable=protected-access self._client.container_registry_repository.get_properties(self.repository, **kwargs) @@ -122,6 +171,17 @@ def get_registry_artifact_properties(self, tag_or_digest, **kwargs): :type tag_or_digest: str :returns: :class:`~azure.containerregistry.RegistryArtifactProperties` :raises: :class:`~azure.core.exceptions.ResourceNotFoundError` + + Example + + .. code-block:: python + from azure.containerregistry import ContainerRepositoryClient + from azure.identity import DefaultAzureCredential + + account_url = os.environ["CONTAINERREGISTRY_ENDPOINT"] + client = ContainerRepositoryClient(account_url, "my_repository", DefaultAzureCredential()) + for artifact in client.list_registry_artifacts(): + properties = client.get_registry_artifact_properties(artifact.digest) """ if _is_tag(tag_or_digest): tag_or_digest = self._get_digest_from_tag(tag_or_digest) @@ -141,6 +201,17 @@ def get_tag_properties(self, tag, **kwargs): :type tag: str :returns: :class:`~azure.containerregistry.TagProperties` :raises: :class:`~azure.core.exceptions.ResourceNotFoundError` + + Example + + .. code-block:: python + from azure.containerregistry import ContainerRepositoryClient + from azure.identity import DefaultAzureCredential + + account_url = os.environ["CONTAINERREGISTRY_ENDPOINT"] + client = ContainerRepositoryClient(account_url, "my_repository", DefaultAzureCredential()) + for tag in client.list_tags(): + tag_properties = client.get_tag_properties(tag.name) """ return TagProperties._from_generated( # pylint: disable=protected-access self._client.container_registry_repository.get_tag_properties(self.repository, tag, **kwargs) @@ -161,6 +232,17 @@ def list_registry_artifacts(self, **kwargs): :return: ItemPaged[:class:`RegistryArtifactProperties`] :rtype: :class:`~azure.core.paging.ItemPaged` :raises: :class:`~azure.core.exceptions.ResourceNotFoundError` + + Example + + .. code-block:: python + from azure.containerregistry import ContainerRepositoryClient + from azure.identity import DefaultAzureCredential + + account_url = os.environ["CONTAINERREGISTRY_ENDPOINT"] + client = ContainerRepositoryClient(account_url, "my_repository", DefaultAzureCredential()) + for artifact in client.list_registry_artifacts(): + print(artifact.digest) """ name = self.repository last = kwargs.pop("last", None) @@ -279,6 +361,17 @@ def list_tags(self, **kwargs): :return: ItemPaged[:class:`~azure.containerregistry.TagProperties`] :rtype: :class:`~azure.core.paging.ItemPaged` :raises: :class:`~azure.core.exceptions.ResourceNotFoundError` + + Example + + .. code-block:: python + from azure.containerregistry import ContainerRepositoryClient + from azure.identity import DefaultAzureCredential + + account_url = os.environ["CONTAINERREGISTRY_ENDPOINT"] + client = ContainerRepositoryClient(account_url, "my_repository", DefaultAzureCredential()) + for tag in client.list_tags(): + tag_properties = client.get_tag_properties(tag.name) """ name = self.repository last = kwargs.pop("last", None) @@ -393,6 +486,25 @@ def set_manifest_properties(self, digest, permissions, **kwargs): :type permissions: ContentPermissions :returns: :class:`~azure.containerregistry.RegistryArtifactProperties` :raises: :class:`~azure.core.exceptions.ResourceNotFoundError` + + Example + + .. code-block:: python + from azure.containerregistry import ContainerRepositoryClient + from azure.identity import DefaultAzureCredential + + account_url = os.environ["CONTAINERREGISTRY_ENDPOINT"] + client = ContainerRepositoryClient(account_url, "my_repository", DefaultAzureCredential()) + for artifact in client.list_registry_artifacts(): + received_permissions = client.set_manifest_properties( + artifact.digest, + ContentPermissions( + can_delete=False, + can_list=False, + can_read=False, + can_write=False, + ), + ) """ return RegistryArtifactProperties._from_generated( # pylint: disable=protected-access self._client.container_registry_repository.update_manifest_attributes( @@ -411,6 +523,26 @@ def set_tag_properties(self, tag, permissions, **kwargs): :type permissions: ContentPermissions :returns: :class:`~azure.containerregistry.TagProperties` :raises: :class:`~azure.core.exceptions.ResourceNotFoundError` + + Example + + .. code-block:: python + from azure.containerregistry import ContainerRepositoryClient + from azure.identity import DefaultAzureCredential + + account_url = os.environ["CONTAINERREGISTRY_ENDPOINT"] + client = ContainerRepositoryClient(account_url, "my_repository", DefaultAzureCredential()) + tag_identifier = "latest" + received = client.set_tag_properties( + tag_identifier, + ContentPermissions( + can_delete=False, + can_list=False, + can_read=False, + can_write=False, + ), + ) + """ return TagProperties._from_generated( # pylint: disable=protected-access self._client.container_registry_repository.update_tag_attributes( From 8ff22567cec410652d04409a2d2dd4851a3144a0 Mon Sep 17 00:00:00 2001 From: seankane-msft Date: Fri, 23 Apr 2021 11:52:43 -0400 Subject: [PATCH 3/8] samples for async container repo client --- .../_container_repository_client.py | 1 - .../aio/_async_container_repository_client.py | 130 ++++++++++++++++++ 2 files changed, 130 insertions(+), 1 deletion(-) diff --git a/sdk/containerregistry/azure-containerregistry/azure/containerregistry/_container_repository_client.py b/sdk/containerregistry/azure-containerregistry/azure/containerregistry/_container_repository_client.py index 8322ccdda3bc..352ba69353f3 100644 --- a/sdk/containerregistry/azure-containerregistry/azure/containerregistry/_container_repository_client.py +++ b/sdk/containerregistry/azure-containerregistry/azure/containerregistry/_container_repository_client.py @@ -542,7 +542,6 @@ def set_tag_properties(self, tag, permissions, **kwargs): can_write=False, ), ) - """ return TagProperties._from_generated( # pylint: disable=protected-access self._client.container_registry_repository.update_tag_attributes( diff --git a/sdk/containerregistry/azure-containerregistry/azure/containerregistry/aio/_async_container_repository_client.py b/sdk/containerregistry/azure-containerregistry/azure/containerregistry/aio/_async_container_repository_client.py index 43a4db5266ee..ed7326e07080 100644 --- a/sdk/containerregistry/azure-containerregistry/azure/containerregistry/aio/_async_container_repository_client.py +++ b/sdk/containerregistry/azure-containerregistry/azure/containerregistry/aio/_async_container_repository_client.py @@ -73,6 +73,16 @@ async def delete(self, **kwargs: Dict[str, Any]) -> DeletedRepositoryResult: :returns: Object containing information about the deleted repository :rtype: :class:`~azure.containerregistry.DeletedRepositoryResult` :raises: :class:`~azure.core.exceptions.ResourceNotFoundError` + + Example + + .. code-block:: python + from azure.containerregistry.aio import ContainerRepositoryClient + from azure.identity.aio import DefaultAzureCredential + + account_url = os.environ["CONTAINERREGISTRY_ENDPOINT"] + client = ContainerRepositoryClient(account_url, "my_repository", DefaultAzureCredential()) + await client.delete() """ return DeletedRepositoryResult._from_generated( # pylint: disable=protected-access await self._client.container_registry.delete_repository(self.repository, **kwargs) @@ -86,6 +96,17 @@ async def delete_registry_artifact(self, digest: str, **kwargs: Dict[str, Any]) :type digest: str :returns: None :raises: :class:`~azure.core.exceptions.ResourceNotFoundError` + + Example + + .. code-block:: python + from azure.containerregistry.aio import ContainerRepositoryClient + from azure.identity.aio import DefaultAzureCredential + + account_url = os.environ["CONTAINERREGISTRY_ENDPOINT"] + client = ContainerRepositoryClient(account_url, "my_repository", DefaultAzureCredential()) + async for artifact in client.list_registry_artifacts(): + await client.delete_registry_artifact(artifact.digest) """ await self._client.container_registry_repository.delete_manifest(self.repository, digest, **kwargs) @@ -96,6 +117,17 @@ async def delete_tag(self, tag: str, **kwargs: Dict[str, Any]) -> None: :param str tag: The tag to be deleted :returns: None :raises: :class:`~azure.core.exceptions.ResourceNotFoundError` + + Example + + .. code-block:: python + from azure.containerregistry.aio import ContainerRepositoryClient + from azure.identity.aio import DefaultAzureCredential + + account_url = os.environ["CONTAINERREGISTRY_ENDPOINT"] + client = ContainerRepositoryClient(account_url, "my_repository", DefaultAzureCredential()) + async for artifact in client.list_tags(): + await client.delete_tag(tag.name) """ await self._client.container_registry_repository.delete_tag(self.repository, tag, **kwargs) @@ -105,6 +137,23 @@ async def get_properties(self, **kwargs: Dict[str, Any]) -> RepositoryProperties :returns: :class:`~azure.containerregistry.RepositoryProperties` :raises: :class:`~azure.core.exceptions.ResourceNotFoundError` + + Example + + .. code-block:: python + from azure.containerregistry.aio import ContainerRepositoryClient + from azure.identity.aio import DefaultAzureCredential + + account_url = os.environ["CONTAINERREGISTRY_ENDPOINT"] + client = ContainerRepositoryClient(account_url, "my_repository", DefaultAzureCredential()) + repository_properties = await client.get_properties() + print(repository_properties.name) + print(repository_properties.content_permissions) + print(repository_properties.created_on) + print(repository_properties.last_updated_on) + print(repository_properties.manifest_count) + print(repository_properties.registry) + print(repository_properties.tag_count) """ return RepositoryProperties._from_generated( # pylint: disable=protected-access await self._client.container_registry_repository.get_properties(self.repository, **kwargs) @@ -120,6 +169,17 @@ async def get_registry_artifact_properties( :type tag_or_digest: str :returns: :class:`~azure.containerregistry.RegistryArtifactProperties` :raises: :class:`~azure.core.exceptions.ResourceNotFoundError` + + Example + + .. code-block:: python + from azure.containerregistry.aio import ContainerRepositoryClient + from azure.identity.aio import DefaultAzureCredential + + account_url = os.environ["CONTAINERREGISTRY_ENDPOINT"] + client = ContainerRepositoryClient(account_url, "my_repository", DefaultAzureCredential()) + async for artifact in client.list_registry_artifacts(): + properties = await client.get_registry_artifact_properties(artifact.digest) """ if _is_tag(tag_or_digest): tag_or_digest = self._get_digest_from_tag(tag_or_digest) @@ -138,6 +198,17 @@ async def get_tag_properties(self, tag: str, **kwargs: Dict[str, Any]) -> TagPro :type tag: str :returns: :class:`~azure.containerregistry.TagProperties` :raises: :class:`~azure.core.exceptions.ResourceNotFoundError` + + Example + + .. code-block:: python + from azure.containerregistry.aio import ContainerRepositoryClient + from azure.identity.aio import DefaultAzureCredential + + account_url = os.environ["CONTAINERREGISTRY_ENDPOINT"] + client = ContainerRepositoryClient(account_url, "my_repository", DefaultAzureCredential()) + async for tag in client.list_tags(): + tag_properties = await client.get_tag_properties(tag.name) """ return TagProperties._from_generated( # pylint: disable=protected-access await self._client.container_registry_repository.get_tag_properties(self.repository, tag, **kwargs) @@ -157,6 +228,16 @@ def list_registry_artifacts(self, **kwargs: Dict[str, Any]) -> AsyncItemPaged[Re :return: ItemPaged[:class:`~azure.containerregistry.RegistryArtifactProperties`] :rtype: :class:`~azure.core.async_paging.AsyncItemPaged` :raises: :class:`~azure.core.exceptions.ResourceNotFoundError` + Example + + .. code-block:: python + from azure.containerregistry.aio import ContainerRepositoryClient + from azure.identity.aio import DefaultAzureCredential + + account_url = os.environ["CONTAINERREGISTRY_ENDPOINT"] + client = ContainerRepositoryClient(account_url, "my_repository", DefaultAzureCredential()) + async for artifact in client.list_registry_artifacts(): + print(artifact.digest) """ name = self.repository last = kwargs.pop("last", None) @@ -274,6 +355,17 @@ def list_tags(self, **kwargs: Dict[str, Any]) -> AsyncItemPaged[TagProperties]: :return: ItemPaged[:class:`~azure.containerregistry.TagProperties`] :rtype: :class:`~azure.core.async_paging.AsyncItemPaged` :raises: :class:`~azure.core.exceptions.ResourceNotFoundError` + + Example + + .. code-block:: python + from azure.containerregistry.aio import ContainerRepositoryClient + from azure.identity.aio import DefaultAzureCredential + + account_url = os.environ["CONTAINERREGISTRY_ENDPOINT"] + client = ContainerRepositoryClient(account_url, "my_repository", DefaultAzureCredential()) + async for tag in client.list_tags(): + tag_properties = await client.get_tag_properties(tag.name) """ name = self.repository last = kwargs.pop("last", None) @@ -389,6 +481,25 @@ async def set_manifest_properties( :type permissions: ContentPermissions :returns: :class:`~azure.containerregistry.RegistryArtifactProperties` :raises: :class:`~azure.core.exceptions.ResourceNotFoundError` + + Example + + .. code-block:: python + from azure.containerregistry.aio import ContainerRepositoryClient + from azure.identity.aio import DefaultAzureCredential + + account_url = os.environ["CONTAINERREGISTRY_ENDPOINT"] + client = ContainerRepositoryClient(account_url, "my_repository", DefaultAzureCredential()) + async for artifact in client.list_registry_artifacts(): + received_permissions = await client.set_manifest_properties( + artifact.digest, + ContentPermissions( + can_delete=False, + can_list=False, + can_read=False, + can_write=False, + ), + ) """ return RegistryArtifactProperties._from_generated( # pylint: disable=protected-access await self._client.container_registry_repository.update_manifest_attributes( @@ -408,6 +519,25 @@ async def set_tag_properties( :type permissions: ContentPermissions :returns: :class:`~azure.containerregistry.TagProperties` :raises: :class:`~azure.core.exceptions.ResourceNotFoundError` + + Example + + .. code-block:: python + from azure.containerregistry.aio import ContainerRepositoryClient + from azure.identity.aio import DefaultAzureCredential + + account_url = os.environ["CONTAINERREGISTRY_ENDPOINT"] + client = ContainerRepositoryClient(account_url, "my_repository", DefaultAzureCredential()) + tag_identifier = "latest" + received = await client.set_tag_properties( + tag_identifier, + ContentPermissions( + can_delete=False, + can_list=False, + can_read=False, + can_write=False, + ), + ) """ return TagProperties._from_generated( # pylint: disable=protected-access await self._client.container_registry_repository.update_tag_attributes( From 592f0c2d0b770dac4b56ae86b490936b634cb16d Mon Sep 17 00:00:00 2001 From: seankane-msft Date: Fri, 23 Apr 2021 17:01:05 -0400 Subject: [PATCH 4/8] fixing up formatting --- .../containerregistry/_container_registry_client.py | 1 + .../containerregistry/_container_repository_client.py | 10 ++++++++++ .../aio/_async_container_registry_client.py | 7 ++++--- .../aio/_async_container_repository_client.py | 11 +++++++++++ 4 files changed, 26 insertions(+), 3 deletions(-) diff --git a/sdk/containerregistry/azure-containerregistry/azure/containerregistry/_container_registry_client.py b/sdk/containerregistry/azure-containerregistry/azure/containerregistry/_container_registry_client.py index 725388bbd99b..feb975d6df3e 100644 --- a/sdk/containerregistry/azure-containerregistry/azure/containerregistry/_container_registry_client.py +++ b/sdk/containerregistry/azure-containerregistry/azure/containerregistry/_container_registry_client.py @@ -203,6 +203,7 @@ def get_repository_client(self, repository, **kwargs): Example .. code-block:: python + from azure.containerregistry import ContainerRepositoryClient from azure.identity import DefaultAzureCredential diff --git a/sdk/containerregistry/azure-containerregistry/azure/containerregistry/_container_repository_client.py b/sdk/containerregistry/azure-containerregistry/azure/containerregistry/_container_repository_client.py index 352ba69353f3..fd03edd75b89 100644 --- a/sdk/containerregistry/azure-containerregistry/azure/containerregistry/_container_repository_client.py +++ b/sdk/containerregistry/azure-containerregistry/azure/containerregistry/_container_repository_client.py @@ -77,6 +77,7 @@ def delete(self, **kwargs): Example .. code-block:: python + from azure.containerregistry import ContainerRepositoryClient from azure.identity import DefaultAzureCredential @@ -101,6 +102,7 @@ def delete_registry_artifact(self, digest, **kwargs): Example .. code-block:: python + from azure.containerregistry import ContainerRepositoryClient from azure.identity import DefaultAzureCredential @@ -123,6 +125,7 @@ def delete_tag(self, tag, **kwargs): Example .. code-block:: python + from azure.containerregistry import ContainerRepositoryClient from azure.identity import DefaultAzureCredential @@ -144,6 +147,7 @@ def get_properties(self, **kwargs): Example .. code-block:: python + from azure.containerregistry import ContainerRepositoryClient from azure.identity import DefaultAzureCredential @@ -175,6 +179,7 @@ def get_registry_artifact_properties(self, tag_or_digest, **kwargs): Example .. code-block:: python + from azure.containerregistry import ContainerRepositoryClient from azure.identity import DefaultAzureCredential @@ -205,6 +210,7 @@ def get_tag_properties(self, tag, **kwargs): Example .. code-block:: python + from azure.containerregistry import ContainerRepositoryClient from azure.identity import DefaultAzureCredential @@ -236,6 +242,7 @@ def list_registry_artifacts(self, **kwargs): Example .. code-block:: python + from azure.containerregistry import ContainerRepositoryClient from azure.identity import DefaultAzureCredential @@ -365,6 +372,7 @@ def list_tags(self, **kwargs): Example .. code-block:: python + from azure.containerregistry import ContainerRepositoryClient from azure.identity import DefaultAzureCredential @@ -490,6 +498,7 @@ def set_manifest_properties(self, digest, permissions, **kwargs): Example .. code-block:: python + from azure.containerregistry import ContainerRepositoryClient from azure.identity import DefaultAzureCredential @@ -527,6 +536,7 @@ def set_tag_properties(self, tag, permissions, **kwargs): Example .. code-block:: python + from azure.containerregistry import ContainerRepositoryClient from azure.identity import DefaultAzureCredential diff --git a/sdk/containerregistry/azure-containerregistry/azure/containerregistry/aio/_async_container_registry_client.py b/sdk/containerregistry/azure-containerregistry/azure/containerregistry/aio/_async_container_registry_client.py index 734e3eb0349f..971c4530b90b 100644 --- a/sdk/containerregistry/azure-containerregistry/azure/containerregistry/aio/_async_container_registry_client.py +++ b/sdk/containerregistry/azure-containerregistry/azure/containerregistry/aio/_async_container_registry_client.py @@ -40,7 +40,7 @@ def __init__(self, endpoint: str, credential: "AsyncTokenCredential", **kwargs: .. admonition:: Example: - .. literalinclude:: ../samples/async_samples/sample_create_client.py + .. literalinclude:: ../samples/async_samples/sample_create_client_async.py :start-after: [START create_registry_client] :end-before: [END create_registry_client] :language: python @@ -65,7 +65,7 @@ async def delete_repository(self, repository: str, **kwargs: Dict[str, Any]) -> .. admonition:: Example: - .. literalinclude:: ../samples/async_samples/sample_create_client.py + .. literalinclude:: ../samples/async_samples/sample_create_client_async.py :start-after: [START delete_repository] :end-before: [END delete_repository] :language: python @@ -92,7 +92,7 @@ def list_repositories(self, **kwargs: Dict[str, Any]) -> AsyncItemPaged[str]: .. admonition:: Example: - .. literalinclude:: ../samples//async_samples/sample_delete_old_tags.py + .. literalinclude:: ../samples//async_samples/sample_delete_old_tags_async.py :start-after: [START list_repositories] :end-before: [END list_repositories] :language: python @@ -199,6 +199,7 @@ def get_repository_client(self, repository: str, **kwargs: Dict[str, Any]) -> Co Example .. code-block:: python + from azure.containerregistry.aio import ContainerRepositoryClient from azure.identity.aio import DefaultAzureCredential diff --git a/sdk/containerregistry/azure-containerregistry/azure/containerregistry/aio/_async_container_repository_client.py b/sdk/containerregistry/azure-containerregistry/azure/containerregistry/aio/_async_container_repository_client.py index ed7326e07080..c7e234627592 100644 --- a/sdk/containerregistry/azure-containerregistry/azure/containerregistry/aio/_async_container_repository_client.py +++ b/sdk/containerregistry/azure-containerregistry/azure/containerregistry/aio/_async_container_repository_client.py @@ -77,6 +77,7 @@ async def delete(self, **kwargs: Dict[str, Any]) -> DeletedRepositoryResult: Example .. code-block:: python + from azure.containerregistry.aio import ContainerRepositoryClient from azure.identity.aio import DefaultAzureCredential @@ -100,6 +101,7 @@ async def delete_registry_artifact(self, digest: str, **kwargs: Dict[str, Any]) Example .. code-block:: python + from azure.containerregistry.aio import ContainerRepositoryClient from azure.identity.aio import DefaultAzureCredential @@ -121,6 +123,7 @@ async def delete_tag(self, tag: str, **kwargs: Dict[str, Any]) -> None: Example .. code-block:: python + from azure.containerregistry.aio import ContainerRepositoryClient from azure.identity.aio import DefaultAzureCredential @@ -141,6 +144,7 @@ async def get_properties(self, **kwargs: Dict[str, Any]) -> RepositoryProperties Example .. code-block:: python + from azure.containerregistry.aio import ContainerRepositoryClient from azure.identity.aio import DefaultAzureCredential @@ -173,6 +177,7 @@ async def get_registry_artifact_properties( Example .. code-block:: python + from azure.containerregistry.aio import ContainerRepositoryClient from azure.identity.aio import DefaultAzureCredential @@ -202,6 +207,7 @@ async def get_tag_properties(self, tag: str, **kwargs: Dict[str, Any]) -> TagPro Example .. code-block:: python + from azure.containerregistry.aio import ContainerRepositoryClient from azure.identity.aio import DefaultAzureCredential @@ -228,9 +234,11 @@ def list_registry_artifacts(self, **kwargs: Dict[str, Any]) -> AsyncItemPaged[Re :return: ItemPaged[:class:`~azure.containerregistry.RegistryArtifactProperties`] :rtype: :class:`~azure.core.async_paging.AsyncItemPaged` :raises: :class:`~azure.core.exceptions.ResourceNotFoundError` + Example .. code-block:: python + from azure.containerregistry.aio import ContainerRepositoryClient from azure.identity.aio import DefaultAzureCredential @@ -359,6 +367,7 @@ def list_tags(self, **kwargs: Dict[str, Any]) -> AsyncItemPaged[TagProperties]: Example .. code-block:: python + from azure.containerregistry.aio import ContainerRepositoryClient from azure.identity.aio import DefaultAzureCredential @@ -485,6 +494,7 @@ async def set_manifest_properties( Example .. code-block:: python + from azure.containerregistry.aio import ContainerRepositoryClient from azure.identity.aio import DefaultAzureCredential @@ -523,6 +533,7 @@ async def set_tag_properties( Example .. code-block:: python + from azure.containerregistry.aio import ContainerRepositoryClient from azure.identity.aio import DefaultAzureCredential From 2902a534c70173be835659a8d3f8538cea7b035b Mon Sep 17 00:00:00 2001 From: Sean Kane <68240067+seankane-msft@users.noreply.github.com> Date: Tue, 4 May 2021 10:29:05 -0400 Subject: [PATCH 5/8] Update sdk/containerregistry/azure-containerregistry/azure/containerregistry/_container_repository_client.py Co-authored-by: swathipil <76007337+swathipil@users.noreply.github.com> --- .../azure/containerregistry/_container_repository_client.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sdk/containerregistry/azure-containerregistry/azure/containerregistry/_container_repository_client.py b/sdk/containerregistry/azure-containerregistry/azure/containerregistry/_container_repository_client.py index fd03edd75b89..412e843d44fa 100644 --- a/sdk/containerregistry/azure-containerregistry/azure/containerregistry/_container_repository_client.py +++ b/sdk/containerregistry/azure-containerregistry/azure/containerregistry/_container_repository_client.py @@ -48,8 +48,8 @@ def __init__(self, endpoint, repository, credential, **kwargs): .. admonition:: Example: .. literalinclude:: ../samples/sample_create_client.py - :start-after: [START create_registry_client] - :end-before: [END create_registry_client] + :start-after: [START create_repository_client] + :end-before: [END create_repository_client] :language: python :dedent: 8 :caption: Instantiate an instance of `ContainerRepositoryClient` From 16f264cd6088b8517858b90f7f06d2219736a497 Mon Sep 17 00:00:00 2001 From: Sean Kane <68240067+seankane-msft@users.noreply.github.com> Date: Tue, 4 May 2021 10:29:18 -0400 Subject: [PATCH 6/8] Update sdk/containerregistry/azure-containerregistry/azure/containerregistry/aio/_async_container_registry_client.py Co-authored-by: swathipil <76007337+swathipil@users.noreply.github.com> --- .../containerregistry/aio/_async_container_registry_client.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/containerregistry/azure-containerregistry/azure/containerregistry/aio/_async_container_registry_client.py b/sdk/containerregistry/azure-containerregistry/azure/containerregistry/aio/_async_container_registry_client.py index 971c4530b90b..3dfee30d8a0a 100644 --- a/sdk/containerregistry/azure-containerregistry/azure/containerregistry/aio/_async_container_registry_client.py +++ b/sdk/containerregistry/azure-containerregistry/azure/containerregistry/aio/_async_container_registry_client.py @@ -92,7 +92,7 @@ def list_repositories(self, **kwargs: Dict[str, Any]) -> AsyncItemPaged[str]: .. admonition:: Example: - .. literalinclude:: ../samples//async_samples/sample_delete_old_tags_async.py + .. literalinclude:: ../samples/async_samples/sample_delete_old_tags_async.py :start-after: [START list_repositories] :end-before: [END list_repositories] :language: python From a3b9ba804989234c094a1eaceb6f75bb0239426d Mon Sep 17 00:00:00 2001 From: Sean Kane <68240067+seankane-msft@users.noreply.github.com> Date: Tue, 4 May 2021 10:29:56 -0400 Subject: [PATCH 7/8] Update sdk/containerregistry/azure-containerregistry/samples/README.md Co-authored-by: swathipil <76007337+swathipil@users.noreply.github.com> --- .../azure-containerregistry/samples/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sdk/containerregistry/azure-containerregistry/samples/README.md b/sdk/containerregistry/azure-containerregistry/samples/README.md index fa696b81cf2c..e29d222f4c5c 100644 --- a/sdk/containerregistry/azure-containerregistry/samples/README.md +++ b/sdk/containerregistry/azure-containerregistry/samples/README.md @@ -16,7 +16,7 @@ The async versions of the samples require Python 3.6 or later. |**File Name**|**Description**| |-------------|---------------| -|[sample_create_client.py][create_client] and [sample_create_client_async.py][create_client_async]|Instantiate a client | Authorizing a `ContainerRegistryClient` object and `ContainerRepositoryClient` object | +|[sample_create_client.py][create_client] ([async version][create_client_async]) |Instantiate a client | Authorizing a `ContainerRegistryClient` object and `ContainerRepositoryClient` object | |[sample_delete_old_tags.py][delete_old_tags] and [sample_delete_old_tags_async.py][delete_old_tags_async] | Delete tags from a repository | ### Prerequisites @@ -52,4 +52,4 @@ Check out the [API reference documentation][rest_docs] to learn more about what [create_client]: https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/containerregistry/azure-containerregistry/samples/sample_create_client.py [create_client_async]: https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/containerregistry/azure-containerregistry/samples/async_samples/sample_create_client_async.py [delete_old_tags]: https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/containerregistry/azure-containerregistry/samples/sample_delete_old_tags.py -[delete_old_tags_async]: https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/containerregistry/azure-containerregistry/samples/async_samples/sample_delete_old_tags_async.py \ No newline at end of file +[delete_old_tags_async]: https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/containerregistry/azure-containerregistry/samples/async_samples/sample_delete_old_tags_async.py From 4bc1f2c49385489102ae07118aaf3e2e56eae847 Mon Sep 17 00:00:00 2001 From: Sean Kane <68240067+seankane-msft@users.noreply.github.com> Date: Tue, 4 May 2021 10:30:12 -0400 Subject: [PATCH 8/8] Update sdk/containerregistry/azure-containerregistry/samples/async_samples/sample_delete_old_tags_async.py Co-authored-by: swathipil <76007337+swathipil@users.noreply.github.com> --- .../samples/async_samples/sample_delete_old_tags_async.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/sdk/containerregistry/azure-containerregistry/samples/async_samples/sample_delete_old_tags_async.py b/sdk/containerregistry/azure-containerregistry/samples/async_samples/sample_delete_old_tags_async.py index b3f17bfe35ec..4c6b789f4eec 100644 --- a/sdk/containerregistry/azure-containerregistry/samples/async_samples/sample_delete_old_tags_async.py +++ b/sdk/containerregistry/azure-containerregistry/samples/async_samples/sample_delete_old_tags_async.py @@ -7,13 +7,13 @@ # -------------------------------------------------------------------------- """ -FILE: sample_delete_old_tags.py +FILE: sample_delete_old_tags_async.py DESCRIPTION: - These samples demonstrates deleting the three oldest tags for each repository + These samples demonstrates deleting the three oldest tags for each repository asynchronously. USAGE: - python sample_delete_old_tags.py + python sample_delete_old_tags_async.py Set the environment variables with your own values before running the sample: 1) CONTAINERREGISTRY_ENDPOINT - The URL of you Container Registry account @@ -65,4 +65,3 @@ async def main(): if __name__ == '__main__': loop = asyncio.get_event_loop() loop.run_until_complete(main()) -