Reporting Manufacturer, Model, and Serial Number
Taking an inventory of systems in your datacenter can be a first step to monitoring the status of the servers. You can store the inventory data for future use when you monitor configuration changes.
This example shows how to get physical identifying information from the Interop namespace by traversing associations to the CIM_Chassis for the Scoping Instance. Locating Chassis Information from the Base Server Scoping Instance shows the relationships of the CIM objects involved.
If you know the Implementation namespace in advance, you can bypass the Interop namespace. For information about getting physical identifying information by using only the Implementation namespace, see Reporting Manufacturer, Model, and Serial Number By Using Only the Implementation Namespace.
Locating Chassis Information from the Base Server Scoping Instance
This pseudocode depends on the pseudocode in Making a Connection to the CIMOM and Identifying the Base Server Scoping Instance.
To report manufacturer, model, and serial number
1
Specify the Interop namespace, supplied as a parameter, for the connection.
use wbemlib
use sys
use connection renamed cnx
connection = Null
 
params = cnx.get_params()
if params is Null
sys.exit(-1)
interop_params = params
interop_params['namespace'] = 'root/interop'
connection = cnx.connect_to_host( interop_params )
if connection is Null
print 'Failed to connect to: ' + params['host'] + ' as user: ' + params['user']
sys.exit(-1)
2
use scoping_instance renamed si
 
scoping_instance_name = si.get_scoping_instance_name( connection )
if scoping_instance_name is Null
print 'Failed to find Scoping Instance.'
sys.exit(-1)
3
Traverse the CIM_ComputerSystemPackage association to reach the CIM_Chassis instance that corresponds to the managed server.
instance_names = connection.AssociatorNames( scoping_instance_name, \
AssocClass = 'CIM_ComputerSystemPackage', \
ResultClass = 'CIM_Chassis' )
if len( instance_names ) > 1
print 'Error: %d Chassis instances found for Scoping Instance.' \
% len ( instance_names )
sys.exit(-1)
4
Print the Manufacturer, Model, and SerialNumber properties.
This example prints additional properties to help identify physical components.
instance_name = instance_names.pop()
instance = connection.GetInstance( instance_name )
print ’\n’ + ’CIM_Chassis [’ + instance.classname + ’] =’
for property_name in [ ’ElementName’, ’Tag’, \
      ’Manufacturer’, ’Model’, ’SerialNumber’ ]
   if instance.key( property_name )
      value = instance[ property_name ]
   else
      value = ’(not available)’
   print ’  %30s : %s’ % ( property_name, value )
 
A sample of the output looks like the following:
CIM_Chassis [OMC_Chassis] =
ElementName : Chassis
Tag : 23.0
Manufacturer : Cirrostratus Systems
Model : 20KF6KM
SerialNumber : 67940851