Skip to content

Commit b49491b

Browse files
authored
Merge pull request #212 from microsoft/users/tedchamb/dev5
Add resource area id for Profile client. Look up resource area information from sps deployment, if not found for organization.
2 parents 513f51f + a318e87 commit b49491b

File tree

4 files changed

+22
-4
lines changed

4 files changed

+22
-4
lines changed

azure-devops/azure/devops/connection.py

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
from .v5_0.client_factory import ClientFactoryV5_0
1515
from .v5_1.client_factory import ClientFactoryV5_1
1616

17-
1817
logger = logging.getLogger(__name__)
1918

2019

@@ -75,10 +74,25 @@ def _get_url_for_client_instance(self, client_class):
7574
for resource_area in resource_areas:
7675
if resource_area.id.lower() == resource_id.lower():
7776
return resource_area.location_url
77+
78+
# Check SPS deployment level for the resource area
79+
resource_area = self._get_deployment_resource_area_from_sps(resource_id)
80+
if resource_area is not None:
81+
return resource_area.location_url
82+
7883
raise AzureDevOpsClientRequestError(('Could not find information for resource area {id} '
7984
+ 'from server: {url}').format(id=resource_id,
8085
url=self.base_url))
8186

87+
def _get_deployment_resource_area_from_sps(self, resource_id):
88+
resource_id = resource_id.lower()
89+
if resource_id in _deployment_level_resource_areas:
90+
return _deployment_level_resource_areas[resource_id]
91+
location_client = LocationClient(sps_url, self._creds)
92+
resource_area = location_client.get_resource_area(area_id=resource_id)
93+
_deployment_level_resource_areas[resource_id] = resource_area
94+
return resource_area
95+
8296
def authenticate(self):
8397
self._get_resource_areas(force=True)
8498

@@ -110,3 +124,7 @@ def _get_resource_areas(self, force=False):
110124
@staticmethod
111125
def _combine_url(part1, part2):
112126
return part1.rstrip('/') + '/' + part2.strip('/')
127+
128+
129+
_deployment_level_resource_areas = {}
130+
sps_url = 'https://app.vssps.visualstudio.com'

azure-devops/azure/devops/v5_0/profile/profile_client.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ def __init__(self, base_url=None, creds=None):
2323
self._serialize = Serializer(client_models)
2424
self._deserialize = Deserializer(client_models)
2525

26-
resource_area_identifier = None
26+
resource_area_identifier = '8ccfef3d-2b87-4e99-8ccb-66e343d2daa8'
2727

2828
def get_profile(self, id, details=None, with_attributes=None, partition=None, core_attributes=None, force_refresh=None):
2929
"""GetProfile.

azure-devops/azure/devops/v5_1/profile/profile_client.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ def __init__(self, base_url=None, creds=None):
2323
self._serialize = Serializer(client_models)
2424
self._deserialize = Deserializer(client_models)
2525

26-
resource_area_identifier = None
26+
resource_area_identifier = '8ccfef3d-2b87-4e99-8ccb-66e343d2daa8'
2727

2828
def get_profile(self, id, details=None, with_attributes=None, partition=None, core_attributes=None, force_refresh=None):
2929
"""GetProfile.

azure-devops/azure/devops/v5_1/profile_regions/profile_regions_client.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ def __init__(self, base_url=None, creds=None):
2323
self._serialize = Serializer(client_models)
2424
self._deserialize = Deserializer(client_models)
2525

26-
resource_area_identifier = None
26+
resource_area_identifier = '8ccfef3d-2b87-4e99-8ccb-66e343d2daa8'
2727

2828
def get_geo_region(self, ip):
2929
"""GetGeoRegion.

0 commit comments

Comments
 (0)