From 4d1d9830d51d3df59cadaa0ac9c9b004f2cb0d17 Mon Sep 17 00:00:00 2001 From: liamfallon Date: Thu, 30 May 2019 20:53:05 +0000 Subject: Design and Public API documentation completed. The draw.io diagrams are in Gerrit. If the page is ever deleted, they will be lost. They ae now saved in XML format in gerrit. The design documentation links to the examples in github rather than quoting them in the document. General tidy up and cleaning of links, rewording, and reformatting of desgin document. Added missing diagram to the Design document. Updated and tidied up the internal PAP/PDP document. General improvement of documentation. Issue-ID: POLICY-1676 Change-Id: Ie5c9f32693f047beafe14a3e412a32cdf9ed6fde Signed-off-by: liamfallon --- docs/architecture/architecture.rst | 13 ++++---- docs/architecture/draw.io/ClassStructure.xml | 2 ++ docs/architecture/draw.io/DesignTimeComponents.xml | 2 ++ docs/architecture/draw.io/PFDesignAndAdmin.xml | 2 ++ docs/architecture/draw.io/PFHighestLevel.xml | 2 ++ docs/architecture/draw.io/PolicyExecution.xml | 2 ++ docs/architecture/draw.io/TOSCAPolicyConcepts.xml | 2 ++ docs/architecture/images/ClassStructure.svg | 2 ++ docs/architecture/images/DesignTimeComponents.svg | 2 ++ docs/architecture/images/PFDesignAndAdmin.svg | 2 ++ docs/architecture/images/PFHighestLevel.svg | 2 ++ docs/architecture/images/PolicyExecution.svg | 36 ++------------------- docs/architecture/images/PolicyExecutionFlow.svg | 34 +++++++++++++++++++ docs/architecture/images/TOSCAPolicyConcepts.svg | 2 ++ docs/architecture/images/ToscaPolicyStructure.png | Bin 26067 -> 0 bytes docs/architecture/images/detailed.png | Bin 214476 -> 0 bytes docs/architecture/images/execution.png | Bin 104106 -> 0 bytes docs/architecture/images/highest.png | Bin 40638 -> 0 bytes docs/architecture/images/objectmodel1.png | Bin 186880 -> 0 bytes docs/architecture/images/objectmodel2.png | Bin 170899 -> 0 bytes docs/architecture/plantuml/PolicyExecution.puml | 24 -------------- .../architecture/plantuml/PolicyExecutionFlow.puml | 24 ++++++++++++++ docs/architecture/tosca-policy-primer.rst | 6 ++-- 23 files changed, 92 insertions(+), 67 deletions(-) create mode 100644 docs/architecture/draw.io/ClassStructure.xml create mode 100644 docs/architecture/draw.io/DesignTimeComponents.xml create mode 100644 docs/architecture/draw.io/PFDesignAndAdmin.xml create mode 100644 docs/architecture/draw.io/PFHighestLevel.xml create mode 100644 docs/architecture/draw.io/PolicyExecution.xml create mode 100644 docs/architecture/draw.io/TOSCAPolicyConcepts.xml create mode 100644 docs/architecture/images/ClassStructure.svg create mode 100644 docs/architecture/images/DesignTimeComponents.svg create mode 100644 docs/architecture/images/PFDesignAndAdmin.svg create mode 100644 docs/architecture/images/PFHighestLevel.svg create mode 100644 docs/architecture/images/PolicyExecutionFlow.svg create mode 100644 docs/architecture/images/TOSCAPolicyConcepts.svg delete mode 100644 docs/architecture/images/ToscaPolicyStructure.png delete mode 100644 docs/architecture/images/detailed.png delete mode 100644 docs/architecture/images/execution.png delete mode 100644 docs/architecture/images/highest.png delete mode 100644 docs/architecture/images/objectmodel1.png delete mode 100644 docs/architecture/images/objectmodel2.png delete mode 100644 docs/architecture/plantuml/PolicyExecution.puml create mode 100644 docs/architecture/plantuml/PolicyExecutionFlow.puml (limited to 'docs/architecture') diff --git a/docs/architecture/architecture.rst b/docs/architecture/architecture.rst index 727cb6c9..175bb20d 100644 --- a/docs/architecture/architecture.rst +++ b/docs/architecture/architecture.rst @@ -2,6 +2,7 @@ .. Creative Commons Attribution 4.0 International License. .. http://creativecommons.org/licenses/by/4.0 +.. _architecture-label: Architecture ############ @@ -94,7 +95,7 @@ of conflicts across all policies running in an ONAP installation. The diagram below shows the architecture of the ONAP Policy Framework at its highest level. -.. image:: images/highest.png +.. image:: images/PFHighestLevel.svg The *PolicyDevelopment* component implements the functionality for development of policy types and policies. *PolicyAdministration* is responsible for the deployment life cycle of policies as well as interworking with the @@ -113,7 +114,7 @@ with *PolicyAdministration*, *PolicyExecution* or any other run-time ONAP compon The diagram below shows a more detailed view of the architecture, as inspired by `RFC-2753 `__ and `RFC-3198 `__. -.. image:: images/detailed.png +.. image:: images/PFDesignAndAdmin.svg *PolicyDevelopment* provides a `CRUD `__ API for policy types and policies. The policy types and policy artifacts and their metadata (Information about policies, policy types, @@ -142,7 +143,7 @@ three APIs: *PolicyExecution* is the set of running PDPs that are executing policies, logically partitioned into PDP groups and subgroups. -.. image:: images/execution.png +.. image:: images/PolicyExecution.svg The figure above shows how *PolicyExecution* looks at run time with PDPs running in Kubernetes. A *PDPGroup* is a purely logical construct that collects all the PDPs that are running policies for a particular domain together. A *PDPSubGroup* @@ -179,12 +180,12 @@ for :ref:`Policy Administration Point (PAP) Architecture `. This section describes the structure of and relations between the main concepts in the Policy Framework. This model is implemented as a common model and is used by *PolicyDevelopment*, *PolicyDeployment,* and *PolicyExecution.* -.. image:: images/objectmodel1.png +.. image:: images/ClassStructure.svg The UML class diagram above shows the portion of the Policy Framework Object Model that applies to *PolicyDeployment* and *PolicyExecution.* -.. image:: images/objectmodel2.png +.. image:: images/DesignTimeComponents.svg The UML class diagram above shows the portion of the Policy Framework Object Model that applies to *PolicyDevelopment* and *PolicyDeployment.* @@ -498,7 +499,7 @@ On receipt or a shutdown request, the PDP completes or aborts any ongoing policy Policy execution is the execution of a policy in a PDP. Policy enforcement occurs in the component that receives a policy decision. -.. image:: images/PolicyExecution.svg +.. image:: images/PolicyExecutionFlow.svg Policy execution can be *synchronous* or *asynchronous*. In *synchronous* policy execution, the component requesting a policy decision requests a policy decision and waits for the result. The PDP-X and PDP-A implement synchronous policy diff --git a/docs/architecture/draw.io/ClassStructure.xml b/docs/architecture/draw.io/ClassStructure.xml new file mode 100644 index 00000000..9619a8e2 --- /dev/null +++ b/docs/architecture/draw.io/ClassStructure.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/architecture/draw.io/DesignTimeComponents.xml b/docs/architecture/draw.io/DesignTimeComponents.xml new file mode 100644 index 00000000..032d8558 --- /dev/null +++ b/docs/architecture/draw.io/DesignTimeComponents.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/architecture/draw.io/PFDesignAndAdmin.xml b/docs/architecture/draw.io/PFDesignAndAdmin.xml new file mode 100644 index 00000000..9ba43502 --- /dev/null +++ b/docs/architecture/draw.io/PFDesignAndAdmin.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/architecture/draw.io/PFHighestLevel.xml b/docs/architecture/draw.io/PFHighestLevel.xml new file mode 100644 index 00000000..a307574f --- /dev/null +++ b/docs/architecture/draw.io/PFHighestLevel.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/architecture/draw.io/PolicyExecution.xml b/docs/architecture/draw.io/PolicyExecution.xml new file mode 100644 index 00000000..1dbf4da3 --- /dev/null +++ b/docs/architecture/draw.io/PolicyExecution.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/architecture/draw.io/TOSCAPolicyConcepts.xml b/docs/architecture/draw.io/TOSCAPolicyConcepts.xml new file mode 100644 index 00000000..0d3900dd --- /dev/null +++ b/docs/architecture/draw.io/TOSCAPolicyConcepts.xml @@ -0,0 +1,2 @@ + +7VttT+M4EP41le4+UOW1Lx9pYfdOYiV0IB18WrmJm1jrxpHrQru//saJnfewKWQD6IKQiMfjsT3PeGY8CRN7vTt+5SgOvzEf04ll+MeJfTWxLNNeuvBHUk4pZWEsUkLAia+YcsId+YkV0VDUA/HxvsQoGKOCxGWix6IIe6JEQ5yz5zLbltHyrDEK1IxGTrjzEMU1tn+JL0K1C7fA/RcmQahnNg3Vs0Hej4CzQ6Tmm1j2NvlJu3dIy1L8+xD57LlAsq8n9pozJtKn3XGNqdStVls67ktLb7ZujiPRZYBexxOiB7X3W0aJd1LLEyetkv0z2VEUQWu1ZZG4Uz0GtL2QUP8GndhBzrkXoAPdWoWMk5/Ajyh0mUCAbi4U4tZMSiOUrhllPJlHqsvyvNLIOylRzcXxHsbe6g2aFdI3dCwx3qC90KtklKJ4TzbJuuXAHeIBiVZMCLZTTHvB2Q9cWI4/28xcucy6ZpWynzAX+FggKU1/xWyHBQdNGrp3rrStToXpzNP2c25jlq14wqJ9GY6ybWXXQSY7xxYeFLwtUJs1qCfWSu6Jsxj2QOSBu1QNuWofb0lEBGERNCgBRVZtAvYtXlRaG7aIkiACGsVbKUCqkMDpu1RkwWIpNkYeiYKbhOfKySn/KM1IEoOxW5ocoZD4Po4k9EwggTaZfcaMRCLRnLuCX1Dw2pi6ExeWtIa2mbfhV7JzsWYR7AqRBGsMRvSMpSE1WEF2gn5tBgp2sPpOqGu+N4FutYAOpzDAUimXCaQc1Jpo52oEuReQXWtAkO02kDkJAswVyqo1HuY+cZ4vhsPZbgvW96cYjwG7/4B9sSgH7CHDtd0pXOftMWJ3PeT2h47Y9hix3wfkISO2PUbsd8N5yIjt1CN2DUVZLoi7B6us6KE0PCkWDhqDmO2+8tppzYy3q8Csx7F7bdZjxvKLjMXpbt2DJCVmW3DCT7Dm70LmocX4ZBl/JD3wEKEd/nN0YU1pafe89B3yEbMtVO29EPsHqgC/Jzv8dyQwB74R5V5QHjIhMZ0Xs87vABBgm0KtT7SijWD3AfagdYQ2sCGz8NPrYwK0l+8XGhQd9vUqw4j2WVFap2A6GA8Ct9sOd7bDEe/firfGdhC8Zy14x5gT5qsEDXSP+MUhImIqIHaPQPcDtDtkqWjemo0DBUlHrgoJsFfcdOMaQX4VyIshS0WLFpBBUpidZnXdGuHtAV7LGDIXW7bAi7w8Ectu00zWAmW5H6VF/hHvPvC2B0zGnKbce0blXnzyBI9BgmCMPbIFCFKY034QXWBpGMW2bawVO8GRfym/koJWxJJ6Wyh2unoGnap2Zlq6mFbhLhbYTEcTvhC56wRh7AdYl+8AvZAFLEL0Oqeu8JGIBz0jPD/KkVNjOUtXUJQVgYofkm5XNx91H4y8hawGYJC304TWcBtTCmAH7ikNaHjT660+9ylNLv5Fu9GFVWNqm4Yqj3BMAawnXJqxyVCUuFuWptlZkXZZLtI6i0rtNV29GpbbW01SVZBpVQSlW35BkGZk2+0el3gS484U0c3e65cPDUduj0khteAgCtbYyTNRtMF0lX16V/Zw8uM7VVBWFttsJfpkNpfXz3ptbJ5pE52dRz2zN6bTehzooE+eurXPodBz9VkxaHUSLiyrPKQfA29Kwmuu2UPylfwGd/bl6tUf9uWw0yfy62f57ofC82PG1s2D23UPrstuZ3hwuJk7/Xjw7BtgXdGrWFtXB36RBadq8eCdPHj9AvJapzOAE5+/mxNvC+xlMC+qSWQ/GNVvER85MPQGUk8YWRWInN8AkX4JX4Ao+9jj8/hxc2oYTsmTT03TLXpzYFiWPLppZa6/mqq/On23GtL3c50/rNTUN/0M+Xk/BlX90F/Pc34ssNyyJHd+ZixQkqpyKgvqx8Trn3p83Eihz+P/LFLol8qfI1L0B1I/GFnLCkTLt0MEzfz/vVL2/J/q7Ov/AA== \ No newline at end of file diff --git a/docs/architecture/images/ClassStructure.svg b/docs/architecture/images/ClassStructure.svg new file mode 100644 index 00000000..650e5a31 --- /dev/null +++ b/docs/architecture/images/ClassStructure.svg @@ -0,0 +1,2 @@ + +

MicroService



[Not supported by viewer]

PDPGroup



[Not supported by viewer]
1
1
1..n
1..n

PDPSubGroup



[Not supported by viewer]

PDP



[Not supported by viewer]
1
1
1..n
1..n

<<enumeration>>
PDPType


PDP-X
PDP-D
PDP-A
[Not supported by viewer]
1
1

PDP-X



[Not supported by viewer]

PDP-D



[Not supported by viewer]

PDP-A



[Not supported by viewer]

Kubernetes



[Not supported by viewer]
manages
manages
0..n
[Not supported by viewer]

PolicyImpl



[Not supported by viewer]

XACMLPolicyImpl



[Not supported by viewer]

DroolsPolicyImpl



[Not supported by viewer]

ApexPolicyImpl



[Not supported by viewer]
1
1
executes
executes
0..n
[Not supported by viewer]

PolicySet



[Not supported by viewer]
executes
executes
1
1
1
1
1
1
1..n
1..n
All the PDPs in a given PDPSubGroup instance must be of the same type
[Not supported by viewer]

PolicyTypeImpl



[Not supported by viewer]

<<TOSCA>>
Policy



[Not supported by viewer]
has implementation
has implementation
n
[Not supported by viewer]
1
1
is specified by
is specified by
n
[Not supported by viewer]
1
1

<<TOSCA>>
PolicyType



[Not supported by viewer]
is defined by
is defined by
n
[Not supported by viewer]
1
1
\ No newline at end of file diff --git a/docs/architecture/images/DesignTimeComponents.svg b/docs/architecture/images/DesignTimeComponents.svg new file mode 100644 index 00000000..3766c4cc --- /dev/null +++ b/docs/architecture/images/DesignTimeComponents.svg @@ -0,0 +1,2 @@ + +

<<enumeration>>
PDPType


PDP-X
PDP-D
PDP-A
[Not supported by viewer]

XACMLPolicy



[Not supported by viewer]

DroolsPolicy



[Not supported by viewer]

ApexPolicy



[Not supported by viewer]
1
1

XACMLImpl



[Not supported by viewer]

DroolsImpl



[Not supported by viewer]

ApexImpl



[Not supported by viewer]

PolicyTypeImpl



[Not supported by viewer]
1
1
PolicyTypeXACML


[Not supported by viewer]

<<TOSCA>>
PolicyType



[Not supported by viewer]

PolicyTypeDrools



[Not supported by viewer]

PolicyTypeApex



[Not supported by viewer]
1
1

PolicyCreator



[Not supported by viewer]
applies
applies
1
1
1
1
parameterizes
parameterizes
1
1
1
1
creates
creates
1
1
1
1

PDPXCreator



[Not supported by viewer]

PDPDCreator



[Not supported by viewer]

PDPACreator



[Not supported by viewer]
1
1
implements
implements
m
m
n
n

<<TOSCA>>
Policy



[Not supported by viewer]
\ No newline at end of file diff --git a/docs/architecture/images/PFDesignAndAdmin.svg b/docs/architecture/images/PFDesignAndAdmin.svg new file mode 100644 index 00000000..f91d3084 --- /dev/null +++ b/docs/architecture/images/PFDesignAndAdmin.svg @@ -0,0 +1,2 @@ + +
PolicyDevelopment
PolicyDevelopment
Portal
Portal
PolicyDevAPIUser
PolicyDevAPIUser
PolicyDistribution
PolicyDistribution
SDC
SDC
PolicyDevGUI
PolicyDevGUI
PolicyDB
PolicyDB
PolicyAdminGUI
PolicyAdminGUI
PolicyAdministration
PolicyAdministration
PolicyAdminAPIUser
PolicyAdminAPIUser
PolicyExecution
PolicyExecution
DMaaP
DMaaP
AsyncCaller
AsyncCaller
SyncCaller
SyncCaller
Policy Artifacts and Metadata
PDP Group and Subgroup Definitions
Policy to PDP Group and Subgroup Mappings
[Not supported by viewer]
CRUD API for Policy Groups and Sub-Groups
API for Policy Deployment
CRUD API for Policy Groups and Sub-Groups<br>API for Policy Deployment
Policies for a given
domain execute in a
PDP Group. PDP Groups
have subgroups for each
PDP type in a PDP group
[Not supported by viewer]
Deploy
Retire
Archive
Upgrade
Rollback
[Not supported by viewer]
CRUD API for Policy Artifacts
CRUD API for Policy Artifacts
Policy Framework Component
Policy Framework Component
Other Component
Other Component
\ No newline at end of file diff --git a/docs/architecture/images/PFHighestLevel.svg b/docs/architecture/images/PFHighestLevel.svg new file mode 100644 index 00000000..9f1afd6a --- /dev/null +++ b/docs/architecture/images/PFHighestLevel.svg @@ -0,0 +1,2 @@ + +
PolicyDevelopment
PolicyDevelopment
PolicyDB
PolicyDB
PolicyAdministration
PolicyAdministration
PolicyExecution
PolicyExecution
Policy Framework Component
Policy Framework Component
Other Component
Other Component
\ No newline at end of file diff --git a/docs/architecture/images/PolicyExecution.svg b/docs/architecture/images/PolicyExecution.svg index c9b2f7f6..23a00770 100644 --- a/docs/architecture/images/PolicyExecution.svg +++ b/docs/architecture/images/PolicyExecution.svg @@ -1,34 +1,2 @@ -Policy ExecutionREQUESTORREQUESTORRESPONDEERESPONDEEPDPPDPalt[Synchronous Invocation]1Execute Policywait2Policy Execution Result[Asynchronous Invocation]3Execute Policy4Policy Execution Result \ No newline at end of file + +
PDPGroup
PDPGroup
PDPGroup
PDPGroup
PDPGroup
PDPGroup
PDPSubGroup
PDPSubGroup
PDPSubGroup
PDPSubGroup
PDP-X
PDP-X
PDP-X
PDP-X
PDP-A
PDP-A
PDP-A
PDP-A
PDP-A
PDP-A
PDPSubGroup
PDPSubGroup
PDP-D
PDP-D
PDP-D
PDP-D
PDP-D
PDP-D
PolicyAdministration
PolicyAdministration
DMaaP
DMaaP
AsyncCaller
<div>AsyncCaller</div>
SyncCaller
SyncCaller
Each PDP is deployed as a Kubernetes Pod
[Not supported by viewer]
In Kubernetes, a PDPSubGroup is a Kubernetes Deployment
[Not supported by viewer]
\ No newline at end of file diff --git a/docs/architecture/images/PolicyExecutionFlow.svg b/docs/architecture/images/PolicyExecutionFlow.svg new file mode 100644 index 00000000..c9b2f7f6 --- /dev/null +++ b/docs/architecture/images/PolicyExecutionFlow.svg @@ -0,0 +1,34 @@ +Policy ExecutionREQUESTORREQUESTORRESPONDEERESPONDEEPDPPDPalt[Synchronous Invocation]1Execute Policywait2Policy Execution Result[Asynchronous Invocation]3Execute Policy4Policy Execution Result \ No newline at end of file diff --git a/docs/architecture/images/TOSCAPolicyConcepts.svg b/docs/architecture/images/TOSCAPolicyConcepts.svg new file mode 100644 index 00000000..fd8f18e6 --- /dev/null +++ b/docs/architecture/images/TOSCAPolicyConcepts.svg @@ -0,0 +1,2 @@ + +Policy+ properties:property definition list+ targets: string[]+ triggers: trigger listPolicyType+ properties: property definition list+ targets: string[]+ triggers: trigger listTrigger+ event_type: string (event name)+ schedule: TimeInterval+ target_filter: event filter+ condition: constraint clause+ constraint: constraint clause+ period: scalar-unit.time+ evaluations: integer+ method: string+ action: string or operation
specification
of
[Not supported by viewer]
1
1
0..n
0..n
can be
triggered by
[Not supported by viewer]
0..n
0..n
0..n
0..n
triggers
triggers
0..n
0..n
0..n
0..n
\ No newline at end of file diff --git a/docs/architecture/images/ToscaPolicyStructure.png b/docs/architecture/images/ToscaPolicyStructure.png deleted file mode 100644 index f1e6cb47..00000000 Binary files a/docs/architecture/images/ToscaPolicyStructure.png and /dev/null differ diff --git a/docs/architecture/images/detailed.png b/docs/architecture/images/detailed.png deleted file mode 100644 index 9ac8cf30..00000000 Binary files a/docs/architecture/images/detailed.png and /dev/null differ diff --git a/docs/architecture/images/execution.png b/docs/architecture/images/execution.png deleted file mode 100644 index 4e564856..00000000 Binary files a/docs/architecture/images/execution.png and /dev/null differ diff --git a/docs/architecture/images/highest.png b/docs/architecture/images/highest.png deleted file mode 100644 index bfe07ae8..00000000 Binary files a/docs/architecture/images/highest.png and /dev/null differ diff --git a/docs/architecture/images/objectmodel1.png b/docs/architecture/images/objectmodel1.png deleted file mode 100644 index ef3c7d12..00000000 Binary files a/docs/architecture/images/objectmodel1.png and /dev/null differ diff --git a/docs/architecture/images/objectmodel2.png b/docs/architecture/images/objectmodel2.png deleted file mode 100644 index 44f79746..00000000 Binary files a/docs/architecture/images/objectmodel2.png and /dev/null differ diff --git a/docs/architecture/plantuml/PolicyExecution.puml b/docs/architecture/plantuml/PolicyExecution.puml deleted file mode 100644 index a06fdf5f..00000000 --- a/docs/architecture/plantuml/PolicyExecution.puml +++ /dev/null @@ -1,24 +0,0 @@ -@startuml - -title Policy Execution - -participant REQUESTOR -participant RESPONDEE -participant PDP - -autonumber - -alt Synchronous Invocation - REQUESTOR --> PDP: Execute Policy - activate PDP - hnote over REQUESTOR : wait - PDP --> REQUESTOR: Policy Execution Result - deactivate PDP -else Asynchronous Invocation - REQUESTOR --> PDP: Execute Policy - activate PDP - PDP --> RESPONDEE: Policy Execution Result - deactivate PDP -end - -@enduml \ No newline at end of file diff --git a/docs/architecture/plantuml/PolicyExecutionFlow.puml b/docs/architecture/plantuml/PolicyExecutionFlow.puml new file mode 100644 index 00000000..a06fdf5f --- /dev/null +++ b/docs/architecture/plantuml/PolicyExecutionFlow.puml @@ -0,0 +1,24 @@ +@startuml + +title Policy Execution + +participant REQUESTOR +participant RESPONDEE +participant PDP + +autonumber + +alt Synchronous Invocation + REQUESTOR --> PDP: Execute Policy + activate PDP + hnote over REQUESTOR : wait + PDP --> REQUESTOR: Policy Execution Result + deactivate PDP +else Asynchronous Invocation + REQUESTOR --> PDP: Execute Policy + activate PDP + PDP --> RESPONDEE: Policy Execution Result + deactivate PDP +end + +@enduml \ No newline at end of file diff --git a/docs/architecture/tosca-policy-primer.rst b/docs/architecture/tosca-policy-primer.rst index 686d3564..3f8e78e7 100644 --- a/docs/architecture/tosca-policy-primer.rst +++ b/docs/architecture/tosca-policy-primer.rst @@ -15,7 +15,7 @@ This page gives a short overview of how Policy is modelled in the TOSCA defines three concepts for Policy: Policy Type, Policy, and Trigger. -.. image:: images/ToscaPolicyStructure.png +.. image:: images/TOSCAPolicyConcepts.svg :width: 800 Policy Type @@ -64,12 +64,12 @@ More formally, TOSCA defines a Trigger as an artifact that "defines the event, * its event_type, which defines the name of the event that fires the policy * its schedule, which defines the time interval in which the trigger is active * its target_filter, which defines specific filters for firing such as specific characteristics of the nodes or -relations for which the trigger should or should not fire + relations for which the trigger should or should not fire * its condition, which defines extra conditions on the incoming event for firing the trigger * its constraint, which defines extra conditions on the incoming event for not firing the trigger * its period, which defines the period to use for evaluating conditions and constraints * its evaluations, which defines the number of evaluations that must be performed over the period to assert the -condition or constraint exists + condition or constraint exists * its method, the method to use for evaluation of conditions and constraints * its action, the workflow or operation to invoke when the trigger fires -- cgit 1.2.3-korg