docs: def setvcpus(vm_, vcpus, config=False, **kwargs):
      '''
      Changes the amount of vcpus allocated to VM. The VM must be shutdown
      for this to work.
  
      If config is True then we ask libvirt to modify the config as well
  
      :param vm_: name of the domain
      :param vcpus: integer representing the number of CPUs to be assigned
      :param config: if True then libvirt will be asked to modify the config as well
      :param connection: libvirt connection URI, overriding defaults
  
          .. versionadded:: 2019.2.0
      :param username: username to connect with, overriding defaults
  
          .. versionadded:: 2019.2.0
      :param password: password to connect with, overriding defaults
  
          .. versionadded:: 2019.2.0
  
      CLI Example:
  
      .. code-block:: bash
  
          salt '*' virt.setvcpus <domain> <amount>
          salt '*' virt.setvcpus my_domain 4
      '''
      conn = __get_conn(**kwargs)
      dom = _get_domain(conn, vm_)
  
      if VIRT_STATE_NAME_MAP.get(dom.info()[0], 'unknown') != 'shutdown':
          return False
  
      # see notes in setmem
      flags = libvirt.VIR_DOMAIN_VCPU_MAXIMUM
      if config:
          flags = flags | libvirt.VIR_DOMAIN_AFFECT_CONFIG
  
      ret1 = dom.setVcpusFlags(vcpus, flags)
      ret2 = dom.setVcpusFlags(vcpus, libvirt.VIR_DOMAIN_AFFECT_CURRENT)
  
      conn.close()
  
      return ret1 == ret2 == 0