1. 08 1月, 2015 4 次提交
    • P
      src/Makefile: Fix parallel build after xen_xl_disk parser introduction · 533349ff
      Pavel Hrdina 提交于
      Well, the parallel build doesn't work as there are not dependencies
      set correctly. When running 'make -j' I see this error:
      
      make[2]: Entering directory '/home/zippy/work/libvirt/libvirt.git/src'
        GEN      util/virkeymaps.h
        GEN      locking/lock_protocol.h
      make[2]: *** No rule to make target 'xenconfig/xen_xl_disk.h', needed by 'all'.  Stop.
      make[2]: *** Waiting for unfinished jobs....
        GEN      lxc/lxc_controller_dispatch.h
      
      The fix is to correctly set dependencies by letting make know that .c
      and .h are to be generated from .l. Moreover, the section is moved
      closer to the other section which uses it.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      Signed-off-by: NPavel Hrdina <phrdina@redhat.com>
      533349ff
    • P
    • P
      Revert "src/Makefile.am: fix build breaker for xenconfig" · e662968f
      Pavel Hrdina 提交于
      This reverts commit 703ef966.
      Signed-off-by: NPavel Hrdina <phrdina@redhat.com>
      e662968f
    • E
      build: fix xenconfig VPATH builds · 1b21d300
      Eric Blake 提交于
      Ever since commit 2c78051a split out a helper library for the sake of
      changing CFLAGS, a VPATH build with xenconfig enabled has failed:
      
        CC       xenconfig/libvirt_xenxldiskparser_la-xen_xl_disk.lo
        ../../src/xenconfig/xen_xl_disk.l:37:21: fatal error: xen_xl.h: No such file or directory
         # include "xen_xl.h"
                   ^
        compilation terminated.
        Makefile:9462: recipe for target 'xenconfig/libvirt_xenxldiskparser_la-xen_xl_disk.lo' failed
      
      The solution is to tell the build to look for xen_xl.h relative
      to $(srcdir), since we keep that file under version control.
      
      [Not fixed here - the raw use of -Wno-unused-parameter in CFLAGS
      is NOT portable; ideally, we should be doing a configure test
      and only supplying that argument when we know the compiler supports
      -Wunused-parameter; but that's a patch for another day]
      
      [Not fixed here - there are still issues with parallel builds hitting
      a race between generating the files and trying to compile/distribute
      them]
      
      * src/Makefile.am (libvirt_xenxldiskparser_la_CFLAGS): Add another
      include directory.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      1b21d300
  2. 05 1月, 2015 1 次提交
  3. 04 1月, 2015 1 次提交
    • K
      src/xenconfig: Xen-xl parser · 2c78051a
      Kiarie Kahurani 提交于
      Introduce a Xen xl parser
      
      This parser allows for users to convert the new xl disk format and
      spice graphics config to libvirt xml format and vice versa. Regarding
      the spice graphics config, the code is pretty much straight forward.
      For the disk {formating, parsing}, this parser takes care of the new
      xl format which include positional parameters and key/value parameters.
      In xl format disk config a <diskspec> consists of parameters separated by
      commas. If the parameters do not contain an '=' they are automatically
      assigned to certain options following the order below
      
         target, format, vdev, access
      
      The above are the only mandatory parameters in the <diskspec> but there
      are many more disk config options. These options can be specified as
      key=value pairs. This takes care of the rest of the options such as
      
        devtype, backend, backendtype, script, direct-io-safe,
      
      The positional paramters can also be specified in key/value form
      for example
      
          /dev/vg/guest-volume,,hda
          /dev/vg/guest-volume,raw,hda,rw
          format=raw, vdev=hda, access=rw, target=/dev/vg/guest-volume
      
      are interpleted to one config.
      
      In xm format, the above diskspec would be written as
      
      phy:/dev/vg/guest-volume,hda,w
      
      The disk parser is based on the same parser used successfully by
      the Xen project for several years now.  Ian Jackson authored the
      scanner, which is used by this commit with mimimal changes.  Only
      the PREFIX option is changed, to produce function and file names
      more consistent with libvirt's convention.
      Signed-off-by: NKiarie Kahurani <davidkiarie4@gmail.com>
      Signed-off-by: NJim Fehlig <jfehlig@suse.com>
      2c78051a
  4. 11 12月, 2014 1 次提交
    • M
      network: Bring netdevs online later · 82977058
      Matthew Rosato 提交于
      Currently, MAC registration occurs during device creation, which is
      early enough that, during live migration, you end up with duplicate
      MAC addresses on still-running source and target devices, even though
      the target device isn't actually being used yet.
      This patch proposes to defer MAC registration until right before
      the guest can actually use the device -- In other words, right
      before starting guest CPUs.
      Signed-off-by: NMatthew Rosato <mjrosato@linux.vnet.ibm.com>
      Signed-off-by: NLaine Stump <laine@laine.org>
      82977058
  5. 04 12月, 2014 1 次提交
  6. 29 10月, 2014 3 次提交
    • M
      src/Makefile.am: Add forgotten backslash · 233ecdea
      Michal Privoznik 提交于
      As I've pushed 5892944f I haven't noticed one small nitpick.
      There was this backslash missing on the line 1231 in the
      enumeration of libraries to be added to vbox storage driver. This
      resulted in nondeterministic build which sometimes succeeded and
      sometimes failed.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      233ecdea
    • T
      vbox: New storage driver · 5892944f
      Taowei Luo 提交于
      This patch provides the new stroage driver for vbox. The work
      is similar with patch 87dea4fc and the next b4022de3.
      5892944f
    • T
      vbox: Rewrite vbox-independent functions · 459886d4
      Taowei Luo 提交于
      This patch rewrites the following functions
          *vboxStorageOpen
          *vboxStorageClose
          *vboxConnectNumOfStoragePools
          *vboxConnectListStoragePools
          *vboxStoragePoolLookupByName
      
      These functions do not call any vbox API, so I directly move it
      from vbox_tmpl.c to vbox_storage.c
      
      A small improvement is made on vboxConnectListStoragePools.
      The if condition nnames == 1 is modified to nnames > 0. So if the
      caller put more than one slot to get active storage pools, the new
      function will return exactly one, while the old one would only
      return 0.
      459886d4
  7. 25 10月, 2014 1 次提交
  8. 24 10月, 2014 10 次提交
  9. 08 10月, 2014 1 次提交
    • M
      esx: Add libcurl based stream driver · 125007d3
      Matthias Bolte 提交于
      This allows to implement libvirt functions that use streams, such as
      virDoaminScreenshot, without the need to store the downloaded data in
      a temporary file first. The stream driver directly interacts with
      libcurl to send and receive data.
      
      The driver uses the libcurl multi interface that allows to do a transfer
      in multiple curl_multi_perform() calls. The easy interface would do the
      whole transfer in a single curl_easy_perform() call. This doesn't work
      with the libvirt stream API that is driven by multiple calls to the
      virStreamSend() and virStreamRecv() functions.
      
      The curl_multi_wait() function is used to do blocking operations. But it
      was added in libcurl 7.28.0. For older versions it is emulated using the
      socket callback of the multi interface.
      
      The current driver only supports blocking operations. There is already
      some code in place for non-blocking mode but it is not complete.
      125007d3
  10. 03 10月, 2014 4 次提交
    • M
      Makefile: Fix build without driver modules · b4022de3
      Michal Privoznik 提交于
      After 87dea4fc one can observe a build failure:
      
      ./autogen.sh --system --without-driver-modules && make
      
        CCLD     libvirtd
      ../src/.libs/libvirt_driver_vbox.a(libvirt_driver_vbox_impl_la-vbox_driver.o):
      In function `vboxNetworkRegister':
      /home/jtomko/work/libvirt/libvirt.git/src/vbox/vbox_driver.c:168: undefined
      reference to `vboxGetNetworkDriver'
      collect2: error: ld returned 1 exit status
      make[3]: *** [libvirtd] Error 1
      
      The problem is that when building without driver modules the VBOX
      network driver is not linked into the the VBOX driver.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      b4022de3
    • T
      vbox: New network driver · 87dea4fc
      Taowei 提交于
      This patch seperate the domain driver and the network driver.
      
      libvirt_driver_vbox_impl.la has been linked in the network driver.
      So that the version specified codes in vbox_V*.c would only be
      compiled once.
      
      The vboxGetNetworkDriver provides a simple interface to get vbox
      network driver.
      87dea4fc
    • T
      vbox: Rewrite vboxNetworkOpen · cd7a5d89
      Taowei 提交于
      cd7a5d89
    • T
      vbox: Interfaces for register per parties · fac5d061
      Taowei 提交于
      The patch dbb4cbf5 by Michal has splited the vbox driver into
      three parties. This modification brings a more suitable interface
      to the previous patch.
      
      The new function vboxGetDriver is introduced to get the
      corresponding vbox domain driver directly thought the vbox version.
      
      Functions like vboxGetNetworkDriver and vboxGetStorageDriver
      will be introduced after rewriting it's drivers.
      
      This patch, by the way, fixed the align problem for vbox in
      Makefile.am
      fac5d061
  11. 25 9月, 2014 2 次提交
    • D
      parallels: login to parallels SDK · e7bb373f
      Dmitry Guryanov 提交于
      Add files parallels_sdk.c and parallels_sdk.h for code
      which works with SDK, so libvirt's code will not mix with
      dealing with parallels SDK.
      
      To use Parallels SDK you must first call PrlApi_InitEx function,
      and then you will be able to connect to a server with
      PrlSrv_LoginLocalEx function. When you've done you must call
      PrlApi_Deinit. So let's call PrlApi_InitEx on first .connectOpen,
      count number of connections and deinitialize, when this counter
      becomes zero.
      Signed-off-by: NDmitry Guryanov <dguryanov@parallels.com>
      e7bb373f
    • D
      parallels: build with parallels SDK · 64018e0c
      Dmitry Guryanov 提交于
      Executing prlctl command is not an optimal way to interact with
      Parallels Cloud Server (PCS), it's better to use parallels SDK,
      which is a remote API to paralles dispatcher service.
      
      We prepared opensource version of this SDK and published it on
      github, it's distributed under LGPL license. Here is a git repo:
      https://github.com/Parallels/parallels-sdk.
      
      To build with parallels SDK user should get compiler and linker
      options from pkg-config 'parallels-sdk' file. So fix checks in
      configure script and build with parallels SDK, if that pkg-config
      file exists and add gcc options to makefile.
      Signed-off-by: NDmitry Guryanov <dguryanov@parallels.com>
      64018e0c
  12. 24 9月, 2014 2 次提交
  13. 10 9月, 2014 1 次提交
    • M
      qemu: Automatically create NVRAM store · 742b08e3
      Michal Privoznik 提交于
      When using split UEFI image, it may come handy if libvirt manages per
      domain _VARS file automatically. While the _CODE file is RO and can be
      shared among multiple domains, you certainly don't want to do that on
      the _VARS file. This latter one needs to be per domain. So at the
      domain startup process, if it's determined that domain needs _VARS
      file it's copied from this master _VARS file. The location of the
      master file is configurable in qemu.conf.
      
      Temporary, on per domain basis the location of master NVRAM file can
      be overridden by this @template attribute I'm inventing to the
      <nvram/> element. All it does is holding path to the master NVRAM file
      from which local copy is created. If that's the case, the map in
      qemu.conf is not consulted.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      Acked-by: NLaszlo Ersek <lersek@redhat.com>
      742b08e3
  14. 27 8月, 2014 1 次提交
    • M
      vbox: Register per partes · dbb4cbf5
      Michal Privoznik 提交于
      Since times when vbox moved to the daemon (due to some licensing
      issue) the subdrivers that vbox implements were registered, but not
      opened since our generic subdrivers took priority. I've tried to fix
      this in 65b7d553 but it was not correct. Apparently moving
      vbox driver registration upfront changes the default connection URI
      which makes some users sad. So, this commit breaks vbox into pieces
      and register vbox's network and storage drivers first, and vbox driver
      then at the end. This way, the vbox driver is registered in the order
      it always was, but its subdrivers are registered prior the generic
      ones.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      Signed-off-by: NMartin Kletzander <mkletzan@redhat.com>
      dbb4cbf5
  15. 19 8月, 2014 2 次提交
    • J
      src/xenconfig: move common parsing/formatting to xen_common · 337a1362
      Jim Fehlig 提交于
      XM and XL config are very similar.  Disks are specified differently
      in XL, but the old XM disk config is still supported by XL.  XL also
      supports new config like spice that was never supported by XM.
      
      This patch moves all the common parsing and formatting functions to
      the new file xen_common.c and adapts the XM parser/formatter accordingly.
      This restructuring paves way for introducing an XL parser/formatter in
      the future.
      
      While moving the code, fixup whitespace, comments, and style issues.
      Signed-off-by: NJim Fehlig <jfehlig@suse.com>
      337a1362
    • J
      xen: rename xenxs to xenconfig · 870c90c7
      Jim Fehlig 提交于
      src/xenxs contains parsing/formating functions for the various xen
      config formats, and is better named src/xenconfig.
      Signed-off-by: NJim Fehlig <jfehlig@suse.com>
      870c90c7
  16. 15 8月, 2014 1 次提交
    • T
      vbox: Begin to rewrite, vboxConnectOpen · 7f0f415b
      Taowei 提交于
      Introduce vbox_uniformed_api to deal with version conflicts. Use
      vbox_install_api to register the currect vboxUniformedAPI with
      vbox version.
      
      vboxConnectOpen has been rewritten.
      7f0f415b
  17. 12 8月, 2014 1 次提交
    • R
      storage: ZFS support · 0257d06b
      Roman Bogorodskiy 提交于
      Implement ZFS storage backend driver. Currently supported
      only on FreeBSD because of ZFS limitations on Linux.
      
      Features supported:
      
       - pool-start, pool-stop
       - pool-info
       - vol-list
       - vol-create / vol-delete
      
      Pool definition looks like that:
      
       <pool type='zfs'>
        <name>myzfspool</name>
        <source>
          <name>actualpoolname</name>
        </source>
       </pool>
      
      The 'actualpoolname' value is a name of the pool on the system,
      such as shown by 'zpool list' command. Target makes no sense
      here because volumes path is always /dev/zvol/$poolname/$volname.
      
      User has to create a pool on his own, this driver doesn't
      support pool creation currently.
      
      A volume could be used with Qemu by adding an entry like this:
      
          <disk type='volume' device='disk'>
            <driver name='qemu' type='raw'/>
            <source pool='myzfspool' volume='vol5'/>
            <target dev='hdc' bus='ide'/>
          </disk>
      0257d06b
  18. 17 7月, 2014 1 次提交
  19. 16 7月, 2014 1 次提交
    • R
      util: virstatslinux: make more generic · 5559a8b8
      Roman Bogorodskiy 提交于
      Rename linuxDomainInterfaceStats to virNetInterfaceStats in order
      to allow adding platform specific implementations without
      making consumer worrying about specific implementation to be used.
      
      Also, rename util/virstatslinux.c to util/virstats.c so placing
      other platform specific implementations into this file don't
      look unexpected from the file name.
      5559a8b8
  20. 03 7月, 2014 1 次提交
    • M
      Introduce domain_capabilities · 614581f3
      Michal Privoznik 提交于
      This new module holds and formats capabilities for emulator. If you
      are about to create a new domain, you may want to know what is the
      host or hypervisor capable of. To make sure we don't regress on the
      XML, the formatting is not something left for each driver to
      implement, rather there's general format function.
      
      The domain capabilities is a lockable object (even though the locking
      is not necessary yet) which uses reference counter.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      614581f3