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

   1 tony  1.1 // ===================================================================
   2           // Title:       System Diagnostics 2.8
   3           // Filename:    System28_Diagnostics.mof
   4           // Version:     2.8
   5           // Release:     Preliminary
   6           // Date:        08/18/2003
   7           // ===================================================================
   8           // Copyright 1999-2003 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 tony  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 tony  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 2.8
  53           // CR947 - Add new record types
  54           // CR945 - Change description of ResultPersistence to apply to LogRecord
  55           // CR944 - IsSynchronous DiagnosticTest Characteristic and Miscellaneous
  56           //          cleanup related to PercentOfTestCoverage and IsPackage
  57           // CR937  - Localization
  58           // CR946 - Deprecate DiagnosticResult and add needed
  59           //        properties to DiagnosticServiceRecord
  60           // CR939 - Add verbosity setting for result messages
  61           // CR1020 - Promote "Test" associations to "Service"
  62           // CR1041 - Add Help service
  63           // CR1091 - Cleanup of RunDiagnostic methods
  64 tony  1.1 // CR1092  - Move HelpService to new Core28_Help from
  65           //           System28_Diagnostics
  66           // CR1125 - Rename Verbosity to TestResultLevel since it is a
  67           //          corollary of TestWarningLevel.  Clean up descriptions
  68           //          in LogOptions.
  69           // CR1126 - DiagnosticServiceRecord vs. DiagnosticSettingRecord
  70           // CR1130 - DiagnosticsServiceCapabilities model correspondance
  71           //          corrections
  72           // 
  73           // Changes to bring forward from final
  74           // CR726/CR1072 - Add LogOptions, OtherLogOptionDescriptions to
  75           //         DiagnosticSetting and DiagnosticResult
  76           //         Deprecate ReportSoftErrors and ReportStatusMessages from
  77           //         DiagnosticSetting and DiagnosticResult
  78           // CR764/CR1076 - Add DiagnosticService
  79           //       - Change subclassing of DiagnosticTest from Service to
  80           //         DiagnosticService
  81           //       - Deprecation DiagnosticTest.ResourcesUsed and DiagnosticTest.
  82           //         IsInUse
  83           //       - Fix the Class Name in the ModelCorrespondence string for
  84           //         DiagnosticTest.OtherCharacteristicDescription
  85 tony  1.1 // CR765/CR1077 - Update the the DiagnoticTest and DiagnosticResults
  86           //         LogOptions property
  87           //       - Modify the description of DiagnosticResults.TestResults
  88           // CR779/CR1073 - Add DiagnosticService.RunDiagnostic()
  89           //       - Deprecate DiagnosticTest.RunTest()
  90           //       - Deprecate DiagnosticTest.DiscontinueTest()
  91           //       - Update class description for DiagnosticTest
  92           // CR780/CR1074 - Add DiagnosticServiceCapabilities
  93           // CR781/CR1075 - Add DiagnosticServiceRecord
  94           // CR887/CR1078 - Fix the DiagnosticService.RunDiagnostic return range
  95           // for
  96           //         Method Reserved.
  97           // CR888/CR1079 - Correct DateTime format in the description of
  98           //         DiagnosticResult.TestResults
  99           // CR889/CR1080 - For consistency change the deprecation statement in
 100           //         RunTest to reference the class where the RunDiagnostic
 101           //         is defined (DiagnosticService).
 102           // 
 103           // Change Log for v2.7 Final
 104           // CR1010 - Update DiagnosticResult.TestResults Description
 105           //          related to datetime
 106 tony  1.1 // CR965 - Update description for DiagnosticTestForMSE
 107           // CR973 - Remove Experimental from
 108           //         DiagnosticSetting.LoopControlParameter
 109           //         DiagnosticSetting.LoopControl
 110           //         DiagnosticSetting.OtherLoopControlDescription
 111           //         DiagnosticSetting.ResultPersistence
 112           //         DiagnosticResult.ErrorCode
 113           //         DiagnosticResult.ErrorCount
 114           //         DiagnosticResult.LoopsFailed
 115           //         DiagnosticResult.LoopsPassed
 116           //         DiagnosticResult.LoopControlParameter
 117           //         DiagnosticResult.LoopControl
 118           //         DiagnosticResult.OtherLoopControlDescription
 119           //         DiagnosticResult.ResultPersistence
 120           //       - Move forward with the deprecations
 121           //         DiagnosticResult.IsPackage
 122           //         DiagnosticTest.IsinUse
 123           //         DiagnosticTest.ResourcesUsed
 124           //         DiagnosticResultInPackage
 125           //         DiagnosticTestInPackage
 126           //         DiagnosticTest.RunTest
 127 tony  1.1 //         DiagnosticSetting. and DiagnosticResult.ReportSoftErrors
 128           //         DiagnosticSetting. and DiagnosticResult.ReportStatusMessages
 129           //       - Hold off the rest of the Diagnostic deprecations and
 130           //         experimental classes and properties until 2.8 (this
 131           //         includes DiagnosticService, DiagnosticServiceRecord and
 132           //         DiagnosticServiceCapabilities)
 133           // 
 134           // Change Log for v2.7
 135           // CR725 - Add the following 3 properties LoopControlParameter,
 136           //         LoopControl, and OtherLoopControlDescription to
 137           //         DiagnosticSetting and DiagnosticResult
 138           // CR749 - Deprecate DiagnosticTestInPackage, DiagnosticResultInPackage,
 139           //         and DiagnosticResult.IsPackage
 140           // CR766 - Add the following properties to DiagnosticResults:
 141           //         ErrorCode, ErrorCount, LoopsFailed, LoopsPassed
 142           // CR778 - Add property ResultPersistence to DiagnosticSetting and
 143           //         DiagnosticResults
 144           // ===================================================================
 145           
 146           #pragma locale ("en_US")
 147           
 148 tony  1.1 
 149           // ==================================================================
 150           // DiagnosticSetting
 151           // ==================================================================
 152              [Version ("2.7.1000"), Description (
 153                  "Specific diagnostic test parameters and execution instructions "
 154                  "are defined by subclassing and/or instantiating the "
 155                  "DiagnosticSetting object.  To provide more detailed Settings "
 156                  "for a type of test (i.e., additional properties), subclassing "
 157                  "is appropriate.  When only the generic Setting information is "
 158                  "required, instantiation of the Diagnostic Setting class may suffice.\n"
 159                  "Data from DiagnosticSetting is captured in DiagnosticResult.  "
 160                  "When RunTest starts execution the settings, which are time "
 161                  "sensitive, should be evaluated and captured.  This is "
 162                  "suggested since the DiagnosticSetting object can be modified "
 163                  "at any time, and therefore the current test settings could be "
 164                  "lost.") ]
 165           class CIM_DiagnosticSetting : CIM_Setting {
 166           
 167                 [Key, Override ("SettingID"), Description (
 168                     "The identifier by which the DiagnosticSetting object is "
 169 tony  1.1           "known and uniquely named.  One possible naming scheme is to "
 170                     "name the SettingID using the DiagnosticTest's CreationClass "
 171                     "Name and DiagnosticName, plus a GUID (Globally Unique IDentifier).\n"
 172                     "Note that at an enterprise level, there is typically not a "
 173                     "one to one mapping between a DiagnosticSetting and all "
 174                     "copies of the DiagnosticTest.  The proposed naming "
 175                     "convention will scale to the entrprise level."), 
 176                  MaxLen (256) ]
 177              string SettingID;
 178           
 179                 [Write, Description (
 180                     "Sets the level of warning messages to be logged.  A client "
 181                     "MUST only select a TestWarningLevel that is supported in "
 182                     "the DiagnosticServiceCapabilities.  This property is used "
 183                     "in conjunction with specifying the 'Warnings' value in "
 184                     "LogOptions.  If for example no warning information is "
 185                     "required, the level would be set to \"No Warnings\" "
 186                     "(value=0).  Using \"Missing Resources\" (value=1) will "
 187                     "cause warnings to be generated when required resources or "
 188                     "hardware are not found.  Setting the value to 2, \"Testing "
 189                     "Impacts\", results in both missing resources and 'test "
 190 tony  1.1           "impact' warnings (for example, multiple retries required) "
 191                     "to be reported."), 
 192                  ValueMap {"0", "1", "2", "3"}, 
 193                  Values {"No Warnings", "Missing Resources", "Testing Impacts",
 194                     "All Warnings"}, 
 195                  ModelCorrespondence { 
 196                     "CIM_DiagnosticServiceCapabilities.SupportTestWarnings",
 197                     "CIM_DiagnosticSetting.LogOptions"} ]
 198              uint16 TestWarningLevel;
 199           
 200                 [Experimental, Write, Description (
 201                     "The LogOptions property indicates that particular types of "
 202                     "test message SHOULD be logged.  Each of these log options "
 203                     "can co-exist with the others.  Note that the default "
 204                     "behavior is for the option to be off/disabled.\n"
 205                     "The following text briefly summarizes the various log options:\n"
 206                     "* \"Unknown\" (value = 0)\n"
 207                     "* \"Other\" (value = 1): Details in the corresponding "
 208                     "OtherLogOptionsDescription entry.\n"
 209                     "* \"Test Errors\" (value = 2): Enable sending errors "
 210                     "related to the element(s) under test.\n"
 211 tony  1.1           "* \"Soft Errors\" (value = 3): Enable sending errors "
 212                     "related to the running of the test.  Examples of soft "
 213                     "errors are: 'not enough memory', 'driver IOCTL not "
 214                     "implemented', or 'known defect'.\n"
 215                     "* \"Status\" (value = 4): Enables sending status messages.  "
 216                     "Examples of status messages are reports of state "
 217                     "information for the test, driver, device, or system.\n"
 218                     "* \"Warnings\" (value = 5): Enables sending warning "
 219                     "messages.  The TestWarningLevel property specifies the "
 220                     "level of warnings to be logged.\n"
 221                     "* \"Hardware Configuration\" (value = 6): Enables sending "
 222                     "messages that contain information about the hardware "
 223                     "configuration under test.  For example the vendor, version, "
 224                     "and location information.  The format and contents of this "
 225                     "property is element dependent.  Examples are: SCSI ID, "
 226                     "LPTx, PCI Slot Number, Dimm#.\n"
 227                     "* \"Debug\" (value = 7): Enables sending debug messages.  "
 228                     "These messages are vendor specific.\n"
 229                     "* \"Statistics\" (value = 8): Enables sending statistics "
 230                     "messages.  An example of statistics would be packets sent "
 231                     "per second.\n"
 232 tony  1.1           "* \"Actions\" (value = 9): Enables sending corrective "
 233                     "action and instructional messages to guide service "
 234                     "personnel.  For example, a numbered list of steps to take "
 235                     "when it has been determined that a device needs to be fixed "
 236                     "or replaced.  Another example would be a prioritized list "
 237                     "of suggested actions to take to isolate a failure.  When "
 238                     "ordering steps or prioritizing actions a number should "
 239                     "proceed the text.  Ex: '1) Do this first 2) next'\n"
 240                     "* \"Software Configuration\" (value = 10): Enables sending "
 241                     "messages that contain information about the software stack "
 242                     "needed to reproduce the test's runtime environment.  For "
 243                     "example, the name and version of all the critical software "
 244                     "elements controlling the device under test.  Each "
 245                     "configuration message SHOULD have the following common "
 246                     "format: Element name; element type; manufacturers name; "
 247                     "version.  Ex: 'Miniport driver; SCSI; Intel; 'Version 1.2'.\n"
 248                     "* \"Subtests\" (value = 11): Enables sending a test summary "
 249                     "report message upon completion of each subtest and each "
 250                     "loop iteration.  These summary reports SHOULD state whether "
 251                     "the individual subtest or iteration passed or failed and "
 252                     "list relevant error codes and respective error counts.\n"
 253 tony  1.1           "* \"References\" (value = 12): Enables sending a message "
 254                     "that records the keys of the element under test.\n"
 255                     "* \"Results\" (value = 13): Results that do not fall into "
 256                     "any other specific category are included here.  This value "
 257                     "will generally be included.  The TestResultLevel property "
 258                     "specifies the level of results to be logged.\n"
 259                     "* \"Result Summary\" (value = 14): This value calls for a "
 260                     "summary result to be generated, usually associated with a "
 261                     "looping diagnostic.\n"
 262                     "\"Setting Data\" (value=15) will cause the data contained "
 263                     "in this class to be logged."), 
 264                  ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
 265                     "10", "11", "12", "13", "14", "15" }, 
 266                  Values {"Unknown", "Other", "Test Errors", "Soft Errors",
 267                     "Status", "Warnings", "Hardware Configuration", "Debug",
 268                     "Statistics", "Actions", "Software Configuration",
 269                     "Subtests", "References", "Results", "Results Summary",
 270                     "Setting Data"}, 
 271                  ArrayType ("Indexed"), 
 272                  ModelCorrespondence { 
 273                     "CIM_DiagnosticSetting.OtherLogOptionsDescriptions",
 274 tony  1.1           "CIM_DiagnosticServiceCapabilities.LogOptions"} ]
 275              uint16 LogOptions[];
 276           
 277                 [Experimental, Write, Description (
 278                     "Provides additional information regarding the types of test "
 279                     "messages that are logged when the property LogOptions "
 280                     "includes the value 1 (\"Other\")."), 
 281                  ModelCorrespondence {"CIM_DiagnosticSetting.LogOptions"} ]
 282              string OtherLogOptionsDescriptions[];
 283           
 284                 [Deprecated {"CIM_DiagnosticSetting.LogOptions"}, Write, 
 285                  Description (
 286                     "When this flag is true, the diagnostic test will report "
 287                     "'soft errors'.  In this context, a soft error is a message "
 288                     "from the diagnostic reporting a known defect in the "
 289                     "hardware or driver configuration, or execution "
 290                     "environment.  Examples are: 'Not enough memory', 'Driver "
 291                     "IOCTL not implemented', 'Video RAM compare failed during "
 292                     "polygon fill test (A known defect in the video chipset)', "
 293                     "etc.") ]
 294              boolean ReportSoftErrors;
 295 tony  1.1 
 296                 [Deprecated {"CIM_DiagnosticSetting.LogOptions"}, Write, 
 297                  Description (
 298                     "When this flag is true, the diagnostic test will report "
 299                     "'status messages'.  In this context, a status message "
 300                     "indicates that the diagnostic code is at a checkpoint.  "
 301                     "Examples are: \"Completion of phase 1\", \"Complex "
 302                     "pattern\", etc.") ]
 303              boolean ReportStatusMessages;
 304           
 305                 [Write, Description (
 306                     "When this flag is true, the test will halt after finding "
 307                     "the first error.") ]
 308              boolean HaltOnError;
 309           
 310                 [Write, Description (
 311                     "When this flag is true, the test software should attempt to "
 312                     "run in an accelerated fashion either by reducing the "
 313                     "coverage or number of tests performed.") ]
 314              boolean QuickMode;
 315           
 316 tony  1.1       [Write, Description (
 317                     "Requests the diagnostic software to reduce test coverage to "
 318                     "the specified percentage.  For example, a hard drive scan "
 319                     "test could be asked to run at 50%.  The most effective way "
 320                     "to accomplish this is for the test software to scan every "
 321                     "other track, as opposed to only scanning the first half of "
 322                     "a drive.  It is assumed that the effectiveness of the test "
 323                     "is impacted proportional to the percentage of testing "
 324                     "requested.  Permissible values for this property range from "
 325                     "0 to 100.\n"
 326                     "This property may not be applicable to all tests.  If it "
 327                     "can be set for a test, the value 7 (\"Supports PercentOf "
 328                     "TestCoverage\") should be entered into the DiagnosticTest's "
 329                     "Characteristics array."), 
 330                  Units ("Percent"), MinValue (0), MaxValue (100), 
 331                  ModelCorrespondence 
 332                     {"CIM_DiagnosticServiceCapabilities.SupportedServiceModes"} ]
 333              uint8 PercentOfTestCoverage;
 334           
 335                 [Write, Description (
 336                     "Array entries contain parameters corresponding to entries "
 337 tony  1.1           "in the LoopControl array, limiting the number of times a "
 338                     "test should be repeated with a single invocation of RunTest "
 339                     "by a CIM client."), 
 340                  ArrayType ("Indexed"), 
 341                  ModelCorrespondence {"CIM_DiagnosticSetting.LoopControl"} ]
 342              string LoopControlParameter[];
 343           
 344                 [Write, Description (
 345                     "LoopControl, used in conjunction with LoopControlParameter, "
 346                     "sets one or more loop control mechanisms that limits the "
 347                     "number of times a test should be repeated with a single "
 348                     "invocation of RunTest by a CIM client.  There is an "
 349                     "array-positional correspondence between LoopControl entries "
 350                     "& LoopControlParameter entries.  The entries in these "
 351                     "coupled arrays of loop controls can be used in a logical OR "
 352                     "fashion to achieve the desired loop control.  For example, "
 353                     "if a client wants to loop a test 1000 times, but quit if a "
 354                     "timer runs out, it could set both controls into the "
 355                     "LoopControl array as two separate entries in each array.  "
 356                     "The looping test will terminate when the first of the two "
 357                     "ORed conditions are met.\n"
 358 tony  1.1           "The descriptions for each loop control are given below:\n"
 359                     "Unknown/Default (= 0)\n"
 360                     "Other (= 1) : Additional detail may be found in OtherLoopControlDescription.\n"
 361                     "Continuous (= 2) : The corresponding LoopControl Parameter "
 362                     "is ignored and the test will execute continuously.  Tests "
 363                     "that use this control should also support DiscontinueTest.\n"
 364                     "Count (= 3) : The corresponding LoopControlParameter is "
 365                     "interpreted as a loop count (uint32), indicating the number "
 366                     "of times the test should be repeated with a single "
 367                     "invocation of RunTest by a CIM client.\n"
 368                     "Timer (= 4) : The corresponding LoopControlParameter is "
 369                     "interpreted as an initial value (uint32) for a test loop "
 370                     "timer, given in seconds.  The looping is terminated when "
 371                     "this timer has lapsed.\n"
 372                     "ErrorCount (= 5) : The corresponding LoopControl Parameter "
 373                     "is interpreted as an error count (uint32).  The loop will "
 374                     "continue until the number of errors that have occurred "
 375                     "exceeds the ErrorCount.  Note: the ErrorCount only refers "
 376                     "to hard test errors; it does not include soft errors or "
 377                     "warnings."), 
 378                  ValueMap {"0", "1", "2", "3", "4", "5"}, 
 379 tony  1.1        Values {"Unknown/Default", "Other", "Continuous", "Count",
 380                     "Timer", "Error Count"}, 
 381                  ArrayType ("Indexed"), 
 382                  ModelCorrespondence { 
 383                     "CIM_DiagnosticSetting.LoopControlParameter",
 384                     "CIM_DiagnosticSetting.OtherLoopControlDescription"} ]
 385              uint16 LoopControl[];
 386           
 387                 [Write, Description (
 388                     "Provides additional information for LoopControl when its "
 389                     "value is set to 1 ('Other')."), 
 390                  ModelCorrespondence { 
 391                     "CIM_DiagnosticSetting.LoopControlParameter"} ]
 392              string OtherLoopControlDescriptions;
 393           
 394                 [Write, Description (
 395                     "The ResultPersistence property is a directive from a "
 396                     "diagnostic client to a diagnostic provider.  It allows the "
 397                     "client to specify to the diagnostic service provider how "
 398                     "long to persist the messages that result from execution of "
 399                     "a diagnostic service.  This applies to instances of "
 400 tony  1.1           "DiagnosticResult as well as the preferred use of "
 401                     "DiagnosticServiceRecord.  The timeout period starts upon "
 402                     "completion of the diagnostic action described by the DiagnosticService.\n"
 403                     "Here is a summary of the choices and behaviors for "
 404                     "different ResultPersistence values:\n"
 405                     "0 = \"No Persistence\":\n"
 406                     "Setting the timer to zero tells the provider not to persist "
 407                     "the diagnostic result.  The diagnostic information is only "
 408                     "available while the diagnostic is executing or at its conclusion.\n"
 409                     "Value > 0 and < 0xFFFFFFFF = \"Persist With TimeOut\":\n"
 410                     "Setting the ResultPersistenceOption to a integer will cause "
 411                     "the DiagnosticResult to be persisted for that number of "
 412                     "seconds.  At the end of that time, the DiagnosticResult may "
 413                     "be deleted by the diagnostic service provider.\n"
 414                     "0xFFFFFFFF = \"Persist Forever\":\n"
 415                     "By setting the timeout value to the very large value, "
 416                     "0xFFFFFFFF, the provider shall persist results forever.  In "
 417                     "this case, the client MUST bear the responsibility for "
 418                     "deleting them."), 
 419                  Units ("Seconds") ]
 420              uint32 ResultPersistence;
 421 tony  1.1 
 422                 [Experimental, Description (
 423                     "This property, along with the locale information in "
 424                     "LocalizationCapabilities and DiagnosticServiceRecord, meets "
 425                     "the requirement to specify locale for results produced by a "
 426                     "diagnostic service.  A locale indicates a particular "
 427                     "geographical, political, or cultural region.  The Locales "
 428                     "property of the DiagnosticSetting class is an array of "
 429                     "strings whose entries specify a language to be used in the "
 430                     "formulation of information requested by or delivered to a "
 431                     "client as a result of running a diagnostic service.  It is "
 432                     "specified by the client as an input parameter to the "
 433                     "RunDiagnostic method, by virtue of its inclusion in this "
 434                     "Setting class which is a parameter of the method.  A single "
 435                     "Setting object may specify more than one Locale.  In this "
 436                     "case, information MUST be returned in each language "
 437                     "specified. \n\n"
 438                     "Each array entry consists of three sub-strings, separated "
 439                     "by underscores:\n"
 440                     "- The first sub-string is the language code, as specified "
 441                     "in ISO639.\n"
 442 tony  1.1           "- The second sub-string is the country code, as specified "
 443                     "in ISO3166.\n"
 444                     "- The third sub-string is a variant, which is vendor specific.\n"
 445                     "For example, US English appears as: \"en_US_WIN\", where "
 446                     "the \"WIN\" variant would specify a Windows "
 447                     "browser-specific collation (if one exists).  Since the "
 448                     "variant is not standardized, it is not commonly used and "
 449                     "generally is limited to easily recognizable values "
 450                     "(\"WIN\", \"UNIX\", \"EURO\", etc.) used in standard "
 451                     "environments.  The language and country codes are required; "
 452                     "the variant may be empty."), 
 453                  ModelCorrespondence 
 454                     {"CIM_LocalizationCapabilities.SupportedOutputLocales"} ]
 455              string Locales[];
 456           
 457                 [Experimental, Write, Description (
 458                     "A client MAY want the ability to specify the depth of "
 459                     "results returned when a diagnostic service is invoked.  A "
 460                     "client MUST only select a TestResultLevel that is supported "
 461                     "in the DiagnosticServiceCapabilities.  This property is "
 462                     "used in conjunction with specifying the 'Results' value in "
 463 tony  1.1           "LogOptions.  The ranges are from a simple pass/fail to "
 464                     "large logs, diaries, etc.  The five levels of verbosity are "
 465                     "defined as follows:\n"
 466                     "* \"Minimum\" (value=2) is specified if the least verbose "
 467                     "level of result information is desired; typically this is "
 468                     "Pass or Fail.\n"
 469                     "* \"Short\" (value=3) is the shortest form of standard messaging.\n"
 470                     "* \"Standard\" (value=4) is standard messaging.\n"
 471                     "* \"Long\" (value=5) is the longest form of standard messaging.\n"
 472                     "* \"Full\" (value=6) is a request for all information "
 473                     "available, regardless of size.\n"
 474                     "The default, when no value is specified, is \"Standard\"."), 
 475                  ValueMap {"2", "3", "4", "5", "6"}, 
 476                  Values {"Minimum", "Short", "Standard", "Long", "Full"}, 
 477                  ModelCorrespondence { 
 478                     "CIM_DiagnosticServiceCapabilities.SupportedResultLevels",
 479                     "CIM_DiagnosticSetting.LogOptions"} ]
 480              uint16 TestResultLevel;
 481           };
 482           
 483           
 484 tony  1.1 // ==================================================================
 485           // DiagnosticResult
 486           // ==================================================================
 487              [Deprecated {"CIM_DiagnosticServiceRecord"}, Version ("2.7.1000"), 
 488               Description (
 489                  "When a DiagnosticTest Service is running, test results are "
 490                  "reported using a DiagnosticResult object, or one of its "
 491                  "subclasses.  A DiagnosticTest may be running because its "
 492                  "Service is Started or due to an invocation of the RunTest "
 493                  "method.  Diagnostic Results are related to their Test via an "
 494                  "instance of the DiagnosticResultsForMSE association.\n"
 495                  "For every running of DiagnosticTest, a new instance of "
 496                  "DiagnosticResult, or one of it's subclasses should be "
 497                  "created.") ]
 498           class CIM_DiagnosticResult {
 499           
 500                 [Deprecated {"No Value"}, Key,
 501                  Propagated ("CIM_DiagnosticTest.CreationClassName"), 
 502                  Description (
 503                     "The scoping Test's CreationClassName."), 
 504                  MaxLen (256) ]
 505 tony  1.1    string DiagnosticCreationClassName;
 506           
 507                 [Deprecated {"No Value"}, Key,
 508                  Propagated ("CIM_DiagnosticTest.Name"), Description (
 509                     "The scoping Test's Name."), 
 510                  MaxLen (256) ]
 511              string DiagnosticName;
 512           
 513                 [Deprecated {"No Value"}, Key,
 514                  Propagated ("CIM_DiagnosticTest.SystemCreationClassName"), 
 515                  Description (
 516                     "The scoping Test's SystemCreationClassName."), 
 517                  MaxLen (256) ]
 518              string DiagSystemCreationClassName;
 519           
 520                 [Deprecated {"No Value"}, Key,
 521                  Propagated ("CIM_DiagnosticTest.SystemName"), Description (
 522                     "The scoping Test's SystemName."), 
 523                  MaxLen (256) ]
 524              string DiagSystemName;
 525           
 526 tony  1.1       [Deprecated {"CIM_DiagnosticServiceRecord.ExecutionID"}, Key, 
 527                  Description (
 528                     "The Unique identifier for an instance of Diagnostic "
 529                     "Results."), 
 530                  MaxLen (1024) ]
 531              string ExecutionID ;
 532           
 533                 [Deprecated {"CIM_LogRecord.MessageTimestamp"}, Description (
 534                     "The date and time the result was last updated.") ]
 535              datetime TimeStamp;
 536           
 537                 [Deprecated {"No Value"}, Description (
 538                     "This property is being deprecated.  Tests should be grouped "
 539                     "at the test level, not by the model.  /n If this property "
 540                     "is TRUE, then this DiagnosticResult summarizes the results "
 541                     "from the execution of a packaged set of DiagnosticTests.  "
 542                     "The Tests in the package can be identified by following the "
 543                     "DiagnosticResultForTest association to the test and then "
 544                     "using the DiagnosticTest InPackage aggregation.  The "
 545                     "individual Results can be broken out by instantiating "
 546                     "DiagnosticResults for the individual lower level tests and "
 547 tony  1.1           "aggregating into the 'summary' Result using the "
 548                     "DiagnosticResultInPackage association.") ]
 549              boolean IsPackage;
 550           
 551                 [Deprecated {"CIM_Job.StartTime"}, Description (
 552                     "The date and time when this test started.") ]
 553              datetime TestStartTime;
 554           
 555                 [Deprecated {"No Value"}, Description (
 556                     "The date and time when this test completed.") ]
 557              datetime TestCompletionTime;
 558           
 559                 [Deprecated {"No Value"}, Description (
 560                     "Describes how the test is progressing.  For example, if the "
 561                     "test was discontinued, the TestState will be \"Stopped\" "
 562                     "(value=5), or if testing is currently executing, TestState "
 563                     "will be \"In Progress\" (4)."), 
 564                  ValueMap {"0", "1", "2", "3", "4", "5"}, 
 565                  Values {"Unknown", "Other", "Passed", "Failed", "In Progress",
 566                     "Stopped"}, 
 567                  ModelCorrespondence { 
 568 tony  1.1           "CIM_DiagnosticResult.OtherStateDescription"} ]
 569              uint16 TestState;
 570           
 571                 [Deprecated {"No Value"}, Description (
 572                     "When \"Other\" (value=1) is entered in the TestState "
 573                     "property, OtherStateDescription can be used to describe the "
 574                     "test's state."), 
 575                  ModelCorrespondence {"CIM_DiagnosticResult.TestState"} ]
 576              string OtherStateDescription;
 577           
 578                 [Deprecated {"No Value"}, Description (
 579                     "Estimated number of seconds to perform the Diagnostic Test "
 580                     "indicated by the DiagnosticCreationClassName and "
 581                     "DiagnosticName properties.  After the test has completed, "
 582                     "the actual elapsed time can be determined by subtracting "
 583                     "the TestStartTime from the TestCompletionTime.  A similar "
 584                     "property is defined in the association, DiagnosticTest "
 585                     "ForMSE.  The difference between the two properties is that "
 586                     "the value stored in the association is a generic test "
 587                     "execution time for the Element and the Test.  But, the "
 588                     "value here (in DiagnosticResult) is the estimated time that "
 589 tony  1.1           "this instance with the given settings would take to run the "
 590                     "test.  A CIM Consumer can compare this value with the value "
 591                     "in the association DiagnosticTestForMSE to get an idea what "
 592                     "impact their settings have on test execution."), 
 593                  Units ("Seconds"), 
 594                  ModelCorrespondence { 
 595                     "CIM_DiagnosticTestForMSE.EstimatedTimeOfPerforming"} ]
 596              uint32 EstimatedTimeOfPerforming;
 597           
 598                 [Deprecated {"CIM_LogRecord.RecordData"}, Description (
 599                     "TestResults stores one or more textual results from the "
 600                     "execution of the DiagnosticTest(s) referenced by the "
 601                     "DiagnosticCreationClassName and DiagnosticName properties.  "
 602                     "One entry is considered a cell location in the array.  Each "
 603                     "entry is time stamped and contains the following "
 604                     "information, in the following format:\n"
 605                     " LogOption|yyymmddhhttssoutc|TestName|message_text\n"
 606                     " Where:\n"
 607                     "LogOption = string identical to the LogOption value in "
 608                     "DiagnosticSetting that was used to enable logging this message.\n"
 609                     "yyyy = year, e.g. 2000\n"
 610 tony  1.1           "mm = month (01 - 12)\n"
 611                     "dd = day (01 - 31)\n"
 612                     "hh = hour (00 - 24)\n"
 613                     "tt = minute (00-59)\n"
 614                     "ss = second (00-59)\n"
 615                     "o = \"+\" or \"-\" indicating the sign of the UTC "
 616                     "correction field\n"
 617                     "utc = offset from UTC (Universal Coordinated Time) in minutes\n"
 618                     "TestName = Internal test name or current internal subtest "
 619                     "name that sent the message.\n"
 620                     "Textual message = free form string that is the 'test "
 621                     "result'."), 
 622                  ArrayType ("Ordered") ]
 623              string TestResults[];
 624           
 625                 [Deprecated {"CIM_Job.PercentComplete"}, Description (
 626                     "The percentage of the test that has executed thus far, if "
 627                     "the TestState property is set to \"In Progress\" or the "
 628                     "percentage of the complete test that was executed if the "
 629                     "TestState property is set to any of the completed states "
 630                     "(\"Passed\", \"Failed\" or \"Stopped\").  Final results may "
 631 tony  1.1           "be based on less than 100% coverage due to the parameters "
 632                     "defined in DiagnosticSetting (such as QuickMode, "
 633                     "PercentOfTestCoverage or HaltOnError)."), 
 634                  Units ("Percent"), MinValue (0), MaxValue (100) ]
 635              uint8 PercentComplete;
 636              // ---------  Properties below here are copied from  ------------------
 637              // ---------  DiagnosticSettings                     ------------------
 638              // Note that the DiagnosticSetting object can be modified at any time,
 639              // and the current test settings can be lost. When RunTest starts
 640              // execution the settings, which are time sensitive, should be evaluated
 641              // and captured.
 642           
 643                 [Deprecated {"CIM_DiagnosticServiceRecord.TestWarningLevel"},
 644                  Write, Description (
 645                     "Sets the level of warning messages to be logged.  If for "
 646                     "example no warning information is required, the level would "
 647                     "be set to \"No Warnings\" (value=0).  Using \"Missing "
 648                     "Resources\" (value=1) will cause warnings to be generated "
 649                     "when required resources or hardware are not found.  Setting "
 650                     "the value to 2, \"Testing Impacts\", results in both "
 651                     "missing resources and 'test impact' warnings (for example, "
 652 tony  1.1           "multiple retries required) to be reported."), 
 653                  ValueMap {"0", "1", "2", "3"}, 
 654                  Values {"No Warnings", "Missing Resources", "Testing Impacts",
 655                     "All Warnings"} ]
 656              uint16 TestWarningLevel;
 657           
 658                 [Deprecated {"CIM_DiagnosticSetting.LogOptions"}, Write, 
 659                  Description (
 660                     "When this flag is true, the diagnostic test will report "
 661                     "'soft errors'.  In this context, a soft error is a message "
 662                     "from the diagnostic reporting a known defect in the "
 663                     "hardware or driver configuration, or execution "
 664                     "environment.  Examples are: 'Not enough memory', 'Driver "
 665                     "IOCTL not implemented', 'Video RAM compare failed during "
 666                     "polygon fill test (A known defect in the video chipset)', "
 667                     "etc.") ]
 668              boolean ReportSoftErrors;
 669           
 670                 [Deprecated {"CIM_DiagnosticSetting.LogOptions"}, Write, 
 671                  Description (
 672                     "When this flag is true, the diagnostic test will report "
 673 tony  1.1           "'status messages'.  In this context, a status message "
 674                     "indicates that the diagnostic code is at a checkpoint.  "
 675                     "Examples are: \"Completion of phase 1\", \"Complex "
 676                     "pattern\", etc.") ]
 677              boolean ReportStatusMessages;
 678           
 679                 [Deprecated {"CIM_DiagnosticServiceRecord.HaltOnError"}, Write, 
 680                  Description (
 681                     "When this flag is true, the test will halt after finding "
 682                     "the first error.") ]
 683              boolean HaltOnError;
 684           
 685                 [Deprecated {"CIM_DiagnosticServiceRecord.QuickMode"}, Write, 
 686                  Description (
 687                     "When this flag is true, the test software should attempt to "
 688                     "run in an accelerated fashion either by reducing the "
 689                     "coverage or number of tests performed.") ]
 690              boolean QuickMode;
 691           
 692                 [Deprecated {"CIM_DiagnosticServiceRecord.PercentOfTestCoverage"},
 693                  Write, Description (
 694 tony  1.1           "Requests the diagnostic software to reduce test coverage to "
 695                     "the specified percentage.  For example, a hard drive scan "
 696                     "test could be asked to run at 50%.  The most effective way "
 697                     "to accomplish this is for the test software to scan every "
 698                     "other track, as opposed to only scanning the first half of "
 699                     "a drive.  It is assumed that the effectiveness of the test "
 700                     "is impacted proportional to the percentage of testing "
 701                     "requested.  Permissible values for this property range from "
 702                     "0 to 100.\n"
 703                     "This property may not be applicable to all tests.  If it "
 704                     "can be set for a test, the value 7 (\"Supports PercentOf "
 705                     "TestCoverage\") should be entered into the DiagnosticTest's "
 706                     "Characteristics array."), 
 707                  Units ("Percent"), MinValue (0), MaxValue (100), 
 708                  ModelCorrespondence 
 709                     {"CIM_DiagnosticServiceCapabilities.SupportedServiceModes"} ]
 710              uint8 PercentOfTestCoverage;
 711           };
 712           
 713           // ==================================================================
 714           // DiagnosticResultForMSE
 715 tony  1.1 // ==================================================================
 716              [Association, Deprecated {"No Value"}, Version ("2.7.1000"), 
 717               Description (
 718                  "This class is being deprecated as part of the deprecation of "
 719                  "the DiagnosticResult class.\n"
 720                  "This is an association class relating diagnostic test results "
 721                  "to the ManagedSystemElement that is/was tested.") ]
 722           class CIM_DiagnosticResultForMSE {
 723           
 724                 [Deprecated {"No Value"}, Key, Description (
 725                     "The diagnostic result.") ]
 726              CIM_DiagnosticResult REF Result;
 727           
 728                 [Deprecated {"No Value"}, Key, Description (
 729                     "The ManagedSystemElement to which the diagnostic result "
 730                     "applies.") ]
 731              CIM_ManagedSystemElement REF SystemElement;
 732           };
 733           
 734           
 735           
 736 tony  1.1 // ==================================================================
 737           // DiagnosticService
 738           // ==================================================================
 739              [Experimental, Abstract, Version ("2.7.1000"), Description (
 740                  "The CIM_DiagnosticService class provides the ability to start "
 741                  "a service that functions to participate in a problem "
 742                  "determination process.  Specific diagnostic services may be "
 743                  "defined by subclassing this class.  Examples of a diagnostic "
 744                  "service are tests, information retrievers, exercisers, and "
 745                  "ports to external executives.") ]
 746           class CIM_DiagnosticService : CIM_Service {
 747           
 748                 [Description (
 749                     "The RunDiagnostic method executes this test for the "
 750                     "specified ManagedSystemElement (defined using the "
 751                     "SystemElement input parameter).  The capabilities for the "
 752                     "diagnostic service will indicate where the results from the "
 753                     "test job are stored.  How the test should execute, i.e.  "
 754                     "its settings, is defined in a DiagnosticSetting object (or "
 755                     "by a subclass of DiagnosticSetting).  A reference to a "
 756                     "Setting object is specified using the Setting input "
 757 tony  1.1           "parameter.  If a reference is not passed into the method, "
 758                     "then a default DiagnosticSetting may be used.\n"
 759                     "When RunDiagnostic starts execution, the settings, which "
 760                     "are time sensitive, should be evaluated and captured.  This "
 761                     "is suggested since the DiagnosticSetting object can be "
 762                     "modified at any time, and therefore the current test "
 763                     "settings could be lost.\n"
 764                     "If 0 is returned, the function completed successfully and "
 765                     "no ConcreteJob instance is created.  If 0x1000 a "
 766                     "ConcreteJob will be started."), 
 767                  ValueMap {"0", "1", "2", "3", "4", "5", "..", "0x1000", "..",
 768                     "0x8000.."}, 
 769                  Values {"Job completed with no error", "Not Supported",
 770                     "Unknown", "Timeout", "Failed", "Invalid Parameter",
 771                      "DMTF Reserved", "Method parameters checked - job started",
 772                     "Method Reserved", "Vendor Specific"} ]
 773              uint32 RunDiagnostic(
 774                  [IN,  Description ("Specifies the element upon which the "
 775                  "DiagnosticService SHOULD be run.") ]
 776                  CIM_ManagedElement REF ManagedElement,
 777                  [IN, Description ("Specifies the desired settings that "
 778 tony  1.1        "SHOULD be applied to the Diagnostic.  If null, then "
 779                  "the Diagnostic's defaults MAY be used.") ]
 780                  CIM_DiagnosticSetting REF DiagSetting,
 781                  [IN, Description ("Specifies the desired settings that "
 782                  "SHOULD be applied to the resulting Job.  If null and a "
 783                  "resulting Job is required (i.e., the Diagnostic is long "
 784                  "running), then the test's defaults MAY be used.") ]
 785                  CIM_JobSettingData REF JobSetting,
 786                  [IN(FALSE), OUT,
 787                  Description ("Returns a handle to the resulting Job." ) ]
 788                  CIM_ConcreteJob REF Job);
 789           };
 790           
 791           
 792           // ==================================================================
 793           // DiagnosticTest
 794           // ==================================================================
 795              [Version ("2.7.1000"), Description (
 796                  "The CIM_DiagnosticTest class represents the framework for "
 797                  "running diagnostic tests.  Specific diagnostic tests may be "
 798                  "defined by subclassing and/or instantiating this object.  To "
 799 tony  1.1        "provide more detail for a type of test(s) (i.e, additional "
 800                  "properties and methods), subclassing is appropriate.  Note "
 801                  "that a DiagnosticTest can be simultaneously executed against "
 802                  "several elements.  If so, a DiagnosticTest may launch a "
 803                  "ConcreteJob to represent each execution.") ]
 804           class CIM_DiagnosticTest : CIM_DiagnosticService {
 805           
 806                 [Description (
 807                     "The descriptions for each Characteristic are below:\n"
 808                     "\n"
 809                     "* \"Is Exclusive\" (value=2) is specified for the test "
 810                     "module only if the diagnostic cannot run more than one test "
 811                     "at a time, regardless of how many SystemElements are "
 812                     "supported.  Typically, this occurs when hardware or "
 813                     "software constraints prevent the test from running as "
 814                     "multiple, concurrent instances.  If the diagnostic can be "
 815                     "run against multiple SystemElements, but only once per "
 816                     "Element, then set the IsExclusiveForMSE boolean property on "
 817                     "the appropriate instances of DiagnosticTestForMSE.\n"
 818                     "\n"
 819                     "* If \"Is Interactive\" (value=3) is set, then the "
 820 tony  1.1           "diagnostic displays a message either before, during or "
 821                     "after testing.\n"
 822                     "\n"
 823                     "* Set \"Is Destructive\" (value=4) if the diagnostic will "
 824                     "destroy data, or reconfigure the Element that is being tested.\n"
 825                     "\n"
 826                     "* \"Is Risky\" (value=5) indicates that data loss may occur "
 827                     "if the test is interrupted.  Some tests make copies of "
 828                     "data, perform the test, and restore the data returning the "
 829                     "tested entity to its previous configuration.  If the test "
 830                     "is interrupted, then loss of data or reconfiguration of the "
 831                     "tested ManagedSystemElement may occur.\n"
 832                     "\n"
 833                     "* If \"Is Package\" (value=6) is set, this test is actually "
 834                     "a set of lower level diagnostics, that are packaged "
 835                     "together by the test.  This packaging is implemented by the "
 836                     "diagnostic test, not aggregated by CIM.  Information and "
 837                     "results associated with the individual tests in the package "
 838                     "may be requested by using the \"Subtests\" value in the "
 839                     "DiagnosticSetting.LogOptions array.\n"
 840                     "\n"
 841 tony  1.1           "\"Supports PercentOfTestCoverage\" (value=7) indicates that "
 842                     "a request for reduced test coverage can be specified using "
 843                     "the PercentOfTestCoverage property of Diagnostic Setting.\n"
 844                     "\n"
 845                     "\"Is Synchronous\" (value=8) indicates that this diagnostic "
 846                     "service will complete before the RunDiagnostic method "
 847                     "returns to the caller.  Otherwise, RunDiagnostic may return "
 848                     "a reference to CIM_Job object that can be used for "
 849                     "monitoring and interacting with the diagnostic service.  If "
 850                     "the service is synchronous, this capability is lost.  "
 851                     "Additionally, in certain environments, the client may be "
 852                     "\"blocked\" from further action until the service completes.\n"
 853                     "Also, the values \"Unknown\" (0) and \"Other\" (1) may be "
 854                     "specified.  If \"Other\" is defined, additional detail may "
 855                     "be found in the OtherCharacteristicDescription property of "
 856                     "this class."), 
 857                  ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8"}, 
 858                  Values {"Unknown", "Other", "Is Exclusive", "Is Interactive",
 859                     "Is Destructive", "Is Risky", "Is Package",
 860                      "Supports PercentOfTestCoverage", "Is Synchronous"}, 
 861                  ModelCorrespondence { 
 862 tony  1.1           "CIM_DiagnosticTest.OtherCharacteristicDescription"} ]
 863              uint16 Characteristics[];
 864           
 865                 [Description (
 866                     "Provides additional information for the Characteristic when "
 867                     "its value is set to 1 (\"Other\")."), 
 868                  ModelCorrespondence {"CIM_DiagnosticTest.Characteristics"} ]
 869              string OtherCharacteristicDescription;
 870           
 871                 [Deprecated {"CIM_DiagnosticTest.Started"}, Description (
 872                     "Indicates if this test is currently being performed.  "
 873                     "property is set to TRUE.  To determine which ManagedSystem "
 874                     "Element is being tested, query the DiagnosticResult objects "
 875                     "associated with this test (query DiagnosticResultForTest), "
 876                     "and for which the TestState equals 4 (\"In Progress\").  "
 877                     "The DiagnosticResult object is associated with the System "
 878                     "Element under test, using DiagnosticResultForMSE.\n"
 879                     "The use of this property has been deprecated.  Instead, the "
 880                     "inherited property Started should be used.") ]
 881              boolean IsInUse;
 882           
 883 tony  1.1       [Deprecated {"CIM_ServiceAffectsElement.AffectedElement"}, 
 884                  Description (
 885                     "The \"Expensive\" qualifier can be applied to this class "
 886                     "and its RunTest method.  If so, the ResourcesUsed property "
 887                     "describes the resources that are capitalized, based on a "
 888                     "default setup for the test.  Multiple resources can be "
 889                     "specified since the property is an array.\n"
 890                     "The use of this property has been deprecated.  Instead, "
 891                     "association, ServiceAffectsElement, should be between the "
 892                     "DiagnosticTest and the Resource being used."), 
 893                  ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
 894                     "10", "11", "12", "13", "14", "15", "16", "17", "18", "19",
 895                     "20", "21", "22", "23", "24", "25", "26"}, 
 896                  Values {"CPU", "Memory", "Hard Disk", "CDROM", "Floppy",
 897                      "PCI Bus", "USB Bus", "1394 Bus", "SCSI Bus", "IDE Bus",
 898                     "Network", "ISA Bus", "EISA Bus", "VESA Bus", "PCMCIA Bus",
 899                     "CardBus", "Access.bus", "NuBus", "AGP", "VME Bus",
 900                      "Sbus IEEE 1396-1993", "MCA Bus", "GIO Bus", "XIO Bus",
 901                      "HIO Bus", "PMC Bus", "SIO Bus"} ]
 902              uint16 ResourcesUsed[];
 903           
 904 tony  1.1       [Deprecated {"CIM_DiagnosticService.RunDiagnostic"}, 
 905                  Description (
 906                     "The RunTest method executes this test for the specified "
 907                     "specified ManagedSystemElement (defined using the "
 908                     "SystemElement input parameter).\n"
 909                     "The use of this method has been deprecated.  Instead, the "
 910                     "RunDiagnostic method (inherited from DiagnosticService) "
 911                     "should be used.\n"
 912                     "Results of the test are stored in a DiagnosticResult "
 913                     "object, a reference to which is returned as the Result "
 914                     "output parameter.  How the test should execute, i.e.  its "
 915                     "settings, is defined in a DiagnosticSetting object (or by a "
 916                     "subclass of DiagnosticSetting).  A reference to a Setting "
 917                     "object is specified using the Setting input parameter.  If "
 918                     "a reference is not passed into the method, then a default "
 919                     "DiagnosticSetting may be used.  This default Setting is "
 920                     "associated with the DiagnoticTest using the DefaultSetting "
 921                     "relationship of the Core Model.\n"
 922                     "When RunTest starts execution, the settings, which are time "
 923                     "sensitive, should be evaluated and captured.  This is "
 924                     "suggested since the DiagnosticSetting object can be "
 925 tony  1.1           "modified at any time, and therefore the current test "
 926                     "settings could be lost.\n"
 927                     "The method's return codes are expected to adhere to the XML "
 928                     "return codes as they are introduced.  Currently, the "
 929                     "standard return values are:\n"
 930                     "0 = OK (function succeeded, but the test itself may have failed\n"
 931                     "1 = Unspecified Error (function failed for unspecified reasons)\n"
 932                     "2 = Not Implemented (function is not implemented for this instance)\n"
 933                     "3 = Out Of Resources (component could not allocate required "
 934                     "resources, e.g.  memory, disk space, etc.)\n"
 935                     "In a subclass, the set of possible return codes could be "
 936                     "specified, using a ValueMap qualifier on the method.  The "
 937                     "strings to which the ValueMap contents are 'translated' may "
 938                     "also be specified in the subclass as a Values array "
 939                     "qualifier.") ]
 940              uint32 RunTest(
 941                  [IN] CIM_ManagedSystemElement REF SystemElement,
 942                  [IN] CIM_DiagnosticSetting REF Setting,
 943                  [IN (false), OUT] CIM_DiagnosticResult REF Result);
 944           
 945                 [Description (
 946 tony  1.1           "Execution of this method will delete all instances of the "
 947                     "DiagnosticResultForMSE object, for this DiagnosticTest and "
 948                     "the specified ManagedSystemElement (defined using the "
 949                     "SystemElement input parameter).  The DiagnosticResults "
 950                     "referenced in the DiagnosticResultForMSE instances will be "
 951                     "deleted.  Also the association DiagnosticResultForTest that "
 952                     "refers to the DiagnosticResult object, and this test will "
 953                     "be deleted.\n"
 954                     "One output parameter is defined - ResultsNotCleared - which "
 955                     "is a string array that lists the keys of the "
 956                     "DiagnosticResults which could not be deleted.  This "
 957                     "information enables those Results to be revisited and "
 958                     "either manually removed, or other corrective action taken.\n"
 959                     "The method's return codes are expected to adhere to the XML "
 960                     "return codes as they are introduced.  Currently, the "
 961                     "standard return values are:\n"
 962                     "0 = OK (function succeeded, but the test itself may have failed)\n"
 963                     "1 = Unspecified Error (function failed for unspecified reasons)\n"
 964                     "2 = Not Implemented (function is not implemented for this instance)\n"
 965                     "3 = Out Of Resources (component could not allocate required "
 966                     "resources, e.g.  memory, disk space, etc.)\n"
 967 tony  1.1           "In a subclass, the set of possible return codes could be "
 968                     "specified, using a ValueMap qualifier on the method.  The "
 969                     "strings to which the ValueMap contents are 'translated' may "
 970                     "also be specified in the subclass as a Values array "
 971                     "qualifier.") ]
 972              uint32 ClearResults(
 973                  [IN] CIM_ManagedSystemElement REF SystemElement,
 974                  [IN (false), OUT] string ResultsNotCleared[]);
 975           
 976                 [Deprecated {"CIM_EnabledLogicalElement.RequestedState"}, 
 977                  Description (
 978                     "After invocation of this method and its completion, the "
 979                     "specified test(s) will be discontinued for the indicated "
 980                     "ManagedSystemElement (defined by the SystemElement input parameter).\n"
 981                     "The use of this method has been deprecated.  Instead the "
 982                     "RequestedState (inherited property from "
 983                     "EnabledLogicalElement) should be used to control the "
 984                     "execution of the test.\n"
 985                     "The test to discontinue is specified using the Result input "
 986                     "parameter.  If all instances of this test should be stopped "
 987                     "for the SystemElement, then the Result reference should be "
 988 tony  1.1           "NULL.  Upon completion of the method, test status and other "
 989                     "information (such as PercentComplete) will be stored in the "
 990                     "DiagnosticResult instance defined by the Result input "
 991                     "parameter.  The output parameter, TestingStopped, is used "
 992                     "as follows:\n"
 993                     "Set to TRUE if testing was successfully stopped.\n"
 994                     "Set to FALSE if the current test(s) can not be stopped.\n"
 995                     "If set to FALSE, testing will stop when the diagnostic is "
 996                     "able to do so safely.  To determine if/when the testing is "
 997                     "stopped, check the TestState property in the "
 998                     "DiagnosticResult instance defined by the Result parameter.  "
 999                     "TestState will change from \"In Progress\" to \"Stopped\" "
1000                     "(from 4 to 5).\n"
1001                     "The method's return codes are expected to adhere to the XML "
1002                     "return codes as they are introduced.  Currently, the "
1003                     "standard return values are:\n"
1004                     "0 = OK (function succeeded, but the test itself may have failed\n"
1005                     "1 = Unspecified Error (function failed for unspecified reasons)\n"
1006                     "2 = Not Implemented (function is not implemented for this instance)\n"
1007                     "3 = Out Of Resources (component could not allocate required "
1008                     "resources, e.g.  memory, disk space, etc.)\n"
1009 tony  1.1           "In a subclass, the set of possible return codes could be "
1010                     "specified, using a ValueMap qualifier on the method.  The "
1011                     "strings to which the ValueMap contents are 'translated' may "
1012                     "also be specified in the subclass as a Values array "
1013                     "qualifier.") ]
1014              uint32 DiscontinueTest(
1015                  [IN] CIM_ManagedSystemElement REF SystemElement,
1016                  [IN] CIM_DiagnosticResult REF Result,
1017                  [IN (false), OUT] Boolean TestingStopped);
1018           };
1019           
1020           // ==================================================================
1021           // DiagnosticResultForTest
1022           // ==================================================================
1023              [Association, Deprecated {"No Value"}, Version ("2.7.1000"), 
1024               Description (
1025                  "This class is being deprecated as part of the deprecation of "
1026                  "the DiagnosticResult class.\n"
1027                  "This is an association class to relate the results of a test "
1028                  "to the test itself.") ]
1029           class CIM_DiagnosticResultForTest {
1030 tony  1.1 
1031                 [Deprecated {"No Value"}, Key, Weak, Min (1), Max (1), 
1032                  Description (
1033                     "The result object.") ]
1034              CIM_DiagnosticResult REF DiagnosticResult;
1035           
1036                 [Deprecated {"No Value"}, Key, Min (1), Max (1), Description (
1037                     "The test that generated the result object.") ]
1038              CIM_DiagnosticTest REF DiagnosticTest;
1039           };
1040           
1041           // ==================================================================
1042           // DiagnosticTestForMSE
1043           // ==================================================================
1044              [Association, Deprecated {"CIM_AvailableDiagnosticService"},
1045               Version ("2.7.1000"), Description (
1046                  "This class is being deprecated to promote its usage to the "
1047                  "DiagnosticService level.\n"
1048                  "This is an association class that relates a DiagnosticTest to "
1049                  "a ManagedSystemElement.  Consumers wishing to 'diagnose' a "
1050                  "particular Element could query this association, for the "
1051 tony  1.1        "Element, to determine what tests are available.") ]
1052           class CIM_DiagnosticTestForMSE : CIM_ProvidesServiceToElement {
1053           
1054                 [Deprecated {"CIM_AvailableDiagnosticService.ServiceProvided"},
1055                  Override ("Antecedent"), Description (
1056                     "The test that may be run against a ManagedSystemElement.") ]
1057              CIM_DiagnosticTest REF Antecedent;
1058           
1059                 [Deprecated {"CIM_AvailableDiagnosticService.UserOfService"},
1060                  Override ("Dependent"), Description (
1061                     "The ManagedSystemElement that can be tested.") ]
1062              CIM_ManagedSystemElement REF Dependent;
1063           
1064                 [Deprecated 
1065                     {"CIM_AvailableDiagnosticService.EstimatedTimeOfPerforming"}, 
1066                  Description (
1067                     "Estimated number of seconds to perform the referenced "
1068                     "DiagnosticTest against the ManagedSystemElement.  Since "
1069                     "execution times could vary by Element, this property is "
1070                     "located in the association between the two entities.  It is "
1071                     "also captured in DiagnosticResult, in the "
1072 tony  1.1           "EstimatedTimeOfPerforming property.\n"
1073                     "A CIM Consumer can compare this value with the value in "
1074                     "DiagnosticResult to get an idea of what impact their "
1075                     "settings have on test execution."), 
1076                  Units ("Seconds"), 
1077                  ModelCorrespondence { 
1078                     "CIM_DiagnosticResult.EstimatedTimeOfPerforming"} ]
1079              uint32 EstimatedTimeOfPerforming;
1080           
1081                 [Deprecated {"CIM_ServiceAffectsElement.ElementEffects"}, 
1082                  Description (
1083                     "This property is being deprecated since the same "
1084                     "characterisitic can be published in the "
1085                     "CIM_ServiceAffectsElement.ElementEffects array as \"Value = "
1086                     "2, \"Exclusive Use\".\n"
1087                     "If the DiagnosticTest referenced in this object can be run "
1088                     "concurrently against multiple SystemElements, but only run "
1089                     "one at a time for the referenced ManagedSystemElement, then "
1090                     "this boolean is set to TRUE.  Alternately, if the test can "
1091                     "NOT be run concurrently irregardless of the System Elements "
1092                     "being tested, then the more general \"Is Exclusive\" "
1093 tony  1.1           "enumerated value (2) should be set in DiagnosticTest.  "
1094                     "Characteristics.") ]
1095              boolean IsExclusiveForMSE;
1096           };
1097           
1098           
1099           // ==================================================================
1100           // DiagnosticSettingForTest
1101           // ==================================================================
1102              [Association, Deprecated {"CIM_ElementSetting"},
1103               Version ("2.7.1000"), Description (
1104                  "This class is no longer required and is being deprecated.  Use "
1105                  "ElementSetting (its parent) instead if the association is needed.\n"
1106                  "This is an association class to relate test settings with "
1107                  "diagnostic tests.") ]
1108           class CIM_DiagnosticSettingForTest : CIM_ElementSetting {
1109           
1110                 [Deprecated {"CIM_ElementSetting.Element"}, Override ("Element"), 
1111                  Description (
1112                     "The Test that can use the Setting object.") ]
1113              CIM_DiagnosticTest REF Element;
1114 tony  1.1 
1115                 [Deprecated {"CIM_ElementSetting.Setting"}, Override ("Setting"), 
1116                  Description (
1117                     "The Setting that can be applied to the execution of the "
1118                     "DiagnosticTest.") ]
1119              CIM_DiagnosticSetting REF Setting;
1120           };
1121           
1122           
1123           // ==================================================================
1124           // DiagnosticTestInPackage
1125           // ==================================================================
1126              [Association, Deprecated {"No value"}, Aggregation,
1127               Version ("2.7.0"), Description (
1128                  "This class is being deprecated.  Tests should be grouped at "
1129                  "the test level, not in the model.  Therefore, the association "
1130                  "is not appropriate.  /n This is an association class that "
1131                  "identifies a Diagnostic Test as made up of lower level Tests.  "
1132                  "In this case, the test identified as the GroupComponent "
1133                  "reference (i.e, the higher level test) would have the \"Is "
1134                  "Package\" enumerated value specified in DiagnosticTest.  "
1135 tony  1.1        "Characteristics.") ]
1136           class CIM_DiagnosticTestInPackage : CIM_Component {
1137           
1138                 [Deprecated {"No value"}, Aggregate, Override ("GroupComponent"), 
1139                  Description (
1140                     "The DiagnosticTest object that acts as the container for "
1141                     "all the tests of the package.") ]
1142              CIM_DiagnosticTest REF GroupComponent;
1143           
1144                 [Deprecated {"No value"}, Override ("PartComponent"), 
1145                  Description (
1146                     "The DiagnosticTest object that is one of the elements of "
1147                     "the package.") ]
1148              CIM_DiagnosticTest REF PartComponent;
1149           };
1150           
1151           
1152           // ==================================================================
1153           // DiagnosticResultInPackage
1154           // ==================================================================
1155              [Association, Deprecated {"No value"}, Aggregation,
1156 tony  1.1     Version ("2.7.0"), Description (
1157                  "This class is being deprecated.  Tests should be grouped at "
1158                  "the test level, not by the model.  Therefore, this association "
1159                  "is no longer appropriate.  /n This is an association class "
1160                  "that identifies a Diagnostic Result as made up of lower level "
1161                  "Results.  In this case, the Result identified as the "
1162                  "PackageResult reference (i.e., the higher level result) would "
1163                  "have its IsPackage property set to TRUE.") ]
1164           class CIM_DiagnosticResultInPackage {
1165           
1166                 [Deprecated {"No value"}, Key, Aggregate, Description (
1167                     "The DiagnosticResult object that acts as the container for "
1168                     "all the results of the package.") ]
1169              CIM_DiagnosticResult REF PackageResult;
1170           
1171                 [Deprecated {"No value"}, Key, Description (
1172                     "The DiagnosticResult object that is one of the elements of "
1173                     "the package.") ]
1174              CIM_DiagnosticResult REF Result;
1175           };
1176           
1177 tony  1.1 
1178           // ==================================================================
1179           // DiagnosticServiceCapabilities
1180           // ==================================================================
1181              [Experimental, Version ("2.7.1000"), Description (
1182                  "DiagnosticServiceCapabilities is a class that describes the "
1183                  "capabilities of the diagnostic service.  This provides the "
1184                  "means for the diagnostic service to describe its abilities, "
1185                  "limitations, and/or potential for use of various diagnostic "
1186                  "service parameters.  For example, what types of settings the "
1187                  "diagnostic service supports.") ]
1188           class CIM_DiagnosticServiceCapabilities : CIM_Capabilities {
1189           
1190                 [Description (
1191                     "The SupportedServiceModes property lists the operational "
1192                     "modes that are supported by the Diagnostic Service./n These "
1193                     "modes may correspond to, but are not limited to, settings "
1194                     "that may be applied to a Diagnostic Service."), 
1195                  ValueMap {"0", "1", "2", "3", "4", "5", "6"}, 
1196                  Values {"Unknown", "Other", "TestWarningLevel",
1197                     "PercentOfTestCoverage", "QuickMode", "HaltOnError",
1198 tony  1.1           "ResultPersistence"}, 
1199                  ArrayType ("Indexed"), 
1200                  ModelCorrespondence { "CIM_DiagnosticServiceCapabilities." 
1201                     "OtherSupportedServiceModesDescriptions"} ]
1202              uint16 SupportedServiceModes[];
1203           
1204                 [Description (
1205                     "Provides additional information for SupportedServiceMode "
1206                     "when its value is set to 1 (\"Other\")."), 
1207                  ArrayType ("Indexed"), 
1208                  ModelCorrespondence { "CIM_DiagnosticServiceCapabilities." 
1209                     "SupportedServiceModes"} ]
1210              string OtherSupportedServiceModesDescriptions[];
1211           
1212                 [Description (
1213                     "The SupportedLoopControl property lists the loop controls "
1214                     "that are supported by the Diagnostic Service."), 
1215                  ValueMap {"0", "1", "2", "3", "4", "5"}, 
1216                  Values {"Unknown", "Other", "Continuous", "Count", "Timer",
1217                     "ErrorCount"}, 
1218                  ArrayType ("Indexed"), 
1219 tony  1.1        ModelCorrespondence {"CIM_DiagnosticSetting.LoopControl",
1220                     "CIM_DiagnosticServiceCapabilities." 
1221                     "OtherSupportedLoopControlDescriptions" } ]
1222              uint16 SupportedLoopControl[];
1223           
1224                 [Description (
1225                     "Provides additional information for SupportedLoopControl "
1226                     "when its value is set to 1 (\"Other\")."), 
1227                  ArrayType ("Indexed"), 
1228                  ModelCorrespondence { 
1229                     "CIM_DiagnosticServiceCapabilities.SupportedLoopControl"} ]
1230              string OtherSupportedLoopControlDescriptions[];
1231           
1232                 [Description (
1233                     "The SupportedLogOptions property lists the log options that "
1234                     "are supported by the Diagnostic Service.  A brief summary "
1235                     "of the various log options can be found in "
1236                     "CIM_DiagnosticSetting.LogOptions."), 
1237                  ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
1238                     "10", "11", "12", "13", "14", "15" }, 
1239                  Values {"Unknown", "Other", "Test Errors", "Soft Errors",
1240 tony  1.1           "Status", "Warnings", "Hardware Configuration", "Debug",
1241                     "Statistics", "Actions", "Software Configuration",
1242                     "Subtests", "References", "Results", "Results Summary",
1243                     "Setting Data"}, 
1244                  ArrayType ("Indexed"), 
1245                  ModelCorrespondence { 
1246                     "CIM_DiagnosticServiceCapabilities.OtherSupportedLogOptionDescriptions"} ]
1247              uint16 SupportedLogOptions[];
1248           
1249                 [Description (
1250                     "Provides additional information for SupportedLogOptions "
1251                     "when its value is set to 1 (\"Other\")."), 
1252                  ArrayType ("Indexed"), 
1253                  ModelCorrespondence { 
1254                     "CIM_DiagnosticServiceCapabilities.SupportedLogOptions"} ]
1255              string OtherSupportedLogOptionDescriptions[];
1256           
1257                 [Description (
1258                     "The SupportedLogStorage property lists the storage options "
1259                     "for logging that are supported by the Diagnostic Service.\n"
1260                     "The values are:\n"
1261 tony  1.1           "\"ResultArray\" (Value = 2): Supports writing log "
1262                     "information to the TestResult array of a DiagnosticResult instance.\n"
1263                     "\"LogRecords\" (Value = 3): Supports writing log "
1264                     "information to a vendor defined subclass of the "
1265                     "DiagnosticServiceRecord class as recommended in the "
1266                     "description of its parent class CIM_LogRecord.\n"
1267                     "\"MessageLog\" (Value = 4): Supports writing log "
1268                     "information using the defined methods of the MessageLog class.\n"
1269                     "\"File\" (Value = 5): Supports writing log information to a "
1270                     "file."), 
1271                  ValueMap {"0", "1", "2", "3", "4", "5"}, 
1272                  Values {"Unknown", "Other", "ResultArray", "LogRecords",
1273                     "MessageLog", "File"}, 
1274                  ArrayType ("Indexed"), 
1275                  ModelCorrespondence { "CIM_DiagnosticServiceCapabilities." 
1276                     "OtherSupportedLogStorageDescriptions"} ]
1277              uint16 SupportedLogStorage[];
1278           
1279                 [Description (
1280                     "Provides additional information for SupportedLogStorage "
1281                     "when its value is set to 1 (\"Other\")."), 
1282 tony  1.1        ArrayType ("Indexed"), 
1283                  ModelCorrespondence { 
1284                     "CIM_DiagnosticServiceCapabilities.SupportedLogStorage"} ]
1285              string OtherSupportedLogStorageDescriptions[];
1286           
1287                 [Description (
1288                     "The SupportedExecutionControls property lists the job "
1289                     "controls that are supported by the Diagnostic Service.  The "
1290                     "values are:\n"
1291                     "\"JobCreation\" (Value = 2): publishes that a ConcreteJob "
1292                     "instance will be created to control the diagnostic job "
1293                     "launched by the diagnostic service.\n"
1294                     "\"KillJob\" (Value = 3): publishes that the diagnostic "
1295                     "service has implemented the KillJob method in ConcreteJob.\n"
1296                     "\"Enable/Disable Job\" (Value = 4): publishes that the "
1297                     "diagnostic service can pause and resume execution of the "
1298                     "diagnostic job.  This is accomplished by setting the "
1299                     "RequestedState property that ConcreteJob inherits from "
1300                     "CIM_EnabledLogicalElement to values Disabled to suspend and "
1301                     "Enabled to resume.\n"
1302                     "\"Shutdown Job\" (Value = 5): publishes that the diagnostic "
1303 tony  1.1           "service can gracefully shutdown execution of the diagnostic "
1304                     "job.  Which is accomplished by setting the RequestedState "
1305                     "property that ConcreteJob inherits from "
1306                     "CIM_EnabledLogicalElement to the value, Shut Down."), 
1307                  ValueMap {"0", "1", "2", "3", "4", "5"}, 
1308                  Values {"Unknown", "Other", "Job Creation", "Kill Job",
1309                     "Enable/Disable Job", "Shutdown Job"}, 
1310                  ArrayType ("Indexed"), 
1311                  ModelCorrespondence { "CIM_DiagnosticServiceCapabilities." 
1312                     "OtherSupportedExecutionControlsDescriptions"} ]
1313              uint16 SupportedExecutionControls[];
1314           
1315                 [Description (
1316                     "Provides additional information for "
1317                     "SupportedExecutionControls when its value is set to 1 "
1318                     "(\"Other\")."), 
1319                  ArrayType ("Indexed"), 
1320                  ModelCorrespondence { "CIM_ " 
1321                     "DiagnosticServiceCapabilities.SupportedExecutionControls"} ]
1322              string OtherSupportedExecutionControlsDescriptions[];
1323           
1324 tony  1.1       [Description (
1325                     "The SupportedResultLevels property lists the verbosity "
1326                     "levels that are supported by the Diagnostic Service.\n"
1327                     "A client may want the ability to specify the depth of "
1328                     "information returned when a diagnostic service is invoked.  "
1329                     "This requirement ranges from a simple pass/fail to a need "
1330                     "for large logs, diaries, etc.  The five levels of verbosity "
1331                     "are defined as follows:\n"
1332                     "* \"Minimum\" (value=2) is specified if the least verbose "
1333                     "level of result information is desired; typically this is "
1334                     "Pass or Fail.\n"
1335                     "* \"Short\" (value=3) is the shortest form of standard messaging.\n"
1336                     "* \"Standard\" (value=4) is standard messaging.\n"
1337                     "* \"Long\" (value=5) is the longest form of standard messaging.\n"
1338                     "* \"Full\" (value=6) is a request for all information "
1339                     "available, regardless of size.\n"
1340                     "The default, when no value is specified, is \"Standard\"."), 
1341                  ValueMap {"2", "3", "4", "5", "6"}, 
1342                  Values {"Minimum", "Short", "Standard", "Long", "Full"} ]
1343              uint16 SupportedResultLevels[];
1344           
1345 tony  1.1       [Description (
1346                     "Lists the level of warning messages that MAY be logged.  If "
1347                     "for example no warning information is required, the level "
1348                     "would be set to \"No Warnings\" (value=0).  Using \"Missing "
1349                     "Resources\" (value=1) will cause warnings to be generated "
1350                     "when required resources or hardware are not found.  Setting "
1351                     "the value to 2, \"Testing Impacts\", results in both "
1352                     "missing resources and 'test impact' warnings (for example, "
1353                     "multiple retries required) to be reported."), 
1354                  ValueMap {"0", "1", "2", "3"}, 
1355                  Values {"No Warnings", "Missing Resources", "Testing Impacts",
1356                     "All Warnings"} ]
1357              uint16 SupportedTestWarnings[];
1358           };
1359           
1360           // ==================================================================
1361           // DiagnosticRecord
1362           // ==================================================================
1363              [Experimental, Version ("2.7.1000"), Description (
1364                  "Data related to Diagnostics may be recorded in various "
1365                  "DiagnosticRecord objects.  The type of information that is "
1366 tony  1.1        "recorded in a log is specified via the LogOptions property in "
1367                  "DiagnosticSetting.") ]
1368           class CIM_DiagnosticRecord : CIM_LogRecord {
1369           
1370                 [Required, Description (
1371                     "This property should reflect the value of the underlying "
1372                     "DiagnosticService.Name property."), 
1373                  ModelCorrespondence {"CIM_DiagnosticService.Name"} ]
1374              string ServiceName;
1375           
1376                 [Required, Description (
1377                     "A unique identifier representing a single execution of a "
1378                     "DiagnosticService on an instance of a managed element.  All "
1379                     "records created by this Service execution must have the "
1380                     "same ExecutionID value, and that value must be unique "
1381                     "across all Service executions.\n"
1382                     "The ExecutionID property is distinct from "
1383                     "LogRecord.RecordID in that a MessageLog may aggregate "
1384                     "multiple records with the same ExecutionID, corresponding "
1385                     "to a single invokation of a Service, but each of these "
1386                     "records will have unique RecordIDs."), 
1387 tony  1.1        ModelCorrespondence {"CIM_DiagnosticJob.ExecutionID"} ]
1388              string ExecutionID ;
1389           
1390                 [Required, Description (
1391                     "The date and time that the record instance should be "
1392                     "deleted.  The expiration datetime should be set when the "
1393                     "record is fully populated with record data.  The value "
1394                     "should be calculated using the ResultPersistence property "
1395                     "of the DiagnosticSetting class.\n"
1396                     "If a ResultPersistence value is not provided, the "
1397                     "ExpirationDate should be set to the current datetime.\n"
1398                     "Once the date has expired, instances should be deleted as "
1399                     "soon as possible."), 
1400                  ModelCorrespondence {"CIM_DiagnosticSetting.ResultPersistence"} ]
1401              datetime ExpirationDate;
1402           
1403                 [Description (
1404                     "The RecordType property specifies the nature of the data "
1405                     "being entered into the ServiceRecord.  The value in this "
1406                     "property should match one of the values indicated by the "
1407                     "DiagnosticSetting.LogOptions property.  A brief summary of "
1408 tony  1.1           "the various log options can be found in "
1409                     "CIM_DiagnosticSetting.LogOptions."), 
1410                  ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
1411                     "10", "11", "12", "13", "14", "15"}, 
1412                  Values {"Unknown", "Other", "Test Errors", "Soft Errors",
1413                     "Status", "Warnings", "Hardware Configuration", "Debug",
1414                     "Statistics", "Actions", "Software Configuration",
1415                     "Subtests", "References", "Results", "Result Summary",
1416                     "Setting Data"}, 
1417                  ModelCorrespondence {"CIM_DiagnosticSetting.LogOptions",
1418                     "CIM_DiagnosticRecord.OtherRecordTypeDescription"} ]
1419              uint16 RecordType;
1420           
1421                 [Description (
1422                     "When \"Other\" (value=1) is entered in the RecordType "
1423                     "property, OtherRecordTypeDescription can be used to "
1424                     "describe the message type."), 
1425                  ModelCorrespondence { 
1426                     "CIM_DiagnosticSetting.OtherLogOptionsDescription",
1427                     "CIM_DiagnosticRecord.RecordType"} ]
1428              string OtherRecordTypeDescription;
1429 tony  1.1 
1430                 [Description (
1431                     "A locale indicates a particular geographical, political, or "
1432                     "cultural region.  The Locale specifies the language used in "
1433                     "creating the LogRecord data.  If the Locale property is "
1434                     "empty, it is assumed that the default locale is en_US (English).\n"
1435                     "The locale string consists of three sub-strings, separated "
1436                     "by underscores:\n"
1437                     "- The first sub-string is the language code, as specified "
1438                     "in ISO639.\n"
1439                     "- The second sub-string is the country code, as specified "
1440                     "in ISO3166.\n"
1441                     "- The third sub-string is a variant, which is vendor specific.\n"
1442                     "For example, US English appears as: \"en_US_WIN\", where "
1443                     "the \"WIN\" variant would specify a Windows "
1444                     "browser-specific collation (if one exists).  Since the "
1445                     "variant is not standardized, it is not commonly used and "
1446                     "generally is limited to easily recognizable values "
1447                     "(\"WIN\", \"UNIX\", \"EURO\", etc.) used in standard "
1448                     "environments.  The language and country codes are required; "
1449                     "the variant may be empty."), 
1450 tony  1.1        ModelCorrespondence {"CIM_DiagnosticSetting.Locales"} ]
1451              string Locale;
1452           };
1453           
1454           // ==================================================================
1455           // DiagnosticServiceRecord
1456           // ==================================================================
1457              [Experimental, Version ("2.7.1000"), Description (
1458                  "While a DiagnosticService is running, data generated by the "
1459                  "service may be recorded in DiagnosticServiceRecord objects.  A "
1460                  "DiagnosticServiceRecord is related to its MessageLog via an "
1461                  "instance of the RecordInLog aggregation class.") ]
1462           class CIM_DiagnosticServiceRecord : CIM_DiagnosticRecord {
1463           
1464                 [Description (
1465                     "If applicable, this string should contain one or more "
1466                     "vendor specific error codes that the diagnostic service "
1467                     "detected.  These error codes may be used by the vendor for "
1468                     "variety of purposes such as: fault data base indexing, "
1469                     "field service trouble ticketing, product quality tracking, "
1470                     "part failure history, etc.  Since these codes are for "
1471 tony  1.1           "vendor purposes they may assume any form.  Details on "
1472                     "suggested use cases will be left to white papers.  The "
1473                     "array of error codes has model correspondence with an "
1474                     "ErrorCount array so the number of errors reported can be "
1475                     "analyzed by individual error code."), 
1476                  ArrayType ("Indexed"), 
1477                  ModelCorrespondence {"CIM_DiagnosticServiceRecord.ErrorCount"} ]
1478              string ErrorCode[];
1479           
1480                 [Description (
1481                     "Since some tests may detect transient and correctable "
1482                     "errors such as a network diagnostic or memory test, an "
1483                     "error count is useful to indicate the severity of the "
1484                     "failure.  This field contains an integer value of the "
1485                     "number of errors detected by the test.  The ErrorCount is "
1486                     "an array with model correspondence to ErrorCode so that the "
1487                     "test can report an ErrorCount on each type of error "
1488                     "encountered.  It is recommended that hard errors and "
1489                     "correctable or recoverable errors be given different codes "
1490                     "so that clients with knowledge of the error codes can "
1491                     "evaluate correctable, recoverable, and hard errors "
1492 tony  1.1           "independently."), 
1493                  ArrayType ("Indexed"), 
1494                  ModelCorrespondence {"CIM_DiagnosticServiceRecord.ErrorCode"} ]
1495              uint32 ErrorCount[];
1496           
1497                 [Description (
1498                     "Since some tests may be looped, it is useful to report how "
1499                     "many iterations passed and failed.  This is relevant in "
1500                     "analyzing transitory failures.  For example, if all the "
1501                     "errors occurred in just one of 100 iterations, the device "
1502                     "may be viewed as OK or marginal, to be monitored further "
1503                     "rather then failed.  Note: LoopsPassed & LoopsFailed should "
1504                     "add up to the loops completed.\n"
1505                     "A value for this property would likely be reported with a "
1506                     "DiagnosticServiceRecord.RecordType value = "
1507                     "\"ResultSummary\", which contains a summary result covering "
1508                     "all iterations of a looped service.") ]
1509              uint32 LoopsFailed;
1510           
1511                 [Description (
1512                     "Since some tests may be looped, it is useful to report how "
1513 tony  1.1           "many iterations passed and failed.  This is relevant in "
1514                     "analyzing transitory failures.  For example if all the "
1515                     "errors occurred in in just one of 100 iterations, the "
1516                     "device may be viewed as OK or marginal, to be monitored "
1517                     "further rather then failed.  Note: LoopsPassed & "
1518                     "LoopsFailed should add up to the loops completed.\n"
1519                     "A value for this property would likely be reported with a "
1520                     "DiagnosticServiceRecord.RecordType value = "
1521                     "\"ResultSummary\", which contains a summary result covering "
1522                     "all iterations of a looped service.") ]
1523              uint32 LoopsPassed;
1524           };
1525           
1526           // ==================================================================
1527           // DiagnosticSettingRecord
1528           // ==================================================================
1529              [Experimental, Version ("2.7.1000"), Description (
1530                  "The DiagnosticSettingData that was used to when a Diagnostic "
1531                  "was run.") ]
1532           class CIM_DiagnosticSettingRecord : CIM_DiagnosticRecord {
1533           
1534 tony  1.1       [Description (
1535                     "The LogOptions property lists the log options that were "
1536                     "requested for the Diagnostic Service.  A brief summary of "
1537                     "the various log options can be found in "
1538                     "CIM_DiagnosticSetting.LogOptions."), 
1539                  ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
1540                     "10", "11", "12", "13", "14", "15" }, 
1541                  Values {"Unknown", "Other", "Test Errors", "Soft Errors",
1542                     "Status", "Warnings", "Hardware Configuration", "Debug",
1543                     "Statistics", "Actions", "Software Configuration",
1544                     "Subtests", "References", "Results", "Results Summary",
1545                     "Setting Data"}, 
1546                  ArrayType ("Indexed"), 
1547                  ModelCorrespondence { 
1548                     "CIM_DiagnosticSettingRecord.OtherLogOptionDescriptions",
1549                     "CIM_DiagnosticSetting.LogOptions"} ]
1550              uint16 LogOptions[];
1551           
1552                 [Description (
1553                     "Provides additional information regarding the types of test "
1554                     "messages that are logged when the property LogOptions "
1555 tony  1.1           "includes the value 1 (\"Other\")."), 
1556                  ModelCorrespondence {"CIM_DiagnosticSettingRecord.LogOptions",
1557                     "CIM_DiagnosticSetting.OtherLogOptionsDescriptions"} ]
1558              string OtherLogOptionsDescriptions[];
1559           
1560                 [Description (
1561                     "When this flag is true, the test will halt after finding "
1562                     "the first error.") ]
1563              boolean HaltOnError;
1564           
1565                 [Description (
1566                     "When this flag is true, the test software should attempt to "
1567                     "run in an accelerated fashion either by reducing the "
1568                     "coverage or number of tests performed.") ]
1569              boolean QuickMode;
1570           
1571                 [Description (
1572                     "The requested percentage of coverage for the diagnostic "
1573                     "service.  For example, a hard drive scan test could be "
1574                     "asked to run at 50%.  Permissible values for this property "
1575                     "range from 0 to 100."), 
1576 tony  1.1        Units ("Percent"), MinValue (0), MaxValue (100), 
1577                  ModelCorrespondence 
1578                     {"CIM_DiagnosticSetting.PercentOfTestCoverage"} ]
1579              uint8 PercentOfTestCoverage;
1580           
1581                 [Description (
1582                     "Array entries contain parameters corresponding to entries "
1583                     "in the LoopControl array, limiting the number of times a "
1584                     "test should be repeated with a single invocation of RunTest "
1585                     "by a CIM client."), 
1586                  ArrayType ("Indexed"), 
1587                  ModelCorrespondence {"CIM_DiagnosticSettingRecord.LoopControl",
1588                     "CIM_DiagnosticSetting.LoopControlParameter"} ]
1589              string LoopControlParameter[];
1590           
1591                 [Description (
1592                     "LoopControl, used in conjunction with LoopControlParameter, "
1593                     "sets one or more loop control mechanisms that limits the "
1594                     "number of times a test should be repeated with a single "
1595                     "invocation of RunTest by a CIM client.  There is an "
1596                     "array-positional correspondence between LoopControl entries "
1597 tony  1.1           "& LoopControlParameter entries.  The entries in these "
1598                     "coupled arrays of loop controls can be used in a logical OR "
1599                     "fashion to achieve the desired loop control.  For example, "
1600                     "if a client wants to loop a test 1000 times, but quit if a "
1601                     "timer runs out, it could set both controls into the "
1602                     "LoopControl array as two separate entries in each array.  "
1603                     "The looping test will terminate when the first of the two "
1604                     "ORed conditions are met.\n"
1605                     "A brief descriptions for each loop controls can be found in "
1606                     "the description of DiagnosticSetting.LoopControl."), 
1607                  ValueMap {"0", "1", "2", "3", "4", "5"}, 
1608                  Values {"Unknown/Default", "Other", "Continuous", "Count",
1609                     "Timer", "Error Count"}, 
1610                  ArrayType ("Indexed"), 
1611                  ModelCorrespondence { 
1612                     "CIM_DiagnosticSetting.LoopControlParameter",
1613                     "CIM_DiagnosticSettingRecord.OtherLoopControlDescription"} ]
1614              uint16 LoopControl[];
1615           
1616                 [Description (
1617                     "Provides additional information for LoopControl when its "
1618 tony  1.1           "value is set to 1 ('Other')."), 
1619                  ArrayType ("Indexed"), 
1620                  ModelCorrespondence { 
1621                     "CIM_DiagnosticSetting.OtherLoopControlParameter",
1622                     "CIM_DiagnosticSettingRecord.LoopControl" } ]
1623              string OtherLoopControlDescriptions[];
1624           
1625                 [Description (
1626                     "The desired length of time to persist the messages that "
1627                     "result from execution of a diagnostic service.  Here is a "
1628                     "summary of the choices and behaviors for different "
1629                     "ResultPersistence values:\n"
1630                     "0 = \"No Persistence\":\n"
1631                     "Setting the timer to zero tells the provider not to persist "
1632                     "the diagnostic result.  The diagnostic information is only "
1633                     "available while the diagnostic is executing or at its conclusion.\n"
1634                     "Value > 0 and < 0xFFFFFFFF = \"Persist With TimeOut\":\n"
1635                     "Setting the ResultPersistenceOption to a integer will cause "
1636                     "the DiagnosticResult to be persisted for that number of "
1637                     "seconds.  At the end of that time, the DiagnosticResult may "
1638                     "be deleted by the diagnostic service provider.\n"
1639 tony  1.1           "0xFFFFFFFF = \"Persist Forever\":\n"
1640                     "By setting the timeout value to the very large value, "
1641                     "0xFFFFFFFF, the provider shall persist results forever.  In "
1642                     "this case, the client MUST bear the responsibility for "
1643                     "deleting them."), 
1644                  Units ("Seconds"), 
1645                  ModelCorrespondence {"CIM_DiagnosticSetting.ResultPersistence"} ]
1646              uint32 ResultPersistence;
1647           
1648                 [Description (
1649                     "The desired depth of information that SHOULD be returned "
1650                     "when a diagnostic service is invoked.  This property is "
1651                     "used in conjunction with specifying the 'Results' value in "
1652                     "LogOptions.  This requirement ranges from a simple "
1653                     "pass/fail to a need for large logs, diaries, etc.  Five "
1654                     "levels of verbosity are defined as follows:\n"
1655                     "* \"Minimum\" (value=2) is specified if the least verbose "
1656                     "level of result information is desired; typically this is "
1657                     "Pass or Fail.\n"
1658                     "* \"Short\" (value=3) is the shortest form of standard messaging.\n"
1659                     "* \"Standard\" (value=4) is standard messaging.\n"
1660 tony  1.1           "* \"Long\" (value=5) is the longest form of standard messaging.\n"
1661                     "* \"Full\" (value=6) is a request for all information "
1662                     "available, regardless of size.\n"
1663                     "The default, when no value is specified, is \"Standard\"."), 
1664                  ValueMap {"2", "3", "4", "5", "6"}, 
1665                  Values {"Minimum", "Short", "Standard", "Long", "Full"}, 
1666                  ModelCorrespondence { "CIM_DiagnosticSettings.TestResultLevel",
1667                     "CIM_DiagnosticSettingRecord.LogOptions"} ]
1668              uint16 TestResultLevel;
1669           
1670                 [Description (
1671                     "The level of warning messages to be logged.  This property "
1672                     "is used in conjunction with specifying the 'Warnings' value "
1673                     "in LogOptions.  If for example no warning information is "
1674                     "required, the level would be set to \"No Warnings\" "
1675                     "(value=0).  Using \"Missing Resources\" (value=1) will "
1676                     "cause warnings to be generated when required resources or "
1677                     "hardware are not found.  Setting the value to 2, \"Testing "
1678                     "Impacts\", results in both missing resources and 'test "
1679                     "impact' warnings (for example, multiple retries required) "
1680                     "to be reported."), 
1681 tony  1.1        ValueMap {"0", "1", "2", "3"}, 
1682                  Values {"No Warnings", "Missing Resources", "Testing Impacts",
1683                     "All Warnings"}, 
1684                  ModelCorrespondence { "CIM_DiagnosticSetting.TestWarningLevel",
1685                     "CIM_DiagnosticSettingRecord.LogOptions"} ]
1686              uint16 TestWarningLevel;
1687           };
1688           
1689           // ==================================================================
1690           // CorrespondingSettingsRecord
1691           // ==================================================================
1692              [Association, Experimental, Version ("2.7.1000"), Description (
1693                  "CorrespondingSettingsRecord is used to tie a log record to its "
1694                  "corresponding setting data record.") ]
1695           class CIM_CorrespondingSettingsRecord {
1696           
1697                 [Key, Description (
1698                     "The record containing the result data.") ]
1699              CIM_DiagnosticRecord REF DataRecord;
1700           
1701                 [Key, Description (
1702 tony  1.1           "The record containing the DiagnosticSetting data that were "
1703                     "used when the result was created.") ]
1704              CIM_DiagnosticSettingRecord REF SettingsRecord;
1705           };
1706           
1707           // ==================================================================
1708           // AvailableDiagnosticService
1709           // ==================================================================
1710              [Association, Experimental, Version ("2.7.1000"), Description (
1711                  "This is an association class that relates a DiagnosticService "
1712                  "to a ManagedElement.  Consumers wishing to 'diagnose' a "
1713                  "particular Element could query this association to determine "
1714                  "what services are available.") ]
1715           class CIM_AvailableDiagnosticService : CIM_ServiceAvailableToElement {
1716           
1717                 [Override ("ServiceProvided"), Description (
1718                     "The diagnostic service that is available to a "
1719                     "ManagedElement.") ]
1720              CIM_DiagnosticService REF ServiceProvided;
1721           
1722                 [Override ("UserOfService"), Description (
1723 tony  1.1           "The ManagedElement that may use the Service.") ]
1724              CIM_ManagedElement REF UserOfService;
1725           
1726                 [Description (
1727                     "Estimated magnitude of time to perform the referenced "
1728                     "DiagnosticService on the referenced ManagedElement.\n"
1729                     "Since the processing speed of a system can vary immensely "
1730                     "due to a variety of factors (e.g., processor speed), this "
1731                     "property takes on values that are a statement of magnitude, "
1732                     "not absolute time.  If greater accuracy can be provided, a "
1733                     "quantification may be specified in the corresponding "
1734                     "integer property, EstimatedDurationQualifier.\n"
1735                     "Since execution times could vary by Element, this property "
1736                     "is located in the association between the two entities."), 
1737                  ValueMap {"0", "2", "3", "4", "5", "6"}, 
1738                  Values {"Unknown", "Milliseconds", "Seconds", "Minutes",
1739                     "Hours", "Days"}, 
1740                  ModelCorrespondence { 
1741                     "AvailableDiagnosticService.EstimatedDurationQualifier"} ]
1742              uint16 EstimatedDurationOfService;
1743           
1744 tony  1.1       [Description (
1745                     "EstimatedDurationQualifier can be used to further quantify "
1746                     "the magnitude of time to perform the service."), 
1747                  ModelCorrespondence { 
1748                     "AvailableDiagnosticService.EstimatedDurationOfService"} ]
1749              uint32 EstimatedDurationQualifier;
1750           };
1751           
1752           
1753           // ===================================================================
1754           // end of file
1755           // ===================================================================

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2