Skip to content

Commit 3c3dc04

Browse files
authored
[Key Vault] Reintroduce activation skipping in security domain upload (Azure#40944)
1 parent 066b303 commit 3c3dc04

File tree

6 files changed

+37
-7
lines changed

6 files changed

+37
-7
lines changed

sdk/keyvault/azure-keyvault-securitydomain/CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Release History
22

3-
## 1.0.0b1 (2025-05-06)
3+
## 1.0.0b1 (2025-05-07)
44

55
### Features Added
66

sdk/keyvault/azure-keyvault-securitydomain/azure/keyvault/securitydomain/_internal/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
from .async_polling import (
1010
AsyncSecurityDomainDownloadNoPolling,
1111
AsyncSecurityDomainDownloadPollingMethod,
12+
AsyncSecurityDomainUploadNoPolling,
1213
AsyncSecurityDomainUploadPollingMethod,
1314
)
1415
from .challenge_auth_policy import ChallengeAuthPolicy
@@ -18,6 +19,7 @@
1819
SecurityDomainDownloadNoPolling,
1920
SecurityDomainDownloadPolling,
2021
SecurityDomainDownloadPollingMethod,
22+
SecurityDomainUploadNoPolling,
2123
SecurityDomainUploadPolling,
2224
SecurityDomainUploadPollingMethod,
2325
)
@@ -27,13 +29,15 @@
2729
__all__ = [
2830
"AsyncSecurityDomainDownloadNoPolling",
2931
"AsyncSecurityDomainDownloadPollingMethod",
32+
"AsyncSecurityDomainUploadNoPolling",
3033
"AsyncSecurityDomainUploadPollingMethod",
3134
"ChallengeAuthPolicy",
3235
"HttpChallenge",
3336
"HttpChallengeCache",
3437
"SecurityDomainDownloadNoPolling",
3538
"SecurityDomainDownloadPolling",
3639
"SecurityDomainDownloadPollingMethod",
40+
"SecurityDomainUploadNoPolling",
3741
"SecurityDomainUploadPolling",
3842
"SecurityDomainUploadPollingMethod",
3943
]

sdk/keyvault/azure-keyvault-securitydomain/azure/keyvault/securitydomain/_internal/async_polling.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,3 +158,6 @@ def resource(self) -> None:
158158
:return: The built resource.
159159
"""
160160
return None
161+
162+
class AsyncSecurityDomainUploadNoPolling(AsyncSecurityDomainUploadPollingMethod, AsyncNoPollingMixin):
163+
pass

sdk/keyvault/azure-keyvault-securitydomain/azure/keyvault/securitydomain/_internal/polling.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,3 +198,6 @@ def resource(self) -> None:
198198
:return: The built resource.
199199
"""
200200
return None
201+
202+
class SecurityDomainUploadNoPolling(SecurityDomainUploadPollingMethod, NoPollingMixin):
203+
pass

sdk/keyvault/azure-keyvault-securitydomain/azure/keyvault/securitydomain/_patch.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
SecurityDomainDownloadNoPolling,
2626
SecurityDomainDownloadPolling,
2727
SecurityDomainDownloadPollingMethod,
28+
SecurityDomainUploadNoPolling,
2829
SecurityDomainUploadPolling,
2930
SecurityDomainUploadPollingMethod,
3031
)
@@ -178,7 +179,7 @@ def begin_download(
178179
delay = kwargs.pop("polling_interval", self._config.polling_interval)
179180
polling_method = (
180181
SecurityDomainDownloadNoPolling()
181-
if skip_activation_polling is True
182+
if skip_activation_polling
182183
else SecurityDomainDownloadPollingMethod(lro_algorithms=[SecurityDomainDownloadPolling()], timeout=delay)
183184
)
184185
return super()._begin_download( # type: ignore[return-value]
@@ -195,6 +196,7 @@ def begin_upload(
195196
security_domain: SecurityDomain,
196197
*,
197198
content_type: str = "application/json",
199+
skip_activation_polling: bool = False,
198200
**kwargs: Any,
199201
) -> LROPoller[None]: ...
200202

@@ -205,6 +207,7 @@ def begin_upload(
205207
security_domain: JSON,
206208
*,
207209
content_type: str = "application/json",
210+
skip_activation_polling: bool = False,
208211
**kwargs: Any,
209212
) -> LROPoller[None]: ...
210213

@@ -215,6 +218,7 @@ def begin_upload(
215218
security_domain: IO[bytes],
216219
*,
217220
content_type: str = "application/json",
221+
skip_activation_polling: bool = False,
218222
**kwargs: Any,
219223
) -> LROPoller[None]: ...
220224

@@ -224,6 +228,7 @@ def begin_upload(
224228
security_domain: Union[SecurityDomain, JSON, IO[bytes]],
225229
*,
226230
content_type: str = "application/json",
231+
skip_activation_polling: bool = False,
227232
**kwargs: Any,
228233
) -> LROPoller[None]:
229234
"""Restore the provided Security Domain.
@@ -234,14 +239,19 @@ def begin_upload(
234239
IO[bytes]
235240
:keyword str content_type: Body Parameter content-type. Content type parameter for JSON body.
236241
Default value is "application/json".
242+
:keyword bool skip_activation_polling: If set to True, the operation will not poll for HSM activation to
243+
complete and calling `.result()` on the poller will return None immediately, or raise an exception in case of
244+
an error. Default value is False.
237245
238246
:return: An instance of LROPoller that returns None.
239247
:rtype: ~azure.core.polling.LROPoller[None]
240248
:raises ~azure.core.exceptions.HttpResponseError:
241249
"""
242250
delay = kwargs.pop("polling_interval", self._config.polling_interval)
243-
polling_method = SecurityDomainUploadPollingMethod(
244-
lro_algorithms=[SecurityDomainUploadPolling()], timeout=delay
251+
polling_method = (
252+
SecurityDomainUploadNoPolling()
253+
if skip_activation_polling
254+
else SecurityDomainUploadPollingMethod(lro_algorithms=[SecurityDomainUploadPolling()], timeout=delay)
245255
)
246256
return super()._begin_upload( # type: ignore[return-value]
247257
security_domain,

sdk/keyvault/azure-keyvault-securitydomain/azure/keyvault/securitydomain/aio/_patch.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
AsyncChallengeAuthPolicy,
2121
AsyncSecurityDomainDownloadNoPolling,
2222
AsyncSecurityDomainDownloadPollingMethod,
23+
AsyncSecurityDomainUploadNoPolling,
2324
AsyncSecurityDomainUploadPollingMethod,
2425
SecurityDomainDownloadPolling,
2526
SecurityDomainUploadPolling,
@@ -136,7 +137,7 @@ async def begin_download(
136137
delay = kwargs.pop("polling_interval", self._config.polling_interval)
137138
polling_method = (
138139
AsyncSecurityDomainDownloadNoPolling()
139-
if skip_activation_polling is True
140+
if skip_activation_polling
140141
else AsyncSecurityDomainDownloadPollingMethod(
141142
lro_algorithms=[SecurityDomainDownloadPolling()], timeout=delay
142143
)
@@ -155,6 +156,7 @@ async def begin_upload(
155156
security_domain: SecurityDomain,
156157
*,
157158
content_type: str = "application/json",
159+
skip_activation_polling: bool = False,
158160
**kwargs: Any,
159161
) -> AsyncLROPoller[None]: ...
160162

@@ -165,6 +167,7 @@ async def begin_upload(
165167
security_domain: JSON,
166168
*,
167169
content_type: str = "application/json",
170+
skip_activation_polling: bool = False,
168171
**kwargs: Any,
169172
) -> AsyncLROPoller[None]: ...
170173

@@ -175,6 +178,7 @@ async def begin_upload(
175178
security_domain: IO[bytes],
176179
*,
177180
content_type: str = "application/json",
181+
skip_activation_polling: bool = False,
178182
**kwargs: Any,
179183
) -> AsyncLROPoller[None]: ...
180184

@@ -184,6 +188,7 @@ async def begin_upload(
184188
security_domain: Union[SecurityDomain, JSON, IO[bytes]],
185189
*,
186190
content_type: str = "application/json",
191+
skip_activation_polling: bool = False,
187192
**kwargs: Any,
188193
) -> AsyncLROPoller[None]:
189194
"""Restore the provided Security Domain.
@@ -194,14 +199,19 @@ async def begin_upload(
194199
IO[bytes]
195200
:keyword str content_type: Body Parameter content-type. Content type parameter for JSON body.
196201
Default value is "application/json".
202+
:keyword bool skip_activation_polling: If set to True, the operation will not poll for HSM activation to
203+
complete and calling `.result()` on the poller will return None immediately, or raise an exception in case of
204+
an error. Default value is False.
197205
198206
:return: An instance of AsyncLROPoller that returns None.
199207
:rtype: ~azure.core.polling.AsyncLROPoller[None]
200208
:raises ~azure.core.exceptions.HttpResponseError:
201209
"""
202210
delay = kwargs.pop("polling_interval", self._config.polling_interval)
203-
polling_method = AsyncSecurityDomainUploadPollingMethod(
204-
lro_algorithms=[SecurityDomainUploadPolling()], timeout=delay
211+
polling_method = (
212+
AsyncSecurityDomainUploadNoPolling()
213+
if skip_activation_polling
214+
else AsyncSecurityDomainUploadPollingMethod(lro_algorithms=[SecurityDomainUploadPolling()], timeout=delay)
205215
)
206216
return await super()._begin_upload( # type: ignore[return-value]
207217
security_domain,

0 commit comments

Comments
 (0)