1. 22 7月, 2011 1 次提交
    • E
      build: rename files.h to virfile.h · 8e22e089
      Eric Blake 提交于
      In preparation for a future patch adding new virFile APIs.
      
      * src/util/files.h, src/util/files.c: Move...
      * src/util/virfile.h, src/util/virfile.c: ...here, and rename
      functions to virFile prefix.  Macro names are intentionally
      left alone.
      * *.c: All '#include "files.h"' uses changed.
      * src/Makefile.am (UTIL_SOURCES): Reflect rename.
      * cfg.mk (exclude_file_name_regexp--sc_prohibit_close): Likewise.
      * src/libvirt_private.syms: Likewise.
      * docs/hacking.html.in: Likewise.
      * HACKING: Regenerate.
      8e22e089
  2. 21 7月, 2011 2 次提交
    • W
      qemu: Implement period and quota tunable XML configuration and parsing · c4441fee
      Wen Congyang 提交于
      This patch implements period and quota tunable XML configuration and parsing.
      A quota or period of zero will be simply ignored.
      c4441fee
    • 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
  3. 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
  4. 16 7月, 2011 2 次提交
    • E
      flags: fix domain_conf migration regression · 20135c70
      Eric Blake 提交于
      Commit 461e0f1a broke migration, because there was a code path
      that tried to enable an internal flag while still going through
      the public function.  Split the internal flag into a separate
      callback, and validate that flags do not overlap.
      
      * src/conf/domain_conf.c (virDomainDefFormat): Split...
      (virDomainDefFormatInternal): ...to separate the flag check.
      (virDomainObjFormat): Adjust caller.
      20135c70
    • 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
  5. 14 7月, 2011 4 次提交
    • 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
    • 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
    • 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
  6. 13 7月, 2011 3 次提交
    • D
      Add virtualization type in audit messages · 839f47b5
      Daniel P. Berrange 提交于
      Since a host can run several different virtualization types at
      the same time, audit messages should allow domains to be identified.
      Add a 'virt={qemu,kvm,uml,lxc,...}' key to domain audit messages
      
      * src/conf/domain_audit.c: Identify virt type of guest
      839f47b5
    • D
      Add auditing of filesystems · e6e90c8d
      Daniel P. Berrange 提交于
      When passing through filesystems from the host to a guest, the
      host filesystem passed must be audited
      
      * src/conf/domain_audit.{c,h}: Add virDomainAuditFS
      e6e90c8d
    • D
      Move qemu_audit.h helpers into shared code · b43070eb
      Daniel P. Berrange 提交于
      The LXC and UML drivers can both make use of auditing. Move
      the qemu_audit.{c,h} files to src/conf/domain_audit.{c,h}
      
      * src/conf/domain_audit.c: Rename from src/qemu/qemu_audit.c
      * src/conf/domain_audit.h: Rename from src/qemu/qemu_audit.h
      * src/Makefile.am: Remove qemu_audit.{c,h}, add domain_audit.{c,h}
      * src/qemu/qemu_audit.h, src/qemu/qemu_cgroup.c,
        src/qemu/qemu_command.c, src/qemu/qemu_driver.c,
        src/qemu/qemu_hotplug.c, src/qemu/qemu_migration.c,
        src/qemu/qemu_process.c: Update for changed audit API names
      b43070eb
  7. 12 7月, 2011 4 次提交
    • D
      Implement code to attach to external QEMU instances. · 109efd79
      Daniel P. Berrange 提交于
      Given a PID, the QEMU driver reads /proc/$PID/cmdline and
      /proc/$PID/environ to get the configuration. This is fed
      into the ARGV->XML convertor to build an XML configuration
      for the process.
      
      /proc/$PID/exe is resolved to identify the full command
      binary path
      
      After checking for name/uuid uniqueness, an attempt is
      made to connect to the monitor socket. If successful
      then 'info status' and 'info kvm' are issued to determine
      whether the CPUs are running and if KVM is enabled.
      
      * src/qemu/qemu_driver.c: Implement virDomainQemuAttach
      * src/qemu/qemu_process.h, src/qemu/qemu_process.c: Add
        qemuProcessAttach to connect to the monitor of an
        existing QEMU process
      109efd79
    • M
      domain_conf: Free temporary variable · d50bb45b
      Michal Privoznik 提交于
      * src/conf/domain_conf.c: caller must free returned value of
        virXPathString in useserial
      d50bb45b
    • E
      build: avoid requiring -lm · df94811f
      Eric Blake 提交于
      log2() is heavy when ffs() can do the same thing.  But ffs()
      requires gnulib support for mingw.
      
      This patch solves this linker error on Fedora 14.
      
      /usr/bin/ld: libvirt_lxc-domain_conf.o: undefined reference to symbol 'log2@@GLIBC_2.2.5'
      /usr/bin/ld: note: 'log2@@GLIBC_2.2.5' is defined in DSO /lib64/libm.so.6 so try adding it to the linker command line
      /lib64/libm.so.6: could not read symbols: Invalid operation
      collect2: ld returned 1 exit status
      
      * .gnulib: Update to latest, for ffs.
      * bootstrap.conf (gnulib_modules): Import ffs.
      * src/conf/domain_conf.c (virDomainDefParseXML): Use ffs instead
      of log2.
      Reported by Dave Allan.
      df94811f
    • M
      Add domain type checking · aa14709a
      Matthias Bolte 提交于
      The drivers were accepting domain configs without checking if those
      were actually meant for them. For example the LXC driver happily
      accepts configs with type QEMU.
      
      Add a check for the expected domain types to the virDomainDefParse*
      functions.
      aa14709a
  8. 11 7月, 2011 1 次提交
    • M
      bios: Add support for SGA · 874e65aa
      Michal Privoznik 提交于
      This patch creates new <bios> element which, at this time has only the
      attribute useserial='yes|no'. This attribute allow users to use
      Serial Graphics Adapter and see BIOS messages from the very first moment
      domain boots up. Therefore, users can choose boot medium, set PXE, etc.
      874e65aa
  9. 08 7月, 2011 2 次提交
    • M
      graphics: add support for action_if_connected in qemu · 30c43afd
      Michal Privoznik 提交于
      This option accepts 3 values:
      -keep, to keep current client connected (Spice+VNC)
      -disconnect, to disconnect client (Spice)
      -fail, to fail setting password if there is a client connected (Spice)
      30c43afd
    • E
      conf: prefer unsigned int for flags · 7931639b
      Eric Blake 提交于
      * src/conf/domain_conf.c (virDomainGraphicsDefParseXML)
      (virDomainDeviceInfoFormat, virDomainDeviceInfoParseXML)
      (virDomainDiskDefParseXML, virDomainControllerDefParseXML)
      (virDomainFSDefParseXML, virDomainNetDefParseXML)
      (virDomainChrDefParseTargetXML, virDomainChrDefParseXML)
      (virDomainSmartcardDefParseXML, virDomainInputDefParseXML)
      (virDomainTimerDefParseXML, virDomainSoundDefParseXML)
      (virDomainWatchdogDefParseXML, virDomainMemballoonDefParseXML)
      (virDomainVideoDefParseXML)
      (virDomainHostdevSubsysUsbDefParseXML)
      (virDomainHostdevSubsysPciDefParseXML)
      (virDomainHostdevDefParseXML, virSecurityLabelDefParseXML)
      (virDomainVcpuPinDefParseXML, virDomainDefParseXML)
      (virDomainDefParse, virDomainDiskDefFormat)
      (virDomainControllerDefFormat, virDomainFSDefFormat)
      (virDomainNetDefFormat, virDomainChrSourceDefFormat)
      (virDomainChrDefFormat, virDomainSmartcardDefFormat)
      (virDomainSoundDefFormat, virDomainMemballoonDefFormat)
      (virDomainWatchdogDefFormat, virDomainVideoDefFormat)
      (virDomainInputDefFormat, virDomainGraphicsDefFormat)
      (virDomainHostdevDefFormat, virDomainObjFormat): Switch signature.
      (virDomainObjTaint, virDomainSaveStatus): Use unsigned flags.
      7931639b
  10. 06 7月, 2011 3 次提交
    • D
      Fix default value of security label 'relabel' attribute · 693eac38
      Daniel P. Berrange 提交于
      When no <seclabel> is present in the XML, the virDomainSeclabelDef
      struct is left as all zeros. Unfortunately, this means it gets setup
      as type=dynamic, with relabel=no, which is an illegal combination.
      
      Change the 'bool relabel' attribute in virDomainSeclabelDef to
      the inverse 'bool norelabel' so that the default initialization
      is sensible
      
      * src/conf/domain_conf.c, src/conf/domain_conf.h,
        src/security/security_apparmor.c, src/security/security_selinux.c:
        Replace 'relabel' with 'norelabel'
      693eac38
    • M
      Fix return value semantic of virFileMakePath · e123e1ee
      Matthias Bolte 提交于
      Some callers expected virFileMakePath to set errno, some expected
      it to return an errno value. Unify this to return 0 on success and
      -1 on error. Set errno to report detailed error information.
      
      Also optimize virFileMakePath if stat fails with an errno different
      from ENOENT.
      e123e1ee
    • L
      conf: fix domain parse flags · d3f7c7b1
      Laine Stump 提交于
      * Change all flags args from int to unsigned int
      
      * Allow passing flags in virDomainObjParseFile (and propogate those
        flags all the way down the call chain). Previously the flags were
        hardcoded (to VIR_DOMAIN_XML_INTERNAL_STATUS) several layers down
        the chain. Pass that value in at the one place that is currently
        calling virDomainObjParseFile.
      d3f7c7b1
  11. 05 7月, 2011 1 次提交
  12. 04 7月, 2011 2 次提交
    • D
      Allow for resource relabelling with static labels · 6321fd97
      Daniel P. Berrange 提交于
      Add a new attribute to the <seclabel> XML to allow resource
      relabelling to be enabled with static label usage.
      
        <seclabel model='selinux' type='static' relabel='yes'>
          <label>system_u:system_r:svirt_t:s0:c392,c662</label>
        </seclabel>
      
      * docs/schemas/domain.rng: Add relabel attribute
      * src/conf/domain_conf.c, src/conf/domain_conf.h: Parse
        the 'relabel' attribute
      * src/qemu/qemu_process.c: Unconditionally clear out the
        'imagelabel' attribute
      * src/security/security_apparmor.c: Skip based on 'relabel'
        attribute instead of label type
      * src/security/security_selinux.c: Skip based on 'relabel'
        attribute instead of label type and fill in <imagelabel>
        attribute if relabel is enabled.
      6321fd97
    • D
      Allow a base label to be specified in dynamic labelling mode · 4ebfc427
      Daniel P. Berrange 提交于
      Normally the dynamic labelling mode will always use a base
      label of 'svirt_t' for VMs. Introduce a <baselabel> field
      in the <seclabel> XML to allow this base label to be changed
      
      eg
      
         <seclabel type='dynamic' model='selinux'>
           <baselabel>system_u:object_r:virt_t:s0</baselabel>
         </seclabel>
      
      * docs/schemas/domain.rng: Add <baselabel>
      * src/conf/domain_conf.c, src/conf/domain_conf.h: Parsing
        of base label
      * src/qemu/qemu_process.c: Don't reset 'model' attribute if
        a base label is specified
      * src/security/security_apparmor.c: Refuse to support base label
      * src/security/security_selinux.c: Use 'baselabel' when generating
        label, if available
      4ebfc427
  13. 30 6月, 2011 1 次提交
    • W
      Fix memory leak in virDomainVcpuPinDel() · 53d03ba8
      Wen Congyang 提交于
      virDomainVcpuPinDefFree() does not free def->cputune.vcpupin if nvcpupin
      is 0, and does not set def->cputune.vcpupin to NULL.
      
      If we set nvcpupin to 0 but do not free vcpupin, vcpupin will not be freed
      when vm->def is freed.
      
      Use VIR_FREE() instead of virDomainVcpuPinDefFree() to free the memory
      and set def->cputune.vcpupint to NULL.
      53d03ba8
  14. 29 6月, 2011 1 次提交
  15. 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
  16. 25 6月, 2011 2 次提交
  17. 24 6月, 2011 1 次提交
  18. 23 6月, 2011 2 次提交
  19. 22 6月, 2011 1 次提交
    • M
      qemu: domain I/O asynchronous handling · 017abcbb
      Michal Privoznik 提交于
      For virtio disks and interfaces, qemu allows users to enable or disable
      ioeventfd feature. This means, qemu can execute domain code, while
      another thread waits for I/O event. Basically, in some cases it is win,
      in some loss. This feature is available via 'ioeventfd' attribute in disk
      and interface <driver> element. It accepts 'on' and 'off'. Leaving this
      attribute out defaults to hypervisor decision.
      017abcbb
  20. 21 6月, 2011 3 次提交
    • C
      Promote virEvent*Handle/Timeout to public API · 6094ad7b
      Cole Robinson 提交于
      Since we virEventRegisterDefaultImpl is now a public API, callers need
      a way to invoke the default registered Handle and Timeout functions. We
      already have general functions for these internally, so promote
      them to the public API.
      
      v2:
          Actually add APIs to libvirt.h
      6094ad7b
    • O
      conf: Make full use of goto label · a22dbe0d
      Osier Yang 提交于
      * virDomainDefParse: There is a goto label "no_memory", which
      reports OOM error, and then fallthrough label "error". This
      patch changes things like following:
      
          virReportOOMError();
          goto error;
      
      into:
      
          goto no_memory;
      a22dbe0d
    • O
      conf: Fix one memory leak · 9a2ac25a
      Osier Yang 提交于
      Free def->numatune.memory.nodemask in virDomainDefFree.
      9a2ac25a
  21. 20 6月, 2011 2 次提交