1. 20 9月, 2013 3 次提交
    • J
      Don't dereference NULL in qemumonitorjsontest · 5b36ab90
      Ján Tomko 提交于
      In case of an error, qemuMonitorTestNewSimple returns NULL.
      Error out instead of dereferencing it.
      
      Found by Coverity, reported by John Ferlan.
      5b36ab90
    • D
      Add checking of dbus_message_iter_append_basic return value · 83c24493
      Daniel P. Berrange 提交于
      Coverity complains that the test suite did not check the
      return value of dbus_message_iter_append_basic() as we did
      in most other places.
      Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
      83c24493
    • L
      qemu: use "ide" as device name for implicit SATA controller on Q35 · 30bb4c4b
      Laine Stump 提交于
      This resolves https://bugzilla.redhat.com/show_bug.cgi?id=1008903
      
      The Q35 machinetype has an implicit SATA controller at 00:1F.2 which
      isn't given the "expected" id of ahci0 by qemu when it's created. The
      original suggested solution to this problem was to not specify any
      controller for the disks that use the default controller and just
      specify "unit=n" instead; qemu should then use the first IDE or SATA
      controller for the disk.
      
      Unfortunately, this "solution" is ignorant of the fact that in the
      case of SATA disks, the "unit" attribute in the disk XML is actually
      *not* being used for the unit, but is instead used to specify the
      "bus" number; each SATA controller has 6 buses, and each bus only
      allows a single unit. This makes it nonsensical to specify unit='n'
      where n is anything other than 0. It also means that the only way to
      connect more than a single device to the implicit SATA controller is
      to explicitly give the bus names, which happen to be "ide.$n", where
      $n can be replaced by the disk's "unit" number.
      30bb4c4b
  2. 19 9月, 2013 2 次提交
  3. 18 9月, 2013 4 次提交
    • D
      Add forwarder attribute to <dns/> element · 22547b4c
      Diego Woitasen 提交于
      Useful to set custom forwarders instead of using the contents of
      /etc/resolv.conf. It helps me to setup dnsmasq as local nameserver to
      resolve VM domain names from domain 0, when domain option is used.
      Signed-off-by: NDiego Woitasen <diego.woitasen@vhgroup.net>
      Signed-off-by: NEric Blake <eblake@redhat.com>
      22547b4c
    • D
      VMX: Add a VMWare Fusion 5 configuration for tests · 7ab7c9a2
      Doug Goldstein 提交于
      A user was having an issue with this specific VMWare Fusion config and
      he gave me permission to add it as part of our test suite to further
      expand our VMX test coverage. Unfortunately our VMX parser and
      generator does not support many features contained within and just
      silently ignores fields it does not understand so they had to
      be removed out in the xml2vmx test. The original unmodified version
      exists in the vmx2xml test.
      7ab7c9a2
    • D
      VMX: Add support for 'auto detect' fileNames · 834aebcc
      Doug Goldstein 提交于
      VMWare Fusion 5 can set the CD-ROM's device name to be 'auto detect' when
      using the physical drive via 'cdrom-raw' device type. VMWare will then
      connect to first available host CD-ROM to the virtual machine upon start
      up according to VMWare documentation. If no device is available, it
      appears that the device will remain disconnected.
      
      To better model this a CD-ROM that is marked as "auto detect" when in
      the off state would be modeled as the following with this patch:
        <disk type='block' device='lun'>
          <source startupPolicy='optional'/>
          <target dev='hda' bus='ide'/>
          <address type='drive' controller='0' bus='0' target='0' unit='0'/>
        </disk>
      
      Once the domain transitions to the powered on state, libvirt can
      populate the remaining source data with what is connected, if anything.
      However future power cycles, the domain may not always start with that
      device attached.
      834aebcc
    • E
      build: skip ld_preload tests on non-Linux systems · caf65892
      Eric Blake 提交于
      A cross build to mingw fails with:
      
        CC       virsystemdtest-virsystemdtest.o
      ../../tests/virsystemdtest.c: In function 'testCreateNoSystemd':
      ../../tests/virsystemdtest.c:97:9: error: implicit declaration of function 'unsetenv' [-Werror=implicit-function-declaration]
               unsetenv("FAIL_NO_SERVICE");
               ^
      ../../tests/virsystemdtest.c:97:9: error: nested extern declaration of 'unsetenv' [-Werror=nested-externs]
      
      We could cop out and pull in the gnulib unsetenv module.  But when
      you stop and think about it, this test requires LD_PRELOAD to work,
      and systemd is a Linux-only concept anyways, both of which mean
      the test could never work on mingw in the first place.  Simpler is
      to just fix the test to behave like our other LD_PRELOAD tests.
      
      * tests/virsystemdtest.c: Provide non-Linux implementation.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      caf65892
  4. 17 9月, 2013 6 次提交
    • P
      tests: metadatatest: Quiesce errors on expected paths · 935c0317
      Peter Krempa 提交于
      Use the helper added in previous patch to quiesce errors from this test
      that was spamming logs on normal test runs.
      935c0317
    • P
      test: Refactor setting of dummy error handlers · 43f68a4f
      Peter Krempa 提交于
      Multiple tests need to register a function to quiesce errors from
      libvirt when using a connection and doing negative tests. Each of those
      tests had a static function to do so. This can be replaced by a utility
      function that enables the errors when debug is enabled.
      
      This patch adds virtTestQuiesceLibvirtErrors() and refactors test that
      use private handlers.
      43f68a4f
    • A
      Add tftp protocol support for cdrom disk · 8ffe1d0c
      Aline Manera 提交于
      qemu/KVM also supports a tftp URL while specifying the cdrom ISO image.
      
      The xml should be as following:
      
          <disk type='network' device='cdrom'>
            <source protocol='tftp' name='/url/path'>
              <host name='host.name' port='69'/>
            </source>
          </disk>
      Signed-off-by: NAline Manera <alinefm@br.ibm.com>
      8ffe1d0c
    • A
      Add ftps protocol support for cdrom disk · 0f24393e
      Aline Manera 提交于
      The ftps protocol is another protocol supported by qemu/KVM while specifying
      the cdrom ISO image.
      
      The xml should be as following:
      
          <disk type='network' device='cdrom'>
            <source protocol='ftps' name='/url/path'>
              <host name='host.name' port='990'/>
            </source>
          </disk>
      Signed-off-by: NAline Manera <alinefm@br.ibm.com>
      0f24393e
    • A
      Add https protocol support for cdrom disk · d9dd9818
      Aline Manera 提交于
      The https protocol is also accepted by qemu/KVM when specifying the cdrom ISO
      image.
      
      The xml should be as following:
      
          <disk type='network' device='cdrom'>
            <source protocol='https' name='/url/path'>
              <host name='host.name' port='443'/>
            </source>
          </disk>
      Signed-off-by: NAline Manera <alinefm@br.ibm.com>
      d9dd9818
    • P
      tests: Add metadata tests · 2e23c77b
      Peter Krempa 提交于
      This test exercises the virDomain[Get|Set]Metadata API and tests it for
      regressions
      2e23c77b
  5. 13 9月, 2013 2 次提交
  6. 12 9月, 2013 1 次提交
  7. 11 9月, 2013 3 次提交
  8. 10 9月, 2013 1 次提交
    • E
      build: use library rather than cross-directory compilation · 012c25e8
      Eric Blake 提交于
      If we use subdir-objects with automake, any reference to a
      cross-directory .c file will result in automake creating
      rules that track dependency in the cross directory.  But this
      presents a problem during 'make distclean' - if the cross
      directory is cleaned up first, then the daemon directory will
      be left with dangling references to .Po dependency files that
      no longer exist.
      
      Meanwhile, referring to the cross-directory .c file means
      that we are compiling the file twice - once in src, and once
      in daemon.  Better is to compile just once in src into a
      convenience library, and then use that library from daemon.
      
      The tests directory had a similar situation of a cross-directory
      .c file; to solve that, we actually need a convenience library.
      
      * daemon/Makefile.am (DAEMON_SOURCES): Drop .c files...
      (libvirtd_LDADD): ...and instead use library.
      (libvirtd_conf_la_SOURCES): Declare a new convenience library.
      (libvirtd_LDFLAGS): Drop duplicate flag.
      * tests/Makefile.am (libvirtdconftest_SOURCES): Drop .c file...
      (libvirtdconftest_LDADD): ..and instead use library.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      012c25e8
  9. 05 9月, 2013 3 次提交
  10. 04 9月, 2013 1 次提交
    • E
      build: enforce makefile conditional style · ec81852f
      Eric Blake 提交于
      Automake has builtin support to prevent botched conditional nesting,
      but only if you use:
      if FOO
      else !FOO
      endif !FOO
      
      An example error message when using the wrong name:
      
      daemon/Makefile.am:378: error: else reminder (LIBVIRT_INIT_SCRIPT_SYSTEMD_TRUE) incompatible with current conditional: LIBVIRT_INIT_SCRIPT_SYSTEMD_FALSE
      daemon/Makefile.am:381: error: endif reminder (LIBVIRT_INIT_SCRIPT_SYSTEMD_TRUE) incompatible with current conditional: LIBVIRT_INIT_SCRIPT_SYSTEMD_FALSE
      
      As our makefiles tend to have quite a bit of nested conditionals,
      it's better to take advantage of the benefits of the build system
      double-checking that our conditionals are well-nested, but that
      requires a syntax check to enforce our usage style.
      
      Alas, unlike C preprocessor and spec files, we can't use indentation
      to make it easier to see how deeply nesting goes.
      
      * cfg.mk (sc_makefile_conditionals): New rule.
      * daemon/Makefile.am: Enforce the style.
      * gnulib/tests/Makefile.am: Likewise.
      * python/Makefile.am: Likewise.
      * src/Makefile.am: Likewise.
      * tests/Makefile.am: Likewise.
      * tools/Makefile.am: Likewise.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      ec81852f
  11. 03 9月, 2013 5 次提交
    • D
      VMX: Add cdrom-raw dev type from VMWare Fusion · f8456e5a
      Doug Goldstein 提交于
      According to VMWare's documentation 'cdrom-raw' is an acceptable value
      for deviceType for a CD-ROM drive. The documentation states that the VMX
      configuration for a CD-ROM deviceType is as follows:
      
      ide|scsi(n):(n).deviceType = "cdrom-raw|atapi-cdrom|cdrom-image"
      
      From the documentation it appears the following is true:
      - cdrom-image = Provides the ISO to the VM
      - atapi-cdrom = Provides a NEC emulated ATAPI CD-ROM on top of the host
        CD-ROM
      - cdrom-raw = Passthru for a host CD-ROM drive. Allows CD-R burning from
        within the guest.
      
      A CD-ROM prior to this patch would always provide an 'atapi-cdrom' is
      modeled as:
        <disk type='block' device='cdrom'>
          <source dev='/dev/scd0'/>
          <target dev='hda' bus='ide'/>
          <address type='drive' controller='0' bus='0' target='0' unit='0'/>
        </disk>
      
      This patch allows the 'device' attribute to be set to 'lun' for a raw
      acccess CD-ROM such as:
        <disk type='block' device='lun'>
          <source dev='/dev/scd0'/>
          <target dev='hda' bus='ide'/>
          <address type='drive' controller='0' bus='0' target='0' unit='0'/>
        </disk>
      f8456e5a
    • C
      qemu: Support virtio-mmio transport for virtio on ARM · 4fa17221
      Cole Robinson 提交于
      Starting with qemu 1.6, the qemu-system-arm vexpress-a9 model has a
      hardcoded virtio-mmio transport which enables attaching all virtio
      devices.
      
      On the command line, we have to use virtio-XXX-device rather than
      virtio-XXX-pci, thankfully s390 already set the precedent here so
      it's fairly straight forward.
      
      At the XML level, this adds a new device address type virtio-mmio.
      The controller and addressing don't have any subelements at the
      moment because we they aren't needed for this usecase, but could
      be added later if needed.
      
      Add a test case for an ARM guest with one of every virtio device
      enabled.
      4fa17221
    • C
      qemu: Fix networking for ARM guests · 54a77c6d
      Cole Robinson 提交于
      Similar to the chardev bit, ARM boards depend on the old style '-net nic'
      for actually instantiating net devices. But we can't block out
      -netdev altogether since it's needed for upcoming virtio support.
      
      And add tests for working ARM XML with console, disk, and networking.
      54a77c6d
    • C
      qemu: Don't add default memballoon device on ARM · 7c961764
      Cole Robinson 提交于
      And add test cases for a basic working ARM guest.
      7c961764
    • C
      qemu: Set QEMU_AUDIO_DRV=none with -nographic · a216e648
      Cole Robinson 提交于
      On my machine, a guest fails to boot if it has a sound card, but not
      graphical device/display is configured, because pulseaudio fails to
      initialize since it can't access $HOME.
      
      A workaround is removing the audio device, however on ARM boards there
      isn't any option to do that, so -nographic always fails.
      
      Set QEMU_AUDIO_DRV=none if no <graphics> are configured. Unfortunately
      this has massive test suite fallout.
      
      Add a qemu.conf parameter nographics_allow_host_audio, that if enabled
      will pass through QEMU_AUDIO_DRV from sysconfig (similar to
      vnc_allow_host_audio)
      a216e648
  12. 02 9月, 2013 2 次提交
  13. 30 8月, 2013 1 次提交
  14. 28 8月, 2013 2 次提交
  15. 27 8月, 2013 4 次提交
    • J
      Build QEMU command line for pcihole64 · 63ee776f
      Ján Tomko 提交于
      QEMU commit 3984890 introduced the "pci-hole64-size" property,
      to i440FX-pcihost and q35-pcihost with a default setting of 2 GB.
      
      Translate <pcihole64>x<pcihole64/> to:
      -global q35-pcihost.pci-hole64-size=x for q35 machines and
      -global i440FX-pcihost.pci-hole64-size=x for i440FX-based machines.
      
      Error out on other machine types or if the size was specified
      but the pcihost device lacks 'pci-hole64-size' property.
      
      https://bugzilla.redhat.com/show_bug.cgi?id=990418
      63ee776f
    • J
      Add pcihole64 element to root PCI controllers · 01cda918
      Ján Tomko 提交于
      <controller type='pci' index='0' model='pci-root'>
        <pcihole64 unit='KiB'>1048576</pcihole64>
      </controller>
      
      It can be used to adjust (or disable) the size of the 64-bit
      PCI hole. The size attribute is in kilobytes (different unit
      can be specified on input), but it gets rounded up to
      the nearest GB by QEMU.
      
      Disabling it will be needed for guests that crash with the
      64-bit PCI hole (like Windows XP), see:
      https://bugzilla.redhat.com/show_bug.cgi?id=990418
      01cda918
    • A
      Add ftp protocol support for cdrom disk · 796513d7
      Aline Manera 提交于
      The ftp protocol is already recognized by qemu/KVM so add this support to
      libvirt as well.
      The xml should be as following:
      
           <disk type='network' device='cdrom'>
             <source protocol='ftp' name='/url/path'>
               <host name='host.name' port='21'/>
             </source>
           </disk>
      Signed-off-by: NAline Manera <alinefm@br.ibm.com>
      796513d7
    • A
      Add http protocol support for cdrom disk · 3485ce4e
      Aline Manera 提交于
      QEMU/KVM already allows a HTTP URL for the cdrom ISO image so add this support
      to libvirt as well.
      The xml should be as following:
      
          <disk type='network' device='cdrom'>
            <source protocol='http' name='/url/path'>
              <host name='host.name' port='80'/>
            </source>
          </disk>
      Signed-off-by: NAline Manera <alinefm@br.ibm.com>
      3485ce4e