docs: def get_folder(self, si, path, root=None):
          """
          Finds folder in the vCenter or returns "None"
  
          :param si:         pyvmomi 'ServiceInstance'
          :param path:       the path to find the object ('dc' or 'dc/folder' or 'dc/folder/folder/etc...')
          """
  
          search_index = si.content.searchIndex
          sub_folder = root if root else si.content.rootFolder
  
          if not path:
              return sub_folder
  
          paths = [p for p in path.split("/") if p]
  
          child = None
          try:
              new_root = search_index.FindChild(sub_folder, paths[0])
              if new_root:
                  child = self.get_folder(si, '/'.join(paths[1:]), new_root)
          except:
              child = None
  
          if child is None and hasattr(sub_folder, self.ChildEntity):
              new_root = search_index.FindChild(sub_folder, paths[0])
              if new_root:
                  child = self.get_folder(si, '/'.join(paths[1:]), new_root)
  
          if child is None and hasattr(sub_folder, self.VM):
              new_root = search_index.FindChild(sub_folder.vmFolder, paths[0])
              if new_root:
                  child = self.get_folder(si, '/'.join(paths[1:]), new_root)
  
          if child is None and hasattr(sub_folder, self.Datastore):
              new_root = search_index.FindChild(sub_folder.datastoreFolder, paths[0])
              if new_root:
                  child = self.get_folder(si, '/'.join(paths[1:]), new_root)
  
          if child is None and hasattr(sub_folder, self.Network):
              new_root = search_index.FindChild(sub_folder.networkFolder, paths[0])
              if new_root:
                  child = self.get_folder(si, '/'.join(paths[1:]), new_root)
  
          if child is None and hasattr(sub_folder, self.Host):
              new_root = search_index.FindChild(sub_folder.hostFolder, paths[0])
              if new_root:
                  child = self.get_folder(si, '/'.join(paths[1:]), new_root)
  
          if child is None and hasattr(sub_folder, self.Datacenter):
              new_root = search_index.FindChild(sub_folder.datacenterFolder, paths[0])
              if new_root:
                  child = self.get_folder(si, '/'.join(paths[1:]), new_root)
  
          if child is None and hasattr(sub_folder, 'resourcePool'):
              new_root = search_index.FindChild(sub_folder.resourcePool, paths[0])
              if new_root:
                  child = self.get_folder(si, '/'.join(paths[1:]), new_root)
  
          return child