Skip to content

Commit 36a2676

Browse files
committed
fix for retry logic
1 parent 4ae36e0 commit 36a2676

File tree

2 files changed

+26
-26
lines changed

2 files changed

+26
-26
lines changed

sdk/core/azure-mgmt-core/azure/mgmt/core/policies/_policy_token_header.py

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
#
2525
# --------------------------------------------------------------------------
2626
import json
27-
from typing import TypeVar, Any, Optional, Union, TYPE_CHECKING, Dict
27+
from typing import TypeVar, Any, Union, TYPE_CHECKING, Dict
2828
from azure.core.pipeline import PipelineRequest
2929
from azure.core.pipeline.transport import (
3030
HttpResponse as LegacyHttpResponse,
@@ -41,7 +41,7 @@
4141
from .._pipeline_client import ARMPipelineClient
4242

4343

44-
def _create_acquire_policy_request(request: PipelineRequest[HTTPRequestType]) -> Optional[HttpRequest]:
44+
def _create_acquire_policy_request(request: PipelineRequest[HTTPRequestType]) -> HttpRequest:
4545
"""Create a request to acquire a policy token.
4646
4747
This method creates an HTTP request to the Azure Policy service to acquire
@@ -50,14 +50,10 @@ def _create_acquire_policy_request(request: PipelineRequest[HTTPRequestType]) ->
5050
5151
:param request: The pipeline request for which to acquire a policy token
5252
:type request: ~azure.core.pipeline.PipelineRequest
53-
:return: The HTTP request to acquire policy token, or None if not needed
54-
:rtype: Optional[~azure.core.rest.HttpRequest]
53+
:return: The HTTP request to acquire policy token
54+
:rtype: ~azure.core.rest.HttpRequest
5555
:raises ~azure.core.exceptions.HttpResponseError: If subscription ID cannot be extracted from request URL
5656
"""
57-
acquire_policy_token = request.context.options.pop("acquire_policy_token", False)
58-
if not acquire_policy_token or request.http_request.method.upper() == "GET":
59-
return None
60-
6157
# try to get subscriptionId from request.http_request.url
6258
subscription_id = (
6359
request.http_request.url.split("subscriptions/")[1].split("/")[0]
@@ -155,12 +151,14 @@ def on_request(self, request: PipelineRequest[HTTPRequestType]) -> None:
155151
:param request: The pipeline request to process
156152
:type request: ~azure.core.pipeline.PipelineRequest
157153
"""
158-
acquire_policy_request = _create_acquire_policy_request(request)
159-
if acquire_policy_request:
160-
try:
161-
acquire_policy_request.url = self._client.format_url(acquire_policy_request.url)
162-
acquire_policy_response = self._client.send_request(acquire_policy_request, stream=False)
163-
_update_request_with_policy_token(request, acquire_policy_request, acquire_policy_response)
164-
except Exception as e:
165-
request.context.options["acquire_policy_token"] = True
166-
raise e
154+
acquire_policy_token = request.context.options.pop("acquire_policy_token", False)
155+
if not acquire_policy_token or request.http_request.method.upper() == "GET":
156+
return
157+
try:
158+
acquire_policy_request = _create_acquire_policy_request(request)
159+
acquire_policy_request.url = self._client.format_url(acquire_policy_request.url)
160+
acquire_policy_response = self._client.send_request(acquire_policy_request, stream=False)
161+
_update_request_with_policy_token(request, acquire_policy_request, acquire_policy_response)
162+
except Exception as e:
163+
request.context.options["acquire_policy_token"] = True
164+
raise e

sdk/core/azure-mgmt-core/azure/mgmt/core/policies/_policy_token_header_async.py

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -74,15 +74,17 @@ async def on_request(self, request: PipelineRequest[HTTPRequestType]) -> None:
7474
:param request: The pipeline request to process
7575
:type request: ~azure.core.pipeline.PipelineRequest
7676
"""
77-
acquire_policy_request = _create_acquire_policy_request(request)
78-
if acquire_policy_request:
79-
try:
80-
acquire_policy_request.url = self._client.format_url(acquire_policy_request.url)
81-
acquire_policy_response = await self._client.send_request(acquire_policy_request, stream=False)
82-
_update_request_with_policy_token(request, acquire_policy_request, acquire_policy_response)
83-
except Exception as e:
84-
request.context.options["acquire_policy_token"] = True
85-
raise e
77+
acquire_policy_token = request.context.options.pop("acquire_policy_token", False)
78+
if not acquire_policy_token or request.http_request.method.upper() == "GET":
79+
return
80+
try:
81+
acquire_policy_request = _create_acquire_policy_request(request)
82+
acquire_policy_request.url = self._client.format_url(acquire_policy_request.url)
83+
acquire_policy_response = await self._client.send_request(acquire_policy_request, stream=False)
84+
_update_request_with_policy_token(request, acquire_policy_request, acquire_policy_response)
85+
except Exception as e:
86+
request.context.options["acquire_policy_token"] = True
87+
raise e
8688

8789
async def send(
8890
self, request: PipelineRequest[HTTPRequestType]

0 commit comments

Comments
 (0)