diff --git a/RO/osm_ro/nfvo.py b/RO/osm_ro/nfvo.py index 23c5f1c54a00ed8d6caa4419237e6ceab7e5beb2..4d78e441d5e09e4b68b46648ea1809fea0297c6a 100644 --- a/RO/osm_ro/nfvo.py +++ b/RO/osm_ro/nfvo.py @@ -29,6 +29,7 @@ __date__ ="$16-sep-2014 22:05:01$" # import imp import json +import string import yaml from random import choice as random_choice from osm_ro import utils @@ -5112,6 +5113,15 @@ def new_datacenter(mydb, datacenter_descriptor): datacenter_type = datacenter_descriptor.get("type", "openvim"); # module_info = None + for url_field in ('vim_url', 'vim_url_admin'): + # It is common that users copy and paste the URL from the VIM website + # (example OpenStack), therefore a common mistake is to include blank + # characters at the end of the URL. Let's remove it and just in case, + # lets remove trailing slash as well. + url = datacenter_descriptor.get(url_field) + if url: + datacenter_descriptor[url_field] = url.strip(string.whitespace + '/') + # load plugin plugin_name = "rovim_" + datacenter_type if plugin_name not in plugins: diff --git a/RO/osm_ro/wim/persistence.py b/RO/osm_ro/wim/persistence.py index 32a46b358a490df7c8ae2a212c6fc638cf286162..f4945bb94c8f16d4925b312caf38d08b82533804 100644 --- a/RO/osm_ro/wim/persistence.py +++ b/RO/osm_ro/wim/persistence.py @@ -40,6 +40,7 @@ No domain logic/architectural concern should be present in this file. """ import json import logging +import string from contextlib import contextmanager from hashlib import sha1 from itertools import groupby @@ -307,6 +308,11 @@ class WimPersistence(object): if "config" in wim_descriptor: wim_descriptor["config"] = _serialize(wim_descriptor["config"]) + url = wim_descriptor["wim_url"] + wim_descriptor["wim_url"] = url.strip(string.whitespace + "/") + # ^ This avoid the common problem caused by trailing spaces/slashes in + # the URL (due to CTRL+C/CTRL+V) + return self.db.new_row( "wims", wim_descriptor, add_uuid=True, confidential_data=True)