Git Product home page Git Product logo

python-lmiwbem's People

Contributors

deleisha avatar phatina avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

python-lmiwbem's Issues

lmiwbem.WBEMConnection accepts no_verification parameter with opposite meaning

WBEMConnection::WBEMConnection(...) constructor accepts no_verification but then it's value used as following:
bool c_verify = Conv::as(no_verification, "no_verification");
client()->setVerifyCertificate(c_verify);

It's opposite to WBEMConnection::connect(...):
bool c_no_verify = Conv::as(no_verification, "no_verification");
client()->setVerifyCertificate(!c_no_verify);

Updates of lmiwbem.config are not applied

It's impossible to disable default trust store with lmiwbem 0.7.1.
lmiwbem.config.DEFAULT_TRUST_STORE = ''

  • has no effect.
    As I see in lmiwbem_config.cpp s_inst_ptr used in Config::defaultTrustStore references Config object that is not the same as the one created in init_type.

multiple operations launched in concurrent processes fail

I have a test executed against single broker on local system that launches three processes. In 1 of 2 cases, it fails with errors like "Pegasus: Mismatched response message type.". The weird thing is that the issue does not exhibit once the pywbem library is used instead - with the same version of openlmi-tools and tog-pegasus

You can find mentioned test in git repository at fedorahosted.

My testing configuration is:

  • Fedora rawhide
  • openlmi-tools-0.10.2-1.fc22.noarch
  • pywbem-0.7.0-27.20131121svn626.fc21.noarch
  • tog-pegasus-2.13.0-19.fc22.x86_64
  • lmiwbem-0.5.0-2.fc22.x86_64

Here's one example of test run:

test_parallel_install (test_software_installation_job.TestSoftwareInstallationJob) ... Process Process-2:
Traceback (most recent call last):
  File "/usr/lib64/python2.7/multiprocessing/process.py", line 258, in _bootstrap
    self.run()
  File "/usr/lib64/python2.7/multiprocessing/process.py", line 114, in run
    self._target(*self._args, **self._kwargs)
  File "/root/workspace/openlmi-providers/src/python/lmi/test/lmibase.py", line 48, in _wrapper
    retval = method(*args, **kwargs)
  File "/root/workspace/openlmi-providers/src/software/test/test_software_installation_job.py", line 797, in _do_test_single_pkg_install
    rval, oparms, _ = self.service_op.InstallFromSoftwareIdentity(
  File "/root/workspace/openlmi-providers/src/software/test/test_software_installation_job.py", line 288, in service_op
    self._service_op = self.ns.LMI_SoftwareInstallationService \
  File "/usr/lib/python2.7/site-packages/lmi/shell/LMIClass.py", line 337, in first_instance
    return inst_name.to_instance() if inst_name else None
  File "/usr/lib/python2.7/site-packages/lmi/shell/LMIDecorators.py", line 228, in wrapper
    return fn(self_wr, *args, **kwargs)
  File "/usr/lib/python2.7/site-packages/lmi/shell/LMIInstanceName.py", line 560, in to_instance
    self._cim_instance_name, LocalOnly=False)
  File "/usr/lib/python2.7/site-packages/lmi/shell/LMICIMXMLClient.py", line 293, in get_instance
    PropertyList=PropertyList))
  File "/usr/lib/python2.7/site-packages/lmi/shell/LMIDecorators.py", line 319, in wrapped
    lmi_raise_or_dump_exception(cim_error)
  File "/usr/lib/python2.7/site-packages/lmi/shell/LMIDecorators.py", line 316, in wrapped
    rval = fn(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/lmi/shell/LMICIMXMLClient.py", line 285, in get_instance_core
    rval=self._cliconn.GetInstance(path, **kwargs))
CIMError: GetInstance LMI_SoftwareInstallationService: Pegasus: Mismatched response message type.
Process Process-3:
Traceback (most recent call last):
  File "/usr/lib64/python2.7/multiprocessing/process.py", line 258, in _bootstrap
    self.run()
  File "/usr/lib64/python2.7/multiprocessing/process.py", line 114, in run
    self._target(*self._args, **self._kwargs)
  File "/root/workspace/openlmi-providers/src/python/lmi/test/lmibase.py", line 48, in _wrapper
    retval = method(*args, **kwargs)
  File "/root/workspace/openlmi-providers/src/software/test/test_software_installation_job.py", line 797, in _do_test_single_pkg_install
    rval, oparms, _ = self.service_op.InstallFromSoftwareIdentity(
  File "/root/workspace/openlmi-providers/src/software/test/test_software_installation_job.py", line 288, in service_op
    self._service_op = self.ns.LMI_SoftwareInstallationService \
  File "/usr/lib/python2.7/site-packages/lmi/shell/LMIClass.py", line 336, in first_instance
    inst_name = self.first_instance_name(inst_filter, **kwargs)
  File "/usr/lib/python2.7/site-packages/lmi/shell/LMIClass.py", line 269, in first_instance_name
    **kwargs)
  File "/usr/lib/python2.7/site-packages/lmi/shell/LMICIMXMLClient.py", line 226, in get_instance_names
    classname, namespace)
  File "/usr/lib/python2.7/site-packages/lmi/shell/LMIDecorators.py", line 319, in wrapped
    lmi_raise_or_dump_exception(cim_error)
  File "/usr/lib/python2.7/site-packages/lmi/shell/LMIDecorators.py", line 316, in wrapped
    rval = fn(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/lmi/shell/LMICIMXMLClient.py", line 204, in get_instance_names_core
    classname, namespace))
CIMError: EnumerateInstanceNames LMI_SoftwareInstallationService: Pegasus: Mismatched response message type.
Process Process-1:
Traceback (most recent call last):
  File "/usr/lib64/python2.7/multiprocessing/process.py", line 258, in _bootstrap
    self.run()
  File "/usr/lib64/python2.7/multiprocessing/process.py", line 114, in run
    self._target(*self._args, **self._kwargs)
  File "/root/workspace/openlmi-providers/src/python/lmi/test/lmibase.py", line 48, in _wrapper
    retval = method(*args, **kwargs)
  File "/root/workspace/openlmi-providers/src/software/test/test_software_installation_job.py", line 797, in _do_test_single_pkg_install
    rval, oparms, _ = self.service_op.InstallFromSoftwareIdentity(
  File "/root/workspace/openlmi-providers/src/software/test/test_software_installation_job.py", line 288, in service_op
    self._service_op = self.ns.LMI_SoftwareInstallationService \
  File "/usr/lib/python2.7/site-packages/lmi/shell/LMIClass.py", line 336, in first_instance
    inst_name = self.first_instance_name(inst_filter, **kwargs)
  File "/usr/lib/python2.7/site-packages/lmi/shell/LMIClass.py", line 269, in first_instance_name
    **kwargs)
  File "/usr/lib/python2.7/site-packages/lmi/shell/LMICIMXMLClient.py", line 226, in get_instance_names
    classname, namespace)
  File "/usr/lib/python2.7/site-packages/lmi/shell/LMIDecorators.py", line 319, in wrapped
    lmi_raise_or_dump_exception(cim_error)
  File "/usr/lib/python2.7/site-packages/lmi/shell/LMIDecorators.py", line 316, in wrapped
    rval = fn(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/lmi/shell/LMICIMXMLClient.py", line 204, in get_instance_names_core
    classname, namespace))
CIMError: EnumerateInstanceNames LMI_SoftwareInstallationService: Pegasus: Connection closed by CIM Server.
FAIL

and another:

test_parallel_install (test_software_installation_job.TestSoftwareInstallationJob) ... Process Process-2:
Traceback (most recent call last):
  File "/usr/lib64/python2.7/multiprocessing/process.py", line 258, in _bootstrap
    self.run()
  File "/usr/lib64/python2.7/multiprocessing/process.py", line 114, in run
    self._target(*self._args, **self._kwargs)
  File "/root/workspace/openlmi-providers/src/python/lmi/test/lmibase.py", line 48, in _wrapper
    retval = method(*args, **kwargs)
  File "/root/workspace/openlmi-providers/src/software/test/test_software_installation_job.py", line 797, in _do_test_single_pkg_install
    rval, oparms, _ = self.service_op.InstallFromSoftwareIdentity(
  File "/root/workspace/openlmi-providers/src/software/test/test_software_installation_job.py", line 288, in service_op
    self._service_op = self.ns.LMI_SoftwareInstallationService \
  File "/usr/lib/python2.7/site-packages/lmi/shell/LMIClass.py", line 336, in first_instance
    inst_name = self.first_instance_name(inst_filter, **kwargs)
  File "/usr/lib/python2.7/site-packages/lmi/shell/LMIClass.py", line 269, in first_instance_name
    **kwargs)
  File "/usr/lib/python2.7/site-packages/lmi/shell/LMICIMXMLClient.py", line 226, in get_instance_names
    classname, namespace)
  File "/usr/lib/python2.7/site-packages/lmi/shell/LMIDecorators.py", line 319, in wrapped
    lmi_raise_or_dump_exception(cim_error)
  File "/usr/lib/python2.7/site-packages/lmi/shell/LMIDecorators.py", line 316, in wrapped
    rval = fn(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/lmi/shell/LMICIMXMLClient.py", line 204, in get_instance_names_core
    classname, namespace))
CIMError: EnumerateInstanceNames LMI_SoftwareInstallationService: Pegasus: Mismatched response message type.
Process Process-3:
Traceback (most recent call last):
  File "/usr/lib64/python2.7/multiprocessing/process.py", line 258, in _bootstrap
    self.run()
  File "/usr/lib64/python2.7/multiprocessing/process.py", line 114, in run
    self._target(*self._args, **self._kwargs)
  File "/root/workspace/openlmi-providers/src/python/lmi/test/lmibase.py", line 48, in _wrapper
    retval = method(*args, **kwargs)
  File "/root/workspace/openlmi-providers/src/software/test/test_software_installation_job.py", line 797, in _do_test_single_pkg_install
    rval, oparms, _ = self.service_op.InstallFromSoftwareIdentity(
  File "/root/workspace/openlmi-providers/src/software/test/test_software_installation_job.py", line 288, in service_op
    self._service_op = self.ns.LMI_SoftwareInstallationService \
  File "/usr/lib/python2.7/site-packages/lmi/shell/LMIClass.py", line 337, in first_instance
    return inst_name.to_instance() if inst_name else None
  File "/usr/lib/python2.7/site-packages/lmi/shell/LMIDecorators.py", line 228, in wrapper
    return fn(self_wr, *args, **kwargs)
  File "/usr/lib/python2.7/site-packages/lmi/shell/LMIInstanceName.py", line 560, in to_instance
    self._cim_instance_name, LocalOnly=False)
  File "/usr/lib/python2.7/site-packages/lmi/shell/LMICIMXMLClient.py", line 293, in get_instance
    PropertyList=PropertyList))
  File "/usr/lib/python2.7/site-packages/lmi/shell/LMIDecorators.py", line 319, in wrapped
    lmi_raise_or_dump_exception(cim_error)
  File "/usr/lib/python2.7/site-packages/lmi/shell/LMIDecorators.py", line 316, in wrapped
    rval = fn(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/lmi/shell/LMICIMXMLClient.py", line 285, in get_instance_core
    rval=self._cliconn.GetInstance(path, **kwargs))
CIMError: GetInstance LMI_SoftwareInstallationService: Pegasus: Mismatched response message type.
Process Process-1:
Traceback (most recent call last):
  File "/usr/lib64/python2.7/multiprocessing/process.py", line 258, in _bootstrap
    self.run()
  File "/usr/lib64/python2.7/multiprocessing/process.py", line 114, in run
    self._target(*self._args, **self._kwargs)
  File "/root/workspace/openlmi-providers/src/python/lmi/test/lmibase.py", line 48, in _wrapper
    retval = method(*args, **kwargs)
  File "/root/workspace/openlmi-providers/src/software/test/test_software_installation_job.py", line 798, in _do_test_single_pkg_install
    **input_parameters)
  File "/usr/lib/python2.7/site-packages/lmi/shell/LMIMethod.py", line 653, in __call__
    self._lmi_instance, self._method_name, **method_args)
  File "/usr/lib/python2.7/site-packages/lmi/shell/LMICIMXMLClient.py", line 508, in call_method
    return call_method_core(path, method, **params)
  File "/usr/lib/python2.7/site-packages/lmi/shell/LMIDecorators.py", line 323, in wrapped
    lmi_raise_or_dump_exception(conn_error)
  File "/usr/lib/python2.7/site-packages/lmi/shell/LMIDecorators.py", line 316, in wrapped
    rval = fn(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/lmi/shell/LMICIMXMLClient.py", line 504, in call_method_core
    rval, rparams = self._cliconn.InvokeMethod(method, path, **params)
ConnectionError: (24, 'InvokeMethod InstallFromSoftwareIdentity: connection timed out')
FAIL

Pull operations in lmiwbem

Upcoming Pegasus 2.14 will implement PULL operations. This is a friendly reminder that we need to support it also lmiwbem.

In short, there will be number of new intrinsic method to enumerate stuff (instances, instance names, references, associators, ...). Instead of returning all instances / instance names in one huge XML, it will return just first X elements and the client can iteratively pull another X elements, until the enumeration is complete.

Example of EnumerateInstances using PULL operations in lmishell-like pseudolanguage:

enumeration_ctx = c.root.cimv2.LMI_Service.OpenEnumerateInstances()
while not enumeration_ctx.empty():
    instances = enumeration_ctx.PullInstances(MaxObjectCount = 10)
    # process just 10 instances
enumeration_ctx.CloseEnumeration()

This is just an idea, proper API has to be designed.

  • e.g. all this EnumerationContext could be hidden inside a generator and application would just iterate using:

    for i in LMI_Service.new_cool_instances(chunk_size=10):
    

See http://www.dmtf.org/sites/default/files/standards/documents/DSP0200_1.3.1.pdf for all methods and their parameters.

Pegasus will have all these intrinsic methods exposed in its client library.

[RFE] Add support for cim_is_error()

It would be very useful for consumers of lmiwbem to be able to pass return codes into a generic cim_is_error() function. The major advantage would be that their code could be written to be flexible if the error codes that a function can return ever changes (adds new errors).

[RFE] Request for slight change in createInstance signature

Currently lmiwbem takes an instance whose path is filled manually as illustarted below for createInstance. A user has to manually filled those values,which are extraneous.
To be more compatible with other client like pywbem and pegasus CIM Client.

Will it be possible to change create instance to accept CIMInstance without requiring path set and asking user to set namespace. if the user does not supply the namespace assumed the default one.
This is lighten the task a bit on users and migrating code from pywbem and also simplify lmiwbem code.

member_of_group = lmiwbem.CIMInstance(
"LMI_MemberOfGroup",
lmiwbem.NocaseDict({
"Member" : identity_iname,
"Collection" : group_iname}),

No qualifiers

None,
lmiwbem.CIMInstanceName(
"LMI_MemberOfGroup",
# No keybindings; Member and Collection are not key properties in
# LMI_MemberOfGroup
None,
hostname,
"root/cimv2"))

new_iname = conn.CreateInstance(member_of_group)

rpm build break due to a typo

The latest release of lmiwbem 0.3.1 breaks on rpm build due to a typo(Fro).
Also

  1. openslp-devel is added in BuildRequires
  2. versions of boost* are reduced t0 1.40 to support older RHEL e.g 6.4, where the version is .141

NOT YET fixed and required for building on RHEL 6.4 are requirement on python-sphinx, which is missing on RHEL 6.4

Request for call status return

Currently, lmiwbem seems to perform operations and returns results and exception is thrown in case of error.

There is is_error to check the error which I misses to see usage example.

Will it make sense to return status along with results eg
status, data = conn.EnumerateInstances(.....) # Status can either be Boolean or Error code
if status:
# use the data
else:
# Don't trust the data
Please suggest me if this can be done through is_error which I may have missed to use

CIMInstance Layout difference between lmiwbem and pywbem

We are almost in the final stage of having lmiwbem as a drop-in replacement of pywbem.
We used a product whose code we can not change and the code uses
instance.items()

and what we encountered is a difference in the data packing. lmiwbem have

propertyName, CIMProperty pair as tuple
whereas pywbem has
propertyName, value

l[0].items()
[('AvailableRequestedStates', CIMProperty(name='AvailableRequestedStates',
type='uint16', value='[]', is_array=True, ...)), ('Caption',
CIMProperty(name='Caption', type='string', value='None', is_array=False, ...)),
+-- 42 lines: ('CommunicationStatus', CIMProperty(name='CommunicationStatus', type='uint16',-------------------------------------
CIMProperty(name='TransitioningToState', type='uint16', value='12',
is_array=False, ...))]
p[0].items()
[(u'RequestedState', 12L), (u'HealthState', None), (u'StatusDescriptions',
None), (u'TransitioningToState', 12L), (u'CommunicationStatus', None),
(u'SystemName', u'ibm-rm1.persistent.co.in'), (u'PrimaryOwnerName', None),
(u'DetailedStatus', None), (u'GatherStatisticalData', False), (u'Started',
True), (u'OperationalStatus', [2L]), (u'PrimaryOwnerContact', None),
(u'SystemCreationClassName', u'PG_ComputerSystem'), (u'Status', None),
(u'Description', u'Pegasus CIM Server Version 2.14.0 Development'),
(u'InstallDate', None), (u'EnabledDefault', 2L), (u'EnabledState', 5L),
(u'TimeOfLastStateChange', None), (u'CreationClassName', u'PG_ObjectManager'),
(u'StartMode', None), (u'PrimaryStatus', None), (u'ElementName', u'Pegasus'),
(u'Name', u'PG:10-44-78-9'), (u'OtherEnabledState', None), (u'InstanceID',
None), (u'Caption', None), (u'OperatingStatus', None),
(u'AvailableRequestedStates', None)]

Our request is if we can have same format, it will be easy to replace or
is there any other way to get the required format that we have missed to try?

SLP discovery support request in lmiwbem

Thanks for the great work, Peter.
We are currently using pywbem for one of our projects and we saw lmiwbem as a better option.

Few things which users would certainly appreciate is having some facility to do SLP discovery in lmiwbem.

Also, if we have some way to switch on/off features like CIMListener will be another value add.

Installing lmiwbem so files in specified folder

Hi Peter
Currently, lmiwbem by default installs in the site-packages of the python installed on the system.
Will it be possible to have an option to install in folder specified by user, for example,
We would like to install the so and py files in lib folder of our code directory.

If we can have a setup.py to do the same, That will help a lot.

May be this option is possible using the configure script which I am not aware of. If this is the case, Please instruct me.

lmiwbem load failure in ubuntu

Was trying to learn and use lmiwbem on ubuntu and got the following load error.

root@deleisha:/home/deleisha/Codespace/lmiwbem# python
Python 2.7.6 (default, Mar 22 2014, 22:59:56)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.

import lmiwbem
Traceback (most recent call last):
File "", line 1, in
File "/usr/lib/python2.7/dist-packages/lmiwbem/init.py", line 75, in
from lmiwbem_core import *
ImportError: /usr/lib/python2.7/dist-packages/lmiwbem/lmiwbem_core.so: undefined symbol: _ZN12CIMConstants28CON_ERR_CANNOT_CREATE_SOCKETE

KeyboardInterrupt

compile errors when building with python3 support

I tried to build the project with python3 support, but the build failed.

Environment:

  • Setup: CentOS 7 minimal 64 bit, python3.3 (from softwarecollections.org), python-lmiwbem source 0.6.1-pre.
  • Build process: as outlined in the readme (autogen, configure, make, make install)
  • Configure parameters: ../configure --with-listener=no --with-slp=no --with-python3=yes

I encountered the following errors.

lmiwbem_property.cpp error

The make phase produced the following error:

../../src/obj/cim/lmiwbem_property.cpp: In member function 'bool CIMProperty::eq(const boost::python::api::object&)':
../../src/obj/cim/lmiwbem_property.cpp:257:26: error: 'getValue' was not declared in this scope
         compare(getValue(), cim_other.getValue(), Py_EQ) &&
                          ^
../../src/obj/cim/lmiwbem_property.cpp:257:39: error: 'class CIMProperty' has no member named 'getValue'
         compare(getValue(), cim_other.getValue(), Py_EQ) &&
                                       ^
../../src/obj/cim/lmiwbem_property.cpp: In member function 'bool CIMProperty::gt(const boost::python::api::object&)':
../../src/obj/cim/lmiwbem_property.cpp:275:26: error: 'getValue' was not declared in this scope
         compare(getValue(), cim_other.getValue(), Py_GT) ||
                          ^
../../src/obj/cim/lmiwbem_property.cpp:275:39: error: 'class CIMProperty' has no member named 'getValue'
         compare(getValue(), cim_other.getValue(), Py_GT) ||
                                       ^
../../src/obj/cim/lmiwbem_property.cpp: In member function 'bool CIMProperty::lt(const boost::python::api::object&)':
../../src/obj/cim/lmiwbem_property.cpp:293:26: error: 'getValue' was not declared in this scope
         compare(getValue(), cim_other.getValue(), Py_LT) ||
                          ^
../../src/obj/cim/lmiwbem_property.cpp:293:39: error: 'class CIMProperty' has no member named 'getValue'
         compare(getValue(), cim_other.getValue(), Py_LT) ||

The problem is that in lmiwbem_property.cpp the methods CIMProperty::eq, CIMProperty::gt, CIMProperty::lt are only built for Python3, and they contain similar lines:

compare(getValue(), cim_other.getValue(), Py_EQ) && 

getValue() is not defined. If I change them to getPyValue(), then the code compiles (but I do not know the code of lmiwbem enough to see whether this is the intended behavior).

reference to PyObject_Unicode

The next error is the following:

../../src/util/lmiwbem_convert.cpp: In static member function 'static boost::python::api::object ObjectConv::asPyUnicode(const boost::python::api::object&)':
../../src/util/lmiwbem_convert.cpp:340:62: error: 'PyObject_Unicode' was not declared in this scope
     return bp::object(bp::handle<>(PyObject_Unicode(obj.ptr())));

In Python 3.x as far as I can see PyObject_Unicode was removed (see https://docs.python.org/3.4/c-api/object.html).

After commenting out the ObjectConv::asPyUnicode method, compiling finishes.

linker error

Next is a linker error:

/bin/ld: cannot find -l-L/usr/lib/gcc/x86_64-redhat-linux/4.8.2
collect2: error: ld returned 1 exit status
make[2]: *** [lmiwbem_core.la] Error 1
make[2]: Leaving directory `/root/lmiwbem-master/build/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/root/lmiwbem-master/build'
make: *** [all] Error 2

The problem is that the generated makefile (build/src/makefile) contains the following line:

lmiwbem_core_la_LIBADD = -lpegcommon -lpegclient \
        -L/opt/rh/python33/root/usr/lib64 -lpython3.3m -l $(am__append_4) \
        $(am__append_5) $(am__append_8)

The extra -l is not needed there. I could not trace back why this empty -l is generated there, probably a module was not found in my setup.

setup.py.in error

I tried also python setup.py install, but in setup.py.in there is a print using python 2.x syntax. It could be changed to print():

diff --git a/setup.py.in b/setup.py.in
index baef49b..ad74d0e 100644
--- a/setup.py.in
+++ b/setup.py.in
@@ -88,7 +88,7 @@ class lmiwbem_build(build):

         # Generate pydoc headers
         for pydoc, header in zip(pydocs, headers):
-            print 'docgen %s %s' % (pydoc, header)
+            print('docgen %s %s' % (pydoc, header))
             subprocess.check_call([lmiwbem_docgen, pydoc, header])

     def teardown(self):

boost_python3

It could be noted in the readme, that if building for python3, then the boost_python3 version of boost_python is needed (it is not trivial in some distributions).

lmiwbem unable to handle operations involving CIMObjectPath

When we were trying to delete an existing subscription handler, lmiwbem reports

CIMError: (6, 'CIM_ERR_NOT_FOUND:

More details at following transactions:

-> conn.GetInstance(iname)
(Pdb)
(Pdb) n
CIMError: (6, 'CIM_ERR_NOT_FOUND: >CIM_ListenerDestinationCIMXML.CreationClassName="CIM_ListenerDestinationCIMXML...calhost/CIMListener/Pegasus_ProviderLifecycleIndicationConsumer",Name="PLIHandler01",SystemName=""')
/home/deleisha/CodeSpace/pegasus/lmiwbem-debug.py(36)()
-> conn.GetInstance(iname)

(Pdb) iname
CIMInstanceName(classname='CIM_ListenerDestinationCIMXML', keybindings=NocaseDict({'CreationClassName': 'CIM_ListenerDestinationCIMXML', 'Destination': 'localhost/CIMListener/Pegasus_ProviderLifecycleIndicationConsumer', 'Name': 'PLIHandler01', 'SystemCreationClassName': 'CIM_ComputerSystem', 'SystemName': 'ibm-rm1.persistent.co.in'}), host='10.44.78.9', namespace='root/PG_Interop')

(Pdb) i = conn.EnumerateInstances('CIM_ListenerDestinationCIMXML', 'root/pg_interop')
(Pdb) i
CIMInstance(classname='CIM_ListenerDestinationCIMXML', ...) i[0].path
CIMInstanceName(classname='CIM_ListenerDestinationCIMXML', keybindings=NocaseDict({'CreationClassName': 'CIM_ListenerDestinationCIMXML', 'Name': 'PLIHandler01', 'SystemCreationClassName': 'CIM_ComputerSystem', 'SystemName': 'ibm-rm1.persistent.co.in'}), namespace='root/pg_interop')
(Pdb)

Implement requestAcceptLanguages property

Please consider adding requestAcceptLanguages property to a connection.
With the proposed implementation (#13) you can use it as follows:

conn = lmiwbem.WBEMConnection()
conn.connectLocally()
conn.requestAcceptLanguages = [('ru', 1.0), ('en', 0.5)]
print conn.requestAcceptLanguages

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.