1. 31 1月, 2018 3 次提交
  2. 29 1月, 2018 1 次提交
    • E
      nodedev: Move the sysfs-related cap handling to node_device_conf.c · f83c7c88
      Erik Skultety 提交于
      The capabilities are defined/parsed/formatted/queried from this module,
      no reason for 'update' not being part of the module as well. This also
      involves some module-specific prefix changes.
      This patch also drops the node_device_linux_sysfs module from the repo
      since:
      a) it only contained the capability handlers we just moved
      b) it's only linked with the driver (by design) and thus unreachable to
      other modules
      c) we touch sysfs across all the src/util modules so the module being
      deleted hasn't been serving its original intention for some time already.
      Signed-off-by: NErik Skultety <eskultet@redhat.com>
      f83c7c88
  3. 26 1月, 2018 1 次提交
  4. 08 1月, 2018 1 次提交
  5. 13 12月, 2017 1 次提交
  6. 10 11月, 2017 1 次提交
    • D
      vbox: Add support for 5.2.x · 0eda09f4
      Dawid Zamirski 提交于
      Simply add the 5.2 SDK header to the existing unified framework. No
      other special handling is needed as there's no API break between
      existing 5.1 and the just added 5.2.
      0eda09f4
  7. 03 11月, 2017 1 次提交
    • A
      Remove backslash alignment attempts · 3e7db8d3
      Andrea Bolognani 提交于
      Right-aligning backslashes when defining macros or using complex
      commands in Makefiles looks cute, but as soon as any changes is
      required to the code you end up with either distractingly broken
      alignment or unnecessarily big diffs where most of the changes
      are just pushing all backslashes a few characters to one side.
      
      Generated using
      
        $ git grep -El '[[:blank:]][[:blank:]]\\$' | \
          grep -E '*\.([chx]|am|mk)$$' | \
          while read f; do \
            sed -Ei 's/[[:blank:]]*[[:blank:]]\\$/ \\/g' "$f"; \
          done
      Signed-off-by: NAndrea Bolognani <abologna@redhat.com>
      3e7db8d3
  8. 07 10月, 2017 1 次提交
    • W
      build: isolate core libvirt libs deps from xen runtime · 6c200c76
      Wim ten Have 提交于
      Generating libvirt packages per make rpm, "with-libxl=1" and "with-xen=1",
      adds strict runtime dependencies per libxenlight for xen-libs package from
      core libvirt-libs package.  This is not necessary and unfortunate since
      those dependencies set demand to "xen-libs" package even when there's no
      need for libvirt xen or libxl driver components.
      
      This patch is to have two separate xenconfig lib tool libraries: one for
      core libvirt (without XL), and a another that contains xl for libxl driver
      (libvirt_driver_libxl_impl.la) which when loading the driver, loads the
      remaining symbols (xen{Format,Parse}XL. For the user/sysadmin, this means
      the xen dependencies are moved into libxl driver, instead of core libvirt.
      Signed-off-by: NJoao Martins <joao.m.martins@oracle.com>
      Signed-off-by: NWim ten Have <wim.ten.have@oracle.com>
      Reviewed-by: NJim Fehlig <jfehlig@suse.com>
      6c200c76
  9. 20 9月, 2017 1 次提交
    • D
      Link libvirt_util.la with gnutls · c120ce16
      Daniel P. Berrange 提交于
      The util/vircrypto.c file uses gnutls, so we must directly link
      libvirt_util.la with gnutls to avoid errors on OS which do not
      resolve symbols against indirectly linked libraries.
      
      This fixes a build failure on Ubuntu Trusty
      
        CCLD     storagevolxml2argvtest
      /usr/bin/ld: ../src/.libs/libvirt_util.a(libvirt_util_la-vircrypto.o): undefined reference to symbol 'gnutls_strerror@@GNUTLS_1_4'
      
      //usr/lib/x86_64-linux-gnu/libgnutls.so.26: error adding symbols: DSO missing from command line
      Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
      c120ce16
  10. 14 8月, 2017 1 次提交
  11. 27 7月, 2017 2 次提交
  12. 26 7月, 2017 1 次提交
    • P
      util: introduce virFileCache · ac3eb2ab
      Pavel Hrdina 提交于
      The new virFileCache will nicely handle the caching logic for any data
      that we would like to cache.  For each type of data we will just need
      to implement few handlers that will take care of creating, validating,
      loading and saving the cached data.
      
      The cached data must be an instance of virObject.
      
      Currently we cache QEMU capabilities which will start using
      virFileCache.
      Signed-off-by: NPavel Hrdina <phrdina@redhat.com>
      Reviewed-by: NJiri Denemark <jdenemar@redhat.com>
      ac3eb2ab
  13. 19 7月, 2017 1 次提交
  14. 11 7月, 2017 1 次提交
  15. 07 6月, 2017 1 次提交
  16. 26 5月, 2017 1 次提交
  17. 09 5月, 2017 1 次提交
  18. 26 4月, 2017 2 次提交
  19. 19 4月, 2017 1 次提交
    • J
      network: Introduce virnetworkobj · bddbda99
      John Ferlan 提交于
      Move all the virNetworkObj related API/data structures into their own
      modules virnetworkobj.{c,h} from the network_conf.{c,h}
      
      Purely code motion at this point plus adjustments to cleanly build
      bddbda99
  20. 08 4月, 2017 1 次提交
    • D
      hyperv: add support for Hyper-V 2012 and newer · 3372f8fb
      Dawid Zamirski 提交于
      This patch reworks the Hyper-V driver structs and the code generator
      to provide seamless support for both Hyper-V 2008 and 2012 or newer.
      This does not implement any new libvirt APIs, it just adapts existing
      2008-only driver to also handle 2012 and newer by sharing as much
      driver code as possible (currently it's all of it :-)). This is needed
      to set the foundation before we can move forward with implementing the
      rest of the driver APIs.
      
      With the 2012 release, Microsoft introduced "v2" version of Msvm_* WMI
      classes. Those are largely the same as "v1" (used in 2008) but have some
      new properties as well as need different wsman request URIs. To
      accomodate those differences, most of work went into the code generator
      so that it's "aware" of possibility of multiple versions of the same WMI
      class and produce C code accordingly.
      
      To accomplish this the following changes were made:
      
       * the abstract hypervObject struct's data member was changed to a union
         that has "common", "v1" and "v2" members. Those are structs that
         represent WMI classes that we get back from wsman response. The
         "common" struct has members that are present in both "v1" and "v2"
         which the driver API callbacks can use to read the data from in
         version-independent manner (if version-specific member needs to be
         accessed the driver can check priv->wmiVersion and read from "v1" or
         "v2" as needed). Those structs are guaranteed to be  memory aligned
         by the code generator (see the align_property_members implementation
         that takes care of that)
       * the generator produces *_WmiInfo for each WMI class "family" that
         holds an array of hypervWmiClassInfoPtr each providing information
         as to which request URI to use for each "version" of given WMI class
         as well as XmlSerializerInfo struct needed to unserilize WS-MAN
         responsed into the data structs. The driver uses those to make proper
         WS-MAN request depending on which version it's connected to.
       * the generator no longer produces "helper" functions such as
         hypervGetMsvmComputerSystemList as those were originally just simple
         wrappers around hypervEnumAndPull, instead those were hand-written
         now (to keep driver changes minimal). The reason is that we'll have
         more code coming implementing missing libvirt APIs and surely code
         patterns will emerge that would warrant more useful "utility" functions
         like that.
       * a hypervInitConnection was added to the driver which "detects"
         Hyper-V version by testing simple wsman request using v2 then falling
         back to v1, obviously if both fail, the we're erroring out.
      
      To express how the above translates in code:
      
      void
      hypervImplementSomeLibvirtApi(virConnectPtr conn, ...)
      {
          hypervPrivate *priv = conn->privateData;
          virBuffer query = VIR_BUFFER_INITIALIZER;
          hypervWqlQuery wqlQuery = HYPERV_WQL_QUERY_INITIALIZER;
          Msvm_ComputerSystem *list = NULL; /* typed hypervObject instance */
      
          /* the WmiInfo struct has the data needed for wsman request and
           * response handling for both v1 and v2 */
          wqlQuery.info = Msvm_ComputerSystem_WmiInfo;
          wqlQuery.query = &query;
      
          virBufferAddLit(&query, "select * from Msvm_ComputerSystem");
      
          if (hypervEnumAndPull(priv, &wqlQuery, (hypervObject **) &list) < 0) {
              goto cleanup;
          }
      
          if (list == NULL) {
              /* none found */
              goto cleanup;
          }
      
          /* works with v1 and v2 */
          char *vmName = list->data.common->Name;
      
          /* access property that is in v2 only */
          if (priv->wmiVersion == HYPERV_WMI_VERSION_V2)
              char *foo = list->data.v2->V2Property;
          else
              char *foo = list->data.v1->V1Property;
      
       cleanup:
          hypervFreeObject(priv, (hypervObject *)list);
      }
      3372f8fb
  21. 06 4月, 2017 1 次提交
  22. 28 3月, 2017 1 次提交
  23. 27 3月, 2017 5 次提交
    • E
      util: Introduce new module virmdev · e1ec4f88
      Erik Skultety 提交于
      Beside creation, disposal, getter, and setter methods the module exports
      methods to work with lists of mediated devices.
      Signed-off-by: NErik Skultety <eskultet@redhat.com>
      e1ec4f88
    • M
      Remove src/nodeinfo · 26ae4e48
      Martin Kletzander 提交于
      There is no "node driver" as there was before, drivers have to do
      their own ACL checking anyway, so they all specify their functions and
      nodeinfo is basically just extending conf/capablities.  Hence moving
      the code to src/conf/ is the right way to go.
      
      Also that way we can de-duplicate some code that is in virsysfs and/or
      virhostcpu that got duplicated during the virhostcpu.c split.  And
      Some cleanup is done throughout the changes, like adding the vir*
      prefix etc.
      Signed-off-by: NMartin Kletzander <mkletzan@redhat.com>
      26ae4e48
    • M
      Move src/fdstream to src/util/virfdstream · bdcb1995
      Martin Kletzander 提交于
      There is no reason for it not to be in the utils, all global symbols
      under that file already have prefix vir* and there is no reason for it
      to be part of DRIVER_SOURCES because that is just a leftover from
      older days (pre-driver modules era, I believe).
      Signed-off-by: NMartin Kletzander <mkletzan@redhat.com>
      bdcb1995
    • M
      util: Add virsysfs for handling sysfs files · a7b902c0
      Martin Kletzander 提交于
      By using this we are able to easily switch the sysfs path being
      used (fake it).  This will not only help tests in the future but can
      be also used from files where the code is duplicated currently.
      Signed-off-by: NMartin Kletzander <mkletzan@redhat.com>
      a7b902c0
    • P
      qemu: block: Add code to allow detection of auto-allocated node names · dbad8f8a
      Peter Krempa 提交于
      qemu for some time already sets node names automatically for the block
      nodes. This patch adds code that attempts a best-effort detection of the
      node names for the backing chain from the output of
      'query-named-block-nodes'. The only drawback is that the data provided
      by qemu needs to be matched by the filename as seen by qemu and thus
      if two disks share a single backing store file the detection won't work.
      
      This will allow us to use qemu commands such as
      'block-set-write-threshold' which only accepts node names.
      
      In this patch only the detection code is added, it will be used later.
      dbad8f8a
  24. 18 3月, 2017 1 次提交
  25. 16 3月, 2017 1 次提交
  26. 15 3月, 2017 1 次提交
    • R
      bhyve: add config file support · 32b67545
      Roman Bogorodskiy 提交于
      Introduce config file support for the bhyve driver. The only available
      setting at present is 'firmware_dir' for specifying a directory with
      UEFI firmware files.
      32b67545
  27. 08 3月, 2017 1 次提交
    • J
      conf: Introduce virnwfilterobj · 079747a3
      John Ferlan 提交于
      Move all the NWFilterObj API's into their own module virnwfilterobj
      from the nwfilter_conf
      
      Purely code motion at this point, plus adjustments to cleanly build.
      079747a3
  28. 07 3月, 2017 2 次提交
  29. 06 3月, 2017 1 次提交
    • J
      conf: Introduce virinterfaceobj · eabeff8e
      John Ferlan 提交于
      Move all the InterfaceObj API's into their own module virinterfaceobj
      from the interface_conf
      
      Purely code motion at this point.
      eabeff8e
  30. 04 3月, 2017 1 次提交
    • J
      conf: Introduce virnodedeviceobj · bc20200e
      John Ferlan 提交于
      Move all the NodeDeviceObj API's into their own module virnodedeviceobj
      from the node_device_conf
      
      Purely code motion at this point, plus adjustments to cleanly build.
      bc20200e
  31. 22 2月, 2017 1 次提交
    • P
      storage: Turn storage backends into dynamic modules · 0a6d3e51
      Peter Krempa 提交于
      If driver modules are enabled turn storage driver backends into
      dynamically loadable objects. This will allow greater modularity for
      binary distributions, where heavyweight dependencies as rbd and gluster
      can be avoided by selecting only a subset of drivers if the rest is not
      necessary.
      
      The storage modules are installed into 'LIBDIR/libvirt/storage-backend/'
      and users can override the location by using
      'LIBVIRT_STORAGE_BACKEND_DIR' environment variable.
      
      rpm based distros will at this point install all the backends when
      libvirt-daemon-driver-storage package is installed.
      0a6d3e51