summaryrefslogtreecommitdiffstats
path: root/docker/dockerplugin/tasks.py
diff options
context:
space:
mode:
Diffstat (limited to 'docker/dockerplugin/tasks.py')
-rw-r--r--docker/dockerplugin/tasks.py44
1 files changed, 27 insertions, 17 deletions
diff --git a/docker/dockerplugin/tasks.py b/docker/dockerplugin/tasks.py
index d64a65c..899f4ed 100644
--- a/docker/dockerplugin/tasks.py
+++ b/docker/dockerplugin/tasks.py
@@ -25,7 +25,7 @@ from cloudify import ctx
from cloudify.decorators import operation
from cloudify.exceptions import NonRecoverableError, RecoverableError
import dockering as doc
-from onap_dcae_dcaepolicy_lib import Policies
+from onap_dcae_dcaepolicy_lib import Policies, POLICIES, POLICY_MESSAGE_TYPE
from dockerplugin import discovery as dis
from dockerplugin.decorators import monkeypatch_loggers, wrap_error_handling_start, \
merge_inputs_for_start, merge_inputs_for_create
@@ -113,10 +113,15 @@ def _done_for_create(**kwargs):
ctx.logger.info("Done setting up: {0}".format(name))
return kwargs
+def _merge_policy_updates(**kwargs):
+ app_config = kwargs[APPLICATION_CONFIG]
+ kwargs[APPLICATION_CONFIG] = Policies.shallow_merge_policies_into(app_config)
+ return kwargs
+
@merge_inputs_for_create
@monkeypatch_loggers
-@Policies.gather_policies_to_node()
+@Policies.gather_policies_to_node
@operation
def create_for_components(**create_inputs):
"""Create step for Docker containers that are components
@@ -128,8 +133,9 @@ def create_for_components(**create_inputs):
"""
_done_for_create(
**_setup_for_discovery(
+ **_merge_policy_updates(
**_generate_component_name(
- **create_inputs)))
+ **create_inputs))))
def _parse_streams(**kwargs):
@@ -198,7 +204,7 @@ def _setup_for_discovery_streams(**kwargs):
@merge_inputs_for_create
@monkeypatch_loggers
-@Policies.gather_policies_to_node()
+@Policies.gather_policies_to_node
@operation
def create_for_components_with_streams(**create_inputs):
"""Create step for Docker containers that are components that use DMaaP
@@ -213,9 +219,10 @@ def create_for_components_with_streams(**create_inputs):
_done_for_create(
**_setup_for_discovery(
**_setup_for_discovery_streams(
+ **_merge_policy_updates(
**_parse_streams(
**_generate_component_name(
- **create_inputs)))))
+ **create_inputs))))))
@merge_inputs_for_create
@@ -579,7 +586,6 @@ def stop_and_remove_container(**kwargs):
raise NonRecoverableError(e)
@monkeypatch_loggers
-@Policies.cleanup_policies_on_node
@operation
def cleanup_discovery(**kwargs):
"""Delete configuration from Consul"""
@@ -600,15 +606,11 @@ def _notify_container(**kwargs):
if dc["policy"]["trigger_type"] == "docker":
# REVIEW: Need to finalize on the docker config policy data structure
script_path = dc["policy"]["script_path"]
+ app_config = kwargs["application_config"]
updated_policies = kwargs["updated_policies"]
- removed_policies = kwargs["removed_policies"]
- policies = kwargs["policies"]
cmd = doc.build_policy_update_cmd(script_path, use_sh=False,
- msg_type="policies",
updated_policies=updated_policies,
- removed_policies=removed_policies,
- policies=policies
- )
+ application_config=app_config)
docker_host = kwargs[SELECTED_CONTAINER_DESTINATION]
docker_host_ip = _lookup_service(docker_host)
@@ -622,10 +624,16 @@ def _notify_container(**kwargs):
return kwargs
+def _done_for_policy_update(**kwargs):
+ name = kwargs['name']
+ ctx.instance.runtime_properties.update(kwargs)
+ ctx.logger.info("Done updating for policy: {0}".format(name))
+ return kwargs
+
@monkeypatch_loggers
-@Policies.update_policies_on_node()
+@Policies.update_policies_on_node(configs_only=True)
@operation
-def policy_update(updated_policies, removed_policies=None, policies=None, **kwargs):
+def policy_update(updated_policies, **kwargs):
"""Policy update task
This method is responsible for updating the application configuration and
@@ -637,10 +645,12 @@ def policy_update(updated_policies, removed_policies=None, policies=None, **kwar
"""
update_inputs = copy.deepcopy(ctx.instance.runtime_properties)
update_inputs["updated_policies"] = updated_policies
- update_inputs["removed_policies"] = removed_policies
- update_inputs["policies"] = policies
- _notify_container(**update_inputs)
+ # Merge in policy updates into application config and make available
+ _done_for_policy_update(
+ **_notify_container(
+ **_setup_for_discovery(
+ **_merge_policy_updates(**update_inputs))))
# Lifecycle interface calls for dcae.nodes.DockerHost