(file) Return to System27_Diagnostics.mof CVS log (file) (dir) Up to [Pegasus] / pegasus / Schemas / CIMPrelim271

   1 karl  1.1 // ===================================================================
   2           // Title:       System Diagnostics 2.7
   3           // Filename:    System27_Diagnostics.mof
   4           // Version:     2.7.1
   5           // Release:     Preliminary 
   6           // Date:        November 12 2002
   7           // ===================================================================
   8           // Copyright 2002 Distributed Management Task Force, Inc. (DMTF).
   9           // All rights reserved.  
  10           // DMTF is a not-for-profit association of industry members dedicated 
  11           // to promoting enterprise and systems management and interoperability. 
  12           // DMTF specifications and documents may be reproduced for uses
  13           // consistent with this purpose by members and non-members, 
  14           // provided that correct attribution is given. 
  15           // As DMTF specifications may be revised from time to time, 
  16           // the particular version and release date should always be noted.
  17           //
  18           // Implementation of certain elements of this standard or proposed 
  19           // standard may be subject to third party patent rights, including 
  20           // provisional patent rights (herein "patent rights"). DMTF makes 
  21           // no representations to users of the standard as to the existence 
  22 karl  1.1 // of such rights, and is not responsible to recognize, disclose, or
  23           // identify any or all such third party patent right, owners or 
  24           // claimants, nor for any incomplete or inaccurate identification or 
  25           // disclosure of such rights, owners or claimants. DMTF shall have no 
  26           // liability to any party, in any manner or circumstance, under any 
  27           // legal theory whatsoever, for failure to recognize, disclose, or 
  28           // identify any such third party patent rights, or for such party's
  29           // reliance on the standard or incorporation thereof in its product, 
  30           // protocols or testing procedures. DMTF shall have no liability to 
  31           // any party implementing such standard, whether such implementation 
  32           // is foreseeable or not, nor to any patent owner or claimant, and shall 
  33           // have no liability or responsibility for costs or losses incurred if 
  34           // a standard is withdrawn or modified after publication, and shall be
  35           // indemnified and held harmless by any party implementing the 
  36           // standard from any and all claims of infringement by a patent owner 
  37           // for such implementations.
  38           //
  39           // For information about patents held by third-parties which have 
  40           // notified the DMTF that, in their opinion, such patent may relate to 
  41           // or impact implementations of DMTF standards, visit 
  42           // http://www.dmtf.org/about/policies/disclosures.php.
  43 karl  1.1 // ===================================================================
  44           // Description: The System Model defines system related management 
  45           //              concepts. This file defines the specific concepts for
  46           //              Diagnostics.
  47           //
  48           //              The object classes below are listed in an order that
  49           //              avoids forward references. Required objects, defined 
  50           //              by other working groups, are omitted.
  51           // ==================================================================
  52           // Change Log for v2.7.1
  53           // CR920 - Correct ModelCorrespondence property names in 
  54           //         DiagnosticServiceCapabilities, and add missing parenthesis
  55           //         in the Description for DiagnosticTest.ClearResult
  56           //
  57           // Change Log for v2.7
  58           // CR725 - Add the following 3 properties LoopControlParameter,
  59           //         LoopControl, and OtherLoopControlDescription to 
  60           //         DiagnosticSetting and DiagnosticResult
  61           // CR726 - Add LogOptions, OtherLogOptionDescriptions to 
  62           //         DiagnosticSetting and DiagnosticResult
  63           //         Deprecate ReportSoftErrors and ReportStatusMessages from
  64 karl  1.1 //         DiagnosticSetting and DiagnosticResult
  65           // CR749 - Deprecate DiagnosticTestInPackage, DiagnosticResultInPackage,
  66           //         and DiagnosticResult.IsPackage
  67           // CR764 - Add DiagnosticService
  68           //       - Change subclassing of DiagnosticTest from Service to 
  69           //         DiagnosticService
  70           //       - Deprecation DiagnosticTest.ResourcesUsed and DiagnosticTest.
  71           //         IsInUse
  72           //       - Fix the Class Name in the ModelCorrespondence string for
  73           //         DiagnosticTest.OtherCharacteristicDescription
  74           // CR765 - Update the the DiagnoticTest and DiagnosticResults 
  75           //         LogOptions property
  76           //       - Modify the description of DiagnosticResults.TestResults
  77           // CR766 - Add the following properties to DiagnosticResults:
  78           //         ErrorCode, ErrorCount, LoopsFailed, LoopsPassed
  79           // CR778 - Add property ResultPersistence to DiagnosticSetting and
  80           //         DiagnosticResults
  81           // CR779 - Add DiagnosticService.RunDiagnostic()
  82           //       - Deprecate DiagnosticTest.RunTest()
  83           //       - Deprecate DiagnosticTest.DiscontinueTest()
  84           //       - Update class description for DiagnosticTest
  85 karl  1.1 // CR780 - Add DiagnosticServiceCapabilities
  86           // CR781 - Add DiagnosticServiceRecord
  87           // CR887 - Fix the DiagnosticService.RunDiagnostic return range for
  88           //         Method Reserved. 
  89           // CR888 - Correct DateTime format in the description of 
  90           //         DiagnosticResult.TestResults
  91           // CR889 - For consistency change the deprecation statement in 
  92           //         RunTest to reference the class where the RunDiagnostic 
  93           //         is defined (DiagnosticService).
  94           // ===================================================================
  95           
  96           #pragma locale ("en_US")
  97           
  98           
  99           // ==================================================================
 100           // DiagnosticSetting
 101           // ==================================================================
 102           [Version ("2.7.0"), Description (
 103               "Specific diagnostic test parameters and execution "
 104               "instructions are defined by subclassing and/or instantiating "
 105               "the DiagnosticSetting object. To provide more detailed "
 106 karl  1.1     "Settings for a type of test (i.e., additional properties), "
 107               "subclassing is appropriate. When only the generic Setting "
 108               "information is required, instantiation of the Diagnostic"
 109               "Setting class may suffice.\n"
 110               "Data from DiagnosticSetting is captured in DiagnosticResult. "
 111               "When RunTest starts execution the settings, which are time "
 112               "sensitive, should be evaluated and captured. This is suggested "
 113               "since the DiagnosticSetting object can be modified at any time, "
 114               "and therefore the current test settings could be lost.") ]
 115           class CIM_DiagnosticSetting : CIM_Setting {
 116               
 117               [Key, MaxLen (256), Override ("SettingID"), 
 118                   Description (
 119                   "The identifier by which the DiagnosticSetting object is " 
 120                   "known and uniquely named. One possible naming scheme is " 
 121                   "to name the SettingID using the DiagnosticTest's CreationClass"
 122                   "Name and DiagnosticName, plus a GUID (Globally Unique "
 123                   "IDentifier).\n" 
 124                   "  Note that at an enterprise level, there is typically not a " 
 125                   "one to one mapping between a DiagnosticSetting and all copies " 
 126                   "of the DiagnosticTest.  The proposed naming convention will" 
 127 karl  1.1         "scale to the entrprise level.") ]
 128               string SettingID;
 129               
 130               [Description (
 131                   "Sets the level of warning messages to be logged. If for "
 132                   "example no warning information is required, the level "
 133                   "would be set to \"No Warnings\" (value=0). Using \"Missing "
 134                   "Resources\" (value=1) will cause warnings to be generated "
 135                   "when required resources or hardware are not found. Setting "
 136                   "the value to 2, \"Testing Impacts\", results in both "
 137                   "missing resources and 'test impact' warnings (for example, "
 138                   "multiple retries required) to be reported."), 
 139                   ValueMap {"0", "1", "2", "3"},
 140                   Values {"No Warnings", "Missing Resources", 
 141                       "Testing Impacts", "All Warnings"},
 142                   Write]
 143               uint16 TestWarningLevel;
 144               
 145               [Experimental, Description (
 146                   "The LogOptions property indicates that particular types "
 147                   "of test message should be logged. Each of these log options "
 148 karl  1.1         "can co-exist with the others. Note that the default "
 149                   "behavior is for the option to be off/disabled. \n"
 150                   "The description for each log option is given below:"
 151                   "\n"
 152                   "* \"Unknown\" (value = 0) \n" 
 153                   "* \"Other\" (value = 1): Details in OtherLogOptions"
 154                   "Description. \n"
 155                   "* \"TestErrors\" (value = 2): Enable sending test "
 156                   "errors. \n"  
 157                   "* \"SoftErrors\" (value = 3):  Enable sending soft "
 158                   "errors. Examples of soft errors are: 'not enough memory', "
 159                   "'driver IOCTL not implemented', or 'known defect'. \n"  
 160                   "* \"Status\" (value = 4): Enables sending status " 
 161                   "messages.  Examples of status messages are reports of "
 162                   "state information for the test, driver, device, or "
 163                   "system. \n" 
 164                   "* \"Warnings\" (value = 5): Enables sending warning "
 165                   "messages.  Refer to the property, TestWarningLevel, for "
 166                   "more information. \n"
 167                   "* \"FRUInformation\" (value = 6): Enables sending FRU "
 168                   "information messages. This may be any information about "
 169 karl  1.1         "the device(s) under test, and/or the field replaceable units "
 170                   "(FRUs) that contain them. Some examples of FRU information "
 171                   " and their suggested formats are listed below: \n"
 172                   "1) The logical location of the device. The format and "
 173                   "contents of this property is device dependent. Examples are: "
 174                   "SCSI ID, LPTx.\n 2) The physical location of the device. The "
 175                   "format and contents of this property is device dependent. "
 176                   "Examples are: PCI Slot Number, Dimm#.\n 3) Vendor specific "
 177                   "Field Replaceable Unit identification for the device tested. "
 178                   "This FRU ordering information should be identical to the "
 179                   "FRUNumber property of the CIM_FRU class if it exists. If "
 180                   "the CIM_FRU class or the FRUNumber property is not populated "
 181                   "for this device, the vendor may supply the information if it "
 182                   "can be accurately determined. FRUNumber refers to the "
 183                   "vendor's code for the field replaceable unit that contains "
 184                   "the failing device. This vendor specific code may assume "
 185                   "any form, but the preferred convention would copy the "      
 186                   "value of CIM_FRU.FRUNumber property exactly. \n"
 187                   "* \"Debug\" (value = 7): Enables sending "
 188                   "debug messages. These messages are vendor specific. \n"
 189                   "* \"Statistics\" (value = 8): Enables sending "
 190 karl  1.1         "statistics messages. An example of statistics would "
 191                   "be packets sent per second. \n"
 192                   "* \"Actions\" (value = 9): Enables sending corrective "
 193                   "action and instructional messages to guide service personnel. "
 194                   "For example, a numbered list of steps to take when it "
 195                   "has been determined that a device needs to be fixed or "
 196                   "replaced. Another example would be a prioritized "
 197                   "list of suggested actions to take to isolate a failure. "
 198                   "When ordering steps or prioritizing actions a number "
 199                   "should proceed the text. Ex: '1) Do this first 2) next' \n"
 200                   "* \"Configuration\" (value = 10): Enables sending "
 201                   "messages that contain information about the software "
 202                   "stack and other configuration information needed to "
 203                   "reproduce the test's runtime environment. " 
 204                   "For example, the name of all the critical "
 205                   "software elements controlling the device under test, "
 206                   "with version information. Each configuration message should "
 207                   "have the following common format: Element name; element "
 208                   "type; manufacturers name; version.  Ex: Miniport driver; "
 209                   "SCSI; Intel; Version 1.2.\n The relevant software elements "
 210                   "that should be included are: firmware, device drivers, filter "
 211 karl  1.1         "and protocol drivers, and possibly, device management "
 212                   "services. This information may be used by the vendor to "
 213                   "reproduce the error at a repair depot, isolate between "
 214                   "software configuration and hardware problems, or possibly, "
 215                   "collect product reliability data in the field. \n"
 216                   "* \"Subtests\" (value = 11): Enables sending a test summary "
 217                   "report message upon completion of each subtest and each "
 218                   "loop iteration. These summary reports should state whether "
 219                   "the individual subtest or iteration passed or failed and "
 220                   "list relevant error codes and respective error counts. \n"
 221                   "* \"References\" (value = 12): Enables sending "
 222                   "a message that records an object path reference. This "
 223                   "reference could be used to record some keys contained in "
 224                   "a reference such as the ID of the device that was tested."),
 225                   ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", 
 226                       "10", "11", "12"}, 
 227                   Values{"Unknown", "Other", "TestErrors", "SoftErrors",
 228                       "Status", "Warnings", "FRUInformation",
 229                       "Debug", "Statistics", "Actions",
 230                       "Configuration", "Subtests", "References"},
 231                   ModelCorrespondence {
 232 karl  1.1             "CIM_DiagnosticSetting.OtherLogOptionsDescriptions"}]
 233               uint16 LogOptions[];
 234            
 235               [Experimental, Description (
 236                   "Provides additional information regarding the types "
 237                   "of test messages that are logged when the property " 
 238                   "LogOptions includes the value 1 (\"Other\"). "),
 239                   ModelCorrespondence {"CIM_DiagnosticSetting.LogOptions"} ]
 240               string OtherLogOptionsDescriptions[];
 241           
 242               [Deprecated {"CIM_DiagnosticSetting.LogOptions"}, Description (
 243                   "When this flag is true, the diagnostic test will report "
 244                   "'soft errors'. In this context, a soft error is a message "
 245                   "from the diagnostic reporting a known defect in the "
 246                   "hardware or driver configuration, or execution "
 247                   "environment.  Examples are: 'Not enough memory', "
 248                   "'Driver IOCTL not implemented', 'Video RAM compare "
 249                   "failed during polygon fill test (A known defect in the "
 250                   "video chipset)', etc."), Write ] 
 251               boolean ReportSoftErrors;
 252            
 253 karl  1.1     [Deprecated {"CIM_DiagnosticSetting.LogOptions"}, Description (
 254                   "When this flag is true, the diagnostic test will report "
 255                   "'status messages'. In this context, a status message "
 256                   "indicates that the diagnostic code is at a checkpoint. "
 257                   "Examples are: \"Completion of phase 1\", \"Complex "
 258                   "pattern\", etc."), Write ] 
 259               boolean ReportStatusMessages; 
 260           
 261               [Description (
 262                   "When this flag is true, the test will halt after finding "
 263                   "the first error."),
 264                   Write]
 265               boolean HaltOnError;
 266               
 267               [Description (
 268                   "When this flag is true, the test software should attempt "
 269                   "to run in an accelerated fashion either by reducing the "
 270                   "coverage or number of tests performed."), 
 271                   Write]
 272               boolean QuickMode;
 273               
 274 karl  1.1     [Units ("Percent"), MinValue (0), MaxValue (100), 
 275                   Description (
 276                   "Requests the diagnostic software to reduce test coverage "
 277                   "to the specified percentage.  For example, a hard drive "
 278                   "scan test could be asked to run at 50%. The most "
 279                   "effective way to accomplish this is for the test software "
 280                   "to scan every other track, as opposed to only scanning the "
 281                   "first half of a drive. It is assumed that the effectiveness "
 282                   "of the test is impacted proportional to the percentage of "
 283                   "testing requested. Permissible values for this property "
 284                   "range from 0 to 100. \n"
 285                   "This property may not be applicable to all tests.  If it "
 286                   "can be set for a test, the value 7 (\"Supports PercentOf"
 287                   "TestCoverage\") should be entered into the DiagnosticTest's "
 288                   "Characteristics array."), 
 289                   ModelCorrespondence {"CIM_DiagnosticTest.Characteristics"}, 
 290                   Write]
 291               uint8 PercentOfTestCoverage;
 292               
 293               [Experimental, Description (
 294                   "Array entries contain parameters corresponding to "
 295 karl  1.1         "entries in the LoopControl array, limiting the number "
 296                   "of times a test should be repeated with a single "
 297                   "invocation of RunTest by a CIM client."),
 298                   ArrayType ("Indexed"),
 299                   ModelCorrespondence {"CIM_DiagnosticSetting.LoopControl"},
 300                   Write ]
 301               string LoopControlParameter[];
 302            
 303               [Experimental, Description (
 304                   "LoopControl, used in conjunction with LoopControlParameter, "
 305                   "sets one or more loop control mechanisms that limits the "
 306                   "number of times a test should be repeated with a single "
 307                   "invocation of RunTest by a CIM client. There is an "
 308                   "array-positional correspondence between LoopControl "
 309                   "entries & LoopControlParameter entries. The entries in "
 310                   "these coupled arrays of loop controls can be used in a "
 311                   "logical OR fashion to achieve the desired loop control. "
 312                   "For example, if a client wants to loop a test 1000 times, "
 313                   "but quit if a timer runs out, it could set both controls "
 314                   "into the LoopControl array as two separate entries in each "
 315                   "array. The looping test will terminate when the first of the "
 316 karl  1.1         "two ORed conditions are met. \n"
 317                   "The descriptions for each loop control are given below: \n"
 318                   "\n"
 319                   "  Unknown (= 0) \n"
 320                   "  Other (= 1) : Additional detail may be found in "
 321                   "OtherLoopControlDescription. \n"
 322                   "  Continuous (= 2) : The corresponding LoopControl"
 323                   "Parameter is ignored and the test will execute "
 324                   "continuously. Tests that use this control should also " 
 325                   "support DiscontinueTest. \n" 
 326                   "  Count (= 3) : The corresponding LoopControlParameter "
 327                   "is interpreted as a loop count (uint32), indicating "
 328                   "the number of times the test should be repeated with "
 329                   "a single invocation of RunTest by a CIM client. \n"
 330                   "  Timer (= 4) : The corresponding LoopControlParameter "
 331                   "is interpreted as an initial value (uint32) for a test "
 332                   "loop timer, given in seconds.  The looping is "
 333                   "terminated when this timer has lapsed. \n"
 334                   "  ErrorCount (= 5) : The corresponding LoopControl"
 335                   "Parameter is interpreted as an error count (uint32). "
 336                   "The loop will continue until the number of errors that "
 337 karl  1.1         "have occurred exceeds the ErrorCount. Note: the "
 338                   "ErrorCount only refers to hard test errors; it does not "
 339                   "include soft errors or warnings. "),
 340                   ArrayType ("Indexed"),
 341                   ValueMap {"0", "1", "2", "3", "4", "5"},
 342                   Values{"Unknown", "Other", "Continuous", "Count", "Timer", 
 343                       "ErrorCount"},
 344                   ModelCorrespondence {
 345                       "CIM_DiagnosticSetting.LoopControlParameter",
 346                       "CIM_DiagnosticSetting.OtherLoopControlDescription"} ]
 347               uint16 LoopControl[];
 348            
 349               [Experimental, Description (
 350                   "Provides additional information for LoopControl when "
 351                   "its value is set to 1 ('Other')."),
 352                   ModelCorrespondence {
 353                       "CIM_DiagnosticSetting.LoopControlParameter"},
 354                   Write ]
 355               string OtherLoopControlDescriptions;
 356           
 357               [Write, Experimental, Description (
 358 karl  1.1         "The ResultsPersistence property is a directive from a test "
 359                   "client to a test provider.  It allows the client to specify "
 360                   "to the diagnostic service provider how long to persist an "
 361                   "instance of a DiagnosticResult.  The timeout period starts "
 362                   "upon completion of the diagnostic started by the diagnostic "
 363                   "service.\n"
 364                   "Here is a summary of the choices for ResultPersistence"
 365                   "Option: \n"
 366                   "\"No Persistence\"            (value =  0) \n" 
 367                   "Setting the timer to zero tells the provider not to persist "
 368                   "the diagnostic result.  Responsibility for the final "
 369                   "disposition of the diagnostic result is inherently "
 370                   "satisfied. \n"
 371                   "\"Persist With TimeOut\"      (0 < value < 0xFFFFFFFF): \n"
 372                   "Setting the ResultPersistenceOption to a integer will "
 373                   "cause the DiagnosticResult to be persisted for that number "
 374                   "of seconds. At the end of that time, the DiagnosticResult "
 375                   "will be automatically deleted by the diagnostic service "
 376                   "provider.  \n"
 377                   "\"Persist Forever\"          (value = 0xFFFFFFFF): \n"
 378                   "By setting the timeout value to the very large value, "
 379 karl  1.1         "0xFFFFFFFF, the provider shall persist results forever. "
 380                   "In this case, the provider will persist the results in the "
 381                   "CIMOM's repository and the client SHALL bear responsibility "
 382                   "for deleting them. This was the old protocol. In an extreme "
 383                   "case, results could be persisted forever, if neither client " 
 384                   "nor provider deletes them."),
 385                   Units("Seconds") ]
 386               uint32 ResultPersistence;
 387            };
 388           
 389           
 390           // ==================================================================
 391           // DiagnosticResult
 392           // ==================================================================
 393           [Version ("2.7.0"), Description (
 394               "When a DiagnosticTest Service is running, test results "
 395               "are reported using a DiagnosticResult object, or one of its "
 396               "subclasses. A DiagnosticTest may be running because its "
 397               "Service is Started or due to an invocation of the RunTest "
 398               "method. DiagnosticResults are related to their Test via an "
 399               "instance of the DiagnosticResultsForMSE association.\n"
 400 karl  1.1     "For every running of DiagnosticTest, a new instance of "
 401               "DiagnosticResult, or one of it's subclasses should be created.") ]
 402           class CIM_DiagnosticResult {
 403               
 404               [Propagated("CIM_DiagnosticTest.CreationClassName"), 
 405                   Key, MaxLen (256),
 406                   Description ("The scoping Test's CreationClassName.") ]
 407               string DiagnosticCreationClassName;
 408               
 409               [Propagated("CIM_DiagnosticTest.Name"),
 410                   Key, MaxLen (256),
 411                   Description ("The scoping Test's Name.") ]
 412               string DiagnosticName;
 413               
 414               [Propagated ("CIM_DiagnosticTest.SystemCreationClassName"),
 415                   Key, MaxLen (256),
 416                   Description ("The scoping Test's SystemCreationClassName.") ]
 417               string DiagSystemCreationClassName;
 418               
 419               [Propagated ("CIM_DiagnosticTest.SystemName"), 
 420                   Key, MaxLen (256),
 421 karl  1.1         Description ("The scoping Test's SystemName.") ]
 422               string DiagSystemName;
 423               
 424               [Key, MaxLen (1024), 
 425                   Description (
 426                       "The Unique identifier for an instance of Diagnostic"
 427                       "Results.") ]
 428               string ExecutionID; 
 429               
 430               [Description (
 431                   "The date and time the result was last updated.") ]
 432               datetime TimeStamp;
 433               
 434               [Deprecated {"No value"}, Description (
 435                   "This property is being deprecated. Tests should be" 
 436                   "grouped at the test level, not by the model. /n"
 437                   "If this property is TRUE, then this DiagnosticResult "
 438                   "summarizes the results from the execution of a packaged "
 439                   "set of DiagnosticTests. The Tests in the package can be "
 440                   "identified by following the DiagnosticResultForTest "
 441                   "association to the test and then using the DiagnosticTest"
 442 karl  1.1         "InPackage aggregation. The individual Results can be "
 443                   "broken out by instantiating DiagnosticResults for the "
 444                   "individual lower level tests and aggregating into the "
 445                   "'summary' Result using the DiagnosticResultInPackage "
 446                   "association.") ]
 447               boolean IsPackage;
 448               
 449               [Description (
 450                   "The date and time  when this test started.") ]
 451               datetime TestStartTime;
 452               
 453               [Description (
 454                   "The date and time when this test completed.") ]
 455               datetime TestCompletionTime;
 456               
 457               [Description (
 458                   "Describes how the test is progressing. For example, if "
 459                   "the test was discontinued, the TestState will be "
 460                   "\"Stopped\" (value=5), or if testing is currently "
 461                   "executing, TestState will be \"In Progress\" (4)."),  
 462                   ValueMap {"0", "1", "2", "3", "4", "5"},
 463 karl  1.1         Values{"Unknown", "Other", "Passed", "Failed", 
 464                       "In Progress", "Stopped"},
 465                   ModelCorrespondence {
 466                       "CIM_DiagnosticResult.OtherStateDescription"} ]
 467               uint16 TestState;
 468               
 469               [Description (
 470                   "When \"Other\" (value=1) is entered in the TestState "
 471                   "property, OtherStateDescription can be used to describe "
 472                   "the test's state."),
 473                   ModelCorrespondence {"CIM_DiagnosticResult.TestState"} ]
 474               string OtherStateDescription;
 475               
 476               [Units ("Seconds"), Description (
 477                   "Estimated number of seconds to perform the Diagnostic"
 478                   "Test indicated by the DiagnosticCreationClassName and "
 479                   "DiagnosticName properties.  After the test has completed, "
 480                   "the actual elapsed time can be determined by subtracting "
 481                   "the TestStartTime from the TestCompletionTime. A similar "
 482                   "property is defined in the association, DiagnosticTest"
 483                   "ForMSE. The difference between the two properties is "
 484 karl  1.1         "that the value stored in the association is a generic "
 485                   "test execution time for the Element and the Test. But, "
 486                   "the value here (in DiagnosticResult) is the estimated "
 487                   "time that this instance with the given settings would "
 488                   "take to run the test.  A CIM Consumer can compare this "
 489                   "value with the value in the association DiagnosticTestForMSE "
 490                   "to get an idea what impact their settings have on test "
 491                   "execution."), 
 492                   ModelCorrespondence {
 493                       "CIM_DiagnosticTestForMSE.EstimatedTimeOfPerforming"} ]
 494               uint32 EstimatedTimeOfPerforming;
 495               
 496               [Description (
 497                   "TestResults stores one or more textual results from the "
 498                   "execution of the DiagnosticTest(s) referenced by the "
 499                   "DiagnosticCreationClassName and DiagnosticName properties. "
 500                   "One entry is considered a cell location in the array. Each "
 501                   "entry is time stamped and contains the following "
 502                   "information, in the following format: \n"
 503                   "LogOption|DateTime|TestName|message_text \n"
 504                   "Where: \n"
 505 karl  1.1         "  LogOption = string identical to the LogOption value " 
 506                   "  in DiagnosticSetting that was used to enable logging "
 507                   "  this message. \n"
 508                   "  CIM DateTime has the following format: "
 509                   "yyyymmddhhmmss.mmmmmmsutc, where \n"
 510                   "  yyyy = year, e.g. 2000 \n"
 511                   "  mm = month (01 - 12) \n"
 512                   "  dd = day (01 - 31) \n" 
 513                   "  hh = hour (00 - 24) \n"
 514                   "  mm = minute (00-59) \n"
 515                   "  ss = second (00-59) \n"
 516                   "  mmmmmm = microsecond (000000-999999) \n"
 517                   "  s = \"+\" or \"-\" indicating the sign of the UTC "
 518                   "correction field \n"
 519                   "  utc = offset from UTC (Universal Coordinated Time) "
 520                   "in minutes \n"
 521                   "  TestName = Internal test name or current internal subtest "
 522                   "name that sent the message.\n"
 523                   "  Textual message = free form string that is the 'test "
 524                   "result'."), 
 525                  ArrayType ("Ordered")]
 526 karl  1.1     string TestResults[];
 527           
 528               [Units ("Percent"), MinValue (0), MaxValue (100), Description (
 529                   "The percentage of the test that has executed thus far, if "
 530                   "the TestState property is set to \"In Progress\" or the "
 531                   "percentage of the complete test that was executed if the "
 532                   "TestState property is set to any of the completed states "
 533                   "(\"Passed\", \"Failed\" or \"Stopped\"). Final results may "
 534                   "be based on less than 100% coverage due to the parameters "
 535                   "defined in DiagnosticSetting (such as QuickMode, "
 536                   "PercentOfTestCoverage or HaltOnError)." ) ]
 537               uint8 PercentComplete;
 538           
 539               [Experimental, Description (
 540                   "If applicable, this string should contain one or more vendor "
 541                   "specific error codes that the diagnostic service detected. "
 542                   "These error codes may be used by the vendor for variety of "
 543                   "purposes such as: fault data base indexing, field service " 
 544                   "trouble ticketing, product quality tracking, part failure "
 545                   "history, etc. Since these codes are for vendor purposes they "
 546                   "may assume any form. Details on suggested use cases will be "
 547 karl  1.1         "left to white papers. The array of error codes has model "
 548                   "correspondence with an ErrorCount array so the number of "
 549                   "errors reported can be analyzed by individual error code."),
 550                   ModelCorrespondence {"CIM_DiagnosticResult.ErrorCount"},
 551                   ArrayType ("Indexed")]
 552               string ErrorCode[];
 553            
 554               [Experimental, Description (
 555                   "Since some tests may detect transient and correctable errors "
 556                   "such as a network diagnostic or memory test, an error count "
 557                   "is useful to indicate the severity of the failure. This "
 558                   "field contains an integer value of the number of errors "
 559                   "detected by the test. The ErrorCount is an array with model "
 560                   "correspondence to ErrorCode so that the test can report an "
 561                   "ErrorCount on each type of error encountered. It is "
 562                   "recommended that hard errors and correctable or recoverable "
 563                   "errors be given different codes so that clients with "
 564                   "knowledge of the error codes can evaluate correctable, "
 565                   "recoverable, and hard errors independently."),
 566                   ModelCorrespondence {"CIM_DiagnosticResult.ErrorCode"},
 567                   ArrayType ("Indexed")]
 568 karl  1.1     uint32 ErrorCount[];
 569            
 570               [Experimental, Description (
 571                   "Since some tests may be looped, it is useful to report how "
 572                   "many iterations passed and failed. This is relevant in "
 573                   "analyzing transitory failures.  For example, if all the "
 574                   "errors occurred in just one of 100 iterations, the device "
 575                   "may be viewed as OK or marginal, to be monitored further "
 576                   "rather then failed. Note: LoopsPassed & LoopsFailed should "
 577                   "add up to the loops completed.") ]
 578               uint32 LoopsFailed;
 579            
 580               [Experimental, Description (
 581                   "Since some tests may be looped, it is useful to report how "
 582                   "many iterations passed and failed. This is relevant in "
 583                   "analyzing transitory failures.  For example if all the "
 584                   "errors occurred in in just one of 100 iterations, the device "
 585                   "may be viewed as OK or marginal, to be monitored further "
 586                   "rather then failed. Note: LoopsPassed & LoopsFailed should "
 587                   "add up to the loops completed.") ]
 588               uint32 LoopsPassed;
 589 karl  1.1 
 590           
 591           // ---------  Properties below here are copied from  ------------------
 592           // ---------  DiagnosticSettings                     ------------------
 593           // Note that the DiagnosticSetting object can be modified at any time,
 594           // and the current test settings can be lost. When RunTest starts 
 595           // execution the settings, which are time sensitive, should be evaluated 
 596           // and captured. 
 597           
 598           
 599               [Description (
 600                   "Sets the level of warning messages to be logged. If for "
 601                   "example no warning information is required, the level "
 602                   "would be set to \"No Warnings\" (value=0). Using \"Missing "
 603                   "Resources\" (value=1) will cause warnings to be generated "
 604                   "when required resources or hardware are not found. Setting "
 605                   "the value to 2, \"Testing Impacts\", results in both "
 606                   "missing resources and 'test impact' warnings (for example, "
 607                   "multiple retries required) to be reported."), 
 608                   ValueMap {"0", "1", "2", "3"},
 609                   Values {"No Warnings", "Missing Resources", 
 610 karl  1.1             "Testing Impacts", "All Warnings"},
 611                   Write]
 612               uint16 TestWarningLevel;
 613               
 614               [Experimental, Description (
 615                   "The LogOptions property indicates that particular types "
 616                   "of test message should be logged. Each of these log options "
 617                   "can co-exist with the others. Note that the default "
 618                   "behavior is for the option to be off/disabled. \n"
 619                   "The description for each log option is given below:"
 620                   "\n"
 621                   "* \"Unknown\" (value = 0) \n" 
 622                   "* \"Other\" (value = 1): Details in OtherLogOptions"
 623                   "Description. \n"
 624                   "* \"TestErrors\" (value = 2): Enable sending test "
 625                   "errors. \n"  
 626                   "* \"SoftErrors\" (value = 3):  Enable sending soft "
 627                   "errors. Examples of soft errors are: 'not enough memory', "
 628                   "'driver IOCTL not implemented', or 'known defect'. \n"  
 629                   "* \"Status\" (value = 4): Enables sending status " 
 630                   "messages.  Examples of status messages are reports of "
 631 karl  1.1         "state information for the test, driver, device, or "
 632                   "system. \n" 
 633                   "* \"Warnings\" (value = 5): Enables sending warning "
 634                   "messages.  Refer to the property, TestWarningLevel, for "
 635                   "more information. \n"
 636                   "* \"FRUInformation\" (value = 6): Enables sending FRU "
 637                   "information messages. This may be any information about "
 638                   "the device(s) under test, and/or the field replaceable units "
 639                   "(FRUs) that contain them. Some examples of FRU information "
 640                   " and their suggested formats are listed below: \n"
 641                   "1) The logical location of the device. The format and "
 642                   "contents of this property is device dependent. Examples are: "
 643                   "SCSI ID, LPTx.\n 2) The physical location of the device. The "
 644                   "format and contents of this property is device dependent. "
 645                   "Examples are: PCI Slot Number, Dimm#.\n 3) Vendor specific "
 646                   "Field Replaceable Unit identification for the device tested. "
 647                   "This FRU ordering information should be identical to the "
 648                   "FRUNumber property of the CIM_FRU class if it exists. If "
 649                   "the CIM_FRU class or the FRUNumber property is not populated "
 650                   "for this device, the vendor may supply the information if it "
 651                   "can be accurately determined. FRUNumber refers to the "
 652 karl  1.1         "vendor's code for the field replaceable unit that contains "
 653                   "the failing device. This vendor specific code may assume "
 654                   "any form, but the preferred convention would copy the "      
 655                   "value of CIM_FRU.FRUNumber property exactly. \n"
 656                   "* \"Debug\" (value = 7): Enables sending "
 657                   "debug messages. These messages are vendor specific. \n"
 658                   "* \"Statistics\" (value = 8): Enables sending "
 659                   "statistics messages. An example of statistics would "
 660                   "be packets sent per second. \n"
 661                   "* \"Actions\" (value = 9): Enables sending corrective "
 662                   "action and instructional messages to guide service personnel. "
 663                   "For example, a numbered list of steps to take when it "
 664                   "has been determined that a device needs to be fixed or "
 665                   "replaced. Another example would be a prioritized "
 666                   "list of suggested actions to take to isolate a failure. "
 667                   "When ordering steps or prioritizing actions a number "
 668                   "should proceed the text. Ex: '1) Do this first 2) next' \n"
 669                   "* \"Configuration\" (value = 10): Enables sending "
 670                   "messages that contain information about the software "
 671                   "stack and other configuration information needed to "
 672                   "reproduce the test's runtime environment. " 
 673 karl  1.1         "For example, the name of all the critical "
 674                   "software elements controlling the device under test, "
 675                   "with version information. Each configuration message should "
 676                   "have the following common format: Element name; element "
 677                   "type; manufacturers name; version.  Ex: Miniport driver; "
 678                   "SCSI; Intel; Version 1.2.\n The relevant software elements "
 679                   "that should be included are: firmware, device drivers, filter "
 680                   "and protocol drivers, and possibly, device management "
 681                   "services. This information may be used by the vendor to "
 682                   "reproduce the error at a repair depot, isolate between "
 683                   "software configuration and hardware problems, or possibly, "
 684                   "collect product reliability data in the field. \n"
 685                   "* \"Subtests\" (value = 11): Enables sending a test summary "
 686                   "report message upon completion of each subtest and each "
 687                   "loop iteration. These summary reports should state whether "
 688                   "the individual subtest or iteration passed or failed and "
 689                   "list relevant error codes and respective error counts. \n"
 690                   "* \"References\" (value = 12): Enables sending "
 691                   "a message that records an object path reference. This "
 692                   "reference could be used to record some keys contained in "
 693                   "a reference such as the ID of the device that was tested."),
 694 karl  1.1         ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", 
 695                       "10", "11", "12"}, 
 696                   Values{"Unknown", "Other", "TestErrors", "SoftErrors",
 697                       "Status", "Warnings", "FRUInformation",
 698                       "Debug", "Statistics", "Actions",
 699                       "Configuration", "Subtests", "References"},
 700                   ModelCorrespondence {
 701                       "CIM_DiagnosticResults.OtherLogOptionsDescriptions"}]
 702               uint16 LogOptions[];
 703            
 704               [Experimental, Description (
 705                   "Provides additional information regarding the types "
 706                   "of test messages that are logged when the property " 
 707                   "LogOptions includes the value 1 (\"Other\"). "),
 708                   ModelCorrespondence {"CIM_DiagnosticResults.LogOptions"} ]
 709               string OtherLogOptionsDescriptions[];
 710           
 711               [Deprecated {"CIM_DiagnosticSetting.LogOptions"}, Description (
 712                   "When this flag is true, the diagnostic test will report "
 713                   "'soft errors'. In this context, a soft error is a message "
 714                   "from the diagnostic reporting a known defect in the "
 715 karl  1.1         "hardware or driver configuration, or execution "
 716                   "environment.  Examples are: 'Not enough memory', "
 717                   "'Driver IOCTL not implemented', 'Video RAM compare "
 718                   "failed during polygon fill test (A known defect in the "
 719                   "video chipset)', etc."), Write ] 
 720               boolean ReportSoftErrors;
 721            
 722               [Deprecated {"CIM_DiagnosticSetting.LogOptions"}, Description (
 723                   "When this flag is true, the diagnostic test will report "
 724                   "'status messages'. In this context, a status message "
 725                   "indicates that the diagnostic code is at a checkpoint. "
 726                   "Examples are: \"Completion of phase 1\", \"Complex "
 727                   "pattern\", etc."), Write ] 
 728               boolean ReportStatusMessages; 
 729           
 730               [Description (
 731                   "When this flag is true, the test will halt after finding "
 732                   "the first error."),
 733                   Write]
 734               boolean HaltOnError;
 735               
 736 karl  1.1     [Description (
 737                   "When this flag is true, the test software should attempt "
 738                   "to run in an accelerated fashion either by reducing the "
 739                   "coverage or number of tests performed."), 
 740                   Write]
 741               boolean QuickMode;
 742               
 743               [Units ("Percent"), MinValue (0), MaxValue (100), 
 744                   Description (
 745                   "Requests the diagnostic software to reduce test coverage "
 746                   "to the specified percentage.  For example, a hard drive "
 747                   "scan test could be asked to run at 50%. The most "
 748                   "effective way to accomplish this is for the test software "
 749                   "to scan every other track, as opposed to only scanning the "
 750                   "first half of a drive. It is assumed that the effectiveness "
 751                   "of the test is impacted proportional to the percentage of "
 752                   "testing requested. Permissible values for this property "
 753                   "range from 0 to 100. \n"
 754                   "This property may not be applicable to all tests.  If it "
 755                   "can be set for a test, the value 7 (\"Supports PercentOf"
 756                   "TestCoverage\") should be entered into the DiagnosticTest's "
 757 karl  1.1         "Characteristics array."), 
 758                   ModelCorrespondence {"CIM_DiagnosticTest.Characteristics"}, 
 759                   Write]
 760               uint8 PercentOfTestCoverage;
 761               
 762               [Experimental, Description (
 763                   "Array entries contain parameters corresponding to "
 764                   "entries in the LoopControl array, limiting the number "
 765                   "of times a test should be repeated with a single "
 766                   "invocation of RunTest by a CIM client."),
 767                   ArrayType ("Indexed"),
 768                   ModelCorrespondence {"CIM_DiagnosticResults.LoopControl"},
 769                   Write ]
 770               string LoopControlParameter[];
 771            
 772               [Experimental, Description (
 773                   "LoopControl, used in conjunction with LoopControlParameter, "
 774                   "sets one or more loop control mechanisms that limits the "
 775                   "number of times a test should be repeated with a single "
 776                   "invocation of RunTest by a CIM client. There is an "
 777                   "array-positional correspondence between LoopControl "
 778 karl  1.1         "entries & LoopControlParameter entries. The entries in "
 779                   "these coupled arrays of loop controls can be used in a "
 780                   "logical OR fashion to achieve the desired loop control. "
 781                   "For example, if a client wants to loop a test 1000 times, "
 782                   "but quit if a timer runs out, it could set both controls "
 783                   "into the LoopControl array as two separate entries in each "
 784                   "array. The looping test will terminate when the first of the "
 785                   "two ORed conditions are met. \n"
 786                   "The descriptions for each loop control are given below: \n"
 787                   "\n"
 788                   "  Unknown (= 0) \n"
 789                   "  Other (= 1) : Additional detail may be found in "
 790                   "OtherLoopControlDescription. \n"
 791                   "  Continuous (= 2) : The corresponding LoopControl"
 792                   "Parameter is ignored and the test will execute "
 793                   "continuously. Tests that use this control should also " 
 794                   "support DiscontinueTest. \n" 
 795                   "  Count (= 3) : The corresponding LoopControlParameter "
 796                   "is interpreted as a loop count (uint32), indicating "
 797                   "the number of times the test should be repeated with "
 798                   "a single invocation of RunTest by a CIM client. \n"
 799 karl  1.1         "  Timer (= 4) : The corresponding LoopControlParameter "
 800                   "is interpreted as an initial value (uint32) for a test "
 801                   "loop timer, given in seconds.  The looping is "
 802                   "terminated when this timer has lapsed. \n"
 803                   "  ErrorCount (= 5) : The corresponding LoopControl"
 804                   "Parameter is interpreted as an error count (uint32). "
 805                   "The loop will continue until the number of errors that "
 806                   "have occurred exceeds the ErrorCount. Note: the "
 807                   "ErrorCount only refers to hard test errors; it does not "
 808                   "include soft errors or warnings. "),
 809                   ArrayType ("Indexed"),
 810                   ValueMap {"0", "1", "2", "3", "4", "5"},
 811                   Values{"Unknown", "Other", "Continuous", "Count", "Timer", 
 812                       "ErrorCount"},
 813                   ModelCorrespondence {
 814                       "CIM_DiagnosticResults.LoopControlParameter",
 815                       "CIM_DiagnosticResults.OtherLoopControlDescription"} ]
 816               uint16 LoopControl[];
 817            
 818               [Experimental, Description (
 819                   "Provides additional information for LoopControl when "
 820 karl  1.1         "its value is set to 1 ('Other')."),
 821                   ModelCorrespondence {
 822                       "CIM_DiagnosticResults.LoopControlParameter"},
 823                   Write ]
 824               string OtherLoopControlDescription;
 825           
 826               [Write, Experimental, Description (
 827                   "The ResultsPersistence property is a directive from a test "
 828                   "client to a test provider.  It allows the client to specify "
 829                   "to the diagnostic service provider how long to persist an "
 830                   "instance of a DiagnosticResult.  The timeout period starts "
 831                   "upon completion of the diagnostic started by the diagnostic "
 832                   "service.\n"
 833                   "Here is a summary of the choices for ResultPersistence"
 834                   "Option: \n"
 835                   "\"No Persistence\"            (value =  0) \n" 
 836                   "Setting the timer to zero tells the provider not to persist "
 837                   "the diagnostic result.  Responsibility for the final "
 838                   "disposition of the diagnostic result is inherently "
 839                   "satisfied. \n"
 840                   "\"Persist With TimeOut\"      (0 < value < 0xFFFFFFFF): \n"
 841 karl  1.1         "Setting the ResultPersistenceOption to a integer will "
 842                   "cause the DiagnosticResult to be persisted for that number "
 843                   "of seconds. At the end of that time, the DiagnosticResult "
 844                   "will be automatically deleted by the diagnostic service "
 845                   "provider.  \n"
 846                   "\"Persist Forever\"          (value = 0xFFFFFFFF): \n"
 847                   "By setting the timeout value to the very large value, "
 848                   "0xFFFFFFFF, the provider shall persist results forever. "
 849                   "In this case, the provider will persist the results in the "
 850                   "CIMOM's repository and the client SHALL bear responsibility "
 851                   "for deleting them. This was the old protocol. In an extreme "
 852                   "case, results could be persisted forever, if neither client " 
 853                   "nor provider deletes them."),
 854                   Units("Seconds") ]
 855               uint32 ResultPersistence;
 856           };
 857           
 858           
 859           // ==================================================================
 860           // DiagnosticService
 861           // ==================================================================
 862 karl  1.1 [Abstract, Experimental, Version ("2.7.0"), Description (
 863               "The CIM_DiagnosticService class provides the ability to "
 864               "start a service that functions to participate in a problem "
 865               "determination process. Specific diagnostic services may be "
 866               "defined by subclassing this class. Examples of a diagnostic "
 867               "service are tests, information retrievers, exercisers, and "
 868               "ports to external executives.")]
 869           class CIM_DiagnosticService : CIM_Service {
 870               
 871               [Description (
 872                   "The RunDiagnostic method executes this test for the "
 873                   "specified ManagedSystemElement (defined using the "
 874                   "SystemElement input parameter). The capabilities for the "
 875                   "diagnostic service will indicate where the results from the "
 876                   "test job are stored. How the test should execute, i.e. its "
 877                   "settings, is defined in a DiagnosticSetting object (or by "
 878                   "a subclass of DiagnosticSetting). A reference to a Setting "
 879                   "object is specified using the Setting input parameter.  If "
 880                   "a reference is not passed into the method, then a default "
 881                   "DiagnosticSetting may be used. \n"
 882                   "When RunDiagnostic starts execution, the settings, which are "
 883 karl  1.1         "time sensitive, should be evaluated and captured. This is "
 884                   "suggested since the DiagnosticSetting object can be modified "
 885                   "at any time, and therefore the current test settings could "
 886                   "be lost.\n"
 887                   "If 0 is returned, the function completed successfully and "
 888                   "no ConcreteJob instance is created. If 0x1000 a "
 889                   "ConcreteJob will be started."),
 890                   ValueMap {"0", "1", "2", "3", "4", "5", "..", "0x1000",
 891                       "..", "0x8000.."},
 892                   Values {"Job completed with no error", "Not Supported", "Unknown",
 893                       "Timeout", "Failed", "Invalid Parameter", "DMTF Reserved",
 894                       "Method parameters checked - job started",
 895                       "Method Reserved", "Vendor Specific"} ]
 896               uint32 RunDiagnostic(
 897                   [IN] 
 898                   CIM_ManagedSystemElement REF SystemElement, 
 899                   [IN] 
 900                   CIM_DiagnosticSetting REF Setting, 
 901                   [IN(FALSE), OUT, 
 902                       Description ("Handle to job." )] 
 903                   CIM_ConcreteJob REF Job); 
 904 karl  1.1 };
 905            
 906           
 907           // ==================================================================
 908           // DiagnosticTest
 909           // ==================================================================
 910           [Version ("2.7.0"), Description (
 911               "The CIM_DiagnosticTest class represents the framework for "
 912               "running diagnostic tests. Specific diagnostic tests may be "
 913               "defined by subclassing and/or instantiating this object. To"
 914               "provide more detail for a type of test(s) (i.e, additional "
 915               "properties and methods), subclassing is appropriate. \n"
 916               "When a DiagnosticTest can be simultaneously executed "
 917               "against several elements, then DiagnosticTest may launch "
 918               "a ConcreteJob to represent each execution.") ]
 919           class CIM_DiagnosticTest : CIM_DiagnosticService {
 920               
 921               [Description (
 922                   "The descriptions for each Characteristic are below:\n "
 923                   "\n"
 924                   "* \"Is Exclusive\" (value=2) is specified for the test "
 925 karl  1.1         "module only if the diagnostic cannot run more than one test "
 926                   "at a time, regardless of how many SystemElements are "
 927                   "supported. Typically, this occurs when hardware or software "
 928                   "constraints prevent the test from running as multiple, "
 929                   "concurrent instances. If the diagnostic can be run against "
 930                   "multiple SystemElements, but only once per Element, then set "
 931                   "the IsExclusiveForMSE boolean property on the appropriate "
 932                   "instances of DiagnosticTestForMSE. \n"
 933                   "\n"
 934                   "* If \"Is Interactive\" (value=3) is set, then the diagnostic "
 935                   "displays a message either before, during or after testing. \n"
 936                   "\n"
 937                   "* Set \"Is Destructive\" (value=4) if the diagnostic will "
 938                   "destroy data, or reconfigure the Element that is being "
 939                   "tested. \n" 
 940                   "\n"
 941                   "* \"Is Risky\" (value=5) indicates that data loss may occur "
 942                   "if the test is interrupted. Some tests make copies of data, "
 943                   "perform the test, and restore the data returning the tested "
 944                   "entity to its previous configuration. If the test is "
 945                   "interrupted, then loss of data or reconfiguration of the "
 946 karl  1.1         "tested ManagedSystemElement may occur. \n"
 947                   "\n"
 948                   "* If \"Is Package\" (value=6) is set, this test is actually "
 949                   "a set of lower level diagnostics, that are 'packaged' "
 950                   "together. \n"
 951                   "\n"
 952                   "\"Supports PercentOfTestCoverage\" (value=7) indicates that "
 953                   "a request for reduced test coverage can be specified using "
 954                   "the PercentOfTestCoverage property of Diagnostic Setting. \n"
 955                   "\n"
 956                   "Also, the values \"Unknown\" (0) and \"Other\" (1) may be "
 957                   "specified. If \"Other\" is defined, additional detail may be "
 958                   "found in the OtherCharacteristicDescription property of this "
 959                   "class."), 
 960                   ValueMap {"0", "1", "2", "3", "4", "5", "6", "7"},
 961                   Values{"Unknown", "Other", "Is Exclusive", "Is Interactive", 
 962                       "Is Destructive", "Is Risky", "Is Package", 
 963                       "Supports PercentOfTestCoverage"},
 964                   ModelCorrespondence {
 965                       "CIM_DiagnosticTest.OtherCharacteristicDescription"} ]
 966               uint16 Characteristics[];
 967 karl  1.1     
 968               [Description (
 969                   "Provides additional information for the Characteristic when "
 970                   "its value is set to 1 (\"Other\")."), 
 971                   ModelCorrespondence {"CIM_DiagnosticTest.Characteristics"} ]
 972               string OtherCharacteristicDescription;
 973               
 974               [Deprecated {"CIM_DiagnosticTest.Started"}, Description (
 975                   "Indicates if this test is currently being performed.  "
 976                   "The use of this property has been deprecated.  Instead, "
 977                   "the inherited property Started should be used.") ]
 978               boolean IsInUse;
 979               
 980               [Deprecated {"CIM_ServiceAffectsElement.AffectedElement"}, 
 981                   Description (
 982                       "Indicates the resources that are capitalized by the test. "
 983                       "The use of this property has been deprecated.  Instead, "
 984                       "association, ServiceAffectsElement, should be between "
 985                       "the DiagnosticTest and the Resource being used."), 
 986                   ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
 987                       "10", "11", "12", "13", "14", "15", "16", "17", "18", "19",
 988 karl  1.1             "20", "21", "22", "23", "24", "25", "26"},
 989                   Values{"CPU", "Memory", "Hard Disk", "CDROM", "Floppy", 
 990                       "PCI Bus", "USB Bus", "1394 Bus", "SCSI Bus", "IDE Bus", 
 991                       "Network", "ISA Bus", "EISA Bus", "VESA Bus", 
 992                       "PCMCIA Bus", "CardBus", "Access.bus", "NuBus", "AGP", 
 993                       "VME Bus", "Sbus IEEE 1396-1993", "MCA Bus", "GIO Bus", 
 994                       "XIO Bus", "HIO Bus", "PMC Bus", "SIO Bus"} ]
 995               uint16 ResourcesUsed[];
 996               
 997               [Deprecated {"CIM_DiagnosticService.RunDiagnostic"}, 
 998                Description (
 999                   "The RunTest method executes this test for the specified "
1000                   "ManagedSystemElement.  The use of this method has been "
1001                   "deprecated.  Instead, the RunDiagnostic method (inherited "
1002                   "from DiagnosticService) should be used.") ]
1003               uint32 RunTest(
1004                   [IN] 
1005                   CIM_ManagedSystemElement REF SystemElement, 
1006                   [IN] 
1007                   CIM_DiagnosticSetting REF Setting, 
1008                   [IN (false), OUT] 
1009 karl  1.1         CIM_DiagnosticResult REF Result);   
1010               
1011               [Description (
1012                   "Execution of this method will delete all instances of the "
1013                   "DiagnosticResultForMSE object, for this DiagnosticTest "
1014                   "and the specified ManagedSystemElement (defined using the "
1015                   "SystemElement input parameter). The DiagnosticResults "
1016                   "referenced in the DiagnosticResultForMSE instances will be "
1017                   "deleted.  Also the association DiagnosticResultForTest that "
1018                   "referees to the DiagnosticResult object, and this test will "
1019                   " be deleted.\n"
1020                   "  One output parameter is defined - ResultsNotCleared "
1021                   "- which is a string array that lists the keys of the "
1022                   "DiagnosticResults which could not be deleted. This "
1023                   "information enables those Results to be revisited and either "
1024                   "manually removed, or other corrective action taken. \n"
1025                   "The method's return codes are expected to adhere to the XML "
1026                   "return codes as they are introduced. Currently, the standard "
1027                   "return values are: \n"
1028                   "0 = OK (function succeeded, but the test itself may have "
1029                   "failed) \n"
1030 karl  1.1         "1 = Unspecified Error (function failed for unspecified "
1031                   "reasons) \n"
1032                   "2 = Not Implemented (function is not implemented for this "
1033                   "instance) \n"
1034                   "3 = Out Of Resources (component could not allocate required "
1035                   "resources, e.g. memory, disk space, etc.) \n"
1036                   "In a subclass, the set of possible return codes could be "
1037                   "specified, using a ValueMap qualifier on the method. The "
1038                   "strings to which the ValueMap contents are 'translated' may "
1039                   "also be specified in the subclass as a Values array "
1040                   "qualifier.") ]
1041               uint32 ClearResults(
1042                   [IN] 
1043                   CIM_ManagedSystemElement REF SystemElement, 
1044                   [IN (false), OUT] 
1045                   String ResultsNotCleared[]);   
1046                 
1047               [Deprecated {"CIM_EnabledLogicalElement.RequestedStatus"}, 
1048                   Description (
1049                   "After invocation of this method and its completion, the "
1050                   "specified test(s) will be discontinued for the indicated "
1051 karl  1.1         "ManagedSystemElement. The use of this method has been "
1052                   "deprecated.  Instead the RequestedStatus (inherited property "
1053                   "from EnabledLogicalElement) should be used to control the "
1054                   "execution of the test.") ] 
1055               uint32 DiscontinueTest(
1056                   [IN] 
1057                   CIM_ManagedSystemElement REF SystemElement, 
1058                   [IN] 
1059                   CIM_DiagnosticResult REF Result, 
1060                   [IN (false), OUT] 
1061                   Boolean TestingStopped);   
1062           };
1063           
1064           // ==================================================================
1065           // DiagnosticResultForMSE
1066           // ==================================================================
1067           [Association, Version ("2.6.0"), Description (
1068               "This is an association class relating diagnostic test "
1069               "results to the ManagedSystemElement that is/was tested.") ]
1070           class CIM_DiagnosticResultForMSE {
1071               
1072 karl  1.1     [Key, Description (
1073                   "The diagnostic result.") ]
1074               CIM_DiagnosticResult REF Result;
1075               
1076               [Key, Description (
1077                   "The ManagedSystemElement to which the diagnostic result "
1078                   "applies.") ]
1079               CIM_ManagedSystemElement REF SystemElement;
1080           };
1081           
1082           
1083           // ==================================================================
1084           // DiagnosticResultForTest
1085           // ==================================================================
1086           [Association, Version ("2.6.0"), Description (
1087               "This is an association class to relate the results of a test "
1088               "to the test itself.") ]
1089           class CIM_DiagnosticResultForTest {
1090               
1091               [Key, Min (1), Max (1), Weak,
1092                   Description ("The result object.") ]
1093 karl  1.1     CIM_DiagnosticResult REF DiagnosticResult;
1094               
1095               [Key, Min(1), Max(1),
1096                   Description ("The test that generated the result object.") ]
1097               CIM_DiagnosticTest REF DiagnosticTest;
1098           };
1099           
1100           
1101           // ==================================================================
1102           // DiagnosticTestForMSE
1103           // ==================================================================
1104           [Association, Version ("2.6.0"), Description (
1105               "This is an association class that relates a DiagnosticTest "
1106               "to a ManagedSystemElement.  Consumers wishing to 'diagnose' "
1107               "a particular Element could query this association, for the "
1108               "Element, to determine what tests are available.") ]
1109           class CIM_DiagnosticTestForMSE : CIM_ProvidesServiceToElement {
1110               
1111               [Override("Antecedent"), Description (
1112                   "The test that may be run against a ManagedSystemElement.") ]
1113               CIM_DiagnosticTest REF Antecedent;
1114 karl  1.1     
1115               [Override("Dependent"), Description (
1116                   "The ManagedSystemElement that can be tested.") ]
1117               CIM_ManagedSystemElement REF Dependent;
1118               
1119               [Units ("Seconds"), Description (
1120                   "Estimated number of seconds to perform the referenced "
1121                   "DiagnosticTest against the ManagedSystemElement. Since "
1122                   "execution times could vary by Element, this property is "
1123                   "located in the association between the two entities. It is "
1124                   "also captured in DiagnosticResult, in the Estimated"
1125                   "TimeOfPerforming property.\n" 
1126                   "A CIM Consumer can compare this value with the value in"
1127                   "DiagnosticResult to get an idea of what impact their"
1128                   "settings have on test execution."),
1129                   ModelCorrespondence {
1130                       "CIM_DiagnosticResult.EstimatedTimeOfPerforming"} ]
1131               uint32 EstimatedTimeOfPerforming;
1132               
1133               [Description (
1134                   "If the DiagnosticTest referenced in this object can be run "
1135 karl  1.1         "concurrently against multiple SystemElements, but only "
1136                   "run one at a time for the referenced ManagedSystemElement, "
1137                   "then this boolean is set to TRUE. Alternately, if the test "
1138                   "can NOT be run concurrently irregardless of the System"
1139                   "Elements being tested, then the more general \"Is Exclusive\" "
1140                   "enumerated value (2) should be set in DiagnosticTest."
1141                   "Characteristics.") ]
1142               boolean IsExclusiveForMSE;
1143           };
1144           
1145           
1146           // ==================================================================
1147           // DiagnosticTestInPackage
1148           // ==================================================================
1149           [Association, Aggregation, Version ("2.7.0"), 
1150               Deprecated {"No value"}, Description (
1151               "This class is being deprecated. Tests should be " 
1152               "grouped at the test level, not in the model. /n"
1153               "This is an association class that identifies a Diagnostic"
1154               "Test as made up of lower level Tests. In this case, the "
1155               "test identified as the GroupComponent reference (i.e, "
1156 karl  1.1     "the higher level test) would have the \"Is Package\" "
1157               "enumerated value specified in "
1158               "DiagnosticTest.Characteristics.") ]
1159           class CIM_DiagnosticTestInPackage : CIM_Component {
1160           
1161               [Override("GroupComponent"), Aggregate, 
1162                   Deprecated {"No value"}, Description (
1163                       "The DiagnosticTest object that acts as the "
1164                       "container for all the tests of the package.") ]
1165               CIM_DiagnosticTest REF GroupComponent;
1166               
1167               [Override("PartComponent"), 
1168                   Deprecated {"No value"}, Description (
1169                       "The DiagnosticTest object that is one of the elements of "
1170                       "the package.") ]
1171               CIM_DiagnosticTest REF PartComponent;  
1172           };
1173           
1174                
1175           // ==================================================================
1176           // DiagnosticResultInPackage
1177 karl  1.1 // ==================================================================
1178           [Association, Aggregation, Version ("2.7.0"), 
1179               Deprecated {"No value"}, Description (
1180               "This class is being deprecated. Tests should be " 
1181               "grouped at the test level, not by the model. /n"
1182               "This is an association class that identifies a Diagnostic"
1183               "Result as made up of lower level Results. In this case, the "
1184               "Result identified as the PackageResult reference (i.e., "
1185               "the higher level result) would have its IsPackage property "
1186               "set to TRUE.") ]
1187           class CIM_DiagnosticResultInPackage {
1188                 
1189               [Key, Aggregate, Deprecated {"No value"}, Description (
1190                   "The DiagnosticResult object that acts as the container "
1191                   "for all the results of the package.") ]
1192               CIM_DiagnosticResult REF PackageResult;
1193                 
1194               [Key, Deprecated {"No value"}, Description (
1195                   "The DiagnosticResult object that is one of the elements of "
1196                   "the package.") ]
1197               CIM_DiagnosticResult REF Result; 
1198 karl  1.1 }; 
1199           
1200           // ==================================================================
1201           // DiagnosticSettingForTest
1202           // ==================================================================
1203           [Association, Version ("2.6.0"), Description (
1204               "This is an association class to relate test settings with "
1205               "diagnostic tests.") ]
1206           class CIM_DiagnosticSettingForTest : CIM_ElementSetting {
1207               
1208               [Override("Element"), Description (
1209                   "The Test that can use the Setting object.") ]
1210               CIM_DiagnosticTest REF Element;
1211               
1212               [Override("Setting"), Description (
1213                   "The Setting that can be applied to the execution of the "
1214                   "DiagnosticTest.") ]
1215               CIM_DiagnosticSetting REF Setting;
1216           };
1217           
1218           // ==================================================================
1219 karl  1.1 // DiagnosticServiceCapabilities
1220           // ================================================================== 
1221           [Experimental, Version ("2.7.1"), Description ( 
1222               "DiagnosticServiceCapabilities is a class that describes the "
1223               "capabilities of the diagnostic service.  This provides the means "
1224               "for the diagnostic service to describe its abilities, "
1225               "limitations, and/or potential for use of various diagnostic "
1226               "service parameters.  For example, what types of settings the "
1227               "diagnostic service supports.") ]
1228           class CIM_DiagnosticServiceCapabilities : CIM_Capabilities { 
1229           
1230               [Description (
1231                   "The SupportedServiceModes property lists the operational "
1232                   "modes that are supported by the Diagnostic Service./n"
1233                   "These modes may correspond to, but are not limited to, "
1234                   "settings that may be applied to a Diagnostic Service. "),
1235                   ArrayType ("Indexed"),
1236                   ValueMap {"0", "1", "2", "3", "4", "5", "6"},
1237                   Values {"Unknown", "Other", "TestWarningLevel", 
1238                       "PercentOfTestCoverage", "QuickMode", "HaltOnError", 
1239                       "ResultPersistence"}, 
1240 karl  1.1         ModelCorrespondence {
1241                       "CIM_DiagnosticServiceCapabilities."
1242                           "OtherSupportedServiceModesDescriptions"} ]
1243               uint16 SupportedServiceModes[]; 
1244              
1245               [Description (
1246                   "Provides additional information for SupportedServiceMode "
1247                   "when its value is set to 1 (\"Other\")."),
1248                   ArrayType ("Indexed"),
1249                   ModelCorrespondence {
1250                       "CIM_DiagnosticServiceCapabilities."
1251                           "SupportedServiceModes"}]
1252               string OtherSupportedServiceModesDescriptions[];
1253           
1254               [Description (
1255                   "The SupportedLoopControl property lists the loop controls "
1256                   "that are supported by the Diagnostic Service."),
1257                   ValueMap {"0", "1", "2", "3", "4", "5"},
1258                   ArrayType ("Indexed"),
1259                   Values {"Unknown", "Other", "Continuous", "Count", "Timer", 
1260                       "ErrorCount"},
1261 karl  1.1         ModelCorrespondence {"CIM_DiagnosticSetting.LoopControl",
1262                       "CIM_DiagnosticServiceCapabilities."
1263                           "OtherSupportedLoopControlDescriptions" } ]
1264               uint16 SupportedLoopControl[];
1265               
1266               [Description (
1267                   "Provides additional information for SupportedLoopControl "
1268                   "when its value is set to 1 (\"Other\")."),
1269                   ArrayType ("Indexed"),
1270                   ModelCorrespondence {
1271                       "CIM_DiagnosticServiceCapabilities.SupportedLoopControl"} ]
1272               string OtherSupportedLoopControlDescriptions[];
1273           
1274               [Description (
1275                   "The SupportedLogOptions property lists the log options "
1276                   "that are supported by the Diagnostic Service."),
1277                   ArrayType ("Indexed"),
1278                   ValueMap {"0", "1", "2", "3", 
1279                       "4", "5", "6", 
1280                       "7", "8", "9", 
1281                       "10", "11", "12"}, 
1282 karl  1.1         Values {"Unknown", "Other", "TestErrors", "SoftErrors",
1283                       "Status", "Warnings", "FRUInformation",
1284                       "Debug", "Statistics", "Actions",
1285                       "Configuration", "Subtests", "References"},
1286                   ModelCorrespondence {"CIM_DiagnosticSetting.LogOptions",
1287                       "CIM_DiagnosticServiceCapabilities."
1288                          "OtherLogOptionDescriptions"} ]
1289               uint16 SupportedLogOptions[];
1290              
1291               [Description (
1292                   "Provides additional information for SupportedLogOptions "
1293                   "when its value is set to 1 (\"Other\"). "),
1294                   ArrayType ("Indexed"),
1295                   ModelCorrespondence {
1296                       "CIM_DiagnosticServiceCapabilities.SupportedLogOptions"} ]
1297               string OtherLogOptionDescriptions[];
1298           
1299               [Description (
1300                   "The SupportedLogStorage property lists the storage options "
1301                   "for logging that are supported by the Diagnostic Service. \n"
1302                   "The values are: \n"
1303 karl  1.1         "\"ResultArray\" (Value = 2): Supports writing log information "
1304                   "to the TestResult array of a DiagnosticResult instance. \n"
1305                   "\"LogRecords\" (Value = 3): Supports writing log information "
1306                   "to a vendor defined subclass of the DiagnosticServiceRecord "
1307                   "class as recommended in the description of its parent class "
1308                   "CIM_LogRecord. \n"
1309                   "\"MessageLog\" (Value = 4): Supports writing log information "
1310                   "using the defined methods of the MessageLog class.\n"
1311                   "\"File\" (Value = 5): Supports writing log information to a "
1312                   "file."),
1313                   ArrayType ("Indexed"),
1314                   ValueMap {"0", "1", "2", "3", "4", "5"}, 
1315                   Values {"Unknown", "Other", "ResultArray", "LogRecords", 
1316                           "MessageLog", "File"},
1317                   ModelCorrespondence {
1318                       "CIM_DiagnosticServiceCapabilities."
1319                           "OtherSupportedLogStorageDescriptions"} ]
1320               uint16 SupportedLogStorage[];
1321               
1322               [Description (
1323                   "Provides additional information for SupportedLogStorage "
1324 karl  1.1         "when its value is set to 1 (\"Other\"). "),
1325                   ArrayType ("Indexed"),
1326                   ModelCorrespondence {
1327                       "CIM_DiagnosticServiceCapabilities.SupportedLogStorage"} ]
1328               string OtherSupportedLogStorageDescriptions[];
1329           
1330               [Description (
1331                   "The SupportedExecutionControls property lists the job "
1332                   "controls that are supported by the Diagnostic Service."
1333                   "The values are: \n"
1334                   "\"JobCreation\" (Value = 2): publishes that a ConcreteJob "
1335                   "instance will be created to control the diagnostic job "
1336                   "launched by the diagnostic service. \n"
1337                   "\"KillJob\" (Value = 3): publishes that the diagnostic "
1338                   "service has implemented the KillJob method in ConcreteJob.\n"
1339                   "\"Enable/Disable Job\" (Value = 4): publishes that the "
1340                   "diagnostic service can pause and resume execution of the "
1341                   "diagnostic job. This is accomplished by setting the "
1342                   "RequestedStatus property that ConcreteJob inherits from "
1343                   "CIM_EnabledLogicalElement to values Disabled to suspend "
1344                   "and Enabled to resume.\n"
1345 karl  1.1         "\"Shutdown Job\" (Value = 5): publishes that the diagnostic "
1346                   "service can gracefully shutdown execution of the diagnostic "
1347                   "job. Which is accomplished by setting the RequestedStatus "
1348                   "property that ConcreteJob inherits from CIM_EnabledLogicalElement "
1349                   "to the value, Shut Down."),
1350                   ArrayType ("Indexed"),
1351                   ValueMap {"0", "1", "2", "3", "4", "5"},
1352                   Values {"Unknown", "Other", "Job Creation", "Kill Job",
1353                           "Enable/Disable Job", "Shutdown Job"}, 
1354                   ModelCorrespondence {
1355                       "CIM_DiagnosticServiceCapabilities."
1356                           "OtherSupportedExecutionControlsDescriptions"} ]
1357               uint16 SupportedExecutionControls[]; 
1358              
1359               [Description (
1360                   "Provides additional information for SupportedExecutionControls "
1361                   "when its value is set to 1 (\"Other\"). "),
1362                   ArrayType ("Indexed"),
1363                   ModelCorrespondence {
1364                    "CIM_DiagnosticServiceCapabilities.SupportedExecutionControls"} ]
1365               string OtherSupportedExecutionControlsDescriptions[];
1366 karl  1.1 };
1367           
1368           // ==================================================================
1369           // DiagnosticServiceRecord
1370           // ==================================================================
1371           [Experimental, Version ("2.7.0"), Description (
1372               "While a DiagnosticService is running, data generated by the "
1373               "service may be recorded in DiagnosticServiceRecord objects. "
1374               "A DiagnosticServiceRecord is related to its MessageLog via an "
1375               "instance of the RecordInLog aggregation class.")]
1376           class CIM_DiagnosticServiceRecord : CIM_LogRecord {
1377            
1378               [Required, Description (
1379                   "This property should reflect the value of the underlying "
1380                   "DiagnosticService.Name property."),
1381                   ModelCorrespondence {"CIM_DiagnosticService.Name"}]
1382               string ServiceName; 
1383            
1384               [Required, Description (
1385                   "A unique identifier representing a single execution of a "
1386                   "DiagnosticService on an instance of a managed element. All "
1387 karl  1.1         "records created by this Service execution must have the same "
1388                   "ExecutionID value, and that value must be unique across "
1389                   "all Service executions.\n" 
1390                   "The ExecutionID property is distinct from LogRecord.RecordID "
1391                   "in that a MessageLog may aggregate multiple records with the same "
1392                   "ExecutionID, corresponding to a single invokation of a Service, "
1393                   "but each of these records will have unique RecordIDs."),
1394                   ModelCorrespondence {"CIM_DiagnosticJob.ExecutionID"}]
1395               string ExecutionID ; 
1396            
1397               [Description (
1398                   "The RecordType property specifies the nature of the data "
1399                   "being entered into the ServiceRecord. The value in this " 
1400                   "property should match one of the values indicated by the " 
1401                   "DiagnosticSetting.LogOptions property.\n"),
1402                   ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", 
1403                       "10", "11", "12"}, 
1404                   Values{"Unknown", "Other", "TestErrors", "SoftErrors",
1405                       "Status", "Warnings", "FRUInformation",
1406                       "Debug", "Statistics", "Actions",
1407                       "Configuration", "Subtests", "References"},
1408 karl  1.1         ModelCorrespondence {"CIM_DiagnosticSetting.LogOptions"}]
1409               uint16 RecordType;
1410            
1411               [Description (
1412                   "When \"Other\" (value=1) is entered in the RecordType "
1413                   "property, OtherRecordTypeDescription can be used to describe "
1414                   "the message type."),
1415                   ModelCorrespondence {
1416                       "CIM_DiagnosticSetting.OtherLogOptionsDescription"}]
1417               string OtherRecordTypeDescription;
1418           }; 
1419           
1420           
1421           // ===================================================================
1422           // end of file
1423           // ===================================================================

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2