(file) Return to CIM_PolicyRule.mof CVS log (file) (dir) Up to [OMI] / omi / share / networkschema

  1 krisbash 1.1 // Copyright (c) 2005 DMTF.  All rights reserved.
  2                 [Version ( "2.7.0" ), 
  3                  UMLPackagePath ( "CIM::Policy" ), 
  4                  Description ( 
  5                     "The central class used for representing the \'If Condition "
  6                     "then Action\' semantics of a policy rule. A PolicyRule "
  7                     "condition, in the most general sense, is represented as either "
  8                     "an ORed set of ANDed conditions (Disjunctive Normal Form, or "
  9                     "DNF) or an ANDed set of ORed conditions (Conjunctive Normal "
 10                     "Form, or CNF). Individual conditions may either be negated "
 11                     "(NOT C) or unnegated (C). The actions specified by a "
 12                     "PolicyRule are to be performed if and only if the PolicyRule "
 13                     "condition (whether it is represented in DNF or CNF) evaluates "
 14                     "to TRUE. \n"
 15                     "\n"
 16                     "The conditions and actions associated with a PolicyRule are "
 17                     "modeled, respectively, with subclasses of PolicyCondition and "
 18                     "PolicyAction. These condition and action objects are tied to "
 19                     "instances of PolicyRule by the PolicyConditionInPolicyRule and "
 20                     "PolicyActionInPolicyRule aggregations. \n"
 21                     "\n"
 22 krisbash 1.1        "A PolicyRule may also be associated with one or more policy "
 23                     "time periods, indicating the schedule according to which the "
 24                     "policy rule is active and inactive. In this case it is the "
 25                     "PolicySetValidityPeriod aggregation that provides this "
 26                     "linkage. \n"
 27                     "\n"
 28                     "The PolicyRule class uses the property ConditionListType, to "
 29                     "indicate whether the conditions for the rule are in DNF "
 30                     "(disjunctive normal form), CNF (conjunctive normal form) or, "
 31                     "in the case of a rule with no conditions, as an "
 32                     "UnconditionalRule. The PolicyConditionInPolicyRule aggregation "
 33                     "contains two additional properties to complete the "
 34                     "representation of the Rule\'s conditional expression. The "
 35                     "first of these properties is an integer to partition the "
 36                     "referenced PolicyConditions into one or more groups, and the "
 37                     "second is a Boolean to indicate whether a referenced Condition "
 38                     "is negated. An example shows how ConditionListType and these "
 39                     "two additional properties provide a unique representation of a "
 40                     "set of PolicyConditions in either DNF or CNF. \n"
 41                     "\n"
 42                     "Suppose we have a PolicyRule that aggregates five "
 43 krisbash 1.1        "PolicyConditions C1 through C5, with the following values in "
 44                     "the properties of the five PolicyConditionInPolicyRule "
 45                     "associations: \n"
 46                     "C1: GroupNumber = 1, ConditionNegated = FALSE \n"
 47                     "C2: GroupNumber = 1, ConditionNegated = TRUE \n"
 48                     "C3: GroupNumber = 1, ConditionNegated = FALSE \n"
 49                     "C4: GroupNumber = 2, ConditionNegated = FALSE \n"
 50                     "C5: GroupNumber = 2, ConditionNegated = FALSE \n"
 51                     "\n"
 52                     "If ConditionListType = DNF, then the overall condition for the "
 53                     "PolicyRule is: \n"
 54                     "(C1 AND (NOT C2) AND C3) OR (C4 AND C5) \n"
 55                     "\n"
 56                     "On the other hand, if ConditionListType = CNF, then the "
 57                     "overall condition for the PolicyRule is: \n"
 58                     "(C1 OR (NOT C2) OR C3) AND (C4 OR C5) \n"
 59                     "\n"
 60                     "In both cases, there is an unambiguous specification of the "
 61                     "overall condition that is tested to determine whether to "
 62                     "perform the PolicyActions associated with the PolicyRule. \n"
 63                     "\n"
 64 krisbash 1.1        "PolicyRule instances may also be used to aggregate other "
 65                     "PolicyRules and/or PolicyGroups. When used in this way to "
 66                     "implement nested rules, the conditions of the aggregating rule "
 67                     "apply to the subordinate rules as well. However, any side "
 68                     "effects of condition evaluation or the execution of actions "
 69                     "MUST NOT affect the result of the evaluation of other "
 70                     "conditions evaluated by the rule engine in the same evaluation "
 71                     "pass. That is, an implementation of a rule engine MAY evaluate "
 72                     "all conditions in any order before applying the priority and "
 73                     "determining which actions are to be executed." )]
 74              class CIM_PolicyRule : CIM_PolicySet {
 75              
 76                    [Key, Description ( "The scoping System\'s CreationClassName." ), 
 77                     MaxLen ( 256 ), 
 78                     Propagated ( "CIM_System.CreationClassName" )]
 79                 string SystemCreationClassName;
 80              
 81                    [Key, Description ( "The scoping System\'s Name." ), 
 82                     MaxLen ( 256 ), 
 83                     Propagated ( "CIM_System.Name" )]
 84                 string SystemName;
 85 krisbash 1.1 
 86                    [Key, Description ( 
 87                        "CreationClassName indicates the name of the class or the "
 88                        "subclass used in the creation of an instance. When used "
 89                        "with the other key properties of this class, this "
 90                        "property allows all instances of this class and its "
 91                        "subclasses to be uniquely identified." ), 
 92                     MaxLen ( 256 )]
 93                 string CreationClassName;
 94              
 95                    [Key, Description ( "A user-friendly name of this PolicyRule." ), 
 96                     MaxLen ( 256 )]
 97                 string PolicyRuleName;
 98              
 99                    [Description ( 
100                        "Indicates whether the list of PolicyConditions "
101                        "associated with this PolicyRule is in disjunctive normal "
102                        "form (DNF), conjunctive normal form (CNF), or has no "
103                        "conditions (i.e., is an UnconditionalRule) and is "
104                        "automatically evaluated to \"True.\" The default value "
105                        "is 1 (\"DNF\")." ), 
106 krisbash 1.1        ValueMap { "0", "1", "2" }, 
107                     Values { "Unconditional Rule", "DNF", "CNF" }]
108                 uint16 ConditionListType = 1;
109              
110                    [Description ( 
111                        "A free-form string that can be used to provide "
112                        "guidelines on how this PolicyRule should be used." )]
113                 string RuleUsage;
114              
115                    [Deprecated { "CIM_PolicySetComponent.Priority" }, 
116                     Description ( 
117                        "PolicyRule.Priority is deprecated and replaced by "
118                        "providing the priority for a rule (and a group) in the "
119                        "context of the aggregating PolicySet instead of the "
120                        "priority being used for all aggregating PolicySet "
121                        "instances. Thus, the assignment of priority values is "
122                        "much simpler. \n"
123                        "\n"
124                        "A non-negative integer for prioritizing this Policy Rule "
125                        "relative to other Rules. A larger value indicates a "
126                        "higher priority. The default value is 0." )]
127 krisbash 1.1    uint16 Priority = 0;
128              
129                    [Deprecated { "No value" }, 
130                     Description ( 
131                        "A flag indicating that the evaluation of the Policy "
132                        "Conditions and execution of PolicyActions (if the "
133                        "Conditions evaluate to TRUE) is required. The evaluation "
134                        "of a PolicyRule MUST be attempted if the Mandatory "
135                        "property value is TRUE. If the Mandatory property is "
136                        "FALSE, then the evaluation of the Rule is \'best effort\' "
137                        "and MAY be ignored." )]
138                 boolean Mandatory;
139              
140                    [Description ( 
141                        "This property gives a policy administrator a way of "
142                        "specifying how the ordering of the PolicyActions "
143                        "associated with this PolicyRule is to be interpreted. "
144                        "Three values are supported: \n"
145                        "o mandatory(1): Do the actions in the indicated order, "
146                        "or don\'t do them at all. \n"
147                        "o recommended(2): Do the actions in the indicated order "
148 krisbash 1.1           "if you can, but if you can\'t do them in this order, do "
149                        "them in another order if you can. \n"
150                        "o dontCare(3): Do them -- I don\'t care about the order. \n"
151                        "The default value is 3 (\"DontCare\")." ), 
152                     ValueMap { "1", "2", "3" }, 
153                     Values { "Mandatory", "Recommended", "Dont Care" }]
154                 uint16 SequencedActions = 3;
155              
156                    [Description ( 
157                        "ExecutionStrategy defines the strategy to be used in "
158                        "executing the sequenced actions aggregated by this "
159                        "PolicyRule. There are three execution strategies: \n"
160                        "\n"
161                        "Do Until Success - execute actions according to "
162                        "predefined order, until successful execution of a single "
163                        "action. \n"
164                        "Do All - execute ALL actions which are part of the "
165                        "modeled set, according to their predefined order. "
166                        "Continue doing this, even if one or more of the actions "
167                        "fails. \n"
168                        "Do Until Failure - execute actions according to "
169 krisbash 1.1           "predefined order, until the first failure in execution "
170                        "of an action instance." ), 
171                     ValueMap { "1", "2", "3" }, 
172                     Values { "Do Until Success", "Do All", "Do Until Failure" }]
173                 uint16 ExecutionStrategy;
174              
175              
176              };

ViewCVS 0.9.2