1. 25 11月, 2017 1 次提交
    • J
      qemu: Use secret objects to pass iSCSI passwords · c5c96545
      John Ferlan 提交于
      https://bugzilla.redhat.com/show_bug.cgi?id=1425757
      
      The blockdev-add code provides a mechanism to sanely provide user
      and password-secret arguments for iscsi without placing them on the
      command line to be viewable by a 'ps -ef' type command or needing
      to create separate -iscsi devices for each disk/volume found.
      
      So modify the iSCSI command line building to check for the presence
      of the capability in order properly setup and use the domain master
      secret object to encrypt the password in a secret object and alter
      the parameters for the command line to utilize.
      
      Modify the xml2argvtest to exhibit the syntax for both disk and
      hostdev configurations.
      c5c96545
  2. 24 11月, 2017 1 次提交
    • P
      qemu: command: Properly format disk 'debug' attribute · 1455a91b
      Peter Krempa 提交于
      Move the setup of the disk attribute to the disk source prepare function
      which will allow proper usage with JSON props and move the fallback
      (legacy) generating code into the block which is executed with legacy
      options.
      
      As a side-effect of this change we can clean up propagation of 'cfg'
      into the command generator.
      
      Also it's nice to see that the test output is the same even when the
      value is generated in a different place.
      1455a91b
  3. 07 11月, 2017 1 次提交
  4. 19 10月, 2017 3 次提交
  5. 05 10月, 2017 1 次提交
  6. 15 7月, 2017 1 次提交
  7. 16 6月, 2017 1 次提交
  8. 23 5月, 2017 1 次提交
    • L
      Revert "qemu: propagate bridge MTU into qemu "host_mtu" option" · 77780a29
      Laine Stump 提交于
      This reverts commit 2841e675.
      
      It turns out that adding the host_mtu field to the PCI capabilities in
      the guest bumps the length of PCI capabilities beyond the 32 byte
      boundary, so the virtio-net device gets 64 bytes of ioport space
      instead of 32, which offsets the address of all the other following
      devices. Migration doesn't work very well when the location and length
      of PCI capabilities of devices is changed between source and
      destination.
      
      This means that we need to make sure that the absence/presence of
      host_mtu on the qemu commandline always matches between source and
      destination, which means that we need to make setting of host_mtu an
      opt-in thing (it can't happen automatically when the bridge being used
      has a non-default MTU, which is what commit 2841e675 implemented).
      
      I do want to re-implement this feature with an <mtu auto='on'/>
      setting, but probably won't backport that to any stable branches, so
      I'm first reverting the original commit, and that revert can be pushed
      to the few releases that have been made since the original (3.1.0 -
      3.3.0)
      
      Resolves: https://bugzilla.redhat.com/1449346
      77780a29
  9. 27 3月, 2017 1 次提交
  10. 15 3月, 2017 2 次提交
  11. 08 2月, 2017 1 次提交
    • L
      qemu: propagate bridge MTU into qemu "host_mtu" option · 2841e675
      Laine Stump 提交于
      libvirt was able to set the host_mtu option when an MTU was explicitly
      given in the interface config (with <mtu size='n'/>), set the MTU of a
      libvirt network in the network config (with the same named
      subelement), and would automatically set the MTU of any tap device to
      the MTU of the network.
      
      This patch ties that all together (for networks based on tap devices
      and either Linux host bridges or OVS bridges) by learning the MTU of
      the network (i.e. the bridge) during qemuInterfaceBridgeConnect(), and
      returning that value so that it can then be passed to
      qemuBuildNicDevStr(); qemuBuildNicDevStr() then sets host_mtu in the
      interface's commandline options.
      
      The result is that a higher MTU for all guests connecting to a
      particular network will be plumbed top to bottom by simply changing
      the MTU of the network (in libvirt's config for libvirt-managed
      networks, or directly on the bridge device for simple host bridges or
      OVS bridges managed outside of libvirt).
      
      One question I have about this - it occurred to me that in the case of
      migrating a guest from a host with an older libvirt to one with a
      newer libvirt, the guest may have *not* had the host_mtu option on the
      older machine, but *will* have it on the newer machine. I'm curious if
      this could lead to incompatibilities between source and destination (I
      guess it all depends on whether or not the setting of host_mtu has a
      practical effect on a guest that is already running - Maxime?)
      
      Likewise, we could run into problems when migrating from a newer
      libvirt to older libvirt - The guest would have been told of the
      higher MTU on the newer libvirt, then migrated to a host that didn't
      understand <mtu size='blah'/>. (If this really is a problem, it would
      be a problem with or without the current patch).
      2841e675
  12. 25 11月, 2016 1 次提交
    • E
      qemu: Add vhost-scsi string for -device parameter · 9cc26dc6
      Eric Farman 提交于
      Open /dev/vhost-scsi, and record the resulting file descriptor, so that
      the guest has access to the host device outside of the libvirt daemon.
      Pass this information, along with data parsed from the XML file, to build
      a device string for the qemu command line.  That device string will be
      for either a vhost-scsi-ccw device in the case of an s390 machine, or
      vhost-scsi-pci for any others.
      Signed-off-by: NEric Farman <farman@linux.vnet.ibm.com>
      9cc26dc6
  13. 09 11月, 2016 1 次提交
  14. 03 11月, 2016 1 次提交
  15. 26 10月, 2016 1 次提交
    • J
      qemu: Add a secret object to/for a char source dev · daf5c651
      John Ferlan 提交于
      Add the secret object so the 'passwordid=' can be added if the command line
      if there's a secret defined in/on the host for TCP chardev TLS objects.
      
      Preparation for the secret involves adding the secinfo to the char source
      device prior to command line processing. There are multiple possibilities
      for TCP chardev source backend usage.
      
      Add test for at least a serial chardev as an example.
      daf5c651
  16. 20 9月, 2016 1 次提交
  17. 12 9月, 2016 1 次提交
  18. 09 9月, 2016 1 次提交
    • J
      qemu: Add the ability to hotplug the TLS X.509 environment · 2c322378
      John Ferlan 提交于
      If the incoming XML defined a path to a TLS X.509 certificate environment,
      add the necessary 'tls-creds-x509' object to the VIR_DOMAIN_CHR_TYPE_TCP
      character device.
      
      Likewise, if the environment exists the hot unplug needs adjustment as
      well.  Note that all the return ret were changed to goto cleanup since
      the cfg needs to be unref'd
      Signed-off-by: NJohn Ferlan <jferlan@redhat.com>
      2c322378
  19. 25 8月, 2016 1 次提交
  20. 02 8月, 2016 1 次提交
    • J
      qemu: Use qemuAliasFromDisk instead of qemuDeviceDriveHostAlias · 13effcaf
      John Ferlan 提交于
      Since we already have a function that will generate the drivestr from
      the alias, let's use it and remove the qemuDeviceDriveHostAlias.
      
      Move the QEMU_DRIVE_HOST_PREFIX definition into qemu_alias.h
      
      Also alter qemuAliasFromDisk to use the QEMU_DRIVE_HOST_PREFIX instead
      of "drive-%s".
      13effcaf
  21. 25 6月, 2016 1 次提交
  22. 16 6月, 2016 1 次提交
  23. 09 6月, 2016 1 次提交
  24. 07 6月, 2016 1 次提交
  25. 23 5月, 2016 1 次提交
  26. 16 5月, 2016 1 次提交
  27. 02 5月, 2016 2 次提交
    • J
      qemu: Introduce qemuDomainSecretHostdevPrepare and Destroy · d0816650
      John Ferlan 提交于
      Similar to the qemuDomainSecretDiskPrepare, generate the secret
      for the Hostdev's prior to call qemuProcessLaunch which calls
      qemuBuildCommandLine. Additionally, since the secret is not longer
      added as part of building the command, the hotplug code will need
      to make the call to add the secret in the hostdevPriv.
      
      Since this then is the last requirement to pass a virConnectPtr
      to qemuBuildCommandLine, we now can remove that as part of these
      changes. That removal has cascading effects through various callers.
      Signed-off-by: NJohn Ferlan <jferlan@redhat.com>
      d0816650
    • J
      qemu: Introduce qemuDomainSecretPrepare and Destroy · 40d8e2ba
      John Ferlan 提交于
      Rather than needing to pass the conn parameter to various command
      line building API's, add qemuDomainSecretPrepare just prior to the
      qemuProcessLaunch which calls qemuBuilCommandLine. The function
      must be called after qemuProcessPrepareHost since it's expected
      to eventually need the domain masterKey generated during the prepare
      host call. Additionally, future patches may require device aliases
      (assigned during the prepare domain call) in order to associate
      the secret objects.
      
      The qemuDomainSecretDestroy is called after the qemuProcessLaunch
      finishes in order to clear and free memory used by the secrets
      that were recently prepared, so they are not kept around in memory
      too long.
      
      Placing the setup here is beneficial for future patches which will
      need the domain masterKey in order to generate an encrypted secret
      along with an initialization vector to be saved and passed (since
      the masterKey shouldn't be passed around).
      
      Finally, since the secret is not added during command line build,
      the hotplug code will need to get the secret into the private disk data.
      Signed-off-by: NJohn Ferlan <jferlan@redhat.com>
      40d8e2ba
  28. 22 4月, 2016 1 次提交
  29. 16 4月, 2016 1 次提交
  30. 15 4月, 2016 1 次提交
  31. 13 4月, 2016 1 次提交
    • J
      drop qemuBuildCommandLineCallbacks · 0da965c5
      Ján Tomko 提交于
      Essentially revert commit 3a6204cb which added these to allow the test
      suite to pass without depending on the host system state.
      
      Since commit 4b527c1a we already mock virSCSIDeviceGetSgName, so these
      callbacks are useless.
      0da965c5
  32. 06 4月, 2016 1 次提交
  33. 15 3月, 2016 4 次提交
    • J
      qemu: Introduce qemuBuildRNGCommandLine · b12acd31
      John Ferlan 提交于
      Add new function to manage adding the RNG device options to the
      command line removing that task from the mainline qemuBuildCommandLine.
      
      Also modify the qemuBuildRNGDevStr to use const virDomainDef instead
      of virDomainDefPtr.
      Signed-off-by: NJohn Ferlan <jferlan@redhat.com>
      b12acd31
    • J
      qemu: Introduce qemuBuildMemballoonCommandLine · 00e47796
      John Ferlan 提交于
      Add new function to manage adding the memballoon device options to the
      command line removing that task from the mainline qemuBuildCommandLine.
      
      Also modify the qemuBuildMemballoonDevStr to use const virDomainDef
      instead of virDomainDefPtr.
      Signed-off-by: NJohn Ferlan <jferlan@redhat.com>
      00e47796
    • J
      qemu: Introduce qemuBuildHostdevCommandLine · d2108df5
      John Ferlan 提交于
      Add new function to manage adding the host device options to the
      command line removing that task from the mainline qemuBuildCommandLine.
      
      Also modify qemuBuildPCIHostdevDevStr, qemuBuildUSBHostdevDevStr,
      and qemuBuildSCSIHostdevDevStr to use const virDomainDef instead
      of virDomainDefPtr.
      
      Make qemuBuildPCIHostdevPCIDevStr and qemuBuildUSBHostdevUSBDevStr
      static to the qemu_command.c.
      Signed-off-by: NJohn Ferlan <jferlan@redhat.com>
      d2108df5
    • J
      qemu: Introduce qemuBuildRedirdevCommandLine · 59e7ef3c
      John Ferlan 提交于
      Add new function to manage adding the redirdev device options to the
      command line removing that task from the mainline qemuBuildCommandLine.
      
      Also move the qemuBuildRedirdevDevStr closer to the new function and
      modify to use the const virDomainDef instead of virDomainDefPtr
      Signed-off-by: NJohn Ferlan <jferlan@redhat.com>
      59e7ef3c