The following pseudocode shows how to traverse the association to arrive at the Base Server Scoping Instance. This pseudocode depends on the pseudocode in Make a Connection to the CIMOM.
To identify the Base Server Scoping Instance
Procedure
- Connect to the server URL.
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)
- Enumerate instances of CIM_RegisteredProfile.
use registered_profiles renamed prof profile_instance_names = prof.get_registered_profile_names( connection ) if profile_instance_names is Null print ‘No registered profiles found.’ sys.exit(-1)
- Select the instance that corresponds to the Base Server profile.
function isolate_base_server_registration( connection, instance_names ) ///Isolate the Base Server registration./// for instance_name in instance_names instance = connection.GetInstance( instance_name ) if instance[ 'RegisteredName' ] == 'Base Server' return instance_name return Null profile_instance_name = isolate_base_server_registration( connection, \ profile_instance_names ) if profile_instance_name is Null print 'Base Server profile is not registered in namespace ' + namespace sys.exit(-1)
- Traverse the CIM_ElementConformsToProfile association to reach the Scoping Instance.
function associate_to_scoping_instance( connection, profile_name ) ///Follow ElementConformsToProfile from RegisteredProfile to ComputerSystem./// instance_names = connection.AssociatorNames( profile_name, \ AssocClass = 'CIM_ElementConformsToProfile', \ ResultRole = 'ManagedElement' ) if len( instance_names ) > 1 print 'Error: %d Scoping Instances found.' % len( instance_names ) sys.exit(-1) return instance_names.pop() function print_instance( instance ) print '\n' + ' [' + instance.classname + '] =' for prop in instance.keys() print ' %30s = %s' % ( prop, instance[prop] ) scoping_instance_name = associate_to_scoping_instance( connection, profile_instance_name ) if scoping_instance_name is Null print 'Failed to find Scoping Instance.' sys.exit(-1) else print_instance( connection.GetInstance( scoping_instance_name )