From 22aab7b10a99bb35de71dfa20208d9a8340686d8 Mon Sep 17 00:00:00 2001 From: Joshua Reich Date: Fri, 9 Nov 2018 17:12:28 -0800 Subject: initial documentation for the CLC Issue-ID: POLICY-1246 Change-Id: I57b9b72a5e6a99e2c850c8e096cfc02598158628 Signed-off-by: Joshua Reich --- docs/platform/arch.PNG | Bin 0 -> 53446 bytes docs/platform/clc.rst | 63 +++++++++++++++++++++++++++++++++++++++++++++++++ docs/platform/clca.PNG | Bin 0 -> 76230 bytes docs/platform/clcf.PNG | Bin 0 -> 70011 bytes docs/platform/func.PNG | Bin 0 -> 56921 bytes 5 files changed, 63 insertions(+) create mode 100755 docs/platform/arch.PNG create mode 100755 docs/platform/clca.PNG create mode 100755 docs/platform/clcf.PNG create mode 100755 docs/platform/func.PNG diff --git a/docs/platform/arch.PNG b/docs/platform/arch.PNG new file mode 100755 index 000000000..098c9a030 Binary files /dev/null and b/docs/platform/arch.PNG differ diff --git a/docs/platform/clc.rst b/docs/platform/clc.rst index 2b7ff7630..feef34fbe 100644 --- a/docs/platform/clc.rst +++ b/docs/platform/clc.rst @@ -6,3 +6,66 @@ Policy Control Loop Coordination - POC ************************************** +.. contents:: + :depth: 3 + + +What is the Control Loop Coordinator? +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +The Control Loop Coordinator (CLC) is a facility embedded within Policy that provides: + +* Abstractions enabling an operator to specify how ONAP/ECOMP will coordinate the interactions between a given pair of Control Loop Functions (CLFs); +* Mechanisms to ensure coordination directives are correctly enforced by ONAP/ECOMP at run-time. + + +How does the CLC work? +^^^^^^^^^^^^^^^^^^^^^^ + +The table below illustrates conflict between two CLFs at the functional and architectural views and resolution of that conflict via introduction of the CLC. + ++-----------+-------------------------+-----------------------+ +| Scenario | Functional View | Architectural View | ++===========+=========================+=======================+ +| Conflict | .. image:: func.PNG | .. image:: arch.PNG | +| | :scale: 33 | :scale: 33 | ++-----------+-------------------------+-----------------------+ +| Resolution| .. image:: clcf.PNG | .. image:: clca.PNG | +| | :scale: 33 | :scale: 33 | ++-----------+-------------------------+-----------------------+ + + +How is the CLC implemented? +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + .. _template.demo.clc: https://git.onap.org/policy/drools-applications/tree/controlloop/templates/template.demo.clc + + .. _synthetic_control_loop_one_blocks_synthetic_control_loop_two.xml: https://git.onap.org/policy/drools-applications/tree/controlloop/templates/template.demo.clc/src/test/resources/xacml/synthetic_control_loop_one_blocks_synthetic_control_loop_two.xml + + .. _policy_ControlLoop_SyntheticOne.yaml: https://git.onap.org/policy/drools-applications/tree/controlloop/templates/template.demo.clc/src/test/resources/yaml/policy_ControlLoop_SyntheticOne.yaml + + .. _policy_ControlLoop_SyntheticTwo.yaml: https://git.onap.org/policy/drools-applications/tree/controlloop/templates/template.demo.clc/src/test/resources/yaml/policy_ControlLoop_SyntheticTwo.yaml + + .. _xacml_guard_clc.properties: https://git.onap.org/policy/drools-applications/tree/controlloop/templates/template.demo.clc/src/test/resources/xacml/xacml_guard_clc.properties + + .. _ControlLoopEventManager: https://git.onap.org/policy/drools-applications/tree/controlloop/templates/template.demo.clc/src/main/resources/__closedLoopControlName__.drl#n210 + +Example code is provided at `template.demo.clc`_. The abstraction implemented for the initial release is simply a XACML policy (e.g., `synthetic_control_loop_one_blocks_synthetic_control_loop_two.xml`_) that matches against one CLF (e.g., `policy_ControlLoop_SyntheticOne.yaml`_) and checks the status of another CLF (e.g., `policy_ControlLoop_SyntheticTwo.yaml`_) via provided PIPs. The following release will provide a much more succinct YAML representation consisting of coordination_directive_type, control_loop_one_id, control_loop_two_id, and, optionally, one or more parameters, the semantics of which are defined by the coordination_directive_type. + + +How do you run the example? +^^^^^^^^^^^^^^^^^^^^^^^^^^^ +From within `template.demo.clc`_ run + + .. code-block:: bash + + $ mvn test -Dtest=ControlLoopCoordinationTest + +**NOTE:** When incorporating this example code into your own application, the XACML policies implementing the coordination directives must be included in the XACML .properties file used by the ONAP/ECOMP controller instance (e.g., `xacml_guard_clc.properties`_). The CLF’s drl file must also contain the following modification, to be included after the creation of the `ControlLoopEventManager`_. + + .. code-block:: bash + + // Disable target locking + // + manager.setUseTargetLock(false); + + +End of Document diff --git a/docs/platform/clca.PNG b/docs/platform/clca.PNG new file mode 100755 index 000000000..4eb3e37df Binary files /dev/null and b/docs/platform/clca.PNG differ diff --git a/docs/platform/clcf.PNG b/docs/platform/clcf.PNG new file mode 100755 index 000000000..10772c899 Binary files /dev/null and b/docs/platform/clcf.PNG differ diff --git a/docs/platform/func.PNG b/docs/platform/func.PNG new file mode 100755 index 000000000..3c4ca73f1 Binary files /dev/null and b/docs/platform/func.PNG differ -- cgit 1.2.3-korg