summaryrefslogtreecommitdiffstats
path: root/adapter/acumos/aoconversion
diff options
context:
space:
mode:
Diffstat (limited to 'adapter/acumos/aoconversion')
-rw-r--r--adapter/acumos/aoconversion/convert.py3
-rw-r--r--adapter/acumos/aoconversion/docker_gen.py4
-rw-r--r--adapter/acumos/aoconversion/scanner.py1
-rw-r--r--adapter/acumos/aoconversion/spec_gen.py47
4 files changed, 43 insertions, 12 deletions
diff --git a/adapter/acumos/aoconversion/convert.py b/adapter/acumos/aoconversion/convert.py
index e41820a..305dd37 100644
--- a/adapter/acumos/aoconversion/convert.py
+++ b/adapter/acumos/aoconversion/convert.py
@@ -2,6 +2,7 @@
# org.onap.dcae
# =============================================================================
# Copyright (c) 2019 AT&T Intellectual Property. All rights reserved.
+# Copyright (c) 2021 highstreet technologies GmbH. All rights reserved.
# =============================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -29,5 +30,5 @@ def gen_dcae_artifacts_for_model(config, model_name, model_version="latest"):
model_repo_path = config.tmpdir
docker_uri = docker_gen.build_and_push_docker(config, model_name, model_version)
data_formats = dataformat_gen.generate_dcae_data_formats(model_repo_path, model_name)
- spec = spec_gen.generate_spec(model_repo_path, model_name, data_formats, docker_uri)
+ spec = spec_gen.generate_spec(model_repo_path, model_name, data_formats, model_version)
return docker_uri, data_formats, spec
diff --git a/adapter/acumos/aoconversion/docker_gen.py b/adapter/acumos/aoconversion/docker_gen.py
index 07cc9d7..5f497c9 100644
--- a/adapter/acumos/aoconversion/docker_gen.py
+++ b/adapter/acumos/aoconversion/docker_gen.py
@@ -2,7 +2,6 @@
# org.onap.dcae
# =============================================================================
# Copyright (c) 2019 AT&T Intellectual Property. All rights reserved.
-# =============================================================================
# Copyright (c) 2021 highstreet technologies GmbH. All rights reserved.
# =============================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -44,7 +43,8 @@ def _generate_dockerfile(meta, model_name, http_proxy, https_proxy, no_proxy):
ENV no_proxy={no_proxy}
ENV NO_PROXY={no_proxy}
RUN pip install -r /app/requirements.txt && \
- pip install acumos_dcae_model_runner
+ pip install acumos_dcae_model_runner && \
+ pip install pyyaml
ENV DCAEPORT=10000
EXPOSE $DCAEPORT
diff --git a/adapter/acumos/aoconversion/scanner.py b/adapter/acumos/aoconversion/scanner.py
index 18dd701..f8b45312 100644
--- a/adapter/acumos/aoconversion/scanner.py
+++ b/adapter/acumos/aoconversion/scanner.py
@@ -2,7 +2,6 @@
# org.onap.dcae
# =============================================================================
# Copyright (c) 2019-2020 AT&T Intellectual Property. All rights reserved.
-# =============================================================================
# Copyright (c) 2021 highstreet technologies GmbH. All rights reserved.
# =============================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/adapter/acumos/aoconversion/spec_gen.py b/adapter/acumos/aoconversion/spec_gen.py
index a08b720..e3f2c82 100644
--- a/adapter/acumos/aoconversion/spec_gen.py
+++ b/adapter/acumos/aoconversion/spec_gen.py
@@ -21,7 +21,6 @@
Generates DCAE component specs
"""
-
import json
from jsonschema import validate
from aoconversion import utils
@@ -38,12 +37,12 @@ def _get_format_version(target_name, data_formats):
return df["self"]["version"]
-def _generate_spec(model_name, meta, dcae_cs_schema, data_formats, docker_uri):
+def _generate_spec(model_name, meta, dcae_cs_schema, data_formats, model_version):
"""
Function that generates the component spec from the model metadata and docker info
Broken out to be unit-testable.
"""
-
+ docker_uri = "{}:{}".format(model_name, model_version)
spec = {
"self": {
"version": "1.0.0", # hopefully we get this from somewhere and not hardcode this
@@ -54,7 +53,13 @@ def _generate_spec(model_name, meta, dcae_cs_schema, data_formats, docker_uri):
"services": {"calls": [], "provides": []},
"streams": {"subscribes": [], "publishes": []},
"parameters": [],
- "auxilary": {"healthcheck": {"type": "http", "endpoint": "/healthcheck"}},
+ "auxilary": {"helm": {"service": {"type": "ClusterIP",
+ "name": model_name,
+ "has_internal_only_ports": "true",
+ "ports": [{"name": "http", "port": 8443, "plain_port": 8080,
+ "port_protocol": "http"}]}},
+ "healthcheck": {"type": "HTTP", "interval": "15s", "timeout": "1s", "port": 8080,
+ "endpoint": "/healthcheck"}},
"artifacts": [{"type": "docker image", "uri": docker_uri}],
}
@@ -62,7 +67,6 @@ def _generate_spec(model_name, meta, dcae_cs_schema, data_formats, docker_uri):
# each model method gets a subscruber and a publisher, using the methood name
pstype = "message_router"
for method in meta["methods"]:
-
df_in_name = utils.validate_format(meta, method, "input")
subscriber = {
"config_key": "{0}_subscriber".format(method),
@@ -82,21 +86,48 @@ def _generate_spec(model_name, meta, dcae_cs_schema, data_formats, docker_uri):
"type": pstype,
}
+ publisher = {
+ "config_key": "{0}_publisher".format(method),
+ "format": df_out_name,
+ "version": _get_format_version(df_out_name, data_formats),
+ "type": pstype,
+ }
+ parameter_subscriber = {
+ "name": "streams_subscribes",
+ "value": "{{\"{0}_subscriber\":{{\"dmaap_info\":{{\"topic_url\":\"http://message-router:3904/events/unauthenticated.{1}_In\"}},\"type\":\"message_router\"}}}}".format(
+ method, model_name),
+
+ "description": "standard http port collector will open for listening;",
+ "sourced_at_deployment": False,
+ "policy_editable": False,
+ "designer_editable": False
+ }
+ paramter_publisher = {
+ "name": "streams_publishes",
+ "value": "{{\"{0}_publisher\":{{\"dmaap_info\":{{\"topic_url\":\"http://message-router:3904/events/unauthenticated.{1}_Out\"}},\"type\":\"message_router\"}}}}".format(
+ method, model_name),
+ "description": "standard http port collector will open for listening;",
+ "sourced_at_deployment": False,
+ "policy_editable": False,
+ "designer_editable": False
+ }
spec["streams"]["publishes"].append(publisher)
+ spec["parameters"].append(parameter_subscriber)
+ spec["parameters"].append(paramter_publisher)
# Validate that we have a valid spec
validate(instance=spec, schema=dcae_cs_schema)
-
return spec
-def generate_spec(model_repo_path, model_name, data_formats, docker_uri):
+def generate_spec(model_repo_path, model_name, data_formats, model_version):
"""
Generate and write the component spec to disk
Returns the spec
"""
spec = _generate_spec(
- model_name, utils.get_metadata(model_repo_path, model_name), utils.component_schema.get(), data_formats, docker_uri
+ model_name, utils.get_metadata(model_repo_path, model_name), utils.component_schema.get(), data_formats,
+ model_version
)
fname = "{0}_dcae_component_specification.json".format(model_name)
with open("{0}/{1}".format(model_repo_path, fname), "w") as f: