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