1. 21 5月, 2014 2 次提交
    • R
      bhyve: fix virObjectUnlock() usage · 344582a8
      Roman Bogorodskiy 提交于
      In a number of places in the bhyve driver, virObjectUnlock()
      is called with an arg without check if the arg is non-NULL, which
      could result in passing NULL value and a warning like:
      
      virObjectUnlock:340 : Object 0x0 ((unknown)) is not a virObjectLockable instance
      
      * src/bhyve/bhyve_driver.c (bhyveDomainGetInfo)
      (bhyveDomainGetState, bhyveDomainGetAutostart)
      (bhyveDomainSetAutostart, bhyveDomainIsActive)
      (bhyveDomainIsPersistent, bhyveDomainGetXMLDesc)
      (bhyveDomainUndefine, bhyveDomainLookupByUUID)
      (bhyveDomainLookupByName, bhyveDomainLookupByID)
      (bhyveDomainCreateWithFlags, bhyveDomainOpenConsole):
      Check if arg is not NULL before calling virObjectUnlock on it.
      344582a8
    • R
      bhyve: domain events support · 5c13c320
      Roman Bogorodskiy 提交于
      Support events for these functions:
      
       - domainDefineXML
       - domainUndefine
       - domainCreate{WithFlags,XML}
       - domainDestroy
      5c13c320
  2. 12 5月, 2014 1 次提交
  3. 05 5月, 2014 1 次提交
    • R
      bhyve: report cpuTime in bhyveDomainGetInfo · 0541727c
      Roman Bogorodskiy 提交于
      Add a helper function virBhyveGetDomainTotalCpuStats() to
      obtain process CPU time using kvm (kernel memory interface)
      and use it to set cpuTime field of the virDomainInfo struct in
      bhyveDomainGetInfo().
      0541727c
  4. 04 5月, 2014 2 次提交
    • R
      bhyve: implement connectDomainXMLToNative · 747ed3e6
      Roman Bogorodskiy 提交于
      The only accepted format for now is 'bhyve-argv' which
      prints out a bhyve command corresponding to the given
      domain definition.
      747ed3e6
    • R
      bhyve: improve bhyve_command.c testability · 07e371fc
      Roman Bogorodskiy 提交于
      * bhyve_command.c (bhyveBuildNetArgStr, virBhyveProcessBuildBhyveCmd):
        add dryRun mode which doesn't create any devices when enabled
      * bhyve_command.c (virBhyveProcessBuildBhyveCmd,
        virBhyveProcessBuildDestroyCmd, virBhyveProcessBuildLoadCmd): accept
        virDomainDefPtr instead of virDomainObjPtr.
      07e371fc
  5. 23 4月, 2014 1 次提交
    • R
      bhyve: bhyveDomainDefineXML fixes · fa8a389e
      Roman Bogorodskiy 提交于
      - do not lose new definition for an active domain
      - do not leak oldDef
      - do not set dom->id if virDomainSaveConfig() fails
      - do not call virObjectUnlock(vm) if vm is NULL
      fa8a389e
  6. 20 4月, 2014 1 次提交
  7. 12 4月, 2014 1 次提交
  8. 09 4月, 2014 2 次提交
    • R
      bhyve: add domain metadata support · b291cb5e
      Roman Bogorodskiy 提交于
      Implement domainSetMetadata and domainGetMetadata driver calls.
      b291cb5e
    • R
      bhyve: fix ATTRIBUTE_NONNULL usage · 986a07c7
      Roman Bogorodskiy 提交于
      Fix incorrect ATTRIBUTE_NONNULL usage introduced in 17b17565
      which caused build failure:
      
      bhyve/bhyve_driver.c:127:48: error: expected ')'
      bhyveDriverGetCapabilities(bhyveConnPtr driver ATTRIBUTE_NONNULL)
                                                     ^
      bhyve/bhyve_driver.c:127:27: note: to match this '('
      bhyveDriverGetCapabilities(bhyveConnPtr driver ATTRIBUTE_NONNULL)
      
      Pushed under the build breaker rule.
      986a07c7
  9. 08 4月, 2014 3 次提交
  10. 07 4月, 2014 3 次提交
  11. 05 4月, 2014 2 次提交
  12. 02 4月, 2014 1 次提交
    • E
      conf: move host disk type to util/ · 16ac4c9d
      Eric Blake 提交于
      A continuation of the migration of disk details to virstoragefile.
      This patch moves a single enum, but converting the name has quite
      a bit of fallout.
      
      * src/conf/domain_conf.h (virDomainDiskType): Move...
      * src/util/virstoragefile.h (virStorageType): ...and rename.
      * src/bhyve/bhyve_command.c (bhyveBuildDiskArgStr)
      (virBhyveProcessBuildLoadCmd): Update clients.
      * src/conf/domain_conf.c (virDomainDiskSourceDefParse)
      (virDomainDiskDefParseXML, virDomainDiskSourceDefFormatInternal)
      (virDomainDiskDefFormat, virDomainDiskGetActualType)
      (virDomainDiskDefForeachPath, virDomainDiskSourceIsBlockType):
      Likewise.
      * src/conf/snapshot_conf.h (_virDomainSnapshotDiskDef): Likewise.
      * src/conf/snapshot_conf.c (virDomainSnapshotDiskDefParseXML)
      (virDomainSnapshotAlignDisks, virDomainSnapshotDiskDefFormat):
      Likewise.
      * src/esx/esx_driver.c (esxAutodetectSCSIControllerModel)
      (esxDomainDefineXML): Likewise.
      * src/locking/domain_lock.c (virDomainLockManagerAddDisk):
      Likewise.
      * src/lxc/lxc_controller.c
      (virLXCControllerSetupLoopDeviceDisk)
      (virLXCControllerSetupNBDDeviceDisk)
      (virLXCControllerSetupLoopDevices, virLXCControllerSetupDisk):
      Likewise.
      * src/parallels/parallels_driver.c (parallelsGetHddInfo):
      Likewise.
      * src/phyp/phyp_driver.c (phypDiskType): Likewise.
      * src/qemu/qemu_command.c (qemuGetDriveSourceString)
      (qemuDomainDiskGetSourceString, qemuBuildDriveStr)
      (qemuBuildCommandLine, qemuParseCommandLineDisk)
      (qemuParseCommandLine): Likewise.
      * src/qemu/qemu_conf.c (qemuCheckSharedDevice)
      (qemuTranslateDiskSourcePool)
      (qemuTranslateSnapshotDiskSourcePool): Likewise.
      * src/qemu/qemu_domain.c (qemuDomainDeviceDefPostParse)
      (qemuDomainDetermineDiskChain): Likewise.
      * src/qemu/qemu_driver.c (qemuDomainGetBlockInfo)
      (qemuDomainSnapshotPrepareDiskExternalBackingInactive)
      (qemuDomainSnapshotPrepareDiskExternalBackingActive)
      (qemuDomainSnapshotPrepareDiskExternalOverlayActive)
      (qemuDomainSnapshotPrepareDiskExternalOverlayInactive)
      (qemuDomainSnapshotPrepareDiskInternal)
      (qemuDomainSnapshotPrepare)
      (qemuDomainSnapshotCreateSingleDiskActive): Likewise.
      * src/qemu/qemu_hotplug.c (qemuDomainChangeEjectableMedia):
      Likewise.
      * src/qemu/qemu_migration.c (qemuMigrationIsSafe): Likewise.
      * src/security/security_apparmor.c
      (AppArmorRestoreSecurityImageLabel)
      (AppArmorSetSecurityImageLabel): Likewise.
      * src/security/security_dac.c (virSecurityDACSetSecurityImageLabel)
      (virSecurityDACRestoreSecurityImageLabelInt)
      (virSecurityDACSetSecurityAllLabel): Likewise.
      * src/security/security_selinux.c
      (virSecuritySELinuxRestoreSecurityImageLabelInt)
      (virSecuritySELinuxSetSecurityImageLabel)
      (virSecuritySELinuxSetSecurityAllLabel): Likewise.
      * src/storage/storage_backend.c (virStorageFileBackendForType):
      Likewise.
      * src/storage/storage_backend_fs.c (virStorageFileBackendFile)
      (virStorageFileBackendBlock): Likewise.
      * src/storage/storage_backend_gluster.c
      (virStorageFileBackendGluster): Likewise.
      * src/vbox/vbox_tmpl.c (vboxDomainGetXMLDesc, vboxAttachDrives)
      (vboxDomainAttachDeviceImpl, vboxDomainDetachDevice): Likewise.
      * src/vmware/vmware_conf.c (vmwareVmxPath): Likewise.
      * src/vmx/vmx.c (virVMXParseDisk, virVMXFormatDisk)
      (virVMXFormatFloppy): Likewise.
      * src/xenxs/xen_sxpr.c (xenParseSxprDisks, xenParseSxpr)
      (xenFormatSxprDisk): Likewise.
      * src/xenxs/xen_xm.c (xenParseXM, xenFormatXMDisk): Likewise.
      * tests/securityselinuxlabeltest.c (testSELinuxLoadDef):
      Likewise.
      * src/libvirt_private.syms (domain_conf.h): Move symbols...
      (virstoragefile.h): ...as appropriate.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      16ac4c9d
  13. 31 3月, 2014 1 次提交
    • R
      bhyve: don't leak tap devices on failures · 1d8be343
      Roman Bogorodskiy 提交于
      On failures, virBhyveProcessStart() does not cleanup network
      interfaces that could be created by virBhyveProcessBuildBhyveCmd(),
      which results in a leaked tap device.
      
      To fix that, extract network cleanup code to bhyveNetCleanup()
      and use it in cleanup stage of virBhyveProcessStart().
      1d8be343
  14. 27 3月, 2014 2 次提交
  15. 26 3月, 2014 1 次提交
    • R
      bhyve: don't fail on busy tap devices · 425eeed8
      Roman Bogorodskiy 提交于
      We use virBhyveTapGetRealDeviceName() to map network interface name
      to a real device path, trying to open possible devices and getting
      names by ioctl.
      
      Make it skip devices that fail to open with EBUSY because they're
      most likely already used by other VMs.
      425eeed8
  16. 25 3月, 2014 2 次提交
  17. 23 3月, 2014 2 次提交
  18. 21 3月, 2014 1 次提交
  19. 20 3月, 2014 1 次提交
    • W
      bhyve: host API support · bc93c34e
      Wojciech Macek 提交于
      New functionalities:
      - connectGetMaxVcpus - on bhyve hardcode this value to 16
      - nodeGetFreeMemory - do not use physmem_get on FreeBSD, since
                            it might get wrong value on systems with
                            more than 100GB of RAM
      - nodeGetCPUMap - wrapper only for mapping function, currently not
                        supported by FreeBSD
      - nodeSet/GetMemoryParameters - wrapper only for future improvements,
                                      currently not supported by FreeBSD
      bc93c34e
  20. 18 3月, 2014 5 次提交
  21. 17 3月, 2014 1 次提交
  22. 10 3月, 2014 1 次提交
  23. 04 3月, 2014 1 次提交
    • E
      util: make it easier to grab only regular command exit · b9dd878f
      Eric Blake 提交于
      Auditing all callers of virCommandRun and virCommandWait that
      passed a non-NULL pointer for exit status turned up some
      interesting observations.  Many callers were merely passing
      a pointer to avoid the overall command dying, but without
      caring what the exit status was - but these callers would
      be better off treating a child death by signal as an abnormal
      exit.  Other callers were actually acting on the status, but
      not all of them remembered to filter by WIFEXITED and convert
      with WEXITSTATUS; depending on the platform, this can result
      in a status being reported as 256 times too big.  And among
      those that correctly parse the output, it gets rather verbose.
      Finally, there were the callers that explicitly checked that
      the status was 0, and gave their own message, but with fewer
      details than what virCommand gives for free.
      
      So the best idea is to move the complexity out of callers and
      into virCommand - by default, we return the actual exit status
      already cleaned through WEXITSTATUS and treat signals as a
      failed command; but the few callers that care can ask for raw
      status and act on it themselves.
      
      * src/util/vircommand.h (virCommandRawStatus): New prototype.
      * src/libvirt_private.syms (util/command.h): Export it.
      * docs/internals/command.html.in: Document it.
      * src/util/vircommand.c (virCommandRawStatus): New function.
      (virCommandWait): Adjust semantics.
      * tests/commandtest.c (test1): Test it.
      * daemon/remote.c (remoteDispatchAuthPolkit): Adjust callers.
      * src/access/viraccessdriverpolkit.c (virAccessDriverPolkitCheck):
      Likewise.
      * src/fdstream.c (virFDStreamCloseInt): Likewise.
      * src/lxc/lxc_process.c (virLXCProcessStart): Likewise.
      * src/qemu/qemu_command.c (qemuCreateInBridgePortWithHelper):
      Likewise.
      * src/xen/xen_driver.c (xenUnifiedXendProbe): Simplify.
      * tests/reconnect.c (mymain): Likewise.
      * tests/statstest.c (mymain): Likewise.
      * src/bhyve/bhyve_process.c (virBhyveProcessStart)
      (virBhyveProcessStop): Don't overwrite virCommand error.
      * src/libvirt.c (virConnectAuthGainPolkit): Likewise.
      * src/openvz/openvz_driver.c (openvzDomainGetBarrierLimit)
      (openvzDomainSetBarrierLimit): Likewise.
      * src/util/virebtables.c (virEbTablesOnceInit): Likewise.
      * src/util/viriptables.c (virIpTablesOnceInit): Likewise.
      * src/util/virnetdevveth.c (virNetDevVethCreate): Fix debug
      message.
      * src/qemu/qemu_capabilities.c (virQEMUCapsInitQMP): Add comment.
      * src/storage/storage_backend_iscsi.c
      (virStorageBackendISCSINodeUpdate): Likewise.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      b9dd878f
  24. 01 3月, 2014 2 次提交