From 0032ed92370eeeb1e71d8fb47930df14a3585d2e Mon Sep 17 00:00:00 2001
From: licanwei
Date: Wed, 27 Nov 2019 14:47:19 +0800
Subject: [PATCH] replace host_url with application_url
for url http://localhost/infra-optim
pecan.request.host_url is http://localhost
and pecan.request.application_url is http://localhost/infra-optim
we should use application_url to make href in links.
Change-Id: I5d7746b3da196ea2e072fbdf1adb1523ba2bffaf
Closes-Bug: #1854119
---
watcher/api/controllers/link.py | 2 +-
watcher/api/controllers/root.py | 3 ++-
watcher/api/controllers/v1/__init__.py | 31 +++++++++++++-------------
3 files changed, 19 insertions(+), 17 deletions(-)
diff --git a/watcher/api/controllers/link.py b/watcher/api/controllers/link.py
index 6c89fe166..91094323e 100644
--- a/watcher/api/controllers/link.py
+++ b/watcher/api/controllers/link.py
@@ -23,7 +23,7 @@ from watcher.api.controllers import base
def build_url(resource, resource_args, bookmark=False, base_url=None):
if base_url is None:
- base_url = pecan.request.host_url
+ base_url = pecan.request.application_url
template = '%(url)s/%(res)s' if bookmark else '%(url)s/v1/%(res)s'
# FIXME(lucasagomes): I'm getting a 404 when doing a GET on
diff --git a/watcher/api/controllers/root.py b/watcher/api/controllers/root.py
index d9ac5b7eb..835b33c65 100644
--- a/watcher/api/controllers/root.py
+++ b/watcher/api/controllers/root.py
@@ -59,7 +59,8 @@ class Version(base.APIBase):
version.status = status
version.max_version = v.max_version_string()
version.min_version = v.min_version_string()
- version.links = [link.Link.make_link('self', pecan.request.host_url,
+ version.links = [link.Link.make_link('self',
+ pecan.request.application_url,
id, '', bookmark=True)]
return version
diff --git a/watcher/api/controllers/v1/__init__.py b/watcher/api/controllers/v1/__init__.py
index 6a5de97bd..c59febb4a 100644
--- a/watcher/api/controllers/v1/__init__.py
+++ b/watcher/api/controllers/v1/__init__.py
@@ -137,7 +137,8 @@ class V1(APIBase):
def convert():
v1 = V1()
v1.id = "v1"
- v1.links = [link.Link.make_link('self', pecan.request.host_url,
+ base_url = pecan.request.application_url
+ v1.links = [link.Link.make_link('self', base_url,
'v1', '', bookmark=True),
link.Link.make_link('describedby',
'http://docs.openstack.org',
@@ -148,54 +149,54 @@ class V1(APIBase):
v1.media_types = [MediaType('application/json',
'application/vnd.openstack.watcher.v1+json')]
v1.audit_templates = [link.Link.make_link('self',
- pecan.request.host_url,
+ base_url,
'audit_templates', ''),
link.Link.make_link('bookmark',
- pecan.request.host_url,
+ base_url,
'audit_templates', '',
bookmark=True)
]
- v1.audits = [link.Link.make_link('self', pecan.request.host_url,
+ v1.audits = [link.Link.make_link('self', base_url,
'audits', ''),
link.Link.make_link('bookmark',
- pecan.request.host_url,
+ base_url,
'audits', '',
bookmark=True)
]
- v1.data_model = [link.Link.make_link('self', pecan.request.host_url,
+ v1.data_model = [link.Link.make_link('self', base_url,
'data_model', ''),
link.Link.make_link('bookmark',
- pecan.request.host_url,
+ base_url,
'data_model', '',
bookmark=True)
]
- v1.actions = [link.Link.make_link('self', pecan.request.host_url,
+ v1.actions = [link.Link.make_link('self', base_url,
'actions', ''),
link.Link.make_link('bookmark',
- pecan.request.host_url,
+ base_url,
'actions', '',
bookmark=True)
]
v1.action_plans = [link.Link.make_link(
- 'self', pecan.request.host_url, 'action_plans', ''),
+ 'self', base_url, 'action_plans', ''),
link.Link.make_link('bookmark',
- pecan.request.host_url,
+ base_url,
'action_plans', '',
bookmark=True)
]
v1.scoring_engines = [link.Link.make_link(
- 'self', pecan.request.host_url, 'scoring_engines', ''),
+ 'self', base_url, 'scoring_engines', ''),
link.Link.make_link('bookmark',
- pecan.request.host_url,
+ base_url,
'scoring_engines', '',
bookmark=True)
]
v1.services = [link.Link.make_link(
- 'self', pecan.request.host_url, 'services', ''),
+ 'self', base_url, 'services', ''),
link.Link.make_link('bookmark',
- pecan.request.host_url,
+ base_url,
'services', '',
bookmark=True)
]