summaryrefslogtreecommitdiffstats
path: root/dcae-cli/dcae_cli/util
diff options
context:
space:
mode:
Diffstat (limited to 'dcae-cli/dcae_cli/util')
-rw-r--r--dcae-cli/dcae_cli/util/__init__.py10
-rw-r--r--dcae-cli/dcae_cli/util/config.py13
-rw-r--r--dcae-cli/dcae_cli/util/discovery.py2
-rw-r--r--dcae-cli/dcae_cli/util/profiles.py3
-rw-r--r--dcae-cli/dcae_cli/util/tests/test_config.py21
-rw-r--r--dcae-cli/dcae_cli/util/tests/test_discovery.py15
-rw-r--r--dcae-cli/dcae_cli/util/tests/test_profiles.py10
7 files changed, 36 insertions, 38 deletions
diff --git a/dcae-cli/dcae_cli/util/__init__.py b/dcae-cli/dcae_cli/util/__init__.py
index e91c573..b39de74 100644
--- a/dcae-cli/dcae_cli/util/__init__.py
+++ b/dcae-cli/dcae_cli/util/__init__.py
@@ -106,15 +106,13 @@ def load_json(path):
raise DcaeException("File '{}' appears to be a malformed JSON.".format(path))
-def fetch_file_from_nexus(path, transform_func=json.loads):
- """Fetch file from nexus
+def fetch_file_from_web(server_url, path, transform_func=json.loads):
+ """Fetch file from a web server
The default behavior is to transform the response to a json.
"""
- # TODO: Source this from app's configuration [ONAP URL TBD]
- server_uri = "https://make-me-valid"
- nexus_url = "{0}/{1}".format(server_uri, path)
- r = requests.get(nexus_url)
+ artifact_url = "{0}/{1}".format(server_url, path)
+ r = requests.get(artifact_url)
r.raise_for_status()
if transform_func:
return transform_func(r.text)
diff --git a/dcae-cli/dcae_cli/util/config.py b/dcae-cli/dcae_cli/util/config.py
index 4628681..6a53de4 100644
--- a/dcae-cli/dcae_cli/util/config.py
+++ b/dcae-cli/dcae_cli/util/config.py
@@ -50,12 +50,16 @@ def _init_config_user():
else:
click.echo("Invalid user id. Please try again.")
+def _init_config_server_url():
+ return click.prompt('Please enter the remote server url', type=str).strip()
def _init_config():
'''Returns an initial dict for populating the config'''
# Grab the remote config and merge it in
try:
- new_config = util.fetch_file_from_nexus("/dcae-cli/config.json")
+ server_url = _init_config_server_url()
+ new_config = util.fetch_file_from_web(server_url, "/dcae-cli/config.json")
+ new_config["server_url"] = server_url
except:
# REVIEW: Should we allow users to manually setup their config if not
# able to pull from remote server?
@@ -82,6 +86,13 @@ def get_config():
'''Returns the configuration dictionary'''
return get_pref(get_config_path(), _init_config)
+def get_server_url():
+ """Returns the remote server url
+
+ The remote server holds the artifacts that the dcae-cli requires like the
+ seed config json and seed profiles json, and json schemas.
+ """
+ return get_config().get("server_url")
# These functions are used to fetch the configurable path to the various json
# schema files used in validation.
diff --git a/dcae-cli/dcae_cli/util/discovery.py b/dcae-cli/dcae_cli/util/discovery.py
index a75165e..0c12f95 100644
--- a/dcae-cli/dcae_cli/util/discovery.py
+++ b/dcae-cli/dcae_cli/util/discovery.py
@@ -202,7 +202,7 @@ def _make_instances_map(instances):
"""
mapping = defaultdict(set)
for instance in instances:
- match = _inst_re.match(instance_target)
+ match = _inst_re.match(instance)
if match is None:
continue
diff --git a/dcae-cli/dcae_cli/util/profiles.py b/dcae-cli/dcae_cli/util/profiles.py
index 7accf24..83a7ca9 100644
--- a/dcae-cli/dcae_cli/util/profiles.py
+++ b/dcae-cli/dcae_cli/util/profiles.py
@@ -95,7 +95,8 @@ def reinit_profiles():
"""
# Grab the remote profiles and merge it in
try:
- new_profiles = util.fetch_file_from_nexus("/dcae-cli/profiles.json")
+ server_url = config.get_server_url()
+ new_profiles = util.fetch_file_from_web(server_url, "/dcae-cli/profiles.json")
except:
# REVIEW: Should we allow users to manually setup their config if not
# able to pull from remote server?
diff --git a/dcae-cli/dcae_cli/util/tests/test_config.py b/dcae-cli/dcae_cli/util/tests/test_config.py
index 97be773..82f0679 100644
--- a/dcae-cli/dcae_cli/util/tests/test_config.py
+++ b/dcae-cli/dcae_cli/util/tests/test_config.py
@@ -59,31 +59,34 @@ def test_init_config_user(monkeypatch):
def test_init_config(monkeypatch):
monkeypatch.setattr(config, '_init_config_user', lambda: "bigmama")
- monkeypatch.setattr(dcae_cli.util, 'fetch_file_from_nexus',
- lambda path: { "db_url": "conn" })
+ monkeypatch.setattr(config, '_init_config_server_url',
+ lambda: "http://some-nexus-in-the-sky.com")
+ monkeypatch.setattr(dcae_cli.util, 'fetch_file_from_web',
+ lambda server_url, path: { "db_url": "conn" })
monkeypatch.setattr("dcae_cli._version.__version__", "2.X.X")
- expected = {'cli_version': '2.X.X', 'user': 'bigmama', 'db_url': 'conn'}
+ expected = {'cli_version': '2.X.X', 'user': 'bigmama', 'db_url': 'conn',
+ 'server_url': 'http://some-nexus-in-the-sky.com'}
assert expected == config._init_config()
# Test using of db fallback
- monkeypatch.setattr(dcae_cli.util, 'fetch_file_from_nexus',
- lambda path: { "db_url": "" })
+ monkeypatch.setattr(dcae_cli.util, 'fetch_file_from_web',
+ lambda server_url, path: { "db_url": "" })
assert "sqlite" in config._init_config()["db_url"]
- monkeypatch.setattr(dcae_cli.util, 'fetch_file_from_nexus',
- lambda path: {})
+ monkeypatch.setattr(dcae_cli.util, 'fetch_file_from_web',
+ lambda server_url, path: {})
assert "sqlite" in config._init_config()["db_url"]
# Simulate error trying to fetch
- def fetch_simulate_error(path):
+ def fetch_simulate_error(server_url, path):
raise RuntimeError("Simulated error")
- monkeypatch.setattr(dcae_cli.util, 'fetch_file_from_nexus',
+ monkeypatch.setattr(dcae_cli.util, 'fetch_file_from_web',
fetch_simulate_error)
with pytest.raises(config.ConfigurationInitError):
diff --git a/dcae-cli/dcae_cli/util/tests/test_discovery.py b/dcae-cli/dcae_cli/util/tests/test_discovery.py
index aed5ca8..0832c5e 100644
--- a/dcae-cli/dcae_cli/util/tests/test_discovery.py
+++ b/dcae-cli/dcae_cli/util/tests/test_discovery.py
@@ -373,21 +373,6 @@ def test_make_instance_map():
instances_map = dis._make_instances_map(instances_latest_format)
assert instances_map.get(("sandbox.platform.laika", "0.5.0")) == set(instances_latest_format)
- instances_other_format = ["mike.39f809be-7d13-4799-b8d0-ba0d5358282b.0-5-0.sandbox-platform-laika.rework-central.dcae.com"]
-
- instances_map = dis._make_instances_map(instances_other_format)
- assert instances_map.get(("sandbox.platform.laika", "0.5.0")) == set(instances_other_format)
-
- instances_other_format = ["mike.b5435a8c-ef56-4371-94d8-560a61f7352f.0-5-0.sandbox-platform-laika.solutioning-central.dcae.com"]
-
- instances_map = dis._make_instances_map(instances_other_format)
- assert instances_map.get(("sandbox.platform.laika", "0.5.0")) == set(instances_other_format)
-
- instances_other_format = ["mike.b5435a8c-ef56-4371-94d8-560a61f7352f.0-5-0.sandbox-platform-laika.dcae.com"]
-
- instances_map = dis._make_instances_map(instances_other_format)
- assert instances_map.get(("sandbox.platform.laika", "0.5.0")) == set(instances_other_format)
-
def test_get_component_instances(monkeypatch):
instances = [
diff --git a/dcae-cli/dcae_cli/util/tests/test_profiles.py b/dcae-cli/dcae_cli/util/tests/test_profiles.py
index 2d809f5..b15d9b5 100644
--- a/dcae-cli/dcae_cli/util/tests/test_profiles.py
+++ b/dcae-cli/dcae_cli/util/tests/test_profiles.py
@@ -122,10 +122,10 @@ def test_reinit_profiles(monkeypatch, tmpdir):
"consul_host": "realsolcnsl00.dcae.solutioning.com",
"docker_host": "realsoldokr00.dcae.solutioning.com:2376" }}
- def fetch_profile(target_profile, path):
+ def fetch_profile(target_profile, server_url, path):
return target_profile
- monkeypatch.setattr(util, "fetch_file_from_nexus", partial(fetch_profile,
+ monkeypatch.setattr(util, "fetch_file_from_web", partial(fetch_profile,
profile_dict))
profiles.reinit_profiles()
assert profiles.get_profiles(include_active=False) == profile_dict
@@ -137,7 +137,7 @@ def test_reinit_profiles(monkeypatch, tmpdir):
"consul_host": "realsolcnsl00.dcae.solutioning.com",
"docker_host": "realsoldokr00.dcae.solutioning.com:2376" }}
- monkeypatch.setattr(util, "fetch_file_from_nexus", partial(fetch_profile,
+ monkeypatch.setattr(util, "fetch_file_from_web", partial(fetch_profile,
profile_dict))
profiles.reinit_profiles()
all_profiles = profiles.get_profiles(include_active=False)
@@ -146,10 +146,10 @@ def test_reinit_profiles(monkeypatch, tmpdir):
# Test fetch failure
- def fetch_failure(path):
+ def fetch_failure(server_url, path):
raise RuntimeError("Mysterious error")
- monkeypatch.setattr(util, "fetch_file_from_nexus", fetch_failure)
+ monkeypatch.setattr(util, "fetch_file_from_web", fetch_failure)
with pytest.raises(profiles.ProfilesInitError):
profiles.reinit_profiles()