1. 13 7月, 2011 6 次提交
    • D
      Add missing cleanup for transient guests in UML driver · 65d68f62
      Daniel P. Berrange 提交于
      The UML inotify handler would kill off guests when certain
      conditions arise, but it forgot to remove transient guests
      from the list of domains
      
      * src/uml/uml_driver.c: Cleanup transient guests
      65d68f62
    • D
      Add auditing to the UML driver · f0c7103d
      Daniel P. Berrange 提交于
      * src/uml/uml_driver.c: Add audit hooks
      f0c7103d
    • D
      Add auditing to the LXC driver · 7d612c30
      Daniel P. Berrange 提交于
      * src/lxc/lxc_driver.c: Add auditing hooks
      7d612c30
    • D
      Add virtualization type in audit messages · 839f47b5
      Daniel P. Berrange 提交于
      Since a host can run several different virtualization types at
      the same time, audit messages should allow domains to be identified.
      Add a 'virt={qemu,kvm,uml,lxc,...}' key to domain audit messages
      
      * src/conf/domain_audit.c: Identify virt type of guest
      839f47b5
    • D
      Add auditing of filesystems · e6e90c8d
      Daniel P. Berrange 提交于
      When passing through filesystems from the host to a guest, the
      host filesystem passed must be audited
      
      * src/conf/domain_audit.{c,h}: Add virDomainAuditFS
      e6e90c8d
    • D
      Move qemu_audit.h helpers into shared code · b43070eb
      Daniel P. Berrange 提交于
      The LXC and UML drivers can both make use of auditing. Move
      the qemu_audit.{c,h} files to src/conf/domain_audit.{c,h}
      
      * src/conf/domain_audit.c: Rename from src/qemu/qemu_audit.c
      * src/conf/domain_audit.h: Rename from src/qemu/qemu_audit.h
      * src/Makefile.am: Remove qemu_audit.{c,h}, add domain_audit.{c,h}
      * src/qemu/qemu_audit.h, src/qemu/qemu_cgroup.c,
        src/qemu/qemu_command.c, src/qemu/qemu_driver.c,
        src/qemu/qemu_hotplug.c, src/qemu/qemu_migration.c,
        src/qemu/qemu_process.c: Update for changed audit API names
      b43070eb
  2. 12 7月, 2011 22 次提交
    • M
      esx: Initialize all instances of esxVMX_Data to zero · 38ea116e
      Matthias Bolte 提交于
      To avoid using or freeing uninitialized memory or pointers.
      38ea116e
    • M
      rpc: Fix compile error due to potentially unused parameter · b2534529
      Matthias Bolte 提交于
      connectDBus is only used if HAVE_DBUS is set. Therefore mark
      it as potentially unused.
      b2534529
    • J
      Fix build when using polkit0 · b8adfcc6
      Jim Fehlig 提交于
      V2: Remove policy kit references from virNetServer and use DBus APIs
          directly, if available.
      b8adfcc6
    • D
      Implement code to attach to external QEMU instances. · 109efd79
      Daniel P. Berrange 提交于
      Given a PID, the QEMU driver reads /proc/$PID/cmdline and
      /proc/$PID/environ to get the configuration. This is fed
      into the ARGV->XML convertor to build an XML configuration
      for the process.
      
      /proc/$PID/exe is resolved to identify the full command
      binary path
      
      After checking for name/uuid uniqueness, an attempt is
      made to connect to the monitor socket. If successful
      then 'info status' and 'info kvm' are issued to determine
      whether the CPUs are running and if KVM is enabled.
      
      * src/qemu/qemu_driver.c: Implement virDomainQemuAttach
      * src/qemu/qemu_process.h, src/qemu/qemu_process.c: Add
        qemuProcessAttach to connect to the monitor of an
        existing QEMU process
      109efd79
    • D
      Add monitor API for checking whether KVM is enabled · 7760eaa0
      Daniel P. Berrange 提交于
      When attaching to an external QEMU process, it is neccessary
      to check if the process is using KVM or not. This can be done
      using a monitor command
      
      * src/qemu/qemu_monitor.c, src/qemu/qemu_monitor.h,
        src/qemu/qemu_monitor_json.c, src/qemu/qemu_monitor_json.h,
        src/qemu/qemu_monitor_text.c, src/qemu/qemu_monitor_text.h: Add
        API for checking if KVM is enabled
      7760eaa0
    • D
      Add a method for extracting QEMU argv from /proc · 80a4ee46
      Daniel P. Berrange 提交于
      To enable attaching to externally launched QEMU, we need
      to be able to reverse engineer a guest XML config based
      on the argv for a PID in /proc
      
      * src/qemu/qemu_command.c, src/qemu/qemu_command.h: Add
        qemuParseCommandLinePid which extracts QEMU config from
        argv in /proc, given a PID number
      80a4ee46
    • D
      Change extract pidfile & monitor config from QEMU command line · ebbae359
      Daniel P. Berrange 提交于
      When converting QEMU argv into a virDomainDefPtr, also extract
      the pidfile, monitor character device config and the monitor
      mode.
      
      * src/qemu/qemu_command.c, src/qemu/qemu_command.h: Extract
        pidfile & monitor config from QEMU argv
      * src/qemu/qemu_driver.c, tests/qemuargv2xmltest.c: Add extra
        params when calling qemuParseCommandLineString
      ebbae359
    • D
      Keep pidfile path in qemuDomainObjPrivate struct · accfe952
      Daniel P. Berrange 提交于
      Avoid re-formatting the pidfile path everytime we need it. Create
      it once when starting the guest, and preserve it until the guest
      is shutdown.
      
      * src/libvirt_private.syms, src/util/util.c,
        src/util/util.h: Add virFileReadPidPath
      * src/qemu/qemu_domain.h: Add pidfile field
      * src/qemu/qemu_process.c: Store pidfile path in qemuDomainObjPrivate
      accfe952
    • D
      Add a new 'virsh qemu-attach' command. · eb7be6a6
      Daniel P. Berrange 提交于
      This command allows libvirt to attach to an existing QEMU
      instance.
      
       $ qemu-kvm -cdrom ~/demo.iso \
           -monitor unix:/tmp/demo,server,nowait \
           -name foo \
           -uuid cece4f9f-dff0-575d-0e8e-01fe380f12ea  &
       $ QEMUPID=$!
       $ virsh qemu-attach $QEMUPID
      eb7be6a6
    • D
      Define remote wire protocol & impls for virDomainQemuAttach · 44036460
      Daniel P. Berrange 提交于
      This tweaks the RPC generator to cope with some naming
      conventions used for the QEMU specific APIs
      
      * daemon/remote.c: Server side dispatcher
      * src/remote/remote_driver.c: Client side dispatcher
      * src/remote/qemu_protocol.x: Wire protocol definition
      * src/rpc/gendispatch.pl: Use '$structprefix' in method
        names, fix QEMU flags and fix dispatcher method names
      44036460
    • D
      Define a QEMU specific API to attach to a running QEMU process · 639f8413
      Daniel P. Berrange 提交于
      Introduce a new API in libvirt-qemu.so
      
       virDomainPtr virDomainQemuAttach(virConnectPtr domain,
                                        unsigned long long pid,
                                        unsigned int flags);
      
      This allows libvirtd to attach to an existing, externally
      launched QEMU process. This is useful for QEMU developers who
      prefer to launch QEMU themselves for debugging/devel reasons,
      but still want the benefit of libvirt based tools like
      virt-top, virt-viewer, etc
      
      * include/libvirt/libvirt-qemu.h: Define virDomainQemuAttach
      * src/driver.h, src/libvirt-qemu.c, src/libvirt_qemu.syms:
        Driver glue for virDomainQemuAttach
      639f8413
    • A
      qemu: update configuration file · 9c5b1900
      Alex Jia 提交于
      * src/qemu/qemu.conf: Add blkio controller into qemu.conf.
      9c5b1900
    • E
      qemu: avoid fd leak on core dump failure · f532bfa2
      Eric Blake 提交于
      * src/qemu/qemu_driver.c (doCoreDump): Guarantee fd is closed.
      f532bfa2
    • E
      maint: rename virtaudit to match file contents · 2ceb35e1
      Eric Blake 提交于
      * src/util/virtaudit.[ch]: Rename...
      * src/util/viraudit.[ch]: ...to match virAudit* API.
      * src/Makefile.am (UTIL_SOURCES): Reflect rename.
      * daemon/libvirtd.c: Likewise.
      * po/POTFILES.in: Likewise.
      * src/libvirt_private.syms: Likewise.
      * src/qemu/qemu_audit.c: Likewise.
      2ceb35e1
    • O
      remote/ssh: support for no_verify. · 9a0e6a8f
      Oskari Saarenmaa 提交于
      Set StrictHostKeyChecking=no to auto-accept new ssh host keys if the
      no_verify extra parameter was specified.  This won't disable host key
      checking for already known hosts.  Includes a test and documentation.
      9a0e6a8f
    • K
      Fix virsh inject-nmi man page · 2851d378
      KAMEZAWA Hiroyuki 提交于
      * tools/virsh.pod: move the description which was misplaced
      2851d378
    • M
      domain_conf: Free temporary variable · d50bb45b
      Michal Privoznik 提交于
      * src/conf/domain_conf.c: caller must free returned value of
        virXPathString in useserial
      d50bb45b
    • O
      esx: Fix a potential crash · 6ddb83ef
      Osier Yang 提交于
      Initialize ptr data.datastorePathWithoutFileName as NULL, otherwise
      it might cause crash when trying to free it in cleanup.
      6ddb83ef
    • E
      build: also check qemu_protocol for on-the-wire stability · 62dee6fa
      Eric Blake 提交于
      Since we are going to add some libvirt-qemu.so entry points in
      0.9.4, we might as well start checking for RPC stability, just
      as for libvirt.so.
      
      * src/Makefile.am (PROTOCOL_STRUCTS): New variable.
      (remote_protocol-structs): Rename...
      (%_protocol-structs): ...and make more generic.
      * src/qemu_protocol-structs: New file.
      62dee6fa
    • E
      build: avoid requiring -lm · df94811f
      Eric Blake 提交于
      log2() is heavy when ffs() can do the same thing.  But ffs()
      requires gnulib support for mingw.
      
      This patch solves this linker error on Fedora 14.
      
      /usr/bin/ld: libvirt_lxc-domain_conf.o: undefined reference to symbol 'log2@@GLIBC_2.2.5'
      /usr/bin/ld: note: 'log2@@GLIBC_2.2.5' is defined in DSO /lib64/libm.so.6 so try adding it to the linker command line
      /lib64/libm.so.6: could not read symbols: Invalid operation
      collect2: ld returned 1 exit status
      
      * .gnulib: Update to latest, for ffs.
      * bootstrap.conf (gnulib_modules): Import ffs.
      * src/conf/domain_conf.c (virDomainDefParseXML): Use ffs instead
      of log2.
      Reported by Dave Allan.
      df94811f
    • J
      Remove code no longer used after commit df0b57a9 · 00d3c5a6
      Jim Fehlig 提交于
      00d3c5a6
    • M
      Add domain type checking · aa14709a
      Matthias Bolte 提交于
      The drivers were accepting domain configs without checking if those
      were actually meant for them. For example the LXC driver happily
      accepts configs with type QEMU.
      
      Add a check for the expected domain types to the virDomainDefParse*
      functions.
      aa14709a
  3. 11 7月, 2011 8 次提交
    • A
      remote: Fix memory leak · 7518ad75
      Alex Jia 提交于
      Detected in valgrind run:
      
      ==9184== 1 bytes in 1 blocks are definitely lost in loss record 1 of 19
      ==9184==    at 0x4A04A28: calloc (vg_replace_malloc.c:467)
      ==9184==    by 0x3073715F78: xdr_array (xdr_array.c:97)
      ==9184==    by 0x4CF97C9: xdr_remote_domain_get_security_label_ret (remote_protocol.c:1696)
      ==9184==    by 0x4D08741: virNetMessageDecodePayload (virnetmessage.c:286)
      ==9184==    by 0x4D00F78: virNetClientProgramCall (virnetclientprogram.c:318)
      ==9184==    by 0x4CE3887: call (remote_driver.c:3933)
      ==9184==    by 0x4CF71C6: remoteDomainGetSecurityLabel (remote_driver.c:1580)
      ==9184==    by 0x4CCA480: virDomainGetSecurityLabel (libvirt.c:7340)
      ==9184==    by 0x41993A: cmdDominfo (virsh.c:2414)
      ==9184==    by 0x411E92: vshCommandRun (virsh.c:12730)
      ==9184==    by 0x4211ED: main (virsh.c:14076)
      ==9184==
      ==9184== 2 bytes in 1 blocks are definitely lost in loss record 2 of 19
      ==9184==    at 0x4A04A28: calloc (vg_replace_malloc.c:467)
      ==9184==    by 0x3073715F78: xdr_array (xdr_array.c:97)
      ==9184==    by 0x4CF974F: xdr_remote_node_get_security_model_ret (remote_protocol.c:1713)
      ==9184==    by 0x4D08741: virNetMessageDecodePayload (virnetmessage.c:286)
      ==9184==    by 0x4D00F78: virNetClientProgramCall (virnetclientprogram.c:318)
      ==9184==    by 0x4CE3887: call (remote_driver.c:3933)
      ==9184==    by 0x4CF6F96: remoteNodeGetSecurityModel (remote_driver.c:1648)
      ==9184==    by 0x4CBF799: virNodeGetSecurityModel (libvirt.c:7382)
      ==9184==    by 0x4197D7: cmdDominfo (virsh.c:2394)
      ==9184==    by 0x411E92: vshCommandRun (virsh.c:12730)
      ==9184==    by 0x4211ED: main (virsh.c:14076)
      ==9184==
      ==9184== 8 bytes in 1 blocks are definitely lost in loss record 3 of 19
      ==9184==    at 0x4A04A28: calloc (vg_replace_malloc.c:467)
      ==9184==    by 0x3073715F78: xdr_array (xdr_array.c:97)
      ==9184==    by 0x4CF9729: xdr_remote_node_get_security_model_ret (remote_protocol.c:1710)
      ==9184==    by 0x4D08741: virNetMessageDecodePayload (virnetmessage.c:286)
      ==9184==    by 0x4D00F78: virNetClientProgramCall (virnetclientprogram.c:318)
      ==9184==    by 0x4CE3887: call (remote_driver.c:3933)
      ==9184==    by 0x4CF6F96: remoteNodeGetSecurityModel (remote_driver.c:1648)
      ==9184==    by 0x4CBF799: virNodeGetSecurityModel (libvirt.c:7382)
      ==9184==    by 0x4197D7: cmdDominfo (virsh.c:2394)
      ==9184==    by 0x411E92: vshCommandRun (virsh.c:12730)
      ==9184==    by 0x4211ED: main (virsh.c:14076)
      ==9184==
      ==9184== LEAK SUMMARY:
      ==9184==    definitely lost: 11 bytes in 3 blocks
      
      * src/remote/remote_driver.c: Avoid leak on remoteDomainGetSecurityLabel
        and remoteNodeGetSecurityModel.
      7518ad75
    • E
      tests: simplify formatting · 9693e293
      Eric Blake 提交于
      The shell version would output 40 extra spaces for a test with
      a multiple of 40 sub-tests, and the C version can use the same
      printf optimization for avoiding a loop over single space output
      as the shell version.
      
      * tests/testutils.c (virtTestMain): Avoid loop for alignment.
      * tests/test-lib.sh: Fix formatting when counter is multiple of 40.
      9693e293
    • J
      Do not drop kernel cmdline for xen pv domains · eb314315
      Jim Fehlig 提交于
      Kernel cmdline args can be passed to xen pv domains even when a
      bootloader is specified.  The current config-to-sxpr mapping
      ignores cmdline when bootloader is present.
      
      Since the xend sub-driver is used with many xen toolstack versions,
      this patch takes conservative approach of adding an else block to
      existing !def->os.bootloader, and only appends sxpr if def->os.cmdline
      is non-NULL.
      
      V2: Fix existing testcase broken by this patch and add new testcases
      eb314315
    • W
      kill vm if saving config failed in v3 protocol · 8a8b45b8
      Wen Congyang 提交于
      If virDomainSaveConfig() failed, we will return NULL to source,
      and the vm is still available to restart during confirm() step in
      v3 protocol. So we should kill it off in qemuMigrationFinish().
      
      In v2 protocol, we should not set vm to NULL, because we hold
      a reference of vm and should unrefernce it.
      8a8b45b8
    • W
      RPC: fix argument's name · 586765fb
      Wen Congyang 提交于
      586765fb
    • W
      fix typo error · ecde731c
      Wen Congyang 提交于
      ecde731c
    • M
      bios: Add support for SGA · 874e65aa
      Michal Privoznik 提交于
      This patch creates new <bios> element which, at this time has only the
      attribute useserial='yes|no'. This attribute allow users to use
      Serial Graphics Adapter and see BIOS messages from the very first moment
      domain boots up. Therefore, users can choose boot medium, set PXE, etc.
      874e65aa
    • D
      Fix rpm build with sanlock and without QEmu · 920ffe1b
      Daniel Veillard 提交于
      The qemu-sanlock.conf file is not installed in this case
      920ffe1b
  4. 09 7月, 2011 4 次提交
    • M
      vbox: Fix logic in storage driver open function · 14280297
      Matthias Bolte 提交于
      If the main driver is the vbox driver, then the open function
      has to return an error if the private data is invalid.
      14280297
    • M
      tests: Improve output of tests that decide to skip at runtime · c3ab6b2b
      Matthias Bolte 提交于
      Don't print OK/FAIL for tests that decide to be skipped after
      calling virtTestMain. Delay printing of the indentation before
      the first test until we know that the test didn't decide to be
      skipped.
      
      Also make the reconnect test use VIRT_TEST_MAIN.
      c3ab6b2b
    • M
      tests: Fix compressed test output padding logic · b1c9bf27
      Matthias Bolte 提交于
      The current logic tries to count from 1 to 40 and ignores paddings
      of 0 and 1 to 40. This doesn't work for counter + 1 mod 40 == 0
      like here for counter value 159
      
      TEST: virsh-all
            ........................................ 40
            ........................................ 80
            ........................................ 120
            ....................................... 159 OK
      PASS: virsh-all
      
      Also seq isn't portable. Therefore, calculate the correct padding
      length directly and use printf to output it at once.
      b1c9bf27
    • M
      tests: Use EXIT_AM_SKIP instead of 77 directly · 4540f8d2
      Matthias Bolte 提交于
      4540f8d2