From b93e2e327054c4f598055dc129335735806d9613 Mon Sep 17 00:00:00 2001 From: seankane-msft Date: Wed, 7 Apr 2021 14:44:47 -0400 Subject: [PATCH 01/26] fixing up the test-resources-post script --- sdk/containerregistry/test-resources-post.ps1 | 32 ++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/sdk/containerregistry/test-resources-post.ps1 b/sdk/containerregistry/test-resources-post.ps1 index 67366d89507a..f1f4258810fd 100644 --- a/sdk/containerregistry/test-resources-post.ps1 +++ b/sdk/containerregistry/test-resources-post.ps1 @@ -1,5 +1,35 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. -# Install docker +param ( + [hashtable] $DeploymentOutputs, + [string] $TenantId, + [string] $TestApplicationId, + [string] $TestApplicationSecret +) +$version = (Get-Module Az).Version +# Detect if we are running an azure powershell version without the Import-AzContainerRegistryImage command +$minimumVersion = New-Object -TypeName Version -ArgumentList "5.6.0" +if ($version -lt $minimumVersion) { + Update-Module Az -RequiredVersion "5.7.0" -Force +} + +Import-AzContainerRegistryImage ` + -ResourceGroupName $DeploymentOutputs['CONTAINERREGISTRY_RESOURCE_GROUP'] ` + -RegistryName $DeploymentOutputs['CONTAINERREGISTRY_USERNAME'] ` + -SourceImage 'library/hello-world' -SourceRegistryUri 'registry.hub.docker.com' ` + -TargetTag @('library/hello-world:latest', 'library/hello-world:v1', 'library/hello-world:v2', 'library/hello-world:v3', 'library/hello-world:v4') ` + -Mode 'Force' + +Import-AzContainerRegistryImage ` + -ResourceGroupName $DeploymentOutputs['CONTAINERREGISTRY_RESOURCE_GROUP'] ` + -RegistryName $DeploymentOutputs['CONTAINERREGISTRY_USERNAME'] ` + -SourceImage 'library/alpine' -SourceRegistryUri 'registry.hub.docker.com' ` + -Mode 'Force' + +Import-AzContainerRegistryImage ` + -ResourceGroupName $DeploymentOutputs['CONTAINERREGISTRY_RESOURCE_GROUP'] ` + -RegistryName $DeploymentOutputs['CONTAINERREGISTRY_USERNAME'] ` + -SourceImage 'library/busybox' -SourceRegistryUri 'registry.hub.docker.com' ` + -Mode 'Force' From 9f9c4a9b65bd1080d59d7f8e498fb2965627c29d Mon Sep 17 00:00:00 2001 From: seankane-msft Date: Thu, 8 Apr 2021 10:45:37 -0400 Subject: [PATCH 02/26] adding forced import of Az --- sdk/containerregistry/test-resources-post.ps1 | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sdk/containerregistry/test-resources-post.ps1 b/sdk/containerregistry/test-resources-post.ps1 index f1f4258810fd..18d9eba3dd09 100644 --- a/sdk/containerregistry/test-resources-post.ps1 +++ b/sdk/containerregistry/test-resources-post.ps1 @@ -15,6 +15,8 @@ if ($version -lt $minimumVersion) { Update-Module Az -RequiredVersion "5.7.0" -Force } +Import-Module Az -Force + Import-AzContainerRegistryImage ` -ResourceGroupName $DeploymentOutputs['CONTAINERREGISTRY_RESOURCE_GROUP'] ` -RegistryName $DeploymentOutputs['CONTAINERREGISTRY_USERNAME'] ` From 99bc805f3cbb822dd0ff1404690f293bc58cb9b0 Mon Sep 17 00:00:00 2001 From: seankane-msft Date: Thu, 8 Apr 2021 11:20:04 -0400 Subject: [PATCH 03/26] flipping orders --- sdk/containerregistry/test-resources-post.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sdk/containerregistry/test-resources-post.ps1 b/sdk/containerregistry/test-resources-post.ps1 index 18d9eba3dd09..2fcd1f0910c2 100644 --- a/sdk/containerregistry/test-resources-post.ps1 +++ b/sdk/containerregistry/test-resources-post.ps1 @@ -8,6 +8,8 @@ param ( [string] $TestApplicationSecret ) +Import-Module Az -Force + $version = (Get-Module Az).Version # Detect if we are running an azure powershell version without the Import-AzContainerRegistryImage command $minimumVersion = New-Object -TypeName Version -ArgumentList "5.6.0" @@ -15,8 +17,6 @@ if ($version -lt $minimumVersion) { Update-Module Az -RequiredVersion "5.7.0" -Force } -Import-Module Az -Force - Import-AzContainerRegistryImage ` -ResourceGroupName $DeploymentOutputs['CONTAINERREGISTRY_RESOURCE_GROUP'] ` -RegistryName $DeploymentOutputs['CONTAINERREGISTRY_USERNAME'] ` From 80d6ee2c7fc553fe006f5e58f09b33f12e7d9fc8 Mon Sep 17 00:00:00 2001 From: seankane-msft Date: Thu, 8 Apr 2021 12:19:43 -0400 Subject: [PATCH 04/26] changing from updatet to import force --- sdk/containerregistry/test-resources-post.ps1 | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/sdk/containerregistry/test-resources-post.ps1 b/sdk/containerregistry/test-resources-post.ps1 index 2fcd1f0910c2..fb07e49eb601 100644 --- a/sdk/containerregistry/test-resources-post.ps1 +++ b/sdk/containerregistry/test-resources-post.ps1 @@ -8,13 +8,11 @@ param ( [string] $TestApplicationSecret ) -Import-Module Az -Force - $version = (Get-Module Az).Version # Detect if we are running an azure powershell version without the Import-AzContainerRegistryImage command $minimumVersion = New-Object -TypeName Version -ArgumentList "5.6.0" if ($version -lt $minimumVersion) { - Update-Module Az -RequiredVersion "5.7.0" -Force + Import-Module Az -Force -RequiredVersion 5.7.0 } Import-AzContainerRegistryImage ` From 8c8fae5c2926780caceef674ee17519c0192f285 Mon Sep 17 00:00:00 2001 From: seankane-msft Date: Thu, 8 Apr 2021 19:47:07 -0400 Subject: [PATCH 05/26] update for mac --- sdk/containerregistry/test-resources-post.ps1 | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/sdk/containerregistry/test-resources-post.ps1 b/sdk/containerregistry/test-resources-post.ps1 index fb07e49eb601..ef185b45689f 100644 --- a/sdk/containerregistry/test-resources-post.ps1 +++ b/sdk/containerregistry/test-resources-post.ps1 @@ -8,11 +8,8 @@ param ( [string] $TestApplicationSecret ) -$version = (Get-Module Az).Version -# Detect if we are running an azure powershell version without the Import-AzContainerRegistryImage command -$minimumVersion = New-Object -TypeName Version -ArgumentList "5.6.0" -if ($version -lt $minimumVersion) { - Import-Module Az -Force -RequiredVersion 5.7.0 +if ($IsMacOS) { + Update-Module -Name Az.ContainerRegistry -Force } Import-AzContainerRegistryImage ` From b48fb815bb38a7efa362c1b953fbb2b822aff4e9 Mon Sep 17 00:00:00 2001 From: seankane-msft Date: Fri, 9 Apr 2021 13:55:47 -0400 Subject: [PATCH 06/26] using default shell --- sdk/containerregistry/azure-containerregistry/tests/testcase.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/containerregistry/azure-containerregistry/tests/testcase.py b/sdk/containerregistry/azure-containerregistry/tests/testcase.py index a3c5438ddc22..ed6f78fc2a81 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/testcase.py +++ b/sdk/containerregistry/azure-containerregistry/tests/testcase.py @@ -160,7 +160,7 @@ def import_repo(self, endpoint, repository="hello-world", resource_group="fake_r "-Mode", "'Force'", ] - subprocess.check_call(command) + subprocess.check_call(command, shell=True) def _clean_up(self, endpoint): if not self.is_live: From c2da20e48fe39040db204c49b72ac77b36b69abc Mon Sep 17 00:00:00 2001 From: seankane-msft Date: Fri, 9 Apr 2021 14:08:21 -0400 Subject: [PATCH 07/26] dropping the .exe --- sdk/containerregistry/azure-containerregistry/tests/testcase.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/containerregistry/azure-containerregistry/tests/testcase.py b/sdk/containerregistry/azure-containerregistry/tests/testcase.py index ed6f78fc2a81..e9a6418781a4 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/testcase.py +++ b/sdk/containerregistry/azure-containerregistry/tests/testcase.py @@ -145,7 +145,7 @@ def import_repo(self, endpoint, repository="hello-world", resource_group="fake_r repository = "{}:{}".format(repository, tag) registry = endpoint.split(".")[0] command = [ - "powershell.exe", + "powershell", "Import-AzcontainerRegistryImage", "-ResourceGroupName", "'{}'".format(resource_group), From 706e72e2dc88784b86d2511a7c9a05c72a842213 Mon Sep 17 00:00:00 2001 From: seankane-msft Date: Fri, 9 Apr 2021 14:24:36 -0400 Subject: [PATCH 08/26] removing shell=True --- .../azure-containerregistry/tests/testcase.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sdk/containerregistry/azure-containerregistry/tests/testcase.py b/sdk/containerregistry/azure-containerregistry/tests/testcase.py index e9a6418781a4..0b3f007f2f5a 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/testcase.py +++ b/sdk/containerregistry/azure-containerregistry/tests/testcase.py @@ -146,7 +146,7 @@ def import_repo(self, endpoint, repository="hello-world", resource_group="fake_r registry = endpoint.split(".")[0] command = [ "powershell", - "Import-AzcontainerRegistryImage", + "Import-AzContainerRegistryImage", "-ResourceGroupName", "'{}'".format(resource_group), "-RegistryName", @@ -160,7 +160,7 @@ def import_repo(self, endpoint, repository="hello-world", resource_group="fake_r "-Mode", "'Force'", ] - subprocess.check_call(command, shell=True) + subprocess.check_call(command) def _clean_up(self, endpoint): if not self.is_live: From 96746c7a8b4951c7a009a34d0a8bf851a90d4ee6 Mon Sep 17 00:00:00 2001 From: seankane-msft Date: Fri, 9 Apr 2021 14:35:56 -0400 Subject: [PATCH 09/26] removing powershell altogether --- sdk/containerregistry/azure-containerregistry/tests/testcase.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/containerregistry/azure-containerregistry/tests/testcase.py b/sdk/containerregistry/azure-containerregistry/tests/testcase.py index 0b3f007f2f5a..b3e069cbe270 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/testcase.py +++ b/sdk/containerregistry/azure-containerregistry/tests/testcase.py @@ -145,7 +145,7 @@ def import_repo(self, endpoint, repository="hello-world", resource_group="fake_r repository = "{}:{}".format(repository, tag) registry = endpoint.split(".")[0] command = [ - "powershell", + # "powershell", "Import-AzContainerRegistryImage", "-ResourceGroupName", "'{}'".format(resource_group), From d45fb385e639d4429e61a9955160cdb68fc4ef5e Mon Sep 17 00:00:00 2001 From: seankane-msft Date: Mon, 12 Apr 2021 14:33:46 -0400 Subject: [PATCH 10/26] linking powershell command to module --- sdk/containerregistry/azure-containerregistry/tests/testcase.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/containerregistry/azure-containerregistry/tests/testcase.py b/sdk/containerregistry/azure-containerregistry/tests/testcase.py index b3e069cbe270..422b41dc00ea 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/testcase.py +++ b/sdk/containerregistry/azure-containerregistry/tests/testcase.py @@ -146,7 +146,7 @@ def import_repo(self, endpoint, repository="hello-world", resource_group="fake_r registry = endpoint.split(".")[0] command = [ # "powershell", - "Import-AzContainerRegistryImage", + "Az.ContainerRegistry\Import-AzContainerRegistryImage", "-ResourceGroupName", "'{}'".format(resource_group), "-RegistryName", From 501688650c7074f0ba4313f01b73249241e135ce Mon Sep 17 00:00:00 2001 From: seankane-msft Date: Mon, 12 Apr 2021 14:56:13 -0400 Subject: [PATCH 11/26] powershell.exe -> pwsh --- sdk/containerregistry/azure-containerregistry/tests/testcase.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/containerregistry/azure-containerregistry/tests/testcase.py b/sdk/containerregistry/azure-containerregistry/tests/testcase.py index 422b41dc00ea..3bc6dbe24790 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/testcase.py +++ b/sdk/containerregistry/azure-containerregistry/tests/testcase.py @@ -145,7 +145,7 @@ def import_repo(self, endpoint, repository="hello-world", resource_group="fake_r repository = "{}:{}".format(repository, tag) registry = endpoint.split(".")[0] command = [ - # "powershell", + "pwsh", "Az.ContainerRegistry\Import-AzContainerRegistryImage", "-ResourceGroupName", "'{}'".format(resource_group), From 2c025af33d7493a7542f4442d21d78f3cc86290d Mon Sep 17 00:00:00 2001 From: seankane-msft Date: Mon, 12 Apr 2021 15:04:30 -0400 Subject: [PATCH 12/26] simplifying cmdlet --- sdk/containerregistry/azure-containerregistry/tests/testcase.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/containerregistry/azure-containerregistry/tests/testcase.py b/sdk/containerregistry/azure-containerregistry/tests/testcase.py index 3bc6dbe24790..680fd5964767 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/testcase.py +++ b/sdk/containerregistry/azure-containerregistry/tests/testcase.py @@ -146,7 +146,7 @@ def import_repo(self, endpoint, repository="hello-world", resource_group="fake_r registry = endpoint.split(".")[0] command = [ "pwsh", - "Az.ContainerRegistry\Import-AzContainerRegistryImage", + "Import-AzContainerRegistryImage", "-ResourceGroupName", "'{}'".format(resource_group), "-RegistryName", From af3e753f7d07dd92fe71ba00b1856eb7f81a2029 Mon Sep 17 00:00:00 2001 From: seankane-msft Date: Mon, 12 Apr 2021 15:35:00 -0400 Subject: [PATCH 13/26] chnging command structure --- sdk/containerregistry/azure-containerregistry/tests/testcase.py | 1 + 1 file changed, 1 insertion(+) diff --git a/sdk/containerregistry/azure-containerregistry/tests/testcase.py b/sdk/containerregistry/azure-containerregistry/tests/testcase.py index 680fd5964767..d795050950bf 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/testcase.py +++ b/sdk/containerregistry/azure-containerregistry/tests/testcase.py @@ -146,6 +146,7 @@ def import_repo(self, endpoint, repository="hello-world", resource_group="fake_r registry = endpoint.split(".")[0] command = [ "pwsh", + "-Command", "Import-AzContainerRegistryImage", "-ResourceGroupName", "'{}'".format(resource_group), From 7109f782ca2493276d805eb207b6bdee54409c11 Mon Sep 17 00:00:00 2001 From: seankane-msft Date: Mon, 12 Apr 2021 15:54:17 -0400 Subject: [PATCH 14/26] simpler pwsh call --- .../azure-containerregistry/tests/testcase.py | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/sdk/containerregistry/azure-containerregistry/tests/testcase.py b/sdk/containerregistry/azure-containerregistry/tests/testcase.py index d795050950bf..94e78333183b 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/testcase.py +++ b/sdk/containerregistry/azure-containerregistry/tests/testcase.py @@ -147,19 +147,21 @@ def import_repo(self, endpoint, repository="hello-world", resource_group="fake_r command = [ "pwsh", "-Command", - "Import-AzContainerRegistryImage", - "-ResourceGroupName", - "'{}'".format(resource_group), - "-RegistryName", - "'{}'".format(registry), - "-SourceImage", - "'library/hello-world'", - "-SourceRegistryUri", - "'registry.hub.docker.com'", - "-TargetTag", - "'{}'".format(repository), - "-Mode", - "'Force'", + "Get-Module", + "Az", + # "Import-AzContainerRegistryImage", + # "-ResourceGroupName", + # "'{}'".format(resource_group), + # "-RegistryName", + # "'{}'".format(registry), + # "-SourceImage", + # "'library/hello-world'", + # "-SourceRegistryUri", + # "'registry.hub.docker.com'", + # "-TargetTag", + # "'{}'".format(repository), + # "-Mode", + # "'Force'", ] subprocess.check_call(command) From 2c2592428cc65fbd5c5e51ab10b174782511f722 Mon Sep 17 00:00:00 2001 From: seankane-msft Date: Tue, 13 Apr 2021 08:05:09 -0400 Subject: [PATCH 15/26] moving to mgmt plane library --- .../azure-containerregistry/tests/testcase.py | 8 ++++---- sdk/containerregistry/test-resources-post.ps1 | 5 +++++ 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/sdk/containerregistry/azure-containerregistry/tests/testcase.py b/sdk/containerregistry/azure-containerregistry/tests/testcase.py index 94e78333183b..0c1733fd7c91 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/testcase.py +++ b/sdk/containerregistry/azure-containerregistry/tests/testcase.py @@ -201,10 +201,10 @@ def create_repository_client(self, endpoint, name, **kwargs): def assert_content_permission(self, content_perm, content_perm2): assert isinstance(content_perm, ContentPermissions) assert isinstance(content_perm2, ContentPermissions) - assert content_perm.can_delete == content_perm.can_delete - assert content_perm.can_list == content_perm.can_list - assert content_perm.can_read == content_perm.can_read - assert content_perm.can_write == content_perm.can_write + assert content_perm.can_delete == content_perm2.can_delete + assert content_perm.can_list == content_perm2.can_list + assert content_perm.can_read == content_perm2.can_read + assert content_perm.can_write == content_perm2.can_write def assert_tag( self, diff --git a/sdk/containerregistry/test-resources-post.ps1 b/sdk/containerregistry/test-resources-post.ps1 index ef185b45689f..22907514fbca 100644 --- a/sdk/containerregistry/test-resources-post.ps1 +++ b/sdk/containerregistry/test-resources-post.ps1 @@ -12,6 +12,11 @@ if ($IsMacOS) { Update-Module -Name Az.ContainerRegistry -Force } +az acr import --name $DeploymentOutputs['CONTAINERREGISTRY_USERNAME'] --resource-group $DeploymentOutputs['CONTAINERREGISTRY_RESOURCE_GROUP'] docker.io/library/hello-world:latest -t library/hello-world:latest -t library/hello-world:latest:v1 -t library/hello-world:latest:v2 -t library/hello-world:latest:v3 -t library/hello-world:latest:v4 --force +az acr import --name $DeploymentOutputs['CONTAINERREGISTRY_USERNAME'] --resource-group $DeploymentOutputs['CONTAINERREGISTRY_RESOURCE_GROUP'] docker.io/library/alpine:latest -t library/alpine --force +az acr import --name $DeploymentOutputs['CONTAINERREGISTRY_USERNAME'] --resource-group $DeploymentOutputs['CONTAINERREGISTRY_RESOURCE_GROUP'] docker.io/library/busybox:latest -t library/busybox --force + + Import-AzContainerRegistryImage ` -ResourceGroupName $DeploymentOutputs['CONTAINERREGISTRY_RESOURCE_GROUP'] ` -RegistryName $DeploymentOutputs['CONTAINERREGISTRY_USERNAME'] ` From 2d61153b145a1add047d514b7400ad098a28d50e Mon Sep 17 00:00:00 2001 From: seankane-msft Date: Tue, 13 Apr 2021 08:52:37 -0400 Subject: [PATCH 16/26] adding import image using mgmt plane --- .../dev_requirements.txt | 1 + ...pository_client_async.test_delete_tag.yaml | 196 +++++++++++++----- ..._async.test_delete_tag_does_not_exist.yaml | 21 +- .../test_container_repository_client_async.py | 16 +- .../azure-containerregistry/tests/testcase.py | 35 +++- 5 files changed, 199 insertions(+), 70 deletions(-) diff --git a/sdk/containerregistry/azure-containerregistry/dev_requirements.txt b/sdk/containerregistry/azure-containerregistry/dev_requirements.txt index e0e0792d9188..29c33435b996 100644 --- a/sdk/containerregistry/azure-containerregistry/dev_requirements.txt +++ b/sdk/containerregistry/azure-containerregistry/dev_requirements.txt @@ -1,5 +1,6 @@ -e ../../../tools/azure-sdk-tools -e ../../../tools/azure-devtools ../../core/azure-core +../azure-mgmt-containerregistry aiohttp>=3.0; python_version >= '3.5' azure-identity \ No newline at end of file diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_delete_tag.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_delete_tag.yaml index 98916faa3c2f..55285c45b054 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_delete_tag.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_delete_tag.yaml @@ -1,4 +1,93 @@ interactions: +- request: + body: '{"source": {"registryUri": "registry.hub.docker.com", "sourceImage": "library/hello-world"}, + "targetTags": ["library/hello-world:to_be_deleted"], "mode": "Force"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '162' + Content-Type: + - application/json + User-Agent: + - azsdk-python-azure-mgmt-containerregistry/8.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://management.azure.com/subscriptions/2cd617ea-1866-46b1-90e3-fffb087ebf9b/resourceGroups/fake_rg/providers/Microsoft.ContainerRegistry/registries/seankane/importImage?api-version=2019-05-01 + response: + body: + string: 'null' + headers: + cache-control: + - no-cache + content-length: + - '4' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 13 Apr 2021 12:51:45 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/2cd617ea-1866-46b1-90e3-fffb087ebf9b/providers/Microsoft.ContainerRegistry/locations/WESTUS2/operationResults/registries-00a7844d-9c57-11eb-b999-002b67128e4c?api-version=2019-05-01 + pragma: + - no-cache + server: + - Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-ms-ratelimit-remaining-subscription-writes: + - '1199' + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-azure-mgmt-containerregistry/8.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/2cd617ea-1866-46b1-90e3-fffb087ebf9b/providers/Microsoft.ContainerRegistry/locations/WESTUS2/operationResults/registries-00a7844d-9c57-11eb-b999-002b67128e4c?api-version=2019-05-01 + response: + body: + string: '{"status": "Succeeded"}' + headers: + cache-control: + - no-cache + content-length: + - '22' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 13 Apr 2021 12:51:56 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + status: + code: 200 + message: OK - request: body: null headers: @@ -7,27 +96,28 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/repo6ce51658/_tags/to_be_deleted + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags/to_be_deleted response: body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "repository", "Name": "repo6ce51658", "Action": "metadata_read"}]}]}' + string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"library/hello-world","Action":"metadata_read"}]}]} + + ' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '215' + content-length: '222' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:38 GMT + date: Tue, 13 Apr 2021 12:52:05 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" + www-authenticate: Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:library/hello-world:metadata_read" x-content-type-options: nosniff status: code: 401 message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/repo6ce51658/_tags/to_be_deleted + url: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags/to_be_deleted - request: body: access_token: REDACTED @@ -46,11 +136,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:39 GMT + date: Tue, 13 Apr 2021 12:52:06 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '332.966667' + x-ms-ratelimit-remaining-calls-per-second: '332.466667' status: code: 200 message: OK @@ -59,7 +149,7 @@ interactions: body: grant_type: refresh_token refresh_token: REDACTED - scope: repository:repo6ce51658:metadata_read + scope: repository:library/hello-world:metadata_read service: fake_url.azurecr.io headers: Accept: @@ -74,11 +164,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:39 GMT + date: Tue, 13 Apr 2021 12:52:06 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '332.95' + x-ms-ratelimit-remaining-calls-per-second: '332.45' status: code: 200 message: OK @@ -91,20 +181,20 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/repo6ce51658/_tags/to_be_deleted + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags/to_be_deleted response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "repo6ce51658", "tag": - {"name": "to_be_deleted", "digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", - "createdTime": "2021-04-07T12:54:28.7529146Z", "lastUpdateTime": "2021-04-07T12:54:28.7529146Z", + string: '{"registry": "fake_url.azurecr.io", "imageName": "library/hello-world", + "tag": {"name": "to_be_deleted", "digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", + "createdTime": "2021-04-13T12:51:16.6638766Z", "lastUpdateTime": "2021-04-13T12:51:16.6638766Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '388' + content-length: '395' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:39 GMT + date: Tue, 13 Apr 2021 12:52:06 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -112,7 +202,7 @@ interactions: status: code: 200 message: OK - url: https://fake_url.azurecr.io/acr/v1/repo6ce51658/_tags/to_be_deleted + url: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags/to_be_deleted - request: body: null headers: @@ -121,27 +211,28 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://fake_url.azurecr.io/acr/v1/repo6ce51658/_tags/to_be_deleted + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags/to_be_deleted response: body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "repository", "Name": "repo6ce51658", "Action": "delete"}]}]}' + string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"library/hello-world","Action":"delete"}]}]} + + ' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '208' + content-length: '215' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:40 GMT + date: Tue, 13 Apr 2021 12:52:07 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" + www-authenticate: Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:library/hello-world:delete" x-content-type-options: nosniff status: code: 401 message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/repo6ce51658/_tags/to_be_deleted + url: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags/to_be_deleted - request: body: access_token: REDACTED @@ -160,11 +251,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:40 GMT + date: Tue, 13 Apr 2021 12:52:07 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '332.933333' + x-ms-ratelimit-remaining-calls-per-second: '332.433333' status: code: 200 message: OK @@ -173,7 +264,7 @@ interactions: body: grant_type: refresh_token refresh_token: REDACTED - scope: repository:repo6ce51658:delete + scope: repository:library/hello-world:delete service: fake_url.azurecr.io headers: Accept: @@ -188,11 +279,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:40 GMT + date: Tue, 13 Apr 2021 12:52:07 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '332.916667' + x-ms-ratelimit-remaining-calls-per-second: '332.416667' status: code: 200 message: OK @@ -205,7 +296,7 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://fake_url.azurecr.io/acr/v1/repo6ce51658/_tags/to_be_deleted + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags/to_be_deleted response: body: string: '' @@ -213,7 +304,7 @@ interactions: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-length: '0' - date: Wed, 07 Apr 2021 12:54:40 GMT + date: Tue, 13 Apr 2021 12:52:08 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -223,7 +314,7 @@ interactions: status: code: 202 message: Accepted - url: https://fake_url.azurecr.io/acr/v1/repo6ce51658/_tags/to_be_deleted + url: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags/to_be_deleted - request: body: null headers: @@ -232,27 +323,28 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/repo6ce51658/_tags/to_be_deleted + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags/to_be_deleted response: body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "repository", "Name": "repo6ce51658", "Action": "metadata_read"}]}]}' + string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"library/hello-world","Action":"metadata_read"}]}]} + + ' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '215' + content-length: '222' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:46 GMT + date: Tue, 13 Apr 2021 12:52:13 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" + www-authenticate: Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:library/hello-world:metadata_read" x-content-type-options: nosniff status: code: 401 message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/repo6ce51658/_tags/to_be_deleted + url: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags/to_be_deleted - request: body: access_token: REDACTED @@ -271,11 +363,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:46 GMT + date: Tue, 13 Apr 2021 12:52:14 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '333.1' + x-ms-ratelimit-remaining-calls-per-second: '332.4' status: code: 200 message: OK @@ -284,7 +376,7 @@ interactions: body: grant_type: refresh_token refresh_token: REDACTED - scope: repository:repo6ce51658:metadata_read + scope: repository:library/hello-world:metadata_read service: fake_url.azurecr.io headers: Accept: @@ -299,11 +391,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:46 GMT + date: Tue, 13 Apr 2021 12:52:14 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '333' + x-ms-ratelimit-remaining-calls-per-second: '332.383333' status: code: 200 message: OK @@ -316,7 +408,7 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/repo6ce51658/_tags/to_be_deleted + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags/to_be_deleted response: body: string: '{"errors": [{"code": "TAG_UNKNOWN", "message": "the specified tag does @@ -326,7 +418,7 @@ interactions: connection: keep-alive content-length: '81' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:46 GMT + date: Tue, 13 Apr 2021 12:52:14 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -334,5 +426,5 @@ interactions: status: code: 404 message: Not Found - url: https://fake_url.azurecr.io/acr/v1/repo6ce51658/_tags/to_be_deleted + url: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags/to_be_deleted version: 1 diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_delete_tag_does_not_exist.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_delete_tag_does_not_exist.yaml index 89dab5b2b04d..39c2566a85a7 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_delete_tag_does_not_exist.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_delete_tag_does_not_exist.yaml @@ -10,19 +10,20 @@ interactions: uri: https://fake_url.azurecr.io/acr/v1/hello-world/_tags/to_be_deleted response: body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "repository", "Name": "hello-world", "Action": "delete"}]}]}' + string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"hello-world","Action":"delete"}]}]} + + ' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-length: '207' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:47 GMT + date: Tue, 13 Apr 2021 12:42:22 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" + www-authenticate: Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:hello-world:delete" x-content-type-options: nosniff status: code: 401 @@ -46,11 +47,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:48 GMT + date: Tue, 13 Apr 2021 12:42:24 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '333.133333' + x-ms-ratelimit-remaining-calls-per-second: '333.316667' status: code: 200 message: OK @@ -74,11 +75,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:48 GMT + date: Tue, 13 Apr 2021 12:42:24 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '332.9' + x-ms-ratelimit-remaining-calls-per-second: '333.3' status: code: 200 message: OK @@ -101,7 +102,7 @@ interactions: connection: keep-alive content-length: '81' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:48 GMT + date: Tue, 13 Apr 2021 12:42:24 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains diff --git a/sdk/containerregistry/azure-containerregistry/tests/test_container_repository_client_async.py b/sdk/containerregistry/azure-containerregistry/tests/test_container_repository_client_async.py index 0ba5b2d70c81..7be4f4daedc1 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/test_container_repository_client_async.py +++ b/sdk/containerregistry/azure-containerregistry/tests/test_container_repository_client_async.py @@ -85,13 +85,15 @@ async def test_list_tags_by_page(self, containerregistry_endpoint): @acr_preparer() async def test_delete_tag(self, containerregistry_endpoint, containerregistry_resource_group): - repo = self.get_resource_name("repo") - self.import_repo( - containerregistry_endpoint, - resource_group=containerregistry_resource_group, - repository=repo, - tag=TO_BE_DELETED, - ) + # repo = self.get_resource_name("repo") + # self.import_repo( + # containerregistry_endpoint, + # resource_group=containerregistry_resource_group, + # repository=repo, + # tag=TO_BE_DELETED, + # ) + repo = "library/hello-world" + self.import_image(repo, ["{}:{}".format(repo, TO_BE_DELETED)]) client = self.create_repository_client(containerregistry_endpoint, repo) diff --git a/sdk/containerregistry/azure-containerregistry/tests/testcase.py b/sdk/containerregistry/azure-containerregistry/tests/testcase.py index 0c1733fd7c91..297f1e7d2517 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/testcase.py +++ b/sdk/containerregistry/azure-containerregistry/tests/testcase.py @@ -6,6 +6,7 @@ import copy from datetime import datetime import json +import os import re import six import subprocess @@ -20,6 +21,8 @@ ) from azure.core.credentials import AccessToken +from azure.mgmt.containerregistry import ContainerRegistryManagementClient +from azure.mgmt.containerregistry.models import ImportImageParameters, ImportSource, ImportMode from azure.identity import DefaultAzureCredential from azure_devtools.scenario_tests import RecordingProcessor @@ -85,7 +88,7 @@ def process_response(self, response): body = response["body"] try: - if body["string"] == b"": + if body["string"] == b"" or body["string"] == "null": return response refresh = json.loads(body["string"]) @@ -137,6 +140,36 @@ def sleep(self, t): if self.is_live: time.sleep(t) + def import_image(self, repository, tags): + # type: (str, List[str]) -> None + if not self.is_live: + return + + mgmt_client = ContainerRegistryManagementClient(DefaultAzureCredential(), os.environ["CONTAINERREGISTRY_SUBSCRIPTION_ID"]) + registry_uri = "registry.hub.docker.com" + rg_name = os.environ["CONTAINERREGISTRY_RESOURCE_GROUP"] + registry_name = os.environ["CONTAINERREGISTRY_REGISTRY_NAME"] + + import_source = ImportSource( + source_image=repository, + registry_uri=registry_uri + ) + + import_params = ImportImageParameters( + mode=ImportMode.Force, + source=import_source, + target_tags=tags + ) + + result = mgmt_client.registries.begin_import_image( + rg_name, + registry_name, + parameters=import_params, + ) + + while not result.done(): + self.sleep(2) + def import_repo(self, endpoint, repository="hello-world", resource_group="fake_rg", tag=None): if not self.is_live: return From 7fb02116c2dca3ad8cb0a15fa1be27ee7d121d7e Mon Sep 17 00:00:00 2001 From: seankane-msft Date: Tue, 13 Apr 2021 10:04:55 -0400 Subject: [PATCH 17/26] import_repo -> import_image --- .../tests/test_container_registry_client.py | 7 +-- .../test_container_registry_client_async.py | 7 +-- .../tests/test_container_repository_client.py | 47 ++++++++++--------- .../test_container_repository_client_async.py | 47 +++++++++---------- .../azure-containerregistry/tests/testcase.py | 4 +- 5 files changed, 59 insertions(+), 53 deletions(-) diff --git a/sdk/containerregistry/azure-containerregistry/tests/test_container_registry_client.py b/sdk/containerregistry/azure-containerregistry/tests/test_container_registry_client.py index 9119ef267d41..a83e589c9cba 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/test_container_registry_client.py +++ b/sdk/containerregistry/azure-containerregistry/tests/test_container_registry_client.py @@ -63,9 +63,10 @@ def test_list_repositories_by_page(self, containerregistry_endpoint): @acr_preparer() def test_delete_repository(self, containerregistry_endpoint, containerregistry_resource_group): repository = self.get_resource_name("repo") - self.import_repo( - containerregistry_endpoint, resource_group=containerregistry_resource_group, repository=repository - ) + self.import_image("library/hello-world", [repository]) + # self.import_repo( + # containerregistry_endpoint, resource_group=containerregistry_resource_group, repository=repository + # ) client = self.create_registry_client(containerregistry_endpoint) result = client.delete_repository(repository) diff --git a/sdk/containerregistry/azure-containerregistry/tests/test_container_registry_client_async.py b/sdk/containerregistry/azure-containerregistry/tests/test_container_registry_client_async.py index f4cf5538e9b4..888cc758ac90 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/test_container_registry_client_async.py +++ b/sdk/containerregistry/azure-containerregistry/tests/test_container_registry_client_async.py @@ -63,9 +63,10 @@ async def test_list_repositories_by_page(self, containerregistry_endpoint): @acr_preparer() async def test_delete_repository(self, containerregistry_endpoint, containerregistry_resource_group): repository = self.get_resource_name("repo") - self.import_repo( - containerregistry_endpoint, resource_group=containerregistry_resource_group, repository=repository - ) + self.import_image("library/hello-world", [repository]) + # self.import_repo( + # containerregistry_endpoint, resource_group=containerregistry_resource_group, repository=repository + # ) client = self.create_registry_client(containerregistry_endpoint) result = await client.delete_repository(repository) diff --git a/sdk/containerregistry/azure-containerregistry/tests/test_container_repository_client.py b/sdk/containerregistry/azure-containerregistry/tests/test_container_repository_client.py index 624052d5ae35..e0c478f53d23 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/test_container_repository_client.py +++ b/sdk/containerregistry/azure-containerregistry/tests/test_container_repository_client.py @@ -32,9 +32,10 @@ class TestContainerRepositoryClient(ContainerRegistryTestClass): def test_delete_tag(self, containerregistry_endpoint, containerregistry_resource_group): repo = self.get_resource_name("repo") tag = self.get_resource_name("tag") - self.import_repo( - containerregistry_endpoint, resource_group=containerregistry_resource_group, repository=repo, tag=tag - ) + self.import_image("library/hello-world", ["{}:{}".format(repo, tag)]) + # self.import_repo( + # containerregistry_endpoint, resource_group=containerregistry_resource_group, repository=repo, tag=tag + # ) client = self.create_repository_client(containerregistry_endpoint, repo) @@ -200,12 +201,13 @@ def test_list_tags_ascending(self, containerregistry_endpoint): def test_set_tag_properties(self, containerregistry_endpoint, containerregistry_resource_group): repository = self.get_resource_name("repo") tag_identifier = self.get_resource_name("tag") - self.import_repo( - containerregistry_endpoint, - resource_group=containerregistry_resource_group, - tag=tag_identifier, - repository=repository, - ) + self.import_image("library/hello-world", ["{}:{}".format(repository, tag_identifier)]) + # self.import_repo( + # containerregistry_endpoint, + # resource_group=containerregistry_resource_group, + # tag=tag_identifier, + # repository=repository, + # ) client = self.create_repository_client(containerregistry_endpoint, repository) @@ -238,12 +240,13 @@ def test_set_tag_properties_does_not_exist(self, containerregistry_endpoint): def test_set_manifest_properties(self, containerregistry_endpoint, containerregistry_resource_group): repository = self.get_resource_name("reposetmani") tag_identifier = self.get_resource_name("tag") - self.import_repo( - containerregistry_endpoint, - resource_group=containerregistry_resource_group, - tag=tag_identifier, - repository=repository, - ) + self.import_image("library/hello-world", ["{}:{}".format(repository, tag_identifier)]) + # self.import_repo( + # containerregistry_endpoint, + # resource_group=containerregistry_resource_group, + # tag=tag_identifier, + # repository=repository, + # ) client = self.create_repository_client(containerregistry_endpoint, repository) @@ -287,9 +290,10 @@ def test_set_manifest_properties_does_not_exist(self, containerregistry_endpoint @acr_preparer() def test_delete_repository(self, containerregistry_endpoint, containerregistry_resource_group): - self.import_repo( - containerregistry_endpoint, resource_group=containerregistry_resource_group, repository=TO_BE_DELETED - ) + self.import_image("library/hello-world", [TO_BE_DELETED]) + # self.import_repo( + # containerregistry_endpoint, resource_group=containerregistry_resource_group, repository=TO_BE_DELETED + # ) reg_client = self.create_registry_client(containerregistry_endpoint) existing_repos = list(reg_client.list_repositories()) @@ -313,9 +317,10 @@ def test_delete_repository_doesnt_exist(self, containerregistry_endpoint): @acr_preparer() def test_delete_registry_artifact(self, containerregistry_endpoint, containerregistry_resource_group): repository = self.get_resource_name("repo") - self.import_repo( - containerregistry_endpoint, resource_group=containerregistry_resource_group, repository=repository - ) + self.import_image("library/hello-world", [repository]) + # self.import_repo( + # containerregistry_endpoint, resource_group=containerregistry_resource_group, repository=repository + # ) repo_client = self.create_repository_client(containerregistry_endpoint, repository) diff --git a/sdk/containerregistry/azure-containerregistry/tests/test_container_repository_client_async.py b/sdk/containerregistry/azure-containerregistry/tests/test_container_repository_client_async.py index 7be4f4daedc1..c2dc82cd99c7 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/test_container_repository_client_async.py +++ b/sdk/containerregistry/azure-containerregistry/tests/test_container_repository_client_async.py @@ -85,13 +85,6 @@ async def test_list_tags_by_page(self, containerregistry_endpoint): @acr_preparer() async def test_delete_tag(self, containerregistry_endpoint, containerregistry_resource_group): - # repo = self.get_resource_name("repo") - # self.import_repo( - # containerregistry_endpoint, - # resource_group=containerregistry_resource_group, - # repository=repo, - # tag=TO_BE_DELETED, - # ) repo = "library/hello-world" self.import_image(repo, ["{}:{}".format(repo, TO_BE_DELETED)]) @@ -115,9 +108,10 @@ async def test_delete_tag_does_not_exist(self, containerregistry_endpoint): @acr_preparer() async def test_delete_repository(self, containerregistry_endpoint, containerregistry_resource_group): - self.import_repo( - containerregistry_endpoint, resource_group=containerregistry_resource_group, repository=TO_BE_DELETED - ) + self.import_image("library/hello-world", [TO_BE_DELETED]) + # self.import_repo( + # containerregistry_endpoint, resource_group=containerregistry_resource_group, repository=TO_BE_DELETED + # ) reg_client = self.create_registry_client(containerregistry_endpoint) existing_repos = [] @@ -147,9 +141,10 @@ async def test_delete_repository_doesnt_exist(self, containerregistry_endpoint): @acr_preparer() async def test_delete_registry_artifact(self, containerregistry_endpoint, containerregistry_resource_group): repository = self.get_resource_name("repo") - self.import_repo( - containerregistry_endpoint, resource_group=containerregistry_resource_group, repository=repository - ) + self.import_image("library/hello-world", [repository]) + # self.import_repo( + # containerregistry_endpoint, resource_group=containerregistry_resource_group, repository=repository + # ) repo_client = self.create_repository_client(containerregistry_endpoint, repository) @@ -171,12 +166,13 @@ async def test_delete_registry_artifact(self, containerregistry_endpoint, contai async def test_set_tag_properties(self, containerregistry_endpoint, containerregistry_resource_group): repository = self.get_resource_name("repo") tag_identifier = self.get_resource_name("tag") - self.import_repo( - containerregistry_endpoint, - resource_group=containerregistry_resource_group, - tag=tag_identifier, - repository=repository, - ) + self.import_image("library/hello-world", ["{}:{}".format(repository, tag_identifier)]) + # self.import_repo( + # containerregistry_endpoint, + # resource_group=containerregistry_resource_group, + # tag=tag_identifier, + # repository=repository, + # ) client = self.create_repository_client(containerregistry_endpoint, repository) @@ -209,12 +205,13 @@ async def test_set_tag_properties_does_not_exist(self, containerregistry_endpoin async def test_set_manifest_properties(self, containerregistry_endpoint, containerregistry_resource_group): repository = self.get_resource_name("reposet") tag_identifier = self.get_resource_name("tag") - self.import_repo( - containerregistry_endpoint, - resource_group=containerregistry_resource_group, - tag=tag_identifier, - repository=repository, - ) + self.import_image("library/hello-world", ["{}:{}".format(repository, tag_identifier)]) + # self.import_repo( + # containerregistry_endpoint, + # resource_group=containerregistry_resource_group, + # tag=tag_identifier, + # repository=repository, + # ) client = self.create_repository_client(containerregistry_endpoint, repository) diff --git a/sdk/containerregistry/azure-containerregistry/tests/testcase.py b/sdk/containerregistry/azure-containerregistry/tests/testcase.py index 297f1e7d2517..b627c0c565c9 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/testcase.py +++ b/sdk/containerregistry/azure-containerregistry/tests/testcase.py @@ -142,6 +142,8 @@ def sleep(self, t): def import_image(self, repository, tags): # type: (str, List[str]) -> None + # repository must be a docker hub repository + # tags is a List of repository/tag combos in the format : if not self.is_live: return @@ -168,7 +170,7 @@ def import_image(self, repository, tags): ) while not result.done(): - self.sleep(2) + pass def import_repo(self, endpoint, repository="hello-world", resource_group="fake_rg", tag=None): if not self.is_live: From f10b54d670a069bb4552c8f0c2ed1f8da4da7ee5 Mon Sep 17 00:00:00 2001 From: seankane-msft Date: Tue, 13 Apr 2021 10:06:19 -0400 Subject: [PATCH 18/26] cleaning up test-resources-post --- sdk/containerregistry/test-resources-post.ps1 | 5 ----- 1 file changed, 5 deletions(-) diff --git a/sdk/containerregistry/test-resources-post.ps1 b/sdk/containerregistry/test-resources-post.ps1 index 22907514fbca..ef185b45689f 100644 --- a/sdk/containerregistry/test-resources-post.ps1 +++ b/sdk/containerregistry/test-resources-post.ps1 @@ -12,11 +12,6 @@ if ($IsMacOS) { Update-Module -Name Az.ContainerRegistry -Force } -az acr import --name $DeploymentOutputs['CONTAINERREGISTRY_USERNAME'] --resource-group $DeploymentOutputs['CONTAINERREGISTRY_RESOURCE_GROUP'] docker.io/library/hello-world:latest -t library/hello-world:latest -t library/hello-world:latest:v1 -t library/hello-world:latest:v2 -t library/hello-world:latest:v3 -t library/hello-world:latest:v4 --force -az acr import --name $DeploymentOutputs['CONTAINERREGISTRY_USERNAME'] --resource-group $DeploymentOutputs['CONTAINERREGISTRY_RESOURCE_GROUP'] docker.io/library/alpine:latest -t library/alpine --force -az acr import --name $DeploymentOutputs['CONTAINERREGISTRY_USERNAME'] --resource-group $DeploymentOutputs['CONTAINERREGISTRY_RESOURCE_GROUP'] docker.io/library/busybox:latest -t library/busybox --force - - Import-AzContainerRegistryImage ` -ResourceGroupName $DeploymentOutputs['CONTAINERREGISTRY_RESOURCE_GROUP'] ` -RegistryName $DeploymentOutputs['CONTAINERREGISTRY_USERNAME'] ` From 84dedae34e63d9321d7174254212ffed1df04bb6 Mon Sep 17 00:00:00 2001 From: seankane-msft Date: Tue, 13 Apr 2021 11:01:40 -0400 Subject: [PATCH 19/26] more changes to test files --- .../tests/test_container_registry_client.py | 4 +- .../test_container_registry_client_async.py | 3 -- .../tests/test_container_repository_client.py | 31 ++++-------- .../test_container_repository_client_async.py | 29 +++++------- .../azure-containerregistry/tests/testcase.py | 47 ++++++------------- 5 files changed, 36 insertions(+), 78 deletions(-) diff --git a/sdk/containerregistry/azure-containerregistry/tests/test_container_registry_client.py b/sdk/containerregistry/azure-containerregistry/tests/test_container_registry_client.py index a83e589c9cba..5fd57612d1a9 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/test_container_registry_client.py +++ b/sdk/containerregistry/azure-containerregistry/tests/test_container_registry_client.py @@ -24,6 +24,7 @@ class TestContainerRegistryClient(ContainerRegistryTestClass): @acr_preparer() def test_list_repositories(self, containerregistry_endpoint): + self._clean_up(containerregistry_endpoint) client = self.create_registry_client(containerregistry_endpoint) repositories = client.list_repositories() @@ -64,9 +65,6 @@ def test_list_repositories_by_page(self, containerregistry_endpoint): def test_delete_repository(self, containerregistry_endpoint, containerregistry_resource_group): repository = self.get_resource_name("repo") self.import_image("library/hello-world", [repository]) - # self.import_repo( - # containerregistry_endpoint, resource_group=containerregistry_resource_group, repository=repository - # ) client = self.create_registry_client(containerregistry_endpoint) result = client.delete_repository(repository) diff --git a/sdk/containerregistry/azure-containerregistry/tests/test_container_registry_client_async.py b/sdk/containerregistry/azure-containerregistry/tests/test_container_registry_client_async.py index 888cc758ac90..ec953dd260b6 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/test_container_registry_client_async.py +++ b/sdk/containerregistry/azure-containerregistry/tests/test_container_registry_client_async.py @@ -64,9 +64,6 @@ async def test_list_repositories_by_page(self, containerregistry_endpoint): async def test_delete_repository(self, containerregistry_endpoint, containerregistry_resource_group): repository = self.get_resource_name("repo") self.import_image("library/hello-world", [repository]) - # self.import_repo( - # containerregistry_endpoint, resource_group=containerregistry_resource_group, repository=repository - # ) client = self.create_registry_client(containerregistry_endpoint) result = await client.delete_repository(repository) diff --git a/sdk/containerregistry/azure-containerregistry/tests/test_container_repository_client.py b/sdk/containerregistry/azure-containerregistry/tests/test_container_repository_client.py index e0c478f53d23..b363a719e966 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/test_container_repository_client.py +++ b/sdk/containerregistry/azure-containerregistry/tests/test_container_repository_client.py @@ -33,9 +33,6 @@ def test_delete_tag(self, containerregistry_endpoint, containerregistry_resource repo = self.get_resource_name("repo") tag = self.get_resource_name("tag") self.import_image("library/hello-world", ["{}:{}".format(repo, tag)]) - # self.import_repo( - # containerregistry_endpoint, resource_group=containerregistry_resource_group, repository=repo, tag=tag - # ) client = self.create_repository_client(containerregistry_endpoint, repo) @@ -202,12 +199,6 @@ def test_set_tag_properties(self, containerregistry_endpoint, containerregistry_ repository = self.get_resource_name("repo") tag_identifier = self.get_resource_name("tag") self.import_image("library/hello-world", ["{}:{}".format(repository, tag_identifier)]) - # self.import_repo( - # containerregistry_endpoint, - # resource_group=containerregistry_resource_group, - # tag=tag_identifier, - # repository=repository, - # ) client = self.create_repository_client(containerregistry_endpoint, repository) @@ -229,6 +220,16 @@ def test_set_tag_properties(self, containerregistry_endpoint, containerregistry_ assert not received.content_permissions.can_list assert not received.content_permissions.can_delete + client.set_tag_properties( + tag_identifier, + ContentPermissions( + can_delete=True, + can_list=True, + can_read=True, + can_write=True, + ), + ) + @acr_preparer() def test_set_tag_properties_does_not_exist(self, containerregistry_endpoint): client = self.create_repository_client(containerregistry_endpoint, self.get_resource_name("repo")) @@ -241,12 +242,6 @@ def test_set_manifest_properties(self, containerregistry_endpoint, containerregi repository = self.get_resource_name("reposetmani") tag_identifier = self.get_resource_name("tag") self.import_image("library/hello-world", ["{}:{}".format(repository, tag_identifier)]) - # self.import_repo( - # containerregistry_endpoint, - # resource_group=containerregistry_resource_group, - # tag=tag_identifier, - # repository=repository, - # ) client = self.create_repository_client(containerregistry_endpoint, repository) @@ -291,9 +286,6 @@ def test_set_manifest_properties_does_not_exist(self, containerregistry_endpoint @acr_preparer() def test_delete_repository(self, containerregistry_endpoint, containerregistry_resource_group): self.import_image("library/hello-world", [TO_BE_DELETED]) - # self.import_repo( - # containerregistry_endpoint, resource_group=containerregistry_resource_group, repository=TO_BE_DELETED - # ) reg_client = self.create_registry_client(containerregistry_endpoint) existing_repos = list(reg_client.list_repositories()) @@ -318,9 +310,6 @@ def test_delete_repository_doesnt_exist(self, containerregistry_endpoint): def test_delete_registry_artifact(self, containerregistry_endpoint, containerregistry_resource_group): repository = self.get_resource_name("repo") self.import_image("library/hello-world", [repository]) - # self.import_repo( - # containerregistry_endpoint, resource_group=containerregistry_resource_group, repository=repository - # ) repo_client = self.create_repository_client(containerregistry_endpoint, repository) diff --git a/sdk/containerregistry/azure-containerregistry/tests/test_container_repository_client_async.py b/sdk/containerregistry/azure-containerregistry/tests/test_container_repository_client_async.py index c2dc82cd99c7..d4ff752500c6 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/test_container_repository_client_async.py +++ b/sdk/containerregistry/azure-containerregistry/tests/test_container_repository_client_async.py @@ -109,9 +109,6 @@ async def test_delete_tag_does_not_exist(self, containerregistry_endpoint): @acr_preparer() async def test_delete_repository(self, containerregistry_endpoint, containerregistry_resource_group): self.import_image("library/hello-world", [TO_BE_DELETED]) - # self.import_repo( - # containerregistry_endpoint, resource_group=containerregistry_resource_group, repository=TO_BE_DELETED - # ) reg_client = self.create_registry_client(containerregistry_endpoint) existing_repos = [] @@ -142,9 +139,6 @@ async def test_delete_repository_doesnt_exist(self, containerregistry_endpoint): async def test_delete_registry_artifact(self, containerregistry_endpoint, containerregistry_resource_group): repository = self.get_resource_name("repo") self.import_image("library/hello-world", [repository]) - # self.import_repo( - # containerregistry_endpoint, resource_group=containerregistry_resource_group, repository=repository - # ) repo_client = self.create_repository_client(containerregistry_endpoint, repository) @@ -167,12 +161,6 @@ async def test_set_tag_properties(self, containerregistry_endpoint, containerreg repository = self.get_resource_name("repo") tag_identifier = self.get_resource_name("tag") self.import_image("library/hello-world", ["{}:{}".format(repository, tag_identifier)]) - # self.import_repo( - # containerregistry_endpoint, - # resource_group=containerregistry_resource_group, - # tag=tag_identifier, - # repository=repository, - # ) client = self.create_repository_client(containerregistry_endpoint, repository) @@ -194,6 +182,17 @@ async def test_set_tag_properties(self, containerregistry_endpoint, containerreg assert not received.content_permissions.can_list assert not received.content_permissions.can_delete + # Reset them + await client.set_tag_properties( + tag_identifier, + ContentPermissions( + can_delete=True, + can_list=True, + can_read=True, + can_write=True, + ), + ) + @acr_preparer() async def test_set_tag_properties_does_not_exist(self, containerregistry_endpoint): client = self.create_repository_client(containerregistry_endpoint, self.get_resource_name("repo")) @@ -206,12 +205,6 @@ async def test_set_manifest_properties(self, containerregistry_endpoint, contain repository = self.get_resource_name("reposet") tag_identifier = self.get_resource_name("tag") self.import_image("library/hello-world", ["{}:{}".format(repository, tag_identifier)]) - # self.import_repo( - # containerregistry_endpoint, - # resource_group=containerregistry_resource_group, - # tag=tag_identifier, - # repository=repository, - # ) client = self.create_repository_client(containerregistry_endpoint, repository) diff --git a/sdk/containerregistry/azure-containerregistry/tests/testcase.py b/sdk/containerregistry/azure-containerregistry/tests/testcase.py index b627c0c565c9..73c5b28aff3c 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/testcase.py +++ b/sdk/containerregistry/azure-containerregistry/tests/testcase.py @@ -134,7 +134,7 @@ class ContainerRegistryTestClass(AzureTestCase): def __init__(self, method_name): super(ContainerRegistryTestClass, self).__init__(method_name) self.recording_processors.append(AcrBodyReplacer()) - self.repository = "hello-world" + self.repository = "library/hello-world" def sleep(self, t): if self.is_live: @@ -172,34 +172,6 @@ def import_image(self, repository, tags): while not result.done(): pass - def import_repo(self, endpoint, repository="hello-world", resource_group="fake_rg", tag=None): - if not self.is_live: - return - - if tag: - repository = "{}:{}".format(repository, tag) - registry = endpoint.split(".")[0] - command = [ - "pwsh", - "-Command", - "Get-Module", - "Az", - # "Import-AzContainerRegistryImage", - # "-ResourceGroupName", - # "'{}'".format(resource_group), - # "-RegistryName", - # "'{}'".format(registry), - # "-SourceImage", - # "'library/hello-world'", - # "-SourceRegistryUri", - # "'registry.hub.docker.com'", - # "-TargetTag", - # "'{}'".format(repository), - # "-Mode", - # "'Force'", - ] - subprocess.check_call(command) - def _clean_up(self, endpoint): if not self.is_live: return @@ -217,10 +189,19 @@ def _clean_up(self, endpoint): except: pass - try: - reg_client.delete_repository(repo) - except: - pass + for manifest in repo_client.list_registry_artifacts(): + try: + p = manifest.content_permissions + p.can_delete = True + repo_client.set_manifest_properties(tag.digest, p) + except: + pass + + for repo in reg_client.list_repositories(): + try: + reg_client.delete_repository(repo) + except: + pass def get_credential(self): if self.is_live: From 415473132f410f5863d95557789fbd69bbf16910 Mon Sep 17 00:00:00 2001 From: seankane-msft Date: Tue, 13 Apr 2021 11:33:24 -0400 Subject: [PATCH 20/26] more corrections --- .../azure-containerregistry/tests/constants.py | 1 + .../tests/test_container_registry_client.py | 12 +++++------- .../tests/test_container_registry_client_async.py | 10 +++++----- .../tests/test_container_repository_client.py | 8 ++++---- .../tests/test_container_repository_client_async.py | 8 +++----- 5 files changed, 18 insertions(+), 21 deletions(-) diff --git a/sdk/containerregistry/azure-containerregistry/tests/constants.py b/sdk/containerregistry/azure-containerregistry/tests/constants.py index 5f3698046d44..06b58138b141 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/constants.py +++ b/sdk/containerregistry/azure-containerregistry/tests/constants.py @@ -6,3 +6,4 @@ TO_BE_DELETED = "to_be_deleted" DOES_NOT_EXIST = "does_not_exist" +HELLO_WORLD = "library/hello-world" diff --git a/sdk/containerregistry/azure-containerregistry/tests/test_container_registry_client.py b/sdk/containerregistry/azure-containerregistry/tests/test_container_registry_client.py index 5fd57612d1a9..63033137c0a7 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/test_container_registry_client.py +++ b/sdk/containerregistry/azure-containerregistry/tests/test_container_registry_client.py @@ -17,14 +17,13 @@ from azure.core.pipeline.transport import RequestsTransport from testcase import ContainerRegistryTestClass -from constants import TO_BE_DELETED +from constants import TO_BE_DELETED, HELLO_WORLD from preparer import acr_preparer class TestContainerRegistryClient(ContainerRegistryTestClass): @acr_preparer() def test_list_repositories(self, containerregistry_endpoint): - self._clean_up(containerregistry_endpoint) client = self.create_registry_client(containerregistry_endpoint) repositories = client.list_repositories() @@ -63,17 +62,16 @@ def test_list_repositories_by_page(self, containerregistry_endpoint): @acr_preparer() def test_delete_repository(self, containerregistry_endpoint, containerregistry_resource_group): - repository = self.get_resource_name("repo") - self.import_image("library/hello-world", [repository]) + self.import_image("library/hello-world", [TO_BE_DELETED]) client = self.create_registry_client(containerregistry_endpoint) - result = client.delete_repository(repository) + result = client.delete_repository(TO_BE_DELETED) assert isinstance(result, DeletedRepositoryResult) assert result.deleted_registry_artifact_digests is not None assert result.deleted_tags is not None for repo in client.list_repositories(): - if repo == repository: + if repo == TO_BE_DELETED: raise ValueError("Repository not deleted") @acr_preparer() @@ -92,7 +90,7 @@ def test_transport_closed_only_once(self, containerregistry_endpoint): pass assert transport.session is not None - with client.get_repository_client("hello-world") as repo_client: + with client.get_repository_client(HELLO_WORLD) as repo_client: assert transport.session is not None for r in client.list_repositories(): diff --git a/sdk/containerregistry/azure-containerregistry/tests/test_container_registry_client_async.py b/sdk/containerregistry/azure-containerregistry/tests/test_container_registry_client_async.py index ec953dd260b6..b298bec0e7ba 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/test_container_registry_client_async.py +++ b/sdk/containerregistry/azure-containerregistry/tests/test_container_registry_client_async.py @@ -18,7 +18,7 @@ from azure.core.pipeline.transport import AioHttpTransport from asynctestcase import AsyncContainerRegistryTestClass -from constants import TO_BE_DELETED +from constants import TO_BE_DELETED, HELLO_WORLD from preparer import acr_preparer @@ -63,16 +63,16 @@ async def test_list_repositories_by_page(self, containerregistry_endpoint): @acr_preparer() async def test_delete_repository(self, containerregistry_endpoint, containerregistry_resource_group): repository = self.get_resource_name("repo") - self.import_image("library/hello-world", [repository]) + self.import_image("library/hello-world", [TO_BE_DELETED]) client = self.create_registry_client(containerregistry_endpoint) - result = await client.delete_repository(repository) + result = await client.delete_repository(TO_BE_DELETED) assert isinstance(result, DeletedRepositoryResult) assert result.deleted_registry_artifact_digests is not None assert result.deleted_tags is not None async for repo in client.list_repositories(): - if repo == repository: + if repo == TO_BE_DELETED: raise ValueError("Repository not deleted") @acr_preparer() @@ -91,7 +91,7 @@ async def test_transport_closed_only_once(self, containerregistry_endpoint): pass assert transport.session is not None - repo_client = client.get_repository_client("hello-world") + repo_client = client.get_repository_client(HELLO_WORLD) async with repo_client: assert transport.session is not None diff --git a/sdk/containerregistry/azure-containerregistry/tests/test_container_repository_client.py b/sdk/containerregistry/azure-containerregistry/tests/test_container_repository_client.py index b363a719e966..8441e05f762b 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/test_container_repository_client.py +++ b/sdk/containerregistry/azure-containerregistry/tests/test_container_repository_client.py @@ -23,7 +23,7 @@ from azure.core.paging import ItemPaged from testcase import ContainerRegistryTestClass, AcrBodyReplacer, FakeTokenCredential -from constants import TO_BE_DELETED, DOES_NOT_EXIST +from constants import TO_BE_DELETED, DOES_NOT_EXIST, HELLO_WORLD from preparer import acr_preparer @@ -46,14 +46,14 @@ def test_delete_tag(self, containerregistry_endpoint, containerregistry_resource @acr_preparer() def test_delete_tag_does_not_exist(self, containerregistry_endpoint): - client = self.create_repository_client(containerregistry_endpoint, "hello-world") + client = self.create_repository_client(containerregistry_endpoint, HELLO_WORLD) with pytest.raises(ResourceNotFoundError): client.delete_tag(TO_BE_DELETED) @acr_preparer() def test_get_properties(self, containerregistry_endpoint): - repo_client = self.create_repository_client(containerregistry_endpoint, "hello-world") + repo_client = self.create_repository_client(containerregistry_endpoint, HELLO_WORLD) properties = repo_client.get_properties() assert isinstance(properties.content_permissions, ContentPermissions) @@ -235,7 +235,7 @@ def test_set_tag_properties_does_not_exist(self, containerregistry_endpoint): client = self.create_repository_client(containerregistry_endpoint, self.get_resource_name("repo")) with pytest.raises(ResourceNotFoundError): - client.set_tag_properties("does_not_exist", ContentPermissions(can_delete=False)) + client.set_tag_properties(DOES_NOT_EXIST, ContentPermissions(can_delete=False)) @acr_preparer() def test_set_manifest_properties(self, containerregistry_endpoint, containerregistry_resource_group): diff --git a/sdk/containerregistry/azure-containerregistry/tests/test_container_repository_client_async.py b/sdk/containerregistry/azure-containerregistry/tests/test_container_repository_client_async.py index d4ff752500c6..6ffef68760f5 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/test_container_repository_client_async.py +++ b/sdk/containerregistry/azure-containerregistry/tests/test_container_repository_client_async.py @@ -22,7 +22,7 @@ from asynctestcase import AsyncContainerRegistryTestClass from preparer import acr_preparer -from constants import TO_BE_DELETED +from constants import TO_BE_DELETED, DOES_NOT_EXIST, HELLO_WORLD class TestContainerRepositoryClient(AsyncContainerRegistryTestClass): @@ -101,7 +101,7 @@ async def test_delete_tag(self, containerregistry_endpoint, containerregistry_re @acr_preparer() async def test_delete_tag_does_not_exist(self, containerregistry_endpoint): - client = self.create_repository_client(containerregistry_endpoint, "hello-world") + client = self.create_repository_client(containerregistry_endpoint, HELLO_WORLD) with pytest.raises(ResourceNotFoundError): await client.delete_tag(TO_BE_DELETED) @@ -129,8 +129,6 @@ async def test_delete_repository(self, containerregistry_endpoint, containerregi @acr_preparer() async def test_delete_repository_doesnt_exist(self, containerregistry_endpoint): - DOES_NOT_EXIST = "does_not_exist" - repo_client = self.create_repository_client(containerregistry_endpoint, DOES_NOT_EXIST) with pytest.raises(ResourceNotFoundError): await repo_client.delete() @@ -198,7 +196,7 @@ async def test_set_tag_properties_does_not_exist(self, containerregistry_endpoin client = self.create_repository_client(containerregistry_endpoint, self.get_resource_name("repo")) with pytest.raises(ResourceNotFoundError): - await client.set_tag_properties("does_not_exist", ContentPermissions(can_delete=False)) + await client.set_tag_properties(DOES_NOT_EXIST, ContentPermissions(can_delete=False)) @acr_preparer() async def test_set_manifest_properties(self, containerregistry_endpoint, containerregistry_resource_group): From 1acad8cdd27b8adc6a9340c67582c24084502a20 Mon Sep 17 00:00:00 2001 From: seankane-msft Date: Tue, 13 Apr 2021 11:56:59 -0400 Subject: [PATCH 21/26] making hello-world a constant too --- .../tests/test_container_registry_client.py | 2 +- .../tests/test_container_registry_client_async.py | 2 +- .../tests/test_container_repository_client.py | 10 +++++----- .../tests/test_container_repository_client_async.py | 13 ++++++------- sdk/containerregistry/test-resources-post.ps1 | 1 + 5 files changed, 14 insertions(+), 14 deletions(-) diff --git a/sdk/containerregistry/azure-containerregistry/tests/test_container_registry_client.py b/sdk/containerregistry/azure-containerregistry/tests/test_container_registry_client.py index 63033137c0a7..1f914a87b6b7 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/test_container_registry_client.py +++ b/sdk/containerregistry/azure-containerregistry/tests/test_container_registry_client.py @@ -62,7 +62,7 @@ def test_list_repositories_by_page(self, containerregistry_endpoint): @acr_preparer() def test_delete_repository(self, containerregistry_endpoint, containerregistry_resource_group): - self.import_image("library/hello-world", [TO_BE_DELETED]) + self.import_image(HELLO_WORLD, [TO_BE_DELETED]) client = self.create_registry_client(containerregistry_endpoint) result = client.delete_repository(TO_BE_DELETED) diff --git a/sdk/containerregistry/azure-containerregistry/tests/test_container_registry_client_async.py b/sdk/containerregistry/azure-containerregistry/tests/test_container_registry_client_async.py index b298bec0e7ba..4535b41f6540 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/test_container_registry_client_async.py +++ b/sdk/containerregistry/azure-containerregistry/tests/test_container_registry_client_async.py @@ -63,7 +63,7 @@ async def test_list_repositories_by_page(self, containerregistry_endpoint): @acr_preparer() async def test_delete_repository(self, containerregistry_endpoint, containerregistry_resource_group): repository = self.get_resource_name("repo") - self.import_image("library/hello-world", [TO_BE_DELETED]) + self.import_image(HELLO_WORLD, [TO_BE_DELETED]) client = self.create_registry_client(containerregistry_endpoint) result = await client.delete_repository(TO_BE_DELETED) diff --git a/sdk/containerregistry/azure-containerregistry/tests/test_container_repository_client.py b/sdk/containerregistry/azure-containerregistry/tests/test_container_repository_client.py index 8441e05f762b..1560013f5417 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/test_container_repository_client.py +++ b/sdk/containerregistry/azure-containerregistry/tests/test_container_repository_client.py @@ -32,7 +32,7 @@ class TestContainerRepositoryClient(ContainerRegistryTestClass): def test_delete_tag(self, containerregistry_endpoint, containerregistry_resource_group): repo = self.get_resource_name("repo") tag = self.get_resource_name("tag") - self.import_image("library/hello-world", ["{}:{}".format(repo, tag)]) + self.import_image(HELLO_WORLD, ["{}:{}".format(repo, tag)]) client = self.create_repository_client(containerregistry_endpoint, repo) @@ -198,7 +198,7 @@ def test_list_tags_ascending(self, containerregistry_endpoint): def test_set_tag_properties(self, containerregistry_endpoint, containerregistry_resource_group): repository = self.get_resource_name("repo") tag_identifier = self.get_resource_name("tag") - self.import_image("library/hello-world", ["{}:{}".format(repository, tag_identifier)]) + self.import_image(HELLO_WORLD, ["{}:{}".format(repository, tag_identifier)]) client = self.create_repository_client(containerregistry_endpoint, repository) @@ -241,7 +241,7 @@ def test_set_tag_properties_does_not_exist(self, containerregistry_endpoint): def test_set_manifest_properties(self, containerregistry_endpoint, containerregistry_resource_group): repository = self.get_resource_name("reposetmani") tag_identifier = self.get_resource_name("tag") - self.import_image("library/hello-world", ["{}:{}".format(repository, tag_identifier)]) + self.import_image(HELLO_WORLD, ["{}:{}".format(repository, tag_identifier)]) client = self.create_repository_client(containerregistry_endpoint, repository) @@ -285,7 +285,7 @@ def test_set_manifest_properties_does_not_exist(self, containerregistry_endpoint @acr_preparer() def test_delete_repository(self, containerregistry_endpoint, containerregistry_resource_group): - self.import_image("library/hello-world", [TO_BE_DELETED]) + self.import_image(HELLO_WORLD, [TO_BE_DELETED]) reg_client = self.create_registry_client(containerregistry_endpoint) existing_repos = list(reg_client.list_repositories()) @@ -309,7 +309,7 @@ def test_delete_repository_doesnt_exist(self, containerregistry_endpoint): @acr_preparer() def test_delete_registry_artifact(self, containerregistry_endpoint, containerregistry_resource_group): repository = self.get_resource_name("repo") - self.import_image("library/hello-world", [repository]) + self.import_image(HELLO_WORLD, [repository]) repo_client = self.create_repository_client(containerregistry_endpoint, repository) diff --git a/sdk/containerregistry/azure-containerregistry/tests/test_container_repository_client_async.py b/sdk/containerregistry/azure-containerregistry/tests/test_container_repository_client_async.py index 6ffef68760f5..8f63d94cff95 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/test_container_repository_client_async.py +++ b/sdk/containerregistry/azure-containerregistry/tests/test_container_repository_client_async.py @@ -85,10 +85,9 @@ async def test_list_tags_by_page(self, containerregistry_endpoint): @acr_preparer() async def test_delete_tag(self, containerregistry_endpoint, containerregistry_resource_group): - repo = "library/hello-world" - self.import_image(repo, ["{}:{}".format(repo, TO_BE_DELETED)]) + self.import_image(repo, ["{}:{}".format(HELLO_WORLD, TO_BE_DELETED)]) - client = self.create_repository_client(containerregistry_endpoint, repo) + client = self.create_repository_client(containerregistry_endpoint, HELLO_WORLD) tag = await client.get_tag_properties(TO_BE_DELETED) assert tag is not None @@ -108,7 +107,7 @@ async def test_delete_tag_does_not_exist(self, containerregistry_endpoint): @acr_preparer() async def test_delete_repository(self, containerregistry_endpoint, containerregistry_resource_group): - self.import_image("library/hello-world", [TO_BE_DELETED]) + self.import_image(HELLO_WORLD, [TO_BE_DELETED]) reg_client = self.create_registry_client(containerregistry_endpoint) existing_repos = [] @@ -136,7 +135,7 @@ async def test_delete_repository_doesnt_exist(self, containerregistry_endpoint): @acr_preparer() async def test_delete_registry_artifact(self, containerregistry_endpoint, containerregistry_resource_group): repository = self.get_resource_name("repo") - self.import_image("library/hello-world", [repository]) + self.import_image(HELLO_WORLD, [repository]) repo_client = self.create_repository_client(containerregistry_endpoint, repository) @@ -158,7 +157,7 @@ async def test_delete_registry_artifact(self, containerregistry_endpoint, contai async def test_set_tag_properties(self, containerregistry_endpoint, containerregistry_resource_group): repository = self.get_resource_name("repo") tag_identifier = self.get_resource_name("tag") - self.import_image("library/hello-world", ["{}:{}".format(repository, tag_identifier)]) + self.import_image(HELLO_WORLD, ["{}:{}".format(repository, tag_identifier)]) client = self.create_repository_client(containerregistry_endpoint, repository) @@ -202,7 +201,7 @@ async def test_set_tag_properties_does_not_exist(self, containerregistry_endpoin async def test_set_manifest_properties(self, containerregistry_endpoint, containerregistry_resource_group): repository = self.get_resource_name("reposet") tag_identifier = self.get_resource_name("tag") - self.import_image("library/hello-world", ["{}:{}".format(repository, tag_identifier)]) + self.import_image(HELLO_WORLD, ["{}:{}".format(repository, tag_identifier)]) client = self.create_repository_client(containerregistry_endpoint, repository) diff --git a/sdk/containerregistry/test-resources-post.ps1 b/sdk/containerregistry/test-resources-post.ps1 index ef185b45689f..7453e6982dd2 100644 --- a/sdk/containerregistry/test-resources-post.ps1 +++ b/sdk/containerregistry/test-resources-post.ps1 @@ -10,6 +10,7 @@ param ( if ($IsMacOS) { Update-Module -Name Az.ContainerRegistry -Force + Import-Module Az.ContainerRegistry } Import-AzContainerRegistryImage ` From 6c42094f5acd1bf80161dfba1a482aa2774a024d Mon Sep 17 00:00:00 2001 From: seankane-msft Date: Tue, 13 Apr 2021 12:28:35 -0400 Subject: [PATCH 22/26] fixing up recordings --- ...egistry_client.test_delete_repository.yaml | 137 ++- ...test_delete_repository_does_not_exist.yaml | 14 +- ...egistry_client.test_list_repositories.yaml | 20 +- ...client.test_list_repositories_by_page.yaml | 907 +----------------- ...lient.test_transport_closed_only_once.yaml | 40 +- ...y_client_async.test_delete_repository.yaml | 153 ++- ...test_delete_repository_does_not_exist.yaml | 23 +- ...y_client_async.test_list_repositories.yaml | 29 +- ..._async.test_list_repositories_by_page.yaml | 669 ++----------- ...async.test_transport_closed_only_once.yaml | 58 +- ..._client.test_delete_registry_artifact.yaml | 211 ++-- ...ository_client.test_delete_repository.yaml | 145 ++- ...t.test_delete_repository_doesnt_exist.yaml | 14 +- ...ner_repository_client.test_delete_tag.yaml | 129 ++- ...client.test_delete_tag_does_not_exist.yaml | 28 +- ...repository_client.test_get_properties.yaml | 34 +- ...test_get_registry_artifact_properties.yaml | 82 +- ...tainer_repository_client.test_get_tag.yaml | 38 +- ...y_client.test_list_registry_artifacts.yaml | 78 +- ...est_list_registry_artifacts_ascending.yaml | 96 +- ....test_list_registry_artifacts_by_page.yaml | 214 ++--- ...st_list_registry_artifacts_descending.yaml | 92 +- ...iner_repository_client.test_list_tags.yaml | 54 +- ...itory_client.test_list_tags_ascending.yaml | 54 +- ...ository_client.test_list_tags_by_page.yaml | 388 +++++++- ...tory_client.test_list_tags_descending.yaml | 54 +- ...y_client.test_set_manifest_properties.yaml | 203 ++-- ...et_manifest_properties_does_not_exist.yaml | 12 +- ...sitory_client.test_set_tag_properties.yaml | 302 +++++- ...est_set_tag_properties_does_not_exist.yaml | 12 +- ...t_async.test_delete_registry_artifact.yaml | 230 +++-- ...y_client_async.test_delete_repository.yaml | 172 +++- ...c.test_delete_repository_doesnt_exist.yaml | 23 +- ...pository_client_async.test_delete_tag.yaml | 48 +- ..._async.test_delete_tag_does_not_exist.yaml | 30 +- ...nt_async.test_list_registry_artifacts.yaml | 85 +- ...est_list_registry_artifacts_ascending.yaml | 103 +- ....test_list_registry_artifacts_by_page.yaml | 249 ++--- ...st_list_registry_artifacts_descending.yaml | 99 +- ...epository_client_async.test_list_tags.yaml | 61 +- ...client_async.test_list_tags_ascending.yaml | 61 +- ...y_client_async.test_list_tags_by_page.yaml | 285 +++++- ...lient_async.test_list_tags_descending.yaml | 61 +- ...nt_async.test_set_manifest_properties.yaml | 227 +++-- ...et_manifest_properties_does_not_exist.yaml | 21 +- ..._client_async.test_set_tag_properties.yaml | 266 ++++- ...est_set_tag_properties_does_not_exist.yaml | 21 +- .../test_container_repository_client_async.py | 2 +- 48 files changed, 3461 insertions(+), 2873 deletions(-) diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_delete_repository.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_delete_repository.yaml index 65ca1d2a9a59..3b0753d55543 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_delete_repository.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_delete_repository.yaml @@ -1,4 +1,93 @@ interactions: +- request: + body: '{"source": {"registryUri": "registry.hub.docker.com", "sourceImage": "library/hello-world"}, + "targetTags": ["to_be_deleted"], "mode": "Force"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '142' + Content-Type: + - application/json + User-Agent: + - azsdk-python-azure-mgmt-containerregistry/8.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://management.azure.com/subscriptions/2cd617ea-1866-46b1-90e3-fffb087ebf9b/resourceGroups/fake_rg/providers/Microsoft.ContainerRegistry/registries/seankane/importImage?api-version=2019-05-01 + response: + body: + string: 'null' + headers: + cache-control: + - no-cache + content-length: + - '4' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 13 Apr 2021 15:57:07 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/2cd617ea-1866-46b1-90e3-fffb087ebf9b/providers/Microsoft.ContainerRegistry/locations/WESTUS2/operationResults/registries-e542e949-9c70-11eb-9c3f-002b67128e4c?api-version=2019-05-01 + pragma: + - no-cache + server: + - Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-ms-ratelimit-remaining-subscription-writes: + - '1199' + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-azure-mgmt-containerregistry/8.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/2cd617ea-1866-46b1-90e3-fffb087ebf9b/providers/Microsoft.ContainerRegistry/locations/WESTUS2/operationResults/registries-e542e949-9c70-11eb-9c3f-002b67128e4c?api-version=2019-05-01 + response: + body: + string: '{"status": "Succeeded"}' + headers: + cache-control: + - no-cache + content-length: + - '22' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 13 Apr 2021 15:57:20 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + status: + code: 200 + message: OK - request: body: null headers: @@ -13,11 +102,11 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://fake_url.azurecr.io/acr/v1/repo530d1618 + uri: https://fake_url.azurecr.io/acr/v1/to_be_deleted response: body: string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, - visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"repo530d1618","Action":"delete"}]}]} + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"to_be_deleted","Action":"delete"}]}]} ' headers: @@ -29,11 +118,11 @@ interactions: connection: - keep-alive content-length: - - '208' + - '209' content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:56:09 GMT + - Tue, 13 Apr 2021 15:57:21 GMT docker-distribution-api-version: - registry/2.0 server: @@ -42,7 +131,7 @@ interactions: - max-age=31536000; includeSubDomains - max-age=31536000; includeSubDomains www-authenticate: - - Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:repo530d1618:delete" + - Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:to_be_deleted:delete" x-content-type-options: - nosniff status: @@ -74,7 +163,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:56:11 GMT + - Tue, 13 Apr 2021 15:57:22 GMT server: - openresty strict-transport-security: @@ -82,12 +171,12 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '333.183333' + - '166.65' status: code: 200 message: OK - request: - body: grant_type=refresh_token&service=fake_url.azurecr.io&scope=repository%3Arepo530d1618%3Adelete&refresh_token=REDACTED + body: grant_type=refresh_token&service=fake_url.azurecr.io&scope=repository%3Ato_be_deleted%3Adelete&refresh_token=REDACTED headers: Accept: - application/json @@ -96,7 +185,7 @@ interactions: Connection: - keep-alive Content-Length: - - '1073' + - '1074' Content-Type: - application/x-www-form-urlencoded User-Agent: @@ -112,7 +201,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:56:12 GMT + - Tue, 13 Apr 2021 15:57:22 GMT server: - openresty strict-transport-security: @@ -120,7 +209,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.933333' + - '166.633333' status: code: 200 message: OK @@ -138,7 +227,7 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://fake_url.azurecr.io/acr/v1/repo530d1618 + uri: https://fake_url.azurecr.io/acr/v1/to_be_deleted response: body: string: '{"manifestsDeleted": ["sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", @@ -165,7 +254,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:56:14 GMT + - Tue, 13 Apr 2021 15:57:26 GMT docker-distribution-api-version: - registry/2.0 server: @@ -176,7 +265,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-calls-per-second: - - '32.000000' + - '8.000000' status: code: 202 message: Accepted @@ -212,7 +301,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:56:14 GMT + - Tue, 13 Apr 2021 15:57:26 GMT docker-distribution-api-version: - registry/2.0 server: @@ -253,7 +342,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:56:14 GMT + - Tue, 13 Apr 2021 15:57:26 GMT server: - openresty strict-transport-security: @@ -261,7 +350,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.916667' + - '166.6' status: code: 200 message: OK @@ -291,7 +380,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:56:15 GMT + - Tue, 13 Apr 2021 15:57:26 GMT server: - openresty strict-transport-security: @@ -299,7 +388,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.9' + - '166.583333' status: code: 200 message: OK @@ -318,10 +407,8 @@ interactions: uri: https://fake_url.azurecr.io/acr/v1/_catalog response: body: - string: '{"repositories": ["alpine/git", "debian", "hello-world", "library/hello-world", - "repo160e197b", "repo2e8319c5", "repo308e19dd", "repo6ce51658", "repo9b321760", - "repo_set160e197b", "repo_set_manib7cc1bf8", "repob7cc1bf8", "repod2be1c42", - "repoeb7113db", "reposet160e197b", "reposetmanib7cc1bf8", "ubuntu"]}' + string: '{"repositories": ["library/alpine", "library/busybox", "library/hello-world", + "repo2e8319c5", "repo308e19dd", "repo9b321760", "repod2be1c42", "repoeb7113db"]}' headers: access-control-expose-headers: - Docker-Content-Digest @@ -331,11 +418,11 @@ interactions: connection: - keep-alive content-length: - - '289' + - '151' content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:56:15 GMT + - Tue, 13 Apr 2021 15:57:26 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_delete_repository_does_not_exist.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_delete_repository_does_not_exist.yaml index f13e2e630df9..02740e9142d0 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_delete_repository_does_not_exist.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_delete_repository_does_not_exist.yaml @@ -33,7 +33,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:56:15 GMT + - Tue, 13 Apr 2021 15:57:27 GMT docker-distribution-api-version: - registry/2.0 server: @@ -74,7 +74,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:56:17 GMT + - Tue, 13 Apr 2021 15:57:28 GMT server: - openresty strict-transport-security: @@ -82,7 +82,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '333.033333' + - '166.55' status: code: 200 message: OK @@ -112,7 +112,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:56:18 GMT + - Tue, 13 Apr 2021 15:57:28 GMT server: - openresty strict-transport-security: @@ -120,7 +120,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.966667' + - '166.2' status: code: 200 message: OK @@ -156,7 +156,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:56:18 GMT + - Tue, 13 Apr 2021 15:57:29 GMT docker-distribution-api-version: - registry/2.0 server: @@ -167,7 +167,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-calls-per-second: - - '32.000000' + - '8.000000' status: code: 404 message: Not Found diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_list_repositories.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_list_repositories.yaml index 07e751657370..bf85e08f6ee6 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_list_repositories.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_list_repositories.yaml @@ -31,7 +31,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:56:18 GMT + - Tue, 13 Apr 2021 15:57:29 GMT docker-distribution-api-version: - registry/2.0 server: @@ -72,7 +72,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:56:20 GMT + - Tue, 13 Apr 2021 15:57:31 GMT server: - openresty strict-transport-security: @@ -80,7 +80,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.883333' + - '166.65' status: code: 200 message: OK @@ -110,7 +110,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:56:20 GMT + - Tue, 13 Apr 2021 15:57:31 GMT server: - openresty strict-transport-security: @@ -118,7 +118,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.866667' + - '166.633333' status: code: 200 message: OK @@ -137,10 +137,8 @@ interactions: uri: https://fake_url.azurecr.io/acr/v1/_catalog response: body: - string: '{"repositories": ["alpine/git", "debian", "hello-world", "library/hello-world", - "repo160e197b", "repo2e8319c5", "repo308e19dd", "repo6ce51658", "repo9b321760", - "repo_set160e197b", "repo_set_manib7cc1bf8", "repob7cc1bf8", "repod2be1c42", - "repoeb7113db", "reposet160e197b", "reposetmanib7cc1bf8", "ubuntu"]}' + string: '{"repositories": ["library/alpine", "library/busybox", "library/hello-world", + "repo2e8319c5", "repo308e19dd", "repo9b321760", "repod2be1c42", "repoeb7113db"]}' headers: access-control-expose-headers: - Docker-Content-Digest @@ -150,11 +148,11 @@ interactions: connection: - keep-alive content-length: - - '289' + - '151' content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:56:21 GMT + - Tue, 13 Apr 2021 15:57:31 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_list_repositories_by_page.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_list_repositories_by_page.yaml index 5383f9f92818..46e7429f0612 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_list_repositories_by_page.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_list_repositories_by_page.yaml @@ -31,7 +31,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:56:21 GMT + - Tue, 13 Apr 2021 15:57:32 GMT docker-distribution-api-version: - registry/2.0 server: @@ -72,7 +72,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:56:23 GMT + - Tue, 13 Apr 2021 15:57:33 GMT server: - openresty strict-transport-security: @@ -80,7 +80,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '333.316667' + - '166.466667' status: code: 200 message: OK @@ -110,7 +110,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:56:23 GMT + - Tue, 13 Apr 2021 15:57:33 GMT server: - openresty strict-transport-security: @@ -118,7 +118,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '333.3' + - '166.45' status: code: 200 message: OK @@ -137,7 +137,7 @@ interactions: uri: https://fake_url.azurecr.io/acr/v1/_catalog?n=2 response: body: - string: '{"repositories": ["alpine/git", "debian"]}' + string: '{"repositories": ["library/alpine", "library/busybox"]}' headers: access-control-expose-headers: - Docker-Content-Digest @@ -147,15 +147,15 @@ interactions: connection: - keep-alive content-length: - - '41' + - '54' content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:56:23 GMT + - Tue, 13 Apr 2021 15:57:33 GMT docker-distribution-api-version: - registry/2.0 link: - - ; rel="next" + - ; rel="next" server: - openresty strict-transport-security: @@ -178,7 +178,7 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=debian&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=library%2Fbusybox&n=2&orderby= response: body: string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, @@ -198,7 +198,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:56:23 GMT + - Tue, 13 Apr 2021 15:57:33 GMT docker-distribution-api-version: - registry/2.0 server: @@ -239,7 +239,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:56:24 GMT + - Tue, 13 Apr 2021 15:57:34 GMT server: - openresty strict-transport-security: @@ -247,7 +247,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '333.283333' + - '166.433333' status: code: 200 message: OK @@ -277,7 +277,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:56:24 GMT + - Tue, 13 Apr 2021 15:57:34 GMT server: - openresty strict-transport-security: @@ -285,7 +285,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '333.266667' + - '166.416667' status: code: 200 message: OK @@ -301,10 +301,10 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=debian&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=library%2Fbusybox&n=2&orderby= response: body: - string: '{"repositories": ["hello-world", "library/hello-world"]}' + string: '{"repositories": ["library/hello-world", "repo2e8319c5"]}' headers: access-control-expose-headers: - Docker-Content-Digest @@ -314,178 +314,11 @@ interactions: connection: - keep-alive content-length: - - '55' + - '56' content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:56:24 GMT - docker-distribution-api-version: - - registry/2.0 - link: - - ; rel="next" - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=library%2Fhello-world&n=2&orderby= - response: - body: - string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, - visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"registry","Name":"catalog","Action":"*"}]}]} - - ' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '196' - content-type: - - application/json; charset=utf-8 - date: - - Fri, 09 Apr 2021 14:56:24 GMT - docker-distribution-api-version: - - registry/2.0 - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - www-authenticate: - - Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="registry:catalog:*" - x-content-type-options: - - nosniff - status: - code: 401 - message: Unauthorized -- request: - body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '1343' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/exchange - response: - body: - string: '{"refresh_token": "REDACTED"}' - headers: - connection: - - keep-alive - content-type: - - application/json; charset=utf-8 - date: - - Fri, 09 Apr 2021 14:56:25 GMT - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - x-ms-ratelimit-remaining-calls-per-second: - - '333.25' - status: - code: 200 - message: OK -- request: - body: grant_type=refresh_token&service=fake_url.azurecr.io&scope=registry%3Acatalog%3A%2A&refresh_token=REDACTED - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '1063' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: - - keep-alive - content-type: - - application/json; charset=utf-8 - date: - - Fri, 09 Apr 2021 14:56:25 GMT - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - x-ms-ratelimit-remaining-calls-per-second: - - '333.233333' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=library%2Fhello-world&n=2&orderby= - response: - body: - string: '{"repositories": ["repo160e197b", "repo2e8319c5"]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '49' - content-type: - - application/json; charset=utf-8 - date: - - Fri, 09 Apr 2021 14:56:25 GMT + - Tue, 13 Apr 2021 15:57:34 GMT docker-distribution-api-version: - registry/2.0 link: @@ -532,7 +365,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:56:25 GMT + - Tue, 13 Apr 2021 15:57:34 GMT docker-distribution-api-version: - registry/2.0 server: @@ -573,7 +406,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:56:25 GMT + - Tue, 13 Apr 2021 15:57:34 GMT server: - openresty strict-transport-security: @@ -581,7 +414,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '333.216667' + - '166.4' status: code: 200 message: OK @@ -611,7 +444,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:56:26 GMT + - Tue, 13 Apr 2021 15:57:35 GMT server: - openresty strict-transport-security: @@ -619,7 +452,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '333.2' + - '166.383333' status: code: 200 message: OK @@ -638,7 +471,7 @@ interactions: uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo2e8319c5&n=2&orderby= response: body: - string: '{"repositories": ["repo308e19dd", "repo6ce51658"]}' + string: '{"repositories": ["repo308e19dd", "repo9b321760"]}' headers: access-control-expose-headers: - Docker-Content-Digest @@ -652,11 +485,11 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:56:26 GMT + - Tue, 13 Apr 2021 15:57:35 GMT docker-distribution-api-version: - registry/2.0 link: - - ; rel="next" + - ; rel="next" server: - openresty strict-transport-security: @@ -679,7 +512,7 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo6ce51658&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo9b321760&n=2&orderby= response: body: string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, @@ -699,7 +532,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:56:26 GMT + - Tue, 13 Apr 2021 15:57:35 GMT docker-distribution-api-version: - registry/2.0 server: @@ -740,7 +573,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:56:26 GMT + - Tue, 13 Apr 2021 15:57:35 GMT server: - openresty strict-transport-security: @@ -748,7 +581,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '333.183333' + - '166.366667' status: code: 200 message: OK @@ -778,7 +611,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:56:27 GMT + - Tue, 13 Apr 2021 15:57:35 GMT server: - openresty strict-transport-security: @@ -786,51 +619,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '333.166667' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo6ce51658&n=2&orderby= - response: - body: - string: '{"repositories": ["repo9b321760", "repo_set160e197b"]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '53' - content-type: - - application/json; charset=utf-8 - date: - - Fri, 09 Apr 2021 14:56:27 GMT - docker-distribution-api-version: - - registry/2.0 - link: - - ; rel="next" - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff + - '166.35' status: code: 200 message: OK @@ -846,300 +635,10 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo_set160e197b&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo9b321760&n=2&orderby= response: body: - string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, - visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"registry","Name":"catalog","Action":"*"}]}]} - - ' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '196' - content-type: - - application/json; charset=utf-8 - date: - - Fri, 09 Apr 2021 14:56:27 GMT - docker-distribution-api-version: - - registry/2.0 - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - www-authenticate: - - Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="registry:catalog:*" - x-content-type-options: - - nosniff - status: - code: 401 - message: Unauthorized -- request: - body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '1343' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/exchange - response: - body: - string: '{"refresh_token": "REDACTED"}' - headers: - connection: - - keep-alive - content-type: - - application/json; charset=utf-8 - date: - - Fri, 09 Apr 2021 14:56:28 GMT - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - x-ms-ratelimit-remaining-calls-per-second: - - '333.15' - status: - code: 200 - message: OK -- request: - body: grant_type=refresh_token&service=fake_url.azurecr.io&scope=registry%3Acatalog%3A%2A&refresh_token=REDACTED - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '1063' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: - - keep-alive - content-type: - - application/json; charset=utf-8 - date: - - Fri, 09 Apr 2021 14:56:28 GMT - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - x-ms-ratelimit-remaining-calls-per-second: - - '333.133333' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo_set160e197b&n=2&orderby= - response: - body: - string: '{"repositories": ["repo_set_manib7cc1bf8", "repob7cc1bf8"]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '58' - content-type: - - application/json; charset=utf-8 - date: - - Fri, 09 Apr 2021 14:56:28 GMT - docker-distribution-api-version: - - registry/2.0 - link: - - ; rel="next" - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repob7cc1bf8&n=2&orderby= - response: - body: - string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, - visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"registry","Name":"catalog","Action":"*"}]}]} - - ' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '196' - content-type: - - application/json; charset=utf-8 - date: - - Fri, 09 Apr 2021 14:56:28 GMT - docker-distribution-api-version: - - registry/2.0 - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - www-authenticate: - - Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="registry:catalog:*" - x-content-type-options: - - nosniff - status: - code: 401 - message: Unauthorized -- request: - body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '1343' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/exchange - response: - body: - string: '{"refresh_token": "REDACTED"}' - headers: - connection: - - keep-alive - content-type: - - application/json; charset=utf-8 - date: - - Fri, 09 Apr 2021 14:56:29 GMT - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - x-ms-ratelimit-remaining-calls-per-second: - - '333.116667' - status: - code: 200 - message: OK -- request: - body: grant_type=refresh_token&service=fake_url.azurecr.io&scope=registry%3Acatalog%3A%2A&refresh_token=REDACTED - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '1063' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: - - keep-alive - content-type: - - application/json; charset=utf-8 - date: - - Fri, 09 Apr 2021 14:56:29 GMT - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - x-ms-ratelimit-remaining-calls-per-second: - - '333.1' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repob7cc1bf8&n=2&orderby= - response: - body: - string: '{"repositories": ["repod2be1c42", "repoeb7113db"]}' + string: '{"repositories": ["repod2be1c42", "repoeb7113db"]}' headers: access-control-expose-headers: - Docker-Content-Digest @@ -1153,341 +652,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:56:29 GMT - docker-distribution-api-version: - - registry/2.0 - link: - - ; rel="next" - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoeb7113db&n=2&orderby= - response: - body: - string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, - visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"registry","Name":"catalog","Action":"*"}]}]} - - ' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '196' - content-type: - - application/json; charset=utf-8 - date: - - Fri, 09 Apr 2021 14:56:30 GMT - docker-distribution-api-version: - - registry/2.0 - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - www-authenticate: - - Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="registry:catalog:*" - x-content-type-options: - - nosniff - status: - code: 401 - message: Unauthorized -- request: - body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '1343' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/exchange - response: - body: - string: '{"refresh_token": "REDACTED"}' - headers: - connection: - - keep-alive - content-type: - - application/json; charset=utf-8 - date: - - Fri, 09 Apr 2021 14:56:30 GMT - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - x-ms-ratelimit-remaining-calls-per-second: - - '333.083333' - status: - code: 200 - message: OK -- request: - body: grant_type=refresh_token&service=fake_url.azurecr.io&scope=registry%3Acatalog%3A%2A&refresh_token=REDACTED - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '1063' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: - - keep-alive - content-type: - - application/json; charset=utf-8 - date: - - Fri, 09 Apr 2021 14:56:30 GMT - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - x-ms-ratelimit-remaining-calls-per-second: - - '333.066667' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoeb7113db&n=2&orderby= - response: - body: - string: '{"repositories": ["reposet160e197b", "reposetmanib7cc1bf8"]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '59' - content-type: - - application/json; charset=utf-8 - date: - - Fri, 09 Apr 2021 14:56:30 GMT - docker-distribution-api-version: - - registry/2.0 - link: - - ; rel="next" - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=reposetmanib7cc1bf8&n=2&orderby= - response: - body: - string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, - visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"registry","Name":"catalog","Action":"*"}]}]} - - ' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '196' - content-type: - - application/json; charset=utf-8 - date: - - Fri, 09 Apr 2021 14:56:30 GMT - docker-distribution-api-version: - - registry/2.0 - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - - max-age=31536000; includeSubDomains - www-authenticate: - - Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="registry:catalog:*" - x-content-type-options: - - nosniff - status: - code: 401 - message: Unauthorized -- request: - body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '1343' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/exchange - response: - body: - string: '{"refresh_token": "REDACTED"}' - headers: - connection: - - keep-alive - content-type: - - application/json; charset=utf-8 - date: - - Fri, 09 Apr 2021 14:56:31 GMT - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - x-ms-ratelimit-remaining-calls-per-second: - - '333.05' - status: - code: 200 - message: OK -- request: - body: grant_type=refresh_token&service=fake_url.azurecr.io&scope=registry%3Acatalog%3A%2A&refresh_token=REDACTED - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '1063' - Content-Type: - - application/x-www-form-urlencoded - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: - - keep-alive - content-type: - - application/json; charset=utf-8 - date: - - Fri, 09 Apr 2021 14:56:31 GMT - server: - - openresty - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - x-ms-ratelimit-remaining-calls-per-second: - - '333.033333' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=reposetmanib7cc1bf8&n=2&orderby= - response: - body: - string: '{"repositories": ["ubuntu"]}' - headers: - access-control-expose-headers: - - Docker-Content-Digest - - WWW-Authenticate - - Link - - X-Ms-Correlation-Request-Id - connection: - - keep-alive - content-length: - - '28' - content-type: - - application/json; charset=utf-8 - date: - - Fri, 09 Apr 2021 14:56:31 GMT + - Tue, 13 Apr 2021 15:57:35 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_transport_closed_only_once.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_transport_closed_only_once.yaml index c2370ae64732..9423b6a088af 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_transport_closed_only_once.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client.test_transport_closed_only_once.yaml @@ -31,7 +31,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:56:32 GMT + - Tue, 13 Apr 2021 15:57:36 GMT docker-distribution-api-version: - registry/2.0 server: @@ -72,7 +72,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:56:34 GMT + - Tue, 13 Apr 2021 15:57:37 GMT server: - openresty strict-transport-security: @@ -80,7 +80,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '333.283333' + - '166.183333' status: code: 200 message: OK @@ -110,7 +110,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:56:34 GMT + - Tue, 13 Apr 2021 15:57:38 GMT server: - openresty strict-transport-security: @@ -118,7 +118,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '333.183333' + - '166.116667' status: code: 200 message: OK @@ -137,10 +137,8 @@ interactions: uri: https://fake_url.azurecr.io/acr/v1/_catalog response: body: - string: '{"repositories": ["alpine/git", "debian", "hello-world", "library/hello-world", - "repo160e197b", "repo2e8319c5", "repo308e19dd", "repo6ce51658", "repo9b321760", - "repo_set160e197b", "repo_set_manib7cc1bf8", "repob7cc1bf8", "repod2be1c42", - "repoeb7113db", "reposet160e197b", "reposetmanib7cc1bf8", "ubuntu"]}' + string: '{"repositories": ["library/alpine", "library/busybox", "library/hello-world", + "repo2e8319c5", "repo308e19dd", "repo9b321760", "repod2be1c42", "repoeb7113db"]}' headers: access-control-expose-headers: - Docker-Content-Digest @@ -150,11 +148,11 @@ interactions: connection: - keep-alive content-length: - - '289' + - '151' content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:56:34 GMT + - Tue, 13 Apr 2021 15:57:38 GMT docker-distribution-api-version: - registry/2.0 server: @@ -199,7 +197,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:56:34 GMT + - Tue, 13 Apr 2021 15:57:38 GMT docker-distribution-api-version: - registry/2.0 server: @@ -240,7 +238,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:56:35 GMT + - Tue, 13 Apr 2021 15:57:38 GMT server: - openresty strict-transport-security: @@ -248,7 +246,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '333.166667' + - '166.1' status: code: 200 message: OK @@ -278,7 +276,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:56:35 GMT + - Tue, 13 Apr 2021 15:57:38 GMT server: - openresty strict-transport-security: @@ -286,7 +284,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '333.15' + - '166.083333' status: code: 200 message: OK @@ -305,10 +303,8 @@ interactions: uri: https://fake_url.azurecr.io/acr/v1/_catalog response: body: - string: '{"repositories": ["alpine/git", "debian", "hello-world", "library/hello-world", - "repo160e197b", "repo2e8319c5", "repo308e19dd", "repo6ce51658", "repo9b321760", - "repo_set160e197b", "repo_set_manib7cc1bf8", "repob7cc1bf8", "repod2be1c42", - "repoeb7113db", "reposet160e197b", "reposetmanib7cc1bf8", "ubuntu"]}' + string: '{"repositories": ["library/alpine", "library/busybox", "library/hello-world", + "repo2e8319c5", "repo308e19dd", "repo9b321760", "repod2be1c42", "repoeb7113db"]}' headers: access-control-expose-headers: - Docker-Content-Digest @@ -318,11 +314,11 @@ interactions: connection: - keep-alive content-length: - - '289' + - '151' content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:56:35 GMT + - Tue, 13 Apr 2021 15:57:39 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_delete_repository.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_delete_repository.yaml index 072528c605ac..7db3a6857642 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_delete_repository.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_delete_repository.yaml @@ -1,4 +1,93 @@ interactions: +- request: + body: '{"source": {"registryUri": "registry.hub.docker.com", "sourceImage": "library/hello-world"}, + "targetTags": ["to_be_deleted"], "mode": "Force"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '142' + Content-Type: + - application/json + User-Agent: + - azsdk-python-azure-mgmt-containerregistry/8.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://management.azure.com/subscriptions/2cd617ea-1866-46b1-90e3-fffb087ebf9b/resourceGroups/fake_rg/providers/Microsoft.ContainerRegistry/registries/seankane/importImage?api-version=2019-05-01 + response: + body: + string: 'null' + headers: + cache-control: + - no-cache + content-length: + - '4' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 13 Apr 2021 15:57:40 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/2cd617ea-1866-46b1-90e3-fffb087ebf9b/providers/Microsoft.ContainerRegistry/locations/WESTUS2/operationResults/registries-f95607cc-9c70-11eb-a4a1-002b67128e4c?api-version=2019-05-01 + pragma: + - no-cache + server: + - Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-ms-ratelimit-remaining-subscription-writes: + - '1199' + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-azure-mgmt-containerregistry/8.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/2cd617ea-1866-46b1-90e3-fffb087ebf9b/providers/Microsoft.ContainerRegistry/locations/WESTUS2/operationResults/registries-f95607cc-9c70-11eb-a4a1-002b67128e4c?api-version=2019-05-01 + response: + body: + string: '{"status": "Succeeded"}' + headers: + cache-control: + - no-cache + content-length: + - '22' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 13 Apr 2021 15:57:53 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + status: + code: 200 + message: OK - request: body: null headers: @@ -7,27 +96,28 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://fake_url.azurecr.io/acr/v1/repoe0731895 + uri: https://fake_url.azurecr.io/acr/v1/to_be_deleted response: body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "repository", "Name": "repoe0731895", "Action": "delete"}]}]}' + string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"to_be_deleted","Action":"delete"}]}]} + + ' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '208' + content-length: '209' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:49:55 GMT + date: Tue, 13 Apr 2021 15:57:54 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" + www-authenticate: Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:to_be_deleted:delete" x-content-type-options: nosniff status: code: 401 message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/repoe0731895 + url: https://fake_url.azurecr.io/acr/v1/to_be_deleted - request: body: access_token: REDACTED @@ -46,11 +136,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:49:56 GMT + date: Tue, 13 Apr 2021 15:57:55 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '332.666667' + x-ms-ratelimit-remaining-calls-per-second: '166.233333' status: code: 200 message: OK @@ -59,7 +149,7 @@ interactions: body: grant_type: refresh_token refresh_token: REDACTED - scope: repository:repoe0731895:delete + scope: repository:to_be_deleted:delete service: fake_url.azurecr.io headers: Accept: @@ -74,11 +164,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:49:56 GMT + date: Tue, 13 Apr 2021 15:57:55 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '332.65' + x-ms-ratelimit-remaining-calls-per-second: '166.216667' status: code: 200 message: OK @@ -91,7 +181,7 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://fake_url.azurecr.io/acr/v1/repoe0731895 + uri: https://fake_url.azurecr.io/acr/v1/to_be_deleted response: body: string: '{"manifestsDeleted": ["sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", @@ -110,16 +200,16 @@ interactions: connection: keep-alive content-length: '788' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:49:59 GMT + date: Tue, 13 Apr 2021 15:57:57 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff - x-ms-ratelimit-remaining-calls-per-second: '32.000000' + x-ms-ratelimit-remaining-calls-per-second: '8.000000' status: code: 202 message: Accepted - url: https://fake_url.azurecr.io/acr/v1/repoe0731895 + url: https://fake_url.azurecr.io/acr/v1/to_be_deleted - request: body: null headers: @@ -131,19 +221,20 @@ interactions: uri: https://fake_url.azurecr.io/acr/v1/_catalog response: body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' + string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"registry","Name":"catalog","Action":"*"}]}]} + + ' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-length: '196' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:04 GMT + date: Tue, 13 Apr 2021 15:57:57 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" + www-authenticate: Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="registry:catalog:*" x-content-type-options: nosniff status: code: 401 @@ -167,11 +258,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:04 GMT + date: Tue, 13 Apr 2021 15:57:57 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '333.183333' + x-ms-ratelimit-remaining-calls-per-second: '166.2' status: code: 200 message: OK @@ -195,11 +286,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:04 GMT + date: Tue, 13 Apr 2021 15:57:57 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '333.066667' + x-ms-ratelimit-remaining-calls-per-second: '166.183333' status: code: 200 message: OK @@ -215,16 +306,14 @@ interactions: uri: https://fake_url.azurecr.io/acr/v1/_catalog response: body: - string: '{"repositories": ["alpine/git", "debian", "hello-world", "library/hello-world", - "repo160e197b", "repo2e8319c5", "repo308e19dd", "repo6ce51658", "repo9b321760", - "repo_set160e197b", "repo_set_manib7cc1bf8", "repob7cc1bf8", "repod2be1c42", - "repoeb7113db", "reposet160e197b", "reposetmanib7cc1bf8", "ubuntu"]}' + string: '{"repositories": ["library/alpine", "library/busybox", "library/hello-world", + "repo2e8319c5", "repo308e19dd", "repo9b321760", "repod2be1c42", "repoeb7113db"]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '289' + content-length: '151' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:05 GMT + date: Tue, 13 Apr 2021 15:57:57 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_delete_repository_does_not_exist.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_delete_repository_does_not_exist.yaml index 0e33b9d26641..bcbb6365b829 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_delete_repository_does_not_exist.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_delete_repository_does_not_exist.yaml @@ -10,19 +10,20 @@ interactions: uri: https://fake_url.azurecr.io/acr/v1/not_real_repo response: body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "repository", "Name": "not_real_repo", "Action": "delete"}]}]}' + string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"not_real_repo","Action":"delete"}]}]} + + ' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-length: '209' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:05 GMT + date: Tue, 13 Apr 2021 15:57:58 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" + www-authenticate: Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:not_real_repo:delete" x-content-type-options: nosniff status: code: 401 @@ -46,11 +47,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:07 GMT + date: Tue, 13 Apr 2021 15:57:59 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '333' + x-ms-ratelimit-remaining-calls-per-second: '166' status: code: 200 message: OK @@ -74,11 +75,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:07 GMT + date: Tue, 13 Apr 2021 15:57:59 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '332.75' + x-ms-ratelimit-remaining-calls-per-second: '165.983333' status: code: 200 message: OK @@ -101,12 +102,12 @@ interactions: connection: keep-alive content-length: '121' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:07 GMT + date: Tue, 13 Apr 2021 15:57:59 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff - x-ms-ratelimit-remaining-calls-per-second: '32.000000' + x-ms-ratelimit-remaining-calls-per-second: '8.000000' status: code: 404 message: Not Found diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_list_repositories.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_list_repositories.yaml index 0301183bc18a..31c445e66b28 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_list_repositories.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_list_repositories.yaml @@ -10,19 +10,20 @@ interactions: uri: https://fake_url.azurecr.io/acr/v1/_catalog response: body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' + string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"registry","Name":"catalog","Action":"*"}]}]} + + ' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-length: '196' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:08 GMT + date: Tue, 13 Apr 2021 15:58:00 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" + www-authenticate: Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="registry:catalog:*" x-content-type-options: nosniff status: code: 401 @@ -46,11 +47,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:09 GMT + date: Tue, 13 Apr 2021 15:58:01 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '333.2' + x-ms-ratelimit-remaining-calls-per-second: '166.183333' status: code: 200 message: OK @@ -74,11 +75,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:09 GMT + date: Tue, 13 Apr 2021 15:58:01 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '333.183333' + x-ms-ratelimit-remaining-calls-per-second: '166.166667' status: code: 200 message: OK @@ -94,16 +95,14 @@ interactions: uri: https://fake_url.azurecr.io/acr/v1/_catalog response: body: - string: '{"repositories": ["alpine/git", "debian", "hello-world", "library/hello-world", - "repo160e197b", "repo2e8319c5", "repo308e19dd", "repo6ce51658", "repo9b321760", - "repo_set160e197b", "repo_set_manib7cc1bf8", "repob7cc1bf8", "repod2be1c42", - "repoeb7113db", "reposet160e197b", "reposetmanib7cc1bf8", "ubuntu"]}' + string: '{"repositories": ["library/alpine", "library/busybox", "library/hello-world", + "repo2e8319c5", "repo308e19dd", "repo9b321760", "repod2be1c42", "repoeb7113db"]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '289' + content-length: '151' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:09 GMT + date: Tue, 13 Apr 2021 15:58:01 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_list_repositories_by_page.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_list_repositories_by_page.yaml index e379ca73adb4..af25927c09a7 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_list_repositories_by_page.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_list_repositories_by_page.yaml @@ -10,19 +10,20 @@ interactions: uri: https://fake_url.azurecr.io/acr/v1/_catalog?n=2 response: body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' + string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"registry","Name":"catalog","Action":"*"}]}]} + + ' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-length: '196' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:09 GMT + date: Tue, 13 Apr 2021 15:58:01 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" + www-authenticate: Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="registry:catalog:*" x-content-type-options: nosniff status: code: 401 @@ -46,11 +47,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:10 GMT + date: Tue, 13 Apr 2021 15:58:02 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '333.316667' + x-ms-ratelimit-remaining-calls-per-second: '166.383333' status: code: 200 message: OK @@ -74,11 +75,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:11 GMT + date: Tue, 13 Apr 2021 15:58:02 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '333.3' + x-ms-ratelimit-remaining-calls-per-second: '166.366667' status: code: 200 message: OK @@ -94,15 +95,15 @@ interactions: uri: https://fake_url.azurecr.io/acr/v1/_catalog?n=2 response: body: - string: '{"repositories": ["alpine/git", "debian"]}' + string: '{"repositories": ["library/alpine", "library/busybox"]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '41' + content-length: '54' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:11 GMT + date: Tue, 13 Apr 2021 15:58:03 GMT docker-distribution-api-version: registry/2.0 - link: ; rel="next" + link: ; rel="next" server: openresty strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff @@ -118,27 +119,28 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=debian&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=library/busybox&n=2&orderby= response: body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' + string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"registry","Name":"catalog","Action":"*"}]}]} + + ' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-length: '196' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:11 GMT + date: Tue, 13 Apr 2021 15:58:03 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" + www-authenticate: Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="registry:catalog:*" x-content-type-options: nosniff status: code: 401 message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=debian&n=2&orderby= + url: https://fake_url.azurecr.io/acr/v1/_catalog?last=library/busybox&n=2&orderby= - request: body: access_token: REDACTED @@ -157,11 +159,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:11 GMT + date: Tue, 13 Apr 2021 15:58:03 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '333.283333' + x-ms-ratelimit-remaining-calls-per-second: '166.35' status: code: 200 message: OK @@ -185,11 +187,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:11 GMT + date: Tue, 13 Apr 2021 15:58:03 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '333.266667' + x-ms-ratelimit-remaining-calls-per-second: '166.333333' status: code: 200 message: OK @@ -202,127 +204,16 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=debian&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=library/busybox&n=2&orderby= response: body: - string: '{"repositories": ["hello-world", "library/hello-world"]}' + string: '{"repositories": ["library/hello-world", "repo2e8319c5"]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '55' + content-length: '56' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:12 GMT - docker-distribution-api-version: registry/2.0 - link: ; rel="next" - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - x-content-type-options: nosniff - status: - code: 200 - message: OK - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=debian&n=2&orderby= -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=library/hello-world&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '196' - content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:12 GMT - docker-distribution-api-version: registry/2.0 - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: nosniff - status: - code: 401 - message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=library/hello-world&n=2&orderby= -- request: - body: - access_token: REDACTED - grant_type: access_token - service: fake_url.azurecr.io - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/exchange - response: - body: - string: '{"refresh_token": "REDACTED"}' - headers: - connection: keep-alive - content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:12 GMT - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '333.25' - status: - code: 200 - message: OK - url: https://fake_url.azurecr.io/oauth2/exchange -- request: - body: - grant_type: refresh_token - refresh_token: REDACTED - scope: registry:catalog:* - service: fake_url.azurecr.io - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: keep-alive - content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:12 GMT - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '333.233333' - status: - code: 200 - message: OK - url: https://fake_url.azurecr.io/oauth2/token -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=library/hello-world&n=2&orderby= - response: - body: - string: '{"repositories": ["repo160e197b", "repo2e8319c5"]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '49' - content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:12 GMT + date: Tue, 13 Apr 2021 15:58:03 GMT docker-distribution-api-version: registry/2.0 link: ; rel="next" server: openresty @@ -331,7 +222,7 @@ interactions: status: code: 200 message: OK - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=library/hello-world&n=2&orderby= + url: https://fake_url.azurecr.io/acr/v1/_catalog?last=library/busybox&n=2&orderby= - request: body: null headers: @@ -343,19 +234,20 @@ interactions: uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo2e8319c5&n=2&orderby= response: body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' + string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"registry","Name":"catalog","Action":"*"}]}]} + + ' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-length: '196' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:13 GMT + date: Tue, 13 Apr 2021 15:58:03 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" + www-authenticate: Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="registry:catalog:*" x-content-type-options: nosniff status: code: 401 @@ -379,11 +271,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:13 GMT + date: Tue, 13 Apr 2021 15:58:04 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '333.216667' + x-ms-ratelimit-remaining-calls-per-second: '166.316667' status: code: 200 message: OK @@ -407,11 +299,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:13 GMT + date: Tue, 13 Apr 2021 15:58:04 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '333.2' + x-ms-ratelimit-remaining-calls-per-second: '166.3' status: code: 200 message: OK @@ -427,15 +319,15 @@ interactions: uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo2e8319c5&n=2&orderby= response: body: - string: '{"repositories": ["repo308e19dd", "repo6ce51658"]}' + string: '{"repositories": ["repo308e19dd", "repo9b321760"]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-length: '49' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:13 GMT + date: Tue, 13 Apr 2021 15:58:04 GMT docker-distribution-api-version: registry/2.0 - link: ; rel="next" + link: ; rel="next" server: openresty strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff @@ -451,138 +343,28 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo6ce51658&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '196' - content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:13 GMT - docker-distribution-api-version: registry/2.0 - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: nosniff - status: - code: 401 - message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo6ce51658&n=2&orderby= -- request: - body: - access_token: REDACTED - grant_type: access_token - service: fake_url.azurecr.io - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/exchange - response: - body: - string: '{"refresh_token": "REDACTED"}' - headers: - connection: keep-alive - content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:14 GMT - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '333.183333' - status: - code: 200 - message: OK - url: https://fake_url.azurecr.io/oauth2/exchange -- request: - body: - grant_type: refresh_token - refresh_token: REDACTED - scope: registry:catalog:* - service: fake_url.azurecr.io - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: keep-alive - content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:14 GMT - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '333.166667' - status: - code: 200 - message: OK - url: https://fake_url.azurecr.io/oauth2/token -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo6ce51658&n=2&orderby= - response: - body: - string: '{"repositories": ["repo9b321760", "repo_set160e197b"]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '53' - content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:14 GMT - docker-distribution-api-version: registry/2.0 - link: ; rel="next" - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - x-content-type-options: nosniff - status: - code: 200 - message: OK - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo6ce51658&n=2&orderby= -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo_set160e197b&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo9b321760&n=2&orderby= response: body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' + string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"registry","Name":"catalog","Action":"*"}]}]} + + ' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-length: '196' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:14 GMT + date: Tue, 13 Apr 2021 15:58:04 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" + www-authenticate: Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="registry:catalog:*" x-content-type-options: nosniff status: code: 401 message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo_set160e197b&n=2&orderby= + url: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo9b321760&n=2&orderby= - request: body: access_token: REDACTED @@ -601,11 +383,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:14 GMT + date: Tue, 13 Apr 2021 15:58:04 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '333.15' + x-ms-ratelimit-remaining-calls-per-second: '166.283333' status: code: 200 message: OK @@ -629,11 +411,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:15 GMT + date: Tue, 13 Apr 2021 15:58:04 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '333.133333' + x-ms-ratelimit-remaining-calls-per-second: '166.266667' status: code: 200 message: OK @@ -646,118 +428,7 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo_set160e197b&n=2&orderby= - response: - body: - string: '{"repositories": ["repo_set_manib7cc1bf8", "repob7cc1bf8"]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '58' - content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:15 GMT - docker-distribution-api-version: registry/2.0 - link: ; rel="next" - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - x-content-type-options: nosniff - status: - code: 200 - message: OK - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo_set160e197b&n=2&orderby= -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repob7cc1bf8&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '196' - content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:15 GMT - docker-distribution-api-version: registry/2.0 - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: nosniff - status: - code: 401 - message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=repob7cc1bf8&n=2&orderby= -- request: - body: - access_token: REDACTED - grant_type: access_token - service: fake_url.azurecr.io - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/exchange - response: - body: - string: '{"refresh_token": "REDACTED"}' - headers: - connection: keep-alive - content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:15 GMT - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '333.116667' - status: - code: 200 - message: OK - url: https://fake_url.azurecr.io/oauth2/exchange -- request: - body: - grant_type: refresh_token - refresh_token: REDACTED - scope: registry:catalog:* - service: fake_url.azurecr.io - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: keep-alive - content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:15 GMT - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '333.1' - status: - code: 200 - message: OK - url: https://fake_url.azurecr.io/oauth2/token -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repob7cc1bf8&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo9b321760&n=2&orderby= response: body: string: '{"repositories": ["repod2be1c42", "repoeb7113db"]}' @@ -766,229 +437,7 @@ interactions: connection: keep-alive content-length: '49' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:16 GMT - docker-distribution-api-version: registry/2.0 - link: ; rel="next" - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - x-content-type-options: nosniff - status: - code: 200 - message: OK - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=repob7cc1bf8&n=2&orderby= -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoeb7113db&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '196' - content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:16 GMT - docker-distribution-api-version: registry/2.0 - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: nosniff - status: - code: 401 - message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoeb7113db&n=2&orderby= -- request: - body: - access_token: REDACTED - grant_type: access_token - service: fake_url.azurecr.io - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/exchange - response: - body: - string: '{"refresh_token": "REDACTED"}' - headers: - connection: keep-alive - content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:16 GMT - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '333.083333' - status: - code: 200 - message: OK - url: https://fake_url.azurecr.io/oauth2/exchange -- request: - body: - grant_type: refresh_token - refresh_token: REDACTED - scope: registry:catalog:* - service: fake_url.azurecr.io - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: keep-alive - content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:16 GMT - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '333.066667' - status: - code: 200 - message: OK - url: https://fake_url.azurecr.io/oauth2/token -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoeb7113db&n=2&orderby= - response: - body: - string: '{"repositories": ["reposet160e197b", "reposetmanib7cc1bf8"]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '59' - content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:16 GMT - docker-distribution-api-version: registry/2.0 - link: ; rel="next" - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - x-content-type-options: nosniff - status: - code: 200 - message: OK - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=repoeb7113db&n=2&orderby= -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=reposetmanib7cc1bf8&n=2&orderby= - response: - body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '196' - content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:16 GMT - docker-distribution-api-version: registry/2.0 - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" - x-content-type-options: nosniff - status: - code: 401 - message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=reposetmanib7cc1bf8&n=2&orderby= -- request: - body: - access_token: REDACTED - grant_type: access_token - service: fake_url.azurecr.io - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/exchange - response: - body: - string: '{"refresh_token": "REDACTED"}' - headers: - connection: keep-alive - content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:16 GMT - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '333.05' - status: - code: 200 - message: OK - url: https://fake_url.azurecr.io/oauth2/exchange -- request: - body: - grant_type: refresh_token - refresh_token: REDACTED - scope: registry:catalog:* - service: fake_url.azurecr.io - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: POST - uri: https://fake_url.azurecr.io/oauth2/token - response: - body: - string: '{"access_token": "REDACTED"}' - headers: - connection: keep-alive - content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:17 GMT - server: openresty - strict-transport-security: max-age=31536000; includeSubDomains - transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '333.033333' - status: - code: 200 - message: OK - url: https://fake_url.azurecr.io/oauth2/token -- request: - body: null - headers: - Accept: - - application/json - User-Agent: - - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://fake_url.azurecr.io/acr/v1/_catalog?last=reposetmanib7cc1bf8&n=2&orderby= - response: - body: - string: '{"repositories": ["ubuntu"]}' - headers: - access-control-expose-headers: X-Ms-Correlation-Request-Id - connection: keep-alive - content-length: '28' - content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:17 GMT + date: Tue, 13 Apr 2021 15:58:04 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -996,5 +445,5 @@ interactions: status: code: 200 message: OK - url: https://fake_url.azurecr.io/acr/v1/_catalog?last=reposetmanib7cc1bf8&n=2&orderby= + url: https://fake_url.azurecr.io/acr/v1/_catalog?last=repo9b321760&n=2&orderby= version: 1 diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_transport_closed_only_once.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_transport_closed_only_once.yaml index 33a3ccb8faac..e5ab89d51ec3 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_transport_closed_only_once.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_registry_client_async.test_transport_closed_only_once.yaml @@ -10,19 +10,20 @@ interactions: uri: https://fake_url.azurecr.io/acr/v1/_catalog response: body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' + string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"registry","Name":"catalog","Action":"*"}]}]} + + ' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-length: '196' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:18 GMT + date: Tue, 13 Apr 2021 15:58:05 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" + www-authenticate: Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="registry:catalog:*" x-content-type-options: nosniff status: code: 401 @@ -46,11 +47,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:18 GMT + date: Tue, 13 Apr 2021 15:58:06 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '333.166667' + x-ms-ratelimit-remaining-calls-per-second: '166.633333' status: code: 200 message: OK @@ -74,11 +75,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:19 GMT + date: Tue, 13 Apr 2021 15:58:06 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '332.966667' + x-ms-ratelimit-remaining-calls-per-second: '166.616667' status: code: 200 message: OK @@ -94,16 +95,14 @@ interactions: uri: https://fake_url.azurecr.io/acr/v1/_catalog response: body: - string: '{"repositories": ["alpine/git", "debian", "hello-world", "library/hello-world", - "repo160e197b", "repo2e8319c5", "repo308e19dd", "repo6ce51658", "repo9b321760", - "repo_set160e197b", "repo_set_manib7cc1bf8", "repob7cc1bf8", "repod2be1c42", - "repoeb7113db", "reposet160e197b", "reposetmanib7cc1bf8", "ubuntu"]}' + string: '{"repositories": ["library/alpine", "library/busybox", "library/hello-world", + "repo2e8319c5", "repo308e19dd", "repo9b321760", "repod2be1c42", "repoeb7113db"]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '289' + content-length: '151' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:19 GMT + date: Tue, 13 Apr 2021 15:58:06 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -123,19 +122,20 @@ interactions: uri: https://fake_url.azurecr.io/acr/v1/_catalog response: body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' + string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"registry","Name":"catalog","Action":"*"}]}]} + + ' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-length: '196' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:20 GMT + date: Tue, 13 Apr 2021 15:58:06 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" + www-authenticate: Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="registry:catalog:*" x-content-type-options: nosniff status: code: 401 @@ -159,11 +159,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:20 GMT + date: Tue, 13 Apr 2021 15:58:07 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '332.95' + x-ms-ratelimit-remaining-calls-per-second: '166.6' status: code: 200 message: OK @@ -187,11 +187,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:20 GMT + date: Tue, 13 Apr 2021 15:58:07 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '332.933333' + x-ms-ratelimit-remaining-calls-per-second: '166.583333' status: code: 200 message: OK @@ -207,16 +207,14 @@ interactions: uri: https://fake_url.azurecr.io/acr/v1/_catalog response: body: - string: '{"repositories": ["alpine/git", "debian", "hello-world", "library/hello-world", - "repo160e197b", "repo2e8319c5", "repo308e19dd", "repo6ce51658", "repo9b321760", - "repo_set160e197b", "repo_set_manib7cc1bf8", "repob7cc1bf8", "repod2be1c42", - "repoeb7113db", "reposet160e197b", "reposetmanib7cc1bf8", "ubuntu"]}' + string: '{"repositories": ["library/alpine", "library/busybox", "library/hello-world", + "repo2e8319c5", "repo308e19dd", "repo9b321760", "repod2be1c42", "repoeb7113db"]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '289' + content-length: '151' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:50:20 GMT + date: Tue, 13 Apr 2021 15:58:07 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_delete_registry_artifact.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_delete_registry_artifact.yaml index d915dc3d9e4a..d1ff96c9e3d9 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_delete_registry_artifact.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_delete_registry_artifact.yaml @@ -1,4 +1,93 @@ interactions: +- request: + body: '{"source": {"registryUri": "registry.hub.docker.com", "sourceImage": "library/hello-world"}, + "targetTags": ["repo2e8319c5"], "mode": "Force"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '141' + Content-Type: + - application/json + User-Agent: + - azsdk-python-azure-mgmt-containerregistry/8.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://management.azure.com/subscriptions/2cd617ea-1866-46b1-90e3-fffb087ebf9b/resourceGroups/fake_rg/providers/Microsoft.ContainerRegistry/registries/seankane/importImage?api-version=2019-05-01 + response: + body: + string: 'null' + headers: + cache-control: + - no-cache + content-length: + - '4' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 13 Apr 2021 15:58:08 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/2cd617ea-1866-46b1-90e3-fffb087ebf9b/providers/Microsoft.ContainerRegistry/locations/WESTUS2/operationResults/registries-0a1d83ca-9c71-11eb-b1c5-002b67128e4c?api-version=2019-05-01 + pragma: + - no-cache + server: + - Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-ms-ratelimit-remaining-subscription-writes: + - '1198' + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-azure-mgmt-containerregistry/8.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/2cd617ea-1866-46b1-90e3-fffb087ebf9b/providers/Microsoft.ContainerRegistry/locations/WESTUS2/operationResults/registries-0a1d83ca-9c71-11eb-b1c5-002b67128e4c?api-version=2019-05-01 + response: + body: + string: '{"status": "Succeeded"}' + headers: + cache-control: + - no-cache + content-length: + - '22' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 13 Apr 2021 15:58:21 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + status: + code: 200 + message: OK - request: body: null headers: @@ -31,7 +120,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:57:29 GMT + - Tue, 13 Apr 2021 15:58:22 GMT docker-distribution-api-version: - registry/2.0 server: @@ -72,7 +161,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:57:30 GMT + - Tue, 13 Apr 2021 15:58:24 GMT server: - openresty strict-transport-security: @@ -80,7 +169,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '333.25' + - '165.95' status: code: 200 message: OK @@ -110,7 +199,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:57:30 GMT + - Tue, 13 Apr 2021 15:58:24 GMT server: - openresty strict-transport-security: @@ -118,7 +207,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '333.233333' + - '165.6' status: code: 200 message: OK @@ -139,52 +228,52 @@ interactions: body: string: '{"registry": "fake_url.azurecr.io", "imageName": "repo2e8319c5", "manifests": [{"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", - "imageSize": 0, "createdTime": "2021-04-09T14:57:19.5726646Z", "lastUpdateTime": - "2021-04-09T14:57:19.5726646Z", "architecture": "amd64", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T15:58:13.8951666Z", "lastUpdateTime": + "2021-04-13T15:58:13.8951666Z", "architecture": "amd64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", - "imageSize": 0, "createdTime": "2021-04-06T16:32:11.3711772Z", "lastUpdateTime": - "2021-04-06T16:32:11.3711772Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + "imageSize": 0, "createdTime": "2021-04-13T15:21:39.6157682Z", "lastUpdateTime": + "2021-04-13T15:21:39.6157682Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", "tags": ["latest"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}, {"digest": "sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1", - "imageSize": 0, "createdTime": "2021-04-06T16:32:13.0771196Z", "lastUpdateTime": - "2021-04-06T16:32:13.0771196Z", "architecture": "arm", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T15:21:40.1170415Z", "lastUpdateTime": + "2021-04-13T15:21:40.1170415Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90", - "imageSize": 0, "createdTime": "2021-04-06T16:32:12.87987Z", "lastUpdateTime": - "2021-04-06T16:32:12.87987Z", "architecture": "mips64le", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": + "imageSize": 0, "createdTime": "2021-04-13T15:21:40.5270603Z", "lastUpdateTime": + "2021-04-13T15:21:40.5270603Z", "architecture": "mips64le", "os": "linux", + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:963612c5503f3f1674f315c67089dee577d8cc6afc18565e0b4183ae355fb343", - "imageSize": 0, "createdTime": "2021-04-06T16:32:13.0063031Z", "lastUpdateTime": - "2021-04-06T16:32:13.0063031Z", "architecture": "arm64", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T15:21:40.454173Z", "lastUpdateTime": + "2021-04-13T15:21:40.454173Z", "architecture": "arm64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:b0408a0f1d74eced127a2658429f336ed8fa48e36d59878f155b19865e5dbd70", - "imageSize": 0, "createdTime": "2021-04-06T16:32:12.2394601Z", "lastUpdateTime": - "2021-04-06T16:32:12.2394601Z", "architecture": "amd64", "os": "windows", + "imageSize": 0, "createdTime": "2021-04-13T15:21:40.7670881Z", "lastUpdateTime": + "2021-04-13T15:21:40.7670881Z", "architecture": "amd64", "os": "windows", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:bb7ab0fa94fdd78aca84b27a1bd46c4b811051f9b69905d81f5f267fc6546a9d", - "imageSize": 0, "createdTime": "2021-04-06T16:32:12.436956Z", "lastUpdateTime": - "2021-04-06T16:32:12.436956Z", "architecture": "ppc64le", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": + "imageSize": 0, "createdTime": "2021-04-13T15:21:41.2075665Z", "lastUpdateTime": + "2021-04-13T15:21:41.2075665Z", "architecture": "ppc64le", "os": "linux", + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98", - "imageSize": 0, "createdTime": "2021-04-06T16:32:12.5728378Z", "lastUpdateTime": - "2021-04-06T16:32:12.5728378Z", "architecture": "386", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T15:21:40.6661892Z", "lastUpdateTime": + "2021-04-13T15:21:40.6661892Z", "architecture": "386", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:e49abad529e5d9bd6787f3abeab94e09ba274fe34731349556a850b9aebbf7bf", - "imageSize": 0, "createdTime": "2021-04-06T16:32:12.3605637Z", "lastUpdateTime": - "2021-04-06T16:32:12.3605637Z", "architecture": "s390x", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T15:21:40.8867036Z", "lastUpdateTime": + "2021-04-13T15:21:40.8867036Z", "architecture": "s390x", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:e5785cb0c62cebbed4965129bae371f0589cadd6d84798fb58c2c5f9e237efd9", - "imageSize": 0, "createdTime": "2021-04-06T16:32:11.725469Z", "lastUpdateTime": - "2021-04-06T16:32:11.725469Z", "architecture": "arm", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T15:21:40.2946843Z", "lastUpdateTime": + "2021-04-13T15:21:40.2946843Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}]}' @@ -199,7 +288,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:57:31 GMT + - Tue, 13 Apr 2021 15:58:24 GMT docker-distribution-api-version: - registry/2.0 server: @@ -248,7 +337,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:57:31 GMT + - Tue, 13 Apr 2021 15:58:24 GMT docker-distribution-api-version: - registry/2.0 server: @@ -289,7 +378,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:57:32 GMT + - Tue, 13 Apr 2021 15:58:25 GMT server: - openresty strict-transport-security: @@ -297,7 +386,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '333.216667' + - '165.583333' status: code: 200 message: OK @@ -327,7 +416,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:57:32 GMT + - Tue, 13 Apr 2021 15:58:25 GMT server: - openresty strict-transport-security: @@ -335,7 +424,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '333.2' + - '165.566667' status: code: 200 message: OK @@ -368,7 +457,7 @@ interactions: content-length: - '0' date: - - Fri, 09 Apr 2021 14:57:33 GMT + - Tue, 13 Apr 2021 15:58:25 GMT docker-distribution-api-version: - registry/2.0 server: @@ -379,7 +468,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-calls-per-second: - - '32.000000' + - '8.000000' status: code: 202 message: Accepted @@ -415,7 +504,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:57:33 GMT + - Tue, 13 Apr 2021 15:58:25 GMT docker-distribution-api-version: - registry/2.0 server: @@ -456,7 +545,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:57:33 GMT + - Tue, 13 Apr 2021 15:58:25 GMT server: - openresty strict-transport-security: @@ -464,7 +553,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '333.183333' + - '165.55' status: code: 200 message: OK @@ -494,7 +583,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:57:33 GMT + - Tue, 13 Apr 2021 15:58:26 GMT server: - openresty strict-transport-security: @@ -502,7 +591,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '333.166667' + - '165.533333' status: code: 200 message: OK @@ -523,47 +612,47 @@ interactions: body: string: '{"registry": "fake_url.azurecr.io", "imageName": "repo2e8319c5", "manifests": [{"digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", - "imageSize": 0, "createdTime": "2021-04-06T16:32:11.3711772Z", "lastUpdateTime": - "2021-04-06T16:32:11.3711772Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + "imageSize": 0, "createdTime": "2021-04-13T15:21:39.6157682Z", "lastUpdateTime": + "2021-04-13T15:21:39.6157682Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", "tags": ["latest"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}, {"digest": "sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1", - "imageSize": 0, "createdTime": "2021-04-06T16:32:13.0771196Z", "lastUpdateTime": - "2021-04-06T16:32:13.0771196Z", "architecture": "arm", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T15:21:40.1170415Z", "lastUpdateTime": + "2021-04-13T15:21:40.1170415Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90", - "imageSize": 0, "createdTime": "2021-04-06T16:32:12.87987Z", "lastUpdateTime": - "2021-04-06T16:32:12.87987Z", "architecture": "mips64le", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": + "imageSize": 0, "createdTime": "2021-04-13T15:21:40.5270603Z", "lastUpdateTime": + "2021-04-13T15:21:40.5270603Z", "architecture": "mips64le", "os": "linux", + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:963612c5503f3f1674f315c67089dee577d8cc6afc18565e0b4183ae355fb343", - "imageSize": 0, "createdTime": "2021-04-06T16:32:13.0063031Z", "lastUpdateTime": - "2021-04-06T16:32:13.0063031Z", "architecture": "arm64", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T15:21:40.454173Z", "lastUpdateTime": + "2021-04-13T15:21:40.454173Z", "architecture": "arm64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:b0408a0f1d74eced127a2658429f336ed8fa48e36d59878f155b19865e5dbd70", - "imageSize": 0, "createdTime": "2021-04-06T16:32:12.2394601Z", "lastUpdateTime": - "2021-04-06T16:32:12.2394601Z", "architecture": "amd64", "os": "windows", + "imageSize": 0, "createdTime": "2021-04-13T15:21:40.7670881Z", "lastUpdateTime": + "2021-04-13T15:21:40.7670881Z", "architecture": "amd64", "os": "windows", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:bb7ab0fa94fdd78aca84b27a1bd46c4b811051f9b69905d81f5f267fc6546a9d", - "imageSize": 0, "createdTime": "2021-04-06T16:32:12.436956Z", "lastUpdateTime": - "2021-04-06T16:32:12.436956Z", "architecture": "ppc64le", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": + "imageSize": 0, "createdTime": "2021-04-13T15:21:41.2075665Z", "lastUpdateTime": + "2021-04-13T15:21:41.2075665Z", "architecture": "ppc64le", "os": "linux", + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98", - "imageSize": 0, "createdTime": "2021-04-06T16:32:12.5728378Z", "lastUpdateTime": - "2021-04-06T16:32:12.5728378Z", "architecture": "386", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T15:21:40.6661892Z", "lastUpdateTime": + "2021-04-13T15:21:40.6661892Z", "architecture": "386", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:e49abad529e5d9bd6787f3abeab94e09ba274fe34731349556a850b9aebbf7bf", - "imageSize": 0, "createdTime": "2021-04-06T16:32:12.3605637Z", "lastUpdateTime": - "2021-04-06T16:32:12.3605637Z", "architecture": "s390x", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T15:21:40.8867036Z", "lastUpdateTime": + "2021-04-13T15:21:40.8867036Z", "architecture": "s390x", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:e5785cb0c62cebbed4965129bae371f0589cadd6d84798fb58c2c5f9e237efd9", - "imageSize": 0, "createdTime": "2021-04-06T16:32:11.725469Z", "lastUpdateTime": - "2021-04-06T16:32:11.725469Z", "architecture": "arm", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T15:21:40.2946843Z", "lastUpdateTime": + "2021-04-13T15:21:40.2946843Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}]}' @@ -578,7 +667,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:57:34 GMT + - Tue, 13 Apr 2021 15:58:26 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_delete_repository.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_delete_repository.yaml index 1ec822415e6a..4f820308f80c 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_delete_repository.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_delete_repository.yaml @@ -1,4 +1,93 @@ interactions: +- request: + body: '{"source": {"registryUri": "registry.hub.docker.com", "sourceImage": "library/hello-world"}, + "targetTags": ["to_be_deleted"], "mode": "Force"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '142' + Content-Type: + - application/json + User-Agent: + - azsdk-python-azure-mgmt-containerregistry/8.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://management.azure.com/subscriptions/2cd617ea-1866-46b1-90e3-fffb087ebf9b/resourceGroups/fake_rg/providers/Microsoft.ContainerRegistry/registries/seankane/importImage?api-version=2019-05-01 + response: + body: + string: 'null' + headers: + cache-control: + - no-cache + content-length: + - '4' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 13 Apr 2021 15:58:28 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/2cd617ea-1866-46b1-90e3-fffb087ebf9b/providers/Microsoft.ContainerRegistry/locations/WESTUS2/operationResults/registries-15a1cf12-9c71-11eb-9c7f-002b67128e4c?api-version=2019-05-01 + pragma: + - no-cache + server: + - Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-ms-ratelimit-remaining-subscription-writes: + - '1198' + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-azure-mgmt-containerregistry/8.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/2cd617ea-1866-46b1-90e3-fffb087ebf9b/providers/Microsoft.ContainerRegistry/locations/WESTUS2/operationResults/registries-15a1cf12-9c71-11eb-9c7f-002b67128e4c?api-version=2019-05-01 + response: + body: + string: '{"status": "Succeeded"}' + headers: + cache-control: + - no-cache + content-length: + - '22' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 13 Apr 2021 15:58:40 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + status: + code: 200 + message: OK - request: body: null headers: @@ -31,7 +120,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:57:52 GMT + - Tue, 13 Apr 2021 15:58:42 GMT docker-distribution-api-version: - registry/2.0 server: @@ -72,7 +161,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:57:53 GMT + - Tue, 13 Apr 2021 15:58:43 GMT server: - openresty strict-transport-security: @@ -80,7 +169,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.866667' + - '166.6' status: code: 200 message: OK @@ -110,7 +199,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:57:53 GMT + - Tue, 13 Apr 2021 15:58:43 GMT server: - openresty strict-transport-security: @@ -118,7 +207,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.366667' + - '166.2' status: code: 200 message: OK @@ -137,11 +226,9 @@ interactions: uri: https://fake_url.azurecr.io/acr/v1/_catalog response: body: - string: '{"repositories": ["alpine/git", "debian", "hello-world", "library/hello-world", - "repo160e197b", "repo2e8319c5", "repo308e19dd", "repo6ce51658", "repo9b321760", - "repo_set160e197b", "repo_set_manib7cc1bf8", "repob7cc1bf8", "repod2be1c42", - "repoeb7113db", "reposet160e197b", "reposetmanib7cc1bf8", "to_be_deleted", - "ubuntu"]}' + string: '{"repositories": ["library/alpine", "library/busybox", "library/hello-world", + "repo2e8319c5", "repo308e19dd", "repo9b321760", "repod2be1c42", "repoeb7113db", + "to_be_deleted"]}' headers: access-control-expose-headers: - Docker-Content-Digest @@ -151,11 +238,11 @@ interactions: connection: - keep-alive content-length: - - '305' + - '167' content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:57:53 GMT + - Tue, 13 Apr 2021 15:58:43 GMT docker-distribution-api-version: - registry/2.0 server: @@ -202,7 +289,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:57:54 GMT + - Tue, 13 Apr 2021 15:58:44 GMT docker-distribution-api-version: - registry/2.0 server: @@ -243,7 +330,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:57:56 GMT + - Tue, 13 Apr 2021 15:58:45 GMT server: - openresty strict-transport-security: @@ -251,7 +338,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.816667' + - '166.2' status: code: 200 message: OK @@ -281,7 +368,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:57:56 GMT + - Tue, 13 Apr 2021 15:58:46 GMT server: - openresty strict-transport-security: @@ -289,7 +376,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.8' + - '166.116667' status: code: 200 message: OK @@ -334,7 +421,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:57:59 GMT + - Tue, 13 Apr 2021 15:58:47 GMT docker-distribution-api-version: - registry/2.0 server: @@ -345,7 +432,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-calls-per-second: - - '32.000000' + - '8.000000' status: code: 202 message: Accepted @@ -381,7 +468,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:57:59 GMT + - Tue, 13 Apr 2021 15:58:47 GMT docker-distribution-api-version: - registry/2.0 server: @@ -422,7 +509,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:57:59 GMT + - Tue, 13 Apr 2021 15:58:48 GMT server: - openresty strict-transport-security: @@ -430,7 +517,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.35' + - '166.183333' status: code: 200 message: OK @@ -460,7 +547,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:57:59 GMT + - Tue, 13 Apr 2021 15:58:48 GMT server: - openresty strict-transport-security: @@ -468,7 +555,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.333333' + - '165.6' status: code: 200 message: OK @@ -487,10 +574,8 @@ interactions: uri: https://fake_url.azurecr.io/acr/v1/_catalog response: body: - string: '{"repositories": ["alpine/git", "debian", "hello-world", "library/hello-world", - "repo160e197b", "repo2e8319c5", "repo308e19dd", "repo6ce51658", "repo9b321760", - "repo_set160e197b", "repo_set_manib7cc1bf8", "repob7cc1bf8", "repod2be1c42", - "repoeb7113db", "reposet160e197b", "reposetmanib7cc1bf8", "ubuntu"]}' + string: '{"repositories": ["library/alpine", "library/busybox", "library/hello-world", + "repo2e8319c5", "repo308e19dd", "repo9b321760", "repod2be1c42", "repoeb7113db"]}' headers: access-control-expose-headers: - Docker-Content-Digest @@ -500,11 +585,11 @@ interactions: connection: - keep-alive content-length: - - '289' + - '151' content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:57:59 GMT + - Tue, 13 Apr 2021 15:58:48 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_delete_repository_doesnt_exist.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_delete_repository_doesnt_exist.yaml index b969177da057..8a3d7c07afa8 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_delete_repository_doesnt_exist.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_delete_repository_doesnt_exist.yaml @@ -33,7 +33,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:00 GMT + - Tue, 13 Apr 2021 15:58:49 GMT docker-distribution-api-version: - registry/2.0 server: @@ -74,7 +74,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:02 GMT + - Tue, 13 Apr 2021 15:58:50 GMT server: - openresty strict-transport-security: @@ -82,7 +82,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.816667' + - '165.833333' status: code: 200 message: OK @@ -112,7 +112,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:02 GMT + - Tue, 13 Apr 2021 15:58:50 GMT server: - openresty strict-transport-security: @@ -120,7 +120,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.8' + - '165.816667' status: code: 200 message: OK @@ -156,7 +156,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:02 GMT + - Tue, 13 Apr 2021 15:58:50 GMT docker-distribution-api-version: - registry/2.0 server: @@ -167,7 +167,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-calls-per-second: - - '32.000000' + - '8.000000' status: code: 404 message: Not Found diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_delete_tag.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_delete_tag.yaml index 667fcfb9cd06..3ed6dcd35828 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_delete_tag.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_delete_tag.yaml @@ -1,4 +1,93 @@ interactions: +- request: + body: '{"source": {"registryUri": "registry.hub.docker.com", "sourceImage": "library/hello-world"}, + "targetTags": ["repoeb7113db:tageb7113db"], "mode": "Force"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '153' + Content-Type: + - application/json + User-Agent: + - azsdk-python-azure-mgmt-containerregistry/8.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://management.azure.com/subscriptions/2cd617ea-1866-46b1-90e3-fffb087ebf9b/resourceGroups/fake_rg/providers/Microsoft.ContainerRegistry/registries/seankane/importImage?api-version=2019-05-01 + response: + body: + string: 'null' + headers: + cache-control: + - no-cache + content-length: + - '4' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 13 Apr 2021 16:25:24 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/2cd617ea-1866-46b1-90e3-fffb087ebf9b/providers/Microsoft.ContainerRegistry/locations/WESTUS2/operationResults/registries-d95c2805-9c74-11eb-9841-002b67128e4c?api-version=2019-05-01 + pragma: + - no-cache + server: + - Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-ms-ratelimit-remaining-subscription-writes: + - '1198' + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-azure-mgmt-containerregistry/8.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/2cd617ea-1866-46b1-90e3-fffb087ebf9b/providers/Microsoft.ContainerRegistry/locations/WESTUS2/operationResults/registries-d95c2805-9c74-11eb-9841-002b67128e4c?api-version=2019-05-01 + response: + body: + string: '{"status": "Succeeded"}' + headers: + cache-control: + - no-cache + content-length: + - '22' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 13 Apr 2021 16:25:37 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + status: + code: 200 + message: OK - request: body: null headers: @@ -31,7 +120,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:21 GMT + - Tue, 13 Apr 2021 16:25:38 GMT docker-distribution-api-version: - registry/2.0 server: @@ -72,7 +161,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:22 GMT + - Tue, 13 Apr 2021 16:25:40 GMT server: - openresty strict-transport-security: @@ -80,7 +169,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.5' + - '166.616667' status: code: 200 message: OK @@ -110,7 +199,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:22 GMT + - Tue, 13 Apr 2021 16:25:40 GMT server: - openresty strict-transport-security: @@ -118,7 +207,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.483333' + - '166.6' status: code: 200 message: OK @@ -139,7 +228,7 @@ interactions: body: string: '{"registry": "fake_url.azurecr.io", "imageName": "repoeb7113db", "tag": {"name": "tageb7113db", "digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", - "createdTime": "2021-04-09T14:58:13.4512193Z", "lastUpdateTime": "2021-04-09T14:58:13.4512193Z", + "createdTime": "2021-04-13T16:25:28.2023232Z", "lastUpdateTime": "2021-04-13T16:25:28.2023232Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}}' headers: @@ -155,7 +244,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:23 GMT + - Tue, 13 Apr 2021 16:25:40 GMT docker-distribution-api-version: - registry/2.0 server: @@ -202,7 +291,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:23 GMT + - Tue, 13 Apr 2021 16:25:40 GMT docker-distribution-api-version: - registry/2.0 server: @@ -243,7 +332,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:23 GMT + - Tue, 13 Apr 2021 16:25:41 GMT server: - openresty strict-transport-security: @@ -251,7 +340,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.466667' + - '166.583333' status: code: 200 message: OK @@ -281,7 +370,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:23 GMT + - Tue, 13 Apr 2021 16:25:41 GMT server: - openresty strict-transport-security: @@ -289,7 +378,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.45' + - '166.566667' status: code: 200 message: OK @@ -322,7 +411,7 @@ interactions: content-length: - '0' date: - - Fri, 09 Apr 2021 14:58:23 GMT + - Tue, 13 Apr 2021 16:25:42 GMT docker-distribution-api-version: - registry/2.0 server: @@ -335,7 +424,7 @@ interactions: x-ms-int-docker-content-digest: - sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24 x-ms-ratelimit-remaining-calls-per-second: - - '32.000000' + - '8.000000' status: code: 202 message: Accepted @@ -371,7 +460,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:29 GMT + - Tue, 13 Apr 2021 16:25:47 GMT docker-distribution-api-version: - registry/2.0 server: @@ -412,7 +501,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:29 GMT + - Tue, 13 Apr 2021 16:25:48 GMT server: - openresty strict-transport-security: @@ -420,7 +509,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.433333' + - '166.55' status: code: 200 message: OK @@ -450,7 +539,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:29 GMT + - Tue, 13 Apr 2021 16:25:48 GMT server: - openresty strict-transport-security: @@ -458,7 +547,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.416667' + - '166.1' status: code: 200 message: OK @@ -492,7 +581,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:29 GMT + - Tue, 13 Apr 2021 16:25:48 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_delete_tag_does_not_exist.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_delete_tag_does_not_exist.yaml index b98adc53b28c..335425473d4c 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_delete_tag_does_not_exist.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_delete_tag_does_not_exist.yaml @@ -13,11 +13,11 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_tags/to_be_deleted + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags/to_be_deleted response: body: string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, - visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"hello-world","Action":"delete"}]}]} + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"library/hello-world","Action":"delete"}]}]} ' headers: @@ -29,11 +29,11 @@ interactions: connection: - keep-alive content-length: - - '207' + - '215' content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:30 GMT + - Tue, 13 Apr 2021 16:25:49 GMT docker-distribution-api-version: - registry/2.0 server: @@ -42,7 +42,7 @@ interactions: - max-age=31536000; includeSubDomains - max-age=31536000; includeSubDomains www-authenticate: - - Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:hello-world:delete" + - Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:library/hello-world:delete" x-content-type-options: - nosniff status: @@ -74,7 +74,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:32 GMT + - Tue, 13 Apr 2021 16:25:51 GMT server: - openresty strict-transport-security: @@ -82,12 +82,12 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '333.033333' + - '165.933333' status: code: 200 message: OK - request: - body: grant_type=refresh_token&service=fake_url.azurecr.io&scope=repository%3Ahello-world%3Adelete&refresh_token=REDACTED + body: grant_type=refresh_token&service=fake_url.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Adelete&refresh_token=REDACTED headers: Accept: - application/json @@ -96,7 +96,7 @@ interactions: Connection: - keep-alive Content-Length: - - '1072' + - '1082' Content-Type: - application/x-www-form-urlencoded User-Agent: @@ -112,7 +112,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:32 GMT + - Tue, 13 Apr 2021 16:25:51 GMT server: - openresty strict-transport-security: @@ -120,7 +120,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.85' + - '165.916667' status: code: 200 message: OK @@ -138,7 +138,7 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_tags/to_be_deleted + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags/to_be_deleted response: body: string: '{"errors": [{"code": "TAG_UNKNOWN", "message": "the specified tag does @@ -156,7 +156,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:32 GMT + - Tue, 13 Apr 2021 16:25:52 GMT docker-distribution-api-version: - registry/2.0 server: @@ -167,7 +167,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-calls-per-second: - - '32.000000' + - '8.000000' status: code: 404 message: Not Found diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_get_properties.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_get_properties.yaml index 048b12ed70b3..8d4d916ab33f 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_get_properties.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_get_properties.yaml @@ -11,11 +11,11 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world response: body: string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, - visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"hello-world","Action":"metadata_read"}]}]} + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"library/hello-world","Action":"metadata_read"}]}]} ' headers: @@ -27,11 +27,11 @@ interactions: connection: - keep-alive content-length: - - '214' + - '222' content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:33 GMT + - Tue, 13 Apr 2021 15:59:17 GMT docker-distribution-api-version: - registry/2.0 server: @@ -40,7 +40,7 @@ interactions: - max-age=31536000; includeSubDomains - max-age=31536000; includeSubDomains www-authenticate: - - Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:hello-world:metadata_read" + - Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:library/hello-world:metadata_read" x-content-type-options: - nosniff status: @@ -72,7 +72,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:35 GMT + - Tue, 13 Apr 2021 15:59:19 GMT server: - openresty strict-transport-security: @@ -80,12 +80,12 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.6' + - '165.883333' status: code: 200 message: OK - request: - body: grant_type=refresh_token&service=fake_url.azurecr.io&scope=repository%3Ahello-world%3Ametadata_read&refresh_token=REDACTED + body: grant_type=refresh_token&service=fake_url.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Ametadata_read&refresh_token=REDACTED headers: Accept: - application/json @@ -94,7 +94,7 @@ interactions: Connection: - keep-alive Content-Length: - - '1079' + - '1089' Content-Type: - application/x-www-form-urlencoded User-Agent: @@ -110,7 +110,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:35 GMT + - Tue, 13 Apr 2021 15:59:19 GMT server: - openresty strict-transport-security: @@ -118,7 +118,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.583333' + - '165.766667' status: code: 200 message: OK @@ -134,12 +134,12 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "hello-world", "createdTime": - "2021-03-30T12:18:47.4147491Z", "lastUpdateTime": "2021-04-02T17:49:05.6952388Z", - "manifestCount": 10, "tagCount": 1, "changeableAttributes": {"deleteEnabled": + string: '{"registry": "fake_url.azurecr.io", "imageName": "library/hello-world", + "createdTime": "2021-04-13T15:10:43.6788287Z", "lastUpdateTime": "2021-04-13T15:26:48.3839908Z", + "manifestCount": 10, "tagCount": 5, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}' headers: access-control-expose-headers: @@ -150,11 +150,11 @@ interactions: connection: - keep-alive content-length: - - '290' + - '298' content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:35 GMT + - Tue, 13 Apr 2021 15:59:19 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_get_registry_artifact_properties.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_get_registry_artifact_properties.yaml index 145f78aee764..ec9cd13a59e0 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_get_registry_artifact_properties.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_get_registry_artifact_properties.yaml @@ -11,11 +11,11 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_tags/latest + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest response: body: string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, - visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"hello-world","Action":"metadata_read"}]}]} + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"library/hello-world","Action":"metadata_read"}]}]} ' headers: @@ -27,11 +27,11 @@ interactions: connection: - keep-alive content-length: - - '214' + - '222' content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:36 GMT + - Tue, 13 Apr 2021 15:59:20 GMT docker-distribution-api-version: - registry/2.0 server: @@ -40,7 +40,7 @@ interactions: - max-age=31536000; includeSubDomains - max-age=31536000; includeSubDomains www-authenticate: - - Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:hello-world:metadata_read" + - Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:library/hello-world:metadata_read" x-content-type-options: - nosniff status: @@ -72,7 +72,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:37 GMT + - Tue, 13 Apr 2021 15:59:21 GMT server: - openresty strict-transport-security: @@ -80,12 +80,12 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.666667' + - '165.783333' status: code: 200 message: OK - request: - body: grant_type=refresh_token&service=fake_url.azurecr.io&scope=repository%3Ahello-world%3Ametadata_read&refresh_token=REDACTED + body: grant_type=refresh_token&service=fake_url.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Ametadata_read&refresh_token=REDACTED headers: Accept: - application/json @@ -94,7 +94,7 @@ interactions: Connection: - keep-alive Content-Length: - - '1079' + - '1089' Content-Type: - application/x-www-form-urlencoded User-Agent: @@ -110,7 +110,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:37 GMT + - Tue, 13 Apr 2021 15:59:21 GMT server: - openresty strict-transport-security: @@ -118,7 +118,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.166667' + - '165.766667' status: code: 200 message: OK @@ -134,14 +134,14 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_tags/latest + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "hello-world", "tag": - {"name": "latest", "digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", - "createdTime": "2021-03-30T12:18:52.8272444Z", "lastUpdateTime": "2021-03-30T12:18:52.8272444Z", - "signed": false, "quarantineState": "Passed", "changeableAttributes": {"deleteEnabled": - true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}}' + string: '{"registry": "fake_url.azurecr.io", "imageName": "library/hello-world", + "tag": {"name": "latest", "digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", + "createdTime": "2021-04-13T15:10:43.9172084Z", "lastUpdateTime": "2021-04-13T15:10:43.9172084Z", + "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}}' headers: access-control-expose-headers: - Docker-Content-Digest @@ -151,11 +151,11 @@ interactions: connection: - keep-alive content-length: - - '407' + - '388' content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:38 GMT + - Tue, 13 Apr 2021 15:59:21 GMT docker-distribution-api-version: - registry/2.0 server: @@ -180,11 +180,11 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_manifests/sha256%3A308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24 + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests/sha256%3A308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24 response: body: string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, - visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"hello-world","Action":"metadata_read"}]}]} + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"library/hello-world","Action":"metadata_read"}]}]} ' headers: @@ -196,11 +196,11 @@ interactions: connection: - keep-alive content-length: - - '214' + - '222' content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:38 GMT + - Tue, 13 Apr 2021 15:59:22 GMT docker-distribution-api-version: - registry/2.0 server: @@ -209,7 +209,7 @@ interactions: - max-age=31536000; includeSubDomains - max-age=31536000; includeSubDomains www-authenticate: - - Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:hello-world:metadata_read" + - Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:library/hello-world:metadata_read" x-content-type-options: - nosniff status: @@ -241,7 +241,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:38 GMT + - Tue, 13 Apr 2021 15:59:22 GMT server: - openresty strict-transport-security: @@ -249,12 +249,12 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.15' + - '165.75' status: code: 200 message: OK - request: - body: grant_type=refresh_token&service=fake_url.azurecr.io&scope=repository%3Ahello-world%3Ametadata_read&refresh_token=REDACTED + body: grant_type=refresh_token&service=fake_url.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Ametadata_read&refresh_token=REDACTED headers: Accept: - application/json @@ -263,7 +263,7 @@ interactions: Connection: - keep-alive Content-Length: - - '1079' + - '1089' Content-Type: - application/x-www-form-urlencoded User-Agent: @@ -279,7 +279,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:38 GMT + - Tue, 13 Apr 2021 15:59:22 GMT server: - openresty strict-transport-security: @@ -287,7 +287,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.133333' + - '165.733333' status: code: 200 message: OK @@ -303,18 +303,16 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_manifests/sha256%3A308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24 + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests/sha256%3A308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "hello-world", "manifest": - {"digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", - "imageSize": 0, "createdTime": "2021-03-30T12:18:47.4863064Z", "lastUpdateTime": - "2021-03-30T12:18:47.4863064Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", - "tags": ["latest"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": - false, "readEnabled": true, "listEnabled": true, "quarantineDetails": "{\"state\":\"Scan - InProgress\",\"link\":\"https://aka.ms/test\",\"scanner\":\"Azure Security - Monitoring-Qualys Scanner\",\"result\":{\"version\":\"4/8/2021 5:48:51 PM\",\"summary\":[{\"severity\":\"High\",\"count\":0},{\"severity\":\"Medium\",\"count\":0},{\"severity\":\"Low\",\"count\":0}]}}", - "quarantineState": "Passed"}, "references": [{"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", + string: '{"registry": "fake_url.azurecr.io", "imageName": "library/hello-world", + "manifest": {"digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", + "imageSize": 0, "createdTime": "2021-04-13T15:10:44.0031749Z", "lastUpdateTime": + "2021-04-13T15:10:44.0031749Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + "tags": ["latest", "v1", "v2", "v3", "v4"], "changeableAttributes": {"deleteEnabled": + true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}, "references": + [{"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", "architecture": "amd64", "os": "linux"}, {"digest": "sha256:e5785cb0c62cebbed4965129bae371f0589cadd6d84798fb58c2c5f9e237efd9", "architecture": "arm", "os": "linux"}, {"digest": "sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1", "architecture": "arm", "os": "linux"}, {"digest": "sha256:963612c5503f3f1674f315c67089dee577d8cc6afc18565e0b4183ae355fb343", @@ -333,11 +331,11 @@ interactions: connection: - keep-alive content-length: - - '1907' + - '1591' content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:38 GMT + - Tue, 13 Apr 2021 15:59:22 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_get_tag.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_get_tag.yaml index ab593c39b896..9e497fcc4546 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_get_tag.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_get_tag.yaml @@ -11,11 +11,11 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_tags/latest + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest response: body: string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, - visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"hello-world","Action":"metadata_read"}]}]} + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"library/hello-world","Action":"metadata_read"}]}]} ' headers: @@ -27,11 +27,11 @@ interactions: connection: - keep-alive content-length: - - '214' + - '222' content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:39 GMT + - Tue, 13 Apr 2021 15:59:23 GMT docker-distribution-api-version: - registry/2.0 server: @@ -40,7 +40,7 @@ interactions: - max-age=31536000; includeSubDomains - max-age=31536000; includeSubDomains www-authenticate: - - Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:hello-world:metadata_read" + - Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:library/hello-world:metadata_read" x-content-type-options: - nosniff status: @@ -72,7 +72,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:41 GMT + - Tue, 13 Apr 2021 15:59:24 GMT server: - openresty strict-transport-security: @@ -80,12 +80,12 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.75' + - '165.75' status: code: 200 message: OK - request: - body: grant_type=refresh_token&service=fake_url.azurecr.io&scope=repository%3Ahello-world%3Ametadata_read&refresh_token=REDACTED + body: grant_type=refresh_token&service=fake_url.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Ametadata_read&refresh_token=REDACTED headers: Accept: - application/json @@ -94,7 +94,7 @@ interactions: Connection: - keep-alive Content-Length: - - '1079' + - '1089' Content-Type: - application/x-www-form-urlencoded User-Agent: @@ -110,7 +110,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:41 GMT + - Tue, 13 Apr 2021 15:59:25 GMT server: - openresty strict-transport-security: @@ -118,7 +118,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.733333' + - '165.733333' status: code: 200 message: OK @@ -134,14 +134,14 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_tags/latest + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags/latest response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "hello-world", "tag": - {"name": "latest", "digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", - "createdTime": "2021-03-30T12:18:52.8272444Z", "lastUpdateTime": "2021-03-30T12:18:52.8272444Z", - "signed": false, "quarantineState": "Passed", "changeableAttributes": {"deleteEnabled": - true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}}' + string: '{"registry": "fake_url.azurecr.io", "imageName": "library/hello-world", + "tag": {"name": "latest", "digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", + "createdTime": "2021-04-13T15:10:43.9172084Z", "lastUpdateTime": "2021-04-13T15:10:43.9172084Z", + "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}}' headers: access-control-expose-headers: - Docker-Content-Digest @@ -151,11 +151,11 @@ interactions: connection: - keep-alive content-length: - - '407' + - '388' content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:41 GMT + - Tue, 13 Apr 2021 15:59:25 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_list_registry_artifacts.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_list_registry_artifacts.yaml index cf5db86d2c5a..91f2ad85a35f 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_list_registry_artifacts.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_list_registry_artifacts.yaml @@ -11,11 +11,11 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_manifests + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests response: body: string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, - visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"hello-world","Action":"metadata_read"}]}]} + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"library/hello-world","Action":"metadata_read"}]}]} ' headers: @@ -27,11 +27,11 @@ interactions: connection: - keep-alive content-length: - - '214' + - '222' content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:42 GMT + - Tue, 13 Apr 2021 15:59:25 GMT docker-distribution-api-version: - registry/2.0 server: @@ -40,7 +40,7 @@ interactions: - max-age=31536000; includeSubDomains - max-age=31536000; includeSubDomains www-authenticate: - - Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:hello-world:metadata_read" + - Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:library/hello-world:metadata_read" x-content-type-options: - nosniff status: @@ -72,7 +72,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:44 GMT + - Tue, 13 Apr 2021 15:59:27 GMT server: - openresty strict-transport-security: @@ -80,12 +80,12 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.4' + - '166.216667' status: code: 200 message: OK - request: - body: grant_type=refresh_token&service=fake_url.azurecr.io&scope=repository%3Ahello-world%3Ametadata_read&refresh_token=REDACTED + body: grant_type=refresh_token&service=fake_url.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Ametadata_read&refresh_token=REDACTED headers: Accept: - application/json @@ -94,7 +94,7 @@ interactions: Connection: - keep-alive Content-Length: - - '1079' + - '1089' Content-Type: - application/x-www-form-urlencoded User-Agent: @@ -110,7 +110,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:44 GMT + - Tue, 13 Apr 2021 15:59:27 GMT server: - openresty strict-transport-security: @@ -118,7 +118,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.383333' + - '165.633333' status: code: 200 message: OK @@ -134,58 +134,58 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_manifests + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "hello-world", "manifests": - [{"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", - "imageSize": 0, "createdTime": "2021-03-30T12:18:47.6437335Z", "lastUpdateTime": - "2021-03-30T12:18:47.6437335Z", "architecture": "amd64", "os": "linux", "mediaType": + string: '{"registry": "fake_url.azurecr.io", "imageName": "library/hello-world", + "manifests": [{"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", + "imageSize": 0, "createdTime": "2021-04-13T15:10:44.596258Z", "lastUpdateTime": + "2021-04-13T15:10:44.596258Z", "architecture": "amd64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", - "imageSize": 0, "createdTime": "2021-03-30T12:18:47.4863064Z", "lastUpdateTime": - "2021-03-30T12:18:47.4863064Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", - "tags": ["latest"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": - false, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, - {"digest": "sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.9950981Z", "lastUpdateTime": - "2021-03-30T12:18:48.9950981Z", "architecture": "arm", "os": "linux", "mediaType": + true}}, {"digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", + "imageSize": 0, "createdTime": "2021-04-13T15:10:44.0031749Z", "lastUpdateTime": + "2021-04-13T15:10:44.0031749Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + "tags": ["latest", "v1", "v2", "v3", "v4"], "changeableAttributes": {"deleteEnabled": + true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}, {"digest": + "sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1", + "imageSize": 0, "createdTime": "2021-04-13T15:10:44.4329424Z", "lastUpdateTime": + "2021-04-13T15:10:44.4329424Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.0921265Z", "lastUpdateTime": - "2021-03-30T12:18:48.0921265Z", "architecture": "mips64le", "os": "linux", + "imageSize": 0, "createdTime": "2021-04-13T15:10:44.7624881Z", "lastUpdateTime": + "2021-04-13T15:10:44.7624881Z", "architecture": "mips64le", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:963612c5503f3f1674f315c67089dee577d8cc6afc18565e0b4183ae355fb343", - "imageSize": 0, "createdTime": "2021-03-30T12:18:47.9641681Z", "lastUpdateTime": - "2021-03-30T12:18:47.9641681Z", "architecture": "arm64", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T15:10:44.8474328Z", "lastUpdateTime": + "2021-04-13T15:10:44.8474328Z", "architecture": "arm64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:b0408a0f1d74eced127a2658429f336ed8fa48e36d59878f155b19865e5dbd70", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.6908523Z", "lastUpdateTime": - "2021-03-30T12:18:48.6908523Z", "architecture": "amd64", "os": "windows", + "imageSize": 0, "createdTime": "2021-04-13T15:10:45.1142611Z", "lastUpdateTime": + "2021-04-13T15:10:45.1142611Z", "architecture": "amd64", "os": "windows", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:bb7ab0fa94fdd78aca84b27a1bd46c4b811051f9b69905d81f5f267fc6546a9d", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.2834053Z", "lastUpdateTime": - "2021-03-30T12:18:48.2834053Z", "architecture": "ppc64le", "os": "linux", + "imageSize": 0, "createdTime": "2021-04-13T15:10:45.1653089Z", "lastUpdateTime": + "2021-04-13T15:10:45.1653089Z", "architecture": "ppc64le", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.1605587Z", "lastUpdateTime": - "2021-03-30T12:18:48.1605587Z", "architecture": "386", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T15:10:44.3167347Z", "lastUpdateTime": + "2021-04-13T15:10:44.3167347Z", "architecture": "386", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:e49abad529e5d9bd6787f3abeab94e09ba274fe34731349556a850b9aebbf7bf", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.5864242Z", "lastUpdateTime": - "2021-03-30T12:18:48.5864242Z", "architecture": "s390x", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T15:10:45.2709645Z", "lastUpdateTime": + "2021-04-13T15:10:45.2709645Z", "architecture": "s390x", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:e5785cb0c62cebbed4965129bae371f0589cadd6d84798fb58c2c5f9e237efd9", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.4392605Z", "lastUpdateTime": - "2021-03-30T12:18:48.4392605Z", "architecture": "arm", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T15:10:45.4455031Z", "lastUpdateTime": + "2021-04-13T15:10:45.4455031Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}]}' @@ -200,7 +200,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:44 GMT + - Tue, 13 Apr 2021 15:59:27 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_list_registry_artifacts_ascending.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_list_registry_artifacts_ascending.yaml index 8489d905f0f2..c277b36162f1 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_list_registry_artifacts_ascending.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_list_registry_artifacts_ascending.yaml @@ -11,11 +11,11 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_manifests?orderby=timeasc + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests?orderby=timeasc response: body: string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, - visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"hello-world","Action":"metadata_read"}]}]} + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"library/hello-world","Action":"metadata_read"}]}]} ' headers: @@ -27,11 +27,11 @@ interactions: connection: - keep-alive content-length: - - '214' + - '222' content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:45 GMT + - Tue, 13 Apr 2021 15:59:28 GMT docker-distribution-api-version: - registry/2.0 server: @@ -40,7 +40,7 @@ interactions: - max-age=31536000; includeSubDomains - max-age=31536000; includeSubDomains www-authenticate: - - Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:hello-world:metadata_read" + - Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:library/hello-world:metadata_read" x-content-type-options: - nosniff status: @@ -72,7 +72,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:47 GMT + - Tue, 13 Apr 2021 15:59:29 GMT server: - openresty strict-transport-security: @@ -80,12 +80,12 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '333.25' + - '166.266667' status: code: 200 message: OK - request: - body: grant_type=refresh_token&service=fake_url.azurecr.io&scope=repository%3Ahello-world%3Ametadata_read&refresh_token=REDACTED + body: grant_type=refresh_token&service=fake_url.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Ametadata_read&refresh_token=REDACTED headers: Accept: - application/json @@ -94,7 +94,7 @@ interactions: Connection: - keep-alive Content-Length: - - '1079' + - '1089' Content-Type: - application/x-www-form-urlencoded User-Agent: @@ -110,7 +110,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:47 GMT + - Tue, 13 Apr 2021 15:59:29 GMT server: - openresty strict-transport-security: @@ -118,7 +118,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.716667' + - '166.25' status: code: 200 message: OK @@ -134,58 +134,58 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_manifests?orderby=timeasc + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests?orderby=timeasc response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "hello-world", "manifests": - [{"digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", - "imageSize": 0, "createdTime": "2021-03-30T12:18:47.4863064Z", "lastUpdateTime": - "2021-03-30T12:18:47.4863064Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", - "tags": ["latest"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": - false, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, - {"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", - "imageSize": 0, "createdTime": "2021-03-30T12:18:47.6437335Z", "lastUpdateTime": - "2021-03-30T12:18:47.6437335Z", "architecture": "amd64", "os": "linux", "mediaType": + string: '{"registry": "fake_url.azurecr.io", "imageName": "library/hello-world", + "manifests": [{"digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", + "imageSize": 0, "createdTime": "2021-04-13T15:10:44.0031749Z", "lastUpdateTime": + "2021-04-13T15:10:44.0031749Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + "tags": ["latest", "v1", "v2", "v3", "v4"], "changeableAttributes": {"deleteEnabled": + true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}, {"digest": + "sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98", + "imageSize": 0, "createdTime": "2021-04-13T15:10:44.3167347Z", "lastUpdateTime": + "2021-04-13T15:10:44.3167347Z", "architecture": "386", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:963612c5503f3f1674f315c67089dee577d8cc6afc18565e0b4183ae355fb343", - "imageSize": 0, "createdTime": "2021-03-30T12:18:47.9641681Z", "lastUpdateTime": - "2021-03-30T12:18:47.9641681Z", "architecture": "arm64", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1", + "imageSize": 0, "createdTime": "2021-04-13T15:10:44.4329424Z", "lastUpdateTime": + "2021-04-13T15:10:44.4329424Z", "architecture": "arm", "os": "linux", "mediaType": + "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": + {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": + true, "quarantineState": "Passed"}}, {"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", + "imageSize": 0, "createdTime": "2021-04-13T15:10:44.596258Z", "lastUpdateTime": + "2021-04-13T15:10:44.596258Z", "architecture": "amd64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.0921265Z", "lastUpdateTime": - "2021-03-30T12:18:48.0921265Z", "architecture": "mips64le", "os": "linux", + true}}, {"digest": "sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90", + "imageSize": 0, "createdTime": "2021-04-13T15:10:44.7624881Z", "lastUpdateTime": + "2021-04-13T15:10:44.7624881Z", "architecture": "mips64le", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.1605587Z", "lastUpdateTime": - "2021-03-30T12:18:48.1605587Z", "architecture": "386", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:963612c5503f3f1674f315c67089dee577d8cc6afc18565e0b4183ae355fb343", + "imageSize": 0, "createdTime": "2021-04-13T15:10:44.8474328Z", "lastUpdateTime": + "2021-04-13T15:10:44.8474328Z", "architecture": "arm64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:bb7ab0fa94fdd78aca84b27a1bd46c4b811051f9b69905d81f5f267fc6546a9d", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.2834053Z", "lastUpdateTime": - "2021-03-30T12:18:48.2834053Z", "architecture": "ppc64le", "os": "linux", + true, "quarantineState": "Passed"}}, {"digest": "sha256:b0408a0f1d74eced127a2658429f336ed8fa48e36d59878f155b19865e5dbd70", + "imageSize": 0, "createdTime": "2021-04-13T15:10:45.1142611Z", "lastUpdateTime": + "2021-04-13T15:10:45.1142611Z", "architecture": "amd64", "os": "windows", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:e5785cb0c62cebbed4965129bae371f0589cadd6d84798fb58c2c5f9e237efd9", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.4392605Z", "lastUpdateTime": - "2021-03-30T12:18:48.4392605Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": + true, "quarantineState": "Passed"}}, {"digest": "sha256:bb7ab0fa94fdd78aca84b27a1bd46c4b811051f9b69905d81f5f267fc6546a9d", + "imageSize": 0, "createdTime": "2021-04-13T15:10:45.1653089Z", "lastUpdateTime": + "2021-04-13T15:10:45.1653089Z", "architecture": "ppc64le", "os": "linux", + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:e49abad529e5d9bd6787f3abeab94e09ba274fe34731349556a850b9aebbf7bf", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.5864242Z", "lastUpdateTime": - "2021-03-30T12:18:48.5864242Z", "architecture": "s390x", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T15:10:45.2709645Z", "lastUpdateTime": + "2021-04-13T15:10:45.2709645Z", "architecture": "s390x", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:b0408a0f1d74eced127a2658429f336ed8fa48e36d59878f155b19865e5dbd70", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.6908523Z", "lastUpdateTime": - "2021-03-30T12:18:48.6908523Z", "architecture": "amd64", "os": "windows", - "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.9950981Z", "lastUpdateTime": - "2021-03-30T12:18:48.9950981Z", "architecture": "arm", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:e5785cb0c62cebbed4965129bae371f0589cadd6d84798fb58c2c5f9e237efd9", + "imageSize": 0, "createdTime": "2021-04-13T15:10:45.4455031Z", "lastUpdateTime": + "2021-04-13T15:10:45.4455031Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}]}' @@ -200,7 +200,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:47 GMT + - Tue, 13 Apr 2021 15:59:30 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_list_registry_artifacts_by_page.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_list_registry_artifacts_by_page.yaml index 4ee00a1ef699..35e30e1d0ce0 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_list_registry_artifacts_by_page.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_list_registry_artifacts_by_page.yaml @@ -11,11 +11,11 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_manifests?n=2 + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests?n=2 response: body: string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, - visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"hello-world","Action":"metadata_read"}]}]} + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"library/hello-world","Action":"metadata_read"}]}]} ' headers: @@ -27,11 +27,11 @@ interactions: connection: - keep-alive content-length: - - '214' + - '222' content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:48 GMT + - Tue, 13 Apr 2021 15:59:31 GMT docker-distribution-api-version: - registry/2.0 server: @@ -40,7 +40,7 @@ interactions: - max-age=31536000; includeSubDomains - max-age=31536000; includeSubDomains www-authenticate: - - Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:hello-world:metadata_read" + - Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:library/hello-world:metadata_read" x-content-type-options: - nosniff status: @@ -72,7 +72,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:50 GMT + - Tue, 13 Apr 2021 15:59:32 GMT server: - openresty strict-transport-security: @@ -80,12 +80,12 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.933333' + - '166.6' status: code: 200 message: OK - request: - body: grant_type=refresh_token&service=fake_url.azurecr.io&scope=repository%3Ahello-world%3Ametadata_read&refresh_token=REDACTED + body: grant_type=refresh_token&service=fake_url.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Ametadata_read&refresh_token=REDACTED headers: Accept: - application/json @@ -94,7 +94,7 @@ interactions: Connection: - keep-alive Content-Length: - - '1079' + - '1089' Content-Type: - application/x-www-form-urlencoded User-Agent: @@ -110,7 +110,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:50 GMT + - Tue, 13 Apr 2021 15:59:32 GMT server: - openresty strict-transport-security: @@ -118,7 +118,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.833333' + - '166.583333' status: code: 200 message: OK @@ -134,20 +134,20 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_manifests?n=2 + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests?n=2 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "hello-world", "manifests": - [{"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", - "imageSize": 0, "createdTime": "2021-03-30T12:18:47.6437335Z", "lastUpdateTime": - "2021-03-30T12:18:47.6437335Z", "architecture": "amd64", "os": "linux", "mediaType": + string: '{"registry": "fake_url.azurecr.io", "imageName": "library/hello-world", + "manifests": [{"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", + "imageSize": 0, "createdTime": "2021-04-13T15:10:44.596258Z", "lastUpdateTime": + "2021-04-13T15:10:44.596258Z", "architecture": "amd64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", - "imageSize": 0, "createdTime": "2021-03-30T12:18:47.4863064Z", "lastUpdateTime": - "2021-03-30T12:18:47.4863064Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", - "tags": ["latest"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": - false, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}]}' + true}}, {"digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", + "imageSize": 0, "createdTime": "2021-04-13T15:10:44.0031749Z", "lastUpdateTime": + "2021-04-13T15:10:44.0031749Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + "tags": ["latest", "v1", "v2", "v3", "v4"], "changeableAttributes": {"deleteEnabled": + true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}]}' headers: access-control-expose-headers: - Docker-Content-Digest @@ -157,15 +157,15 @@ interactions: connection: - keep-alive content-length: - - '915' + - '886' content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:50 GMT + - Tue, 13 Apr 2021 15:59:32 GMT docker-distribution-api-version: - registry/2.0 link: - - ; + - ; rel="next" server: - openresty @@ -189,11 +189,11 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_manifests?last=sha256%3A308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests?last=sha256%3A308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24&n=2&orderby= response: body: string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, - visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"hello-world","Action":"metadata_read"}]}]} + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"library/hello-world","Action":"metadata_read"}]}]} ' headers: @@ -205,11 +205,11 @@ interactions: connection: - keep-alive content-length: - - '214' + - '222' content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:51 GMT + - Tue, 13 Apr 2021 15:59:32 GMT docker-distribution-api-version: - registry/2.0 server: @@ -218,7 +218,7 @@ interactions: - max-age=31536000; includeSubDomains - max-age=31536000; includeSubDomains www-authenticate: - - Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:hello-world:metadata_read" + - Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:library/hello-world:metadata_read" x-content-type-options: - nosniff status: @@ -250,7 +250,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:51 GMT + - Tue, 13 Apr 2021 15:59:33 GMT server: - openresty strict-transport-security: @@ -258,12 +258,12 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.816667' + - '166.566667' status: code: 200 message: OK - request: - body: grant_type=refresh_token&service=fake_url.azurecr.io&scope=repository%3Ahello-world%3Ametadata_read&refresh_token=REDACTED + body: grant_type=refresh_token&service=fake_url.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Ametadata_read&refresh_token=REDACTED headers: Accept: - application/json @@ -272,7 +272,7 @@ interactions: Connection: - keep-alive Content-Length: - - '1079' + - '1089' Content-Type: - application/x-www-form-urlencoded User-Agent: @@ -288,7 +288,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:51 GMT + - Tue, 13 Apr 2021 15:59:33 GMT server: - openresty strict-transport-security: @@ -296,7 +296,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.8' + - '166.55' status: code: 200 message: OK @@ -312,18 +312,18 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_manifests?last=sha256%3A308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests?last=sha256%3A308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24&n=2&orderby= response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "hello-world", "manifests": - [{"digest": "sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.9950981Z", "lastUpdateTime": - "2021-03-30T12:18:48.9950981Z", "architecture": "arm", "os": "linux", "mediaType": + string: '{"registry": "fake_url.azurecr.io", "imageName": "library/hello-world", + "manifests": [{"digest": "sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1", + "imageSize": 0, "createdTime": "2021-04-13T15:10:44.4329424Z", "lastUpdateTime": + "2021-04-13T15:10:44.4329424Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.0921265Z", "lastUpdateTime": - "2021-03-30T12:18:48.0921265Z", "architecture": "mips64le", "os": "linux", + "imageSize": 0, "createdTime": "2021-04-13T15:10:44.7624881Z", "lastUpdateTime": + "2021-04-13T15:10:44.7624881Z", "architecture": "mips64le", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}]}' @@ -336,15 +336,15 @@ interactions: connection: - keep-alive content-length: - - '928' + - '936' content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:51 GMT + - Tue, 13 Apr 2021 15:59:33 GMT docker-distribution-api-version: - registry/2.0 link: - - ; + - ; rel="next" server: - openresty @@ -368,11 +368,11 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_manifests?last=sha256%3A88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests?last=sha256%3A88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90&n=2&orderby= response: body: string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, - visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"hello-world","Action":"metadata_read"}]}]} + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"library/hello-world","Action":"metadata_read"}]}]} ' headers: @@ -384,11 +384,11 @@ interactions: connection: - keep-alive content-length: - - '214' + - '222' content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:51 GMT + - Tue, 13 Apr 2021 15:59:33 GMT docker-distribution-api-version: - registry/2.0 server: @@ -397,7 +397,7 @@ interactions: - max-age=31536000; includeSubDomains - max-age=31536000; includeSubDomains www-authenticate: - - Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:hello-world:metadata_read" + - Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:library/hello-world:metadata_read" x-content-type-options: - nosniff status: @@ -429,7 +429,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:52 GMT + - Tue, 13 Apr 2021 15:59:33 GMT server: - openresty strict-transport-security: @@ -437,12 +437,12 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.783333' + - '166.533333' status: code: 200 message: OK - request: - body: grant_type=refresh_token&service=fake_url.azurecr.io&scope=repository%3Ahello-world%3Ametadata_read&refresh_token=REDACTED + body: grant_type=refresh_token&service=fake_url.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Ametadata_read&refresh_token=REDACTED headers: Accept: - application/json @@ -451,7 +451,7 @@ interactions: Connection: - keep-alive Content-Length: - - '1079' + - '1089' Content-Type: - application/x-www-form-urlencoded User-Agent: @@ -467,7 +467,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:52 GMT + - Tue, 13 Apr 2021 15:59:34 GMT server: - openresty strict-transport-security: @@ -475,7 +475,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.766667' + - '166.516667' status: code: 200 message: OK @@ -491,18 +491,18 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_manifests?last=sha256%3A88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests?last=sha256%3A88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90&n=2&orderby= response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "hello-world", "manifests": - [{"digest": "sha256:963612c5503f3f1674f315c67089dee577d8cc6afc18565e0b4183ae355fb343", - "imageSize": 0, "createdTime": "2021-03-30T12:18:47.9641681Z", "lastUpdateTime": - "2021-03-30T12:18:47.9641681Z", "architecture": "arm64", "os": "linux", "mediaType": + string: '{"registry": "fake_url.azurecr.io", "imageName": "library/hello-world", + "manifests": [{"digest": "sha256:963612c5503f3f1674f315c67089dee577d8cc6afc18565e0b4183ae355fb343", + "imageSize": 0, "createdTime": "2021-04-13T15:10:44.8474328Z", "lastUpdateTime": + "2021-04-13T15:10:44.8474328Z", "architecture": "arm64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:b0408a0f1d74eced127a2658429f336ed8fa48e36d59878f155b19865e5dbd70", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.6908523Z", "lastUpdateTime": - "2021-03-30T12:18:48.6908523Z", "architecture": "amd64", "os": "windows", + "imageSize": 0, "createdTime": "2021-04-13T15:10:45.1142611Z", "lastUpdateTime": + "2021-04-13T15:10:45.1142611Z", "architecture": "amd64", "os": "windows", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}]}' @@ -515,15 +515,15 @@ interactions: connection: - keep-alive content-length: - - '929' + - '937' content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:52 GMT + - Tue, 13 Apr 2021 15:59:34 GMT docker-distribution-api-version: - registry/2.0 link: - - ; + - ; rel="next" server: - openresty @@ -547,11 +547,11 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_manifests?last=sha256%3Ab0408a0f1d74eced127a2658429f336ed8fa48e36d59878f155b19865e5dbd70&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests?last=sha256%3Ab0408a0f1d74eced127a2658429f336ed8fa48e36d59878f155b19865e5dbd70&n=2&orderby= response: body: string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, - visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"hello-world","Action":"metadata_read"}]}]} + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"library/hello-world","Action":"metadata_read"}]}]} ' headers: @@ -563,11 +563,11 @@ interactions: connection: - keep-alive content-length: - - '214' + - '222' content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:52 GMT + - Tue, 13 Apr 2021 15:59:34 GMT docker-distribution-api-version: - registry/2.0 server: @@ -576,7 +576,7 @@ interactions: - max-age=31536000; includeSubDomains - max-age=31536000; includeSubDomains www-authenticate: - - Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:hello-world:metadata_read" + - Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:library/hello-world:metadata_read" x-content-type-options: - nosniff status: @@ -608,7 +608,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:53 GMT + - Tue, 13 Apr 2021 15:59:34 GMT server: - openresty strict-transport-security: @@ -616,12 +616,12 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.75' + - '166.5' status: code: 200 message: OK - request: - body: grant_type=refresh_token&service=fake_url.azurecr.io&scope=repository%3Ahello-world%3Ametadata_read&refresh_token=REDACTED + body: grant_type=refresh_token&service=fake_url.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Ametadata_read&refresh_token=REDACTED headers: Accept: - application/json @@ -630,7 +630,7 @@ interactions: Connection: - keep-alive Content-Length: - - '1079' + - '1089' Content-Type: - application/x-www-form-urlencoded User-Agent: @@ -646,7 +646,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:53 GMT + - Tue, 13 Apr 2021 15:59:34 GMT server: - openresty strict-transport-security: @@ -654,7 +654,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.733333' + - '166.483333' status: code: 200 message: OK @@ -670,18 +670,18 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_manifests?last=sha256%3Ab0408a0f1d74eced127a2658429f336ed8fa48e36d59878f155b19865e5dbd70&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests?last=sha256%3Ab0408a0f1d74eced127a2658429f336ed8fa48e36d59878f155b19865e5dbd70&n=2&orderby= response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "hello-world", "manifests": - [{"digest": "sha256:bb7ab0fa94fdd78aca84b27a1bd46c4b811051f9b69905d81f5f267fc6546a9d", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.2834053Z", "lastUpdateTime": - "2021-03-30T12:18:48.2834053Z", "architecture": "ppc64le", "os": "linux", + string: '{"registry": "fake_url.azurecr.io", "imageName": "library/hello-world", + "manifests": [{"digest": "sha256:bb7ab0fa94fdd78aca84b27a1bd46c4b811051f9b69905d81f5f267fc6546a9d", + "imageSize": 0, "createdTime": "2021-04-13T15:10:45.1653089Z", "lastUpdateTime": + "2021-04-13T15:10:45.1653089Z", "architecture": "ppc64le", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.1605587Z", "lastUpdateTime": - "2021-03-30T12:18:48.1605587Z", "architecture": "386", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T15:10:44.3167347Z", "lastUpdateTime": + "2021-04-13T15:10:44.3167347Z", "architecture": "386", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}]}' @@ -694,15 +694,15 @@ interactions: connection: - keep-alive content-length: - - '927' + - '935' content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:53 GMT + - Tue, 13 Apr 2021 15:59:35 GMT docker-distribution-api-version: - registry/2.0 link: - - ; + - ; rel="next" server: - openresty @@ -726,11 +726,11 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_manifests?last=sha256%3Acb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests?last=sha256%3Acb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98&n=2&orderby= response: body: string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, - visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"hello-world","Action":"metadata_read"}]}]} + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"library/hello-world","Action":"metadata_read"}]}]} ' headers: @@ -742,11 +742,11 @@ interactions: connection: - keep-alive content-length: - - '214' + - '222' content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:53 GMT + - Tue, 13 Apr 2021 15:59:35 GMT docker-distribution-api-version: - registry/2.0 server: @@ -755,7 +755,7 @@ interactions: - max-age=31536000; includeSubDomains - max-age=31536000; includeSubDomains www-authenticate: - - Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:hello-world:metadata_read" + - Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:library/hello-world:metadata_read" x-content-type-options: - nosniff status: @@ -787,7 +787,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:54 GMT + - Tue, 13 Apr 2021 15:59:35 GMT server: - openresty strict-transport-security: @@ -795,12 +795,12 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.716667' + - '166.466667' status: code: 200 message: OK - request: - body: grant_type=refresh_token&service=fake_url.azurecr.io&scope=repository%3Ahello-world%3Ametadata_read&refresh_token=REDACTED + body: grant_type=refresh_token&service=fake_url.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Ametadata_read&refresh_token=REDACTED headers: Accept: - application/json @@ -809,7 +809,7 @@ interactions: Connection: - keep-alive Content-Length: - - '1079' + - '1089' Content-Type: - application/x-www-form-urlencoded User-Agent: @@ -825,7 +825,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:54 GMT + - Tue, 13 Apr 2021 15:59:35 GMT server: - openresty strict-transport-security: @@ -833,7 +833,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.7' + - '166.45' status: code: 200 message: OK @@ -849,18 +849,18 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_manifests?last=sha256%3Acb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests?last=sha256%3Acb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98&n=2&orderby= response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "hello-world", "manifests": - [{"digest": "sha256:e49abad529e5d9bd6787f3abeab94e09ba274fe34731349556a850b9aebbf7bf", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.5864242Z", "lastUpdateTime": - "2021-03-30T12:18:48.5864242Z", "architecture": "s390x", "os": "linux", "mediaType": + string: '{"registry": "fake_url.azurecr.io", "imageName": "library/hello-world", + "manifests": [{"digest": "sha256:e49abad529e5d9bd6787f3abeab94e09ba274fe34731349556a850b9aebbf7bf", + "imageSize": 0, "createdTime": "2021-04-13T15:10:45.2709645Z", "lastUpdateTime": + "2021-04-13T15:10:45.2709645Z", "architecture": "s390x", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:e5785cb0c62cebbed4965129bae371f0589cadd6d84798fb58c2c5f9e237efd9", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.4392605Z", "lastUpdateTime": - "2021-03-30T12:18:48.4392605Z", "architecture": "arm", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T15:10:45.4455031Z", "lastUpdateTime": + "2021-04-13T15:10:45.4455031Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}]}' @@ -873,11 +873,11 @@ interactions: connection: - keep-alive content-length: - - '925' + - '933' content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:54 GMT + - Tue, 13 Apr 2021 15:59:35 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_list_registry_artifacts_descending.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_list_registry_artifacts_descending.yaml index a19aeb13d637..7e6531098b94 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_list_registry_artifacts_descending.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_list_registry_artifacts_descending.yaml @@ -11,11 +11,11 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_manifests?orderby=timedesc + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests?orderby=timedesc response: body: string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, - visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"hello-world","Action":"metadata_read"}]}]} + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"library/hello-world","Action":"metadata_read"}]}]} ' headers: @@ -27,11 +27,11 @@ interactions: connection: - keep-alive content-length: - - '214' + - '222' content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:55 GMT + - Tue, 13 Apr 2021 15:59:36 GMT docker-distribution-api-version: - registry/2.0 server: @@ -40,7 +40,7 @@ interactions: - max-age=31536000; includeSubDomains - max-age=31536000; includeSubDomains www-authenticate: - - Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:hello-world:metadata_read" + - Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:library/hello-world:metadata_read" x-content-type-options: - nosniff status: @@ -72,7 +72,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:57 GMT + - Tue, 13 Apr 2021 15:59:37 GMT server: - openresty strict-transport-security: @@ -80,12 +80,12 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.733333' + - '166.166667' status: code: 200 message: OK - request: - body: grant_type=refresh_token&service=fake_url.azurecr.io&scope=repository%3Ahello-world%3Ametadata_read&refresh_token=REDACTED + body: grant_type=refresh_token&service=fake_url.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Ametadata_read&refresh_token=REDACTED headers: Accept: - application/json @@ -94,7 +94,7 @@ interactions: Connection: - keep-alive Content-Length: - - '1079' + - '1089' Content-Type: - application/x-www-form-urlencoded User-Agent: @@ -110,7 +110,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:57 GMT + - Tue, 13 Apr 2021 15:59:37 GMT server: - openresty strict-transport-security: @@ -118,7 +118,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.466667' + - '165.966667' status: code: 200 message: OK @@ -134,60 +134,60 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_manifests?orderby=timedesc + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests?orderby=timedesc response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "hello-world", "manifests": - [{"digest": "sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.9950981Z", "lastUpdateTime": - "2021-03-30T12:18:48.9950981Z", "architecture": "arm", "os": "linux", "mediaType": + string: '{"registry": "fake_url.azurecr.io", "imageName": "library/hello-world", + "manifests": [{"digest": "sha256:e5785cb0c62cebbed4965129bae371f0589cadd6d84798fb58c2c5f9e237efd9", + "imageSize": 0, "createdTime": "2021-04-13T15:10:45.4455031Z", "lastUpdateTime": + "2021-04-13T15:10:45.4455031Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:b0408a0f1d74eced127a2658429f336ed8fa48e36d59878f155b19865e5dbd70", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.6908523Z", "lastUpdateTime": - "2021-03-30T12:18:48.6908523Z", "architecture": "amd64", "os": "windows", - "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:e49abad529e5d9bd6787f3abeab94e09ba274fe34731349556a850b9aebbf7bf", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.5864242Z", "lastUpdateTime": - "2021-03-30T12:18:48.5864242Z", "architecture": "s390x", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:e5785cb0c62cebbed4965129bae371f0589cadd6d84798fb58c2c5f9e237efd9", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.4392605Z", "lastUpdateTime": - "2021-03-30T12:18:48.4392605Z", "architecture": "arm", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T15:10:45.2709645Z", "lastUpdateTime": + "2021-04-13T15:10:45.2709645Z", "architecture": "s390x", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:bb7ab0fa94fdd78aca84b27a1bd46c4b811051f9b69905d81f5f267fc6546a9d", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.2834053Z", "lastUpdateTime": - "2021-03-30T12:18:48.2834053Z", "architecture": "ppc64le", "os": "linux", + "imageSize": 0, "createdTime": "2021-04-13T15:10:45.1653089Z", "lastUpdateTime": + "2021-04-13T15:10:45.1653089Z", "architecture": "ppc64le", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.1605587Z", "lastUpdateTime": - "2021-03-30T12:18:48.1605587Z", "architecture": "386", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:b0408a0f1d74eced127a2658429f336ed8fa48e36d59878f155b19865e5dbd70", + "imageSize": 0, "createdTime": "2021-04-13T15:10:45.1142611Z", "lastUpdateTime": + "2021-04-13T15:10:45.1142611Z", "architecture": "amd64", "os": "windows", + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": + {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": + true, "quarantineState": "Passed"}}, {"digest": "sha256:963612c5503f3f1674f315c67089dee577d8cc6afc18565e0b4183ae355fb343", + "imageSize": 0, "createdTime": "2021-04-13T15:10:44.8474328Z", "lastUpdateTime": + "2021-04-13T15:10:44.8474328Z", "architecture": "arm64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.0921265Z", "lastUpdateTime": - "2021-03-30T12:18:48.0921265Z", "architecture": "mips64le", "os": "linux", + "imageSize": 0, "createdTime": "2021-04-13T15:10:44.7624881Z", "lastUpdateTime": + "2021-04-13T15:10:44.7624881Z", "architecture": "mips64le", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:963612c5503f3f1674f315c67089dee577d8cc6afc18565e0b4183ae355fb343", - "imageSize": 0, "createdTime": "2021-03-30T12:18:47.9641681Z", "lastUpdateTime": - "2021-03-30T12:18:47.9641681Z", "architecture": "arm64", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", + "imageSize": 0, "createdTime": "2021-04-13T15:10:44.596258Z", "lastUpdateTime": + "2021-04-13T15:10:44.596258Z", "architecture": "amd64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", - "imageSize": 0, "createdTime": "2021-03-30T12:18:47.6437335Z", "lastUpdateTime": - "2021-03-30T12:18:47.6437335Z", "architecture": "amd64", "os": "linux", "mediaType": + true}}, {"digest": "sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1", + "imageSize": 0, "createdTime": "2021-04-13T15:10:44.4329424Z", "lastUpdateTime": + "2021-04-13T15:10:44.4329424Z", "architecture": "arm", "os": "linux", "mediaType": + "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": + {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": + true, "quarantineState": "Passed"}}, {"digest": "sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98", + "imageSize": 0, "createdTime": "2021-04-13T15:10:44.3167347Z", "lastUpdateTime": + "2021-04-13T15:10:44.3167347Z", "architecture": "386", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", - "imageSize": 0, "createdTime": "2021-03-30T12:18:47.4863064Z", "lastUpdateTime": - "2021-03-30T12:18:47.4863064Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", - "tags": ["latest"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": - false, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}]}' + "imageSize": 0, "createdTime": "2021-04-13T15:10:44.0031749Z", "lastUpdateTime": + "2021-04-13T15:10:44.0031749Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + "tags": ["latest", "v1", "v2", "v3", "v4"], "changeableAttributes": {"deleteEnabled": + true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}]}' headers: access-control-expose-headers: - Docker-Content-Digest @@ -199,7 +199,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:58 GMT + - Tue, 13 Apr 2021 15:59:38 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_list_tags.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_list_tags.yaml index 4dcee7b2d194..5648956f3dbc 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_list_tags.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_list_tags.yaml @@ -11,11 +11,11 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_tags + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags response: body: string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, - visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"hello-world","Action":"metadata_read"}]}]} + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"library/hello-world","Action":"metadata_read"}]}]} ' headers: @@ -27,11 +27,11 @@ interactions: connection: - keep-alive content-length: - - '214' + - '222' content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:58:58 GMT + - Tue, 13 Apr 2021 15:59:38 GMT docker-distribution-api-version: - registry/2.0 server: @@ -40,7 +40,7 @@ interactions: - max-age=31536000; includeSubDomains - max-age=31536000; includeSubDomains www-authenticate: - - Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:hello-world:metadata_read" + - Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:library/hello-world:metadata_read" x-content-type-options: - nosniff status: @@ -72,7 +72,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:59:00 GMT + - Tue, 13 Apr 2021 15:59:40 GMT server: - openresty strict-transport-security: @@ -80,12 +80,12 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '333.166667' + - '166.066667' status: code: 200 message: OK - request: - body: grant_type=refresh_token&service=fake_url.azurecr.io&scope=repository%3Ahello-world%3Ametadata_read&refresh_token=REDACTED + body: grant_type=refresh_token&service=fake_url.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Ametadata_read&refresh_token=REDACTED headers: Accept: - application/json @@ -94,7 +94,7 @@ interactions: Connection: - keep-alive Content-Length: - - '1079' + - '1089' Content-Type: - application/x-www-form-urlencoded User-Agent: @@ -110,7 +110,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:59:00 GMT + - Tue, 13 Apr 2021 15:59:40 GMT server: - openresty strict-transport-security: @@ -118,7 +118,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.916667' + - '165.85' status: code: 200 message: OK @@ -134,14 +134,30 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_tags + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "hello-world", "tags": - [{"name": "latest", "digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", - "createdTime": "2021-03-30T12:18:52.8272444Z", "lastUpdateTime": "2021-03-30T12:18:52.8272444Z", - "signed": false, "quarantineState": "Passed", "changeableAttributes": {"deleteEnabled": - true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}]}' + string: '{"registry": "fake_url.azurecr.io", "imageName": "library/hello-world", + "tags": [{"name": "latest", "digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", + "createdTime": "2021-04-13T15:10:43.9172084Z", "lastUpdateTime": "2021-04-13T15:10:43.9172084Z", + "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}, {"name": "v1", "digest": + "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", + "createdTime": "2021-04-13T15:10:45.0282838Z", "lastUpdateTime": "2021-04-13T15:10:45.0282838Z", + "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}, {"name": "v2", "digest": + "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", + "createdTime": "2021-04-13T15:10:44.668453Z", "lastUpdateTime": "2021-04-13T15:10:44.668453Z", + "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}, {"name": "v3", "digest": + "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", + "createdTime": "2021-04-13T15:10:44.2755611Z", "lastUpdateTime": "2021-04-13T15:10:44.2755611Z", + "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}, {"name": "v4", "digest": + "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", + "createdTime": "2021-04-13T15:10:45.3229504Z", "lastUpdateTime": "2021-04-13T15:10:45.3229504Z", + "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}]}' headers: access-control-expose-headers: - Docker-Content-Digest @@ -151,11 +167,11 @@ interactions: connection: - keep-alive content-length: - - '410' + - '1625' content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:59:00 GMT + - Tue, 13 Apr 2021 15:59:40 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_list_tags_ascending.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_list_tags_ascending.yaml index 97b6cb8243de..ada0b3b907c5 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_list_tags_ascending.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_list_tags_ascending.yaml @@ -11,11 +11,11 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_tags?orderby=timeasc + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags?orderby=timeasc response: body: string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, - visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"hello-world","Action":"metadata_read"}]}]} + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"library/hello-world","Action":"metadata_read"}]}]} ' headers: @@ -27,11 +27,11 @@ interactions: connection: - keep-alive content-length: - - '214' + - '222' content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:59:01 GMT + - Tue, 13 Apr 2021 15:59:41 GMT docker-distribution-api-version: - registry/2.0 server: @@ -40,7 +40,7 @@ interactions: - max-age=31536000; includeSubDomains - max-age=31536000; includeSubDomains www-authenticate: - - Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:hello-world:metadata_read" + - Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:library/hello-world:metadata_read" x-content-type-options: - nosniff status: @@ -72,7 +72,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:59:03 GMT + - Tue, 13 Apr 2021 15:59:42 GMT server: - openresty strict-transport-security: @@ -80,12 +80,12 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.766667' + - '166.1' status: code: 200 message: OK - request: - body: grant_type=refresh_token&service=fake_url.azurecr.io&scope=repository%3Ahello-world%3Ametadata_read&refresh_token=REDACTED + body: grant_type=refresh_token&service=fake_url.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Ametadata_read&refresh_token=REDACTED headers: Accept: - application/json @@ -94,7 +94,7 @@ interactions: Connection: - keep-alive Content-Length: - - '1079' + - '1089' Content-Type: - application/x-www-form-urlencoded User-Agent: @@ -110,7 +110,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:59:03 GMT + - Tue, 13 Apr 2021 15:59:43 GMT server: - openresty strict-transport-security: @@ -118,7 +118,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.416667' + - '165.866667' status: code: 200 message: OK @@ -134,14 +134,30 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_tags?orderby=timeasc + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags?orderby=timeasc response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "hello-world", "tags": - [{"name": "latest", "digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", - "createdTime": "2021-03-30T12:18:52.8272444Z", "lastUpdateTime": "2021-03-30T12:18:52.8272444Z", - "signed": false, "quarantineState": "Passed", "changeableAttributes": {"deleteEnabled": - true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}]}' + string: '{"registry": "fake_url.azurecr.io", "imageName": "library/hello-world", + "tags": [{"name": "latest", "digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", + "createdTime": "2021-04-13T15:10:43.9172084Z", "lastUpdateTime": "2021-04-13T15:10:43.9172084Z", + "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}, {"name": "v3", "digest": + "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", + "createdTime": "2021-04-13T15:10:44.2755611Z", "lastUpdateTime": "2021-04-13T15:10:44.2755611Z", + "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}, {"name": "v2", "digest": + "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", + "createdTime": "2021-04-13T15:10:44.668453Z", "lastUpdateTime": "2021-04-13T15:10:44.668453Z", + "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}, {"name": "v1", "digest": + "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", + "createdTime": "2021-04-13T15:10:45.0282838Z", "lastUpdateTime": "2021-04-13T15:10:45.0282838Z", + "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}, {"name": "v4", "digest": + "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", + "createdTime": "2021-04-13T15:10:45.3229504Z", "lastUpdateTime": "2021-04-13T15:10:45.3229504Z", + "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}]}' headers: access-control-expose-headers: - Docker-Content-Digest @@ -151,11 +167,11 @@ interactions: connection: - keep-alive content-length: - - '410' + - '1625' content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:59:03 GMT + - Tue, 13 Apr 2021 15:59:43 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_list_tags_by_page.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_list_tags_by_page.yaml index e8338508d82e..e78c30a9269b 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_list_tags_by_page.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_list_tags_by_page.yaml @@ -11,11 +11,11 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_tags?n=2 + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags?n=2 response: body: string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, - visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"hello-world","Action":"metadata_read"}]}]} + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"library/hello-world","Action":"metadata_read"}]}]} ' headers: @@ -27,11 +27,11 @@ interactions: connection: - keep-alive content-length: - - '214' + - '222' content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:59:04 GMT + - Tue, 13 Apr 2021 15:59:43 GMT docker-distribution-api-version: - registry/2.0 server: @@ -40,7 +40,7 @@ interactions: - max-age=31536000; includeSubDomains - max-age=31536000; includeSubDomains www-authenticate: - - Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:hello-world:metadata_read" + - Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:library/hello-world:metadata_read" x-content-type-options: - nosniff status: @@ -72,7 +72,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:59:05 GMT + - Tue, 13 Apr 2021 15:59:45 GMT server: - openresty strict-transport-security: @@ -80,12 +80,12 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.7' + - '166.4' status: code: 200 message: OK - request: - body: grant_type=refresh_token&service=fake_url.azurecr.io&scope=repository%3Ahello-world%3Ametadata_read&refresh_token=REDACTED + body: grant_type=refresh_token&service=fake_url.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Ametadata_read&refresh_token=REDACTED headers: Accept: - application/json @@ -94,7 +94,7 @@ interactions: Connection: - keep-alive Content-Length: - - '1079' + - '1089' Content-Type: - application/x-www-form-urlencoded User-Agent: @@ -110,7 +110,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:59:05 GMT + - Tue, 13 Apr 2021 15:59:45 GMT server: - openresty strict-transport-security: @@ -118,7 +118,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.666667' + - '166.383333' status: code: 200 message: OK @@ -134,14 +134,18 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_tags?n=2 + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags?n=2 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "hello-world", "tags": - [{"name": "latest", "digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", - "createdTime": "2021-03-30T12:18:52.8272444Z", "lastUpdateTime": "2021-03-30T12:18:52.8272444Z", - "signed": false, "quarantineState": "Passed", "changeableAttributes": {"deleteEnabled": - true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}]}' + string: '{"registry": "fake_url.azurecr.io", "imageName": "library/hello-world", + "tags": [{"name": "latest", "digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", + "createdTime": "2021-04-13T15:10:43.9172084Z", "lastUpdateTime": "2021-04-13T15:10:43.9172084Z", + "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}, {"name": "v1", "digest": + "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", + "createdTime": "2021-04-13T15:10:45.0282838Z", "lastUpdateTime": "2021-04-13T15:10:45.0282838Z", + "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}]}' headers: access-control-expose-headers: - Docker-Content-Digest @@ -151,11 +155,357 @@ interactions: connection: - keep-alive content-length: - - '410' + - '700' content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:59:05 GMT + - Tue, 13 Apr 2021 15:59:45 GMT + docker-distribution-api-version: + - registry/2.0 + link: + - ; rel="next" + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags?last=v1&n=2&orderby= + response: + body: + string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"library/hello-world","Action":"metadata_read"}]}]} + + ' + headers: + access-control-expose-headers: + - Docker-Content-Digest + - WWW-Authenticate + - Link + - X-Ms-Correlation-Request-Id + connection: + - keep-alive + content-length: + - '222' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 13 Apr 2021 15:59:45 GMT + docker-distribution-api-version: + - registry/2.0 + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + - max-age=31536000; includeSubDomains + www-authenticate: + - Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:library/hello-world:metadata_read" + x-content-type-options: + - nosniff + status: + code: 401 + message: Unauthorized +- request: + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1343' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 13 Apr 2021 15:59:45 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '166.366667' + status: + code: 200 + message: OK +- request: + body: grant_type=refresh_token&service=fake_url.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Ametadata_read&refresh_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1089' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/token + response: + body: + string: '{"access_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 13 Apr 2021 15:59:46 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '166.35' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags?last=v1&n=2&orderby= + response: + body: + string: '{"registry": "fake_url.azurecr.io", "imageName": "library/hello-world", + "tags": [{"name": "v2", "digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", + "createdTime": "2021-04-13T15:10:44.668453Z", "lastUpdateTime": "2021-04-13T15:10:44.668453Z", + "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}, {"name": "v3", "digest": + "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", + "createdTime": "2021-04-13T15:10:44.2755611Z", "lastUpdateTime": "2021-04-13T15:10:44.2755611Z", + "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}]}' + headers: + access-control-expose-headers: + - Docker-Content-Digest + - WWW-Authenticate + - Link + - X-Ms-Correlation-Request-Id + connection: + - keep-alive + content-length: + - '694' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 13 Apr 2021 15:59:46 GMT + docker-distribution-api-version: + - registry/2.0 + link: + - ; rel="next" + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags?last=v3&n=2&orderby= + response: + body: + string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"library/hello-world","Action":"metadata_read"}]}]} + + ' + headers: + access-control-expose-headers: + - Docker-Content-Digest + - WWW-Authenticate + - Link + - X-Ms-Correlation-Request-Id + connection: + - keep-alive + content-length: + - '222' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 13 Apr 2021 15:59:46 GMT + docker-distribution-api-version: + - registry/2.0 + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + - max-age=31536000; includeSubDomains + www-authenticate: + - Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:library/hello-world:metadata_read" + x-content-type-options: + - nosniff + status: + code: 401 + message: Unauthorized +- request: + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1343' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 13 Apr 2021 15:59:46 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '166.333333' + status: + code: 200 + message: OK +- request: + body: grant_type=refresh_token&service=fake_url.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Ametadata_read&refresh_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1089' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/token + response: + body: + string: '{"access_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 13 Apr 2021 15:59:46 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '166.316667' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags?last=v3&n=2&orderby= + response: + body: + string: '{"registry": "fake_url.azurecr.io", "imageName": "library/hello-world", + "tags": [{"name": "v4", "digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", + "createdTime": "2021-04-13T15:10:45.3229504Z", "lastUpdateTime": "2021-04-13T15:10:45.3229504Z", + "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}]}' + headers: + access-control-expose-headers: + - Docker-Content-Digest + - WWW-Authenticate + - Link + - X-Ms-Correlation-Request-Id + connection: + - keep-alive + content-length: + - '387' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 13 Apr 2021 15:59:46 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_list_tags_descending.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_list_tags_descending.yaml index c0635b0f0b28..8a9c8ffdebdf 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_list_tags_descending.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_list_tags_descending.yaml @@ -11,11 +11,11 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_tags?orderby=timedesc + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags?orderby=timedesc response: body: string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, - visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"hello-world","Action":"metadata_read"}]}]} + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"library/hello-world","Action":"metadata_read"}]}]} ' headers: @@ -27,11 +27,11 @@ interactions: connection: - keep-alive content-length: - - '214' + - '222' content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:59:06 GMT + - Tue, 13 Apr 2021 15:59:47 GMT docker-distribution-api-version: - registry/2.0 server: @@ -40,7 +40,7 @@ interactions: - max-age=31536000; includeSubDomains - max-age=31536000; includeSubDomains www-authenticate: - - Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:hello-world:metadata_read" + - Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:library/hello-world:metadata_read" x-content-type-options: - nosniff status: @@ -72,7 +72,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:59:08 GMT + - Tue, 13 Apr 2021 15:59:49 GMT server: - openresty strict-transport-security: @@ -80,12 +80,12 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.65' + - '166.3' status: code: 200 message: OK - request: - body: grant_type=refresh_token&service=fake_url.azurecr.io&scope=repository%3Ahello-world%3Ametadata_read&refresh_token=REDACTED + body: grant_type=refresh_token&service=fake_url.azurecr.io&scope=repository%3Alibrary%2Fhello-world%3Ametadata_read&refresh_token=REDACTED headers: Accept: - application/json @@ -94,7 +94,7 @@ interactions: Connection: - keep-alive Content-Length: - - '1079' + - '1089' Content-Type: - application/x-www-form-urlencoded User-Agent: @@ -110,7 +110,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:59:08 GMT + - Tue, 13 Apr 2021 15:59:49 GMT server: - openresty strict-transport-security: @@ -118,7 +118,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.633333' + - '166.25' status: code: 200 message: OK @@ -134,14 +134,30 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_tags?orderby=timedesc + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags?orderby=timedesc response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "hello-world", "tags": - [{"name": "latest", "digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", - "createdTime": "2021-03-30T12:18:52.8272444Z", "lastUpdateTime": "2021-03-30T12:18:52.8272444Z", - "signed": false, "quarantineState": "Passed", "changeableAttributes": {"deleteEnabled": - true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}]}' + string: '{"registry": "fake_url.azurecr.io", "imageName": "library/hello-world", + "tags": [{"name": "v4", "digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", + "createdTime": "2021-04-13T15:10:45.3229504Z", "lastUpdateTime": "2021-04-13T15:10:45.3229504Z", + "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}, {"name": "v1", "digest": + "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", + "createdTime": "2021-04-13T15:10:45.0282838Z", "lastUpdateTime": "2021-04-13T15:10:45.0282838Z", + "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}, {"name": "v2", "digest": + "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", + "createdTime": "2021-04-13T15:10:44.668453Z", "lastUpdateTime": "2021-04-13T15:10:44.668453Z", + "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}, {"name": "v3", "digest": + "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", + "createdTime": "2021-04-13T15:10:44.2755611Z", "lastUpdateTime": "2021-04-13T15:10:44.2755611Z", + "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}, {"name": "latest", "digest": + "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", + "createdTime": "2021-04-13T15:10:43.9172084Z", "lastUpdateTime": "2021-04-13T15:10:43.9172084Z", + "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}]}' headers: access-control-expose-headers: - Docker-Content-Digest @@ -151,11 +167,11 @@ interactions: connection: - keep-alive content-length: - - '410' + - '1625' content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:59:08 GMT + - Tue, 13 Apr 2021 15:59:49 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_set_manifest_properties.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_set_manifest_properties.yaml index 694fbb89ee9a..91a695cc8734 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_set_manifest_properties.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_set_manifest_properties.yaml @@ -1,4 +1,93 @@ interactions: +- request: + body: '{"source": {"registryUri": "registry.hub.docker.com", "sourceImage": "library/hello-world"}, + "targetTags": ["reposetmani160e197b:tag160e197b"], "mode": "Force"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '160' + Content-Type: + - application/json + User-Agent: + - azsdk-python-azure-mgmt-containerregistry/8.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://management.azure.com/subscriptions/2cd617ea-1866-46b1-90e3-fffb087ebf9b/resourceGroups/fake_rg/providers/Microsoft.ContainerRegistry/registries/seankane/importImage?api-version=2019-05-01 + response: + body: + string: 'null' + headers: + cache-control: + - no-cache + content-length: + - '4' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 13 Apr 2021 15:59:51 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/2cd617ea-1866-46b1-90e3-fffb087ebf9b/providers/Microsoft.ContainerRegistry/locations/WESTUS2/operationResults/registries-46e7b3da-9c71-11eb-8402-002b67128e4c?api-version=2019-05-01 + pragma: + - no-cache + server: + - Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-ms-ratelimit-remaining-subscription-writes: + - '1199' + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-azure-mgmt-containerregistry/8.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/2cd617ea-1866-46b1-90e3-fffb087ebf9b/providers/Microsoft.ContainerRegistry/locations/WESTUS2/operationResults/registries-46e7b3da-9c71-11eb-8402-002b67128e4c?api-version=2019-05-01 + response: + body: + string: '{"status": "Succeeded"}' + headers: + cache-control: + - no-cache + content-length: + - '22' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 13 Apr 2021 16:00:03 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + status: + code: 200 + message: OK - request: body: null headers: @@ -31,7 +120,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:59:26 GMT + - Tue, 13 Apr 2021 16:00:04 GMT docker-distribution-api-version: - registry/2.0 server: @@ -72,7 +161,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:59:28 GMT + - Tue, 13 Apr 2021 16:00:06 GMT server: - openresty strict-transport-security: @@ -80,7 +169,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.783333' + - '166.316667' status: code: 200 message: OK @@ -110,7 +199,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:59:28 GMT + - Tue, 13 Apr 2021 16:00:06 GMT server: - openresty strict-transport-security: @@ -118,7 +207,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.766667' + - '166.3' status: code: 200 message: OK @@ -139,52 +228,52 @@ interactions: body: string: '{"registry": "fake_url.azurecr.io", "imageName": "reposetmani160e197b", "manifests": [{"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", - "imageSize": 0, "createdTime": "2021-04-09T14:59:19.3603352Z", "lastUpdateTime": - "2021-04-09T14:59:19.3603352Z", "architecture": "amd64", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T15:59:56.2368632Z", "lastUpdateTime": + "2021-04-13T15:59:56.2368632Z", "architecture": "amd64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", - "imageSize": 0, "createdTime": "2021-04-09T14:59:17.1226989Z", "lastUpdateTime": - "2021-04-09T14:59:17.1226989Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + "imageSize": 0, "createdTime": "2021-04-13T15:59:54.8879904Z", "lastUpdateTime": + "2021-04-13T15:59:54.8879904Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", "tags": ["tag160e197b"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}, {"digest": "sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1", - "imageSize": 0, "createdTime": "2021-04-09T14:59:17.4020269Z", "lastUpdateTime": - "2021-04-09T14:59:17.4020269Z", "architecture": "arm", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T15:59:55.6201409Z", "lastUpdateTime": + "2021-04-13T15:59:55.6201409Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90", - "imageSize": 0, "createdTime": "2021-04-09T14:59:17.7602309Z", "lastUpdateTime": - "2021-04-09T14:59:17.7602309Z", "architecture": "mips64le", "os": "linux", + "imageSize": 0, "createdTime": "2021-04-13T15:59:56.1502681Z", "lastUpdateTime": + "2021-04-13T15:59:56.1502681Z", "architecture": "mips64le", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:963612c5503f3f1674f315c67089dee577d8cc6afc18565e0b4183ae355fb343", - "imageSize": 0, "createdTime": "2021-04-09T14:59:17.3573839Z", "lastUpdateTime": - "2021-04-09T14:59:17.3573839Z", "architecture": "arm64", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T15:59:55.3932858Z", "lastUpdateTime": + "2021-04-13T15:59:55.3932858Z", "architecture": "arm64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:b0408a0f1d74eced127a2658429f336ed8fa48e36d59878f155b19865e5dbd70", - "imageSize": 0, "createdTime": "2021-04-09T14:59:18.0172715Z", "lastUpdateTime": - "2021-04-09T14:59:18.0172715Z", "architecture": "amd64", "os": "windows", + "imageSize": 0, "createdTime": "2021-04-13T15:59:56.9062272Z", "lastUpdateTime": + "2021-04-13T15:59:56.9062272Z", "architecture": "amd64", "os": "windows", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:bb7ab0fa94fdd78aca84b27a1bd46c4b811051f9b69905d81f5f267fc6546a9d", - "imageSize": 0, "createdTime": "2021-04-09T14:59:18.7229554Z", "lastUpdateTime": - "2021-04-09T14:59:18.7229554Z", "architecture": "ppc64le", "os": "linux", - "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": + "imageSize": 0, "createdTime": "2021-04-13T15:59:55.990813Z", "lastUpdateTime": + "2021-04-13T15:59:55.990813Z", "architecture": "ppc64le", "os": "linux", "mediaType": + "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98", - "imageSize": 0, "createdTime": "2021-04-09T14:59:17.8376398Z", "lastUpdateTime": - "2021-04-09T14:59:17.8376398Z", "architecture": "386", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T15:59:55.914385Z", "lastUpdateTime": + "2021-04-13T15:59:55.914385Z", "architecture": "386", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:e49abad529e5d9bd6787f3abeab94e09ba274fe34731349556a850b9aebbf7bf", - "imageSize": 0, "createdTime": "2021-04-09T14:59:21.7429989Z", "lastUpdateTime": - "2021-04-09T14:59:21.7429989Z", "architecture": "s390x", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T15:59:56.51538Z", "lastUpdateTime": + "2021-04-13T15:59:56.51538Z", "architecture": "s390x", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:e5785cb0c62cebbed4965129bae371f0589cadd6d84798fb58c2c5f9e237efd9", - "imageSize": 0, "createdTime": "2021-04-09T14:59:17.2367376Z", "lastUpdateTime": - "2021-04-09T14:59:17.2367376Z", "architecture": "arm", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T15:59:55.5069301Z", "lastUpdateTime": + "2021-04-13T15:59:55.5069301Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}]}' @@ -199,7 +288,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:59:29 GMT + - Tue, 13 Apr 2021 16:00:07 GMT docker-distribution-api-version: - registry/2.0 server: @@ -251,7 +340,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:59:29 GMT + - Tue, 13 Apr 2021 16:00:07 GMT docker-distribution-api-version: - registry/2.0 server: @@ -292,7 +381,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:59:30 GMT + - Tue, 13 Apr 2021 16:00:07 GMT server: - openresty strict-transport-security: @@ -300,7 +389,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.75' + - '166.283333' status: code: 200 message: OK @@ -330,7 +419,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:59:30 GMT + - Tue, 13 Apr 2021 16:00:07 GMT server: - openresty strict-transport-security: @@ -338,7 +427,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '333.066667' + - '166.266667' status: code: 200 message: OK @@ -364,13 +453,12 @@ interactions: body: string: '{"registry": "fake_url.azurecr.io", "imageName": "reposetmani160e197b", "manifest": {"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", - "imageSize": 0, "createdTime": "2021-04-09T14:59:19.3603352Z", "lastUpdateTime": - "2021-04-09T14:59:19.3603352Z", "architecture": "amd64", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T15:59:56.2368632Z", "lastUpdateTime": + "2021-04-13T15:59:56.2368632Z", "architecture": "amd64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": false, "writeEnabled": false, "readEnabled": false, "listEnabled": - false, "quarantineDetails": "{\"state\":\"Scan InProgress\",\"link\":\"https://aka.ms/test\",\"scanner\":\"Azure - Security Monitoring-Qualys Scanner\",\"result\":{\"version\":\"4/9/2021 2:59:20 - PM\",\"summary\":[{\"severity\":\"High\",\"count\":0},{\"severity\":\"Medium\",\"count\":0},{\"severity\":\"Low\",\"count\":0}]}}", + false, "quarantineDetails": "{\"state\":\"Scan Passed\",\"link\":\"https://aka.ms/test\",\"scanner\":\"Azure + Security Monitoring-Qualys Scanner\",\"result\":{\"version\":\"2021-04-07T23:08:03.9486288Z\",\"summary\":[{\"severity\":\"High\",\"count\":2},{\"severity\":\"Medium\",\"count\":2},{\"severity\":\"Low\",\"count\":0}]}}", "quarantineState": "Passed"}}}' headers: access-control-expose-headers: @@ -381,11 +469,11 @@ interactions: connection: - keep-alive content-length: - - '826' + - '831' content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:59:30 GMT + - Tue, 13 Apr 2021 16:00:08 GMT docker-distribution-api-version: - registry/2.0 server: @@ -435,7 +523,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:59:30 GMT + - Tue, 13 Apr 2021 16:00:08 GMT docker-distribution-api-version: - registry/2.0 server: @@ -476,7 +564,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:59:31 GMT + - Tue, 13 Apr 2021 16:00:08 GMT server: - openresty strict-transport-security: @@ -484,7 +572,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '333.05' + - '166.25' status: code: 200 message: OK @@ -514,7 +602,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:59:31 GMT + - Tue, 13 Apr 2021 16:00:08 GMT server: - openresty strict-transport-security: @@ -522,7 +610,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '333.033333' + - '166.233333' status: code: 200 message: OK @@ -548,13 +636,12 @@ interactions: body: string: '{"registry": "fake_url.azurecr.io", "imageName": "reposetmani160e197b", "manifest": {"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", - "imageSize": 0, "createdTime": "2021-04-09T14:59:19.3603352Z", "lastUpdateTime": - "2021-04-09T14:59:19.3603352Z", "architecture": "amd64", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T15:59:56.2368632Z", "lastUpdateTime": + "2021-04-13T15:59:56.2368632Z", "architecture": "amd64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineDetails": "{\"state\":\"Scan InProgress\",\"link\":\"https://aka.ms/test\",\"scanner\":\"Azure - Security Monitoring-Qualys Scanner\",\"result\":{\"version\":\"4/9/2021 2:59:20 - PM\",\"summary\":[{\"severity\":\"High\",\"count\":0},{\"severity\":\"Medium\",\"count\":0},{\"severity\":\"Low\",\"count\":0}]}}", + true, "quarantineDetails": "{\"state\":\"Scan Passed\",\"link\":\"https://aka.ms/test\",\"scanner\":\"Azure + Security Monitoring-Qualys Scanner\",\"result\":{\"version\":\"2021-04-07T23:08:03.9486288Z\",\"summary\":[{\"severity\":\"High\",\"count\":2},{\"severity\":\"Medium\",\"count\":2},{\"severity\":\"Low\",\"count\":0}]}}", "quarantineState": "Passed"}}}' headers: access-control-expose-headers: @@ -565,11 +652,11 @@ interactions: connection: - keep-alive content-length: - - '822' + - '827' content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:59:31 GMT + - Tue, 13 Apr 2021 16:00:09 GMT docker-distribution-api-version: - registry/2.0 server: @@ -616,7 +703,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:59:32 GMT + - Tue, 13 Apr 2021 16:00:09 GMT docker-distribution-api-version: - registry/2.0 server: @@ -657,7 +744,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:59:32 GMT + - Tue, 13 Apr 2021 16:00:09 GMT server: - openresty strict-transport-security: @@ -665,7 +752,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '333.016667' + - '166.216667' status: code: 200 message: OK @@ -695,7 +782,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:59:32 GMT + - Tue, 13 Apr 2021 16:00:10 GMT server: - openresty strict-transport-security: @@ -703,7 +790,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '333' + - '166.2' status: code: 200 message: OK @@ -748,7 +835,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:59:34 GMT + - Tue, 13 Apr 2021 16:00:12 GMT docker-distribution-api-version: - registry/2.0 server: @@ -759,7 +846,7 @@ interactions: x-content-type-options: - nosniff x-ms-ratelimit-remaining-calls-per-second: - - '32.000000' + - '8.000000' status: code: 202 message: Accepted diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_set_manifest_properties_does_not_exist.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_set_manifest_properties_does_not_exist.yaml index fecce543d600..2ced9a32cfee 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_set_manifest_properties_does_not_exist.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_set_manifest_properties_does_not_exist.yaml @@ -35,7 +35,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:59:35 GMT + - Tue, 13 Apr 2021 16:00:13 GMT docker-distribution-api-version: - registry/2.0 server: @@ -76,7 +76,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:59:37 GMT + - Tue, 13 Apr 2021 16:00:14 GMT server: - openresty strict-transport-security: @@ -84,7 +84,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.916667' + - '166.616667' status: code: 200 message: OK @@ -114,7 +114,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:59:37 GMT + - Tue, 13 Apr 2021 16:00:14 GMT server: - openresty strict-transport-security: @@ -122,7 +122,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.9' + - '166.6' status: code: 200 message: OK @@ -159,7 +159,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:59:37 GMT + - Tue, 13 Apr 2021 16:00:14 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_set_tag_properties.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_set_tag_properties.yaml index c6d5150d5f9a..31c94472bac5 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_set_tag_properties.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_set_tag_properties.yaml @@ -1,4 +1,93 @@ interactions: +- request: + body: '{"source": {"registryUri": "registry.hub.docker.com", "sourceImage": "library/hello-world"}, + "targetTags": ["repo9b321760:tag9b321760"], "mode": "Force"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '153' + Content-Type: + - application/json + User-Agent: + - azsdk-python-azure-mgmt-containerregistry/8.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://management.azure.com/subscriptions/2cd617ea-1866-46b1-90e3-fffb087ebf9b/resourceGroups/fake_rg/providers/Microsoft.ContainerRegistry/registries/seankane/importImage?api-version=2019-05-01 + response: + body: + string: 'null' + headers: + cache-control: + - no-cache + content-length: + - '4' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 13 Apr 2021 16:00:16 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/2cd617ea-1866-46b1-90e3-fffb087ebf9b/providers/Microsoft.ContainerRegistry/locations/WESTUS2/operationResults/registries-5623b8fd-9c71-11eb-bbf8-002b67128e4c?api-version=2019-05-01 + pragma: + - no-cache + server: + - Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-ms-ratelimit-remaining-subscription-writes: + - '1199' + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-azure-mgmt-containerregistry/8.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/2cd617ea-1866-46b1-90e3-fffb087ebf9b/providers/Microsoft.ContainerRegistry/locations/WESTUS2/operationResults/registries-5623b8fd-9c71-11eb-bbf8-002b67128e4c?api-version=2019-05-01 + response: + body: + string: '{"status": "Succeeded"}' + headers: + cache-control: + - no-cache + content-length: + - '22' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 13 Apr 2021 16:00:29 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + status: + code: 200 + message: OK - request: body: null headers: @@ -31,7 +120,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:59:57 GMT + - Tue, 13 Apr 2021 16:00:30 GMT docker-distribution-api-version: - registry/2.0 server: @@ -72,7 +161,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:59:59 GMT + - Tue, 13 Apr 2021 16:00:31 GMT server: - openresty strict-transport-security: @@ -80,7 +169,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.95' + - '165.9' status: code: 200 message: OK @@ -110,7 +199,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:59:59 GMT + - Tue, 13 Apr 2021 16:00:32 GMT server: - openresty strict-transport-security: @@ -118,7 +207,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.933333' + - '165.883333' status: code: 200 message: OK @@ -139,9 +228,9 @@ interactions: body: string: '{"registry": "fake_url.azurecr.io", "imageName": "repo9b321760", "tag": {"name": "tag9b321760", "digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", - "createdTime": "2021-03-31T13:29:13.7769359Z", "lastUpdateTime": "2021-03-31T13:29:13.7769359Z", - "signed": false, "changeableAttributes": {"deleteEnabled": false, "writeEnabled": - false, "readEnabled": false, "listEnabled": false}}}' + "createdTime": "2021-04-13T15:25:07.1063989Z", "lastUpdateTime": "2021-04-13T15:25:07.1063989Z", + "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}}' headers: access-control-expose-headers: - Docker-Content-Digest @@ -151,11 +240,11 @@ interactions: connection: - keep-alive content-length: - - '390' + - '386' content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:59:59 GMT + - Tue, 13 Apr 2021 16:00:32 GMT docker-distribution-api-version: - registry/2.0 server: @@ -205,7 +294,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 14:59:59 GMT + - Tue, 13 Apr 2021 16:00:32 GMT docker-distribution-api-version: - registry/2.0 server: @@ -246,7 +335,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 15:00:00 GMT + - Tue, 13 Apr 2021 16:00:32 GMT server: - openresty strict-transport-security: @@ -254,7 +343,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.916667' + - '165.866667' status: code: 200 message: OK @@ -284,7 +373,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 15:00:00 GMT + - Tue, 13 Apr 2021 16:00:32 GMT server: - openresty strict-transport-security: @@ -292,7 +381,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.966667' + - '165.85' status: code: 200 message: OK @@ -318,7 +407,7 @@ interactions: body: string: '{"registry": "fake_url.azurecr.io", "imageName": "repo9b321760", "tag": {"name": "tag9b321760", "digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", - "createdTime": "2021-03-31T13:29:13.7769359Z", "lastUpdateTime": "2021-03-31T13:29:13.7769359Z", + "createdTime": "2021-04-13T15:25:07.1063989Z", "lastUpdateTime": "2021-04-13T15:25:07.1063989Z", "signed": false, "changeableAttributes": {"deleteEnabled": false, "writeEnabled": false, "readEnabled": false, "listEnabled": false}}}' headers: @@ -334,7 +423,186 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 15:00:00 GMT + - Tue, 13 Apr 2021 16:00:32 GMT + docker-distribution-api-version: + - registry/2.0 + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + status: + code: 200 + message: OK +- request: + body: '{"deleteEnabled": true, "writeEnabled": true, "listEnabled": true, "readEnabled": + true}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '87' + Content-Type: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + method: PATCH + uri: https://fake_url.azurecr.io/acr/v1/repo9b321760/_tags/tag9b321760 + response: + body: + string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"repo9b321760","Action":"metadata_write"}]}]} + + ' + headers: + access-control-expose-headers: + - Docker-Content-Digest + - WWW-Authenticate + - Link + - X-Ms-Correlation-Request-Id + connection: + - keep-alive + content-length: + - '216' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 13 Apr 2021 16:00:33 GMT + docker-distribution-api-version: + - registry/2.0 + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + - max-age=31536000; includeSubDomains + www-authenticate: + - Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:repo9b321760:metadata_write" + x-content-type-options: + - nosniff + status: + code: 401 + message: Unauthorized +- request: + body: grant_type=access_token&service=fake_url.azurecr.io&access_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1343' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 13 Apr 2021 16:00:33 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '165.833333' + status: + code: 200 + message: OK +- request: + body: grant_type=refresh_token&service=fake_url.azurecr.io&scope=repository%3Arepo9b321760%3Ametadata_write&refresh_token=REDACTED + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1081' + Content-Type: + - application/x-www-form-urlencoded + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/token + response: + body: + string: '{"access_token": "REDACTED"}' + headers: + connection: + - keep-alive + content-type: + - application/json; charset=utf-8 + date: + - Tue, 13 Apr 2021 16:00:33 GMT + server: + - openresty + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + x-ms-ratelimit-remaining-calls-per-second: + - '165.816667' + status: + code: 200 + message: OK +- request: + body: '{"deleteEnabled": true, "writeEnabled": true, "listEnabled": true, "readEnabled": + true}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '87' + Content-Type: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + method: PATCH + uri: https://fake_url.azurecr.io/acr/v1/repo9b321760/_tags/tag9b321760 + response: + body: + string: '{"registry": "fake_url.azurecr.io", "imageName": "repo9b321760", "tag": + {"name": "tag9b321760", "digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", + "createdTime": "2021-04-13T15:25:07.1063989Z", "lastUpdateTime": "2021-04-13T15:25:07.1063989Z", + "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}}' + headers: + access-control-expose-headers: + - Docker-Content-Digest + - WWW-Authenticate + - Link + - X-Ms-Correlation-Request-Id + connection: + - keep-alive + content-length: + - '386' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 13 Apr 2021 16:00:33 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_set_tag_properties_does_not_exist.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_set_tag_properties_does_not_exist.yaml index b5208413bf86..ab0458971682 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_set_tag_properties_does_not_exist.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client.test_set_tag_properties_does_not_exist.yaml @@ -35,7 +35,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 15:00:01 GMT + - Tue, 13 Apr 2021 16:00:34 GMT docker-distribution-api-version: - registry/2.0 server: @@ -76,7 +76,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 15:00:03 GMT + - Tue, 13 Apr 2021 16:00:36 GMT server: - openresty strict-transport-security: @@ -84,7 +84,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.5' + - '165.633333' status: code: 200 message: OK @@ -114,7 +114,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 15:00:03 GMT + - Tue, 13 Apr 2021 16:00:36 GMT server: - openresty strict-transport-security: @@ -122,7 +122,7 @@ interactions: transfer-encoding: - chunked x-ms-ratelimit-remaining-calls-per-second: - - '332.483333' + - '165.616667' status: code: 200 message: OK @@ -160,7 +160,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Fri, 09 Apr 2021 15:00:03 GMT + - Tue, 13 Apr 2021 16:00:36 GMT docker-distribution-api-version: - registry/2.0 server: diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_delete_registry_artifact.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_delete_registry_artifact.yaml index c0572abdac71..0f40141f59a2 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_delete_registry_artifact.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_delete_registry_artifact.yaml @@ -1,4 +1,93 @@ interactions: +- request: + body: '{"source": {"registryUri": "registry.hub.docker.com", "sourceImage": "library/hello-world"}, + "targetTags": ["repod2be1c42"], "mode": "Force"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '141' + Content-Type: + - application/json + User-Agent: + - azsdk-python-azure-mgmt-containerregistry/8.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://management.azure.com/subscriptions/2cd617ea-1866-46b1-90e3-fffb087ebf9b/resourceGroups/fake_rg/providers/Microsoft.ContainerRegistry/registries/seankane/importImage?api-version=2019-05-01 + response: + body: + string: 'null' + headers: + cache-control: + - no-cache + content-length: + - '4' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 13 Apr 2021 16:00:38 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/2cd617ea-1866-46b1-90e3-fffb087ebf9b/providers/Microsoft.ContainerRegistry/locations/WESTUS2/operationResults/registries-63062301-9c71-11eb-8527-002b67128e4c?api-version=2019-05-01 + pragma: + - no-cache + server: + - Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-ms-ratelimit-remaining-subscription-writes: + - '1198' + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-azure-mgmt-containerregistry/8.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/2cd617ea-1866-46b1-90e3-fffb087ebf9b/providers/Microsoft.ContainerRegistry/locations/WESTUS2/operationResults/registries-63062301-9c71-11eb-8527-002b67128e4c?api-version=2019-05-01 + response: + body: + string: '{"status": "Succeeded"}' + headers: + cache-control: + - no-cache + content-length: + - '22' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 13 Apr 2021 16:00:50 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + status: + code: 200 + message: OK - request: body: null headers: @@ -10,19 +99,20 @@ interactions: uri: https://fake_url.azurecr.io/acr/v1/repod2be1c42/_manifests response: body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "repository", "Name": "repod2be1c42", "Action": "metadata_read"}]}]}' + string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"repod2be1c42","Action":"metadata_read"}]}]} + + ' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-length: '215' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:53:41 GMT + date: Tue, 13 Apr 2021 16:00:51 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" + www-authenticate: Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:repod2be1c42:metadata_read" x-content-type-options: nosniff status: code: 401 @@ -46,11 +136,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:53:42 GMT + date: Tue, 13 Apr 2021 16:00:52 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '332.983333' + x-ms-ratelimit-remaining-calls-per-second: '166.283333' status: code: 200 message: OK @@ -74,11 +164,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:53:42 GMT + date: Tue, 13 Apr 2021 16:00:52 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '332.966667' + x-ms-ratelimit-remaining-calls-per-second: '166.05' status: code: 200 message: OK @@ -96,52 +186,52 @@ interactions: body: string: '{"registry": "fake_url.azurecr.io", "imageName": "repod2be1c42", "manifests": [{"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", - "imageSize": 0, "createdTime": "2021-04-07T12:53:31.4372631Z", "lastUpdateTime": - "2021-04-07T12:53:31.4372631Z", "architecture": "amd64", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T16:00:42.6031591Z", "lastUpdateTime": + "2021-04-13T16:00:42.6031591Z", "architecture": "amd64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", - "imageSize": 0, "createdTime": "2021-04-06T16:23:30.979077Z", "lastUpdateTime": - "2021-04-06T16:23:30.979077Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + "imageSize": 0, "createdTime": "2021-04-13T15:25:38.8855426Z", "lastUpdateTime": + "2021-04-13T15:25:38.8855426Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", "tags": ["latest"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}, {"digest": "sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1", - "imageSize": 0, "createdTime": "2021-04-06T16:23:31.2307881Z", "lastUpdateTime": - "2021-04-06T16:23:31.2307881Z", "architecture": "arm", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T15:25:39.446821Z", "lastUpdateTime": + "2021-04-13T15:25:39.446821Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90", - "imageSize": 0, "createdTime": "2021-04-06T16:23:33.9453147Z", "lastUpdateTime": - "2021-04-06T16:23:33.9453147Z", "architecture": "mips64le", "os": "linux", + "imageSize": 0, "createdTime": "2021-04-13T15:25:39.5529344Z", "lastUpdateTime": + "2021-04-13T15:25:39.5529344Z", "architecture": "mips64le", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:963612c5503f3f1674f315c67089dee577d8cc6afc18565e0b4183ae355fb343", - "imageSize": 0, "createdTime": "2021-04-06T16:23:31.2906766Z", "lastUpdateTime": - "2021-04-06T16:23:31.2906766Z", "architecture": "arm64", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T15:25:41.2149666Z", "lastUpdateTime": + "2021-04-13T15:25:41.2149666Z", "architecture": "arm64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:b0408a0f1d74eced127a2658429f336ed8fa48e36d59878f155b19865e5dbd70", - "imageSize": 0, "createdTime": "2021-04-06T16:23:32.2778982Z", "lastUpdateTime": - "2021-04-06T16:23:32.2778982Z", "architecture": "amd64", "os": "windows", + "imageSize": 0, "createdTime": "2021-04-13T15:25:41.5156502Z", "lastUpdateTime": + "2021-04-13T15:25:41.5156502Z", "architecture": "amd64", "os": "windows", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:bb7ab0fa94fdd78aca84b27a1bd46c4b811051f9b69905d81f5f267fc6546a9d", - "imageSize": 0, "createdTime": "2021-04-06T16:23:31.3539432Z", "lastUpdateTime": - "2021-04-06T16:23:31.3539432Z", "architecture": "ppc64le", "os": "linux", + "imageSize": 0, "createdTime": "2021-04-13T15:25:39.1916235Z", "lastUpdateTime": + "2021-04-13T15:25:39.1916235Z", "architecture": "ppc64le", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98", - "imageSize": 0, "createdTime": "2021-04-06T16:23:31.4895624Z", "lastUpdateTime": - "2021-04-06T16:23:31.4895624Z", "architecture": "386", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T15:25:39.6486819Z", "lastUpdateTime": + "2021-04-13T15:25:39.6486819Z", "architecture": "386", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:e49abad529e5d9bd6787f3abeab94e09ba274fe34731349556a850b9aebbf7bf", - "imageSize": 0, "createdTime": "2021-04-06T16:23:32.1865091Z", "lastUpdateTime": - "2021-04-06T16:23:32.1865091Z", "architecture": "s390x", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T15:25:39.7430131Z", "lastUpdateTime": + "2021-04-13T15:25:39.7430131Z", "architecture": "s390x", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:e5785cb0c62cebbed4965129bae371f0589cadd6d84798fb58c2c5f9e237efd9", - "imageSize": 0, "createdTime": "2021-04-06T16:23:32.1028085Z", "lastUpdateTime": - "2021-04-06T16:23:32.1028085Z", "architecture": "arm", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T15:25:40.4014688Z", "lastUpdateTime": + "2021-04-13T15:25:40.4014688Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}]}' @@ -149,7 +239,7 @@ interactions: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:53:43 GMT + date: Tue, 13 Apr 2021 16:00:53 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -170,19 +260,20 @@ interactions: uri: https://fake_url.azurecr.io/v2/repod2be1c42/manifests/sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792 response: body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "repository", "Name": "repod2be1c42", "Action": "delete"}]}]}' + string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"repod2be1c42","Action":"delete"}]}]} + + ' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-length: '208' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:53:43 GMT + date: Tue, 13 Apr 2021 16:00:53 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" + www-authenticate: Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:repod2be1c42:delete" x-content-type-options: nosniff status: code: 401 @@ -206,11 +297,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:53:43 GMT + date: Tue, 13 Apr 2021 16:00:53 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '332.95' + x-ms-ratelimit-remaining-calls-per-second: '166.033333' status: code: 200 message: OK @@ -234,11 +325,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:53:43 GMT + date: Tue, 13 Apr 2021 16:00:53 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '332.933333' + x-ms-ratelimit-remaining-calls-per-second: '166.016667' status: code: 200 message: OK @@ -259,12 +350,12 @@ interactions: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-length: '0' - date: Wed, 07 Apr 2021 12:53:44 GMT + date: Tue, 13 Apr 2021 16:00:54 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff - x-ms-ratelimit-remaining-calls-per-second: '32.000000' + x-ms-ratelimit-remaining-calls-per-second: '8.000000' status: code: 202 message: Accepted @@ -280,19 +371,20 @@ interactions: uri: https://fake_url.azurecr.io/acr/v1/repod2be1c42/_manifests response: body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "repository", "Name": "repod2be1c42", "Action": "metadata_read"}]}]}' + string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"repod2be1c42","Action":"metadata_read"}]}]} + + ' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-length: '215' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:53:44 GMT + date: Tue, 13 Apr 2021 16:00:54 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" + www-authenticate: Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:repod2be1c42:metadata_read" x-content-type-options: nosniff status: code: 401 @@ -316,11 +408,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:53:44 GMT + date: Tue, 13 Apr 2021 16:00:54 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '332.916667' + x-ms-ratelimit-remaining-calls-per-second: '166' status: code: 200 message: OK @@ -344,11 +436,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:53:45 GMT + date: Tue, 13 Apr 2021 16:00:54 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '332.9' + x-ms-ratelimit-remaining-calls-per-second: '165.983333' status: code: 200 message: OK @@ -366,47 +458,47 @@ interactions: body: string: '{"registry": "fake_url.azurecr.io", "imageName": "repod2be1c42", "manifests": [{"digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", - "imageSize": 0, "createdTime": "2021-04-06T16:23:30.979077Z", "lastUpdateTime": - "2021-04-06T16:23:30.979077Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + "imageSize": 0, "createdTime": "2021-04-13T15:25:38.8855426Z", "lastUpdateTime": + "2021-04-13T15:25:38.8855426Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", "tags": ["latest"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}, {"digest": "sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1", - "imageSize": 0, "createdTime": "2021-04-06T16:23:31.2307881Z", "lastUpdateTime": - "2021-04-06T16:23:31.2307881Z", "architecture": "arm", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T15:25:39.446821Z", "lastUpdateTime": + "2021-04-13T15:25:39.446821Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90", - "imageSize": 0, "createdTime": "2021-04-06T16:23:33.9453147Z", "lastUpdateTime": - "2021-04-06T16:23:33.9453147Z", "architecture": "mips64le", "os": "linux", + "imageSize": 0, "createdTime": "2021-04-13T15:25:39.5529344Z", "lastUpdateTime": + "2021-04-13T15:25:39.5529344Z", "architecture": "mips64le", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:963612c5503f3f1674f315c67089dee577d8cc6afc18565e0b4183ae355fb343", - "imageSize": 0, "createdTime": "2021-04-06T16:23:31.2906766Z", "lastUpdateTime": - "2021-04-06T16:23:31.2906766Z", "architecture": "arm64", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T15:25:41.2149666Z", "lastUpdateTime": + "2021-04-13T15:25:41.2149666Z", "architecture": "arm64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:b0408a0f1d74eced127a2658429f336ed8fa48e36d59878f155b19865e5dbd70", - "imageSize": 0, "createdTime": "2021-04-06T16:23:32.2778982Z", "lastUpdateTime": - "2021-04-06T16:23:32.2778982Z", "architecture": "amd64", "os": "windows", + "imageSize": 0, "createdTime": "2021-04-13T15:25:41.5156502Z", "lastUpdateTime": + "2021-04-13T15:25:41.5156502Z", "architecture": "amd64", "os": "windows", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:bb7ab0fa94fdd78aca84b27a1bd46c4b811051f9b69905d81f5f267fc6546a9d", - "imageSize": 0, "createdTime": "2021-04-06T16:23:31.3539432Z", "lastUpdateTime": - "2021-04-06T16:23:31.3539432Z", "architecture": "ppc64le", "os": "linux", + "imageSize": 0, "createdTime": "2021-04-13T15:25:39.1916235Z", "lastUpdateTime": + "2021-04-13T15:25:39.1916235Z", "architecture": "ppc64le", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98", - "imageSize": 0, "createdTime": "2021-04-06T16:23:31.4895624Z", "lastUpdateTime": - "2021-04-06T16:23:31.4895624Z", "architecture": "386", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T15:25:39.6486819Z", "lastUpdateTime": + "2021-04-13T15:25:39.6486819Z", "architecture": "386", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:e49abad529e5d9bd6787f3abeab94e09ba274fe34731349556a850b9aebbf7bf", - "imageSize": 0, "createdTime": "2021-04-06T16:23:32.1865091Z", "lastUpdateTime": - "2021-04-06T16:23:32.1865091Z", "architecture": "s390x", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T15:25:39.7430131Z", "lastUpdateTime": + "2021-04-13T15:25:39.7430131Z", "architecture": "s390x", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:e5785cb0c62cebbed4965129bae371f0589cadd6d84798fb58c2c5f9e237efd9", - "imageSize": 0, "createdTime": "2021-04-06T16:23:32.1028085Z", "lastUpdateTime": - "2021-04-06T16:23:32.1028085Z", "architecture": "arm", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T15:25:40.4014688Z", "lastUpdateTime": + "2021-04-13T15:25:40.4014688Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}]}' @@ -414,7 +506,7 @@ interactions: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:53:45 GMT + date: Tue, 13 Apr 2021 16:00:55 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_delete_repository.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_delete_repository.yaml index 346c4cc9eaf6..6ecbcb8f388d 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_delete_repository.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_delete_repository.yaml @@ -1,4 +1,93 @@ interactions: +- request: + body: '{"source": {"registryUri": "registry.hub.docker.com", "sourceImage": "library/hello-world"}, + "targetTags": ["to_be_deleted"], "mode": "Force"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '142' + Content-Type: + - application/json + User-Agent: + - azsdk-python-azure-mgmt-containerregistry/8.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://management.azure.com/subscriptions/2cd617ea-1866-46b1-90e3-fffb087ebf9b/resourceGroups/fake_rg/providers/Microsoft.ContainerRegistry/registries/seankane/importImage?api-version=2019-05-01 + response: + body: + string: 'null' + headers: + cache-control: + - no-cache + content-length: + - '4' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 13 Apr 2021 16:00:56 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/2cd617ea-1866-46b1-90e3-fffb087ebf9b/providers/Microsoft.ContainerRegistry/locations/WESTUS2/operationResults/registries-6e1cdc3d-9c71-11eb-8ef9-002b67128e4c?api-version=2019-05-01 + pragma: + - no-cache + server: + - Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-ms-ratelimit-remaining-subscription-writes: + - '1199' + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-azure-mgmt-containerregistry/8.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/2cd617ea-1866-46b1-90e3-fffb087ebf9b/providers/Microsoft.ContainerRegistry/locations/WESTUS2/operationResults/registries-6e1cdc3d-9c71-11eb-8ef9-002b67128e4c?api-version=2019-05-01 + response: + body: + string: '{"status": "Succeeded"}' + headers: + cache-control: + - no-cache + content-length: + - '22' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 13 Apr 2021 16:01:09 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + status: + code: 200 + message: OK - request: body: null headers: @@ -10,19 +99,20 @@ interactions: uri: https://fake_url.azurecr.io/acr/v1/_catalog response: body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' + string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"registry","Name":"catalog","Action":"*"}]}]} + + ' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-length: '196' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:03 GMT + date: Tue, 13 Apr 2021 16:01:10 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" + www-authenticate: Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="registry:catalog:*" x-content-type-options: nosniff status: code: 401 @@ -46,11 +136,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:04 GMT + date: Tue, 13 Apr 2021 16:01:11 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '332.866667' + x-ms-ratelimit-remaining-calls-per-second: '165.1' status: code: 200 message: OK @@ -74,11 +164,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:04 GMT + date: Tue, 13 Apr 2021 16:01:11 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '332.733333' + x-ms-ratelimit-remaining-calls-per-second: '165.083333' status: code: 200 message: OK @@ -94,17 +184,15 @@ interactions: uri: https://fake_url.azurecr.io/acr/v1/_catalog response: body: - string: '{"repositories": ["alpine/git", "debian", "hello-world", "library/hello-world", - "repo160e197b", "repo2e8319c5", "repo308e19dd", "repo6ce51658", "repo9b321760", - "repo_set160e197b", "repo_set_manib7cc1bf8", "repob7cc1bf8", "repod2be1c42", - "repoeb7113db", "reposet160e197b", "reposetmanib7cc1bf8", "to_be_deleted", - "ubuntu"]}' + string: '{"repositories": ["library/alpine", "library/busybox", "library/hello-world", + "repo2e8319c5", "repo308e19dd", "repo9b321760", "repod2be1c42", "repoeb7113db", + "to_be_deleted"]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '305' + content-length: '167' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:05 GMT + date: Tue, 13 Apr 2021 16:01:11 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -124,19 +212,20 @@ interactions: uri: https://fake_url.azurecr.io/acr/v1/to_be_deleted response: body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "repository", "Name": "to_be_deleted", "Action": "delete"}]}]}' + string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"to_be_deleted","Action":"delete"}]}]} + + ' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-length: '209' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:05 GMT + date: Tue, 13 Apr 2021 16:01:12 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" + www-authenticate: Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:to_be_deleted:delete" x-content-type-options: nosniff status: code: 401 @@ -160,11 +249,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:07 GMT + date: Tue, 13 Apr 2021 16:01:14 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '332.633333' + x-ms-ratelimit-remaining-calls-per-second: '165.383333' status: code: 200 message: OK @@ -188,11 +277,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:07 GMT + date: Tue, 13 Apr 2021 16:01:14 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '332.616667' + x-ms-ratelimit-remaining-calls-per-second: '165.366667' status: code: 200 message: OK @@ -224,12 +313,12 @@ interactions: connection: keep-alive content-length: '788' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:12 GMT + date: Tue, 13 Apr 2021 16:01:16 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff - x-ms-ratelimit-remaining-calls-per-second: '32.000000' + x-ms-ratelimit-remaining-calls-per-second: '8.000000' status: code: 202 message: Accepted @@ -245,19 +334,20 @@ interactions: uri: https://fake_url.azurecr.io/acr/v1/_catalog response: body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "registry", "Name": "catalog", "Action": "*"}]}]}' + string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"registry","Name":"catalog","Action":"*"}]}]} + + ' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-length: '196' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:17 GMT + date: Tue, 13 Apr 2021 16:01:16 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" + www-authenticate: Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="registry:catalog:*" x-content-type-options: nosniff status: code: 401 @@ -281,11 +371,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:17 GMT + date: Tue, 13 Apr 2021 16:01:16 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '332.916667' + x-ms-ratelimit-remaining-calls-per-second: '165.25' status: code: 200 message: OK @@ -309,11 +399,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:17 GMT + date: Tue, 13 Apr 2021 16:01:16 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '332.9' + x-ms-ratelimit-remaining-calls-per-second: '165.233333' status: code: 200 message: OK @@ -329,16 +419,14 @@ interactions: uri: https://fake_url.azurecr.io/acr/v1/_catalog response: body: - string: '{"repositories": ["alpine/git", "debian", "hello-world", "library/hello-world", - "repo160e197b", "repo2e8319c5", "repo308e19dd", "repo6ce51658", "repo9b321760", - "repo_set160e197b", "repo_set_manib7cc1bf8", "repob7cc1bf8", "repod2be1c42", - "repoeb7113db", "reposet160e197b", "reposetmanib7cc1bf8", "ubuntu"]}' + string: '{"repositories": ["library/alpine", "library/busybox", "library/hello-world", + "repo2e8319c5", "repo308e19dd", "repo9b321760", "repod2be1c42", "repoeb7113db"]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '289' + content-length: '151' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:18 GMT + date: Tue, 13 Apr 2021 16:01:16 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_delete_repository_doesnt_exist.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_delete_repository_doesnt_exist.yaml index 7010f34b9877..b9a617192bef 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_delete_repository_doesnt_exist.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_delete_repository_doesnt_exist.yaml @@ -10,19 +10,20 @@ interactions: uri: https://fake_url.azurecr.io/acr/v1/does_not_exist response: body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "repository", "Name": "does_not_exist", "Action": "delete"}]}]}' + string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"does_not_exist","Action":"delete"}]}]} + + ' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-length: '210' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:18 GMT + date: Tue, 13 Apr 2021 16:01:17 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" + www-authenticate: Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:does_not_exist:delete" x-content-type-options: nosniff status: code: 401 @@ -46,11 +47,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:19 GMT + date: Tue, 13 Apr 2021 16:01:18 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '332.883333' + x-ms-ratelimit-remaining-calls-per-second: '165.916667' status: code: 200 message: OK @@ -74,11 +75,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:19 GMT + date: Tue, 13 Apr 2021 16:01:18 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '332.866667' + x-ms-ratelimit-remaining-calls-per-second: '165.9' status: code: 200 message: OK @@ -101,12 +102,12 @@ interactions: connection: keep-alive content-length: '122' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:20 GMT + date: Tue, 13 Apr 2021 16:01:18 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff - x-ms-ratelimit-remaining-calls-per-second: '32.000000' + x-ms-ratelimit-remaining-calls-per-second: '8.000000' status: code: 404 message: Not Found diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_delete_tag.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_delete_tag.yaml index 55285c45b054..6fe98cb611fe 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_delete_tag.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_delete_tag.yaml @@ -28,11 +28,11 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Tue, 13 Apr 2021 12:51:45 GMT + - Tue, 13 Apr 2021 16:25:53 GMT expires: - '-1' location: - - https://management.azure.com/subscriptions/2cd617ea-1866-46b1-90e3-fffb087ebf9b/providers/Microsoft.ContainerRegistry/locations/WESTUS2/operationResults/registries-00a7844d-9c57-11eb-b999-002b67128e4c?api-version=2019-05-01 + - https://management.azure.com/subscriptions/2cd617ea-1866-46b1-90e3-fffb087ebf9b/providers/Microsoft.ContainerRegistry/locations/WESTUS2/operationResults/registries-ea5b2ef8-9c74-11eb-8270-002b67128e4c?api-version=2019-05-01 pragma: - no-cache server: @@ -58,7 +58,7 @@ interactions: User-Agent: - azsdk-python-azure-mgmt-containerregistry/8.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/subscriptions/2cd617ea-1866-46b1-90e3-fffb087ebf9b/providers/Microsoft.ContainerRegistry/locations/WESTUS2/operationResults/registries-00a7844d-9c57-11eb-b999-002b67128e4c?api-version=2019-05-01 + uri: https://management.azure.com/subscriptions/2cd617ea-1866-46b1-90e3-fffb087ebf9b/providers/Microsoft.ContainerRegistry/locations/WESTUS2/operationResults/registries-ea5b2ef8-9c74-11eb-8270-002b67128e4c?api-version=2019-05-01 response: body: string: '{"status": "Succeeded"}' @@ -70,7 +70,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Tue, 13 Apr 2021 12:51:56 GMT + - Tue, 13 Apr 2021 16:26:05 GMT expires: - '-1' pragma: @@ -108,7 +108,7 @@ interactions: connection: keep-alive content-length: '222' content-type: application/json; charset=utf-8 - date: Tue, 13 Apr 2021 12:52:05 GMT + date: Tue, 13 Apr 2021 16:26:06 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -136,11 +136,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Tue, 13 Apr 2021 12:52:06 GMT + date: Tue, 13 Apr 2021 16:26:07 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '332.466667' + x-ms-ratelimit-remaining-calls-per-second: '166.033333' status: code: 200 message: OK @@ -164,11 +164,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Tue, 13 Apr 2021 12:52:06 GMT + date: Tue, 13 Apr 2021 16:26:07 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '332.45' + x-ms-ratelimit-remaining-calls-per-second: '165.65' status: code: 200 message: OK @@ -186,7 +186,7 @@ interactions: body: string: '{"registry": "fake_url.azurecr.io", "imageName": "library/hello-world", "tag": {"name": "to_be_deleted", "digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", - "createdTime": "2021-04-13T12:51:16.6638766Z", "lastUpdateTime": "2021-04-13T12:51:16.6638766Z", + "createdTime": "2021-04-13T16:25:56.6730439Z", "lastUpdateTime": "2021-04-13T16:25:56.6730439Z", "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}}' headers: @@ -194,7 +194,7 @@ interactions: connection: keep-alive content-length: '395' content-type: application/json; charset=utf-8 - date: Tue, 13 Apr 2021 12:52:06 GMT + date: Tue, 13 Apr 2021 16:26:08 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -223,7 +223,7 @@ interactions: connection: keep-alive content-length: '215' content-type: application/json; charset=utf-8 - date: Tue, 13 Apr 2021 12:52:07 GMT + date: Tue, 13 Apr 2021 16:26:08 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -251,11 +251,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Tue, 13 Apr 2021 12:52:07 GMT + date: Tue, 13 Apr 2021 16:26:08 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '332.433333' + x-ms-ratelimit-remaining-calls-per-second: '165.633333' status: code: 200 message: OK @@ -279,11 +279,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Tue, 13 Apr 2021 12:52:07 GMT + date: Tue, 13 Apr 2021 16:26:08 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '332.416667' + x-ms-ratelimit-remaining-calls-per-second: '165.616667' status: code: 200 message: OK @@ -304,13 +304,13 @@ interactions: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-length: '0' - date: Tue, 13 Apr 2021 12:52:08 GMT + date: Tue, 13 Apr 2021 16:26:09 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff x-ms-int-docker-content-digest: sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24 - x-ms-ratelimit-remaining-calls-per-second: '32.000000' + x-ms-ratelimit-remaining-calls-per-second: '8.000000' status: code: 202 message: Accepted @@ -335,7 +335,7 @@ interactions: connection: keep-alive content-length: '222' content-type: application/json; charset=utf-8 - date: Tue, 13 Apr 2021 12:52:13 GMT + date: Tue, 13 Apr 2021 16:26:14 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -363,11 +363,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Tue, 13 Apr 2021 12:52:14 GMT + date: Tue, 13 Apr 2021 16:26:14 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '332.4' + x-ms-ratelimit-remaining-calls-per-second: '165.6' status: code: 200 message: OK @@ -391,11 +391,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Tue, 13 Apr 2021 12:52:14 GMT + date: Tue, 13 Apr 2021 16:26:14 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '332.383333' + x-ms-ratelimit-remaining-calls-per-second: '165.583333' status: code: 200 message: OK @@ -418,7 +418,7 @@ interactions: connection: keep-alive content-length: '81' content-type: application/json; charset=utf-8 - date: Tue, 13 Apr 2021 12:52:14 GMT + date: Tue, 13 Apr 2021 16:26:15 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_delete_tag_does_not_exist.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_delete_tag_does_not_exist.yaml index 39c2566a85a7..ce0782d678b5 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_delete_tag_does_not_exist.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_delete_tag_does_not_exist.yaml @@ -7,28 +7,28 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_tags/to_be_deleted + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags/to_be_deleted response: body: string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, - visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"hello-world","Action":"delete"}]}]} + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"library/hello-world","Action":"delete"}]}]} ' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '207' + content-length: '215' content-type: application/json; charset=utf-8 - date: Tue, 13 Apr 2021 12:42:22 GMT + date: Tue, 13 Apr 2021 16:26:15 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:hello-world:delete" + www-authenticate: Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:library/hello-world:delete" x-content-type-options: nosniff status: code: 401 message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/hello-world/_tags/to_be_deleted + url: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags/to_be_deleted - request: body: access_token: REDACTED @@ -47,11 +47,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Tue, 13 Apr 2021 12:42:24 GMT + date: Tue, 13 Apr 2021 16:26:16 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '333.316667' + x-ms-ratelimit-remaining-calls-per-second: '166.616667' status: code: 200 message: OK @@ -60,7 +60,7 @@ interactions: body: grant_type: refresh_token refresh_token: REDACTED - scope: repository:hello-world:delete + scope: repository:library/hello-world:delete service: fake_url.azurecr.io headers: Accept: @@ -75,11 +75,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Tue, 13 Apr 2021 12:42:24 GMT + date: Tue, 13 Apr 2021 16:26:16 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '333.3' + x-ms-ratelimit-remaining-calls-per-second: '166.45' status: code: 200 message: OK @@ -92,7 +92,7 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_tags/to_be_deleted + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags/to_be_deleted response: body: string: '{"errors": [{"code": "TAG_UNKNOWN", "message": "the specified tag does @@ -102,14 +102,14 @@ interactions: connection: keep-alive content-length: '81' content-type: application/json; charset=utf-8 - date: Tue, 13 Apr 2021 12:42:24 GMT + date: Tue, 13 Apr 2021 16:26:17 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff - x-ms-ratelimit-remaining-calls-per-second: '32.000000' + x-ms-ratelimit-remaining-calls-per-second: '8.000000' status: code: 404 message: Not Found - url: https://fake_url.azurecr.io/acr/v1/hello-world/_tags/to_be_deleted + url: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags/to_be_deleted version: 1 diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_list_registry_artifacts.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_list_registry_artifacts.yaml index c3b85880699b..207c459d50cc 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_list_registry_artifacts.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_list_registry_artifacts.yaml @@ -7,27 +7,28 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_manifests + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests response: body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "repository", "Name": "hello-world", "Action": "metadata_read"}]}]}' + string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"library/hello-world","Action":"metadata_read"}]}]} + + ' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '214' + content-length: '222' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:49 GMT + date: Tue, 13 Apr 2021 16:01:21 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" + www-authenticate: Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:library/hello-world:metadata_read" x-content-type-options: nosniff status: code: 401 message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/hello-world/_manifests + url: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests - request: body: access_token: REDACTED @@ -46,11 +47,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:50 GMT + date: Tue, 13 Apr 2021 16:01:22 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '332.983333' + x-ms-ratelimit-remaining-calls-per-second: '165.866667' status: code: 200 message: OK @@ -59,7 +60,7 @@ interactions: body: grant_type: refresh_token refresh_token: REDACTED - scope: repository:hello-world:metadata_read + scope: repository:library/hello-world:metadata_read service: fake_url.azurecr.io headers: Accept: @@ -74,11 +75,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:50 GMT + date: Tue, 13 Apr 2021 16:01:22 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '332.966667' + x-ms-ratelimit-remaining-calls-per-second: '165.85' status: code: 200 message: OK @@ -91,58 +92,58 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_manifests + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "hello-world", "manifests": - [{"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", - "imageSize": 0, "createdTime": "2021-03-30T12:18:47.6437335Z", "lastUpdateTime": - "2021-03-30T12:18:47.6437335Z", "architecture": "amd64", "os": "linux", "mediaType": + string: '{"registry": "fake_url.azurecr.io", "imageName": "library/hello-world", + "manifests": [{"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", + "imageSize": 0, "createdTime": "2021-04-13T15:10:44.596258Z", "lastUpdateTime": + "2021-04-13T15:10:44.596258Z", "architecture": "amd64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", - "imageSize": 0, "createdTime": "2021-03-30T12:18:47.4863064Z", "lastUpdateTime": - "2021-03-30T12:18:47.4863064Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", - "tags": ["latest"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": - false, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, - {"digest": "sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.9950981Z", "lastUpdateTime": - "2021-03-30T12:18:48.9950981Z", "architecture": "arm", "os": "linux", "mediaType": + true}}, {"digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", + "imageSize": 0, "createdTime": "2021-04-13T15:10:44.0031749Z", "lastUpdateTime": + "2021-04-13T15:10:44.0031749Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + "tags": ["latest", "v1", "v2", "v3", "v4"], "changeableAttributes": {"deleteEnabled": + true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}, {"digest": + "sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1", + "imageSize": 0, "createdTime": "2021-04-13T15:10:44.4329424Z", "lastUpdateTime": + "2021-04-13T15:10:44.4329424Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.0921265Z", "lastUpdateTime": - "2021-03-30T12:18:48.0921265Z", "architecture": "mips64le", "os": "linux", + "imageSize": 0, "createdTime": "2021-04-13T15:10:44.7624881Z", "lastUpdateTime": + "2021-04-13T15:10:44.7624881Z", "architecture": "mips64le", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:963612c5503f3f1674f315c67089dee577d8cc6afc18565e0b4183ae355fb343", - "imageSize": 0, "createdTime": "2021-03-30T12:18:47.9641681Z", "lastUpdateTime": - "2021-03-30T12:18:47.9641681Z", "architecture": "arm64", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T15:10:44.8474328Z", "lastUpdateTime": + "2021-04-13T15:10:44.8474328Z", "architecture": "arm64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:b0408a0f1d74eced127a2658429f336ed8fa48e36d59878f155b19865e5dbd70", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.6908523Z", "lastUpdateTime": - "2021-03-30T12:18:48.6908523Z", "architecture": "amd64", "os": "windows", + "imageSize": 0, "createdTime": "2021-04-13T15:10:45.1142611Z", "lastUpdateTime": + "2021-04-13T15:10:45.1142611Z", "architecture": "amd64", "os": "windows", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:bb7ab0fa94fdd78aca84b27a1bd46c4b811051f9b69905d81f5f267fc6546a9d", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.2834053Z", "lastUpdateTime": - "2021-03-30T12:18:48.2834053Z", "architecture": "ppc64le", "os": "linux", + "imageSize": 0, "createdTime": "2021-04-13T15:10:45.1653089Z", "lastUpdateTime": + "2021-04-13T15:10:45.1653089Z", "architecture": "ppc64le", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.1605587Z", "lastUpdateTime": - "2021-03-30T12:18:48.1605587Z", "architecture": "386", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T15:10:44.3167347Z", "lastUpdateTime": + "2021-04-13T15:10:44.3167347Z", "architecture": "386", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:e49abad529e5d9bd6787f3abeab94e09ba274fe34731349556a850b9aebbf7bf", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.5864242Z", "lastUpdateTime": - "2021-03-30T12:18:48.5864242Z", "architecture": "s390x", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T15:10:45.2709645Z", "lastUpdateTime": + "2021-04-13T15:10:45.2709645Z", "architecture": "s390x", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:e5785cb0c62cebbed4965129bae371f0589cadd6d84798fb58c2c5f9e237efd9", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.4392605Z", "lastUpdateTime": - "2021-03-30T12:18:48.4392605Z", "architecture": "arm", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T15:10:45.4455031Z", "lastUpdateTime": + "2021-04-13T15:10:45.4455031Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}]}' @@ -150,7 +151,7 @@ interactions: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:51 GMT + date: Tue, 13 Apr 2021 16:01:22 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -159,5 +160,5 @@ interactions: status: code: 200 message: OK - url: https://fake_url.azurecr.io/acr/v1/hello-world/_manifests + url: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests version: 1 diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_list_registry_artifacts_ascending.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_list_registry_artifacts_ascending.yaml index 4c7ec4a18f93..e1b658071969 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_list_registry_artifacts_ascending.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_list_registry_artifacts_ascending.yaml @@ -7,27 +7,28 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_manifests?orderby=timeasc + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests?orderby=timeasc response: body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "repository", "Name": "hello-world", "Action": "metadata_read"}]}]}' + string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"library/hello-world","Action":"metadata_read"}]}]} + + ' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '214' + content-length: '222' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:51 GMT + date: Tue, 13 Apr 2021 16:01:23 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" + www-authenticate: Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:library/hello-world:metadata_read" x-content-type-options: nosniff status: code: 401 message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/hello-world/_manifests?orderby=timeasc + url: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests?orderby=timeasc - request: body: access_token: REDACTED @@ -46,11 +47,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:52 GMT + date: Tue, 13 Apr 2021 16:01:24 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '333.316667' + x-ms-ratelimit-remaining-calls-per-second: '166.566667' status: code: 200 message: OK @@ -59,7 +60,7 @@ interactions: body: grant_type: refresh_token refresh_token: REDACTED - scope: repository:hello-world:metadata_read + scope: repository:library/hello-world:metadata_read service: fake_url.azurecr.io headers: Accept: @@ -74,11 +75,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:52 GMT + date: Tue, 13 Apr 2021 16:01:24 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '333.3' + x-ms-ratelimit-remaining-calls-per-second: '166.016667' status: code: 200 message: OK @@ -91,58 +92,58 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_manifests?orderby=timeasc + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests?orderby=timeasc response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "hello-world", "manifests": - [{"digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", - "imageSize": 0, "createdTime": "2021-03-30T12:18:47.4863064Z", "lastUpdateTime": - "2021-03-30T12:18:47.4863064Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", - "tags": ["latest"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": - false, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, - {"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", - "imageSize": 0, "createdTime": "2021-03-30T12:18:47.6437335Z", "lastUpdateTime": - "2021-03-30T12:18:47.6437335Z", "architecture": "amd64", "os": "linux", "mediaType": + string: '{"registry": "fake_url.azurecr.io", "imageName": "library/hello-world", + "manifests": [{"digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", + "imageSize": 0, "createdTime": "2021-04-13T15:10:44.0031749Z", "lastUpdateTime": + "2021-04-13T15:10:44.0031749Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + "tags": ["latest", "v1", "v2", "v3", "v4"], "changeableAttributes": {"deleteEnabled": + true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}, {"digest": + "sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98", + "imageSize": 0, "createdTime": "2021-04-13T15:10:44.3167347Z", "lastUpdateTime": + "2021-04-13T15:10:44.3167347Z", "architecture": "386", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:963612c5503f3f1674f315c67089dee577d8cc6afc18565e0b4183ae355fb343", - "imageSize": 0, "createdTime": "2021-03-30T12:18:47.9641681Z", "lastUpdateTime": - "2021-03-30T12:18:47.9641681Z", "architecture": "arm64", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1", + "imageSize": 0, "createdTime": "2021-04-13T15:10:44.4329424Z", "lastUpdateTime": + "2021-04-13T15:10:44.4329424Z", "architecture": "arm", "os": "linux", "mediaType": + "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": + {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": + true, "quarantineState": "Passed"}}, {"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", + "imageSize": 0, "createdTime": "2021-04-13T15:10:44.596258Z", "lastUpdateTime": + "2021-04-13T15:10:44.596258Z", "architecture": "amd64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.0921265Z", "lastUpdateTime": - "2021-03-30T12:18:48.0921265Z", "architecture": "mips64le", "os": "linux", + true}}, {"digest": "sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90", + "imageSize": 0, "createdTime": "2021-04-13T15:10:44.7624881Z", "lastUpdateTime": + "2021-04-13T15:10:44.7624881Z", "architecture": "mips64le", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.1605587Z", "lastUpdateTime": - "2021-03-30T12:18:48.1605587Z", "architecture": "386", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:963612c5503f3f1674f315c67089dee577d8cc6afc18565e0b4183ae355fb343", + "imageSize": 0, "createdTime": "2021-04-13T15:10:44.8474328Z", "lastUpdateTime": + "2021-04-13T15:10:44.8474328Z", "architecture": "arm64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:bb7ab0fa94fdd78aca84b27a1bd46c4b811051f9b69905d81f5f267fc6546a9d", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.2834053Z", "lastUpdateTime": - "2021-03-30T12:18:48.2834053Z", "architecture": "ppc64le", "os": "linux", + true, "quarantineState": "Passed"}}, {"digest": "sha256:b0408a0f1d74eced127a2658429f336ed8fa48e36d59878f155b19865e5dbd70", + "imageSize": 0, "createdTime": "2021-04-13T15:10:45.1142611Z", "lastUpdateTime": + "2021-04-13T15:10:45.1142611Z", "architecture": "amd64", "os": "windows", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:e5785cb0c62cebbed4965129bae371f0589cadd6d84798fb58c2c5f9e237efd9", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.4392605Z", "lastUpdateTime": - "2021-03-30T12:18:48.4392605Z", "architecture": "arm", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": + true, "quarantineState": "Passed"}}, {"digest": "sha256:bb7ab0fa94fdd78aca84b27a1bd46c4b811051f9b69905d81f5f267fc6546a9d", + "imageSize": 0, "createdTime": "2021-04-13T15:10:45.1653089Z", "lastUpdateTime": + "2021-04-13T15:10:45.1653089Z", "architecture": "ppc64le", "os": "linux", + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:e49abad529e5d9bd6787f3abeab94e09ba274fe34731349556a850b9aebbf7bf", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.5864242Z", "lastUpdateTime": - "2021-03-30T12:18:48.5864242Z", "architecture": "s390x", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T15:10:45.2709645Z", "lastUpdateTime": + "2021-04-13T15:10:45.2709645Z", "architecture": "s390x", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:b0408a0f1d74eced127a2658429f336ed8fa48e36d59878f155b19865e5dbd70", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.6908523Z", "lastUpdateTime": - "2021-03-30T12:18:48.6908523Z", "architecture": "amd64", "os": "windows", - "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.9950981Z", "lastUpdateTime": - "2021-03-30T12:18:48.9950981Z", "architecture": "arm", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:e5785cb0c62cebbed4965129bae371f0589cadd6d84798fb58c2c5f9e237efd9", + "imageSize": 0, "createdTime": "2021-04-13T15:10:45.4455031Z", "lastUpdateTime": + "2021-04-13T15:10:45.4455031Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}]}' @@ -150,7 +151,7 @@ interactions: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:53 GMT + date: Tue, 13 Apr 2021 16:01:25 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -159,5 +160,5 @@ interactions: status: code: 200 message: OK - url: https://fake_url.azurecr.io/acr/v1/hello-world/_manifests?orderby=timeasc + url: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests?orderby=timeasc version: 1 diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_list_registry_artifacts_by_page.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_list_registry_artifacts_by_page.yaml index 6600cd203c51..c7d076295aa6 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_list_registry_artifacts_by_page.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_list_registry_artifacts_by_page.yaml @@ -7,27 +7,28 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_manifests?n=2 + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests?n=2 response: body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "repository", "Name": "hello-world", "Action": "metadata_read"}]}]}' + string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"library/hello-world","Action":"metadata_read"}]}]} + + ' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '214' + content-length: '222' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:53 GMT + date: Tue, 13 Apr 2021 16:01:25 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" + www-authenticate: Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:library/hello-world:metadata_read" x-content-type-options: nosniff status: code: 401 message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/hello-world/_manifests?n=2 + url: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests?n=2 - request: body: access_token: REDACTED @@ -46,11 +47,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:54 GMT + date: Tue, 13 Apr 2021 16:01:26 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '332.883333' + x-ms-ratelimit-remaining-calls-per-second: '165.6' status: code: 200 message: OK @@ -59,7 +60,7 @@ interactions: body: grant_type: refresh_token refresh_token: REDACTED - scope: repository:hello-world:metadata_read + scope: repository:library/hello-world:metadata_read service: fake_url.azurecr.io headers: Accept: @@ -74,11 +75,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:55 GMT + date: Tue, 13 Apr 2021 16:01:26 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '332.866667' + x-ms-ratelimit-remaining-calls-per-second: '164.966667' status: code: 200 message: OK @@ -91,28 +92,28 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_manifests?n=2 + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests?n=2 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "hello-world", "manifests": - [{"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", - "imageSize": 0, "createdTime": "2021-03-30T12:18:47.6437335Z", "lastUpdateTime": - "2021-03-30T12:18:47.6437335Z", "architecture": "amd64", "os": "linux", "mediaType": + string: '{"registry": "fake_url.azurecr.io", "imageName": "library/hello-world", + "manifests": [{"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", + "imageSize": 0, "createdTime": "2021-04-13T15:10:44.596258Z", "lastUpdateTime": + "2021-04-13T15:10:44.596258Z", "architecture": "amd64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", - "imageSize": 0, "createdTime": "2021-03-30T12:18:47.4863064Z", "lastUpdateTime": - "2021-03-30T12:18:47.4863064Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", - "tags": ["latest"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": - false, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}]}' + true}}, {"digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", + "imageSize": 0, "createdTime": "2021-04-13T15:10:44.0031749Z", "lastUpdateTime": + "2021-04-13T15:10:44.0031749Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + "tags": ["latest", "v1", "v2", "v3", "v4"], "changeableAttributes": {"deleteEnabled": + true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '915' + content-length: '886' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:55 GMT + date: Tue, 13 Apr 2021 16:01:27 GMT docker-distribution-api-version: registry/2.0 - link: ; + link: ; rel="next" server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -120,7 +121,7 @@ interactions: status: code: 200 message: OK - url: https://fake_url.azurecr.io/acr/v1/hello-world/_manifests?n=2 + url: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests?n=2 - request: body: null headers: @@ -129,27 +130,28 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_manifests?last=sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests?last=sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24&n=2&orderby= response: body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "repository", "Name": "hello-world", "Action": "metadata_read"}]}]}' + string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"library/hello-world","Action":"metadata_read"}]}]} + + ' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '214' + content-length: '222' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:55 GMT + date: Tue, 13 Apr 2021 16:01:27 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" + www-authenticate: Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:library/hello-world:metadata_read" x-content-type-options: nosniff status: code: 401 message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/hello-world/_manifests?last=sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24&n=2&orderby= + url: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests?last=sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24&n=2&orderby= - request: body: access_token: REDACTED @@ -168,11 +170,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:55 GMT + date: Tue, 13 Apr 2021 16:01:27 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '332.85' + x-ms-ratelimit-remaining-calls-per-second: '164.95' status: code: 200 message: OK @@ -181,7 +183,7 @@ interactions: body: grant_type: refresh_token refresh_token: REDACTED - scope: repository:hello-world:metadata_read + scope: repository:library/hello-world:metadata_read service: fake_url.azurecr.io headers: Accept: @@ -196,11 +198,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:55 GMT + date: Tue, 13 Apr 2021 16:01:27 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '332.833333' + x-ms-ratelimit-remaining-calls-per-second: '164.933333' status: code: 200 message: OK @@ -213,29 +215,29 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_manifests?last=sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests?last=sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24&n=2&orderby= response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "hello-world", "manifests": - [{"digest": "sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.9950981Z", "lastUpdateTime": - "2021-03-30T12:18:48.9950981Z", "architecture": "arm", "os": "linux", "mediaType": + string: '{"registry": "fake_url.azurecr.io", "imageName": "library/hello-world", + "manifests": [{"digest": "sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1", + "imageSize": 0, "createdTime": "2021-04-13T15:10:44.4329424Z", "lastUpdateTime": + "2021-04-13T15:10:44.4329424Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.0921265Z", "lastUpdateTime": - "2021-03-30T12:18:48.0921265Z", "architecture": "mips64le", "os": "linux", + "imageSize": 0, "createdTime": "2021-04-13T15:10:44.7624881Z", "lastUpdateTime": + "2021-04-13T15:10:44.7624881Z", "architecture": "mips64le", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '928' + content-length: '936' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:56 GMT + date: Tue, 13 Apr 2021 16:01:27 GMT docker-distribution-api-version: registry/2.0 - link: ; + link: ; rel="next" server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -243,7 +245,7 @@ interactions: status: code: 200 message: OK - url: https://fake_url.azurecr.io/acr/v1/hello-world/_manifests?last=sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24&n=2&orderby= + url: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests?last=sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24&n=2&orderby= - request: body: null headers: @@ -252,27 +254,28 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_manifests?last=sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests?last=sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90&n=2&orderby= response: body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "repository", "Name": "hello-world", "Action": "metadata_read"}]}]}' + string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"library/hello-world","Action":"metadata_read"}]}]} + + ' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '214' + content-length: '222' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:56 GMT + date: Tue, 13 Apr 2021 16:01:27 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" + www-authenticate: Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:library/hello-world:metadata_read" x-content-type-options: nosniff status: code: 401 message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/hello-world/_manifests?last=sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90&n=2&orderby= + url: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests?last=sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90&n=2&orderby= - request: body: access_token: REDACTED @@ -291,11 +294,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:56 GMT + date: Tue, 13 Apr 2021 16:01:28 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '332.816667' + x-ms-ratelimit-remaining-calls-per-second: '164.916667' status: code: 200 message: OK @@ -304,7 +307,7 @@ interactions: body: grant_type: refresh_token refresh_token: REDACTED - scope: repository:hello-world:metadata_read + scope: repository:library/hello-world:metadata_read service: fake_url.azurecr.io headers: Accept: @@ -319,11 +322,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:56 GMT + date: Tue, 13 Apr 2021 16:01:28 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '332.8' + x-ms-ratelimit-remaining-calls-per-second: '164.9' status: code: 200 message: OK @@ -336,29 +339,29 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_manifests?last=sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests?last=sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90&n=2&orderby= response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "hello-world", "manifests": - [{"digest": "sha256:963612c5503f3f1674f315c67089dee577d8cc6afc18565e0b4183ae355fb343", - "imageSize": 0, "createdTime": "2021-03-30T12:18:47.9641681Z", "lastUpdateTime": - "2021-03-30T12:18:47.9641681Z", "architecture": "arm64", "os": "linux", "mediaType": + string: '{"registry": "fake_url.azurecr.io", "imageName": "library/hello-world", + "manifests": [{"digest": "sha256:963612c5503f3f1674f315c67089dee577d8cc6afc18565e0b4183ae355fb343", + "imageSize": 0, "createdTime": "2021-04-13T15:10:44.8474328Z", "lastUpdateTime": + "2021-04-13T15:10:44.8474328Z", "architecture": "arm64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:b0408a0f1d74eced127a2658429f336ed8fa48e36d59878f155b19865e5dbd70", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.6908523Z", "lastUpdateTime": - "2021-03-30T12:18:48.6908523Z", "architecture": "amd64", "os": "windows", + "imageSize": 0, "createdTime": "2021-04-13T15:10:45.1142611Z", "lastUpdateTime": + "2021-04-13T15:10:45.1142611Z", "architecture": "amd64", "os": "windows", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '929' + content-length: '937' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:56 GMT + date: Tue, 13 Apr 2021 16:01:28 GMT docker-distribution-api-version: registry/2.0 - link: ; + link: ; rel="next" server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -366,7 +369,7 @@ interactions: status: code: 200 message: OK - url: https://fake_url.azurecr.io/acr/v1/hello-world/_manifests?last=sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90&n=2&orderby= + url: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests?last=sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90&n=2&orderby= - request: body: null headers: @@ -375,27 +378,28 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_manifests?last=sha256:b0408a0f1d74eced127a2658429f336ed8fa48e36d59878f155b19865e5dbd70&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests?last=sha256:b0408a0f1d74eced127a2658429f336ed8fa48e36d59878f155b19865e5dbd70&n=2&orderby= response: body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "repository", "Name": "hello-world", "Action": "metadata_read"}]}]}' + string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"library/hello-world","Action":"metadata_read"}]}]} + + ' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '214' + content-length: '222' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:56 GMT + date: Tue, 13 Apr 2021 16:01:28 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" + www-authenticate: Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:library/hello-world:metadata_read" x-content-type-options: nosniff status: code: 401 message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/hello-world/_manifests?last=sha256:b0408a0f1d74eced127a2658429f336ed8fa48e36d59878f155b19865e5dbd70&n=2&orderby= + url: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests?last=sha256:b0408a0f1d74eced127a2658429f336ed8fa48e36d59878f155b19865e5dbd70&n=2&orderby= - request: body: access_token: REDACTED @@ -414,11 +418,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:57 GMT + date: Tue, 13 Apr 2021 16:01:28 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '332.783333' + x-ms-ratelimit-remaining-calls-per-second: '164.883333' status: code: 200 message: OK @@ -427,7 +431,7 @@ interactions: body: grant_type: refresh_token refresh_token: REDACTED - scope: repository:hello-world:metadata_read + scope: repository:library/hello-world:metadata_read service: fake_url.azurecr.io headers: Accept: @@ -442,11 +446,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:57 GMT + date: Tue, 13 Apr 2021 16:01:28 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '332.766667' + x-ms-ratelimit-remaining-calls-per-second: '164.866667' status: code: 200 message: OK @@ -459,29 +463,29 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_manifests?last=sha256:b0408a0f1d74eced127a2658429f336ed8fa48e36d59878f155b19865e5dbd70&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests?last=sha256:b0408a0f1d74eced127a2658429f336ed8fa48e36d59878f155b19865e5dbd70&n=2&orderby= response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "hello-world", "manifests": - [{"digest": "sha256:bb7ab0fa94fdd78aca84b27a1bd46c4b811051f9b69905d81f5f267fc6546a9d", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.2834053Z", "lastUpdateTime": - "2021-03-30T12:18:48.2834053Z", "architecture": "ppc64le", "os": "linux", + string: '{"registry": "fake_url.azurecr.io", "imageName": "library/hello-world", + "manifests": [{"digest": "sha256:bb7ab0fa94fdd78aca84b27a1bd46c4b811051f9b69905d81f5f267fc6546a9d", + "imageSize": 0, "createdTime": "2021-04-13T15:10:45.1653089Z", "lastUpdateTime": + "2021-04-13T15:10:45.1653089Z", "architecture": "ppc64le", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.1605587Z", "lastUpdateTime": - "2021-03-30T12:18:48.1605587Z", "architecture": "386", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T15:10:44.3167347Z", "lastUpdateTime": + "2021-04-13T15:10:44.3167347Z", "architecture": "386", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '927' + content-length: '935' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:57 GMT + date: Tue, 13 Apr 2021 16:01:29 GMT docker-distribution-api-version: registry/2.0 - link: ; + link: ; rel="next" server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -489,7 +493,7 @@ interactions: status: code: 200 message: OK - url: https://fake_url.azurecr.io/acr/v1/hello-world/_manifests?last=sha256:b0408a0f1d74eced127a2658429f336ed8fa48e36d59878f155b19865e5dbd70&n=2&orderby= + url: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests?last=sha256:b0408a0f1d74eced127a2658429f336ed8fa48e36d59878f155b19865e5dbd70&n=2&orderby= - request: body: null headers: @@ -498,27 +502,28 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_manifests?last=sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests?last=sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98&n=2&orderby= response: body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "repository", "Name": "hello-world", "Action": "metadata_read"}]}]}' + string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"library/hello-world","Action":"metadata_read"}]}]} + + ' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '214' + content-length: '222' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:57 GMT + date: Tue, 13 Apr 2021 16:01:29 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" + www-authenticate: Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:library/hello-world:metadata_read" x-content-type-options: nosniff status: code: 401 message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/hello-world/_manifests?last=sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98&n=2&orderby= + url: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests?last=sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98&n=2&orderby= - request: body: access_token: REDACTED @@ -537,11 +542,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:57 GMT + date: Tue, 13 Apr 2021 16:01:29 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '332.75' + x-ms-ratelimit-remaining-calls-per-second: '164.85' status: code: 200 message: OK @@ -550,7 +555,7 @@ interactions: body: grant_type: refresh_token refresh_token: REDACTED - scope: repository:hello-world:metadata_read + scope: repository:library/hello-world:metadata_read service: fake_url.azurecr.io headers: Accept: @@ -565,11 +570,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:58 GMT + date: Tue, 13 Apr 2021 16:01:29 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '332.733333' + x-ms-ratelimit-remaining-calls-per-second: '164.833333' status: code: 200 message: OK @@ -582,27 +587,27 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_manifests?last=sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98&n=2&orderby= + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests?last=sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98&n=2&orderby= response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "hello-world", "manifests": - [{"digest": "sha256:e49abad529e5d9bd6787f3abeab94e09ba274fe34731349556a850b9aebbf7bf", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.5864242Z", "lastUpdateTime": - "2021-03-30T12:18:48.5864242Z", "architecture": "s390x", "os": "linux", "mediaType": + string: '{"registry": "fake_url.azurecr.io", "imageName": "library/hello-world", + "manifests": [{"digest": "sha256:e49abad529e5d9bd6787f3abeab94e09ba274fe34731349556a850b9aebbf7bf", + "imageSize": 0, "createdTime": "2021-04-13T15:10:45.2709645Z", "lastUpdateTime": + "2021-04-13T15:10:45.2709645Z", "architecture": "s390x", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:e5785cb0c62cebbed4965129bae371f0589cadd6d84798fb58c2c5f9e237efd9", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.4392605Z", "lastUpdateTime": - "2021-03-30T12:18:48.4392605Z", "architecture": "arm", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T15:10:45.4455031Z", "lastUpdateTime": + "2021-04-13T15:10:45.4455031Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '925' + content-length: '933' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:58 GMT + date: Tue, 13 Apr 2021 16:01:29 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -610,5 +615,5 @@ interactions: status: code: 200 message: OK - url: https://fake_url.azurecr.io/acr/v1/hello-world/_manifests?last=sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98&n=2&orderby= + url: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests?last=sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98&n=2&orderby= version: 1 diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_list_registry_artifacts_descending.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_list_registry_artifacts_descending.yaml index 14799e613ad9..66788338baf4 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_list_registry_artifacts_descending.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_list_registry_artifacts_descending.yaml @@ -7,27 +7,28 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_manifests?orderby=timedesc + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests?orderby=timedesc response: body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "repository", "Name": "hello-world", "Action": "metadata_read"}]}]}' + string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"library/hello-world","Action":"metadata_read"}]}]} + + ' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '214' + content-length: '222' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:54:58 GMT + date: Tue, 13 Apr 2021 16:01:30 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" + www-authenticate: Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:library/hello-world:metadata_read" x-content-type-options: nosniff status: code: 401 message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/hello-world/_manifests?orderby=timedesc + url: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests?orderby=timedesc - request: body: access_token: REDACTED @@ -46,11 +47,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:55:00 GMT + date: Tue, 13 Apr 2021 16:01:31 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '333.316667' + x-ms-ratelimit-remaining-calls-per-second: '166.016667' status: code: 200 message: OK @@ -59,7 +60,7 @@ interactions: body: grant_type: refresh_token refresh_token: REDACTED - scope: repository:hello-world:metadata_read + scope: repository:library/hello-world:metadata_read service: fake_url.azurecr.io headers: Accept: @@ -74,11 +75,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:55:00 GMT + date: Tue, 13 Apr 2021 16:01:31 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '333.3' + x-ms-ratelimit-remaining-calls-per-second: '166' status: code: 200 message: OK @@ -91,65 +92,65 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_manifests?orderby=timedesc + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests?orderby=timedesc response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "hello-world", "manifests": - [{"digest": "sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.9950981Z", "lastUpdateTime": - "2021-03-30T12:18:48.9950981Z", "architecture": "arm", "os": "linux", "mediaType": + string: '{"registry": "fake_url.azurecr.io", "imageName": "library/hello-world", + "manifests": [{"digest": "sha256:e5785cb0c62cebbed4965129bae371f0589cadd6d84798fb58c2c5f9e237efd9", + "imageSize": 0, "createdTime": "2021-04-13T15:10:45.4455031Z", "lastUpdateTime": + "2021-04-13T15:10:45.4455031Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:b0408a0f1d74eced127a2658429f336ed8fa48e36d59878f155b19865e5dbd70", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.6908523Z", "lastUpdateTime": - "2021-03-30T12:18:48.6908523Z", "architecture": "amd64", "os": "windows", - "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:e49abad529e5d9bd6787f3abeab94e09ba274fe34731349556a850b9aebbf7bf", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.5864242Z", "lastUpdateTime": - "2021-03-30T12:18:48.5864242Z", "architecture": "s390x", "os": "linux", "mediaType": - "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": - {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:e5785cb0c62cebbed4965129bae371f0589cadd6d84798fb58c2c5f9e237efd9", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.4392605Z", "lastUpdateTime": - "2021-03-30T12:18:48.4392605Z", "architecture": "arm", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T15:10:45.2709645Z", "lastUpdateTime": + "2021-04-13T15:10:45.2709645Z", "architecture": "s390x", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:bb7ab0fa94fdd78aca84b27a1bd46c4b811051f9b69905d81f5f267fc6546a9d", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.2834053Z", "lastUpdateTime": - "2021-03-30T12:18:48.2834053Z", "architecture": "ppc64le", "os": "linux", + "imageSize": 0, "createdTime": "2021-04-13T15:10:45.1653089Z", "lastUpdateTime": + "2021-04-13T15:10:45.1653089Z", "architecture": "ppc64le", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.1605587Z", "lastUpdateTime": - "2021-03-30T12:18:48.1605587Z", "architecture": "386", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:b0408a0f1d74eced127a2658429f336ed8fa48e36d59878f155b19865e5dbd70", + "imageSize": 0, "createdTime": "2021-04-13T15:10:45.1142611Z", "lastUpdateTime": + "2021-04-13T15:10:45.1142611Z", "architecture": "amd64", "os": "windows", + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": + {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": + true, "quarantineState": "Passed"}}, {"digest": "sha256:963612c5503f3f1674f315c67089dee577d8cc6afc18565e0b4183ae355fb343", + "imageSize": 0, "createdTime": "2021-04-13T15:10:44.8474328Z", "lastUpdateTime": + "2021-04-13T15:10:44.8474328Z", "architecture": "arm64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90", - "imageSize": 0, "createdTime": "2021-03-30T12:18:48.0921265Z", "lastUpdateTime": - "2021-03-30T12:18:48.0921265Z", "architecture": "mips64le", "os": "linux", + "imageSize": 0, "createdTime": "2021-04-13T15:10:44.7624881Z", "lastUpdateTime": + "2021-04-13T15:10:44.7624881Z", "architecture": "mips64le", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:963612c5503f3f1674f315c67089dee577d8cc6afc18565e0b4183ae355fb343", - "imageSize": 0, "createdTime": "2021-03-30T12:18:47.9641681Z", "lastUpdateTime": - "2021-03-30T12:18:47.9641681Z", "architecture": "arm64", "os": "linux", "mediaType": + true, "quarantineState": "Passed"}}, {"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", + "imageSize": 0, "createdTime": "2021-04-13T15:10:44.596258Z", "lastUpdateTime": + "2021-04-13T15:10:44.596258Z", "architecture": "amd64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": - true, "quarantineState": "Passed"}}, {"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", - "imageSize": 0, "createdTime": "2021-03-30T12:18:47.6437335Z", "lastUpdateTime": - "2021-03-30T12:18:47.6437335Z", "architecture": "amd64", "os": "linux", "mediaType": + true}}, {"digest": "sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1", + "imageSize": 0, "createdTime": "2021-04-13T15:10:44.4329424Z", "lastUpdateTime": + "2021-04-13T15:10:44.4329424Z", "architecture": "arm", "os": "linux", "mediaType": + "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": + {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": + true, "quarantineState": "Passed"}}, {"digest": "sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98", + "imageSize": 0, "createdTime": "2021-04-13T15:10:44.3167347Z", "lastUpdateTime": + "2021-04-13T15:10:44.3167347Z", "architecture": "386", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", - "imageSize": 0, "createdTime": "2021-03-30T12:18:47.4863064Z", "lastUpdateTime": - "2021-03-30T12:18:47.4863064Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", - "tags": ["latest"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": - false, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}]}' + "imageSize": 0, "createdTime": "2021-04-13T15:10:44.0031749Z", "lastUpdateTime": + "2021-04-13T15:10:44.0031749Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + "tags": ["latest", "v1", "v2", "v3", "v4"], "changeableAttributes": {"deleteEnabled": + true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:55:01 GMT + date: Tue, 13 Apr 2021 16:01:32 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -158,5 +159,5 @@ interactions: status: code: 200 message: OK - url: https://fake_url.azurecr.io/acr/v1/hello-world/_manifests?orderby=timedesc + url: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_manifests?orderby=timedesc version: 1 diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_list_tags.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_list_tags.yaml index 567f9f089762..a3344a735cc4 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_list_tags.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_list_tags.yaml @@ -7,27 +7,28 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_tags + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags response: body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "repository", "Name": "hello-world", "Action": "metadata_read"}]}]}' + string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"library/hello-world","Action":"metadata_read"}]}]} + + ' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '214' + content-length: '222' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:55:01 GMT + date: Tue, 13 Apr 2021 16:01:32 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" + www-authenticate: Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:library/hello-world:metadata_read" x-content-type-options: nosniff status: code: 401 message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/hello-world/_tags + url: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags - request: body: access_token: REDACTED @@ -46,11 +47,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:55:02 GMT + date: Tue, 13 Apr 2021 16:01:34 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '333.183333' + x-ms-ratelimit-remaining-calls-per-second: '165.45' status: code: 200 message: OK @@ -59,7 +60,7 @@ interactions: body: grant_type: refresh_token refresh_token: REDACTED - scope: repository:hello-world:metadata_read + scope: repository:library/hello-world:metadata_read service: fake_url.azurecr.io headers: Accept: @@ -74,11 +75,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:55:02 GMT + date: Tue, 13 Apr 2021 16:01:34 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '332.933333' + x-ms-ratelimit-remaining-calls-per-second: '165.4' status: code: 200 message: OK @@ -91,20 +92,36 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_tags + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "hello-world", "tags": - [{"name": "latest", "digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", - "createdTime": "2021-03-30T12:18:52.8272444Z", "lastUpdateTime": "2021-03-30T12:18:52.8272444Z", - "signed": false, "quarantineState": "Passed", "changeableAttributes": {"deleteEnabled": - true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}]}' + string: '{"registry": "fake_url.azurecr.io", "imageName": "library/hello-world", + "tags": [{"name": "latest", "digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", + "createdTime": "2021-04-13T15:10:43.9172084Z", "lastUpdateTime": "2021-04-13T15:10:43.9172084Z", + "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}, {"name": "v1", "digest": + "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", + "createdTime": "2021-04-13T15:10:45.0282838Z", "lastUpdateTime": "2021-04-13T15:10:45.0282838Z", + "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}, {"name": "v2", "digest": + "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", + "createdTime": "2021-04-13T15:10:44.668453Z", "lastUpdateTime": "2021-04-13T15:10:44.668453Z", + "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}, {"name": "v3", "digest": + "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", + "createdTime": "2021-04-13T15:10:44.2755611Z", "lastUpdateTime": "2021-04-13T15:10:44.2755611Z", + "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}, {"name": "v4", "digest": + "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", + "createdTime": "2021-04-13T15:10:45.3229504Z", "lastUpdateTime": "2021-04-13T15:10:45.3229504Z", + "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '410' + content-length: '1625' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:55:03 GMT + date: Tue, 13 Apr 2021 16:01:34 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -112,5 +129,5 @@ interactions: status: code: 200 message: OK - url: https://fake_url.azurecr.io/acr/v1/hello-world/_tags + url: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags version: 1 diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_list_tags_ascending.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_list_tags_ascending.yaml index 8d0311ddf871..003a18863b0e 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_list_tags_ascending.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_list_tags_ascending.yaml @@ -7,27 +7,28 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_tags?orderby=timeasc + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags?orderby=timeasc response: body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "repository", "Name": "hello-world", "Action": "metadata_read"}]}]}' + string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"library/hello-world","Action":"metadata_read"}]}]} + + ' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '214' + content-length: '222' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:55:03 GMT + date: Tue, 13 Apr 2021 16:01:35 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" + www-authenticate: Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:library/hello-world:metadata_read" x-content-type-options: nosniff status: code: 401 message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/hello-world/_tags?orderby=timeasc + url: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags?orderby=timeasc - request: body: access_token: REDACTED @@ -46,11 +47,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:55:04 GMT + date: Tue, 13 Apr 2021 16:01:36 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '332.95' + x-ms-ratelimit-remaining-calls-per-second: '166.533333' status: code: 200 message: OK @@ -59,7 +60,7 @@ interactions: body: grant_type: refresh_token refresh_token: REDACTED - scope: repository:hello-world:metadata_read + scope: repository:library/hello-world:metadata_read service: fake_url.azurecr.io headers: Accept: @@ -74,11 +75,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:55:04 GMT + date: Tue, 13 Apr 2021 16:01:36 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '332.916667' + x-ms-ratelimit-remaining-calls-per-second: '165.866667' status: code: 200 message: OK @@ -91,20 +92,36 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_tags?orderby=timeasc + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags?orderby=timeasc response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "hello-world", "tags": - [{"name": "latest", "digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", - "createdTime": "2021-03-30T12:18:52.8272444Z", "lastUpdateTime": "2021-03-30T12:18:52.8272444Z", - "signed": false, "quarantineState": "Passed", "changeableAttributes": {"deleteEnabled": - true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}]}' + string: '{"registry": "fake_url.azurecr.io", "imageName": "library/hello-world", + "tags": [{"name": "latest", "digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", + "createdTime": "2021-04-13T15:10:43.9172084Z", "lastUpdateTime": "2021-04-13T15:10:43.9172084Z", + "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}, {"name": "v3", "digest": + "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", + "createdTime": "2021-04-13T15:10:44.2755611Z", "lastUpdateTime": "2021-04-13T15:10:44.2755611Z", + "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}, {"name": "v2", "digest": + "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", + "createdTime": "2021-04-13T15:10:44.668453Z", "lastUpdateTime": "2021-04-13T15:10:44.668453Z", + "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}, {"name": "v1", "digest": + "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", + "createdTime": "2021-04-13T15:10:45.0282838Z", "lastUpdateTime": "2021-04-13T15:10:45.0282838Z", + "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}, {"name": "v4", "digest": + "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", + "createdTime": "2021-04-13T15:10:45.3229504Z", "lastUpdateTime": "2021-04-13T15:10:45.3229504Z", + "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '410' + content-length: '1625' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:55:05 GMT + date: Tue, 13 Apr 2021 16:01:36 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -112,5 +129,5 @@ interactions: status: code: 200 message: OK - url: https://fake_url.azurecr.io/acr/v1/hello-world/_tags?orderby=timeasc + url: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags?orderby=timeasc version: 1 diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_list_tags_by_page.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_list_tags_by_page.yaml index 250287fc1ddf..12c8c656b668 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_list_tags_by_page.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_list_tags_by_page.yaml @@ -7,27 +7,28 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_tags?n=2 + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags?n=2 response: body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "repository", "Name": "hello-world", "Action": "metadata_read"}]}]}' + string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"library/hello-world","Action":"metadata_read"}]}]} + + ' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '214' + content-length: '222' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:55:05 GMT + date: Tue, 13 Apr 2021 16:01:36 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" + www-authenticate: Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:library/hello-world:metadata_read" x-content-type-options: nosniff status: code: 401 message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/hello-world/_tags?n=2 + url: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags?n=2 - request: body: access_token: REDACTED @@ -46,11 +47,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:55:06 GMT + date: Tue, 13 Apr 2021 16:01:37 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '333.283333' + x-ms-ratelimit-remaining-calls-per-second: '165.816667' status: code: 200 message: OK @@ -59,7 +60,7 @@ interactions: body: grant_type: refresh_token refresh_token: REDACTED - scope: repository:hello-world:metadata_read + scope: repository:library/hello-world:metadata_read service: fake_url.azurecr.io headers: Accept: @@ -74,11 +75,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:55:06 GMT + date: Tue, 13 Apr 2021 16:01:37 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '332.9' + x-ms-ratelimit-remaining-calls-per-second: '165.6' status: code: 200 message: OK @@ -91,26 +92,266 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_tags?n=2 + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags?n=2 response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "hello-world", "tags": - [{"name": "latest", "digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", - "createdTime": "2021-03-30T12:18:52.8272444Z", "lastUpdateTime": "2021-03-30T12:18:52.8272444Z", - "signed": false, "quarantineState": "Passed", "changeableAttributes": {"deleteEnabled": - true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}]}' + string: '{"registry": "fake_url.azurecr.io", "imageName": "library/hello-world", + "tags": [{"name": "latest", "digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", + "createdTime": "2021-04-13T15:10:43.9172084Z", "lastUpdateTime": "2021-04-13T15:10:43.9172084Z", + "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}, {"name": "v1", "digest": + "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", + "createdTime": "2021-04-13T15:10:45.0282838Z", "lastUpdateTime": "2021-04-13T15:10:45.0282838Z", + "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '410' + content-length: '700' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:55:06 GMT + date: Tue, 13 Apr 2021 16:01:38 GMT docker-distribution-api-version: registry/2.0 + link: ; rel="next" server: openresty strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff status: code: 200 message: OK - url: https://fake_url.azurecr.io/acr/v1/hello-world/_tags?n=2 + url: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags?n=2 +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags?last=v1&n=2&orderby= + response: + body: + string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"library/hello-world","Action":"metadata_read"}]}]} + + ' + headers: + access-control-expose-headers: X-Ms-Correlation-Request-Id + connection: keep-alive + content-length: '222' + content-type: application/json; charset=utf-8 + date: Tue, 13 Apr 2021 16:01:38 GMT + docker-distribution-api-version: registry/2.0 + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + www-authenticate: Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:library/hello-world:metadata_read" + x-content-type-options: nosniff + status: + code: 401 + message: Unauthorized + url: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags?last=v1&n=2&orderby= +- request: + body: + access_token: REDACTED + grant_type: access_token + service: fake_url.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 13 Apr 2021 16:01:38 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '165.583333' + status: + code: 200 + message: OK + url: https://fake_url.azurecr.io/oauth2/exchange +- request: + body: + grant_type: refresh_token + refresh_token: REDACTED + scope: repository:library/hello-world:metadata_read + service: fake_url.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/token + response: + body: + string: '{"access_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 13 Apr 2021 16:01:38 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '165.566667' + status: + code: 200 + message: OK + url: https://fake_url.azurecr.io/oauth2/token +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags?last=v1&n=2&orderby= + response: + body: + string: '{"registry": "fake_url.azurecr.io", "imageName": "library/hello-world", + "tags": [{"name": "v2", "digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", + "createdTime": "2021-04-13T15:10:44.668453Z", "lastUpdateTime": "2021-04-13T15:10:44.668453Z", + "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}, {"name": "v3", "digest": + "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", + "createdTime": "2021-04-13T15:10:44.2755611Z", "lastUpdateTime": "2021-04-13T15:10:44.2755611Z", + "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}]}' + headers: + access-control-expose-headers: X-Ms-Correlation-Request-Id + connection: keep-alive + content-length: '694' + content-type: application/json; charset=utf-8 + date: Tue, 13 Apr 2021 16:01:38 GMT + docker-distribution-api-version: registry/2.0 + link: ; rel="next" + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + x-content-type-options: nosniff + status: + code: 200 + message: OK + url: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags?last=v1&n=2&orderby= +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags?last=v3&n=2&orderby= + response: + body: + string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"library/hello-world","Action":"metadata_read"}]}]} + + ' + headers: + access-control-expose-headers: X-Ms-Correlation-Request-Id + connection: keep-alive + content-length: '222' + content-type: application/json; charset=utf-8 + date: Tue, 13 Apr 2021 16:01:38 GMT + docker-distribution-api-version: registry/2.0 + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + www-authenticate: Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:library/hello-world:metadata_read" + x-content-type-options: nosniff + status: + code: 401 + message: Unauthorized + url: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags?last=v3&n=2&orderby= +- request: + body: + access_token: REDACTED + grant_type: access_token + service: fake_url.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 13 Apr 2021 16:01:39 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '165.55' + status: + code: 200 + message: OK + url: https://fake_url.azurecr.io/oauth2/exchange +- request: + body: + grant_type: refresh_token + refresh_token: REDACTED + scope: repository:library/hello-world:metadata_read + service: fake_url.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/token + response: + body: + string: '{"access_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 13 Apr 2021 16:01:39 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '165.533333' + status: + code: 200 + message: OK + url: https://fake_url.azurecr.io/oauth2/token +- request: + body: null + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags?last=v3&n=2&orderby= + response: + body: + string: '{"registry": "fake_url.azurecr.io", "imageName": "library/hello-world", + "tags": [{"name": "v4", "digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", + "createdTime": "2021-04-13T15:10:45.3229504Z", "lastUpdateTime": "2021-04-13T15:10:45.3229504Z", + "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}]}' + headers: + access-control-expose-headers: X-Ms-Correlation-Request-Id + connection: keep-alive + content-length: '387' + content-type: application/json; charset=utf-8 + date: Tue, 13 Apr 2021 16:01:39 GMT + docker-distribution-api-version: registry/2.0 + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + x-content-type-options: nosniff + status: + code: 200 + message: OK + url: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags?last=v3&n=2&orderby= version: 1 diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_list_tags_descending.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_list_tags_descending.yaml index 1913683ded6b..89cb9ce6fc49 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_list_tags_descending.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_list_tags_descending.yaml @@ -7,27 +7,28 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_tags?orderby=timedesc + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags?orderby=timedesc response: body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "repository", "Name": "hello-world", "Action": "metadata_read"}]}]}' + string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"library/hello-world","Action":"metadata_read"}]}]} + + ' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '214' + content-length: '222' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:55:07 GMT + date: Tue, 13 Apr 2021 16:01:39 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" + www-authenticate: Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:library/hello-world:metadata_read" x-content-type-options: nosniff status: code: 401 message: Unauthorized - url: https://fake_url.azurecr.io/acr/v1/hello-world/_tags?orderby=timedesc + url: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags?orderby=timedesc - request: body: access_token: REDACTED @@ -46,11 +47,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:55:08 GMT + date: Tue, 13 Apr 2021 16:01:40 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '333.316667' + x-ms-ratelimit-remaining-calls-per-second: '166.066667' status: code: 200 message: OK @@ -59,7 +60,7 @@ interactions: body: grant_type: refresh_token refresh_token: REDACTED - scope: repository:hello-world:metadata_read + scope: repository:library/hello-world:metadata_read service: fake_url.azurecr.io headers: Accept: @@ -74,11 +75,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:55:08 GMT + date: Tue, 13 Apr 2021 16:01:40 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '333.3' + x-ms-ratelimit-remaining-calls-per-second: '165.816667' status: code: 200 message: OK @@ -91,20 +92,36 @@ interactions: User-Agent: - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) method: GET - uri: https://fake_url.azurecr.io/acr/v1/hello-world/_tags?orderby=timedesc + uri: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags?orderby=timedesc response: body: - string: '{"registry": "fake_url.azurecr.io", "imageName": "hello-world", "tags": - [{"name": "latest", "digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", - "createdTime": "2021-03-30T12:18:52.8272444Z", "lastUpdateTime": "2021-03-30T12:18:52.8272444Z", - "signed": false, "quarantineState": "Passed", "changeableAttributes": {"deleteEnabled": - true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}]}' + string: '{"registry": "fake_url.azurecr.io", "imageName": "library/hello-world", + "tags": [{"name": "v4", "digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", + "createdTime": "2021-04-13T15:10:45.3229504Z", "lastUpdateTime": "2021-04-13T15:10:45.3229504Z", + "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}, {"name": "v1", "digest": + "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", + "createdTime": "2021-04-13T15:10:45.0282838Z", "lastUpdateTime": "2021-04-13T15:10:45.0282838Z", + "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}, {"name": "v2", "digest": + "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", + "createdTime": "2021-04-13T15:10:44.668453Z", "lastUpdateTime": "2021-04-13T15:10:44.668453Z", + "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}, {"name": "v3", "digest": + "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", + "createdTime": "2021-04-13T15:10:44.2755611Z", "lastUpdateTime": "2021-04-13T15:10:44.2755611Z", + "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}, {"name": "latest", "digest": + "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", + "createdTime": "2021-04-13T15:10:43.9172084Z", "lastUpdateTime": "2021-04-13T15:10:43.9172084Z", + "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}]}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '410' + content-length: '1625' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:55:09 GMT + date: Tue, 13 Apr 2021 16:01:41 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -112,5 +129,5 @@ interactions: status: code: 200 message: OK - url: https://fake_url.azurecr.io/acr/v1/hello-world/_tags?orderby=timedesc + url: https://fake_url.azurecr.io/acr/v1/library%2Fhello-world/_tags?orderby=timedesc version: 1 diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_set_manifest_properties.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_set_manifest_properties.yaml index a53ce2d5aca8..9e6427718b76 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_set_manifest_properties.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_set_manifest_properties.yaml @@ -1,4 +1,93 @@ interactions: +- request: + body: '{"source": {"registryUri": "registry.hub.docker.com", "sourceImage": "library/hello-world"}, + "targetTags": ["reposetb7cc1bf8:tagb7cc1bf8"], "mode": "Force"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '156' + Content-Type: + - application/json + User-Agent: + - azsdk-python-azure-mgmt-containerregistry/8.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://management.azure.com/subscriptions/2cd617ea-1866-46b1-90e3-fffb087ebf9b/resourceGroups/fake_rg/providers/Microsoft.ContainerRegistry/registries/seankane/importImage?api-version=2019-05-01 + response: + body: + string: 'null' + headers: + cache-control: + - no-cache + content-length: + - '4' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 13 Apr 2021 16:01:42 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/2cd617ea-1866-46b1-90e3-fffb087ebf9b/providers/Microsoft.ContainerRegistry/locations/WESTUS2/operationResults/registries-899405ae-9c71-11eb-a4d4-002b67128e4c?api-version=2019-05-01 + pragma: + - no-cache + server: + - Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-ms-ratelimit-remaining-subscription-writes: + - '1198' + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-azure-mgmt-containerregistry/8.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/2cd617ea-1866-46b1-90e3-fffb087ebf9b/providers/Microsoft.ContainerRegistry/locations/WESTUS2/operationResults/registries-899405ae-9c71-11eb-a4d4-002b67128e4c?api-version=2019-05-01 + response: + body: + string: '{"status": "Succeeded"}' + headers: + cache-control: + - no-cache + content-length: + - '22' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 13 Apr 2021 16:01:54 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + status: + code: 200 + message: OK - request: body: null headers: @@ -10,19 +99,20 @@ interactions: uri: https://fake_url.azurecr.io/acr/v1/reposetb7cc1bf8/_manifests response: body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "repository", "Name": "reposetb7cc1bf8", "Action": "metadata_read"}]}]}' + string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"reposetb7cc1bf8","Action":"metadata_read"}]}]} + + ' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-length: '218' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 14:46:26 GMT + date: Tue, 13 Apr 2021 16:01:55 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" + www-authenticate: Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:reposetb7cc1bf8:metadata_read" x-content-type-options: nosniff status: code: 401 @@ -46,11 +136,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 14:46:27 GMT + date: Tue, 13 Apr 2021 16:01:56 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '333.316667' + x-ms-ratelimit-remaining-calls-per-second: '165.816667' status: code: 200 message: OK @@ -74,11 +164,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 14:46:27 GMT + date: Tue, 13 Apr 2021 16:01:56 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '333.3' + x-ms-ratelimit-remaining-calls-per-second: '165.8' status: code: 200 message: OK @@ -96,52 +186,52 @@ interactions: body: string: '{"registry": "fake_url.azurecr.io", "imageName": "reposetb7cc1bf8", "manifests": [{"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", - "imageSize": 0, "createdTime": "2021-04-07T14:46:18.7697062Z", "lastUpdateTime": - "2021-04-07T14:46:18.7697062Z", "architecture": "amd64", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T16:01:46.4148312Z", "lastUpdateTime": + "2021-04-13T16:01:46.4148312Z", "architecture": "amd64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", - "imageSize": 0, "createdTime": "2021-04-07T14:46:16.0064179Z", "lastUpdateTime": - "2021-04-07T14:46:16.0064179Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", + "imageSize": 0, "createdTime": "2021-04-13T16:01:46.471707Z", "lastUpdateTime": + "2021-04-13T16:01:46.471707Z", "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", "tags": ["tagb7cc1bf8"], "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true}}, {"digest": "sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1", - "imageSize": 0, "createdTime": "2021-04-07T14:46:17.3404717Z", "lastUpdateTime": - "2021-04-07T14:46:17.3404717Z", "architecture": "arm", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T16:01:46.6782695Z", "lastUpdateTime": + "2021-04-13T16:01:46.6782695Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:88b2e00179bd6c4064612403c8d42a13de7ca809d61fee966ce9e129860a8a90", - "imageSize": 0, "createdTime": "2021-04-07T14:46:17.7809661Z", "lastUpdateTime": - "2021-04-07T14:46:17.7809661Z", "architecture": "mips64le", "os": "linux", + "imageSize": 0, "createdTime": "2021-04-13T16:01:46.8912435Z", "lastUpdateTime": + "2021-04-13T16:01:46.8912435Z", "architecture": "mips64le", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:963612c5503f3f1674f315c67089dee577d8cc6afc18565e0b4183ae355fb343", - "imageSize": 0, "createdTime": "2021-04-07T14:46:16.679345Z", "lastUpdateTime": - "2021-04-07T14:46:16.679345Z", "architecture": "arm64", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T16:01:47.2992356Z", "lastUpdateTime": + "2021-04-13T16:01:47.2992356Z", "architecture": "arm64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:b0408a0f1d74eced127a2658429f336ed8fa48e36d59878f155b19865e5dbd70", - "imageSize": 0, "createdTime": "2021-04-07T14:46:16.8386028Z", "lastUpdateTime": - "2021-04-07T14:46:16.8386028Z", "architecture": "amd64", "os": "windows", + "imageSize": 0, "createdTime": "2021-04-13T16:01:47.4047852Z", "lastUpdateTime": + "2021-04-13T16:01:47.4047852Z", "architecture": "amd64", "os": "windows", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:bb7ab0fa94fdd78aca84b27a1bd46c4b811051f9b69905d81f5f267fc6546a9d", - "imageSize": 0, "createdTime": "2021-04-07T14:46:17.3963026Z", "lastUpdateTime": - "2021-04-07T14:46:17.3963026Z", "architecture": "ppc64le", "os": "linux", + "imageSize": 0, "createdTime": "2021-04-13T16:01:47.7896587Z", "lastUpdateTime": + "2021-04-13T16:01:47.7896587Z", "architecture": "ppc64le", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:cb55d8f7347376e1ba38ca740904b43c9a52f66c7d2ae1ef1a0de1bc9f40df98", - "imageSize": 0, "createdTime": "2021-04-07T14:46:19.8874902Z", "lastUpdateTime": - "2021-04-07T14:46:19.8874902Z", "architecture": "386", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T16:01:48.9042046Z", "lastUpdateTime": + "2021-04-13T16:01:48.9042046Z", "architecture": "386", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:e49abad529e5d9bd6787f3abeab94e09ba274fe34731349556a850b9aebbf7bf", - "imageSize": 0, "createdTime": "2021-04-07T14:46:16.7566071Z", "lastUpdateTime": - "2021-04-07T14:46:16.7566071Z", "architecture": "s390x", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T16:01:47.0119966Z", "lastUpdateTime": + "2021-04-13T16:01:47.0119966Z", "architecture": "s390x", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}, {"digest": "sha256:e5785cb0c62cebbed4965129bae371f0589cadd6d84798fb58c2c5f9e237efd9", - "imageSize": 0, "createdTime": "2021-04-07T14:46:17.1742286Z", "lastUpdateTime": - "2021-04-07T14:46:17.1742286Z", "architecture": "arm", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T16:01:46.7710235Z", "lastUpdateTime": + "2021-04-13T16:01:46.7710235Z", "architecture": "arm", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineState": "Passed"}}]}' @@ -149,7 +239,7 @@ interactions: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 14:46:28 GMT + date: Tue, 13 Apr 2021 16:01:57 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -175,19 +265,20 @@ interactions: uri: https://fake_url.azurecr.io/acr/v1/reposetb7cc1bf8/_manifests/sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792 response: body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "repository", "Name": "reposetb7cc1bf8", "Action": "metadata_write"}]}]}' + string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"reposetb7cc1bf8","Action":"metadata_write"}]}]} + + ' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-length: '219' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 14:46:28 GMT + date: Tue, 13 Apr 2021 16:01:57 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" + www-authenticate: Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:reposetb7cc1bf8:metadata_write" x-content-type-options: nosniff status: code: 401 @@ -211,11 +302,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 14:46:28 GMT + date: Tue, 13 Apr 2021 16:01:57 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '333.283333' + x-ms-ratelimit-remaining-calls-per-second: '165.783333' status: code: 200 message: OK @@ -239,11 +330,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 14:46:28 GMT + date: Tue, 13 Apr 2021 16:01:57 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '333.266667' + x-ms-ratelimit-remaining-calls-per-second: '165.766667' status: code: 200 message: OK @@ -266,19 +357,19 @@ interactions: body: string: '{"registry": "fake_url.azurecr.io", "imageName": "reposetb7cc1bf8", "manifest": {"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", - "imageSize": 0, "createdTime": "2021-04-07T14:46:18.7697062Z", "lastUpdateTime": - "2021-04-07T14:46:18.7697062Z", "architecture": "amd64", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T16:01:46.4148312Z", "lastUpdateTime": + "2021-04-13T16:01:46.4148312Z", "architecture": "amd64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": false, "writeEnabled": false, "readEnabled": false, "listEnabled": false, "quarantineDetails": "{\"state\":\"Scan Passed\",\"link\":\"https://aka.ms/test\",\"scanner\":\"Azure - Security Monitoring-Qualys Scanner\",\"result\":{\"version\":\"2021-04-02T20:09:40.8950004Z\",\"summary\":[{\"severity\":\"High\",\"count\":3},{\"severity\":\"Medium\",\"count\":8},{\"severity\":\"Low\",\"count\":0}]}}", + Security Monitoring-Qualys Scanner\",\"result\":{\"version\":\"2021-04-07T23:08:03.9486288Z\",\"summary\":[{\"severity\":\"High\",\"count\":2},{\"severity\":\"Medium\",\"count\":2},{\"severity\":\"Low\",\"count\":0}]}}", "quarantineState": "Passed"}}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-length: '827' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 14:46:29 GMT + date: Tue, 13 Apr 2021 16:01:58 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -303,19 +394,20 @@ interactions: uri: https://fake_url.azurecr.io/acr/v1/reposetb7cc1bf8/_manifests/sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792 response: body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "repository", "Name": "reposetb7cc1bf8", "Action": "metadata_write"}]}]}' + string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"reposetb7cc1bf8","Action":"metadata_write"}]}]} + + ' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-length: '219' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 14:46:30 GMT + date: Tue, 13 Apr 2021 16:01:58 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" + www-authenticate: Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:reposetb7cc1bf8:metadata_write" x-content-type-options: nosniff status: code: 401 @@ -339,11 +431,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 14:46:30 GMT + date: Tue, 13 Apr 2021 16:01:58 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '333.25' + x-ms-ratelimit-remaining-calls-per-second: '165.75' status: code: 200 message: OK @@ -367,11 +459,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 14:46:30 GMT + date: Tue, 13 Apr 2021 16:01:59 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '333.233333' + x-ms-ratelimit-remaining-calls-per-second: '165.733333' status: code: 200 message: OK @@ -394,19 +486,19 @@ interactions: body: string: '{"registry": "fake_url.azurecr.io", "imageName": "reposetb7cc1bf8", "manifest": {"digest": "sha256:1b26826f602946860c279fce658f31050cff2c596583af237d971f4629b57792", - "imageSize": 0, "createdTime": "2021-04-07T14:46:18.7697062Z", "lastUpdateTime": - "2021-04-07T14:46:18.7697062Z", "architecture": "amd64", "os": "linux", "mediaType": + "imageSize": 0, "createdTime": "2021-04-13T16:01:46.4148312Z", "lastUpdateTime": + "2021-04-13T16:01:46.4148312Z", "architecture": "amd64", "os": "linux", "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "changeableAttributes": {"deleteEnabled": true, "writeEnabled": true, "readEnabled": true, "listEnabled": true, "quarantineDetails": "{\"state\":\"Scan Passed\",\"link\":\"https://aka.ms/test\",\"scanner\":\"Azure - Security Monitoring-Qualys Scanner\",\"result\":{\"version\":\"2021-04-02T20:09:40.8950004Z\",\"summary\":[{\"severity\":\"High\",\"count\":3},{\"severity\":\"Medium\",\"count\":8},{\"severity\":\"Low\",\"count\":0}]}}", + Security Monitoring-Qualys Scanner\",\"result\":{\"version\":\"2021-04-07T23:08:03.9486288Z\",\"summary\":[{\"severity\":\"High\",\"count\":2},{\"severity\":\"Medium\",\"count\":2},{\"severity\":\"Low\",\"count\":0}]}}", "quarantineState": "Passed"}}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-length: '823' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 14:46:30 GMT + date: Tue, 13 Apr 2021 16:01:59 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -426,19 +518,20 @@ interactions: uri: https://fake_url.azurecr.io/acr/v1/reposetb7cc1bf8 response: body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "repository", "Name": "reposetb7cc1bf8", "Action": "delete"}]}]}' + string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"reposetb7cc1bf8","Action":"delete"}]}]} + + ' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-length: '211' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 14:46:40 GMT + date: Tue, 13 Apr 2021 16:01:59 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" + www-authenticate: Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:reposetb7cc1bf8:delete" x-content-type-options: nosniff status: code: 401 @@ -462,11 +555,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 14:46:41 GMT + date: Tue, 13 Apr 2021 16:01:59 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '333.2' + x-ms-ratelimit-remaining-calls-per-second: '165.716667' status: code: 200 message: OK @@ -490,11 +583,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 14:46:41 GMT + date: Tue, 13 Apr 2021 16:02:00 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '333.183333' + x-ms-ratelimit-remaining-calls-per-second: '166.066667' status: code: 200 message: OK @@ -526,12 +619,12 @@ interactions: connection: keep-alive content-length: '793' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 14:46:44 GMT + date: Tue, 13 Apr 2021 16:02:08 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains x-content-type-options: nosniff - x-ms-ratelimit-remaining-calls-per-second: '32.000000' + x-ms-ratelimit-remaining-calls-per-second: '8.000000' status: code: 202 message: Accepted diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_set_manifest_properties_does_not_exist.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_set_manifest_properties_does_not_exist.yaml index 762a70bd4979..4035d913800b 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_set_manifest_properties_does_not_exist.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_set_manifest_properties_does_not_exist.yaml @@ -14,19 +14,20 @@ interactions: uri: https://fake_url.azurecr.io/acr/v1/repo8cab223e/_manifests/sha256:abcdef response: body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "repository", "Name": "repo8cab223e", "Action": "metadata_write"}]}]}' + string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"repo8cab223e","Action":"metadata_write"}]}]} + + ' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-length: '216' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 14:46:45 GMT + date: Tue, 13 Apr 2021 16:02:08 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" + www-authenticate: Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:repo8cab223e:metadata_write" x-content-type-options: nosniff status: code: 401 @@ -50,11 +51,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 14:46:45 GMT + date: Tue, 13 Apr 2021 16:02:09 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '332.783333' + x-ms-ratelimit-remaining-calls-per-second: '166.316667' status: code: 200 message: OK @@ -78,11 +79,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 14:46:46 GMT + date: Tue, 13 Apr 2021 16:02:09 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '332.766667' + x-ms-ratelimit-remaining-calls-per-second: '166.3' status: code: 200 message: OK @@ -108,7 +109,7 @@ interactions: connection: keep-alive content-length: '70' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 14:46:46 GMT + date: Tue, 13 Apr 2021 16:02:09 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_set_tag_properties.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_set_tag_properties.yaml index 672f3a0e5cfd..6be8156d3d51 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_set_tag_properties.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_set_tag_properties.yaml @@ -1,4 +1,93 @@ interactions: +- request: + body: '{"source": {"registryUri": "registry.hub.docker.com", "sourceImage": "library/hello-world"}, + "targetTags": ["repo308e19dd:tag308e19dd"], "mode": "Force"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '153' + Content-Type: + - application/json + User-Agent: + - azsdk-python-azure-mgmt-containerregistry/8.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://management.azure.com/subscriptions/2cd617ea-1866-46b1-90e3-fffb087ebf9b/resourceGroups/fake_rg/providers/Microsoft.ContainerRegistry/registries/seankane/importImage?api-version=2019-05-01 + response: + body: + string: 'null' + headers: + cache-control: + - no-cache + content-length: + - '4' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 13 Apr 2021 16:02:11 GMT + expires: + - '-1' + location: + - https://management.azure.com/subscriptions/2cd617ea-1866-46b1-90e3-fffb087ebf9b/providers/Microsoft.ContainerRegistry/locations/WESTUS2/operationResults/registries-9ab50574-9c71-11eb-a64e-002b67128e4c?api-version=2019-05-01 + pragma: + - no-cache + server: + - Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-ms-ratelimit-remaining-subscription-writes: + - '1199' + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-azure-mgmt-containerregistry/8.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/2cd617ea-1866-46b1-90e3-fffb087ebf9b/providers/Microsoft.ContainerRegistry/locations/WESTUS2/operationResults/registries-9ab50574-9c71-11eb-a64e-002b67128e4c?api-version=2019-05-01 + response: + body: + string: '{"status": "Succeeded"}' + headers: + cache-control: + - no-cache + content-length: + - '22' + content-type: + - application/json; charset=utf-8 + date: + - Tue, 13 Apr 2021 16:02:24 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + status: + code: 200 + message: OK - request: body: null headers: @@ -10,19 +99,20 @@ interactions: uri: https://fake_url.azurecr.io/acr/v1/repo308e19dd/_tags/tag308e19dd response: body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "repository", "Name": "repo308e19dd", "Action": "metadata_read"}]}]}' + string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"repo308e19dd","Action":"metadata_read"}]}]} + + ' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-length: '215' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:55:48 GMT + date: Tue, 13 Apr 2021 16:02:25 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" + www-authenticate: Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:repo308e19dd:metadata_read" x-content-type-options: nosniff status: code: 401 @@ -46,11 +136,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:55:49 GMT + date: Tue, 13 Apr 2021 16:02:26 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '333.283333' + x-ms-ratelimit-remaining-calls-per-second: '166.4' status: code: 200 message: OK @@ -74,11 +164,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:55:50 GMT + date: Tue, 13 Apr 2021 16:02:26 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '333.216667' + x-ms-ratelimit-remaining-calls-per-second: '166.15' status: code: 200 message: OK @@ -96,15 +186,15 @@ interactions: body: string: '{"registry": "fake_url.azurecr.io", "imageName": "repo308e19dd", "tag": {"name": "tag308e19dd", "digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", - "createdTime": "2021-03-31T15:28:44.8030566Z", "lastUpdateTime": "2021-03-31T15:28:44.8030566Z", - "signed": false, "changeableAttributes": {"deleteEnabled": false, "writeEnabled": - false, "readEnabled": false, "listEnabled": false}}}' + "createdTime": "2021-04-13T15:27:59.0688924Z", "lastUpdateTime": "2021-04-13T15:27:59.0688924Z", + "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}}' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive - content-length: '390' + content-length: '386' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:55:50 GMT + date: Tue, 13 Apr 2021 16:02:26 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains @@ -129,19 +219,20 @@ interactions: uri: https://fake_url.azurecr.io/acr/v1/repo308e19dd/_tags/tag308e19dd response: body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "repository", "Name": "repo308e19dd", "Action": "metadata_write"}]}]}' + string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"repo308e19dd","Action":"metadata_write"}]}]} + + ' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-length: '216' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:55:50 GMT + date: Tue, 13 Apr 2021 16:02:26 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" + www-authenticate: Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:repo308e19dd:metadata_write" x-content-type-options: nosniff status: code: 401 @@ -165,11 +256,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:55:50 GMT + date: Tue, 13 Apr 2021 16:02:26 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '333.2' + x-ms-ratelimit-remaining-calls-per-second: '166.133333' status: code: 200 message: OK @@ -193,11 +284,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:55:51 GMT + date: Tue, 13 Apr 2021 16:02:26 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '333.183333' + x-ms-ratelimit-remaining-calls-per-second: '166.116667' status: code: 200 message: OK @@ -220,7 +311,7 @@ interactions: body: string: '{"registry": "fake_url.azurecr.io", "imageName": "repo308e19dd", "tag": {"name": "tag308e19dd", "digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", - "createdTime": "2021-03-31T15:28:44.8030566Z", "lastUpdateTime": "2021-03-31T15:28:44.8030566Z", + "createdTime": "2021-04-13T15:27:59.0688924Z", "lastUpdateTime": "2021-04-13T15:27:59.0688924Z", "signed": false, "changeableAttributes": {"deleteEnabled": false, "writeEnabled": false, "readEnabled": false, "listEnabled": false}}}' headers: @@ -228,7 +319,132 @@ interactions: connection: keep-alive content-length: '390' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:55:51 GMT + date: Tue, 13 Apr 2021 16:02:27 GMT + docker-distribution-api-version: registry/2.0 + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + x-content-type-options: nosniff + status: + code: 200 + message: OK + url: https://fake_url.azurecr.io/acr/v1/repo308e19dd/_tags/tag308e19dd +- request: + body: '{"deleteEnabled": true, "writeEnabled": true, "listEnabled": true, "readEnabled": + true}' + headers: + Accept: + - application/json + Content-Length: + - '87' + Content-Type: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + method: PATCH + uri: https://fake_url.azurecr.io/acr/v1/repo308e19dd/_tags/tag308e19dd + response: + body: + string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"repo308e19dd","Action":"metadata_write"}]}]} + + ' + headers: + access-control-expose-headers: X-Ms-Correlation-Request-Id + connection: keep-alive + content-length: '216' + content-type: application/json; charset=utf-8 + date: Tue, 13 Apr 2021 16:02:27 GMT + docker-distribution-api-version: registry/2.0 + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + www-authenticate: Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:repo308e19dd:metadata_write" + x-content-type-options: nosniff + status: + code: 401 + message: Unauthorized + url: https://fake_url.azurecr.io/acr/v1/repo308e19dd/_tags/tag308e19dd +- request: + body: + access_token: REDACTED + grant_type: access_token + service: fake_url.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/exchange + response: + body: + string: '{"refresh_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 13 Apr 2021 16:02:27 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '166.1' + status: + code: 200 + message: OK + url: https://fake_url.azurecr.io/oauth2/exchange +- request: + body: + grant_type: refresh_token + refresh_token: REDACTED + scope: repository:repo308e19dd:metadata_write + service: fake_url.azurecr.io + headers: + Accept: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://fake_url.azurecr.io/oauth2/token + response: + body: + string: '{"access_token": "REDACTED"}' + headers: + connection: keep-alive + content-type: application/json; charset=utf-8 + date: Tue, 13 Apr 2021 16:02:27 GMT + server: openresty + strict-transport-security: max-age=31536000; includeSubDomains + transfer-encoding: chunked + x-ms-ratelimit-remaining-calls-per-second: '166.083333' + status: + code: 200 + message: OK + url: https://fake_url.azurecr.io/oauth2/token +- request: + body: '{"deleteEnabled": true, "writeEnabled": true, "listEnabled": true, "readEnabled": + true}' + headers: + Accept: + - application/json + Content-Length: + - '87' + Content-Type: + - application/json + User-Agent: + - azsdk-python-azure-containerregistry/1.0.0b1 Python/3.9.0rc1 (Windows-10-10.0.19041-SP0) + method: PATCH + uri: https://fake_url.azurecr.io/acr/v1/repo308e19dd/_tags/tag308e19dd + response: + body: + string: '{"registry": "fake_url.azurecr.io", "imageName": "repo308e19dd", "tag": + {"name": "tag308e19dd", "digest": "sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24", + "createdTime": "2021-04-13T15:27:59.0688924Z", "lastUpdateTime": "2021-04-13T15:27:59.0688924Z", + "signed": false, "changeableAttributes": {"deleteEnabled": true, "writeEnabled": + true, "readEnabled": true, "listEnabled": true}}}' + headers: + access-control-expose-headers: X-Ms-Correlation-Request-Id + connection: keep-alive + content-length: '386' + content-type: application/json; charset=utf-8 + date: Tue, 13 Apr 2021 16:02:28 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains diff --git a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_set_tag_properties_does_not_exist.yaml b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_set_tag_properties_does_not_exist.yaml index 0b16eaad6ee3..30c86e6309a1 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_set_tag_properties_does_not_exist.yaml +++ b/sdk/containerregistry/azure-containerregistry/tests/recordings/test_container_repository_client_async.test_set_tag_properties_does_not_exist.yaml @@ -14,19 +14,20 @@ interactions: uri: https://fake_url.azurecr.io/acr/v1/repoe5c92023/_tags/does_not_exist response: body: - string: '{"errors": [{"code": "UNAUTHORIZED", "message": "authentication required, - visit https://aka.ms/acr/authorization for more information.", "detail": [{"Type": - "repository", "Name": "repoe5c92023", "Action": "metadata_write"}]}]}' + string: '{"errors":[{"code":"UNAUTHORIZED","message":"authentication required, + visit https://aka.ms/acr/authorization for more information.","detail":[{"Type":"repository","Name":"repoe5c92023","Action":"metadata_write"}]}]} + + ' headers: access-control-expose-headers: X-Ms-Correlation-Request-Id connection: keep-alive content-length: '216' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:55:52 GMT + date: Tue, 13 Apr 2021 16:02:28 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains - www-authenticate: Bearer realm="https://fake_url.azurecr.io/oauth2/token",service="fake_url.azurecr.io",scope="fake_scope",error="invalid_token" + www-authenticate: Bearer realm="https://seankane.azurecr.io/oauth2/token",service="seankane.azurecr.io",scope="repository:repoe5c92023:metadata_write" x-content-type-options: nosniff status: code: 401 @@ -50,11 +51,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:55:53 GMT + date: Tue, 13 Apr 2021 16:02:29 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '333.283333' + x-ms-ratelimit-remaining-calls-per-second: '165.8' status: code: 200 message: OK @@ -78,11 +79,11 @@ interactions: headers: connection: keep-alive content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:55:53 GMT + date: Tue, 13 Apr 2021 16:02:29 GMT server: openresty strict-transport-security: max-age=31536000; includeSubDomains transfer-encoding: chunked - x-ms-ratelimit-remaining-calls-per-second: '333.266667' + x-ms-ratelimit-remaining-calls-per-second: '165.783333' status: code: 200 message: OK @@ -109,7 +110,7 @@ interactions: connection: keep-alive content-length: '81' content-type: application/json; charset=utf-8 - date: Wed, 07 Apr 2021 12:55:53 GMT + date: Tue, 13 Apr 2021 16:02:30 GMT docker-distribution-api-version: registry/2.0 server: openresty strict-transport-security: max-age=31536000; includeSubDomains diff --git a/sdk/containerregistry/azure-containerregistry/tests/test_container_repository_client_async.py b/sdk/containerregistry/azure-containerregistry/tests/test_container_repository_client_async.py index 8f63d94cff95..0ba0bada4384 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/test_container_repository_client_async.py +++ b/sdk/containerregistry/azure-containerregistry/tests/test_container_repository_client_async.py @@ -85,7 +85,7 @@ async def test_list_tags_by_page(self, containerregistry_endpoint): @acr_preparer() async def test_delete_tag(self, containerregistry_endpoint, containerregistry_resource_group): - self.import_image(repo, ["{}:{}".format(HELLO_WORLD, TO_BE_DELETED)]) + self.import_image(HELLO_WORLD, ["{}:{}".format(HELLO_WORLD, TO_BE_DELETED)]) client = self.create_repository_client(containerregistry_endpoint, HELLO_WORLD) From 79ed1b12c41d229f46ace34aac23fede93977654 Mon Sep 17 00:00:00 2001 From: seankane-msft Date: Tue, 13 Apr 2021 14:15:08 -0400 Subject: [PATCH 23/26] adding try catch for import-module --- sdk/containerregistry/test-resources-post.ps1 | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/sdk/containerregistry/test-resources-post.ps1 b/sdk/containerregistry/test-resources-post.ps1 index 7453e6982dd2..96cf4f948fd4 100644 --- a/sdk/containerregistry/test-resources-post.ps1 +++ b/sdk/containerregistry/test-resources-post.ps1 @@ -8,9 +8,12 @@ param ( [string] $TestApplicationSecret ) -if ($IsMacOS) { - Update-Module -Name Az.ContainerRegistry -Force - Import-Module Az.ContainerRegistry +try { + Import-Module -Name Az.ContainerRegistry -MinimumVersion 2.0.0 +} +catch { + Install-Module -Name Az.ContainerRegistry -MinimumVersion 2.0.0 -Force -AllowClobber + Import-Module -Name Az.ContainerRegistry -MinimumVersion 2.0.0 } Import-AzContainerRegistryImage ` From 317cde42b19fb8e301e1d62315e4fd2a799df9db Mon Sep 17 00:00:00 2001 From: seankane-msft Date: Tue, 13 Apr 2021 14:22:49 -0400 Subject: [PATCH 24/26] adding import for Az.Accounts --- sdk/containerregistry/test-resources-post.ps1 | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/sdk/containerregistry/test-resources-post.ps1 b/sdk/containerregistry/test-resources-post.ps1 index 96cf4f948fd4..82a75b1201ba 100644 --- a/sdk/containerregistry/test-resources-post.ps1 +++ b/sdk/containerregistry/test-resources-post.ps1 @@ -8,6 +8,14 @@ param ( [string] $TestApplicationSecret ) +try { + Import-Module -Name Az.Accounts -MinimumVersion 2.2.8 +} +catch { + Install-Module -Name Az.Accounts -MinimumVersion 2.2.8 -Force -AllowClobber + Import-Module -Name Az.Accounts -MinimumVersion 2.2.8 +} + try { Import-Module -Name Az.ContainerRegistry -MinimumVersion 2.0.0 } From 1a9411737bb2831ad6a4ddd301041ca102ec7bb1 Mon Sep 17 00:00:00 2001 From: seankane-msft Date: Tue, 13 Apr 2021 14:47:55 -0400 Subject: [PATCH 25/26] using a fixture instead of the powershell script --- .../azure-containerregistry/tests/conftest.py | 8 ++ .../azure-containerregistry/tests/testcase.py | 49 ++++++++++++ sdk/containerregistry/test-resources-post.ps1 | 77 ++++++++++--------- 3 files changed, 96 insertions(+), 38 deletions(-) diff --git a/sdk/containerregistry/azure-containerregistry/tests/conftest.py b/sdk/containerregistry/azure-containerregistry/tests/conftest.py index 8ecd631b1960..242a058af9da 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/conftest.py +++ b/sdk/containerregistry/azure-containerregistry/tests/conftest.py @@ -7,7 +7,15 @@ import sys +# Fixture +from testcase import load_registry + # Ignore async tests for Python < 3.5 collect_ignore_glob = [] if sys.version_info < (3, 5): collect_ignore_glob.append("*_async.py") + +def pytest_configure(config): + config.addinivalue_line( + "usefixtures", "load_registry" + ) diff --git a/sdk/containerregistry/azure-containerregistry/tests/testcase.py b/sdk/containerregistry/azure-containerregistry/tests/testcase.py index 73c5b28aff3c..5486aa58d20a 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/testcase.py +++ b/sdk/containerregistry/azure-containerregistry/tests/testcase.py @@ -7,6 +7,7 @@ from datetime import datetime import json import os +import pytest import re import six import subprocess @@ -253,3 +254,51 @@ def assert_tag( def assert_registry_artifact(self, tag_or_digest, expected_tag_or_digest): assert isinstance(tag_or_digest, RegistryArtifactProperties) assert tag_or_digest == expected_tag_or_digest + + +def import_image(repository, tags): + mgmt_client = ContainerRegistryManagementClient(DefaultAzureCredential(), os.environ["CONTAINERREGISTRY_SUBSCRIPTION_ID"]) + registry_uri = "registry.hub.docker.com" + rg_name = os.environ["CONTAINERREGISTRY_RESOURCE_GROUP"] + registry_name = os.environ["CONTAINERREGISTRY_REGISTRY_NAME"] + + import_source = ImportSource( + source_image=repository, + registry_uri=registry_uri + ) + + import_params = ImportImageParameters( + mode=ImportMode.Force, + source=import_source, + target_tags=tags + ) + + result = mgmt_client.registries.begin_import_image( + rg_name, + registry_name, + parameters=import_params, + ) + + while not result.done(): + pass + + +@pytest.fixture(scope="session") +def load_registry(): + repos = [ + "library/hello-world", + "library/alpine", + "library/busybox", + ] + tags = [ + [ + "library/hello-world:latest", "library/hello-world:v1", "library/hello-world:v2", "library/hello-world:v3", "library/hello-world:v4" + ], + ["library/alpine"], + ["library/busybox"], + ] + for repo, tag in zip(repos, tags): + try: + import_image(repo, tag) + except Exception as e: + print(e) \ No newline at end of file diff --git a/sdk/containerregistry/test-resources-post.ps1 b/sdk/containerregistry/test-resources-post.ps1 index 82a75b1201ba..ba8041e1293c 100644 --- a/sdk/containerregistry/test-resources-post.ps1 +++ b/sdk/containerregistry/test-resources-post.ps1 @@ -1,44 +1,45 @@ -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. +# # Copyright (c) Microsoft Corporation. All rights reserved. +# # Licensed under the MIT License. -param ( - [hashtable] $DeploymentOutputs, - [string] $TenantId, - [string] $TestApplicationId, - [string] $TestApplicationSecret -) +# param ( +# [hashtable] $DeploymentOutputs, +# [string] $TenantId, +# [string] $TestApplicationId, +# [string] $TestApplicationSecret +# ) -try { - Import-Module -Name Az.Accounts -MinimumVersion 2.2.8 -} -catch { - Install-Module -Name Az.Accounts -MinimumVersion 2.2.8 -Force -AllowClobber - Import-Module -Name Az.Accounts -MinimumVersion 2.2.8 -} -try { - Import-Module -Name Az.ContainerRegistry -MinimumVersion 2.0.0 -} -catch { - Install-Module -Name Az.ContainerRegistry -MinimumVersion 2.0.0 -Force -AllowClobber - Import-Module -Name Az.ContainerRegistry -MinimumVersion 2.0.0 -} +# try { +# Import-Module -Name Az.Accounts -MinimumVersion 2.2.8 +# } +# catch { +# Install-Module -Name Az.Accounts -MinimumVersion 2.2.8 -Force -AllowClobber +# Import-Module -Name Az.Accounts -MinimumVersion 2.2.8 +# } -Import-AzContainerRegistryImage ` - -ResourceGroupName $DeploymentOutputs['CONTAINERREGISTRY_RESOURCE_GROUP'] ` - -RegistryName $DeploymentOutputs['CONTAINERREGISTRY_USERNAME'] ` - -SourceImage 'library/hello-world' -SourceRegistryUri 'registry.hub.docker.com' ` - -TargetTag @('library/hello-world:latest', 'library/hello-world:v1', 'library/hello-world:v2', 'library/hello-world:v3', 'library/hello-world:v4') ` - -Mode 'Force' +# try { +# Import-Module -Name Az.ContainerRegistry -MinimumVersion 2.0.0 +# } +# catch { +# Install-Module -Name Az.ContainerRegistry -MinimumVersion 2.0.0 -Force -AllowClobber +# Import-Module -Name Az.ContainerRegistry -MinimumVersion 2.0.0 +# } -Import-AzContainerRegistryImage ` - -ResourceGroupName $DeploymentOutputs['CONTAINERREGISTRY_RESOURCE_GROUP'] ` - -RegistryName $DeploymentOutputs['CONTAINERREGISTRY_USERNAME'] ` - -SourceImage 'library/alpine' -SourceRegistryUri 'registry.hub.docker.com' ` - -Mode 'Force' +# Import-AzContainerRegistryImage ` +# -ResourceGroupName $DeploymentOutputs['CONTAINERREGISTRY_RESOURCE_GROUP'] ` +# -RegistryName $DeploymentOutputs['CONTAINERREGISTRY_USERNAME'] ` +# -SourceImage 'library/hello-world' -SourceRegistryUri 'registry.hub.docker.com' ` +# -TargetTag @('library/hello-world:latest', 'library/hello-world:v1', 'library/hello-world:v2', 'library/hello-world:v3', 'library/hello-world:v4') ` +# -Mode 'Force' -Import-AzContainerRegistryImage ` - -ResourceGroupName $DeploymentOutputs['CONTAINERREGISTRY_RESOURCE_GROUP'] ` - -RegistryName $DeploymentOutputs['CONTAINERREGISTRY_USERNAME'] ` - -SourceImage 'library/busybox' -SourceRegistryUri 'registry.hub.docker.com' ` - -Mode 'Force' +# Import-AzContainerRegistryImage ` +# -ResourceGroupName $DeploymentOutputs['CONTAINERREGISTRY_RESOURCE_GROUP'] ` +# -RegistryName $DeploymentOutputs['CONTAINERREGISTRY_USERNAME'] ` +# -SourceImage 'library/alpine' -SourceRegistryUri 'registry.hub.docker.com' ` +# -Mode 'Force' + +# Import-AzContainerRegistryImage ` +# -ResourceGroupName $DeploymentOutputs['CONTAINERREGISTRY_RESOURCE_GROUP'] ` +# -RegistryName $DeploymentOutputs['CONTAINERREGISTRY_USERNAME'] ` +# -SourceImage 'library/busybox' -SourceRegistryUri 'registry.hub.docker.com' ` +# -Mode 'Force' From 2bbe887a6db3ddc9faf43724b47d3edd00d8aac9 Mon Sep 17 00:00:00 2001 From: seankane-msft Date: Tue, 13 Apr 2021 15:08:44 -0400 Subject: [PATCH 26/26] removing test-resources-post.ps1 entirely, using fixture --- .../azure-containerregistry/tests/testcase.py | 50 +++++-------------- sdk/containerregistry/test-resources-post.ps1 | 45 ----------------- 2 files changed, 13 insertions(+), 82 deletions(-) delete mode 100644 sdk/containerregistry/test-resources-post.ps1 diff --git a/sdk/containerregistry/azure-containerregistry/tests/testcase.py b/sdk/containerregistry/azure-containerregistry/tests/testcase.py index 5486aa58d20a..223a0819def5 100644 --- a/sdk/containerregistry/azure-containerregistry/tests/testcase.py +++ b/sdk/containerregistry/azure-containerregistry/tests/testcase.py @@ -10,7 +10,6 @@ import pytest import re import six -import subprocess import time from azure.containerregistry import ( @@ -148,30 +147,7 @@ def import_image(self, repository, tags): if not self.is_live: return - mgmt_client = ContainerRegistryManagementClient(DefaultAzureCredential(), os.environ["CONTAINERREGISTRY_SUBSCRIPTION_ID"]) - registry_uri = "registry.hub.docker.com" - rg_name = os.environ["CONTAINERREGISTRY_RESOURCE_GROUP"] - registry_name = os.environ["CONTAINERREGISTRY_REGISTRY_NAME"] - - import_source = ImportSource( - source_image=repository, - registry_uri=registry_uri - ) - - import_params = ImportImageParameters( - mode=ImportMode.Force, - source=import_source, - target_tags=tags - ) - - result = mgmt_client.registries.begin_import_image( - rg_name, - registry_name, - parameters=import_params, - ) - - while not result.done(): - pass + import_image(repository, tags) def _clean_up(self, endpoint): if not self.is_live: @@ -256,22 +232,18 @@ def assert_registry_artifact(self, tag_or_digest, expected_tag_or_digest): assert tag_or_digest == expected_tag_or_digest +# Moving this out of testcase so the fixture and individual tests can use it def import_image(repository, tags): - mgmt_client = ContainerRegistryManagementClient(DefaultAzureCredential(), os.environ["CONTAINERREGISTRY_SUBSCRIPTION_ID"]) + mgmt_client = ContainerRegistryManagementClient( + DefaultAzureCredential(), os.environ["CONTAINERREGISTRY_SUBSCRIPTION_ID"] + ) registry_uri = "registry.hub.docker.com" rg_name = os.environ["CONTAINERREGISTRY_RESOURCE_GROUP"] registry_name = os.environ["CONTAINERREGISTRY_REGISTRY_NAME"] - import_source = ImportSource( - source_image=repository, - registry_uri=registry_uri - ) + import_source = ImportSource(source_image=repository, registry_uri=registry_uri) - import_params = ImportImageParameters( - mode=ImportMode.Force, - source=import_source, - target_tags=tags - ) + import_params = ImportImageParameters(mode=ImportMode.Force, source=import_source, target_tags=tags) result = mgmt_client.registries.begin_import_image( rg_name, @@ -292,7 +264,11 @@ def load_registry(): ] tags = [ [ - "library/hello-world:latest", "library/hello-world:v1", "library/hello-world:v2", "library/hello-world:v3", "library/hello-world:v4" + "library/hello-world:latest", + "library/hello-world:v1", + "library/hello-world:v2", + "library/hello-world:v3", + "library/hello-world:v4", ], ["library/alpine"], ["library/busybox"], @@ -301,4 +277,4 @@ def load_registry(): try: import_image(repo, tag) except Exception as e: - print(e) \ No newline at end of file + print(e) diff --git a/sdk/containerregistry/test-resources-post.ps1 b/sdk/containerregistry/test-resources-post.ps1 deleted file mode 100644 index ba8041e1293c..000000000000 --- a/sdk/containerregistry/test-resources-post.ps1 +++ /dev/null @@ -1,45 +0,0 @@ -# # Copyright (c) Microsoft Corporation. All rights reserved. -# # Licensed under the MIT License. - -# param ( -# [hashtable] $DeploymentOutputs, -# [string] $TenantId, -# [string] $TestApplicationId, -# [string] $TestApplicationSecret -# ) - - -# try { -# Import-Module -Name Az.Accounts -MinimumVersion 2.2.8 -# } -# catch { -# Install-Module -Name Az.Accounts -MinimumVersion 2.2.8 -Force -AllowClobber -# Import-Module -Name Az.Accounts -MinimumVersion 2.2.8 -# } - -# try { -# Import-Module -Name Az.ContainerRegistry -MinimumVersion 2.0.0 -# } -# catch { -# Install-Module -Name Az.ContainerRegistry -MinimumVersion 2.0.0 -Force -AllowClobber -# Import-Module -Name Az.ContainerRegistry -MinimumVersion 2.0.0 -# } - -# Import-AzContainerRegistryImage ` -# -ResourceGroupName $DeploymentOutputs['CONTAINERREGISTRY_RESOURCE_GROUP'] ` -# -RegistryName $DeploymentOutputs['CONTAINERREGISTRY_USERNAME'] ` -# -SourceImage 'library/hello-world' -SourceRegistryUri 'registry.hub.docker.com' ` -# -TargetTag @('library/hello-world:latest', 'library/hello-world:v1', 'library/hello-world:v2', 'library/hello-world:v3', 'library/hello-world:v4') ` -# -Mode 'Force' - -# Import-AzContainerRegistryImage ` -# -ResourceGroupName $DeploymentOutputs['CONTAINERREGISTRY_RESOURCE_GROUP'] ` -# -RegistryName $DeploymentOutputs['CONTAINERREGISTRY_USERNAME'] ` -# -SourceImage 'library/alpine' -SourceRegistryUri 'registry.hub.docker.com' ` -# -Mode 'Force' - -# Import-AzContainerRegistryImage ` -# -ResourceGroupName $DeploymentOutputs['CONTAINERREGISTRY_RESOURCE_GROUP'] ` -# -RegistryName $DeploymentOutputs['CONTAINERREGISTRY_USERNAME'] ` -# -SourceImage 'library/busybox' -SourceRegistryUri 'registry.hub.docker.com' ` -# -Mode 'Force'