1. 27 10月, 2009 1 次提交
  2. 26 10月, 2009 5 次提交
  3. 22 10月, 2009 2 次提交
    • M
      Fix potential false-positive OOM error reporting. · 4ed2c377
      Matthias Bolte 提交于
      If no matching device was found (cap == NULL) then no strdup() call
      was made and *wwnn and *wwpn are untouched. Checking them for NULL
      in this situation may result in reporting an false-positive OOM error
      because *wwnn and *wwpn may be initialized to NULL by the caller.
      
      Only check *wwnn and *wwpn for NULL if a matching device was found
      (cap != NULL) and thus strdup() was called.
      
      * src/conf/node_device_conf.c: only report an OOM error if there
        really is one
      4ed2c377
    • D
      Consolidate virXPathNodeSet() · 2f4682a9
      Daniel Veillard 提交于
      virXPathNodeSet() could return -1 when doing an evaluation failure
      due to xmlXPathEval() from libxml2 behaviour.
      * src/util/xml.c: make sure we always return 0 unless the returned
        XPath type is of the wrong type (meaning the query passed didn't
        evaluate to a node set and code must be fixed)
      2f4682a9
  4. 21 10月, 2009 6 次提交
  5. 19 10月, 2009 3 次提交
    • D
      Remove bogus const annotations to hash iterator · cf577653
      Daniel P. Berrange 提交于
      Most of the hash iterators need to modify either payload of
      data args. The const annotation prevents this.
      
      * src/util/hash.h, src/util/hash.c: Remove const-ness from
        virHashForEach/Iterator
      * src/xen/xm_internal.c: Remove bogus casts
      cf577653
    • D
      fix virDomainMigrateToURI doc · de2b252d
      Dan Kenigsberg 提交于
      * src/libvirt.c: remove reverences to non existent dconn parameter
        when using that entry point.
      de2b252d
    • R
      LXC fix virCgroupGetValueStr problem with \n · 41fa653f
      Ryota Ozaki 提交于
      A cgroup file returns integer value terminated with '\n' and remaining
      it has sometimes harmful effects, for example it leads virStrToLong_ull
      to fail.
      * src/util/cgroup.c: strip out terminating \n when reading a value
      41fa653f
  6. 15 10月, 2009 2 次提交
    • M
      Don't copy old machines from a domain which has none · 2210f8a3
      Mark McLoughlin 提交于
      If the the qemu and kvm binaries are the same, we don't include machine
      types in the kvm domain info.
      
      However, the code which refreshes the machine types info from the
      previous capabilities structure first looks at the kvm domain's info,
      finds it matches and then copies the empty machine types list over
      for the top-level qemu domain.
      
      That doesn't make sense, we shouldn't copy an empty machin types list.
      
      * src/qemu/qemu_conf.c: qemudGetOldMachinesFromInfo(): don't copy an
        empty machine types list.
      2210f8a3
    • L
      Avoid crash in virBufferEscapeString · 04e06862
      Laine Stump 提交于
      * src/util/buf.c: if virBufferEscapeString was called on a buffer that
        had 0 bytes of space, a size of -1 will be passed to snprintf, resulting
        in a segmentation fault, this preallocate some space.
      04e06862
  7. 14 10月, 2009 3 次提交
    • J
      Add ocfs2 to list of fs pool types · e3915958
      Jim Fehlig 提交于
      * src/conf/storage_conf.c src/conf/storage_conf.h: extend the enums
        and values
      * docs/schemas/storagepool.rng: add to the list of storage pool type
        formats
      e3915958
    • R
      LXC complement PATH environment variable · c396fb36
      Ryota Ozaki 提交于
      * src/lxc/lxc_driver.c: without PATH, the controller will definitely
        fail to call ip command
      c396fb36
    • C
      Finer grained migration control · 2d8d9b10
      Chris Lalancette 提交于
      Normally, when you migrate a domain from host A to host B,
      the domain on host A remains defined but shutoff and the domain
      on host B remains running but is a "transient".  Add a new
      flag to virDomainMigrate() to allow the original domain to be
      undefined on source host A, and a new flag to virDomainMigrate() to
      allow the new domain to be persisted on the destination host B.
      Signed-off-by: NChris Lalancette <clalance@redhat.com>
      2d8d9b10
  8. 13 10月, 2009 8 次提交
  9. 12 10月, 2009 1 次提交
    • M
      Take domain type into account when looking up default machine · 73c901a8
      Mark McLoughlin 提交于
      If one has e.g.
      
        <guest>
          <os_type>hvm</os_type>
          <arch name='x86_64'>
            <wordsize>64</wordsize>
            <emulator>/usr/bin/qemu-system-x86_64</emulator>
            <machine>pc-0.11</machine>
            <machine canonical='pc-0.11'>pc</machine>
            <machine>pc-0.10</machine>
            <machine>isapc</machine>
            <domain type='qemu'>
            </domain>
            <domain type='kvm'>
              <emulator>/usr/bin/kvm</emulator>
              <machine>pc</machine>
              <machine>isapc</machine>
            </domain>
          </arch>
        </guest>
      
      and start a guest with:
      
        <domain type='kvm'>
          ...
          <os>
            <type arch='x86_64'>hvm</type>
            ...
          </os>
        </domain>
      
      then the default machine type should be 'pc' and not 'pc-0.11'
      
      Issue was reported by Anton Protopopov.
      
      * src/capabilities.[ch]: pass the domain type to
        virCapabilitiesDefaultGuestArch() and use it to look up the default
        machine type from a specific guest domain if needed.
      
      * src/conf/domain_conf.c, src/xen/xm_internal.c: update
      
      * tests/qemuxml2argvdata/qemuxml2argv-machine-aliases2.xml: update
        the domain type to 'kvm' and remove the machine type to check
        that the default gets looked up correctly
      73c901a8
  10. 09 10月, 2009 9 次提交
    • D
      Support a new peer-to-peer migration mode & public API · fae0da5c
      Daniel P. Berrange 提交于
      Introduces several new public API options for migration
      
       - VIR_MIGRATE_PEER2PEER: With this flag the client only
         invokes the virDomainMigratePerform method, expecting
         the source host driver to do whatever is required to
         complete the entire migration process.
       - VIR_MIGRATE_TUNNELLED: With this flag the actual data
         for migration will be tunnelled over the libvirtd RPC
         channel. This requires that VIR_MIGRATE_PEER2PEER is
         also set.
       - virDomainMigrateToURI: This is variant of the existing
         virDomainMigrate method which does not require any
         virConnectPtr for the destination host. Given suitable
         driver support, this allows for all the same modes as
         virDomainMigrate()
      
      The URI for VIR_MIGRATE_PEER2PEER must be a valid libvirt
      URI. For non-p2p migration a hypervisor specific migration
      URI is used.
      
      virDomainMigrateToURI without a PEER2PEER flag is only
      support for Xen currently, and it involves XenD talking
      directly to XenD, no libvirtd involved at all.
      
      * include/libvirt/libvirt.h.in: Add VIR_MIGRATE_PEER2PEER
        flag for migration
      * src/libvirt_internal.h: Add feature flags for peer to
        peer migration (VIR_FEATURE_MIGRATE_P2P) and direct
        migration (VIR_MIGRATE_PEER2PEER mode)
      * src/libvirt.c: Implement support for VIR_MIGRATE_PEER2PEER
        and virDomainMigrateToURI APIs.
      * src/xen/xen_driver.c: Advertise support for DIRECT migration
      * src/xen/xend_internal.c: Add TODO item for p2p migration
      * src/libvirt_public.syms: Export virDomainMigrateToURI
        method
      * src/qemu/qemu_driver.c: Add support for PEER2PEER and
        migration, and adapt TUNNELLED migration.
      * tools/virsh.c: Add --p2p and --direct args and use the
        new virDomainMigrateToURI method where possible.
      fae0da5c
    • D
      Re-arrange doTunnelMigrate to simplify cleanup code · 35e7f271
      Daniel P. Berrange 提交于
      Re-arrange the doTunnelMigrate method putting all non-QEMU local
      state setup steps first. This maximises chances of success before
      then starting destination QEMU for receiving incoming migration.
      Altogether this can reduce the number of goto cleanup labels to
      something more managable.
      
      * qemu/qemu_driver.c: Re-order steps in doTunnelMigrate
      35e7f271
    • D
      Separate out code for sending tunnelled data · 8d75cb7f
      Daniel P. Berrange 提交于
      Simplify the doTunnelMigrate code by pulling out the code for
      sending all tunnelled data into separate helper
      
      * qemu/qemu_driver.c: introduce doTunnelSendAll() method
      8d75cb7f
    • D
      Pull connection handling code out of doTunnelMigrate · 0d5600fd
      Daniel P. Berrange 提交于
      Simplify the doTunnelMigrate() method by pulling out the code
      which opens/closes the virConnectPtr  object into a parent
      method
      
      * qemu/qemu_driver.c: Add doPeer2PeerMigrate which then calls
        doTunnelMigrate with dconn & dom_xml
      0d5600fd
    • D
      Fix stream abort upon I/O failure during migration · 345a5092
      Daniel P. Berrange 提交于
      virStreamAbort is needed when the caller wishes to terminate
      the stream early, not when virStreamSend fails.
      
      * qemu/qemu_driver.c: Fix calling of virStreamAbort during
        tunnelled migration
      345a5092
    • D
      Refactor native QEMU migration code · de85acdf
      Daniel P. Berrange 提交于
      The code for tunnelled migration was added in a dedicated method,
      but the native migration code is still inline in the top level
      qemudDomainMigratePerform() API. Move the native code out into
      a dedicated method too to make things more maintainable.
      
      * src/qemu/qemu_driver.c: Pull code for performing a native
        QEMU migration out into separate method
      de85acdf
    • D
      Don't force dconn to be NULL in virDomainMigrate · 543e013a
      Daniel P. Berrange 提交于
      The code for tunnelled migration wierdly required the app to pass
      a  NULL 'dconn' parameter, only to have to use virConnectOpen
      itself shortly thereafter to get a 'dconn' object. Remove this
      bogus check & require the app to always pas 'dconn' as before
      
      * src/libvirt.c: Require 'dconn' for virDomainMigrate calls again
        and remove call to virConnectOpen
      543e013a
    • D
      Remove unneccessary uri_in parameter from virMigratePrepareTunnel · f6c66d01
      Daniel P. Berrange 提交于
      Since virMigratePrepareTunnel() is used for migration over the
      native libvirt connection, there is never any need to pass the
      target URI to this method.
      
      * daemon/remote.c, src/driver.h, src/libvirt.c, src/libvirt_internal.h,
        src/qemu/qemu_driver.c, src/remote/remote_driver.c,
        src/remote/remote_protocol.c, src/remote/remote_protocol.h,
        src/remote/remote_protocol.x: Remove 'uri_in' parameter from
        virMigratePrepareTunnel() method
      f6c66d01
    • D
      Move the VIR_DRV_FEATURE* constants · dd26096a
      Daniel P. Berrange 提交于
      Move the VIR_DRV_FEATURE* constants into libvirt_internal.h
      since these flags are indicating whether  APIs in the
      libvirt_internal.h file are supported by a driver
      
      * src/driver.h: Remove VIR_DRV_FEATURE* constants
      * src/libvirt_internal.h: Add VIR_DRV_FEATURE* constants, using
        an enum instead of #define
      * src/internal.h: pull in libvirt_internal.h
      dd26096a