docs: def get_vms(self, vm_names=None):
          """
          Returns the vm objects associated with vm_names
          if vm_names is None, return all the vms in the prefix
          Args:
              vm_names (list of str): The names of the requested vms
          Returns
              dict: Which contains the requested vm objects indexed by name
          Raises:
              utils.LagoUserException: If a vm name doesn't exist
          """
          if not vm_names:
              return self._vms.copy()
  
          missing_vms = []
          vms = {}
          for name in vm_names:
              try:
                  vms[name] = self._vms[name]
              except KeyError:
                  # TODO: add resolver by suffix
                  missing_vms.append(name)
  
          if missing_vms:
              raise utils.LagoUserException(
                  'The following vms do not exist: \n{}'.format(
                      '\n'.join(missing_vms)
                  )
              )
  
          return vms