1. 14 10月, 2016 3 次提交
  2. 12 9月, 2016 1 次提交
    • P
      qemu: hotplug: Don't wait if cdrom tray is opened forcibly · 85c82612
      Peter Krempa 提交于
      Qemu always opens the tray if forced to. Skip the waiting step in such
      case.
      
      This also helps if qemu does not report the tray change event when
      opening the cdrom forcibly (the documentation says that the event will
      not be sent although qemu in fact does trigger it even if @force is
      selceted).
      
      This is a workaround for a qemu issue where qemu does not send the tray
      change event in some cases (after migration with empty closed locked
      drive) and thus renders the cdrom useless from libvirt's point of view.
      
      Partially resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1368368
      85c82612
  3. 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
  4. 26 8月, 2016 1 次提交
    • L
      qemu: remove unnecessary setting of tap device online state · dbb79039
      Laine Stump 提交于
      The linkstate setting of an <interface> is only meant to change the
      online status reported to the guest system by the emulated network
      device driver in qemu, but when support for auto-creating tap devices
      for <interface type='ethernet'> was added in commit 9717d6, a chunk of
      code was also added to qemuDomainChangeNetLinkState() that sets the
      online status of the tap device (i.e. the *host* side of the
      interface) for type='ethernet'. This was never done for tap devices
      used in type='bridge' or type='network' interfaces, nor was it done in
      the past for tap devices created by external scripts for
      type='ethernet', so we shouldn't be doing it now.
      
      This patch removes the bit of code in qemuDomainChangeNetLinkState()
      that modifies online status of the tap device.
      dbb79039
  5. 25 8月, 2016 2 次提交
    • P
      qemu: hotplug: Add support for VCPU unplug · e3229f6e
      Peter Krempa 提交于
      This patch removes the old vcpu unplug code completely and replaces it
      with the new code using device_del. The old hotplug code basically never
      worked with any recent qemu and thus is useless.
      
      As the new code is using device_del all the implications of using it
      are present. Contrary to the device deletion code, the vcpu deletion
      code fails if the unplug request is not executed in time.
      e3229f6e
    • P
      qemu: hotplug: Allow marking unplugged devices by alias · 00990d9f
      Peter Krempa 提交于
      Add a overlay function that takes the alias directly rather than
      extracting it from a device info.
      00990d9f
  6. 02 8月, 2016 7 次提交
  7. 28 7月, 2016 1 次提交
    • D
      storage: remove "luks" storage volume type · a48c7141
      Daniel P. Berrange 提交于
      The current LUKS support has a "luks" volume type which has
      a "luks" encryption format.
      
      This partially makes sense if you consider the QEMU shorthand
      syntax only requires you to specify a format=luks, and it'll
      automagically uses "raw" as the next level driver. QEMU will
      however let you override the "raw" with any other driver it
      supports (vmdk, qcow, rbd, iscsi, etc, etc)
      
      IOW the intention though is that the "luks" encryption format
      is applied to all disk formats (whether raw, qcow2, rbd, gluster
      or whatever). As such it doesn't make much sense for libvirt
      to say the volume type is "luks" - we should be saying that it
      is a "raw" file, but with "luks" encryption applied.
      
      IOW, when creating a storage volume we should use this XML
      
        <volume>
          <name>demo.raw</name>
          <capacity>5368709120</capacity>
          <target>
            <format type='raw'/>
            <encryption format='luks'>
              <secret type='passphrase' uuid='0a81f5b2-8403-7b23-c8d6-21ccd2f80d6f'/>
            </encryption>
          </target>
        </volume>
      
      and when configuring a guest disk we should use
      
        <disk type='file' device='disk'>
          <driver name='qemu' type='raw'/>
          <source file='/home/berrange/VirtualMachines/demo.raw'/>
          <target dev='sda' bus='scsi'/>
          <encryption format='luks'>
            <secret type='passphrase' uuid='0a81f5b2-8403-7b23-c8d6-21ccd2f80d6f'/>
          </encryption>
        </disk>
      
      This commit thus removes the "luks" storage volume type added
      in
      
        commit 318ebb36
        Author: John Ferlan <jferlan@redhat.com>
        Date:   Tue Jun 21 12:59:54 2016 -0400
      
          util: Add 'luks' to the FileTypeInfo
      
      The storage file probing code is modified so that it can probe
      the actual encryption formats explicitly, rather than merely
      probing existance of encryption and letting the storage driver
      guess the format.
      
      The rest of the code is then adapted to deal with
      VIR_STORAGE_FILE_RAW w/ VIR_STORAGE_ENCRYPTION_FORMAT_LUKS
      instead of just VIR_STORAGE_FILE_LUKS.
      
      The commit mentioned above was included in libvirt v2.0.0.
      So when querying volume XML this will be a change in behaviour
      vs the 2.0.0 release - it'll report 'raw' instead of 'luks'
      for the volume format, but still report 'luks' for encryption
      format.  I think this change is OK because the storage driver
      did not include any support for creating volumes, nor starting
      guets with luks volumes in v2.0.0 - that only since then.
      Clearly if we change this we must do it before v2.1.0 though.
      Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
      a48c7141
  8. 26 7月, 2016 2 次提交
  9. 22 7月, 2016 1 次提交
  10. 21 7月, 2016 1 次提交
  11. 20 7月, 2016 2 次提交
  12. 19 7月, 2016 9 次提交
    • J
      qemu: Add luks support for domain disk · da86c6c2
      John Ferlan 提交于
      Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1301021
      
      Generate the luks command line using the AES secret key to encrypt the
      luks secret. A luks secret object will be in addition to a an AES secret.
      
      For hotplug, check if the encinfo exists and if so, add the AES secret
      for the passphrase for the secret object used to decrypt the device.
      
      Modify/augment the fakeSecret* in qemuxml2argvtest in order to handle
      find a uuid or a volume usage with a specific path prefix in the XML
      (corresponds to the already generated XML tests). Add error message
      when the 'usageID' is not 'mycluster_myname'. Commit id '1d632c39'
      altered the error message generation to rely on the errors from the
      secret_driver (or it's faked replacement).
      
      Add the .args output for adding the LUKS disk to the domain
      Signed-off-by: NJohn Ferlan <jferlan@redhat.com>
      da86c6c2
    • J
      qemu: Alter the qemuDomainGetSecretAESAlias to add new arg · b7b3a51e
      John Ferlan 提交于
      Soon we will be adding luks encryption support. Since a volume could require
      both a luks secret and a secret to give to the server to use of the device,
      alter the alias generation to create a slightly different alias so that
      we don't have two objects with the same alias.
      Signed-off-by: NJohn Ferlan <jferlan@redhat.com>
      b7b3a51e
    • J
      qemu: Add secinfo for hotplug virtio disk · fceeeda2
      John Ferlan 提交于
      Commit id 'a1344f70' added AES secret processing for RBD when starting
      up a guest. As such, when the hotplug code calls qemuDomainSecretDiskPrepare
      an AES secret could be added to the disk about to be hotplugged. If an AES
      secret was added, then the hotplug code would need to generate the secret
      object because qemuBuildDriveStr would add the "password-secret=" to the
      returned 'driveStr' rather than the base64 encoded password.
      Signed-off-by: NJohn Ferlan <jferlan@redhat.com>
      fceeeda2
    • J
      qemu: Alter error path cleanup for qemuDomainAttachMemory · 99026fd0
      John Ferlan 提交于
      A recent adjustment to qemuDomainAttachRNGDevice to properly cleanup
      the props object after a qemuMonitorAddObject also would affect this
      code. Alter the cleanup to be similar to RNG changes.
      99026fd0
    • J
      qemu: Alter error path cleanup for qemuDomainAttachRNGDevice · 47208776
      John Ferlan 提交于
      Based on recent review comment - rather than have a spate of goto failxxxx,
      change to a boolean based model. Ensures that the original error can be
      preserved and cleanup is a bit more orderly if more objects are added.
      47208776
    • J
      qemu: Alter error path cleanup for qemuDomainAttachChrDevice · 05bc30d2
      John Ferlan 提交于
      Based on recent review comment - rather than have a spate of goto failxxxx,
      change to a boolean based model. Ensures that the original error can be
      preserved and cleanup is a bit more orderly if more objects are added.
      05bc30d2
    • J
      qemu: Alter error path cleanup for qemuDomainAttachSCSIDisk · c3b5f22d
      John Ferlan 提交于
      Based on recent review comment - rather than have a spate of goto failxxxx,
      change to a boolean based model. Ensures that the original error can be
      preserved and cleanup is a bit more orderly if more objects are added.
      c3b5f22d
    • J
      qemu: Alter error path cleanup for qemuDomainAttachVirtioDiskDevice · a7f84cb1
      John Ferlan 提交于
      Based on recent review comment - rather than have a spate of goto failxxxx,
      change to a boolean based model. Ensures that the original error can be
      preserved and cleanup is a bit more orderly if more objects are added.
      a7f84cb1
    • J
      qemu: Alter error path cleanup for qemuDomainAttachHostSCSIDevice · 6fe2eb24
      John Ferlan 提交于
      Based on recent review comment - rather than have a spate of goto failxxxx,
      change to a boolean based model. Ensures that the original error can be
      preserved and cleanup is a bit more orderly if more objects are added.
      6fe2eb24
  13. 12 7月, 2016 1 次提交
  14. 01 7月, 2016 1 次提交
  15. 30 6月, 2016 3 次提交
  16. 27 6月, 2016 1 次提交
    • L
      conf/openvz: eliminate incorrect/undocumented use of <source dev='blah'/> · 9658e70f
      Laine Stump 提交于
      When support for <interface type='ethernet'> was added in commit
      9a4b705f back in 2010, it erroneously looked at <source dev='blah'/>
      for a user-specified guest-side interface name. This was never
      documented though. (that attribute already existed at the time in the
      data.ethernet union member of virDomainNetDef, but apparently had no
      practical use - it was only used as a storage place for a NetDef's
      bridge name during qemuDomainXMLToNative(), but even then that was
      never used for anything).
      
      When support for similar guest-side device naming was added to the lxc
      driver several years later, it was put in a new subelement <guest
      dev='blah'/>.
      
      In the intervening years, since there was no validation that
      ethernet.dev was NULL in the other drivers that didn't actually use
      it, innocent souls who were adding other features assuming they needed
      to account for non-NULL ethernet.dev when really they didn't, so
      little bits of the usual pointless cargo-cult code showed up.
      
      This patch not only switches the openvz driver to use the documented
      <guest dev='blah'/> notation for naming the guest-side device (just in
      case anyone is still using the openvz driver), and logs an error if
      anyone tries to set <source dev='blah'/> for a type='ethernet'
      interface, it also removes the cargo-cult uses of ethernet.dev and
      <source dev='blah'/>, and eliminates if from the RNG and from
      virDomainNetDef.
      
      NB: I decided on this course of action after mentioning the
      inconsistency here:
      
        https://www.redhat.com/archives/libvir-list/2016-May/msg02038.html
      
      and getting encouragement do eliminate it in a later IRC discussion
      with danpb.
      9658e70f
  17. 19 6月, 2016 1 次提交
  18. 18 6月, 2016 1 次提交
  19. 17 6月, 2016 1 次提交