// Copyright (c) 2005 DMTF. All rights reserved. // Add UmlPackagePath // qualifier values to CIM Schema. // ================================================================== // CIM_DiagnosticSetting // ================================================================== [Version ( "2.9.0" ), UMLPackagePath ( "CIM::System::Diagnostics" ), Description ( "Specific diagnostic test parameters and execution instructions " "are defined by this class. To provide more detailed Settings " "for a type of test (i.e., additional properties), subclassing " "is appropriate." )] class CIM_DiagnosticSetting : CIM_Setting { [Key, Override ( "SettingID" ), Description ( "In order to ensure uniqueness within the NameSpace, the " "value of SettingID SHOULD be constructed using the " "following \'preferred\' algorithm: \n" ": \n" "Where and are separated by a colon " "\':\', and where MUST include a copyrighted, " "trademarked or otherwise unique name that is owned by " "the business entity creating/defining the SettingID, or " "is a registered ID that is assigned to the business " "entity by a recognized global authority. (This is " "similar to the _ structure of " "Schema class names.) In addition, to ensure uniqueness " " MUST NOT contain a colon (\':\'). When using " "this algorithm, the first colon to appear in SettingID " "MUST appear between and . \n" " is chosen by the business entity and SHOULD " "not be re-used to identify different underlying " "(real-world) elements. If the above \'preferred\' " "algorithm is not used, the defining entity MUST assure " "that the resultant SettingID is not re-used across any " "SettingIDs produced by this or other providers for this " "instance\'s NameSpace. \n" "A preferred value for is a timestamp (CIM " "DateTime). For example, ACME:19980525133015.0000000-300" ), MaxLen ( 256 )] string SettingID; [Deprecated { "CIM_DiagnosticSetting.LogOptions", "CIM_DiagnosticSetting.VerbosityLevel" }, Write, Description ( "This property is being deprecated because the " "TestWarningLevel and LogOptions properties serve the " "same purpose. It is deprecated in lieu of using the " "LogOptions (\'Warnings\') property in conjunction with " "VerbosityLevel to specify this information. The \'Missing " "Resources\' and \'Testing Impacts\' values are not " "included directly in LogOptions, but they are expected " "to be recorded in the resulting DiagnosticServiceRecord " "object. \n" "\n" "Sets the level of warning messages to be logged. \n" "If for example no warning information is required, the " "level would be set to \"No Warnings\" (value=0). Using " "\"Missing Resources\" (value=1) will cause warnings to " "be generated when required resources or hardware are not " "found. Setting the value to 2, \"Testing Impacts\", " "results in both missing resources and \'test impact\' " "warnings (for example, multiple retries required) to be " "reported." ), ValueMap { "0", "1", "2", "3" }, Values { "No Warnings", "Missing Resources", "Testing Impacts", "All Warnings" }] uint16 TestWarningLevel; [Deprecated { "CIM_DiagnosticSetting.LogOptions" }, Write, Description ( "When this flag is true, the diagnostic test will report " "\'soft errors\'. In this context, a soft error is a " "message from the diagnostic reporting a known defect in " "the hardware or driver configuration, or execution " "environment. Examples are: \'Not enough memory\', " "\'Driver IOCTL not implemented\', \'Video RAM compare " "failed during polygon fill test (A known defect in the " "video chipset)\', etc." )] boolean ReportSoftErrors; [Deprecated { "CIM_DiagnosticSetting.LogOptions" }, Write, Description ( "When this flag is true, the diagnostic test will report " "\'status messages\'. In this context, a status message " "indicates that the diagnostic code is at a checkpoint. " "Examples are: \"Completion of phase 1\", \"Complex " "pattern\", etc." )] boolean ReportStatusMessages; [Write, Description ( "When this flag is true, the test will halt after finding " "the first error." )] boolean HaltOnError; [Write, Description ( "When this flag is true, the test software should attempt " "to run in an accelerated fashion either by reducing the " "coverage or number of tests performed." )] boolean QuickMode; [Write, Description ( "Requests the diagnostic software to reduce test coverage " "to the specified percentage. For example, a hard drive " "scan test could be asked to run at 50%. The most " "effective way to accomplish this is for the test " "software to scan every other track, as opposed to only " "scanning the first half of a drive. It is assumed that " "the effectiveness of the test is impacted proportional " "to the percentage of testing requested. Permissible " "values for this property range from 0 to 100." ), Units ( "Percent" ), MinValue ( 0 ), MaxValue ( 100 ), ModelCorrespondence { "CIM_DiagnosticServiceCapabilities.SupportedServiceModes" }] uint8 PercentOfTestCoverage; [Write, Description ( "Array entries contain parameters corresponding to " "entries in the LoopControl array, limiting the number of " "times a test should be repeated with a single invocation " "of a test method by a CIM client." ), ArrayType ( "Indexed" ), ModelCorrespondence { "CIM_DiagnosticSetting.LoopControl" }] string LoopControlParameter[]; [Write, Description ( "LoopControl, used in conjunction with " "LoopControlParameter, sets one or more loop control " "mechanisms that limits the number of times a test should " "be repeated with a single invocation of a test method by " "a CIM client. There is an array-positional " "correspondence between LoopControl entries & " "LoopControlParameter entries. The entries in these " "coupled arrays of loop controls can be used in a logical " "OR fashion to achieve the desired loop control. For " "example, if a client wants to loop a test 1000 times, " "but quit if a timer runs out, it could set both controls " "into the LoopControl array as two separate entries in " "each array. The looping test will terminate when the " "first of the two ORed conditions are met. \n" "The descriptions for each loop control are given below: \n" "Unknown (= 0) \n" "Other (= 1) : Additional detail may be found in " "OtherLoopControlDescriptions. \n" "Continuous (= 2) : The corresponding LoopControl " "Parameter is ignored and the test will execute " "continuously. Tests that use this control should also " "support DiscontinueTest. \n" "Count(=3) : The corresponding LoopControlParameter is " "interpreted as a loop count (uint32), indicating the " "number of times the test should be repeated with a " "single invocation of a test method by a CIM client. \n" "Timer (= 4) : The corresponding LoopControlParameter is " "interpreted as an initial value (uint32) for a test loop " "timer, given in seconds. The looping is terminated when " "this timer has lapsed. \n" "ErrorCount (= 5) : The corresponding LoopControl " "Parameter is interpreted as an error count (uint32). The " "loop will continue until the number of errors that have " "occurred exceeds the ErrorCount. Note: the ErrorCount " "only refers to hard test errors; it does not include " "soft errors or warnings." ), ValueMap { "0", "1", "2", "3", "4", "5" }, Values { "Unknown", "Other", "Continuous", "Count", "Timer", "ErrorCount" }, ArrayType ( "Indexed" ), ModelCorrespondence { "CIM_DiagnosticSetting.LoopControlParameter", "CIM_DiagnosticSetting.OtherLoopControlDescriptions", "CIM_DiagnosticServiceCapabilities.SupportedLoopControl" }] uint16 LoopControl[]; [Deprecated { "CIM_DiagnosticSetting.OtherLoopControlDescriptions" }, Write, Description ( "This property is deprecated and replaced with an array. \n" "It provides additional information for LoopControl when " "its value is set to 1 (\'Other\')." ), ModelCorrespondence { "CIM_DiagnosticSetting.LoopControlParameter" }] string OtherLoopControlDescription; [Write, Description ( "This property provides additional information for " "LoopControl when the corresponding value is set to 1 " "(\'Other\')." ), ArrayType ( "Indexed" ), ModelCorrespondence { "CIM_DiagnosticSetting.LoopControlParameter", "CIM_DiagnosticSetting.LoopControl" }] string OtherLoopControlDescriptions[]; [Write, Description ( "The ResultPersistence property is a directive from a " "diagnostic client to a diagnostic provider. It allows " "the client to specify to the diagnostic service provider " "how long to persist the messages that result from " "execution of a diagnostic service. This applies to " "instances of DiagnosticResult as well as the preferred " "use of DiagnosticServiceRecord. The timeout period " "starts upon completion of the diagnostic action " "described by the DiagnosticService. \n" "\n" "Here is a summary of the choices and behaviors for " "different ResultPersistence values: \n" "0 = \"No Persistence\": \n" "Setting the timer to zero tells the provider not to " "persist the diagnostic result. The diagnostic " "information is only available while the diagnostic is " "executing or at its conclusion. \n" "Value > 0 and < 0xFFFFFFFF = \"Persist With TimeOut\": \n" "Setting the ResultPersistenceOption to a integer will " "cause the DiagnosticResult to be persisted for that " "number of seconds. At the end of that time, the " "DiagnosticResult may be deleted by the diagnostic " "service provider. \n" "0xFFFFFFFF = \"Persist Forever\": \n" "By setting the timeout value to the very large value, " "0xFFFFFFFF, the provider shall persist results forever. " "In this case, the client MUST bear the responsibility " "for deleting them." ), Units ( "Seconds" )] uint32 ResultPersistence; [Write, Description ( "The LogOptions property is used to specify the types of " "data that SHOULD be logged by the diagnostic service. " "Any number of values may be specified in the array. Note " "that the default behavior is for nothing to be logged. \n" "The AMOUNT of data to be logged can be controlled for " "each value selected by specifying a VerbosityLevel " "value. Verbosity may not apply to all LogOptions values, " "in which case the default VerbosityLevel of \"Standard\" " "SHOULD be used. \n" "The RecordForLog produced by running a service MUST be " "tagged with a RecordType that corresponds to one of " "these log option values. \n" "Following is a brief description of the available log " "options: \n" "* \"Other\" (value = 1): Details are given in the " "corresponding OtherLogOptionsDescriptions entry. \n" "* \"Results\" (value = 2): Log the results obtained by " "running the service. This is the most common value for " "reporting the service results. \n" "* \"Subtests\" (value = 3): Log a test summary report " "upon completion of each subtest and each loop iteration. " "The summary reports SHOULD state whether the individual " "subtest or iteration passed or failed and list relevant " "error codes and respective error counts. \n" "* \"Actions\" (value = 4): Log corrective action and " "instructional messages to guide service personnel; for " "example, a prioritized list of actions to perform in " "order to isolate a failure or correct a problem. When " "ordering steps or prioritizing actions, a number should " "proceed the text; for example, 1) Do this first, 2) Do " "this next, etc. \n" "* \"Warnings\" (value = 5): Log warning messages; for " "example, \'device will be taken off line\', \'test is " "long-running\' or \'available memory is low\'. The " "VerbosityLevel value specified for the Warnings option " "is related to the severity of the warnings logged; for " "instance, one would specify a high level of verbosity to " "get all warnings logged, regardless of severity, and a " "low level of verbosity to have only the most severe " "warnings logged. \n" "* \"Status\" (value = 6): Log status messages; for " "example, state information for the driver, device, or " "system. \n" "* \"Device Errors\" (value = 7): Log errors related to " "the managed element being serviced. \n" "* \"Service Errors\" (value = 8): Log errors related to " "the service itself rather than the element being " "serviced, such as \'Resource Allocaton Failure\'. \n" "* \"Setting Data\" (value=9): Log the property values of " "the DiagnosticSetting object used to configure the " "service. \n" "* \"Statistics\" (value = 10): Log statistical messages; " "for example, packets sent per second. \n" "* \"Hardware Configuration\" (value = 11): Log messages " "that contain information about the hardware " "configuration as viewed by the service; for example, " "vendor, version, FRU identification, and location " "information. The format and contents of this property is " "element dependent. Examples are: SCSI ID, LPTx, PCI Slot " "Number, and Dimm#. \n" "* \"Software Configuration\" (value = 12): Log messages " "that contain information about the software environment " "as viewed by the service; for example, the name and " "version of all the critical software elements " "controlling the device under test. Each configuration " "message SHOULD have the following common format: Element " "name; element type; manufacturer name; version; for " "example, \'Miniport driver; SCSI; Intel; Version 1.2\'. \n" "* \"Reference\" (value = 13): Log the keys of an CIM " "object of of interest; for example, the element under " "test, or a data file. \n" "* \"Debug\" (value = 14): Log debug messages. These " "messages are vendor specific." ), ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15" }, Values { "Unknown", "Other", "Results", "Subtests", "Actions", "Warnings", "Status", "Device Errors", "Service Errors", "Setting Data", "Statistics", "Hardware Configuration", "Software Configuration", "References", "Debug", "No Log Options" }, ArrayType ( "Indexed" ), ModelCorrespondence { "CIM_DiagnosticSetting.OtherLogOptionsDescriptions", "CIM_DiagnosticServiceCapabilities.SupportedLogOptions", "CIM_DiagnosticServiceRecord.RecordType", "CIM_DiagnosticSetting.VerbosityLevel" }] uint16 LogOptions[]; [Write, Description ( "Provides additional information regarding the types of " "test messages that are logged when the property " "LogOptions includes the value 1 (\"Other\")." ), ModelCorrespondence { "CIM_DiagnosticSetting.LogOptions" }] string OtherLogOptionsDescriptions[]; [Write, Description ( "The LogStorage setting property indicates which types of " "supported storage should be used by the Diagnostic " "Service for logging of the data specified in LogOptions. \n" "The values are: \n" "\"DiagnosticRecordLog\" (Value = 2): Use the " "DiagnosticRecordLog and DiagnosticRecord classes. \n" "\"MessageLog\" (Value = 4): Use the MessageLog class and " "its methods. \n" "\"File\" (Value = 5): Write data to a file." ), ValueMap { "0", "1", "2", "3", "4" }, Values { "Unknown", "Other", "DiagnosticRecordLog", "MessageLog", "File" }, ArrayType ( "Indexed" ), ModelCorrespondence { "CIM_DiagnosticSetting.OtherLogStorageDescriptions", "CIM_DiagnosticServiceCapabilities.SupportedLogStorage" }] uint16 LogStorage[]; [Write, Description ( "This property provides additional information for " "LogStorage when the corresponding value is set to 1 " "(\"Other\")." ), ArrayType ( "Indexed" ), ModelCorrespondence { "CIM_DiagnosticSetting.LogStorage" }] string OtherLogStorageDescriptions[]; [Write, Description ( "A client may want to specify the desired volume or " "detail logged by a diagnostic service. This property is " "applied to a corresponding logging option, acting as a " "qualifier on its description. Three levels of verbosity " "are defined as follows: \n" "* \"Minimum\" (value=2): Specified if the least amount " "of information is desired; for example, Pass or Fail. \n" "* \"Standard\" (value=3): This is the standard level of " "messaging provided by the service. It is the form most " "likely to be used if no verbosity value is specified " "(default). \n" "* \"Full\" (value=4): Specified when all information, " "regardless of size, is desired. \n" "Note that VerbosityLevel is a subjective property and " "relates to the degree of detail, not an absolute metric. " "A client simply specifies its desired level of detail " "and the provider publishes its data in accordance with " "this desired level of detail. \n" "Verbosity may not apply to all LogOptions values, in " "which case the default VerbosityLevel of \"Standard\" " "SHOULD be used." ), ValueMap { "2", "3", "4" }, Values { "Minimum", "Standard", "Full" }, ArrayType ( "Indexed" ), ModelCorrespondence { "CIM_DiagnosticSetting.LogOptions" }] uint16 VerbosityLevel[]; [Write, Description ( "This property, along with the locale information in " "LocalizationCapabilities and DiagnosticServiceRecord, " "meets the requirement to specify locale for results " "produced by a diagnostic service. A locale indicates a " "particular geographical, political, or cultural region. " "The Locales property of the DiagnosticSetting class is " "an array of strings whose entries specify a language to " "be used in the formulation of information requested by " "or delivered to a client as a result of running a " "diagnostic service. It is specified by the client as an " "input parameter to the RunDiagnostic method, by virtue " "of its inclusion in this Setting class which is a " "parameter of the method. A single Setting object may " "specify more than one Locale. In this case, information " "MUST be returned in each language specified. \n" "\n" "Each array entry consists of three sub-strings, " "separated by underscores: \n" "- The first sub-string is the language code, as " "specified in ISO639. \n" "- The second sub-string is the country code, as " "specified in ISO3166. \n" "- The third sub-string is a variant, which is vendor " "specific. \n" "For example, US English appears as: \"en_US_WIN\", where " "the \"WIN\" variant would specify a Windows " "browser-specific collation (if one exists). Since the " "variant is not standardized, it is not commonly used and " "generally is limited to easily recognizable values " "(\"WIN\", \"UNIX\", \"EURO\", etc.) used in standard " "environments. The language and country codes are " "required; the variant may be empty." ), ModelCorrespondence { "CIM_LocalizationCapabilities.SupportedOutputLocales" }] string Locales[]; };