1. 13 11月, 2014 5 次提交
  2. 12 11月, 2014 16 次提交
    • M
      qemuxml2argvtest: Run some test only on Linux · 8d659b17
      Michal Privoznik 提交于
      As I was reviewing bhyve commits, I've noticed qemuxml2argvtest
      failing for some test cases. This is not bug in qemu driver code
      rather than being unable to load qemuxml2argvmock on non-Linux
      platforms. For instance:
      
      318) QEMU XML-2-ARGV numatune-memnode
      ... libvirt:  error : internal error: NUMA node 0 is unavailable
      FAILED
      
      Rather than disabling qemuxml2argvtest on BSD (we do compile qemu
      driver there) disable only those test cases which require mocking.
      To achieve that goal new DO_TEST_LINUX() macro is introduced which
      invokes the test case on Linux only and consume arguments on other
      systems.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      8d659b17
    • J
      storage: Introduce 'managed' for the fchost parent · 5530f248
      John Ferlan 提交于
      https://bugzilla.redhat.com/show_bug.cgi?id=1160926
      
      Introduce a 'managed' attribute to allow libvirt to decide whether to
      delete a vHBA vport created via external means such as nodedev-create.
      The code currently decides whether to delete the vHBA based solely on
      whether the parent was provided at creation time. However, that may not
      be the desired action, so rather than delete and force someone to create
      another vHBA via an additional nodedev-create allow the configuration of
      the storage pool to decide the desired action.
      
      During createVport when libvirt does the VPORT_CREATE, set the managed
      value to YES if not already set to indicate to the deleteVport code that
      it should delete the vHBA when the pool is destroyed.
      
      If libvirtd is restarted all the memory only state was lost, so for a
      persistent storage pool, use the virStoragePoolSaveConfig in order to
      write out the managed value.
      
      Because we're now saving the current configuration, we need to be sure
      to not save the parent in the output XML if it was undefined at start.
      Saving the name would cause future starts to always use the same parent
      which is not the expected result when not providing a parent. By not
      providing a parent, libvirt is expected to find the best available
      vHBA port for each subsequent (re)start.
      
      At deleteVport, use the new managed value to decide whether to execute
      the VPORT_DELETE.  Since we no longer save the parent in memory or in
      XML when provided, if it was not provided, then we have to look it up.
      5530f248
    • J
      storage: Introduce virStoragePoolSaveConfig · 523c6908
      John Ferlan 提交于
      https://bugzilla.redhat.com/show_bug.cgi?id=1160926
      
      Introduce the ability to save a configuration of a persistent configuration
      that may be changed by storage pool backend activity, such as start or stop
      523c6908
    • J
      storage: Don't use a stack copy of the adapter · 5b226fcd
      John Ferlan 提交于
      https://bugzilla.redhat.com/show_bug.cgi?id=1160926
      
      Passing a copy of the storage pool adapter to a function just changes the
      copy of the fields in the particular function and then when returning to
      the caller those changes are discarded.  While not yet biting us in the
      storage clean-up case, it did cause an issue for the fchost storage pool
      startup case, createVport.  The issue was at startup, if no parent is found
      in the XML, the code will search for the 'best available' parent and then
      store that in the in memory copy of the adapter.  Of course, in this case
      it was a copy, so when returning to the virStorageBackendSCSIStartPool that
      change was discarded (or lost) from the pool->def->source.adapter which
      meant at shutdown (deleteVport), the code assumed no adapter was passed
      and skipped the deletion, leaving the vHBA created by libvirt still defined
      requiring an additional stop of a nodedev-destroy to remove.
      
      Adjusted the createVport to take virStoragePoolDefPtr instead of the
      adapter copy. Then use the virStoragePoolSourceAdapterPtr when processing.
      A future patch will need the 'def' anyway, so this just sets up for that.
      5b226fcd
    • J
      storage: Ensure fc_host parent matches wwnn/wwpn · 42a021c1
      John Ferlan 提交于
      https://bugzilla.redhat.com/show_bug.cgi?id=1160565
      
      The existing code assumed that the configuration of a 'parent' attribute
      was correct for the createVport path. As it turns out, that may not be
      the case which leads errors during the deleteVport path because the
      wwnn/wwpn isn't associated with the parent.
      
      With this change the following is reported:
      
      error: Failed to start pool fc_pool_host3
      error: XML error: Parent attribute 'scsi_host4' does not match parent 'scsi_host3' determined for the 'scsi_host16' wwnn/wwpn lookup.
      
      for XML as follows:
      
        <pool type='scsi'>
          <name>fc_pool</name>
          <source>
            <adapter type='fc_host' parent='scsi_host4' wwnn='5001a4aaf3ca174b' wwpn='5001a4a77192b864'/>
          </source>
      
      Where 'nodedev-dumpxml scsi_host16' provides:
      
        <device>
          <name>scsi_host16</name>
          <path>/sys/devices/pci0000:00/0000:00:04.0/0000:10:00.0/host3/vport-3:0-11/host16</path>
          <parent>scsi_host3</parent>
          <capability type='scsi_host'>
            <host>16</host>
            <unique_id>13</unique_id>
            <capability type='fc_host'>
              <wwnn>5001a4aaf3ca174b</wwnn>
              <wwpn>5001a4a77192b864</wwpn>
      ...
      
      The patch also adjusts the description of the storage pool to describe the
      restrictions.
      Signed-off-by: NJohn Ferlan <jferlan@redhat.com>
      42a021c1
    • J
      storage: Check for valid fc_host parent at startup · 844c1d7e
      John Ferlan 提交于
      https://bugzilla.redhat.com/show_bug.cgi?id=1160565
      
      If a 'parent' attribute is provided for the fchost, then at startup
      time check to ensure it is a vport capable scsi_host. If the parent
      is not vport capable, then disallow the startup. The following is the
      expected results:
      
      error: Failed to start pool fc_pool
      error: XML error: parent 'scsi_host2' specified for vHBA is not vport capable
      
      where the XML for the fc_pool is:
      
          <pool type='scsi'>
            <name>fc_pool</name>
            <source>
              <adapter type='fc_host' parent='scsi_host2' wwnn='5001a4aaf3ca174b' wwpn='5001a4a77192b864'/>
            </source>
      ...
      
      and 'scsi_host2' is not vport capable.
      
      Providing an incorrect parent and a correct wwnn/wwpn could lead to
      failures at shutdown (deleteVport) where the assumption is the parent
      is for the fchost.
      
      NOTE: If the provided wwnn/wwpn doesn't resolve to an existing scsi_host,
            then we will be creating one with code (virManageVport) which
            assumes the parent is vport capable.
      Signed-off-by: NJohn Ferlan <jferlan@redhat.com>
      844c1d7e
    • M
      qemu: Resolve Coverity DEADCODE. · 6c1347ec
      Matthias Gatto 提交于
      reported here: http://www.redhat.com/archives/libvir-list/2014-November/msg00327.html
      
      I could have just remove bool supportMaxOptions variable, but
      if I had do this, we could not check anymore if the nparams variable is
      superior to QEMU_NB_BLOCK_IO_TUNE_PARAM_MAX.
      
      v2: change following this proposal:
      http://www.redhat.com/archives/libvir-list/2014-November/msg00379.html
      6c1347ec
    • M
    • C
      bhyvexml2argv: Add test for grub console support · a52b56b3
      Conrad Meyer 提交于
      a52b56b3
    • C
      bhyve: Add console support for grub-bhyve bootloader · 7c7c8b0b
      Conrad Meyer 提交于
      This enables booting interactive GRUB menus (e.g. install CDs) with
      libvirt-bhyve.
      
      Caveat: A terminal other than the '--console' option to 'virsh start'
      (e.g. 'cu -l /dev/nmdm0B -s 115200') must be used to connect to
      grub-bhyve because the bhyve loader path is synchronous and must occur
      before the VM actually starts.
      
      Changing the bhyveProcessStart logic around to accommodate '--console'
      for interactive loader use seems like a significant project and probably
      not worth it, if UEFI/BIOS support for bhyve is "coming soon."
      7c7c8b0b
    • C
      bhyve: Probe grub-bhyve for --cons-dev capability · 0cd4cd29
      Conrad Meyer 提交于
      0cd4cd29
    • C
      cf133ed1
    • C
      domaincommon.rng: Add 'bootloader' to os=hvm schema for Bhyve · 79f370fc
      Conrad Meyer 提交于
      Additionally, make the <bootloader> tag optional (for bhyveload with
      custom arguments) (also, matches the actual parser).
      79f370fc
    • C
      bhyvexml2argv: Add loader argv tests. · f2ce9d36
      Conrad Meyer 提交于
      f2ce9d36
    • C
      bhyve: Support /domain/bootloader configuration for non-FreeBSD guests. · 17722c16
      Conrad Meyer 提交于
      We still default to bhyveloader(1) if no explicit bootloader
      configuration is supplied in the domain.
      
      If the /domain/bootloader looks like grub-bhyve and the user doesn't
      supply /domain/bootloader_args, we make an intelligent guess and try
      chainloading the first partition on the disk (or a CD if one exists,
      under the assumption that for a VM a CD is likely an install source).
      
      Caveat: Assumes the HDD boots from the msdos1 partition. I think this is
      a pretty reasonable assumption for a VM. (DrvBhyve with Bhyveload
      already assumes that the first disk should be booted.)
      
      I've tested both HDD and CD boot and they seem to work.
      17722c16
    • J
      Do not crash on gluster snapshots with no host name · b66288fa
      Ján Tomko 提交于
      virStorageFileBackendGlusterInit did not check nhosts.
      
      https://bugzilla.redhat.com/show_bug.cgi?id=1162974
      b66288fa
  3. 11 11月, 2014 11 次提交
  4. 10 11月, 2014 6 次提交
  5. 08 11月, 2014 2 次提交
    • M
      esx: Simplify VI (vSphere) API and VMware product version handling · 0396394f
      Matthias Bolte 提交于
      Store version numbers in this format
      
      version = 1000000 * major + 1000 * minor + micro
      
      produced by virParseVersionString instead of dedicated enums.
      
      Split the complex esxVI_ProductVersion enum into a simpler
      esxVI_ProductLine enum and a product version number.
      
      Relax API and product version number checks to accept everything that
      is equal or greater than the supported minimum version. VMware ESX
      went through 3 major versions and the vSphere API always stayed
      backward compatible. This commit assumes that this will also be true
      for future VMware ESX versions.
      
      Also reword error messages in esxConnectTo* to say what was expected
      and what was found instead (suggested by Richard W.M. Jones).
      0396394f
    • M
      domain_conf: Use virDomainParseMemory more widely · 01b4de2b
      Michal Privoznik 提交于
      As reviewing patches upstream it occurred to me, that we have two
      functions doing nearly the same: virDomainParseMemory which
      expects XML in the following format:
      
        <memory unit='MiB'>1337</memory>
      
      The other function being virDomainHugepagesParseXML expecting the
      following format:
      
        <someElement size='1337' unit='MiB'/>
      
      It wouldn't matter to have two functions handle two different
      scenarios like this if we could only not copy code that handles
      32bit arches around. So this code merges the common parts into
      one by inventing new @units_xpath argument to
      virDomainParseMemory which allows overriding the default location
      of @unit attribute in XML. With this change both scenarios above
      can be parsed with virDomainParseMemory.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      01b4de2b