Merge "Updating db-migrator smoke test description"
[policy/parent.git] / docs / clamp / acm / design-impl / participants / policy-framework-participant.rst
1 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
2
3 .. _clamp-controlloop-policy-framework-participant:
4
5 The CLAMP Policy Framework Participant
6 ######################################
7
8 .. contents::
9     :depth: 3
10
11 Control Loop Elements in the Policy Framework Participant are configured using TOSCA metadata defined for the Policy Control Loop Element type.
12
13 The Policy Framework participant receives messages through participant-intermediary common code, and handles them by invoking REST APIs towards policy-framework.
14
15 For example, When a ControlLoopUpdate message is received by policy participant, it contains full ToscaServiceTemplate describing all components participating in a control loop. When the control loop element state changed from UNINITIALIZED to PASSIVE, the Policy-participant triggers the creation of policy-types and policies in Policy-Framework.
16
17 When the state changes from PASSIVE to UNINITIALIZED, Policy-Participant deletes the policies, policy-types by invoking REST APIs towards the policy-framework.
18
19 Run Policy Framework Participant command line using Maven
20 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
21
22 mvn spring-boot:run -Dspring-boot.run.arguments="--server.port=8082"
23
24 Run Policy Framework Participant command line using Jar
25 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
26
27 java -jar -Dserver.port=8082 -DtopicServer=localhost target/policy-clamp-participant-impl-policy-6.1.2-SNAPSHOT.jar
28
29 Distributing Policies
30 +++++++++++++++++++++
31
32 The Policy Framework participant uses the Policy PAP API to deploy and undeploy policies.
33
34 When a Policy Framework Control Loop Element changes from state PASSIVE to state RUNNING, the policy is deployed. When it changes from state RUNNING to state PASSIVE, the policy is undeployed.
35
36 The PDP group to which the policy should be deployed is specified in the Control Loop Element metadata, see the Policy Control Loop Element type definition. If the PDP group specified for policy deployment does not exist, an error is reported.
37
38 The PAP Policy Status API and Policy Deployment Status API are used to retrieve data to report on the deployment status of policies in Participant Status messages.
39
40 The PDP Statistics API is used to get statistics for statistics report from the Policy Framework Participant back to the CLAMP runtime.
41
42 Policy Type and Policy References
43 +++++++++++++++++++++++++++++++++
44
45 The Policy Framework uses the policyType and policyId properties defined in the Policy Control Loop Element type references to specify what policy type and policy should be used by a Policy Control Loop Element.
46
47 The Policy Type and Policy specified in the policyType and policyId reference must of course be available in the Policy Framework in order for them to be used in Control Loop instances. In some cases, the Policy Type and/or the Policy may be already loaded in the Policy Framework. In other cases, the Policy Framework participant must load the Policy Type and/or policy.
48
49 Policy Type References
50 **********************
51
52 The Policy Participant uses the following steps for Policy Type References:
53
54 #. The Policy Participant reads the Policy Type ID from the policyType property specified for the Control Loop Element.
55
56 #. It checks if a Policy Type with that Policy Type ID has been specified in the ToscaServiceTemplateFragment field in
57    the ControLoopElement definition in the ControlLoopUpdate message, see :ref:`controlloop-participant-protocol-label`.
58
59   #. If the Policy Type has been specified, the Participant stores the Policy Type in the Policy framework. If the
60      Policy Type is successfully stored, execution proceeds, otherwise an error is reported.
61
62   #. If the Policy Type has not been specified, the Participant checks that the Policy Type is already in the Policy
63      framework. If the Policy Type already exists, execution proceeds, otherwise an error is reported.
64
65 Policy References
66 *****************
67
68 The Policy Participant uses the following steps for Policy References:
69
70 #. The Policy Participant reads the Policy ID from the policyId property specified for the Control Loop Element.
71
72 #. It checks if a Policy with that Policy ID has been specified in the ToscaServiceTemplateFragment field in the
73    ControLoopElement definition in the ControlLoopUpdate message, :ref:`controlloop-participant-protocol-label`.
74
75   #. If the Policy has been specified, the Participant stores the Policy in the Policy framework. If the Policy is
76      successfully stored, execution proceeds, otherwise an error is reported.
77
78   #. If the Policy has not been specified, the Participant checks that the Policy is already in the Policy framework. If
79      the Policy already exists, execution proceeds, otherwise an error is reported.