On Wednesday, 22 August 2012 17:33:48 UTC+5:30, sajuptpm  wrote:
> Hi,
> 
> 
> 
> psphere: Python interface for the VMware vSphere Web Services SDK
> 
> 
> 
> I already developed an app using https://bitbucket.org/jkinred/psphere. But 
> getting lot of errors since psphere is not thread safe (I think). So i wrote 
> couple of scripts to test it (See attached files) and found that caching 
> mechanism used by psphere is not thread safe. Could someone please give me 
> some suggestion to make it thread safe.
> 
> 
> 
> 
> 
> =======Test Code ========
> 
> 
> 
> import psphere
> 
> from psphere.client import Client
> 
> from psphere.managedobjects import HostSystem, VirtualMachine, ComputeResource
> 
> client = Client("192.168.0.114", "root", "vmware1") ##vCenter
> 
> print "\nSucessfully connected to vCenter.\n"
> 
> 
> 
> from threading import Thread
> 
> 
> 
> def myfunc(i):
> 
>       host1 = HostSystem.get(client, name="192.168.0.134")
> 
>       host2 = HostSystem.get(client, name="192.168.0.113")
> 
>       print "----i------",i
> 
>       while True:
> 
>               #host1.update(properties=["config", "vm"])
> 
>               #host2.update(properties=["config", "vm"])
> 
>               c = type(host1.config.network)
> 
>               v = type(host2.config.network)
> 
>               for vm in host1.vm:
> 
>                       k = vm.config.template
> 
>               for vm in host2.vm:
> 
>                       p = vm.config.template
> 
> 
> 
> 
> 
> for i in range(10):   
> 
>     t = Thread(target=myfunc, args=(i,))
> 
>     t.start()
> 
> 
> 
> 
> 
> """
> 
> OUTPUT 
> 
> =======
> 
> Sucessfully connected to vCenter.
> 
> 
> 
> ----i------ 1
> 
> ----i------ 3
> 
> ----i------ 5
> 
> ----i------ 0
> 
>  ----i------ 4
> 
> ----i------ 2----i------ 7
> 
> ----i------ 
> 
> 9
> 
> ----i------ 6
> 
> ----i------ 8
> 
> Exception in thread Thread-4:
> 
> Traceback (most recent call last):
> 
>   File "/usr/lib/python2.7/threading.py", line 551, in __bootstrap_inner
> 
>     self.run()
> 
>   File "/usr/lib/python2.7/threading.py", line 504, in run
> 
>     self.__target(*self.__args, **self.__kwargs)
> 
>   File "vcenter_test1.py", line 19, in myfunc
> 
>     k = vm.config.template
> 
>   File "/home/saju/cvt/trunk/src/cvt/web/cvt/psphere/__init__.py", line 79, 
> in __get__
> 
>     value = self.fget(inst)
> 
>   File "/home/saju/cvt/trunk/src/cvt/web/cvt/psphere/managedobjects.py", line 
> 1236, in config
> 
>     return self._get_dataobject("config", False)
> 
>   File "/home/saju/cvt/trunk/src/cvt/web/cvt/psphere/__init__.py", line 116, 
> in _get_dataobject
> 
>     return self._cache[name][0]
> 
> KeyError: 'config'
> 
> 
> 
> Exception in thread Thread-6:
> 
> Traceback (most recent call last):
> 
>   File "/usr/lib/python2.7/threading.py", line 551, in __bootstrap_inner
> 
>     self.run()
> 
>   File "/usr/lib/python2.7/threading.py", line 504, in run
> 
>     self.__target(*self.__args, **self.__kwargs)
> 
>   File "vcenter_test1.py", line 17, in myfunc
> 
>     v = type(host2.config.network)
> 
> AttributeError: VirtualMachineConfigInfo instance has no attribute 'network'
> 
> 
> 
> 
> 
> 
> 
> """

use locks please on the cache
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to