Skip to content

Commit a9d78c9

Browse files
committed
Refactored client
1 parent fab006b commit a9d78c9

File tree

5 files changed

+36
-42
lines changed

5 files changed

+36
-42
lines changed
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# --------------------------------------------------------------------------------------------
2+
# Copyright (c) Microsoft Corporation. All rights reserved.
3+
# Licensed under the MIT License. See License.txt in the project root for license information.
4+
# --------------------------------------------------------------------------------------------
5+
6+
from azure.core import PipelineClient
7+
from azure.core.pipeline.policies import UserAgentPolicy, HeadersPolicy
8+
from .version import VERSION
9+
10+
11+
class AzureDevOpsClient(PipelineClient):
12+
def __init__(self, base_url=None, credentials=None, user_agent=None):
13+
if not base_url:
14+
raise ValueError('base_url is required.')
15+
if not credentials:
16+
raise ValueError('credentials is required.')
17+
base_url = base_url.rstrip('/')
18+
user_agent_policy = UserAgentPolicy('azure-devops/{}'.format(VERSION))
19+
if user_agent is not None:
20+
user_agent_policy.add_user_agent(user_agent)
21+
headers_policy = HeadersPolicy()
22+
headers_policy.add_header('Authentication', credentials)
23+
policies = [user_agent_policy, headers_policy]
24+
super(AzureDevOpsClient, self).__init__(base_url=base_url, policies=policies)

azure-devops/azure/devops/client.py

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,9 @@
1111
import uuid
1212

1313
from azure.core.rest import HttpRequest, HttpResponse
14-
from azure.core.rest.exceptions import DeserializationError, SerializationError
15-
from azure.core.rest.service_client import ServiceClient
14+
from azure.core.exceptions import DeserializationError, SerializationError
1615
from .exceptions import AzureDevOpsAuthenticationError, AzureDevOpsClientRequestError, AzureDevOpsServiceError
17-
from .client_configuration import ClientConfiguration
16+
from .azure_devops_client import AzureDevOpsClient
1817
from . import _models
1918
from ._file_cache import OPTIONS_CACHE as OPTIONS_FILE_CACHE
2019

@@ -29,9 +28,7 @@ class Client(object):
2928
"""
3029

3130
def __init__(self, base_url=None, creds=None):
32-
self.config = ClientConfiguration(base_url)
33-
self.config.credentials = creds
34-
self._client = ServiceClient(creds, config=self.config)
31+
self._client = AzureDevOpsClient(base_url=base_url, credentials=creds)
3532
_base_client_models = {k: v for k, v in _models.__dict__.items() if isinstance(v, type)}
3633
self._base_deserialize = Deserializer(_base_client_models)
3734
self._base_serialize = Serializer(_base_client_models)

azure-devops/azure/devops/client_configuration.py

Lines changed: 0 additions & 17 deletions
This file was deleted.

azure-devops/azure/devops/connection.py

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,8 @@
55

66
import logging
77

8-
from azure.core.rest.service_client import ServiceClient
98
from ._file_cache import RESOURCE_CACHE as RESOURCE_FILE_CACHE
10-
from .client_configuration import ClientConfiguration
9+
from .azure_devops_client import AzureDevOpsClient
1110
from .exceptions import AzureDevOpsClientRequestError
1211
from .released.client_factory import ClientFactory
1312
from .v7_2.location.location_client import LocationClient
@@ -21,16 +20,12 @@ class Connection(object):
2120
"""Connection.
2221
"""
2322

24-
def __init__(self, base_url=None, creds=None, user_agent=None):
25-
self._config = ClientConfiguration(base_url)
26-
self._config.credentials = creds
23+
def __init__(self, base_url=None, credentials=None, user_agent=None):
2724
self._addition_user_agent = user_agent
28-
if user_agent is not None:
29-
self._config.add_user_agent(user_agent)
30-
self._client = ServiceClient(creds, self._config)
25+
self._client = AzureDevOpsClient(base_url=base_url, credentials=credentials, user_agent=user_agent)
3126
self._client_cache = {}
3227
self.base_url = base_url
33-
self._creds = creds
28+
self._creds = credentials
3429
self._resource_areas = None
3530
self.clients = ClientFactory(self)
3631
self.clients_v7_2 = ClientFactoryV7_2(self)

azure-devops/azure/devops/exceptions.py

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,17 @@
33
# Licensed under the MIT License. See License.txt in the project root for license information.
44
# --------------------------------------------------------------------------------------------
55

6-
from azure.core.rest.exceptions import (
7-
ClientException,
8-
ClientRequestError,
9-
AuthenticationError,
6+
from azure.core.exceptions import (
7+
ClientAuthenticationError,
8+
ServiceResponseError
109
)
1110

1211

13-
class AzureDevOpsClientError(ClientException):
12+
class AzureDevOpsAuthenticationError(ClientAuthenticationError):
1413
pass
1514

1615

17-
class AzureDevOpsAuthenticationError(AuthenticationError):
18-
pass
19-
20-
21-
class AzureDevOpsClientRequestError(ClientRequestError):
16+
class AzureDevOpsClientRequestError(ServiceResponseError):
2217
pass
2318

2419

0 commit comments

Comments
 (0)