It is very common for users to copy/paste the URL in the web GUI form
when registering new VIMs/WIMs.
This can be error prone, since it might introduce trailing characters
that might pass unnoticed (e.g. when copying from "OpenStack Rocky >
Project > API Access" a trailing space will be introduced).
This change tries to prevent that from happening.
Change-Id: I8ef83afe39ef854696ca43072273437ffd396c33
Signed-off-by: Anderson Bravalheri <a.bravalheri@bristol.ac.uk>
import yaml
from random import choice as random_choice
from osm_ro import utils
import yaml
from random import choice as random_choice
from osm_ro import utils
datacenter_type = datacenter_descriptor.get("type", "openvim");
# module_info = None
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:
# load plugin
plugin_name = "rovim_" + datacenter_type
if plugin_name not in plugins:
"""
import json
import logging
"""
import json
import logging
from contextlib import contextmanager
from hashlib import sha1
from itertools import groupby
from contextlib import contextmanager
from hashlib import sha1
from itertools import groupby
if "config" in wim_descriptor:
wim_descriptor["config"] = _serialize(wim_descriptor["config"])
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)
return self.db.new_row(
"wims", wim_descriptor, add_uuid=True, confidential_data=True)