Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] Fixes #249: Add class table view #752

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

KSchopmeyer
Copy link
Contributor

@KSchopmeyer KSchopmeyer commented Sep 1, 2020

This is WIP status.

Minimal tests and controlling the width of the tables is very incomplete.

Discussion
Looking for suggestions on table format

module.

This is first part of adding the code for issue #249, display classes
as tables.  Because the new code is going to significantly increase the
size of the functions associated with displaying objects as tables, it
was logical to move this from _common.py to its own file.

Fixes alse  one pylint issue by changing code

Fixes issue where pylint was reporting possible undefined variable in
pick_one_from_list() when the variable was part of a for statement by
not using that variable and creating a new variable to represent the
same information.

In the process we noted that there was no test for the correct pick of
last item in the list and confirmation that if the next higher number
was picked it treated as invalid a so test was added.
Adds functions to display class(es) as a table.
@KSchopmeyer
Copy link
Contributor Author

KSchopmeyer commented Sep 1, 2020

Here is a simple example:


+-------------------------------------------------------------------------------------------------------------------------------------+
| +--------------------+--------------+                                                                                               |
| | class name         | superclass   |                                                                                               |
| |--------------------+--------------|                                                                                               |
| | CIM_ComputerSystem | CIM_System   |                                                                                               |
| +--------------------+--------------+                                                                                               |
| +---------------------------------------------------------------------+                                                             |
| | Class Description                                                   |                                                             |
| |---------------------------------------------------------------------|                                                             |
| | A class derived from System that is a special collection of         |                                                             |
| | ManagedSystemElements. This collection is related to the providing  |                                                             |
| | of compute capabilities and MAY serve as an aggregation point to    |                                                             |
| | associate one or more of the following elements: FileSystem,        |                                                             |
| | OperatingSystem, Processor and Memory (Volatile and/or NonVolatile  |                                                             |
| | Storage).                                                           |                                                             |
| +---------------------------------------------------------------------+                                                             |
| +--------------------------------------------------+                                                                                |
| | Class Qualifiers                                 |                                                                                |
| |--------------------------------------------------|                                                                                |
| | Version ( "2.36.0" )                             |                                                                                |
| | UMLPackagePath ( "CIM::System::SystemElements" ) |                                                                                |
| +--------------------------------------------------+                                                                                |
| +-----------------------------+----------+-----------+----------------------------------------------------+-----------------------+ |
| | Property                    | Type     |   Default | Description                                        | Qualifiers            | |
| | Name                        |          |     Value |                                                    |                       | |
| |-----------------------------+----------+-----------+----------------------------------------------------+-----------------------| |
| | InstanceID                  | string   |           | InstanceID is an optional property that may be     |                       | |
| |                             |          |           | used to opaquely and uniquely identify an          |                       | |
| |                             |          |           | instance of this class within the scope of the     |                       | |
| |                             |          |           | instantiating Namespace. Various subclasses of     |                       | |
| |                             |          |           | this class may override this property to make it   |                       | |
| |                             |          |           | required, or a key. Such subclasses may also       |                       | |
| |                             |          |           | modify the preferred algorithms for ensuring       |                       | |
| |                             |          |           | uniqueness that are defined below.\nTo ensure      |                       | |
| |                             |          |           | uniqueness within the NameSpace, the value of      |                       | |
| |                             |          |           | InstanceID should be constructed using the         |                       | |
| |                             |          |           | following \"preferred\" algorithm:                 |                       | |
| |                             |          |           | \n<OrgID>:<LocalID> \nWhere <OrgID> and <LocalID>  |                       | |
| |                             |          |           | are separated by a colon (:), and where <OrgID>    |                       | |
| |                             |          |           | must include a copyrighted, trademarked, or        |                       | |
| |                             |          |           | otherwise unique name that is owned by the         |                       | |
| |                             |          |           | business entity that is creating or defining the   |                       | |
| |                             |          |           | InstanceID or that is a registered ID assigned to  |                       | |
| |                             |          |           | the business entity by a recognized global         |                       | |
| |                             |          |           | authority. (This requirement is similar to the     |                       | |
| |                             |          |           | <Schema Name>_<Class Name> structure of Schema     |                       | |
| |                             |          |           | class names.) In addition, to ensure uniqueness,   |                       | |
| |                             |          |           | <OrgID> must not contain a colon (:). When using   |                       | |
| |                             |          |           | this algorithm, the first colon to appear in       |                       | |
| |                             |          |           | InstanceID must appear between <OrgID> and         |                       | |
| |                             |          |           | <LocalID>. \n<LocalID> is chosen by the business   |                       | |
| |                             |          |           | entity and should not be reused to identify        |                       | |
| |                             |          |           | different underlying (real-world) elements. If     |                       | |
| |                             |          |           | not null and the above \"preferred\" algorithm is  |                       | |
| |                             |          |           | not used, the defining entity must assure that     |                       | |
| |                             |          |           | the resulting InstanceID is not reused across any  |                       | |
| |                             |          |           | InstanceIDs produced by this or other providers    |                       | |
| |                             |          |           | for the NameSpace of this instance. \nIf not set   |                       | |
| |                             |          |           | to null for DMTF-defined instances, the            |                       | |
| |                             |          |           | \"preferred\" algorithm must be used with the      |                       | |
| |                             |          |           | <OrgID> set to CIM.                                |                       | |
| | Caption                     | string   |           | The Caption property is a short textual            | MaxLen (              | |
| |                             |          |           | description (one- line string) of the object.      | 64 )                  | |
| | Description                 | string   |           | The Description property provides a textual        |                       | |
| |                             |          |           | description of the object.                         |                       | |
| | ElementName                 | string   |           | A user-friendly name for the object. This          |                       | |
| |                             |          |           | property allows each instance to define a          |                       | |
| |                             |          |           | user-friendly name in addition to its key          |                       | |
| |                             |          |           | properties, identity data, and description         |                       | |
| |                             |          |           | information. \nNote that the Name property of      |                       | |
| |                             |          |           | ManagedSystemElement is also defined as a          |                       | |
| |                             |          |           | user-friendly name. But, it is often subclassed    |                       | |
| |                             |          |           | to be a Key. It is not reasonable that the same    |                       | |
| |                             |          |           | property can convey both identity and a            |                       | |
| |                             |          |           | user-friendly name, without inconsistencies.       |                       | |
| |                             |          |           | Where Name exists and is not a Key (such as for    |                       | |
| |                             |          |           | instances of LogicalDevice), the same information  |                       | |
| |                             |          |           | can be present in both the Name and ElementName    |                       | |
| |                             |          |           | properties. Note that if there is an associated    |                       | |
| |                             |          |           | instance of                                        |                       | |
| |                             |          |           | CIM_EnabledLogicalElementCapabilities,             |                       | |
| |                             |          |           | restrictions on this properties may exist as       |                       | |
| |                             |          |           | defined in ElementNameMask and MaxElementNameLen   |                       | |
| |                             |          |           | properties defined in that class.                  |                       | |
| | InstallDate                 | datetime |           | A datetime value that indicates when the object    | MappingStrings {      | |
| |                             |          |           | was installed. Lack of a value does not indicate   | "MIF.DMTF"            | |
| |                             |          |           | that the object is not installed.                  | "|Compone"            | |
| |                             |          |           |                                                    | "ntID|001"            | |
| |                             |          |           |                                                    | ".5" }                | |
| | OperationalStatus           | uint16[] |           | Indicates the current statuses of the element.     | ValueMap {            | |
| |                             |          |           | Various operational statuses are defined. Many of  | "0",                  | |
| |                             |          |           | the enumeration\'s values are self-explanatory.    | "1",                  | |
| |                             |          |           | However, a few are not and are described here in   | "2",                  | |
| |                             |          |           | more detail. \n\"Stressed\" indicates that the     | "3",                  | |
| |                             |          |           | element is functioning, but needs attention.       | "4",                  | |
| |                             |          |           | Examples of \"Stressed\" states are overload,      | "5",                  | |
| |                             |          |           | overheated, and so on. \n\"Predictive Failure\"    | "6",                  | |
| |                             |          |           | indicates that an element is functioning           | "7",                  | |
| |                             |          |           | nominally but predicting a failure in the near     | "8",                  | |
| |                             |          |           | future. \n\"In Service\" describes an element      | "9",                  | |
| |                             |          |           | being configured, maintained, cleaned, or          | "10",                 | |
| |                             |          |           | otherwise administered. \n\"No Contact\"           | "11",                 | |
| |                             |          |           | indicates that the monitoring system has           | "12",                 | |
| |                             |          |           | knowledge of this element, but has never been      | "13",                 | |
| |                             |          |           | able to establish communications with it.          | "14",                 | |
| |                             |          |           | \n\"Lost Communication\" indicates that the        | "15",                 | |
| |                             |          |           | ManagedSystem Element is known to exist and has    | "16",                 | |
| |                             |          |           | been contacted successfully in the past, but is    | "17",                 | |
| |                             |          |           | currently unreachable. \n\"Stopped\" and           | "18",                 | |
| |                             |          |           | \"Aborted\" are similar, although the former       | "19",                 | |
| |                             |          |           | implies a clean and orderly stop, while the        | "..",                 | |
| |                             |          |           | latter implies an abrupt stop where the state and  | "0x8000.." }          | |
| |                             |          |           | configuration of the element might need to be      | Values {              | |
| |                             |          |           | updated. \n\"Dormant\" indicates that the element  | "Unknown",            | |
| |                             |          |           | is inactive or quiesced. \n\"Supporting Entity in  | "Other",              | |
| |                             |          |           | Error\" indicates that this element might be       | "OK",                 | |
| |                             |          |           | \"OK\" but that another element, on which it is    | "Degraded",           | |
| |                             |          |           | dependent, is in error. An example is a network    | "Stressed",           | |
| |                             |          |           | service or endpoint that cannot function due to    | "Predicti"            | |
| |                             |          |           | lower-layer networking problems. \n\"Completed\"   | "ve "                 | |
| |                             |          |           | indicates that the element has completed its       | "Failure",            | |
| |                             |          |           | operation. This value should be combined with      | "Error",              | |
| |                             |          |           | either OK, Error, or Degraded so that a client     | "Non-Reco"            | |
| |                             |          |           | can tell if the complete operation Completed with  | "verable "            | |
| |                             |          |           | OK (passed), Completed with Error (failed), or     | "Error",              | |
| |                             |          |           | Completed with Degraded (the operation finished,   | "Starting",           | |
| |                             |          |           | but it did not complete OK or did not report an    | "Stopping",           | |
| |                             |          |           | error). \n\"Power Mode\" indicates that the        | "Stopped",            | |
| |                             |          |           | element has additional power model information     | "In "                 | |
| |                             |          |           | contained in the Associated                        | "Service",            | |
| |                             |          |           | PowerManagementService association.                | "No "                 | |
| |                             |          |           | \n\"Relocating\" indicates the element is being    | "Contact",            | |
| |                             |          |           | relocated.\nOperationalStatus replaces the Status  | "Lost "               | |
| |                             |          |           | property on ManagedSystemElement to provide a      | "Communic"            | |
| |                             |          |           | consistent approach to enumerations, to address    | "ation",              | |
| |                             |          |           | implementation needs for an array property, and    | "Aborted",            | |
| |                             |          |           | to provide a migration path from today\'s          | "Dormant",            | |
| |                             |          |           | environment to the future. This change was not     | "Supporti"            | |
| |                             |          |           | made earlier because it required the deprecated    | "ng "                 | |
| |                             |          |           | qualifier. Due to the widespread use of the        | "Entity "             | |
| |                             |          |           | existing Status property in management             | "in "                 | |
| |                             |          |           | applications, it is strongly recommended that      | "Error",              | |
| |                             |          |           | providers or instrumentation provide both the      | "Complete"            | |
| |                             |          |           | Status and OperationalStatus properties. Further,  | "d",                  | |
| |                             |          |           | the first value of OperationalStatus should        | "Power "              | |
| |                             |          |           | contain the primary status for the element. When   | "Mode",               | |
| |                             |          |           | instrumented, Status (because it is                | "Relocati"            | |
| |                             |          |           | single-valued) should also provide the primary     | "ng",                 | |
| |                             |          |           | status of the element.                             | "DMTF "               | |
| |                             |          |           |                                                    | "Reserved",           | |
| |                             |          |           |                                                    | "Vendor "             | |
| |                             |          |           |                                                    | "Reserved" }          | |
| |                             |          |           |                                                    | ArrayType (           | |
| |                             |          |           |                                                    | "Indexed" )           | |
| |                             |          |           |                                                    | ModelCorrespondence { | |
| |                             |          |           |                                                    | "CIM_Mana"            | |
| |                             |          |           |                                                    | "gedSyste"            | |
| |                             |          |           |                                                    | "mElement"            | |
| |                             |          |           |                                                    | ".StatusD"            | |
| |                             |          |           |                                                    | "escripti"            | |
| |                             |          |           |                                                    | "ons" }               | |
| | StatusDescriptions          | string[] |           | Strings describing the various OperationalStatus   | ArrayType (           | |
| |                             |          |           | array values. For example, if \"Stopping\" is the  | "Indexed" )           | |
| |                             |          |           | value assigned to OperationalStatus, then this     | ModelCorrespondence { | |
| |                             |          |           | property may contain an explanation as to why an   | "CIM_Mana"            | |
| |                             |          |           | object is being stopped. Note that entries in      | "gedSyste"            | |
| |                             |          |           | this array are correlated with those at the same   | "mElement"            | |
| |                             |          |           | array index in OperationalStatus.                  | ".Operati"            | |
| |                             |          |           |                                                    | "onalStat"            | |
| |                             |          |           |                                                    | "us" }                | |
| | Status                      | string   |           | A string indicating the current status of the      | Deprecated {          | |
| |                             |          |           | object. Various operational and non-operational    | "CIM_Mana"            | |
| |                             |          |           | statuses are defined. This property is deprecated  | "gedSyste"            | |
| |                             |          |           | in lieu of OperationalStatus, which includes the   | "mElement"            | |
| |                             |          |           | same semantics in its enumeration. This change is  | ".Operati"            | |
| |                             |          |           | made for 3 reasons: \n1) Status is more correctly  | "onalStat"            | |
| |                             |          |           | defined as an array. This definition overcomes     | "us" }                | |
| |                             |          |           | the limitation of describing status using a        | ValueMap {            | |
| |                             |          |           | single value, when it is really a multi-valued     | "OK",                 | |
| |                             |          |           | property (for example, an element might be OK AND  | "Error",              | |
| |                             |          |           | Stopped. \n2) A MaxLen of 10 is too restrictive    | "Degraded",           | |
| |                             |          |           | and leads to unclear enumerated values. \n3) The   | "Unknown",            | |
| |                             |          |           | change to a uint16 data type was discussed when    | "Pred "               | |
| |                             |          |           | CIM V2.0 was defined. However, existing V1.0       | "Fail",               | |
| |                             |          |           | implementations used the string property and did   | "Starting",           | |
| |                             |          |           | not want to modify their code. Therefore, Status   | "Stopping",           | |
| |                             |          |           | was grandfathered into the Schema. Use of the      | "Service",            | |
| |                             |          |           | deprecated qualifier allows the maintenance of     | "Stressed",           | |
| |                             |          |           | the existing property, but also permits an         | "NonRecov"            | |
| |                             |          |           | improved definition using OperationalStatus.       | "er",                 | |
| |                             |          |           |                                                    | "No "                 | |
| |                             |          |           |                                                    | "Contact",            | |
| |                             |          |           |                                                    | "Lost "               | |
| |                             |          |           |                                                    | "Comm",               | |
| |                             |          |           |                                                    | "Stopped" }           | |
| |                             |          |           |                                                    | MaxLen (              | |
| |                             |          |           |                                                    | 10 )                  | |
| | HealthState                 | uint16   |           | Indicates the current health of the element. This  | ValueMap {            | |
| |                             |          |           | attribute expresses the health of this element     | "0",                  | |
| |                             |          |           | but not necessarily that of its subcomponents.     | "5",                  | |
| |                             |          |           | The possible values are 0 to 30, where 5 means     | "10",                 | |
| |                             |          |           | the element is entirely healthy and 30 means the   | "15",                 | |
| |                             |          |           | element is completely non-functional. The          | "20",                 | |
| |                             |          |           | following continuum is defined:                    | "25",                 | |
| |                             |          |           | \n\"Non-recoverable Error\" (30) - The element     | "30",                 | |
| |                             |          |           | has completely failed, and recovery is not         | "..",                 | |
| |                             |          |           | possible. All functionality provided by this       | "32768..6"            | |
| |                             |          |           | element has been lost. \n\"Critical Failure\"      | "5535" }              | |
| |                             |          |           | (25) - The element is non-functional and recovery  | Values {              | |
| |                             |          |           | might not be possible. \n\"Major Failure\" (20) -  | "Unknown",            | |
| |                             |          |           | The element is failing. It is possible that some   | "OK",                 | |
| |                             |          |           | or all of the functionality of this component is   | "Degraded"            | |
| |                             |          |           | degraded or not working. \n\"Minor Failure\" (15)  | "/Warning",           | |
| |                             |          |           | - All functionality is available but some might    | "Minor "              | |
| |                             |          |           | be degraded. \n\"Degraded/Warning\" (10) - The     | "failure",            | |
| |                             |          |           | element is in working order and all functionality  | "Major "              | |
| |                             |          |           | is provided. However, the element is not working   | "failure",            | |
| |                             |          |           | to the best of its abilities. For example, the     | "Critical"            | |
| |                             |          |           | element might not be operating at optimal          | " "                   | |
| |                             |          |           | performance or it might be reporting recoverable   | "failure",            | |
| |                             |          |           | errors. \n\"OK\" (5) - The element is fully        | "Non-reco"            | |
| |                             |          |           | functional and is operating within normal          | "verable "            | |
| |                             |          |           | operational parameters and without error.          | "error",              | |
| |                             |          |           | \n\"Unknown\" (0) - The implementation cannot      | "DMTF "               | |
| |                             |          |           | report on HealthState at this time. \nDMTF has     | "Reserved",           | |
| |                             |          |           | reserved the unused portion of the continuum for   | "Vendor "             | |
| |                             |          |           | additional HealthStates in the future.             | "Specific" }          | |
| | CommunicationStatus         | uint16   |           | CommunicationStatus indicates the ability of the   | ValueMap {            | |
| |                             |          |           | instrumentation to communicate with the            | "0",                  | |
| |                             |          |           | underlying ManagedElement. CommunicationStatus     | "1",                  | |
| |                             |          |           | consists of one of the following values: Unknown,  | "2",                  | |
| |                             |          |           | None, Communication OK, Lost Communication, or No  | "3",                  | |
| |                             |          |           | Contact. \nA Null return indicates the             | "4",                  | |
| |                             |          |           | implementation (provider) does not implement this  | "..",                 | |
| |                             |          |           | property. \n\"Unknown\" indicates the              | "0x8000.." }          | |
| |                             |          |           | implementation is in general capable of returning  | Values {              | |
| |                             |          |           | this property, but is unable to do so at this      | "Unknown",            | |
| |                             |          |           | time. \n\"Not Available\" indicates that the       | "Not "                | |
| |                             |          |           | implementation (provider) is capable of returning  | "Availabl"            | |
| |                             |          |           | a value for this property, but not ever for this   | "e",                  | |
| |                             |          |           | particular piece of hardware/software or the       | "Communic"            | |
| |                             |          |           | property is intentionally not used because it      | "ation "              | |
| |                             |          |           | adds no meaningful information (as in the case of  | "OK",                 | |
| |                             |          |           | a property that is intended to add additional      | "Lost "               | |
| |                             |          |           | info to another property). \n\"Communication OK    | "Communic"            | |
| |                             |          |           | \" indicates communication is established with     | "ation",              | |
| |                             |          |           | the element, but does not convey any quality of    | "No "                 | |
| |                             |          |           | service. \n\"No Contact\" indicates that the       | "Contact",            | |
| |                             |          |           | monitoring system has knowledge of this element,   | "DMTF "               | |
| |                             |          |           | but has never been able to establish               | "Reserved",           | |
| |                             |          |           | communications with it. \n\"Lost Communication\"   | "Vendor "             | |
| |                             |          |           | indicates that the Managed Element is known to     | "Reserved" }          | |
| |                             |          |           | exist and has been contacted successfully in the   |                       | |
| |                             |          |           | past, but is currently unreachable.                |                       | |
| | DetailedStatus              | uint16   |           | DetailedStatus compliments PrimaryStatus with      | ValueMap {            | |
| |                             |          |           | additional status detail. It consists of one of    | "0",                  | |
| |                             |          |           | the following values: Not Available, No            | "1",                  | |
| |                             |          |           | Additional Information, Stressed, Predictive       | "2",                  | |
| |                             |          |           | Failure, Error, Non-Recoverable Error,             | "3",                  | |
| |                             |          |           | SupportingEntityInError. Detailed status is used   | "4",                  | |
| |                             |          |           | to expand upon the PrimaryStatus of the element.   | "5",                  | |
| |                             |          |           | \nA Null return indicates the implementation       | "..",                 | |
| |                             |          |           | (provider) does not implement this property.       | "0x8000.." }          | |
| |                             |          |           | \n\"Not Available\" indicates that the             | Values {              | |
| |                             |          |           | implementation (provider) is capable of returning  | "Not "                | |
| |                             |          |           | a value for this property, but not ever for this   | "Availabl"            | |
| |                             |          |           | particular piece of hardware/software or the       | "e",                  | |
| |                             |          |           | property is intentionally not used because it      | "No "                 | |
| |                             |          |           | adds no meaningful information (as in the case of  | "Addition"            | |
| |                             |          |           | a property that is intended to add additional      | "al "                 | |
| |                             |          |           | info to another property). \n\"No Additional       | "Informat"            | |
| |                             |          |           | Information\" indicates that the element is        | "ion",                | |
| |                             |          |           | functioning normally as indicated by               | "Stressed",           | |
| |                             |          |           | PrimaryStatus = \"OK\". \n\"Stressed\" indicates   | "Predicti"            | |
| |                             |          |           | that the element is functioning, but needs         | "ve "                 | |
| |                             |          |           | attention. Examples of \"Stressed\" states are     | "Failure",            | |
| |                             |          |           | overload, overheated, and so on. \n\"Predictive    | "Non-Reco"            | |
| |                             |          |           | Failure\" indicates that an element is             | "verable "            | |
| |                             |          |           | functioning normally but a failure is predicted    | "Error",              | |
| |                             |          |           | in the near future. \n\"Non-Recoverable Error \"   | "Supporti"            | |
| |                             |          |           | indicates that this element is in an error         | "ng "                 | |
| |                             |          |           | condition that requires human intervention.        | "Entity "             | |
| |                             |          |           | \n\"Supporting Entity in Error\" indicates that    | "in "                 | |
| |                             |          |           | this element might be \"OK\" but that another      | "Error",              | |
| |                             |          |           | element, on which it is dependent, is in error.    | "DMTF "               | |
| |                             |          |           | An example is a network service or endpoint that   | "Reserved",           | |
| |                             |          |           | cannot function due to lower-layer networking      | "Vendor "             | |
| |                             |          |           | problems.                                          | "Reserved" }          | |
| |                             |          |           |                                                    | ModelCorrespondence { | |
| |                             |          |           |                                                    | "CIM_Enab"            | |
| |                             |          |           |                                                    | "ledLogic"            | |
| |                             |          |           |                                                    | "alElemen"            | |
| |                             |          |           |                                                    | "t.Primar"            | |
| |                             |          |           |                                                    | "yStatus",            | |
| |                             |          |           |                                                    | "CIM_Mana"            | |
| |                             |          |           |                                                    | "gedSyste"            | |
| |                             |          |           |                                                    | "mElement"            | |
| |                             |          |           |                                                    | ".HealthS"            | |
| |                             |          |           |                                                    | "tate" }              | |
| | OperatingStatus             | uint16   |           | OperatingStatus provides a current status value    | ValueMap {            | |
| |                             |          |           | for the operational condition of the element and   | "0",                  | |
| |                             |          |           | can be used for providing more detail with         | "1",                  | |
| |                             |          |           | respect to the value of EnabledState. It can also  | "2",                  | |
| |                             |          |           | provide the transitional states when an element    | "3",                  | |
| |                             |          |           | is transitioning from one state to another, such   | "4",                  | |
| |                             |          |           | as when an element is transitioning between        | "5",                  | |
| |                             |          |           | EnabledState and RequestedState, as well as other  | "6",                  | |
| |                             |          |           | transitional conditions.\nOperatingStatus          | "7",                  | |
| |                             |          |           | consists of one of the following values: Unknown,  | "8",                  | |
| |                             |          |           | Not Available, In Service, Starting, Stopping,     | "9",                  | |
| |                             |          |           | Stopped, Aborted, Dormant, Completed, Migrating,   | "10",                 | |
| |                             |          |           | Emmigrating, Immigrating, Snapshotting. Shutting   | "11",                 | |
| |                             |          |           | Down, In Test \nA Null return indicates the        | "12",                 | |
| |                             |          |           | implementation (provider) does not implement this  | "13",                 | |
| |                             |          |           | property. \n\"Unknown\" indicates the              | "14",                 | |
| |                             |          |           | implementation is in general capable of returning  | "15",                 | |
| |                             |          |           | this property, but is unable to do so at this      | "16",                 | |
| |                             |          |           | time. \n\"None\" indicates that the                | "..",                 | |
| |                             |          |           | implementation (provider) is capable of returning  | "0x8000.." }          | |
| |                             |          |           | a value for this property, but not ever for this   | Values {              | |
| |                             |          |           | particular piece of hardware/software or the       | "Unknown",            | |
| |                             |          |           | property is intentionally not used because it      | "Not "                | |
| |                             |          |           | adds no meaningful information (as in the case of  | "Availabl"            | |
| |                             |          |           | a property that is intended to add additional      | "e",                  | |
| |                             |          |           | info to another property). \n\"Servicing\"         | "Servicin"            | |
| |                             |          |           | describes an element being configured,             | "g",                  | |
| |                             |          |           | maintained, cleaned, or otherwise administered.    | "Starting",           | |
| |                             |          |           | \n\"Starting\" describes an element being          | "Stopping",           | |
| |                             |          |           | initialized. \n\"Stopping\" describes an element   | "Stopped",            | |
| |                             |          |           | being brought to an orderly stop. \n\"Stopped\"    | "Aborted",            | |
| |                             |          |           | and \"Aborted\" are similar, although the former   | "Dormant",            | |
| |                             |          |           | implies a clean and orderly stop, while the        | "Complete"            | |
| |                             |          |           | latter implies an abrupt stop where the state and  | "d",                  | |
| |                             |          |           | configuration of the element might need to be      | "Migratin"            | |
| |                             |          |           | updated. \n\"Dormant\" indicates that the element  | "g",                  | |
| |                             |          |           | is inactive or quiesced. \n\"Completed\"           | "Emigrati"            | |
| |                             |          |           | indicates that the element has completed its       | "ng",                 | |
| |                             |          |           | operation. This value should be combined with      | "Immigrat"            | |
| |                             |          |           | either OK, Error, or Degraded in the               | "ing",                | |
| |                             |          |           | PrimaryStatus so that a client can tell if the     | "Snapshot"            | |
| |                             |          |           | complete operation Completed with OK (passed),     | "ting",               | |
| |                             |          |           | Completed with Error (failed), or Completed with   | "Shutting"            | |
| |                             |          |           | Degraded (the operation finished, but it did not   | " "                   | |
| |                             |          |           | complete OK or did not report an error).           | "Down",               | |
| |                             |          |           | \n\"Migrating\" element is being moved between     | "In "                 | |
| |                             |          |           | host elements. \n\"Immigrating\" element is being  | "Test",               | |
| |                             |          |           | moved to new host element. \n\"Emigrating\"        | "Transiti"            | |
| |                             |          |           | element is being moved away from host element.     | "oning",              | |
| |                             |          |           | \n\"Shutting Down\" describes an element being     | "In "                 | |
| |                             |          |           | brought to an abrupt stop. \n\"In Test\" element   | "Service",            | |
| |                             |          |           | is performing test functions. \n\"Transitioning\"  | "DMTF "               | |
| |                             |          |           | describes an element that is between states, that  | "Reserved",           | |
| |                             |          |           | is, it is not fully available in either its        | "Vendor "             | |
| |                             |          |           | previous state or its next state. This value       | "Reserved" }          | |
| |                             |          |           | should be used if other values indicating a        | ModelCorrespondence { | |
| |                             |          |           | transition to a specific state are not             | "CIM_Enab"            | |
| |                             |          |           | applicable.\n\"In Service\" describes an element   | "ledLogic"            | |
| |                             |          |           | that is in service and operational.                | "alElemen"            | |
| |                             |          |           |                                                    | "t.Enable"            | |
| |                             |          |           |                                                    | "dState" }            | |
| | PrimaryStatus               | uint16   |           | PrimaryStatus provides a high level status value,  | ValueMap {            | |
| |                             |          |           | intended to align with Red-Yellow-Green type       | "0",                  | |
| |                             |          |           | representation of status. It should be used in     | "1",                  | |
| |                             |          |           | conjunction with DetailedStatus to provide high    | "2",                  | |
| |                             |          |           | level and detailed health status of the            | "3",                  | |
| |                             |          |           | ManagedElement and its subcomponents.              | "..",                 | |
| |                             |          |           | \nPrimaryStatus consists of one of the following   | "0x8000.." }          | |
| |                             |          |           | values: Unknown, OK, Degraded or Error.            | Values {              | |
| |                             |          |           | \"Unknown\" indicates the implementation is in     | "Unknown",            | |
| |                             |          |           | general capable of returning this property, but    | "OK",                 | |
| |                             |          |           | is unable to do so at this time. \n\"OK\"          | "Degraded",           | |
| |                             |          |           | indicates the ManagedElement is functioning        | "Error",              | |
| |                             |          |           | normally. \n\"Degraded\" indicates the             | "DMTF "               | |
| |                             |          |           | ManagedElement is functioning below normal.        | "Reserved",           | |
| |                             |          |           | \n\"Error\" indicates the ManagedElement is in an  | "Vendor "             | |
| |                             |          |           | Error condition.                                   | "Reserved" }          | |
| |                             |          |           |                                                    | ModelCorrespondence { | |
| |                             |          |           |                                                    | "CIM_Mana"            | |
| |                             |          |           |                                                    | "gedSyste"            | |
| |                             |          |           |                                                    | "mElement"            | |
| |                             |          |           |                                                    | ".Detaile"            | |
| |                             |          |           |                                                    | "dStatus",            | |
| |                             |          |           |                                                    | "CIM_Mana"            | |
| |                             |          |           |                                                    | "gedSyste"            | |
| |                             |          |           |                                                    | "mElement"            | |
| |                             |          |           |                                                    | ".HealthS"            | |
| |                             |          |           |                                                    | "tate" }              | |
| | EnabledState                | uint16   |         5 | EnabledState is an integer enumeration that        | ValueMap {            | |
| |                             |          |           | indicates the enabled and disabled states of an    | "0",                  | |
| |                             |          |           | element. It can also indicate the transitions      | "1",                  | |
| |                             |          |           | between these requested states. For example,       | "2",                  | |
| |                             |          |           | shutting down (value=4) and starting (value=10)    | "3",                  | |
| |                             |          |           | are transient states between enabled and           | "4",                  | |
| |                             |          |           | disabled. The following text briefly summarizes    | "5",                  | |
| |                             |          |           | the various enabled and disabled states:           | "6",                  | |
| |                             |          |           | \nEnabled (2) indicates that the element is or     | "7",                  | |
| |                             |          |           | could be executing commands, will process any      | "8",                  | |
| |                             |          |           | queued commands, and queues new requests.          | "9",                  | |
| |                             |          |           | \nDisabled (3) indicates that the element will     | "10",                 | |
| |                             |          |           | not execute commands and will drop any new         | "11..3276"            | |
| |                             |          |           | requests. \nShutting Down (4) indicates that the   | "7",                  | |
| |                             |          |           | element is in the process of going to a Disabled   | "32768..6"            | |
| |                             |          |           | state. \nNot Applicable (5) indicates the element  | "5535" }              | |
| |                             |          |           | does not support being enabled or disabled.        | Values {              | |
| |                             |          |           | \nEnabled but Offline (6) indicates that the       | "Unknown",            | |
| |                             |          |           | element might be completing commands, and will     | "Other",              | |
| |                             |          |           | drop any new requests. \nTest (7) indicates that   | "Enabled",            | |
| |                             |          |           | the element is in a test state. \nDeferred (8)     | "Disabled",           | |
| |                             |          |           | indicates that the element might be completing     | "Shutting"            | |
| |                             |          |           | commands, but will queue any new requests.         | " "                   | |
| |                             |          |           | \nQuiesce (9) indicates that the element is        | "Down",               | |
| |                             |          |           | enabled but in a restricted mode.\nStarting (10)   | "Not "                | |
| |                             |          |           | indicates that the element is in the process of    | "Applicab"            | |
| |                             |          |           | going to an Enabled state. New requests are        | "le",                 | |
| |                             |          |           | queued.                                            | "Enabled "            | |
| |                             |          |           |                                                    | "but "                | |
| |                             |          |           |                                                    | "Offline",            | |
| |                             |          |           |                                                    | "In "                 | |
| |                             |          |           |                                                    | "Test",               | |
| |                             |          |           |                                                    | "Deferred",           | |
| |                             |          |           |                                                    | "Quiesce",            | |
| |                             |          |           |                                                    | "Starting",           | |
| |                             |          |           |                                                    | "DMTF "               | |
| |                             |          |           |                                                    | "Reserved",           | |
| |                             |          |           |                                                    | "Vendor "             | |
| |                             |          |           |                                                    | "Reserved" }          | |
| |                             |          |           |                                                    | ModelCorrespondence { | |
| |                             |          |           |                                                    | "CIM_Enab"            | |
| |                             |          |           |                                                    | "ledLogic"            | |
| |                             |          |           |                                                    | "alElemen"            | |
| |                             |          |           |                                                    | "t.OtherE"            | |
| |                             |          |           |                                                    | "nabledSt"            | |
| |                             |          |           |                                                    | "ate" }               | |
| | OtherEnabledState           | string   |           | A string that describes the enabled or disabled    | ModelCorrespondence { | |
| |                             |          |           | state of the element when the EnabledState         | "CIM_Enab"            | |
| |                             |          |           | property is set to 1 (\"Other\"). This property    | "ledLogic"            | |
| |                             |          |           | must be set to null when EnabledState is any       | "alElemen"            | |
| |                             |          |           | value other than 1.                                | "t.Enable"            | |
| |                             |          |           |                                                    | "dState" }            | |
| | RequestedState              | uint16   |        12 | RequestedState is an integer enumeration that      | ValueMap {            | |
| |                             |          |           | indicates the last requested or desired state for  | "0",                  | |
| |                             |          |           | the element, irrespective of the mechanism         | "2",                  | |
| |                             |          |           | through which it was requested. The actual state   | "3",                  | |
| |                             |          |           | of the element is represented by EnabledState.     | "4",                  | |
| |                             |          |           | This property is provided to compare the last      | "5",                  | |
| |                             |          |           | requested and current enabled or disabled states.  | "6",                  | |
| |                             |          |           | Note that when EnabledState is set to 5 (\"Not     | "7",                  | |
| |                             |          |           | Applicable\"), then this property has no meaning.  | "8",                  | |
| |                             |          |           | Refer to the EnabledState property description     | "9",                  | |
| |                             |          |           | for explanations of the values in the              | "10",                 | |
| |                             |          |           | RequestedState enumeration. \n\"Unknown\" (0)      | "11",                 | |
| |                             |          |           | indicates the last requested state for the         | "12",                 | |
| |                             |          |           | element is unknown.\nNote that the value \"No      | "..",                 | |
| |                             |          |           | Change\" (5) has been deprecated in lieu of        | "32768..6"            | |
| |                             |          |           | indicating the last requested state is             | "5535" }              | |
| |                             |          |           | \"Unknown\" (0). If the last requested or desired  | Values {              | |
| |                             |          |           | state is unknown, RequestedState should have the   | "Unknown",            | |
| |                             |          |           | value \"Unknown\" (0), but may have the value      | "Enabled",            | |
| |                             |          |           | \"No Change\" (5).Offline (6) indicates that the   | "Disabled",           | |
| |                             |          |           | element has been requested to transition to the    | "Shut "               | |
| |                             |          |           | Enabled but Offline EnabledState. \nIt should be   | "Down",               | |
| |                             |          |           | noted that there are two new values in             | "No "                 | |
| |                             |          |           | RequestedState that build on the statuses of       | "Change",             | |
| |                             |          |           | EnabledState. These are \"Reboot\" (10) and        | "Offline",            | |
| |                             |          |           | \"Reset\" (11). Reboot refers to doing a \"Shut    | "Test",               | |
| |                             |          |           | Down\" and then moving to an \"Enabled\" state.    | "Deferred",           | |
| |                             |          |           | Reset indicates that the element is first          | "Quiesce",            | |
| |                             |          |           | \"Disabled\" and then \"Enabled\". The             | "Reboot",             | |
| |                             |          |           | distinction between requesting \"Shut Down\" and   | "Reset",              | |
| |                             |          |           | \"Disabled\" should also be noted. Shut Down       | "Not "                | |
| |                             |          |           | requests an orderly transition to the Disabled     | "Applicab"            | |
| |                             |          |           | state, and might involve removing power, to        | "le",                 | |
| |                             |          |           | completely erase any existing state. The Disabled  | "DMTF "               | |
| |                             |          |           | state requests an immediate disabling of the       | "Reserved",           | |
| |                             |          |           | element, such that it will not execute or accept   | "Vendor "             | |
| |                             |          |           | any commands or processing requests. \n\nThis      | "Reserved" }          | |
| |                             |          |           | property is set as the result of a method          | ModelCorrespondence { | |
| |                             |          |           | invocation (such as Start or StopService on        | "CIM_Enab"            | |
| |                             |          |           | CIM_Service), or can be overridden and defined as  | "ledLogic"            | |
| |                             |          |           | WRITEable in a subclass. The method approach is    | "alElemen"            | |
| |                             |          |           | considered superior to a WRITEable property,       | "t.Enable"            | |
| |                             |          |           | because it allows an explicit invocation of the    | "dState" }            | |
| |                             |          |           | operation and the return of a result code. \n\nIf  |                       | |
| |                             |          |           | knowledge of the last RequestedState is not        |                       | |
| |                             |          |           | supported for the EnabledLogicalElement, the       |                       | |
| |                             |          |           | property shall be NULL or have the value 12 \"Not  |                       | |
| |                             |          |           | Applicable\".                                      |                       | |
| | EnabledDefault              | uint16   |         2 | An enumerated value indicating an                  | Write (               | |
| |                             |          |           | administrator\'s default or startup configuration  | true )                | |
| |                             |          |           | for the Enabled State of an element. By default,   | ValueMap {            | |
| |                             |          |           | the element is \"Enabled\" (value=2).              | "2",                  | |
| |                             |          |           |                                                    | "3",                  | |
| |                             |          |           |                                                    | "5",                  | |
| |                             |          |           |                                                    | "6",                  | |
| |                             |          |           |                                                    | "7",                  | |
| |                             |          |           |                                                    | "9",                  | |
| |                             |          |           |                                                    | "..",                 | |
| |                             |          |           |                                                    | "32768..6"            | |
| |                             |          |           |                                                    | "5535" }              | |
| |                             |          |           |                                                    | Values {              | |
| |                             |          |           |                                                    | "Enabled",            | |
| |                             |          |           |                                                    | "Disabled",           | |
| |                             |          |           |                                                    | "Not "                | |
| |                             |          |           |                                                    | "Applicab"            | |
| |                             |          |           |                                                    | "le",                 | |
| |                             |          |           |                                                    | "Enabled "            | |
| |                             |          |           |                                                    | "but "                | |
| |                             |          |           |                                                    | "Offline",            | |
| |                             |          |           |                                                    | "No "                 | |
| |                             |          |           |                                                    | "Default",            | |
| |                             |          |           |                                                    | "Quiesce",            | |
| |                             |          |           |                                                    | "DMTF "               | |
| |                             |          |           |                                                    | "Reserved",           | |
| |                             |          |           |                                                    | "Vendor "             | |
| |                             |          |           |                                                    | "Reserved" }          | |
| | TimeOfLastStateChange       | datetime |           | The date or time when the EnabledState of the      |                       | |
| |                             |          |           | element last changed. If the state of the element  |                       | |
| |                             |          |           | has not changed and this property is populated,    |                       | |
| |                             |          |           | then it must be set to a 0 interval value. If a    |                       | |
| |                             |          |           | state change was requested, but rejected or not    |                       | |
| |                             |          |           | yet processed, the property must not be updated.   |                       | |
| | AvailableRequestedStates    | uint16[] |           | AvailableRequestedStates indicates the possible    | ValueMap {            | |
| |                             |          |           | values for the RequestedState parameter of the     | "2",                  | |
| |                             |          |           | method RequestStateChange, used to initiate a      | "3",                  | |
| |                             |          |           | state change. The values listed shall be a subset  | "4",                  | |
| |                             |          |           | of the values contained in the                     | "6",                  | |
| |                             |          |           | RequestedStatesSupported property of the           | "7",                  | |
| |                             |          |           | associated instance of                             | "8",                  | |
| |                             |          |           | CIM_EnabledLogicalElementCapabilities where the    | "9",                  | |
| |                             |          |           | values selected are a function of the current      | "10",                 | |
| |                             |          |           | state of the CIM_EnabledLogicalElement. This       | "11",                 | |
| |                             |          |           | property may be non-null if an implementation is   | ".." }                | |
| |                             |          |           | able to advertise the set of possible values as a  | Values {              | |
| |                             |          |           | function of the current state. This property       | "Enabled",            | |
| |                             |          |           | shall be null if an implementation is unable to    | "Disabled",           | |
| |                             |          |           | determine the set of possible values as a          | "Shut "               | |
| |                             |          |           | function of the current state.                     | "Down",               | |
| |                             |          |           |                                                    | "Offline",            | |
| |                             |          |           |                                                    | "Test",               | |
| |                             |          |           |                                                    | "Defer",              | |
| |                             |          |           |                                                    | "Quiesce",            | |
| |                             |          |           |                                                    | "Reboot",             | |
| |                             |          |           |                                                    | "Reset",              | |
| |                             |          |           |                                                    | "DMTF "               | |
| |                             |          |           |                                                    | "Reserved" }          | |
| |                             |          |           |                                                    | ModelCorrespondence { | |
| |                             |          |           |                                                    | "CIM_Enab"            | |
| |                             |          |           |                                                    | "ledLogic"            | |
| |                             |          |           |                                                    | "alElemen"            | |
| |                             |          |           |                                                    | "t.Reques"            | |
| |                             |          |           |                                                    | "tStateCh"            | |
| |                             |          |           |                                                    | "ange",               | |
| |                             |          |           |                                                    | "CIM_Enab"            | |
| |                             |          |           |                                                    | "ledLogic"            | |
| |                             |          |           |                                                    | "alElemen"            | |
| |                             |          |           |                                                    | "tCapabil"            | |
| |                             |          |           |                                                    | "ities.Re"            | |
| |                             |          |           |                                                    | "questedS"            | |
| |                             |          |           |                                                    | "tatesSup"            | |
| |                             |          |           |                                                    | "ported" }            | |
| | TransitioningToState        | uint16   |        12 | TransitioningToState indicates the target state    | ValueMap {            | |
| |                             |          |           | to which the instance is transitioning. \nA value  | "0",                  | |
| |                             |          |           | of 5 \"No Change\" shall indicate that no          | "2",                  | |
| |                             |          |           | transition is in progress.A value of 12 \"Not      | "3",                  | |
| |                             |          |           | Applicable\" shall indicate the implementation     | "4",                  | |
| |                             |          |           | does not support representing ongoing              | "5",                  | |
| |                             |          |           | transitions. \nA value other than 5 or 12 shall    | "6",                  | |
| |                             |          |           | identify the state to which the element is in the  | "7",                  | |
| |                             |          |           | process of transitioning.                          | "8",                  | |
| |                             |          |           |                                                    | "9",                  | |
| |                             |          |           |                                                    | "10",                 | |
| |                             |          |           |                                                    | "11",                 | |
| |                             |          |           |                                                    | "12",                 | |
| |                             |          |           |                                                    | ".." }                | |
| |                             |          |           |                                                    | Values {              | |
| |                             |          |           |                                                    | "Unknown",            | |
| |                             |          |           |                                                    | "Enabled",            | |
| |                             |          |           |                                                    | "Disabled",           | |
| |                             |          |           |                                                    | "Shut "               | |
| |                             |          |           |                                                    | "Down",               | |
| |                             |          |           |                                                    | "No "                 | |
| |                             |          |           |                                                    | "Change",             | |
| |                             |          |           |                                                    | "Offline",            | |
| |                             |          |           |                                                    | "Test",               | |
| |                             |          |           |                                                    | "Defer",              | |
| |                             |          |           |                                                    | "Quiesce",            | |
| |                             |          |           |                                                    | "Reboot",             | |
| |                             |          |           |                                                    | "Reset",              | |
| |                             |          |           |                                                    | "Not "                | |
| |                             |          |           |                                                    | "Applicab"            | |
| |                             |          |           |                                                    | "le",                 | |
| |                             |          |           |                                                    | "DMTF "               | |
| |                             |          |           |                                                    | "Reserved" }          | |
| |                             |          |           |                                                    | ModelCorrespondence { | |
| |                             |          |           |                                                    | "CIM_Enab"            | |
| |                             |          |           |                                                    | "ledLogic"            | |
| |                             |          |           |                                                    | "alElemen"            | |
| |                             |          |           |                                                    | "t.Reques"            | |
| |                             |          |           |                                                    | "tStateCh"            | |
| |                             |          |           |                                                    | "ange",               | |
| |                             |          |           |                                                    | "CIM_Enab"            | |
| |                             |          |           |                                                    | "ledLogic"            | |
| |                             |          |           |                                                    | "alElemen"            | |
| |                             |          |           |                                                    | "t.Reques"            | |
| |                             |          |           |                                                    | "tedState",           | |
| |                             |          |           |                                                    | "CIM_Enab"            | |
| |                             |          |           |                                                    | "ledLogic"            | |
| |                             |          |           |                                                    | "alElemen"            | |
| |                             |          |           |                                                    | "t.Enable"            | |
| |                             |          |           |                                                    | "dState" }            | |
| | CreationClassName           | string   |           | CreationClassName indicates the name of the class  | Key (                 | |
| |                             |          |           | or the subclass used in the creation of an         | true )                | |
| |                             |          |           | instance. When used with the other key properties  | MaxLen (              | |
| |                             |          |           | of this class, this property allows all instances  | 256 )                 | |
| |                             |          |           | of this class and its subclasses to be uniquely    |                       | |
| |                             |          |           | identified.                                        |                       | |
| | Name                        | string   |           | The inherited Name serves as the key of a System   | Key (                 | |
| |                             |          |           | instance in an enterprise environment.             | true )                | |
| |                             |          |           |                                                    | Override (            | |
| |                             |          |           |                                                    | "Name" )              | |
| |                             |          |           |                                                    | MaxLen (              | |
| |                             |          |           |                                                    | 256 )                 | |
| | PrimaryOwnerName            | string   |           | The name of the primary system owner. The system   | Write (               | |
| |                             |          |           | owner is the primary user of the system.           | true )                | |
| |                             |          |           |                                                    | MaxLen (              | |
| |                             |          |           |                                                    | 64 )                  | |
| |                             |          |           |                                                    | MappingStrings {      | |
| |                             |          |           |                                                    | "MIF.DMTF"            | |
| |                             |          |           |                                                    | "|General"            | |
| |                             |          |           |                                                    | " "                   | |
| |                             |          |           |                                                    | "Informat"            | |
| |                             |          |           |                                                    | "ion|001."            | |
| |                             |          |           |                                                    | "3" }                 | |
| | PrimaryOwnerContact         | string   |           | A string that provides information on how the      | Write (               | |
| |                             |          |           | primary system owner can be reached (for example,  | true )                | |
| |                             |          |           | phone number, e-mail address, and so on).          | MaxLen (              | |
| |                             |          |           |                                                    | 256 )                 | |
| |                             |          |           |                                                    | MappingStrings {      | |
| |                             |          |           |                                                    | "MIF.DMTF"            | |
| |                             |          |           |                                                    | "|General"            | |
| |                             |          |           |                                                    | " "                   | |
| |                             |          |           |                                                    | "Informat"            | |
| |                             |          |           |                                                    | "ion|001."            | |
| |                             |          |           |                                                    | "4" }                 | |
| | Roles                       | string[] |           | An array (bag) of strings that specifies the       | Write (               | |
| |                             |          |           | administrator -defined roles this System plays in  | true )                | |
| |                             |          |           | the managed environment. Examples might be         |                       | |
| |                             |          |           | \'Building 8 print server\' or \'Boise user        |                       | |
| |                             |          |           | directories\'. A single system may perform         |                       | |
| |                             |          |           | multiple roles. \nNote that the instrumentation    |                       | |
| |                             |          |           | view of the \'roles\' of a System is defined by    |                       | |
| |                             |          |           | instantiating a specific subclass of System, or    |                       | |
| |                             |          |           | by properties in a subclass, or both. For          |                       | |
| |                             |          |           | example, the purpose of a ComputerSystem is        |                       | |
| |                             |          |           | defined using the Dedicated and                    |                       | |
| |                             |          |           | OtherDedicatedDescription properties.              |                       | |
| | OtherIdentifyingInfo        | string[] |           | OtherIdentifyingInfo captures additional data,     | ArrayType (           | |
| |                             |          |           | beyond System Name information, that could be      | "Indexed" )           | |
| |                             |          |           | used to identify a ComputerSystem. One example     | MaxLen (              | |
| |                             |          |           | would be to hold the Fibre Channel World-Wide      | 256 )                 | |
| |                             |          |           | Name (WWN) of a node. Note that if only the Fibre  | ModelCorrespondence { | |
| |                             |          |           | Channel name is available and is unique (able to   | "CIM_Syst"            | |
| |                             |          |           | be used as the System key), then this property     | "em.Ident"            | |
| |                             |          |           | would be NULL and the WWN would become the System  | "ifyingDe"            | |
| |                             |          |           | key, its data placed in the Name property.         | "scriptio"            | |
| |                             |          |           |                                                    | "ns" }                | |
| | IdentifyingDescriptions     | string[] |           | An array of free-form strings providing            | ArrayType (           | |
| |                             |          |           | explanations and details behind the entries in     | "Indexed" )           | |
| |                             |          |           | the OtherIdentifying Info array. Note, each entry  | ModelCorrespondence { | |
| |                             |          |           | of this array is related to the entry in           | "CIM_Syst"            | |
| |                             |          |           | OtherIdentifyingInfo that is located at the same   | "em.Other"            | |
| |                             |          |           | index.                                             | "Identify"            | |
| |                             |          |           |                                                    | "ingInfo" }           | |
| | NameFormat                  | string   |           | The ComputerSystem object and its derivatives are  | MaxLen (              | |
| |                             |          |           | Top Level Objects of CIM. They provide the scope   | 64 )                  | |
| |                             |          |           | for numerous components. Having unique System      | Override (            | |
| |                             |          |           | keys is required. The NameFormat property          | "NameForm"            | |
| |                             |          |           | identifies how the ComputerSystem Name is          | "at" )                | |
| |                             |          |           | generated. The NameFormat ValueMap qualifier       | ValueMap {            | |
| |                             |          |           | defines the various mechanisms for assigning the   | "Other",              | |
| |                             |          |           | name. Note that another name can be assigned and   | "IP",                 | |
| |                             |          |           | used for the ComputerSystem that better suit a     | "Dial",               | |
| |                             |          |           | business, using the inherited ElementName          | "HID",                | |
| |                             |          |           | property.\nIf the NameFormat is set to \"UUID\",   | "NWA",                | |
| |                             |          |           | then the Name property shall be a UUID in its      | "HWA",                | |
| |                             |          |           | canonical form consisting of 32 hexadecimal        | "X25",                | |
| |                             |          |           | digits in 5 groups separated by hyphens, in the    | "ISDN",               | |
| |                             |          |           | form 8-4-4-4-12 for a total of 36 characters (32   | "IPX",                | |
| |                             |          |           | digits and 4 hyphens). For the first three         | "DCC",                | |
| |                             |          |           | fields, the most significant digit is on the       | "ICD",                | |
| |                             |          |           | left. The last two fields are treated as eight     | "E.164",              | |
| |                             |          |           | separate bytes, each having their most             | "SNA",                | |
| |                             |          |           | significant digit on the left, and they follow     | "OID/OSI",            | |
| |                             |          |           | each other from left to right.                     | "WWN",                | |
| |                             |          |           |                                                    | "NAA",                | |
| |                             |          |           |                                                    | "UUID" }              | |
| | Dedicated                   | uint16[] |           | Enumeration indicating the purpose(s) to which     | ValueMap {            | |
| |                             |          |           | the ComputerSystem is dedicated, if any, and what  | "0",                  | |
| |                             |          |           | functionality is provided. For example, one could  | "1",                  | |
| |                             |          |           | specify that the System is dedicated to \"Print\"  | "2",                  | |
| |                             |          |           | (value=11) or acts as a \"Hub\" (value=8).         | "3",                  | |
| |                             |          |           | \nAlso, one could indicate that this is a general  | "4",                  | |
| |                             |          |           | purpose system by indicating \'Not Dedicated\'     | "5",                  | |
| |                             |          |           | (value=0) but that it also hosts \'Print\'         | "6",                  | |
| |                             |          |           | (value=11) or mobile phone \'Mobile User Device\'  | "7",                  | |
| |                             |          |           | (value=17) services. \nA clarification is needed   | "8",                  | |
| |                             |          |           | with respect to the value 17 (\"Mobile User        | "9",                  | |
| |                             |          |           | Device\"). An example of a dedicated user device   | "10",                 | |
| |                             |          |           | is a mobile phone or a barcode scanner in a store  | "11",                 | |
| |                             |          |           | that communicates via radio frequency. These       | "12",                 | |
| |                             |          |           | systems are quite limited in functionality and     | "13",                 | |
| |                             |          |           | programmability, and are not considered \'general  | "14",                 | |
| |                             |          |           | purpose\' computing platforms. Alternately, an     | "15",                 | |
| |                             |          |           | example of a mobile system that is \'general       | "16",                 | |
| |                             |          |           | purpose\' (i.e., is NOT dedicated) is a hand-held  | "17",                 | |
| |                             |          |           | computer. Although limited in its                  | "18",                 | |
| |                             |          |           | programmability, new software can be downloaded    | "19",                 | |
| |                             |          |           | and its functionality expanded by the user. \nA    | "20",                 | |
| |                             |          |           | value of \"Management\" indicates this instance    | "21",                 | |
| |                             |          |           | is dedicated to hosting system management          | "22",                 | |
| |                             |          |           | software.\nA value of \"Management Controller\"    | "23",                 | |
| |                             |          |           | indicates this instance represents specialized     | "24",                 | |
| |                             |          |           | hardware dedicated to systems management (i.e., a  | "25",                 | |
| |                             |          |           | Baseboard Management Controller (BMC) or service   | "26",                 | |
| |                             |          |           | processor).\nThe management scope of a             | "27",                 | |
| |                             |          |           | \"Management Controller\" is typically a single    | "28",                 | |
| |                             |          |           | managed system in which it is contained.\nA value  | "29",                 | |
| |                             |          |           | of \"Chassis Manager\" indicates this instance     | "30",                 | |
| |                             |          |           | represents a system dedicated to management of a   | "31",                 | |
| |                             |          |           | blade chassis and its contained devices. This      | "32",                 | |
| |                             |          |           | value would be used to represent a Shelf           | "33",                 | |
| |                             |          |           | Controller. A \"Chassis Manager\" is an            | "34",                 | |
| |                             |          |           | aggregation point for management and may rely on   | "35",                 | |
| |                             |          |           | subordinate management controllers for the         | "36",                 | |
| |                             |          |           | management of constituent parts. A value of        | "37",                 | |
| |                             |          |           | \"Host-based RAID Controller\" indicates this      | "38",                 | |
| |                             |          |           | instance represents a RAID storage controller      | "39",                 | |
| |                             |          |           | contained within a host computer. A value of       | "40",                 | |
| |                             |          |           | \"Storage Device Enclosure\" indicates this        | "..",                 | |
| |                             |          |           | instance represents an enclosure that contains     | "32568..6"            | |
| |                             |          |           | storage devices. A \"Virtual Tape Library\" is     | "5535" }              | |
| |                             |          |           | the emulation of a tape library by a Virtual       | Values {              | |
| |                             |          |           | Library System. A \"Virtual Library System\" uses  | "Not "                | |
| |                             |          |           | disk storage to emulate tape libraries.A \"FC      | "Dedicate"            | |
| |                             |          |           | Switch\" indicates this instance is dedicated to   | "d",                  | |
| |                             |          |           | switching layer 2 fibre channel frames. An         | "Unknown",            | |
| |                             |          |           | \"Ethernet Switch\" indicates this instance is     | "Other",              | |
| |                             |          |           | dedicated to switching layer 2 ethernet            | "Storage",            | |
| |                             |          |           | frames.\n\"Server\" indicates that the system is   | "Router",             | |
| |                             |          |           | an independent computer system whose primary       | "Switch",             | |
| |                             |          |           | purpose is to host services for other systems and  | "Layer 3 "            | |
| |                             |          |           | devices to access; typically as in a stand-alone   | "Switch",             | |
| |                             |          |           | floor or rack-mounted system.\n\"Blade\"           | "Central "            | |
| |                             |          |           | indicates this instance is a computer system that  | "Office "             | |
| |                             |          |           | fits into another chassis and depends on it for    | "Switch",             | |
| |                             |          |           | services, such as power, cooling, etc.             | "Hub",                | |
| |                             |          |           |                                                    | "Access "             | |
| |                             |          |           |                                                    | "Server",             | |
| |                             |          |           |                                                    | "Firewall",           | |
| |                             |          |           |                                                    | "Print",              | |
| |                             |          |           |                                                    | "I/O",                | |
| |                             |          |           |                                                    | "Web "                | |
| |                             |          |           |                                                    | "Caching",            | |
| |                             |          |           |                                                    | "Manageme"            | |
| |                             |          |           |                                                    | "nt",                 | |
| |                             |          |           |                                                    | "Block "              | |
| |                             |          |           |                                                    | "Server",             | |
| |                             |          |           |                                                    | "File "               | |
| |                             |          |           |                                                    | "Server",             | |
| |                             |          |           |                                                    | "Mobile "             | |
| |                             |          |           |                                                    | "User "               | |
| |                             |          |           |                                                    | "Device",             | |
| |                             |          |           |                                                    | "Repeater",           | |
| |                             |          |           |                                                    | "Bridge/E"            | |
| |                             |          |           |                                                    | "xtender",            | |
| |                             |          |           |                                                    | "Gateway",            | |
| |                             |          |           |                                                    | "Storage "            | |
| |                             |          |           |                                                    | "Virtuali"            | |
| |                             |          |           |                                                    | "zer",                | |
| |                             |          |           |                                                    | "Media "              | |
| |                             |          |           |                                                    | "Library",            | |
| |                             |          |           |                                                    | "Extender"            | |
| |                             |          |           |                                                    | "Node",               | |
| |                             |          |           |                                                    | "NAS "                | |
| |                             |          |           |                                                    | "Head",               | |
| |                             |          |           |                                                    | "Self-con"            | |
| |                             |          |           |                                                    | "tained "             | |
| |                             |          |           |                                                    | "NAS",                | |
| |                             |          |           |                                                    | "UPS",                | |
| |                             |          |           |                                                    | "IP "                 | |
| |                             |          |           |                                                    | "Phone",              | |
| |                             |          |           |                                                    | "Manageme"            | |
| |                             |          |           |                                                    | "nt "                 | |
| |                             |          |           |                                                    | "Controll"            | |
| |                             |          |           |                                                    | "er",                 | |
| |                             |          |           |                                                    | "Chassis "            | |
| |                             |          |           |                                                    | "Manager",            | |
| |                             |          |           |                                                    | "Host-bas"            | |
| |                             |          |           |                                                    | "ed RAID "            | |
| |                             |          |           |                                                    | "controll"            | |
| |                             |          |           |                                                    | "er",                 | |
| |                             |          |           |                                                    | "Storage "            | |
| |                             |          |           |                                                    | "Device "             | |
| |                             |          |           |                                                    | "Enclosur"            | |
| |                             |          |           |                                                    | "e",                  | |
| |                             |          |           |                                                    | "Desktop",            | |
| |                             |          |           |                                                    | "Laptop",             | |
| |                             |          |           |                                                    | "Virtual "            | |
| |                             |          |           |                                                    | "Tape "               | |
| |                             |          |           |                                                    | "Library",            | |
| |                             |          |           |                                                    | "Virtual "            | |
| |                             |          |           |                                                    | "Library "            | |
| |                             |          |           |                                                    | "System",             | |
| |                             |          |           |                                                    | "Network "            | |
| |                             |          |           |                                                    | "PC/Thin "            | |
| |                             |          |           |                                                    | "Client",             | |
| |                             |          |           |                                                    | "FC "                 | |
| |                             |          |           |                                                    | "Switch",             | |
| |                             |          |           |                                                    | "Ethernet"            | |
| |                             |          |           |                                                    | " "                   | |
| |                             |          |           |                                                    | "Switch",             | |
| |                             |          |           |                                                    | "Server",             | |
| |                             |          |           |                                                    | "Blade",              | |
| |                             |          |           |                                                    | "DMTF "               | |
| |                             |          |           |                                                    | "Reserved",           | |
| |                             |          |           |                                                    | "Vendor "             | |
| |                             |          |           |                                                    | "Reserved" }          | |
| |                             |          |           |                                                    | ArrayType (           | |
| |                             |          |           |                                                    | "Indexed" )           | |
| |                             |          |           |                                                    | MappingStrings {      | |
| |                             |          |           |                                                    | "MIB.IETF"            | |
| |                             |          |           |                                                    | "|MIB-II."            | |
| |                             |          |           |                                                    | "sysServi"            | |
| |                             |          |           |                                                    | "ces",                | |
| |                             |          |           |                                                    | "FC-GS.IN"            | |
| |                             |          |           |                                                    | "CITS-T11"            | |
| |                             |          |           |                                                    | " | "                 | |
| |                             |          |           |                                                    | "Platform"            | |
| |                             |          |           |                                                    | " | "                 | |
| |                             |          |           |                                                    | "Platform"            | |
| |                             |          |           |                                                    | "Type" }              | |
| |                             |          |           |                                                    | ModelCorrespondence { | |
| |                             |          |           |                                                    | "CIM_Comp"            | |
| |                             |          |           |                                                    | "uterSyst"            | |
| |                             |          |           |                                                    | "em.Other"            | |
| |                             |          |           |                                                    | "Dedicate"            | |
| |                             |          |           |                                                    | "dDescrip"            | |
| |                             |          |           |                                                    | "tions" }             | |
| | OtherDedicatedDescriptions  | string[] |           | A string describing how or why the system is       | ArrayType (           | |
| |                             |          |           | dedicated when the Dedicated array includes the    | "Indexed" )           | |
| |                             |          |           | value 2, \"Other\".                                | ModelCorrespondence { | |
| |                             |          |           |                                                    | "CIM_Comp"            | |
| |                             |          |           |                                                    | "uterSyst"            | |
| |                             |          |           |                                                    | "em.Dedic"            | |
| |                             |          |           |                                                    | "ated" }              | |
| | ResetCapability             | uint16   |           | If enabled (value = 4), the ComputerSystem can be  | ValueMap {            | |
| |                             |          |           | reset via hardware (e.g. the power and reset       | "1",                  | |
| |                             |          |           | buttons). If disabled (value = 3), hardware reset  | "2",                  | |
| |                             |          |           | is not allowed. In addition to Enabled and         | "3",                  | |
| |                             |          |           | Disabled, other Values for the property are also   | "4",                  | |
| |                             |          |           | defined - \"Not Implemented\" (5), \"Other\" (1)   | "5" }                 | |
| |                             |          |           | and \"Unknown\" (2).                               | Values {              | |
| |                             |          |           |                                                    | "Other",              | |
| |                             |          |           |                                                    | "Unknown",            | |
| |                             |          |           |                                                    | "Disabled",           | |
| |                             |          |           |                                                    | "Enabled",            | |
| |                             |          |           |                                                    | "Not "                | |
| |                             |          |           |                                                    | "Implemen"            | |
| |                             |          |           |                                                    | "ted" }               | |
| |                             |          |           |                                                    | MappingStrings {      | |
| |                             |          |           |                                                    | "MIF.DMTF"            | |
| |                             |          |           |                                                    | "|System "            | |
| |                             |          |           |                                                    | "Hardware"            | |
| |                             |          |           |                                                    | " "                   | |
| |                             |          |           |                                                    | "Security"            | |
| |                             |          |           |                                                    | "|001.4" }            | |
| | PowerManagementCapabilities | uint16[] |           | An enumerated array describing the power           | Deprecated {          | |
| |                             |          |           | management capabilities of the ComputerSystem.     | "CIM_Powe"            | |
| |                             |          |           | The use of this property has been deprecated.      | "rManagem"            | |
| |                             |          |           | Instead, the Power Capabilites property in an      | "entCapab"            | |
| |                             |          |           | associated PowerManagement Capabilities class      | "ilities."            | |
| |                             |          |           | should be used.                                    | "PowerCap"            | |
| |                             |          |           |                                                    | "abilitie"            | |
| |                             |          |           |                                                    | "s" }                 | |
| |                             |          |           |                                                    | ValueMap {            | |
| |                             |          |           |                                                    | "0",                  | |
| |                             |          |           |                                                    | "1",                  | |
| |                             |          |           |                                                    | "2",                  | |
| |                             |          |           |                                                    | "3",                  | |
| |                             |          |           |                                                    | "4",                  | |
| |                             |          |           |                                                    | "5",                  | |
| |                             |          |           |                                                    | "6",                  | |
| |                             |          |           |                                                    | "7" }                 | |
| |                             |          |           |                                                    | Values {              | |
| |                             |          |           |                                                    | "Unknown",            | |
| |                             |          |           |                                                    | "Not "                | |
| |                             |          |           |                                                    | "Supporte"            | |
| |                             |          |           |                                                    | "d",                  | |
| |                             |          |           |                                                    | "Disabled",           | |
| |                             |          |           |                                                    | "Enabled",            | |
| |                             |          |           |                                                    | "Power "              | |
| |                             |          |           |                                                    | "Saving "             | |
| |                             |          |           |                                                    | "Modes "              | |
| |                             |          |           |                                                    | "Entered "            | |
| |                             |          |           |                                                    | "Automati"            | |
| |                             |          |           |                                                    | "cally",              | |
| |                             |          |           |                                                    | "Power "              | |
| |                             |          |           |                                                    | "State "              | |
| |                             |          |           |                                                    | "Settable",           | |
| |                             |          |           |                                                    | "Power "              | |
| |                             |          |           |                                                    | "Cycling "            | |
| |                             |          |           |                                                    | "Supporte"            | |
| |                             |          |           |                                                    | "d",                  | |
| |                             |          |           |                                                    | "Timed "              | |
| |                             |          |           |                                                    | "Power "              | |
| |                             |          |           |                                                    | "On "                 | |
| |                             |          |           |                                                    | "Supporte"            | |
| |                             |          |           |                                                    | "d" }                 | |
| |                             |          |           |                                                    | MappingStrings {      | |
| |                             |          |           |                                                    | "MIF.DMTF"            | |
| |                             |          |           |                                                    | "|System "            | |
| |                             |          |           |                                                    | "Power "              | |
| |                             |          |           |                                                    | "Controls"            | |
| |                             |          |           |                                                    | "|001.2" }            | |
| +-----------------------------+----------+-----------+----------------------------------------------------+-----------------------+ |
+-------------------------------------------------------------------------------------------------------------------------------------+

@KSchopmeyer KSchopmeyer self-assigned this Sep 1, 2020
@andy-maier andy-maier changed the title WIP Ks/#249 add class table view [WIP] Fixes #249: Add class table view Oct 6, 2020
@andy-maier andy-maier linked an issue Oct 6, 2020 that may be closed by this pull request
@andy-maier andy-maier added this to the 0.9.0 milestone Oct 6, 2020
@andy-maier
Copy link
Contributor

Waiting for start of pywbemtools 0.9.0

@andy-maier
Copy link
Contributor

pywbemtools 0.9 has started, so this PR can resume.

@andy-maier andy-maier modified the milestones: 0.9.0, 1.0.0 Apr 30, 2021
@andy-maier andy-maier modified the milestones: 1.0.0, 1.1.0 Jul 17, 2021
@andy-maier andy-maier modified the milestones: 1.1.0, 1.2.0 Oct 16, 2022
@andy-maier andy-maier modified the milestones: 1.2.0, 1.3.0 Jan 9, 2023
@andy-maier
Copy link
Contributor

DISCUSSION
Do we resolve the merge conflicts and add it, or do we abandon it?

@KSchopmeyer
Copy link
Contributor Author

We want to resolve this and the exact table formats and put at least part of the class tables into the next release.

@andy-maier andy-maier modified the milestones: 1.3.0, 1.4.0 Apr 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add table format for class object output
2 participants