code: def _get_vms_from_directory(self, directory):
          
  
          vmware_vms = []
          log.info('Searching for VMware VMs in directory "{}"'.format(directory))
          for path, _, filenames in os.walk(directory):
              for filename in filenames:
                  if os.path.splitext(filename)[1] == ".vmx":
                      vmx_path = os.path.join(path, filename)
                      log.debug('Reading VMware VMX file "{}"'.format(vmx_path))
                      try:
                          pairs = self.parse_vmware_file(vmx_path)
                          if "displayname" in pairs:
                              log.debug('Found VM named "{}"'.format(pairs["displayname"]))
                              vmware_vms.append({"vmname": pairs["displayname"], "vmx_path": vmx_path})
                      except OSError as e:
                          log.warning('Could not read VMware VMX file "{}": {}'.format(vmx_path, e))
                          continue
          return vmware_vms
docs: Searches for VMs in a given directory.
  
          :param directory: path to the directory
  
          :returns: list of VMs