From 7f1d298e91e5623a2e5dad6fd891fcfcbea3921f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20de=20Saint=20Martin?= <cedric.dsm@tiolive.com> Date: Wed, 5 Nov 2014 13:44:43 +0000 Subject: [PATCH] slapos.core: Change Base_getHateoasMaster about 'me' link. --- slapos/slap/slap.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/slapos/slap/slap.py b/slapos/slap/slap.py index 77e221563..8f2fc8f23 100644 --- a/slapos/slap/slap.py +++ b/slapos/slap/slap.py @@ -837,7 +837,13 @@ class HateoasNavigator(object): # XXX rename to be more generic def _hateoasGetPerson(self): - person_link = self._hateoasGetMaster()['_links']['action_object_jump']['href'] + hateoas_master = self._hateoasGetMaster() + # XXX how to properly get URLs from URNs? + person_path = self.getPathFromUrn(hateoas_master['_links']['me']['href']) + hateoas_master_url = hateoas_master['_links']['self']['href'] + root_url = hateoas_master_url[:hateoas_master_url.rfind('/') + 1] + person_link = '%s%s' % (root_url, person_path) + result = self.GET(person_link) return json.loads(result) @@ -871,6 +877,14 @@ class HateoasNavigator(object): else: raise NotFoundError('Action %s not found.' % title) + def getPathFromUrn(self, urn): + urn_schema = 'urn:jio:get:' + try: + _, url = urn.split(urn_schema) + except ValueError: + return + return str(url) + # XXX remove me def _hateoas_getActionObjectSlap(self, action_object_slap_list, action_title): return self.hateoasGetLinkFromLinks(action_object_slap_list, action_title) -- 2.30.9