1. 03 9月, 2009 6 次提交
    • P
      VBox cleanup and update of networking XML functions · 32ad6aef
      Pritesh Kothari 提交于
      * src/vbox/vbox_tmpl.c: merged vboxNetworkCreateXML() and
        vboxNetworkDefineXML() and added code to handle multiple hostonly
        interfaces.
      32ad6aef
    • D
      Add support for setting disk drive serial numbers · 85d15b51
      Daniel P. Berrange 提交于
      * docs/schemas/domain.rng: Add <serial> element to disks
      * src/domain_conf.h, src/domain_conf.c: XML parsing and
        formatting for disk serial numbers
      * src/qemu_conf.c: Set serial number when launching guests
      * tests/qemuxml2argvdata/qemuxml2argv-disk-drive-shared.args,
        tests/qemuxml2argvdata/qemuxml2argv-disk-drive-shared.xml: Add
        serial number to XML test
      85d15b51
    • D
      Support configuration of huge pages in guests · d823a05a
      Daniel P. Berrange 提交于
      Add option to domain XML for
      
           <memoryBacking>
              <hugepages/>
           </memoryBacking>
      
      * configure.in: Add check for mntent.h
      * qemud/libvirtd_qemu.aug, qemud/test_libvirtd_qemu.aug, src/qemu.conf
        Add 'hugetlbfs_mount' config parameter
      * src/qemu_conf.c, src/qemu_conf.h: Check for -mem-path flag in QEMU,
        and pass it when hugepages are requested.
        Load hugetlbfs_mount config parameter, search for mount if not given.
      * src/qemu_driver.c: Free hugetlbfs_mount/path parameter in driver shutdown.
        Create directory for QEMU hugepage usage, chowning if required.
      * docs/formatdomain.html.in: Document memoryBacking/hugepages elements
      * docs/schemas/domain.rng: Add memoryBacking/hugepages elements to schema
      * src/util.c, src/util.h, src/libvirt_private.syms: Add virFileFindMountPoint
        helper API
      * tests/qemuhelptest.c: Add -mem-path constants
      * tests/qemuxml2argvtest.c, tests/qemuxml2xmltest.c: Add tests for hugepage
        handling
      * tests/qemuxml2argvdata/qemuxml2argv-hugepages.xml,
        tests/qemuxml2argvdata/qemuxml2argv-hugepages.args: Data files for
        hugepage tests
      d823a05a
    • D
      Fix misc OOM bugs · 8eacfd4c
      Daniel P. Berrange 提交于
      * tests/testutils.c: Run test function twice, once to prime it for
        static allocations, once to count the non-static allocations.
      * tests/testutilsqemu.c: Initialize variable correctl
      * src/capabilities.c: Don't free machines variable upon failure
        since caller must do that
      * src/xm_internal.c: Add missing check for OOM in building VIF
        config param
      8eacfd4c
    • P
      VBox support for defining/dumping video devices · 4ff60912
      Pritesh Kothari 提交于
      * src/vbox/vbox_tmpl.c: add setting of video and acceleration in
        VBox driver, and the ability to save this back for serialization
      4ff60912
    • P
      Generic parsing support for video acceleration · 6aa576cd
      Pritesh Kothari 提交于
      * docs/schemas/domain.rng: augment the video model with an optional
        acceleration element with optional accel2d and accel3d flags
      * src/domain_conf.c src/domain_conf.h: exten the virDomainVideoDef
        structure with an optional accel field, virDomainVideoAccelDefParseXML
        and virDomainVideoAccelDefFormat functions to parse and serialize
        the structure.
      6aa576cd
  2. 02 9月, 2009 22 次提交
    • C
      Fix bugs in virDomainMigrate v2 code. · 6dfc042c
      Chris Lalancette 提交于
      Paolo Bonzini points out that in my refactoring of the code for
      virDomainMigrate(), I added a check for the return value from
      virDomainMigratePerform().  The problem is that we don't want to
      exit if we fail, we actually want to go on and do
      virDomainMigrateFinish2() with a non-0 return code to clean things
      up.  Remove the check.
      
      While reproducing this issue, I also noticed that we wouldn't
      always properly propagate an error message.  In particular, I
      found that if you blocked off the migration ports (with iptables)
      and then tried the migration, it would actually fail but we would
      get no failure output from Qemu.  Therefore, we would think we
      succeeded, and leave a huge mess behind us.  Execute the monitor
      command "info migrate", and look for a failure string in there
      as well.
      Signed-off-by: NChris Lalancette <clalance@redhat.com>
      6dfc042c
    • M
      VMware ESX: Don't warn on some query parameter · b8ee9810
      Matthias Bolte 提交于
      * src/esx/esx_util.c: esxUtil_ParseQuery() warns if a known query
        parameter should be ignored due to the corresponding char/int pointer
        being NULL, instead of silently ignoring it. Fix the control flow.
      b8ee9810
    • M
      VMware ESX: Allow ethernet address type 'vpx' · b6e747ec
      Matthias Bolte 提交于
      * src/esx/esx_vmx.c: add an extra type of addressType beside 'static'
        and 'generated', 'vpx' indicates that the MAC address was generated
        by a vCenter.
      b6e747ec
    • D
      Don't blindly reorder disk drives · 2d6adabd
      Daniel P. Berrange 提交于
      Calling qsort() on the disks array causes disk to be
      unneccessarily re-ordered, potentially breaking the
      ability to boot if the boot disk gets moved later in
      the list. The new algorithm will insert a new disk as
      far to the end of the list as possible, while being
      ordered correctly wrt other disks on the same bus.
      
      * src/domain_conf.c, src/domain_conf.h: Remove disk sorting
        routines. Add API to insert a disk into existing list at
        the optimal position, without resorting disks
      * src/libvirt_private.syms: Export virDomainDiskInsert
      * src/xend_internal.c, src/xm_internal.c: Remove calls to
        qsort, use virDomainDiskInsert instead.
      * src/qemu_driver.c: Remove calls to qsort, use virDoaminDiskInsert
        instead. Fix reordering bugs when hotunplugging disks and
        networks. Fix memory leak in disk/net unplug
      2d6adabd
    • P
      Support for getting/setting number of cpus in VBox · fea5a0bd
      Pritesh Kothari 提交于
      * src/vbox/vbox_tmpl.c: adds support for getting/setting number of cpus
      fea5a0bd
    • D
      Misc fixes to secrets API code · 575b18c0
      Daniel P. Berrange 提交于
      * proxy/Makefile.am: Build storage_encryption_conf.c since its a
        dependancy of domain_conf.c
      * src/storage_encryption_conf.c: Disable XML parsing APis when
        build under proxy
      * src/test.c: Add a dummy no-op secrets driver for test suite
      575b18c0
    • D
      Only add glusterfs dep for Fedora >= 11 · 6a035507
      Daniel P. Berrange 提交于
      * libvirt.spec.in: Conditionalize glusterfs requires line for
        Fedora >= 11, since other distros don't have it available
      6a035507
    • D
      Remove redundant base64 include file · 721d3f06
      Daniel P. Berrange 提交于
      * src/storage_encryption_conf.c: Remove base64.h
      721d3f06
    • D
      Add Miloslav Trmač to AUTHORS file · 24121aa9
      Daniel P. Berrange 提交于
      24121aa9
    • M
      Make handling of monitor prompts more general. · 28b8cc31
      Miloslav Trmač 提交于
      * src/qemu_driver.c: Support arbitrary callbacks for "secondary
        prompts".  Reimplement qemudMonitorCommandExtra using such a
        callback.
      28b8cc31
    • M
      Don't assume buffered output echoes the command. · 077cd917
      Miloslav Trmač 提交于
      The if ((nlptr...)) implicitly assumes commptr != NULL (and that "buf"
      starts with "cmd").  Make the assumption explicit, it will be broken in
      a future patch.
      
      * src/qemu_driver.c: Don't assume buffered monitor output echoes the
        command.
      077cd917
    • M
      Attach encryption information to virDomainDiskDef. · f340964d
      Miloslav Trmač 提交于
      The XML allows <encryption format='unencrypted'/>, this implementation
      canonicalizes the internal representation so that "disk->encryption" is
      non-NULL iff encryption information is available.
      
      A domain with partial encryption information can be defined,
      completeness of the information is not verified.  The domain won't
      start until the remaining information is added, of course.
      
      * docs/formatdomain.html, docs/formatdomain.html.in: Document
        new encryption options for disks
      * docs/schemas/domain.rng: Pull in storage encryption schema
        rules
      * src/domain_conf.h, src/domain_conf.c: Wire up storage encryption
        XML parsing/formatting APIs
      f340964d
    • M
      Add support for encrypted (qcow) volume creation. · 46acb0f2
      Miloslav Trmač 提交于
      Supports only virStorageVolCreateXML, not virStorageVolCreateXMLFrom.
      
      Curiously, qemu-img does not need the passphrase for anything to create
      an encrypted volume.  This implementation thus does not need to touch
      any secrets to work with cooperating clients.  More generic passphrase
      handling is added in the next patch.
      
      * src/storage_backend.c: Request encryption when creating qcow/qcow2
        files
      * src/storage_backend_disk.c, src/storage_backend_fs.c,
        src/storage_backend_logical.c: Refuse to create volumes with
        encryption params set.
      46acb0f2
    • M
      Recognize encryption format of qcow volumes. · d288703d
      Miloslav Trmač 提交于
      (The implementation is not very generic, but that can be very
      easily rectified if/when new encryption formats appear.)
      
      * src/storage_backend_fs.c: Probe for qcow/qcow2 encryption
        algorithm field
      d288703d
    • M
      Attach encryption information to virStorageVolDef. · eda3af24
      Miloslav Trmač 提交于
      The XML allows <encryption format='unencrypted'/>, this implementation
      canonicalizes the internal representation so that "vol->encryption" is
      non-NULL iff the volume is encrypted.
      
      Note that partial encryption information (e.g. specifying an encryption
      format, but not the key/passphrase) is valid, libvirt will automatically
      choose value for the missing information during volume creation.  The
      user can read the volume XML, and use the unmodified <encryption> tag in
      future operations (without having to be able to understand) its contents.
      
      * docs/formatstorage.html, docs/formatstorage.html.in: Document
        storage volume encryption options
      * src/storage_conf.c, src/storage_conf.h: Hook up storage
        encryption XML handling
      * tests/storagevolschemadata/vol-qcow2.xml: Test case for encryption
        schema changes
      eda3af24
    • M
      Add volume encryption information handling. · 05b9b8fd
      Miloslav Trmač 提交于
      Define an <encryption> tag specifying volume encryption format and
      format-depenedent parameters (e.g. passphrase, cipher name, key
      length, key).
      
      Currently the only defined parameter is a reference to a "secret"
      (passphrase/key) managed using the virSecret* API.
      
      Only the qcow/qcow2 encryption format, and a "default" format used to
      let libvirt choose the format during volume creation, is currently
      supported.
      
      This patch does not add any users; the <encryption> tag is added in
      the following patches to both volumes (to support encrypted volume
      creation) and domains.
      
      * docs/*.html: Re-generate
      * docs/formatstorageencryption.html.in, docs/sitemap.html.in:
        Add page describing storage encryption data format
      * docs/schemas/Makefile.am, docs/schemas/storageencryption.rng:
        Add RNG schema for storage encryption format
      * po/POTFILES.in: Add src/storage_encryption_conf.c
      * src/libvirt_private.syms: Export virStorageEncryption* functions
      * src/storage_encryption_conf.h, src/storage_encryption_conf.c: Internal
        helper APIs for dealing with storage encryption format
      * libvirt.spec.in, mingw32-libvirt.spec.in: Add storageencryption.rng
        RNG schema
      05b9b8fd
    • M
      Secret manipulation API docs refresh & wire up python generator · 9dc3b993
      Miloslav Trmač 提交于
      Sample session:
      
      >>> import libvirt
      >>> c = libvirt.open('qemu:///session')
      
      >>> c.listSecrets()
      ['12247729-47d2-a783-88ce-b329d4781cd3', 'reee', 'abc']
      
      >>> s = c.secretDefineXML("<secret ephemeral='no' private='no'>\n<description>Something for use</description>\n<volume>/foo/bar</volume>\n</secret>\n")
      
      >>> s.UUIDString()
      '340c2dfb-811b-eda8-da9e-25ccd7bfd650'
      
      >>> s.XMLDesc()
      "<secret ephemeral='no' private='no'>\n  <uuid>340c2dfb-811b-eda8-da9e-25ccd7bfd650</uuid>\n  <description>Something for use</description>\n  <volume>/foo/bar</volume>\n</secret>\n"
      
      >>> s.setValue('abc\0xx\xffx')
      0
      
      >>> s.value()
      'abc\x00xx\xffx'
      
      >>> s.undefine()
      0
      
      * python/generator.py: Add rules for virSecret APIs
      * python/libvir.c, python/libvirt-python-api.xml: Manual impl of
        virSecretSetValue, virSecretGetValue$ and virConnectListSecrets APIs
      * python/libvirt_wrap.h, python/types.c: Wrapper for virSecret objects
      * docs/libvirt-api.xml, docs/libvirt-refs.xml,
        docs/html/libvirt-virterror.html, docs/html/libvirt-libvirt.html,
        docs/devhelp/libvirt-virterror.html, docs/devhelp/libvirt-libvirt.html:
        Re-generate with 'make api'
      9dc3b993
    • M
      Secret manipulation remote client · f68c91fa
      Miloslav Trmač 提交于
      * src/remote_internal.c: Implement client binding for new secrets
        APIs
      * src/datatypes.h: Add 'void *secretPrivateData' to virConnectPtr
        struct
      f68c91fa
    • M
      Secret manipulation libvirtd wire protocol & remote dispatcher · 0de63c67
      Miloslav Trmač 提交于
      * qemud/remote_protocol.x: Define wire protocol for secrets public
        APIs
      * qemud/remote_protocol.h, qemud/remote_protocol.c,
        qemud/remote_dispatch_table.h, qemud/remote_dispatch_ret.h,
        qemud/remote_dispatch_prototypes.h, qemud/remote_dispatch_args.h:
        Re-generate from updated protocol definition
      * qemud/remote.c: Implement RPC dispatchers for new secrets APIs
      0de63c67
    • M
      Secret manipulation public API implementation · b35f0131
      Miloslav Trmač 提交于
      * include/libvirt/virterror.h, src/virterror.c: Add VIR_ERR_INVALID_SECRET
        and VIR_FROM_SECRET
      * src/libvirt.c: Define stubs for every new public API
      b35f0131
    • M
      Secret manipulation internal API · eb42e0ab
      Miloslav Trmač 提交于
      * include/libvirt/virterror.h, src/virterror.c: Add VIR_WAR_NO_SECRET
      * src/libvirt_private.syms, src/datatypes.h, src/datatypes.c: Type
        virSecret struct definition and helper APIs
      * src/driver.h: Sub-driver API definitions for secrets
      * src/libvirt.c: Define new sub-driver for secrets
      eb42e0ab
    • M
      Secret manipulation public API · 6acc17af
      Miloslav Trmač 提交于
      This patch adds a "secret" as a separately managed object, using a
      special-purpose API to transfer the secret values between nodes and
      libvirt users.
      
      * docs/schemas/secret.rng, docs/schemas/Makefilem.am: Add new
        schema for virSecret objects
      * docs/*html: Re-generated
      * docs/formatsecret.html.in, docs/sitemap.html.in: Add page
        describing the virSecret XML schema
      * include/libvirt/libvirt.h.in: Define the new virSecret public
        API
      * src/libvirt_public.syms: Export symbols for new public APIs
      * mingw32-libvirt.spec.in, libvirt.spec.in: Add secret.rng to
        files list
      6acc17af
  3. 01 9月, 2009 5 次提交
  4. 30 8月, 2009 1 次提交
    • J
      Fix sexpr2string() to handle empty list. · 8fd7eee9
      Jim Fehlig 提交于
      S-expression containing empty lists, e.g. (cpus (() () () ())),
      was not being handled properly in sexpr2string() serialization.
      Emit an empty list when encountering NIL sexpr kind.
      8fd7eee9
  5. 28 8月, 2009 2 次提交
  6. 26 8月, 2009 1 次提交
  7. 25 8月, 2009 1 次提交
    • D
      Support new PolicyKit 1.0 API · 8e06c8b3
      Daniel P. Berrange 提交于
      * configure.in: Check for pkcheck which indicates new policykit
      * qemud/Makefile.am: Install different versions of policy
      * qemud/libvirtd.policy: Rename to libvirtd.policy-0
      * qemud/libvirtd.policy-1: new style policy
      * qemud/qemud.c, qemud/qemud.h, qemud/remote.c: Support new
        policykit API via external pkcheck helper
      * src/remote_internal.c: Don't prompt for polkit auth with new
        policykit API
      * libvirt.spec.in: deal with new policy install locations & deps
      8e06c8b3
  8. 21 8月, 2009 2 次提交