initial documentation for the CLC 52/72352/1
authorJoshua Reich <jreich@research.att.com>
Sat, 10 Nov 2018 01:12:28 +0000 (17:12 -0800)
committerJoshua Reich <jreich@research.att.com>
Sat, 10 Nov 2018 01:13:45 +0000 (17:13 -0800)
Issue-ID: POLICY-1246
Change-Id: I57b9b72a5e6a99e2c850c8e096cfc02598158628
Signed-off-by: Joshua Reich <jreich@research.att.com>
docs/platform/arch.PNG [new file with mode: 0755]
docs/platform/clc.rst
docs/platform/clca.PNG [new file with mode: 0755]
docs/platform/clcf.PNG [new file with mode: 0755]
docs/platform/func.PNG [new file with mode: 0755]

diff --git a/docs/platform/arch.PNG b/docs/platform/arch.PNG
new file mode 100755 (executable)
index 0000000..098c9a0
Binary files /dev/null and b/docs/platform/arch.PNG differ
index 2b7ff76..feef34f 100644 (file)
@@ -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 (executable)
index 0000000..4eb3e37
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 (executable)
index 0000000..10772c8
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 (executable)
index 0000000..3c4ca73
Binary files /dev/null and b/docs/platform/func.PNG differ