#!/usr/bin/env python # coding: utf-8 # # Using pywbem with pywbem_mock # In[ ]: import pywbem # The default namespace is root/cimv2 from pywbem_mock import FakedWBEMConnection conn = FakedWBEMConnection() # In[ ]: # Create the data in the repository # In[ ]: # @hidden_cell # The following is MOF definition of some simple qualifier declarations, classes, and # instances initial_mof = """ // A simple mof model that creates the qualifier declarations, // classes, and instances for a very simplistic model to be used in the // pywbemcli mock test environment. #pragma locale ("en_US") Qualifier Association : boolean = false, Scope(association), Flavor(DisableOverride, ToSubclass); Qualifier Indication : boolean = false, Scope(class, indication), Flavor(DisableOverride, ToSubclass); Qualifier Abstract : boolean = false, Scope(class, association, indication), Flavor(EnableOverride, Restricted); Qualifier Aggregate : boolean = false, Scope(reference), Flavor(DisableOverride, ToSubclass); Qualifier Description : string = null, Scope(any), Flavor(EnableOverride, ToSubclass, Translatable); Qualifier In : boolean = true, Scope(parameter), Flavor(DisableOverride, ToSubclass); Qualifier Key : boolean = false, Scope(property, reference), Flavor(DisableOverride, ToSubclass); Qualifier Out : boolean = false, Scope(parameter), Flavor(DisableOverride, ToSubclass); Qualifier Override : string = null, Scope(property, reference, method), Flavor(EnableOverride, Restricted); [Description ("Simple CIM Class")] class CIM_Foo { [Key, Description ("This is key property.")] string InstanceID; [Description ("This is Uint32 property.")] uint32 IntegerProp; [Description ("Method with in and out parameters")] uint32 Fuzzy( [IN, Description("FuzzyMethod Param")] string FuzzyParameter, [IN, OUT, Description ( "Test of ref in/out parameter")] CIM_Foo REF Foo, [IN ( false ), OUT, Description("TestMethod Param")] string OutputParam); [ Description("Method with no Parameters") ] uint32 DeleteNothing(); }; [Description ("Subclass of CIM_Foo")] class CIM_Foo_sub : CIM_Foo { string cimfoo_sub; }; [Description ("Subclass of CIM_Foo_sub")] class CIM_Foo_sub_sub : CIM_Foo_sub { string cimfoo_sub_sub; [Description("Sample method with input and output parameters")] uint32 Method1( [IN ( false), OUT, Description("Response param 2")] string OutputParam2); }; """ conn.compile_mof_string(initial_mof) # conn.display_repository() # In[ ]: ## get classes # In[ ]: cls = conn.GetClass('CIM_Foo') print(cls.tomof()) # In[ ]: # Show the properties in the class as a list # In[ ]: print('Keys in class %s are %s' % (cls.classname, cls.properties.keys())) # In[ ]: # get instances of a class # In[ ]: cls = conn.EnumerateInstances('CIM_Foo') # In[ ]: # TODO extend this demo to more complex operations