Do not add 80,443 ports to dashboard url
When CSRF protection is enabled Refferer and Host header
should match. Common browsers doesn't add default ports like 80 and 443
to the headers. Use the same logic here to make sure test passed when CSRF
protection is enabled and we using default port numbers. More info
may be found here:
* https://code.djangoproject.com/ticket/26037
* https://stackoverflow.com/questions/27533011/django-csrf-error-casused-by-nginx-x-forwarded-host
Change-Id: I55503547c0a66fc8a53dd88db8ef242eeb863fa9
Related-Prod: PROD-19831
diff --git a/_modules/runtest/tempest_sections/dashboard.py b/_modules/runtest/tempest_sections/dashboard.py
index 008af2b..b28781e 100644
--- a/_modules/runtest/tempest_sections/dashboard.py
+++ b/_modules/runtest/tempest_sections/dashboard.py
@@ -30,7 +30,15 @@
port = self.get_item_when_condition_match('horizon.server.bind.port', horizon_enable)
protocol = 'http'
ip = self.get_item_when_condition_match('_param.cluster_local_address', horizon_enable)
- return "{}://{}:{}".format(protocol, ip, port)
+ # When CSRF protection is enabled Refferer and Host header should match.
+ # Common browsers doesn't add default ports like 80 and 443 to the headers
+ # Use the same logic here to make sure test passed when CSRF protection is enabled and
+ # we using default port numbers. More info may be found here:
+ # * https://code.djangoproject.com/ticket/26037
+ # * https://stackoverflow.com/questions/27533011/django-csrf-error-casused-by-nginx-x-forwarded-host
+ if str(port) not in ['80', '443']:
+ return "{}://{}:{}".format(protocol, ip, port)
+ return "{}://{}".format(protocol, ip)
@property
def login_url(self):