1. 16 7月, 2011 2 次提交
    • E
      flags: use common dumpxml flags check · 461e0f1a
      Eric Blake 提交于
      The previous patches only cleaned up ATTRIBUTE_UNUSED flags cases;
      auditing the drivers found other places where flags was being used
      but not validated.  In particular, domainGetXMLDesc had issues with
      clients accepting a different set of flags than the common
      virDomainDefFormat helper function.
      
      * src/conf/domain_conf.c (virDomainDefFormat): Add common flag check.
      * src/uml/uml_driver.c (umlDomainAttachDeviceFlags)
      (umlDomainDetachDeviceFlags): Reject unknown
      flags.
      * src/vbox/vbox_tmpl.c (vboxDomainGetXMLDesc)
      (vboxDomainAttachDeviceFlags)
      (vboxDomainDetachDeviceFlags): Likewise.
      * src/qemu/qemu_driver.c (qemudDomainMemoryPeek): Likewise.
      (qemuDomainGetXMLDesc): Document common flag handling.
      * src/libxl/libxl_driver.c (libxlDomainGetXMLDesc): Likewise.
      * src/lxc/lxc_driver.c (lxcDomainGetXMLDesc): Likewise.
      * src/openvz/openvz_driver.c (openvzDomainGetXMLDesc): Likewise.
      * src/phyp/phyp_driver.c (phypDomainGetXMLDesc): Likewise.
      * src/test/test_driver.c (testDomainGetXMLDesc): Likewise.
      * src/vmware/vmware_driver.c (vmwareDomainGetXMLDesc): Likewise.
      * src/xenapi/xenapi_driver.c (xenapiDomainGetXMLDesc): Likewise.
      461e0f1a
    • E
      maint: fix typos · 37754a74
      Eric Blake 提交于
      Our XML prefers "shareable" over "sharable".
      
      * docs/internals/locking.html.in: s/sharable/shareable/
      * src/locking/lock_driver_sanlock.c
      (virLockManagerSanlockAddResource): Likewise.
      37754a74
  2. 15 7月, 2011 10 次提交
    • D
      Fix error message for missing TLS write function · c8771867
      Daniel P. Berrange 提交于
      * src/rpc/virnettlscontext.c: s/read/write/
      c8771867
    • D
      Fix reporting of cert validation failures · f2845177
      Daniel P. Berrange 提交于
      If the server succesfully validates the client cert, it will send
      back a single byte, under TLS. If it fails, it will close the
      connection. In this case, we were just reporting the standard
      I/O error. The original RPC code had a special case hack for the
      GNUTLS_E_UNEXPECTED_PACKET_LENGTH error code to make us report
      a more useful error message
      
      * src/rpc/virnetclient.c: Return ENOMSG if we get
        GNUTLS_E_UNEXPECTED_PACKET_LENGTH
      * src/rpc/virnettlscontext.c: Report cert failure if we
        see ENOMSG
      f2845177
    • D
      Fix error code for storage operations · 618b5522
      Dave Allan 提交于
      Many volume operations will fail if the volume in question is being
      allocated.  These operations were returning VIR_ERR_INTERNAL_ERROR
      when they should be returning VIR_ERR_OPERATION_INVALID.
      618b5522
    • T
      setvcpus: extend qemuDomainSetVcpusFlags() to support current flag · c147b937
      Taku Izumi 提交于
      This patch extends qemudDomainSetVcpusFlags() function to support
      VIR_DOMAIN_AFFECT_CURRENT flag.
      Signed-off-by: NTaku Izumi <izumi.taku@jp.fujitsu.com>
      c147b937
    • T
      setvcpus: extend virDomainSetVcpusFlags API to support current flag · ceb0ed5d
      Taku Izumi 提交于
      This patch extends virDomainSetVcpusFlags API to support
      VIR_DOMAIN_AFFECT_CURRENT flag.
      
      Now because most APIs accept VIR_DOMAIN_AFFECT_CURRENT flags,
      virDomainSetVcpusFlags API should also do.
      Signed-off-by: NTaku Izumi <izumi.taku@jp.fujitsu.com>
      ceb0ed5d
    • D
      Add domain events support to UML driver · cf81318c
      Daniel P. Berrange 提交于
      * src/uml_conf.h: Add queue for dispatch of domain events
      * src/uml_driver.c: Trigger domain events upon important lifecycle transitions
      cf81318c
    • E
      virnetsocket: use new API for uniform child cleanup · a59a99f2
      Eric Blake 提交于
      Rather than trying to clean up the ssh child ourselves, and risk
      subtle differences from the socket creation error path, we can
      just use the new APIs.
      
      * src/rpc/virnetsocket.c (virNetSocketFree): Use new function.
      a59a99f2
    • E
      fdstream: avoid child process leak on error · 3cbf5d5f
      Eric Blake 提交于
      By requesting the pid in virCommandRunAsync, fdstream was claiming
      that it would manually wait for the process.  But on the failure
      path, the child process was being leaked.
      
      * src/fdstream.c (virFDStreamOpenFileInternal): Auto-reap child.
      3cbf5d5f
    • E
      command: introduce virPidWait, virPidAbort · e208c38b
      Eric Blake 提交于
      When using virCommandRunAsync and saving the pid for later, it
      is useful to be able to reap that pid in the same way that it
      would have been auto-reaped by virCommand if we had passed
      NULL for the pid argument in the first place.
      
      * src/util/command.c (virPidWait, virPidAbort): New functions,
      created from...
      (virCommandWait, virCommandAbort): ...bodies of these.
      (includes): Drop duplicate <stdlib.h>.  Ensure that our pid_t
      assumptions hold.
      (virCommandRunAsync): Improve documentation.
      * src/util/command.h (virPidWait, virPidAbort): New prototypes.
      * src/libvirt_private.syms: Export them.
      * docs/internals/command.html.in: Document them.
      e208c38b
    • J
      update apparmor security driver for new udev paths · 3d732040
      Jamie Strandboge 提交于
      In the Ubuntu development release we recently got a new udev that
      moves /var/run to /run, /var/lock to /run/lock and /dev/shm to /run/shm.
      This change in udev requires updating the apparmor security driver in
      libvirt[1].
      
      Attached is a patch that:
       * adjusts src/security/virt-aa-helper.c to allow both
      LOCALSTATEDIR/run/libvirt/**/%s.pid and /run/libvirt/**/%s.pid. While
      the profile is not as precise, LOCALSTATEDIR/run/ is typically a symlink
      to /run/ anyway, so there is no additional access (remember that
      apparmor resolves symlinks, which is why this is still required even
      if /var/run points to /run).
       * adjusts example/apparmor/libvirt-qemu paths for /dev/shm
      
      [1]https://launchpad.net/bugs/810270
      
      --
      Jamie Strandboge             | http://www.canonical.com
      3d732040
  3. 14 7月, 2011 23 次提交
    • M
      xenapi: Improve error reporting in xenapiOpen · 2682731d
      Matthias Bolte 提交于
      Use better suited error code and avoid NULL in error messsage
      as *privP->session->error_description can be NULL.
      2682731d
    • E
      build: check for virnetprotocol on-the-wire stability · 3fbc7615
      Eric Blake 提交于
      Similar to the recent qemu_protocol-structs addition.
      
      * src/virnetprotocol-structs: New file.
      * src/Makefile.am (%_protocol-structs): Factor body...
      (PDWTAGS): ...into new helper macro.
      (virnetprotocol-structs): New rule.
      (PROTOCOL_STRUCTS): Add virnetprotocol-structs.
      3fbc7615
    • M
      storage: Avoid memory leak on metadata fetching · 85aa40e2
      Michal Privoznik 提交于
      Getting metadata on storage allocates a memory (path) which need to
      be freed after use otherwise it gets leaked. This means after use of
      virStorageFileGetMetadataFromFD or virStorageFileGetMetadata one
      must call virStorageFileFreeMetadata to free it. This function frees
      structure internals and structure itself.
      85aa40e2
    • J
      qemu: Don't overwrite errors by closefd in error paths · c3fd09f7
      Jiri Denemark 提交于
      When qemuMonitorCloseFileHandle is called in error path, we need to
      preserve the original error since a possible further error when running
      closefd monitor command is not very useful to users.
      c3fd09f7
    • J
      qemu: Save domain status ASAP after creating qemu process · 5169e5ea
      Jiri Denemark 提交于
      When creating new qemu process we saved domain status XML only after the
      process was fully setup and running. In case libvirtd was killed before
      the whole process finished, once libvirtd started again it didn't know
      anything about the new process and we end up with an orphaned qemu
      process. Let's save the domain status XML as soon as we know the PID so
      that libvirtd can kill the process on restart.
      5169e5ea
    • E
      build: avoid ATTRIBUTE_UNUSED in headers · 088473b2
      Eric Blake 提交于
      The compiler might optimize based on our declaration that something
      is unused.  Putting that declaration in the header risks getting
      out of sync with the actual implementation, so it belongs better
      only in the .c files.  We were mostly compliant, and a new syntax
      check will help us in the future.
      
      * cfg.mk (sc_avoid_attribute_unused_in_header): New syntax check.
      * src/nodeinfo.h (nodeGetCPUStats, nodeGetMemoryStats): Delete
      attribute already present in .c file.
      * src/qemu/qemu_domain.h (qemuDomainEventFlush): Likewise.
      * src/util/virterror_internal.h (virReportErrorHelper): Parameters
      are actually used by .c file.
      * src/xenxs/xen_sxpr.h (xenFormatSxprDisk): Adjust prototype.
      * src/xenxs/xen_sxpr.c (xenFormatSxprDisk): Delete unused argument.
      (xenFormatSxpr): Adjust caller.
      * src/xen/xend_internal.c (xenDaemonAttachDeviceFlags)
      (xenDaemonUpdateDeviceFlags): Likewise.
      Suggested by Daniel Veillard.
      088473b2
    • E
      remote: prefer unsigned flags · 3349f2bb
      Eric Blake 提交于
      * src/remote/remote_driver.c (call, remoteOpenSecondaryDriver):
      Prefer unsigned flags.
      3349f2bb
    • E
      conf: delete unused flags arguments · 553115d3
      Eric Blake 提交于
      For static functions not used as callbacks, there's no need to
      keep an unused parameter.
      
      * src/conf/domain_conf.c (virDomainChrDefParseTargetXML)
      (virDomainTimerDefParseXML, virDomainHostdevSubsysUsbDefParseXML)
      (virDomainVcpuPinDefParseXML): Drop unused parameter.
      (virDomainChrDefParseXML, virDomainDefParseXML)
      (virDomainHostdevDefParseXML): Update callers.
      (virDomainNetDefParseXML): Mark flags used.
      553115d3
    • J
      util: Avoid duplicating virFileOpenAsNoFork in virFileOpenAs · 3e75c5ec
      Jiri Denemark 提交于
      In 2f4d2496 I didn't notice that one
      part of virFileOpenAs doesn't actually call to virFileOpenAsNoFork but
      rather includes a copy of the code from there.
      3e75c5ec
    • E
      build: don't hand-roll cloexec code · ff98359d
      Eric Blake 提交于
      No need to repeat common code.
      
      * bootstrap.conf (gnulib_modules): Import calloc-posix.
      * src/util/bridge.c (brInit): Use virSetCloseExec.
      (brSetInterfaceUp): Adjust flags name.
      * src/uml/uml_driver.c (umlSetCloseExec): Delete.
      (umlStartVMDaemon): Use util version instead.
      ff98359d
    • E
      conf: prefer unsigned flags · e17d3e7f
      Eric Blake 提交于
      * src/conf/cpu_conf.h (virCPUDefFormat, virCPUDefFormatBuf):
      Change flags type.
      * src/conf/cpu_conf.c (virCPUDefFormat, virCPUDefFormatBuf):
      Likewise.
      * src/conf/storage_conf.c (_virStoragePoolOptions): Likewise.
      * src/datatypes.h (_virConnect, _virStream): Likewise.
      e17d3e7f
    • E
      node_device: avoid implicit int · 52a12382
      Eric Blake 提交于
      'unsigned a' and 'unsigned int a' are synonyms, but we generally
      always spell out the 'int' in that case.  Fixing this will avoid
      a false positive in the next syntax-check commit.
      
      * src/conf/node_device_conf.h (pci_config_address)
      (_virNodeDevCapsDef): Prefer 'unsigned int' over 'unsigned'.
      52a12382
    • E
      xenapi: reject unknown flags · 4ba3faac
      Eric Blake 提交于
      * src/xenapi/xenapi_driver.c (xenapiOpen, xenapiDomainReboot):
      Reject unknown flags.
      (xenapiDomainGetXMLDesc): Likewise, and pass known flags through
      to XML generation.
      4ba3faac
    • E
      vmware: reject unknown flags · 8cf1b7fc
      Eric Blake 提交于
      * src/vmware/vmware_driver.c (vmwareOpen, vmwareDomainReboot)
      (vmwareDomainCreateXML, vmwareDomainCreateWithFlags): Reject
      unknown flags.
      8cf1b7fc
    • E
      vbox: reject unknown flags · 8d173c47
      Eric Blake 提交于
      * src/vbox/vbox_driver.c (vboxOpenDummy): Reject unknown flags.
      * src/vbox/vbox_tmpl.c (vboxOpen, vboxDomainReboot)
      (vboxNetworkOpen, vboxNetworkGetXMLDesc, vboxStorageOpen)
      (vboxStorageVolCreateXML, vboxStorageVolDelete)
      (vboxStorageVolGetXMLDesc, vboxDomainScreenshot): Likewise.
      8d173c47
    • E
      uml: reject unknown flags · 2bcad368
      Eric Blake 提交于
      * src/uml/uml_driver.c (umlOpen, umlDomainGetXMLDesc)
      (umlDomainBlockPeek): Reject unknown flags.
      2bcad368
    • E
      test: reject unknown flags · e8f03b8f
      Eric Blake 提交于
      * src/test/test_driver.c (testOpen, testDomainCoreDump)
      (testOpenNetwork, testNetworkGetXMLDesc, testOpenInterface)
      (testInterfaceChangeBegin, testInterfaceChangeCommit)
      (testInterfaceChangeRollback, testInterfaceGetXMLDesc)
      (testInterfaceDefineXML, testInterfaceCreate)
      (testInterfaceDestroy, testStorageOpen, testStoragePoolStart)
      (testStorageFindPoolSources, testStoragePoolCreate)
      (testStoragePoolDefine, testStoragePoolBuild)
      (testStoragePoolDelete, testStoragePoolRefresh)
      (testStoragePoolGetXMLDesc, testStorageVolumeCreateXML)
      (testStorageVolumeCreateXMLFrom, testStorageVolumeDelete)
      (testStorageVolumeGetXMLDesc, testDevMonOpen)
      (testNodeNumOfDevices, testNodeListDevices)
      (testNodeDeviceGetXMLDesc, testNodeDeviceCreateXML)
      (testSecretOpen, testNWFilterOpen): Reject unknown flags.
      e8f03b8f
    • E
      qemu: reject unknown flags · f548480b
      Eric Blake 提交于
      * src/qemu/qemu_driver.c (qemudOpen, qemuDomainScreenshot)
      (qemuDomainXMLFromNative, qemuDomainXMLToNative)
      (qemudDomainBlockPeek, qemuCPUCompare, qemuCPUBaseline): Reject
      unknown flags.
      * src/qemu/qemu_migration.c (qemuMigrationConfirm): Likewise.
      (_qemuMigrationCookie, qemuMigrationCookieXMLParse)
      (qemuMigrationCookieXMLParseStr, qemuMigrationBakeCookie)
      (qemuMigrationEatCookie): Make flags unsigned.
      * src/qemu/qemu_domain.h: (qemuDomainDefFormatXML)
      (qemuDomainFormatXML): Prefer unsigned flags.
      * src/qemu/qemu_domain.c (qemuDomainDefFormatXML)
      (qemuDomainFormatXML): Likewise.
      (qemuDomainOpenLogHelper, qemuDomainCreateLog): Rename variable.
      f548480b
    • E
      phyp: reject unknown flags · 76f40fa5
      Eric Blake 提交于
      * src/phyp/phyp_driver.c (phypOpen, phypDomainReboot)
      (phypVIOSDriverOpen): Reject unknown flags.
      76f40fa5
    • E
      openvz: reject unknown flags · 8ef4fe14
      Eric Blake 提交于
      * src/openvz/openvz_driver.c (openvzDomainReboot, openvzOpen):
      Reject unknown flags.
      8ef4fe14
    • E
      lxc: reject unknown flags · 5037cea5
      Eric Blake 提交于
      * src/lxc/lxc_driver.c (lxcOpen, lxcDomainSetMemoryParameters)
      (lxcDomainGetMemoryParameters): Reject unknown flags.
      * src/lxc/lxc_container.c (lxcContainerStart): Rename flags to
      cflags to reflect that it is not tied to libvirt.
      5037cea5
    • E
      libxl: reject unknown flags · 9110941c
      Eric Blake 提交于
      * src/libxl/libxl_driver.c (libxlOpen, libxlDomainReboot)
      (libxlDomainXMLFromNative, libxlDomainXMLToNative)
      (libxlDomainCreateWithFlags): Reject unknown flags.
      9110941c
    • P
      qemu: build failed due to unused variables · 36caaddd
      Peter Krempa 提交于
      While compiling on F15 build crashed (probably because of new GCC).
      36caaddd
  4. 13 7月, 2011 5 次提交
    • E
      storage: reject unknown flags · 64bd1b9d
      Eric Blake 提交于
      * src/storage/storage_backend.c (virStorageBackendCreateBlockFrom)
      (virStorageBackendCreateQemuImg)
      (virStorageBackendCreateQcowCreate): Reject unknown flags.
      * src/storage/storage_backend_disk.c (virStorageBackendDiskBuildPool)
      (virStorageBackendDiskDeleteVol): Likewise.
      * src/storage/storage_backend_fs.c
      (virStorageBackendFileSystemNetFindPoolSources)
      (virStorageBackendFileSystemBuild)
      (virStorageBackendFileSystemDelete, createFileDir)
      (virStorageBackendFileSystemVolBuildFrom)
      (virStorageBackendFileSystemVolDelete): Likewise.
      * src/storage/storage_backend_iscsi.c
      (virStorageBackendISCSIFindPoolSources): Likewise.
      * src/storage/storage_backend_logical.c
      (virStorageBackendLogicalFindPoolSources)
      (virStorageBackendLogicalBuildPool)
      (virStorageBackendLogicalDeletePool)
      (virStorageBackendLogicalDeleteVol): Likewise.
      * src/storage/storage_driver.c (storageOpen, storagePoolCreate)
      (storagePoolDefine, storagePoolRefresh, storagePoolGetXMLDesc)
      (storageVolumeCreateXML, storageVolumeCreateXMLFrom)
      (storageVolumeGetXMLDesc): Likewise.
      64bd1b9d
    • E
      node_device: reject unknown flags · ba78d2cf
      Eric Blake 提交于
      * src/node_device/node_device_driver.c (nodeNumOfDevices)
      (nodeListDevices, nodeDeviceGetXMLDesc, nodeDeviceCreateXML):
      Reject unknown flags.
      * src/node_device/node_device_hal.c (halNodeDrvOpen): Likewise.
      * src/node_device/node_device_udev.c (udevNodeDrvOpen): Likewise.
      ba78d2cf
    • E
      util: reject unknown flags, and prefer unsigned flags · 833fe8ab
      Eric Blake 提交于
      Silently ignored flags get in the way of new features that
      use those flags.  Also, an upcoming syntax check will favor
      unsigned flags.
      
      * src/nodeinfo.h (nodeGetCPUStats, nodeGetMemoryStats): Drop
      unused attribute.
      * src/interface/netcf_driver.c (interfaceOpenInterface)
      (interfaceDefineXML, interfaceCreate, interfaceDestroy): Reject
      unknown flags.
      * src/network/bridge_driver.c (networkOpenNetwork)
      (networkGetXMLDesc): Likewise.
      * src/nwfilter/nwfilter_driver.c (nwfilterOpen): Likewise.
      * src/secret/secret_driver.c (secretOpen, secretDefineXML)
      (secretGetXMLDesc, secretSetValue): Likewise.
      * src/util/logging.c (virLogDefineFilter, virLogDefineOutput)
      (virLogMessage): Likewise; also use unsigned flags.
      * src/util/logging.h (virLogDefineFilter, virLogDefineOutput)
      (virLogMessage): Change signature.
      * src/util/command.c (virExecWithHook): Likewise.
      833fe8ab
    • E
      libvirt-qemu: use unsigned flags · 01ed9b56
      Eric Blake 提交于
      Like commit 1740c381, but for libvirt-qemu.
      
      * src/remote/qemu_protocol.x (qemu_monitor_command_args): Adjust
      type to match API.
      * src/qemu_protocol-structs: Update accordingly.
      01ed9b56
    • E
      maint: print flags in hex during debug · 06dbfa6d
      Eric Blake 提交于
      Continuation of commit 313ac7fd, and enforce things with a syntax
      check.
      
      Technically, virNetServerClientCalculateHandleMode is not printing
      a mode_t, but rather a collection of VIR_EVENT_HANDLE_* bits;
      however, these bits are < 8, so there is no different in the
      output, and that was the easiest way to silence the new syntax check.
      
      * cfg.mk (sc_flags_debug): New syntax check.
      (exclude_file_name_regexp--sc_flags_debug): Add exemptions.
      * src/fdstream.c (virFDStreamOpenFileInternal): Print flags in
      hex, mode_t in octal.
      * src/libvirt-qemu.c (virDomainQemuMonitorCommand)
      (virDomainQemuAttach): Likewise.
      * src/locking/lock_driver_nop.c (virLockManagerNopInit): Likewise.
      * src/locking/lock_driver_sanlock.c (virLockManagerSanlockInit):
      Likewise.
      * src/locking/lock_manager.c: Likewise.
      * src/qemu/qemu_migration.c: Likewise.
      * src/qemu/qemu_monitor.c: Likewise.
      * src/rpc/virnetserverclient.c
      (virNetServerClientCalculateHandleMode): Print mode with %o.
      06dbfa6d