88from cloudshell .cp .vcenter .common .utilites .common_utils import str2bool
99from cloudshell .cp .vcenter .common .vcenter .task_waiter import SynchronousTaskWaiter
1010from cloudshell .cp .vcenter .exceptions .task_waiter import TaskFaultException
11+ from debug_utils import debugger
1112
1213
1314class VCenterAuthError (Exception ):
@@ -227,7 +228,7 @@ def find_obj_by_path(self, si, path, name, type_name):
227228 '#searches for the specific vm in the folder'
228229 return search_index .FindChild (look_in , name )
229230
230- def find_dvs_by_path (self ,si , path ):
231+ def find_dvs_by_path (self , si , path ):
231232 """
232233 Finds vm in the vCenter or returns "None"
233234 :param si: pyvmomi 'ServiceInstance'
@@ -336,12 +337,12 @@ def get_obj(self, content, vimtypes, name):
336337 obj = c
337338 break
338339
339- return obj
340+ return obj
340341
341342 @staticmethod
342343 def _get_all_objects_by_type (content , vimtype ):
343344 container = content .viewManager .CreateContainerView (
344- content .rootFolder , vimtype , True )
345+ content .rootFolder , vimtype , True )
345346 return container
346347
347348 @staticmethod
@@ -419,6 +420,8 @@ def clone_vm(self, clone_params, logger, cancellation_context):
419420 :param clone_params: CloneVmParameters =
420421 :param logger:
421422 """
423+ debugger .attach_debugger ()
424+
422425 result = self .CloneVmResult ()
423426
424427 if not isinstance (clone_params .si , self .vim .ServiceInstance ):
@@ -523,11 +526,11 @@ def _get_datastore(self, clone_params):
523526 name = parts [len (parts ) - 1 ]
524527 if name :
525528 datastore = self .get_obj (clone_params .si .content ,
526- [self .vim .Datastore ],
529+ [[ self .vim .Datastore ] ],
527530 name )
528531 if not datastore :
529532 datastore = self .get_obj (clone_params .si .content ,
530- [self .vim .StoragePod ],
533+ [[ self .vim .StoragePod ] ],
531534 name )
532535 if datastore :
533536 datastore = sorted (datastore .childEntity ,
@@ -540,10 +543,12 @@ def _get_datastore(self, clone_params):
540543
541544 def _get_resource_pool (self , datacenter_name , clone_params ):
542545
543- resource_full_path = '{0}/{1}/{2}' .format (datacenter_name ,
544- clone_params .cluster_name ,
545- clone_params .resource_pool )
546- obj = self .get_folder (clone_params .si , resource_full_path )
546+ obj_name = '{0}/{1}/{2}' .format (datacenter_name ,
547+ clone_params .cluster_name ,
548+ clone_params .resource_pool ).rstrip ('/' ).split ('/' )[- 1 ]
549+ # obj = self.get_folder(clone_params.si, resource_full_path)
550+ accepted_types = [[vim .ResourcePool ], [vim .ClusterComputeResource ], [vim .HostSystem ]]
551+ obj = self .get_obj (clone_params .si .content , accepted_types , obj_name )
547552
548553 resource_pool = None
549554 host = None
@@ -739,7 +744,8 @@ def get_vm_full_path(self, si, vm):
739744 folder_name = folder .name
740745 folder_parent = folder .parent
741746
742- while folder_parent and folder_parent .name and folder_parent != si .content .rootFolder and not isinstance (folder_parent , vim .Datacenter ):
747+ while folder_parent and folder_parent .name and folder_parent != si .content .rootFolder and not isinstance (
748+ folder_parent , vim .Datacenter ):
743749 folder_name = folder_parent .name + '/' + folder_name
744750 try :
745751 folder_parent = folder_parent .parent
@@ -755,4 +761,4 @@ def get_vm_full_path(self, si, vm):
755761def vm_has_no_vnics (vm ):
756762 # Is there any network device on vm
757763 return next ((False for device in vm .config .hardware .device
758- if isinstance (device , vim .vm .device .VirtualEthernetCard ) and hasattr (device , 'macAddress' )), True )
764+ if isinstance (device , vim .vm .device .VirtualEthernetCard ) and hasattr (device , 'macAddress' )), True )
0 commit comments