1. 05 9月, 2011 1 次提交
    • E
      snapshot: introduce new deletion flag · 3d77d0a6
      Eric Blake 提交于
      Reverting to a state prior to an external snapshot risks
      corrupting any other branches in the snapshot hierarchy that
      were using the snapshot as a read-only backing file.  So
      disk snapshot code will default to preventing reverting to
      a snapshot that has any children, meaning that deleting just
      the children of a snapshot becomes a useful operation in
      preparing that snapshot for being a future reversion target.
      The code for the new flag is simple - it's one less deletion,
      plus a tweak to keep the current snapshot correct.
      
      * include/libvirt/libvirt.h.in
      (VIR_DOMAIN_SNAPSHOT_DELETE_CHILDREN_ONLY): New flag.
      * src/libvirt.c (virDomainSnapshotDelete): Document it, and
      enforce mutual exclusion.
      * src/qemu/qemu_driver.c (qemuDomainSnapshotDelete): Implement
      it.
      3d77d0a6
  2. 03 9月, 2011 6 次提交
    • E
      snapshot: allow full domain xml in snapshot · f609cb85
      Eric Blake 提交于
      Just like VM saved state images (virsh save), snapshots MUST
      track the inactive domain xml to detect any ABI incompatibilities.
      
      The indentation is not perfect, but functionality comes before form.
      
      Later patches will actually supply a full domain; for now, this
      wires up the storage to support one, but doesn't ever generate one
      in dumpxml output.
      
      Happily, libvirt.c was already rejecting use of VIR_DOMAIN_XML_SECURE
      from read-only connections, even though before this patch, there was
      no information to be secured by the use of that flag.
      
      And while we're at it, mark the libvirt snapshot metadata files
      as internal-use only.
      
      * src/libvirt.c (virDomainSnapshotGetXMLDesc): Document flag.
      * src/conf/domain_conf.h (_virDomainSnapshotDef): Add member.
      (virDomainSnapshotDefParseString, virDomainSnapshotDefFormat):
      Update signature.
      * src/conf/domain_conf.c (virDomainSnapshotDefFree): Clean up.
      (virDomainSnapshotDefParseString): Optionally parse domain.
      (virDomainSnapshotDefFormat): Output full domain.
      * src/esx/esx_driver.c (esxDomainSnapshotCreateXML)
      (esxDomainSnapshotGetXMLDesc): Update callers.
      * src/vbox/vbox_tmpl.c (vboxDomainSnapshotCreateXML)
      (vboxDomainSnapshotGetXMLDesc): Likewise.
      * src/qemu/qemu_driver.c (qemuDomainSnapshotCreateXML)
      (qemuDomainSnapshotLoad, qemuDomainSnapshotGetXMLDesc)
      (qemuDomainSnapshotWriteMetadata): Likewise.
      * docs/formatsnapshot.html.in: Rework doc example.
      Based on a patch by Philipp Hahn.
      f609cb85
    • E
      snapshot: prevent stranding snapshot data on domain destruction · 282fe1f0
      Eric Blake 提交于
      Just as leaving managed save metadata behind can cause problems
      when creating a new domain that happens to collide with the name
      of the just-deleted domain, the same is true of leaving any
      snapshot metadata behind.  For safety sake, extend the semantic
      change of commit b26a9fa9 to also cover snapshot metadata as a
      reason to reject undefining an inactive domain.  A future patch
      will make sure that shutdown of a transient domain automatically
      deletes snapshot metadata (whether by destroy, shutdown, or
      guest-initiated action).  Management apps of transient domains
      should take care to capture xml of snapshots, if it is necessary
      to recreate the snapshot metadata on a later transient domain
      with the same name and uuid.
      
      This also documents a new flag that hypervisors can choose to
      support as a shortcut for taking care of the metadata as part of
      the undefine process; however, nontrivial driver support for these
      flags will be deferred to future patches.
      
      Note that ESX and VBox can never be transient; therefore, they
      do not have to worry about automatic cleanup after shutdown
      (the persistent domain still remains); likewise they never
      store snapshot metadata, so the undefine flag is trivial.
      The nontrivial work remaining is thus in the qemu driver.
      
      * include/libvirt/libvirt.h.in
      (VIR_DOMAIN_UNDEFINE_SNAPSHOTS_METADATA): New flag.
      * src/libvirt.c (virDomainUndefine, virDomainUndefineFlags):
      Document new limitations and flag.
      * src/esx/esx_driver.c (esxDomainUndefineFlags): Trivial
      implementation.
      * src/vbox/vbox_tmpl.c (vboxDomainUndefineFlags): Likewise.
      * src/qemu/qemu_driver.c (qemuDomainUndefineFlags): Enforce
      the limitations.
      282fe1f0
    • E
      snapshot: allow recreation of metadata · af65695a
      Eric Blake 提交于
      The first two flags are essential for being able to replicate
      snapshot hierarchies across multiple hosts, which will come in
      handy for supervised migrations.  It also allows a management app
      to take a snapshot of a transient domain, save the metadata, stop
      the domain, recreate a new transient domain by the same name,
      redefine the snapshot, then revert to it.
      
      This is not quite as convenient as leaving the metadata behind
      after a domain is no longer around, but doing that has a few
      problems: 1. the libvirt API can only delete snapshot metadata
      if there is a valid domain handle to use to get to that snapshot
      object - if stale data is left behind without a domain, there is
      no way to request that the data be cleaned up. 2. creating a new
      domain with the same name but different uuid than the older
      domain where a snapshot existed cannot use the older snapshot
      data; this risks confusing libvirt, and forbidding the stale
      data is similar to the recent patch to forbid stale managed save.
      
      The first two flags might be useful on hypervisors with no metadata,
      but only for modifying the notion of the current snapshot;
      however, I don't know how to do that for ESX or VBox.
      
      The third flag is a convenience option, to combine a creation with
      a delete metadata into one step.  It is trivial for hypervisors
      with no metadata.
      
      The qemu changes will be involved enough to warrant a separate patch.
      
      * include/libvirt/libvirt.h.in
      (VIR_DOMAIN_SNAPSHOT_CREATE_REDEFINE)
      (VIR_DOMAIN_SNAPSHOT_CREATE_CURRENT)
      (VIR_DOMAIN_SNAPSHOT_CREATE_NO_METADATA): New flags.
      * src/libvirt.c (virDomainSnapshotCreateXML): Document them, and
      enforce mutual exclusion.
      * src/esx/esx_driver.c (esxDomainSnapshotCreateXML): Trivial
      implementation.
      * src/vbox/vbox_tmpl.c (vboxDomainSnapshotCreateXML): Likewise.
      * docs/formatsnapshot.html.in: Document re-creation.
      af65695a
    • E
      snapshot: identify which snapshots have metadata · 9f5e53e2
      Eric Blake 提交于
      To make it easier to know when undefine will fail because of existing
      snapshot metadata, we need to know how many snapshots have metadata.
      
      Also, it is handy to filter the list of snapshots to just those that
      have no parents; document that flag now, but implement it in later patches.
      
      * include/libvirt/libvirt.h.in (VIR_DOMAIN_SNAPSHOT_LIST_ROOTS)
      (VIR_DOMAIN_SNAPSHOT_LIST_METADATA): New flags.
      * src/libvirt.c (virDomainSnapshotNum)
      (virDomainSnapshotListNames): Document them.
      * src/esx/esx_driver.c (esxDomainSnapshotNum)
      (esxDomainSnapshotListNames): Implement trivial flag.
      * src/vbox/vbox_tmpl.c (vboxDomainSnapshotNum)
      (vboxDomainSnapshotListNames): Likewise.
      * src/qemu/qemu_driver.c (qemuDomainSnapshotNum)
      (qemuDomainSnapshotListNames): Likewise.
      9f5e53e2
    • E
      snapshot: allow deletion of just snapshot metadata · 795fe9b2
      Eric Blake 提交于
      A future patch will make it impossible to remove a domain if it
      would leave behind any libvirt-tracked metadata about snapshots,
      since stale metadata interferes with a new domain by the same name.
      But requiring snaphot contents to be deleted before removing a
      domain is harsh; with qemu, qemu-img can still make use of the
      contents after the libvirt domain is gone.  Therefore, we need
      an option to get rid of libvirt tracking information, but not
      the actual contents.  For hypervisors that do not track any
      metadata in libvirt, the implementation is trivial; all remaining
      hypervisors (really, just qemu) will be dealt with separately.
      
      * include/libvirt/libvirt.h.in
      (VIR_DOMAIN_SNAPSHOT_DELETE_METADATA_ONLY): New flag.
      * src/libvirt.c (virDomainSnapshotDelete): Document it.
      * src/esx/esx_driver.c (esxDomainSnapshotDelete): Trivially
      supported when there is no libvirt metadata.
      * src/vbox/vbox_tmpl.c (vboxDomainSnapshotDelete): Likewise.
      795fe9b2
    • E
      snapshot: fine-tune ability to start paused · 3cff66f4
      Eric Blake 提交于
      While it is nice that snapshots and saved images remember whether
      the domain was running or paused, sometimes the restoration phase
      wants to guarantee a particular state (paused to allow hot-plugging,
      or running without needing to call resume).  This introduces new
      flags to allow the control, and a later patch will implement the
      flags for qemu.
      
      * include/libvirt/libvirt.h.in (VIR_DOMAIN_SAVE_RUNNING)
      (VIR_DOMAIN_SAVE_PAUSED, VIR_DOMAIN_SNAPSHOT_REVERT_RUNNING)
      (VIR_DOMAIN_SNAPSHOT_REVERT_PAUSED): New flags.
      * src/libvirt.c (virDomainSaveFlags, virDomainRestoreFlags)
      (virDomainManagedSave, virDomainSaveImageDefineXML)
      (virDomainRevertToSnapshot): Document their use, and enforce
      mutual exclusion.
      3cff66f4
  3. 02 9月, 2011 3 次提交
    • O
      storage: Add fs pool formatting · 27758859
      Osier Yang 提交于
      This patch adds the ability to make the filesystem for a filesystem
      pool during a pool build.
      
      The patch adds two new flags, no overwrite and overwrite, to control
      when mkfs gets executed.  By default, the patch preserves the
      current behavior, i.e., if no flags are specified, pool build on a
      filesystem pool only makes the directory on which the filesystem
      will be mounted.
      
      If the no overwrite flag is specified, the target device is checked
      to determine if a filesystem of the type specified in the pool is
      present.  If a filesystem of that type is already present, mkfs is
      not executed and the build call returns an error.  Otherwise, mkfs
      is executed and any data present on the device is overwritten.
      
      If the overwrite flag is specified, mkfs is always executed, and any
      existing data on the target device is overwritten unconditionally.
      27758859
    • O
      API: Init conn in case of it might be used uninitialized · 50c82157
      Osier Yang 提交于
      There is a goto before "conn" is initialized.
      50c82157
    • J
      Add public API for getting migration speed · b12354be
      Jim Fehlig 提交于
      Includes impl of python binding since the generator was not
      able to cope.
      
      Note: Requires gendispatch.pl patch from Matthias Bolte
      
      https://www.redhat.com/archives/libvir-list/2011-August/msg01367.html
      b12354be
  4. 31 8月, 2011 1 次提交
    • E
      snapshot: forbid snapshot on autodestroy domain · 173015be
      Eric Blake 提交于
      There is no reason to forbid pausing an autodestroy domain
      (not to mention that 'virsh start --paused --autodestroy'
      succeeds in creating a paused autodestroy domain).
      
      Meanwhile, qemu was failing to enforce the API documentation that
      autodestroy domains cannot be saved.  And while the original
      documentation only mentioned save/restore, snapshots are another
      form of saving that are close enough in semantics as to make no
      sense on one-shot domains.
      
      * src/qemu/qemu_driver.c (qemudDomainSuspend): Drop bogus check.
      (qemuDomainSaveInternal, qemuDomainSnapshotCreateXML): Forbid
      saves of autodestroy domains.
      * src/libvirt.c (virDomainCreateWithFlags, virDomainCreateXML):
      Document snapshot interaction.
      173015be
  5. 30 8月, 2011 1 次提交
    • E
      start: allow discarding managed save · 27c85260
      Eric Blake 提交于
      There have been several instances of people having problems with
      a broken managed save file, and not aware that they could use
      'virsh managedsave-remove dom' to fix things.  Making it possible
      to do this as part of starting a domain makes the same functionality
      easier to find, and one less API call.
      
      * include/libvirt/libvirt.h.in (VIR_DOMAIN_START_FORCE_BOOT): New
      flag.
      * src/libvirt.c (virDomainCreateWithFlags): Document it.
      * src/qemu/qemu_driver.c (qemuDomainObjStart): Alter signature.
      (qemuAutostartDomain, qemuDomainStartWithFlags): Update callers.
      * tools/virsh.c (cmdStart): Expose it in virsh.
      * tools/virsh.pod (start): Document it.
      27c85260
  6. 27 8月, 2011 1 次提交
  7. 26 8月, 2011 4 次提交
    • M
      hyperv: Add driver skeleton · 4d6e6f4a
      Matthias Bolte 提交于
      4d6e6f4a
    • J
      Ignore unused streams in virStreamAbort · b136266d
      Jiri Denemark 提交于
      When virStreamAbort is called on a stream that has not been used yet,
      quite confusing error is returned: "this function is not supported by
      the connection driver". Let's just ignore such streams as there's
      nothing to abort anyway.
      b136266d
    • J
      Do not try to cancel non-existent migration on source · 3398eeda
      Jiri Denemark 提交于
      If migration failed on source daemon, the migration is automatically
      canceled by the daemon itself. Thus we don't need to call
      virDomainMigrateConfirm3(cancelled=1). Calling it doesn't cause any harm
      but the resulting error message printed in logs may confuse people.
      3398eeda
    • A
      libvirt: avoid dead store in virDomainMigrateVersion3 · 5495e45e
      Alex Jia 提交于
      * src/qemu/qemu_migration.c: avoid dead 'ret' assignment and silence
        clang warning.
      
      Detected by ccc-analyzer:
      
      libvirt.c:4277:5: warning: Value stored to 'ret' is never read
          ret = domain->conn->driver->domainMigrateConfirm3
          ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      5495e45e
  8. 25 8月, 2011 1 次提交
  9. 24 8月, 2011 1 次提交
    • E
      libvirt: log all flags parameters · ba0c2199
      Eric Blake 提交于
      I was testing a virsh patch, and wanted to see if I had passed the
      flags I thought.  But with LIBVIRT_DEBUG in the environment, I just
      saw:
      
      14:24:52.359: 15022: debug : virDomainSnapshotNum:15586 : dom=0xc9c180, (VM: name=rhel_6-64, uuid=48f8e8e7-e14f-0e14-02f0-ce71997bdcab),
      
      including a trailing space.  This fixes the issues.
      
      * src/libvirt.c: Log flag parameters, even if currently unused.
      (VIR_DOMAIN_DEBUG_0): Drop trailing comma in log.
      (VIR_DOMAIN_DEBUG_1): Split guts into...
      (VIR_DOMAIN_DEBUG_2): ...new macro.
      ba0c2199
  10. 11 8月, 2011 1 次提交
    • E
      managedsave: prohibit use on transient domains · 0de75e85
      Eric Blake 提交于
      Transient domains reject attempts to set autostart, and using
      virDomainCreate to restart a domain only works on persistent
      domains.  Therefore, managed save makes no sense on transient
      domains, and should be rejected up front rather than creating
      an otherwise unrecoverable managed save file.
      
      Besides, transient domains imply that a lot more management is
      being done by the upper layer; this includes the assumption
      that the upper layer is okay managing the saved state file
      created by virDomainSave, and does not need to use managed save.
      
      * src/libvirt.c: Document that transient domains are incompatible
      with managed save.
      * src/qemu/qemu_driver.c (qemuDomainManagedSave): Enforce it.
      * src/libxl/libxl_driver.c (libxlDomainManagedSave): Likewise.
      0de75e85
  11. 03 8月, 2011 1 次提交
  12. 28 7月, 2011 2 次提交
    • M
      libvirt.c: Update outdated description of flags · 867e7519
      Michal Privoznik 提交于
      Because we do support flags for virDomainSetBlkioParameters and
      virDomainGetBlkioParameters, update appropriate description as well.
      867e7519
    • A
      virsh: fix memory leak in cmdVolPath code · 1768bf63
      Alex Jia 提交于
      * tools/virsh.c: avoid memory leak in cmdVolPath.
      * src/libvirt.c: Add doc for virStorageVolGetPath to tell one
        must free() the returned path after use.
      
      * how to reproduce?
      
      % dd if=/dev/zero of=/var/lib/libvirt/images/foo.img count=1 bs=10M
      % virsh pool-refresh default
      % valgrind -v --leak-check=full virsh vol-path --vol \
      /var/lib/libvirt/images/foo.img
      
      * actual results:
      
      Detected in valgrind run:
      
      ==16436== 32 bytes in 1 blocks are definitely lost in loss record 7 of 22
      ==16436==    at 0x4A05FDE: malloc (vg_replace_malloc.c:236)
      ==16436==    by 0x386A314B3D: xdr_string (in /lib64/libc-2.12.so)
      ==16436==    by 0x3DF8CD770D: xdr_remote_nonnull_string (remote_protocol.c:3
      ==16436==    by 0x3DF8CD7EC8: xdr_remote_storage_vol_get_path_ret
      % virsh pool-refresh default
      % valgrind -v --leak-check=full virsh vol-path --vol \
      /var/lib/libvirt/images/foo.img
      Signed-off-by: NAlex Jia <ajia@redhat.com>
      1768bf63
  13. 27 7月, 2011 1 次提交
    • J
      qemu: Migration job on source daemon · d58e91a8
      Jiri Denemark 提交于
      Make MIGRATION_OUT use the new helper methods.
      
      This also introduces new protection to migration v3 process: the
      migration job is held from Begin to Confirm to avoid changes to a domain
      during migration (esp. between Begin and Perform phases). This change is
      automatically applied to p2p and tunneled migrations. For normal
      migration, this requires support from a client. In other words, if an
      old (pre 0.9.4) client starts normal migration of a domain, the domain
      will not be protected against changes between Begin and Perform steps.
      d58e91a8
  14. 26 7月, 2011 1 次提交
    • E
      vcpu: teach getVcpusFlags about current · 59d04287
      Eric Blake 提交于
      Now that virDomainSetVcpusFlags knows about VIR_DOMAIN_AFFECT_CURRENT,
      so should virDomainGetVcpusFlags.
      
      Unfortunately, the virsh counterpart 'virsh vcpucount' has already
      commandeered --current for a different meaning, so teaching virsh
      to expose this in the next patch will require a bit of care.
      
      * src/libvirt.c (virDomainGetVcpusFlags): Allow
      VIR_DOMAIN_AFFECT_CURRENT.
      * src/libxl/libxl_driver.c (libxlDomainGetVcpusFlags): Likewise.
      * src/qemu/qemu_driver.c (qemudDomainGetVcpusFlags): Likewise.
      * src/test/test_driver.c (testDomainGetVcpusFlags): Likewise.
      * src/xen/xen_driver.c (xenUnifiedDomainGetVcpusFlags): Likewise.
      59d04287
  15. 22 7月, 2011 4 次提交
    • A
      virDomainBlockPull: Implement the main entry points · 72082a05
      Adam Litke 提交于
      * src/libvirt.c: implement the main entry points
      72082a05
    • E
      save: new API to manipulate save file images · d2a929d4
      Eric Blake 提交于
      Modifying the xml on either save or restore only gets you so
      far - you have to remember to 'virsh dumpxml dom' just prior
      to the 'virsh save' in order to have an xml file worth modifying
      that won't be rejected due to abi breaks.  To make this more
      powerful, we need a way to grab the xml embedded within a state
      file, and from there, it's not much harder to also support
      modifying a state file in-place.
      
      Also, virDomainGetXMLDesc didn't document its flags.
      
      * include/libvirt/libvirt.h.in (virDomainSaveImageGetXMLDesc)
      (virDomainSaveImageDefineXML): New prototypes.
      * src/libvirt.c (virDomainSaveImageGetXMLDesc)
      (virDomainSaveImageDefineXML): New API.
      * src/libvirt_public.syms: Export them.
      * src/driver.h (virDrvDomainSaveImageGetXMLDesc)
      (virDrvDomainSaveImgeDefineXML): New driver callbacks.
      d2a929d4
    • M
      destroy: Define new public API virDomainDestroyFlags · 080bc4ea
      Michal Privoznik 提交于
      This introduces new API virDomainDestroyFlags to allow
      domain destroying with flags, as the existing API virDomainDestroy
      misses flags.
      
      The set of flags is defined in virDomainDestroyFlagsValues enum,
      which is currently commented, because it is empty.
      
      Calling this API with no flags set (@flags == 0) is equivalent calling
      virDomainDestroy.
      080bc4ea
    • E
      save: new public API to bypass file system cache on save/restore · ad0b9123
      Eric Blake 提交于
      In order to choose whether to use O_DIRECT when saving a domain image
      to a file, we need a new flag.  But virDomainSave was implemented
      before our policy of all new APIs having a flag argument.  Likewise
      for virDomainRestore when restoring from a file.
      
      The new flag name is chosen as CACHE_BYPASS so as not to preclude
      a future solution that uses posix_fadvise once the Linux kernel has
      a smarter implementation of that interface.
      
      * include/libvirt/libvirt.h.in (virDomainCreateFlags)
      (virDomainCoreDumpFlags): Add a flag.
      (virDomainSaveFlags, virDomainRestoreFlags): New prototypes.
      * src/libvirt.c (virDomainSaveFlags, virDomainRestoreFlags): New API.
      * src/libvirt_public.syms: Export them.
      * src/driver.h (virDrvDomainSaveFlags, virDrvDomainRestoreFlags):
      New driver callbacks.
      ad0b9123
  16. 21 7月, 2011 1 次提交
    • E
      maint: fix typos on guaranteed · a7143405
      Eric Blake 提交于
      * src/conf/domain_event.c (virDomainEventDispatch): Fix typo.
      * src/internal.h (ATTRIBUTE_FMT_PRINTF): Likewise.
      * src/libvirt.c (virStreamEventUpdateCallback): Likewise.
      * src/remote/remote_driver.c (doRemoteOpen): Likewise.
      * src/storage/storage_backend_fs.c (virStorageBackendProbeTarget):
      Likewise.
      * src/util/virterror.c (virConnCopyLastError, virCopyLastError):
      Likewise.
      * src/xen/xend_internal.h (xend_wait_for_devices): Likewise.
      a7143405
  17. 20 7月, 2011 1 次提交
    • O
      undefine: Define the new API · b26a9fa9
      Osier Yang 提交于
      This introduces a new API virDomainUndefineFlags to control the
      domain undefine process, as the existing API virDomainUndefine
      doesn't support flags.
      
      Currently only flag VIR_DOMAIN_UNDEFINE_MANAGED_SAVE is supported.
      If the domain has a managed save image, including
      VIR_DOMAIN_UNDEFINE_MANAGED_SAVE in @flags will also remove that
      file, and omitting the flag will cause undefine process to fail.
      
      This patch also changes the behavior of virDomainUndefine, if the
      domain has a managed save image, the undefine will be refused.
      b26a9fa9
  18. 19 7月, 2011 1 次提交
    • E
      libvirt: do not mix internal flags into public API · 33ba6e68
      Eric Blake 提交于
      There were two API in driver.c that were silently masking flags
      bits prior to calling out to the drivers, and several others
      that were explicitly masking flags bits.  This is not
      forward-compatible - if we ever have that many flags in the
      future, then talking to an old server that masks out the
      flags would be indistinguishable from talking to a new server
      that can honor the flag.  In general, libvirt.c should forward
      _all_ flags on to drivers, and only the drivers should reject
      unknown flags.
      
      In the case of virDrvSecretGetValue, the solution is to separate
      the internal driver callback function to have two parameters
      instead of one, with only one parameter affected by the public
      API.  In the case of virDomainGetXMLDesc, it turns out that
      no one was ever mixing VIR_DOMAIN_XML_INTERNAL_STATUS with
      the dumpxml path in the first place; that internal flag was
      only used in saving and restoring state files, which happened
      to be in functions internal to a single file, so there is no
      mixing of the internal flag with a public flags argument.
      Additionally, virDomainMemoryStats passed a flags argument
      over RPC, but not to the driver.
      
      * src/driver.h (VIR_DOMAIN_XML_FLAGS_MASK)
      (VIR_SECRET_GET_VALUE_FLAGS_MASK): Delete.
      (virDrvSecretGetValue): Separate out internal flags.
      (virDrvDomainMemoryStats): Provide missing flags argument.
      * src/driver.c (verify): Drop unused check.
      * src/conf/domain_conf.h (virDomainObjParseFile): Delete
      declaration.
      (virDomainXMLInternalFlags): Move...
      * src/conf/domain_conf.c: ...here.  Delete redundant include.
      (virDomainObjParseFile): Make static.
      * src/libvirt.c (virDomainGetXMLDesc, virSecretGetValue): Update
      clients.
      (virDomainMemoryPeek, virInterfaceGetXMLDesc)
      (virDomainMemoryStats, virDomainBlockPeek, virNetworkGetXMLDesc)
      (virStoragePoolGetXMLDesc, virStorageVolGetXMLDesc)
      (virNodeNumOfDevices, virNodeListDevices, virNWFilterGetXMLDesc):
      Don't mask unknown flags.
      * src/interface/netcf_driver.c (interfaceGetXMLDesc): Reject
      unknown flags.
      * src/secret/secret_driver.c (secretGetValue): Update clients.
      * src/remote/remote_driver.c (remoteSecretGetValue)
      (remoteDomainMemoryStats): Likewise.
      * src/qemu/qemu_process.c (qemuProcessGetVolumeQcowPassphrase):
      Likewise.
      * src/qemu/qemu_driver.c (qemudDomainMemoryStats): Likewise.
      * daemon/remote.c (remoteDispatchDomainMemoryStats): Likewise.
      33ba6e68
  19. 16 7月, 2011 1 次提交
  20. 15 7月, 2011 1 次提交
  21. 08 7月, 2011 2 次提交
    • E
      public API: prefer unsigned int for flags · 18d561c7
      Eric Blake 提交于
      Most APIs use 'unsigned int flags'; but a few stragglers were using
      a signed value.  In particular, the vir*GetXMLDesc APIs were
      split-brain, with inconsistent choice of types.  Although it is
      an API break to use 'int' instead of 'unsigned int', it is ABI
      compatible (pre-compiled apps will have no difference in behavior),
      and generally apps can be recompiled without any issue (only rare
      apps that compiled with extremely high warning levels, or which
      pass libvirt API around as typed function pointers, would have to
      make any code changes to deal with the change).
      
      The migrate APIs use 'unsigned long flags', which can't be changed,
      due to ABI constraints.
      
      This patch intentionally touches only the public API, to prove the
      claim that most existing code (including driver callbacks and virsh)
      still compiles just fine in spite of the type change.
      
      * include/libvirt/libvirt.h.in (virConnectOpenAuth)
      (virDomainCoreDump, virDomainGetXMLDesc, virNetworkGetXMLDesc)
      (virNWFilterGetXMLDesc): Use unsigned int for flags.
      (virDomainHasCurrentSnapshot): Use consistent spelling.
      * src/libvirt.c (virConnectOpenAuth, virDomainCoreDump)
      (virDomainGetXMLDesc, virNetworkGetXMLDesc)
      (virNWFilterGetXMLDesc, do_open): Update accordingly.
      18d561c7
    • E
      maint: print flags in hex during debug · 313ac7fd
      Eric Blake 提交于
      Debugging decimal flags is a pain.
      
      * src/libvirt.c: Always print flags in hex.
      313ac7fd
  22. 28 6月, 2011 1 次提交
  23. 27 6月, 2011 1 次提交
    • E
      build: rename Vcpupin to VcpuPin · 28e45afc
      Eric Blake 提交于
      We already have a public virDomainPinVcpu, which implies that
      Pin and Vcpu are treated as separate words.  Unreleased commit
      e261987c introduced virDomainGetVcpupinInfo as the first public
      API that used Vcpupin, although we had prior internal uses of
      that spelling.  For consistency, change the spelling to be two
      words everywhere, regardless of whether pin comes first or last.
      
      * daemon/remote.c: Treat vcpu and pin as separate words.
      * include/libvirt/libvirt.h.in: Likewise.
      * src/conf/domain_conf.c: Likewise.
      * src/conf/domain_conf.h: Likewise.
      * src/driver.h: Likewise.
      * src/libvirt.c: Likewise.
      * src/libvirt_private.syms: Likewise.
      * src/libvirt_public.syms: Likewise.
      * src/libxl/libxl_driver.c: Likewise.
      * src/qemu/qemu_driver.c: Likewise.
      * src/remote/remote_driver.c: Likewise.
      * src/xen/xend_internal.c: Likewise.
      * tools/virsh.c: Likewise.
      * src/remote/remote_protocol.x: Likewise.
      * src/remote_protocol-structs: Likewise.
      Suggested by Matthias Bolte.
      28e45afc
  24. 25 6月, 2011 2 次提交
    • T
      vcpupin: introduce the new libvirt API (virDomainGetVcpupinInfo) · e261987c
      Taku Izumi 提交于
      This patch introduces a new libvirt API (virDomainGetVcpupinInfo),
      as a counterpart to virDomainPinVcpuFlags.
      
      We can use virDomainGetVcpus API to retrieve CPU affinity information,
      but can't use this API against inactive domains (at least in case of KVM),
      as it lacks a flags parameter.
      The usual thing is to add a new virDomainGetVcpusFlags, but that API name
      is already occupied by the counterpart to virDomainGetMaxVcpus, which
      has a completely different signature.
      
      The virDomainGetVcpupinInfo is the new API to retrieve CPU affinity
      information of active and inactive domains.  While the usual convention
      is to list an array before its length, this API violates that rule
      in order to be more like virDomainGetVcpus (where maxinfo was doing
      double-duty as the length of two different arrays).
      Signed-off-by: NTaku Izumi <izumi.taku@jp.fujitsu.com>
      e261987c
    • E
      remote: protect against integer overflow · 774b21c1
      Eric Blake 提交于
      Integer overflow and remote code are never a nice mix.
      
      This has existed since commit 56cd4140.
      
      * src/libvirt.c (virDomainGetVcpus): Reject overflow up front.
      * src/remote/remote_driver.c (remoteDomainGetVcpus): Avoid overflow
      on sending rpc.
      * daemon/remote.c (remoteDispatchDomainGetVcpus): Avoid overflow on
      receiving rpc.
      774b21c1