(file) Return to CIM_PolicyRule.mof CVS log (file) (dir) Up to [Pegasus] / pegasus / Schemas / CIM231 / DMTF / Policy

Diff for /pegasus/Schemas/CIM231/DMTF/Policy/CIM_PolicyRule.mof between version 1.1.2.1 and 1.1.2.2

version 1.1.2.1, 2012/01/24 13:50:28 version 1.1.2.2, 2012/02/15 17:46:46
Line 0 
Line 1 
   // Copyright (c) 2005 DMTF.  All rights reserved.
      [Version ( "2.7.0" ),
       UMLPackagePath ( "CIM::Policy" ),
       Description (
          "The central class used for representing the \'If Condition "
          "then Action\' semantics of a policy rule. A PolicyRule "
          "condition, in the most general sense, is represented as either "
          "an ORed set of ANDed conditions (Disjunctive Normal Form, or "
          "DNF) or an ANDed set of ORed conditions (Conjunctive Normal "
          "Form, or CNF). Individual conditions may either be negated "
          "(NOT C) or unnegated (C). The actions specified by a "
          "PolicyRule are to be performed if and only if the PolicyRule "
          "condition (whether it is represented in DNF or CNF) evaluates "
          "to TRUE. \n"
          "\n"
          "The conditions and actions associated with a PolicyRule are "
          "modeled, respectively, with subclasses of PolicyCondition and "
          "PolicyAction. These condition and action objects are tied to "
          "instances of PolicyRule by the PolicyConditionInPolicyRule and "
          "PolicyActionInPolicyRule aggregations. \n"
          "\n"
          "A PolicyRule may also be associated with one or more policy "
          "time periods, indicating the schedule according to which the "
          "policy rule is active and inactive. In this case it is the "
          "PolicySetValidityPeriod aggregation that provides this "
          "linkage. \n"
          "\n"
          "The PolicyRule class uses the property ConditionListType, to "
          "indicate whether the conditions for the rule are in DNF "
          "(disjunctive normal form), CNF (conjunctive normal form) or, "
          "in the case of a rule with no conditions, as an "
          "UnconditionalRule. The PolicyConditionInPolicyRule aggregation "
          "contains two additional properties to complete the "
          "representation of the Rule\'s conditional expression. The "
          "first of these properties is an integer to partition the "
          "referenced PolicyConditions into one or more groups, and the "
          "second is a Boolean to indicate whether a referenced Condition "
          "is negated. An example shows how ConditionListType and these "
          "two additional properties provide a unique representation of a "
          "set of PolicyConditions in either DNF or CNF. \n"
          "\n"
          "Suppose we have a PolicyRule that aggregates five "
          "PolicyConditions C1 through C5, with the following values in "
          "the properties of the five PolicyConditionInPolicyRule "
          "associations: \n"
          "C1: GroupNumber = 1, ConditionNegated = FALSE \n"
          "C2: GroupNumber = 1, ConditionNegated = TRUE \n"
          "C3: GroupNumber = 1, ConditionNegated = FALSE \n"
          "C4: GroupNumber = 2, ConditionNegated = FALSE \n"
          "C5: GroupNumber = 2, ConditionNegated = FALSE \n"
          "\n"
          "If ConditionListType = DNF, then the overall condition for the "
          "PolicyRule is: \n"
          "(C1 AND (NOT C2) AND C3) OR (C4 AND C5) \n"
          "\n"
          "On the other hand, if ConditionListType = CNF, then the "
          "overall condition for the PolicyRule is: \n"
          "(C1 OR (NOT C2) OR C3) AND (C4 OR C5) \n"
          "\n"
          "In both cases, there is an unambiguous specification of the "
          "overall condition that is tested to determine whether to "
          "perform the PolicyActions associated with the PolicyRule. \n"
          "\n"
          "PolicyRule instances may also be used to aggregate other "
          "PolicyRules and/or PolicyGroups. When used in this way to "
          "implement nested rules, the conditions of the aggregating rule "
          "apply to the subordinate rules as well. However, any side "
          "effects of condition evaluation or the execution of actions "
          "MUST NOT affect the result of the evaluation of other "
          "conditions evaluated by the rule engine in the same evaluation "
          "pass. That is, an implementation of a rule engine MAY evaluate "
          "all conditions in any order before applying the priority and "
          "determining which actions are to be executed." )]
   class CIM_PolicyRule : CIM_PolicySet {
   
         [Key, Description ( "The scoping System\'s CreationClassName." ),
          MaxLen ( 256 ),
          Propagated ( "CIM_System.CreationClassName" )]
      string SystemCreationClassName;
   
         [Key, Description ( "The scoping System\'s Name." ),
          MaxLen ( 256 ),
          Propagated ( "CIM_System.Name" )]
      string SystemName;
   
         [Key, Description (
             "CreationClassName indicates the name of the class or the "
             "subclass used in the creation of an instance. When used "
             "with the other key properties of this class, this "
             "property allows all instances of this class and its "
             "subclasses to be uniquely identified." ),
          MaxLen ( 256 )]
      string CreationClassName;
   
         [Key, Description ( "A user-friendly name of this PolicyRule." ),
          MaxLen ( 256 )]
      string PolicyRuleName;
   
         [Description (
             "Indicates whether the list of PolicyConditions "
             "associated with this PolicyRule is in disjunctive normal "
             "form (DNF), conjunctive normal form (CNF), or has no "
             "conditions (i.e., is an UnconditionalRule) and is "
             "automatically evaluated to \"True.\" The default value "
             "is 1 (\"DNF\")." ),
          ValueMap { "0", "1", "2" },
          Values { "Unconditional Rule", "DNF", "CNF" }]
      uint16 ConditionListType = 1;
   
         [Description (
             "A free-form string that can be used to provide "
             "guidelines on how this PolicyRule should be used." )]
      string RuleUsage;
   
         [Deprecated { "CIM_PolicySetComponent.Priority" },
          Description (
             "PolicyRule.Priority is deprecated and replaced by "
             "providing the priority for a rule (and a group) in the "
             "context of the aggregating PolicySet instead of the "
             "priority being used for all aggregating PolicySet "
             "instances. Thus, the assignment of priority values is "
             "much simpler. \n"
             "\n"
             "A non-negative integer for prioritizing this Policy Rule "
             "relative to other Rules. A larger value indicates a "
             "higher priority. The default value is 0." )]
      uint16 Priority = 0;
   
         [Deprecated { "No Value" },
          Description (
             "A flag indicating that the evaluation of the Policy "
             "Conditions and execution of PolicyActions (if the "
             "Conditions evaluate to TRUE) is required. The evaluation "
             "of a PolicyRule MUST be attempted if the Mandatory "
             "property value is TRUE. If the Mandatory property is "
             "FALSE, then the evaluation of the Rule is \'best effort\' "
             "and MAY be ignored." )]
      boolean Mandatory;
   
         [Description (
             "This property gives a policy administrator a way of "
             "specifying how the ordering of the PolicyActions "
             "associated with this PolicyRule is to be interpreted. "
             "Three values are supported: \n"
             "o mandatory(1): Do the actions in the indicated order, "
             "or don\'t do them at all. \n"
             "o recommended(2): Do the actions in the indicated order "
             "if you can, but if you can\'t do them in this order, do "
             "them in another order if you can. \n"
             "o dontCare(3): Do them -- I don\'t care about the order. \n"
             "The default value is 3 (\"DontCare\")." ),
          ValueMap { "1", "2", "3" },
          Values { "Mandatory", "Recommended", "Dont Care" }]
      uint16 SequencedActions = 3;
   
         [Description (
             "ExecutionStrategy defines the strategy to be used in "
             "executing the sequenced actions aggregated by this "
             "PolicyRule. There are three execution strategies: \n"
             "\n"
             "Do Until Success - execute actions according to "
             "predefined order, until successful execution of a single "
             "action. \n"
             "Do All - execute ALL actions which are part of the "
             "modeled set, according to their predefined order. "
             "Continue doing this, even if one or more of the actions "
             "fails. \n"
             "Do Until Failure - execute actions according to "
             "predefined order, until the first failure in execution "
             "of an action instance." ),
          ValueMap { "1", "2", "3" },
          Values { "Do Until Success", "Do All", "Do Until Failure" }]
      uint16 ExecutionStrategy;
   
   
   };


Legend:
Removed from v.1.1.2.1  
changed lines
  Added in v.1.1.2.2

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2