1. 29 5月, 2011 8 次提交
    • E
      remote: introduce remoteGetSchedulerParametersFlags · baa371ec
      Eric Blake 提交于
      * daemon/remote.c (remoteDispatchDomainGetSchedulerParameters):
      New function.
      * src/remote/remote_driver.c (remoteDomainGetSchedulerParameters):
      Likewise.
      * src/remote/remote_protocol.x
      (remote_domain_get_scheduler_parameters_flags_args)
      (remote_domain_get_scheduler_parameters_flags_ret): New types.
      (remote_procedure): New RPC.
      * src/remote_protocol-structs: Likewise.
      baa371ec
    • E
      qemu: introduce qemuGetSchedulerParametersFlags · 8432170f
      Eric Blake 提交于
      * src/qemu/qemu_driver.c (qemuGetSchedulerParameters): Move
      guts...
      (qemuGetSchedulerParametersFlags): ...to new callback, and honor
      flags more accurately.
      8432170f
    • E
      sched: introduce virDomainGetSchedulerParametersFlags · bc4ee589
      Eric Blake 提交于
      If we can choose live or config when setting, then we need to
      be able to choose which one we are querying.
      
      Also, make the documentation clear that set must use a non-empty
      subset (some of the hypervisors fail if params is NULL).
      
      * include/libvirt/libvirt.h.in
      (virDomainGetSchedulerParametersFlags): New prototype.
      * src/libvirt.c (virDomainGetSchedulerParametersFlags): Implement
      it.
      * src/libvirt_public.syms: Export it.
      * python/generator.py (skip_impl): Don't auto-generate.
      * src/driver.h (virDrvDomainGetSchedulerParametersFlags): New
      callback.
      bc4ee589
    • E
      remote: consolidate typed parameter handling · 8a47ed29
      Eric Blake 提交于
      * src/remote/remote_protocol.x (remote_typed_param_value)
      (remote_typed_param):  New types.
      (remote_sched_param_value, remote_sched_param)
      (remote_blkio_param_value, remote_blkio_param)
      (remote_memory_param_value, remote_memory_param): Delete.
      (remote_domain_get_scheduler_parameters_ret)
      (remote_domain_set_scheduler_parameters_args)
      (remote_domain_set_scheduler_parameters_flags_args)
      (remote_domain_set_blkio_parameters_args)
      (remote_domain_get_blkio_parameters_ret)
      (remote_domain_set_memory_parameters_args)
      (remote_domain_get_memory_parameters_ret): Update clients.
      * src/remote_protocol-structs: Likewise.
      * src/remote/remote_driver.c (remoteSerializeTypedParameters)
      (remoteDeserializeTypedParameters): New functions.
      (remoteDomainSetMemoryParameters)
      (remoteDomainGetMemoryParameters, remoteDomainSetBlkioParameters)
      (remoteDomainGetBlkioParameters)
      (remoteDomainGetSchedulerParameters)
      (remoteDomainSetSchedulerParameters)
      (remoteDomainSetSchedulerParametersFlags): Update clients.
      * daemon/remote.c (remoteSerializeTypedParameters)
      (remoteDeserializeTypedParameters): New functions.
      (remoteDispatchDomainGetSchedulerParameters)
      (remoteDispatchDomainSetSchedulerParameters)
      (remoteDispatchDomainSetSchedulerParametersFlags)
      (remoteDispatchDomainSetMemoryParameters)
      (remoteDispatchDomainGetMemoryParameters)
      (remoteDispatchDomainSetBlkioParameters)
      (remoteDispatchDomainGetBlkioParameters): Update clients.
      8a47ed29
    • E
      maint: prefer newer API names internally · 163e5f04
      Eric Blake 提交于
      Rather mechanical in nature.
      
      * src/driver.h: Use newer virTypedParameter API names.
      * src/libvirt.c: Likewise.
      * daemon/remote.c: Likewise.
      * src/esx/esx_driver.c: Likewise.
      * src/libxl/libxl_driver.c: Likewise.
      * src/lxc/lxc_driver.c: Likewise.
      * src/qemu/qemu_driver.c: Likewise.
      * src/remote/remote_driver.c: Likewise.
      * src/test/test_driver.c: Likewise.
      * src/xen/xen_driver.c: Likewise.
      * src/xen/xen_hypervisor.c: Likewise.
      * src/xen/xen_hypervisor.h: Likewise.
      * src/xen/xend_internal.c: Likewise.
      * tools/virsh.c: Likewise.
      163e5f04
    • E
      libvirt.h: avoid regression, and document preferred name · a9b3a78f
      Eric Blake 提交于
      Commit 824dcaff was a regression (thankfully unreleased) for any
      client code that used 'struct _virSchedParameter' directly rather
      than the preferred virSchedParameter typedef.  Adding a #define
      avoids even that API change, while rearranging the file makes it
      clear what the old vs. new API is.
      
      * include/libvirt/libvirt.h.in: Rearrange older names to the
      bottom and improve documentation on preferred names.
      (virDomainGetSchedulerParameters, virDomainSetSchedulerParameters)
      (virDomainSetSchedulerParametersFlags)
      (virDomainSetBlkioParameters, virDomainGetBlkioParameters)
      (virDomainSetMemoryParameters, virDomainGetMemoryParameters):
      Use newer type names.
      * python/libvirt-override.c: Adjust code generation to cope.
      Suggested by Daniel P. Berrange.
      a9b3a78f
    • D
      Fix a make check error · a9a95cb1
      Daniel Veillard 提交于
      Apparently introdunced in commit 376e1d94
      the generator produces u_int flags not unsigned int flags.
      
      * src/remote_protocol-structs: fix to the actual expected type and
        alignment
      a9a95cb1
    • R
      Fix virExecWithHook Prototype · 4996c314
      Richard Laager 提交于
      This was necessary to get libvirt to build on Solaris 11 Express and
      seems correct (as it makes this match the definition in util.c):
      4996c314
  2. 28 5月, 2011 9 次提交
  3. 27 5月, 2011 14 次提交
    • M
      openvz: Fix regression in openvzGetVPSUUID · 89fcf6f3
      Matthias Bolte 提交于
      Commit f0443765 replaced openvz_readline with getline and
      changed EOF-handling in the openvzGetVPSUUID.
      
      This patch restores original EOF-handling.
      
      Reported by Jean-Baptiste Rouault.
      89fcf6f3
    • M
      Add sexpr.c to the list of file with translatable messages · 971267c6
      Matthias Bolte 提交于
      This should have been in the last commit.
      971267c6
    • M
      sexpr: Improve serialization error reporting · bf9aa214
      Matthias Bolte 提交于
      bf9aa214
    • M
      Fix build with --with-driver-modules enabled · a07d1784
      Matthias Bolte 提交于
      Export a bunch of missing symbols and link the remote driver to gnulib.
      a07d1784
    • H
      qemu: implement the new flags for setting memory parameters · 4b997daa
      Hu Tao 提交于
      * src/qemu/qemu_driver.c: update qemuDomainSetMemoryParameters to
        look at the flag parameter and depending on it save the config
        or the live amount
      4b997daa
    • H
      qemu: implement the new flags for getting memory parameters · 7639d1ef
      Hu Tao 提交于
      * src/qemu/qemu_driver.c: update qemuDomainGetMemoryParameters to
        look at the flag parameter and depending on it read the config
        or the live amount
      7639d1ef
    • H
      Add new flags for setting memory parameters · 118eac37
      Hu Tao 提交于
      The new flags allow to pick current state, config or the live
      parameter, with current being the existing API default (0).
      This also hooks this to --config, --live, --current parameters for
      the memtune virsh command
      
      * include/libvirt/libvirt.h.in: defines the new flags
      * tools/virsh.c: adds support at virsh level
      * tools/virsh.pod: updates virsh documentation
      118eac37
    • K
      qemu : support persistent add/delete network interface · 9c26d6f0
      KAMEZAWA Hiroyuki 提交于
      This patch allows to modify interfaces of domain(qemu)
      * src/conf/domain_conf.c src/conf/domain_conf.h src/libvirt_private.syms:
        (virDomainNetInsert)     : Insert a network device to domain definition.
        (virDomainNetIndexByMac) : Returns an index of net device in array.
        (virDomainNetRemoveByMac): Remove a NIC of passed MAC address.
      * src/qemu/qemu_driver.c
        (qemuDomainAttachDeviceConfig): add codes for NIC.
        (qemuDomainDetachDeviceConfig): add codes for NIC.
      9c26d6f0
    • M
      esx: Fix regression in absolute file name handling · 8357d91b
      Matthias Bolte 提交于
      Before commit 145d6cb0 (in August 2010) absolute file names
      in VMX and domain XML configs were handled correctly. But this got
      lost during the refactoring. The test cases didn't highlight this
      problem because they have their own set of file name handling
      functions. The actual ones require a real connection to an ESX
      server. Also the test case functions always worked correctly.
      
      Fix the regression and add a new in-the-wild VMX file that contains
      such a problematic absolute path. Even though this test case won't
      protect against new regressions.
      
      Reported by lofic (IRC nick)
      8357d91b
    • M
      openvz: Add simple testcase for config file parsing function · 4a3a0290
      Matthias Bolte 提交于
      This testcase passes before the regression is added in f0443765, fails
      after that commit and passes again after the regression was fixed.
      4a3a0290
    • H
      don't check flags in virDomainSetSchedulerParametersFlags · 83ea7c1b
      Hu Tao 提交于
      drivers implementing domainSetSchedulerParametersFlags should check
      flags themselves.
      83ea7c1b
    • T
      openvz: Fix regression in config file parsing · 3aab7f2d
      Taisuke Yamada 提交于
      As reported by Diego Blanco in
      
        https://bugzilla.redhat.com/show_bug.cgi?id=702602
      
      commit f0443765 which replaced openvz_readline to getline(3)
      broke OpenVZ driver as it changed semantics of EOF-handling
      when parsing OpenVZ configuration.
      
      There're several other issues reported with current OpenVZ driver:
      
       #1: unclear error message when parsing "CPUS=" line
       #2: openvz driver goes into crashing loop
       #3: "NETIF=" line in configuration is not parsed correctly
       #4: aborts even when optional parameter is missing
       #5: there's a potential memory leak
      
      This updated patch to fix #[145]. This patch does not fix #[23]
      as I haven't verified these yet, but this at least got me to run
      OpenVZ on libvirt once again.
      3aab7f2d
    • E
      audit: fix minor off-by-one · 59953c38
      Eric Blake 提交于
      Coverity spotted this off-by-one.  Thankfully, no one in libvirt
      was ever calling virAuditSend with an argument of 3.
      
      * src/util/virtaudit.c (virAuditSend): Use correct comparison.
      59953c38
    • F
      qemu: allow blkstat/blkinfo calls during migration · 18c2a592
      Federico Simoncelli 提交于
      Originally most of libvirt domain-specific calls were blocking
      during a migration.
      A new mechanism to allow specific calls (blkstat/blkinfo) to be
      executed in such condition has been implemented.
      In the long term it'd be desirable to get a more general
      solution to mark further APIs as migration safe, without needing
      special case code.
      
       * src/qemu/qemu_migration.c: add some additional job signal
         flags for doing blkstat/blkinfo during a migration
       * src/qemu/qemu_domain.c: add a condition variable that can be
         used to efficiently wait for the migration code to clear the
         signal flag
       * src/qemu/qemu_driver.c: execute blkstat/blkinfo using the
         job signal flags during migration
      18c2a592
  4. 26 5月, 2011 9 次提交
    • M
      Add disk attach/detach support to libxl driver · fffea7fe
      Markus Groß 提交于
      Based on the device attach/detach code from the QEMU driver,
      but using the new functions to create the structures associated.
      * src/libxl/libxl_driver.c: implements domainAttachDevice,
        domainAttachDeviceFlags, domainDetachDevice, domainDetachDeviceFlags
        and domainUpdateDeviceFlags
      fffea7fe
    • M
      Fix libxl vm def handling on domU cleanup · 685753a3
      Markus Groß 提交于
      * src/libxl/libxl_driver.c: in libxlVmCleanup, free up the
        newDef definition if present overwise it would be leaked.
      685753a3
    • M
      Refactored libxl datastructure instantiation · f59b71ac
      Markus Groß 提交于
      Create 3 new function refactored from previous list ones and
      exports them internally to the driver
      
      * src/libxl/libxl_conf.c src/libxl/libxl_conf.h: create libxlMakeDisk,
        libxlMakeNic libxlMakeVfb out of the exsting static List functions
        and exports them
      f59b71ac
    • M
      Fix modifying disk devices in qemu driver · 23e5393c
      Markus Groß 提交于
      When modifying the disk devices of a live domain and the domain
      configuration, the function qemuDomainAttachDeviceConfig
      first sets dev->data->disk to NULL. Later qemuDomainAttachDeviceLive
      accesses dev->data.disk and causes a segfault.
      * src/qemu/qemu_driver.c: fix qemuDomainModifyDeviceFlags() accordingly
      23e5393c
    • M
      schema: Add graphics element passwdValidTo attribute to schema · b468f504
      Michal Privoznik 提交于
      We support this in code, but forgot to add this to RNG schema as well.
      According to documentation, the value match the dateTime type.
      b468f504
    • E
      build: fix 'make dist' for ./configure --without-remote · b3e6e450
      Eric Blake 提交于
      Anything generated that must end up in the tarball must either
      have unconditional rules for generation (remote_protocol.c) or
      must live in libvirt.git for the case where the person running
      'make dist' has disabled the configure options that control the
      rebuild of the generated file (remote_protocol-structs).
      
      * src/Makefile.am (remote_protocol-structs): Add a dependency and
      document why it must live in git.
      ($(srcdir)/remote/%_protocol.c, $(srcdir)/remote/%_protocol.c):
      Unconditionally generate.
      b3e6e450
    • R
      json: Avoid passing large positive 64 bit integers to QMP. · 78eb8b60
      Richard W.M. Jones 提交于
      http://lists.gnu.org/archive/html/qemu-devel/2011-05/threads.html#02162
      
      Currently, qemu silently clips any JSON integer in the range
      0x8000000000000000 - 0xffffffffffffffff (all numbers in this range
      will be clipped to 0x7fffffffffffffff == LLONG_MAX).
      
      To avoid this, pass these as signed 64 bit integers in the QMP
      request.
      78eb8b60
    • M
      Fix sign mismatches between public API, driver API and XDR protocol · 1ff2b6f6
      Matthias Bolte 提交于
      In most cases this affects flags parameters that are unsigned in the
      public and driver API but signed in the XDR protocol. Switch the
      XDR protocol to unsigned for those.
      
      A counterexample is virNWFilterGetXMLDesc. Its flags parameter is signed
      in the public API and XDR protocol, but unsigned in the driver API.
      1ff2b6f6
    • M
      remote generator: Fix XDR sign mismatch for virNodeGet(Cells)FreeMemory · 30e9b1a1
      Matthias Bolte 提交于
      virNodeGetFreeMemory used unsigned long long in the public API but
      signed hyper in the XDR protocol. Convert the XDR protocol to use
      unsigned hyper.
      
      As explained by Eric before, this doesn't affect the on-the-wire protocol.
      30e9b1a1