Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
89 commits
Select commit Hold shift + click to select a range
5e854e6
generated code from swagger
seankane-msft Feb 22, 2021
eb5eb54
adding files from template
seankane-msft Feb 22, 2021
785564d
adding a tests.yml file
seankane-msft Feb 22, 2021
561128f
outlining base structures
seankane-msft Feb 23, 2021
beba7fc
adding more skeleton code
seankane-msft Feb 24, 2021
9c7acd5
formatting code
seankane-msft Feb 25, 2021
8c03d93
adding some async files
seankane-msft Feb 25, 2021
5a16d1c
fixes for apiview
seankane-msft Feb 26, 2021
b628b6f
added models and clients based on feedback from arch board
seankane-msft Mar 8, 2021
b70ce96
running black to keep code clean
seankane-msft Mar 8, 2021
2bedabe
more changes to auth
seankane-msft Mar 9, 2021
fa6f78e
have a basic pipeline
seankane-msft Mar 9, 2021
514d03b
added an auth policy for username & password
seankane-msft Mar 10, 2021
4063d4d
have a working auth policy
seankane-msft Mar 10, 2021
c280520
need to add a page iterator class for returned repositories
seankane-msft Mar 10, 2021
4a9cc33
working list tags and list repositories methods
seankane-msft Mar 10, 2021
5e2270c
adding a change to the tests.yml file to run in live mode once I get …
seankane-msft Mar 10, 2021
b2ba50f
added more methods
seankane-msft Mar 16, 2021
fb4189f
adding test infra
seankane-msft Mar 16, 2021
7108594
adding swagger file
seankane-msft Mar 16, 2021
4dd3c8c
regen with Jeremys swagger, fixing up implementations
seankane-msft Mar 16, 2021
4533cce
added delete method, more models are filled out
seankane-msft Mar 16, 2021
2b3bb91
code formatting and adding helper method to repository client
seankane-msft Mar 16, 2021
34b094e
adding changes from newest swagger
seankane-msft Mar 17, 2021
a4d0258
updated generated code
seankane-msft Mar 17, 2021
2058b4a
adding tests for list and delete not exists, small changes to tests.yml
seankane-msft Mar 18, 2021
70d8524
adding more list tests
seankane-msft Mar 18, 2021
9da7eee
updating readme and setup
seankane-msft Mar 18, 2021
eea6749
adding more things the pipelines need
seankane-msft Mar 18, 2021
875b422
fixing pylint issues to get pipeline green
seankane-msft Mar 18, 2021
648102b
making all tests live tests
seankane-msft Mar 18, 2021
7a6bd87
updating ci and readme with tables copies
seankane-msft Mar 18, 2021
f82ed35
updates to readme
seankane-msft Mar 18, 2021
6ba90be
adding more changes
seankane-msft Mar 19, 2021
b0922ba
draft based on pallavis code
seankane-msft Mar 19, 2021
82c5d3c
updating readme
seankane-msft Mar 19, 2021
103db71
removing old sections from readme
seankane-msft Mar 19, 2021
9a26fcf
more readme deletions
seankane-msft Mar 19, 2021
8ec00fd
adding auth policy back in
seankane-msft Mar 19, 2021
7e4333e
ignore swagger readme
seankane-msft Mar 19, 2021
5d12869
adding devtoolsback
seankane-msft Mar 19, 2021
5bd806b
readme fix, linting fix
seankane-msft Mar 19, 2021
b56c29e
updating shared reqs
seankane-msft Mar 19, 2021
5151b8d
regenerated code, fixed changelog, modified test structure
seankane-msft Mar 22, 2021
cb9611b
formatting
seankane-msft Mar 22, 2021
cf02b85
fixed up all lint and mypy issues
seankane-msft Mar 22, 2021
544c9b7
formatting
seankane-msft Mar 22, 2021
1f1eb4c
adding devtools to dev_reqs
seankane-msft Mar 22, 2021
643e937
including samples and license in manifest, thank you scbedd
seankane-msft Mar 22, 2021
dfdbe82
updating swagger
seankane-msft Mar 22, 2021
d68285b
Merge branch 'acr' of https://github.com/seankane-msft/azure-sdk-for-…
seankane-msft Mar 22, 2021
93ad7c4
adding skeleton for auth flow
seankane-msft Mar 22, 2021
c1f5198
more auth files
seankane-msft Mar 23, 2021
166661e
committing for izy to take a look
seankane-msft Mar 23, 2021
b14a81b
forgot new files
seankane-msft Mar 23, 2021
06fb6a5
Merge branch 'master' of https://github.com/Azure/azure-sdk-for-pytho…
seankane-msft Mar 24, 2021
fc88483
working auth policy using challenge
seankane-msft Mar 24, 2021
da18b29
working tests
seankane-msft Mar 24, 2021
f3dc746
deleting recordings
seankane-msft Mar 24, 2021
aef65bd
authentication flow test
seankane-msft Mar 24, 2021
6304e37
regenerated
seankane-msft Mar 24, 2021
17a1a07
fixing up test
seankane-msft Mar 24, 2021
7465c81
new generated code, fixed user agent, passing tests
seankane-msft Mar 24, 2021
7ed5107
adding generated and merge conflict repairs
seankane-msft Mar 24, 2021
340d128
fixing up a few tests
seankane-msft Mar 24, 2021
76b8ca0
changing a test slightly
seankane-msft Mar 24, 2021
ac6352b
async policy almost working, problem with the same url encoding
seankane-msft Mar 24, 2021
ce532bc
more test fixes
seankane-msft Mar 25, 2021
6be366a
working live and playback
seankane-msft Mar 25, 2021
d8e3a4d
linting fixes, had to remove mypy because of issues in generated
seankane-msft Mar 25, 2021
5d97e0b
adding conftest, fixing up async issue
seankane-msft Mar 26, 2021
451a186
renaming the async test file
seankane-msft Mar 26, 2021
23caed4
fixing async tests
seankane-msft Mar 26, 2021
f4799e5
more fixes
seankane-msft Mar 26, 2021
35df077
removing async tests folder
seankane-msft Mar 26, 2021
f95947d
addressing charles and anna's comments, thank you both
seankane-msft Mar 26, 2021
0941cec
removing more from authpolicy
seankane-msft Mar 26, 2021
4714e61
removing exchange client
seankane-msft Mar 26, 2021
209ecaa
tests for delete tag
seankane-msft Mar 26, 2021
9c62e8c
importing tags for delete operations
seankane-msft Mar 26, 2021
c26d422
cleanup
seankane-msft Mar 29, 2021
96d9095
forgot to include a recording
seankane-msft Mar 29, 2021
8f710ae
fixing up recording files
seankane-msft Mar 30, 2021
3ffa843
merge conflicts
seankane-msft Apr 1, 2021
d307988
linting issues and running black
seankane-msft Apr 1, 2021
183a869
delete on registry client test
seankane-msft Apr 2, 2021
a7d2082
small changes to test files, adding test for delete_repository
seankane-msft Apr 2, 2021
b95eeb8
docstring fix
seankane-msft Apr 2, 2021
4f3e52f
ci file fix
seankane-msft Apr 2, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ class ContainerRegistryBaseClient(object):

"""

def __init__(self, endpoint, credential, **kwargs): # pylint:disable=client-method-missing-type-annotations
def __init__(self, endpoint, credential, **kwargs):
# type: (str, TokenCredential, Dict[str, Any]) -> None
auth_policy = ContainerRegistryChallengePolicy(credential, endpoint)
self._client = ContainerRegistry(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,14 +63,14 @@ def delete_registry_artifact(self, digest, **kwargs):

def delete_tag(self, tag, **kwargs):
# type: (str) -> None
"""Delete a tag
"""Delete a tag from a repository

:param tag: The digest of the artifact to be deleted
:type tag: str
:returns: None
:raises: :class:~azure.core.exceptions.ResourceNotFoundError
"""
raise NotImplementedError("Has not been implemented")
self._client.container_registry_repository.delete_tag(self.repository, tag, **kwargs)

def get_properties(self, **kwargs):
# type: (...) -> RepositoryProperties
Expand All @@ -93,7 +93,6 @@ def get_registry_artifact_properties(self, tag_or_digest, **kwargs):
:returns: :class:~azure.containerregistry.RegistryArtifactProperties
:raises: :class:~azure.core.exceptions.ResourceNotFoundError
"""
# GET '/acr/v1/{name}/_manifests/{digest}'
if _is_tag(tag_or_digest):
tag_or_digest = self._get_digest_from_tag(tag_or_digest)

Expand All @@ -112,7 +111,6 @@ def get_tag_properties(self, tag, **kwargs):
:returns: :class:~azure.containerregistry.TagProperties
:raises: :class:~azure.core.exceptions.ResourceNotFoundError
"""
# GET '/acr/v1/{name}/_tags/{reference}'
return TagProperties._from_generated( # pylint: disable=protected-access
self._client.container_registry_repository.get_tag_properties(self.repository, tag, **kwargs)
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.
# ------------------------------------
from typing import TYPE_CHECKING
from typing import TYPE_CHECKING, Dict, Any

from azure.core.async_paging import AsyncItemPaged

Expand Down Expand Up @@ -44,16 +44,15 @@ async def _get_digest_from_tag(self, tag: str) -> None:
tag_props = await self.get_tag_properties(tag)
return tag_props.digest

async def delete(self, **kwargs) -> None:
# type: (...) -> None
async def delete(self, **kwargs: Dict[str, Any]) -> None:
"""Delete a repository

:returns: None
:raises: :class:~azure.core.exceptions.ResourceNotFoundError
"""
await self._client.container_registry.delete_repository(self.repository, **kwargs)

def delete_registry_artifact(self, digest: str, **kwargs) -> None:
async def delete_registry_artifact(self, digest: str, **kwargs) -> None:
"""Delete a registry artifact

:param digest: The digest of the artifact to be deleted
Expand All @@ -63,15 +62,15 @@ def delete_registry_artifact(self, digest: str, **kwargs) -> None:
"""
raise NotImplementedError("Has not been implemented")

def delete_tag(self, tag: str, **kwargs) -> None:
"""Delete a tag
async def delete_tag(self, tag: str, **kwargs) -> None:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: "Delete a tag from a repository"

"""Delete a tag from a repository

:param tag: The digest of the artifact to be deleted
:type tag: str
:returns: None
:raises: :class:~azure.core.exceptions.ResourceNotFoundError
"""
raise NotImplementedError("Has not been implemented")
await self._client.container_registry_repository.delete_tag(self.repository, tag, **kwargs)

async def get_properties(self, **kwargs) -> RepositoryProperties:
"""Get the properties of a repository
Expand Down
15 changes: 15 additions & 0 deletions sdk/containerregistry/azure-containerregistry/tests/preparer.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# coding=utf-8
# ------------------------------------
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.
# ------------------------------------
import functools

from devtools_testutils import AzureTestCase, PowerShellPreparer

acr_preparer = functools.partial(
PowerShellPreparer,
"containerregistry",
containerregistry_baseurl="fake_url.azurecr.io",
containerregistry_resource_group="fake_rg",
)
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ interactions:
connection: keep-alive
content-length: '209'
content-type: application/json; charset=utf-8
date: Tue, 30 Mar 2021 12:19:01 GMT
date: Thu, 01 Apr 2021 17:31:42 GMT
docker-distribution-api-version: registry/2.0
server: openresty
strict-transport-security: max-age=31536000; includeSubDomains
Expand Down Expand Up @@ -47,10 +47,11 @@ interactions:
headers:
connection: keep-alive
content-type: application/json; charset=utf-8
date: Tue, 30 Mar 2021 12:19:02 GMT
date: Thu, 01 Apr 2021 17:31:43 GMT
server: openresty
strict-transport-security: max-age=31536000; includeSubDomains
transfer-encoding: chunked
x-ms-ratelimit-remaining-calls-per-second: '333.316667'
status:
code: 200
message: OK
Expand All @@ -74,10 +75,11 @@ interactions:
headers:
connection: keep-alive
content-type: application/json; charset=utf-8
date: Tue, 30 Mar 2021 12:19:03 GMT
date: Thu, 01 Apr 2021 17:31:43 GMT
server: openresty
strict-transport-security: max-age=31536000; includeSubDomains
transfer-encoding: chunked
x-ms-ratelimit-remaining-calls-per-second: '333.3'
status:
code: 200
message: OK
Expand All @@ -102,11 +104,12 @@ interactions:
connection: keep-alive
content-length: '121'
content-type: application/json; charset=utf-8
date: Tue, 30 Mar 2021 12:19:03 GMT
date: Thu, 01 Apr 2021 17:31:43 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'
status:
code: 404
message: Not Found
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ interactions:
connection: keep-alive
content-length: '196'
content-type: application/json; charset=utf-8
date: Tue, 30 Mar 2021 12:19:03 GMT
date: Thu, 01 Apr 2021 17:31:43 GMT
docker-distribution-api-version: registry/2.0
server: openresty
strict-transport-security: max-age=31536000; includeSubDomains
Expand Down Expand Up @@ -47,10 +47,11 @@ interactions:
headers:
connection: keep-alive
content-type: application/json; charset=utf-8
date: Tue, 30 Mar 2021 12:19:04 GMT
date: Thu, 01 Apr 2021 17:31:44 GMT
server: openresty
strict-transport-security: max-age=31536000; includeSubDomains
transfer-encoding: chunked
x-ms-ratelimit-remaining-calls-per-second: '333.316667'
status:
code: 200
message: OK
Expand All @@ -74,10 +75,11 @@ interactions:
headers:
connection: keep-alive
content-type: application/json; charset=utf-8
date: Tue, 30 Mar 2021 12:19:04 GMT
date: Thu, 01 Apr 2021 17:31:45 GMT
server: openresty
strict-transport-security: max-age=31536000; includeSubDomains
transfer-encoding: chunked
x-ms-ratelimit-remaining-calls-per-second: '333.3'
status:
code: 200
message: OK
Expand All @@ -93,15 +95,15 @@ interactions:
uri: https://fake_url.azurecr.io/acr/v1/_catalog
response:
body:
string: '{"repositories":["alpine/git","debian","hello-world","library/hello-world","ubuntu"]}
string: '{"repositories":["alpine/git","debian","hello-world","library/hello-world","repo160e197b","repo308e19dd","repo9b321760","repob7cc1bf8","ubuntu"]}

'
headers:
access-control-expose-headers: X-Ms-Correlation-Request-Id
connection: keep-alive
content-length: '86'
content-length: '146'
content-type: application/json; charset=utf-8
date: Tue, 30 Mar 2021 12:19:04 GMT
date: Thu, 01 Apr 2021 17:31:45 GMT
docker-distribution-api-version: registry/2.0
server: openresty
strict-transport-security: max-age=31536000; includeSubDomains
Expand Down
Loading