1. 29 4月, 2016 2 次提交
    • B
      rpc: Don't leak fd via CreateXMLWithFiles · 5ba48584
      Ben Gray 提交于
      FD passing APIs like CreateXMLWithFiles or OpenGraphicsFD will leak
      file descriptors. The user passes in an fd, which is dup()'d in
      virNetClientProgramCall. The new fd is what is transfered to the
      server virNetClientIOWriteMessage.
      
      Once all the fds have been written though, the parent msg->fds list
      is immediately free'd, so the individual fds are never closed.
      
      This closes each FD as its send to the server, so all fds have been
      closed by the time msg->fds is free'd.
      
      https://bugzilla.redhat.com/show_bug.cgi?id=1159766
      5ba48584
    • M
      vz: fix disk enumeration · cdbbb93a
      Mikhail Feoktistov 提交于
      If we want to delete all disks for container or vm
      we should make a loop from 0 to NumberOfDisks and always
      use zero index in PrlVmCfg_GetHardDisk to get disk handle.
      When we delete first disk after that numbers of other disks
      will be changed, start from 0 to NumberOfDisks-1.
      That's why we should always use zero index.
      cdbbb93a
  2. 28 4月, 2016 3 次提交
  3. 27 4月, 2016 3 次提交
  4. 26 4月, 2016 17 次提交
    • C
      conf: Drop restrictions on rng backend path · 67f2b727
      Cole Robinson 提交于
      Currently we only allow /dev/random and /dev/hwrng as host input
      for <rng><backend model='random'/> device. This was added after
      various upstream discussions in commit 4932ef45
      
      However this restriction has generated quite a few complaints over
      the years, so a new discussion was initiated:
      
      http://www.redhat.com/archives/libvir-list/2016-April/msg00987.html
      
      Several people suggested removing the restriction, and nobody really
      spoke up to defend it. So this patch drops the path restriction
      entirely
      
      https://bugzilla.redhat.com/show_bug.cgi?id=1074464
      67f2b727
    • C
      remote: Don't reject remote polkit if client lacks support · 84371303
      Cole Robinson 提交于
      If you compile a client --without-polkit, and connect to a URI that needs
      polkit auth, the connection will fail with:
      
      $ ./tools/virsh --connect qemu+ssh://crobinso@machine/system
      error: failed to connect to the hypervisor
      error: authentication failed: unsupported authentication type 2
      
      This is because the client side portion of the polkit handling is
      compiled out. However, nothing polkit specific is actually required
      of the client.
      
      Fix that error by unconditionally compiling the basic polkit client
      handling.
      
      https://bugzilla.redhat.com/show_bug.cgi?id=635529
      84371303
    • J
      secret: Change virSecretDef variable names · 662bf30c
      John Ferlan 提交于
      Change 'ephemeral' to 'isephemeral' and 'private' to 'isprivate' since
      both are bools.
      662bf30c
    • J
      secret: Introduce virSecretObjGetValue and virSecretObjGetValueSize · 43d3e3c1
      John Ferlan 提交于
      Introduce the final accessor's to _virSecretObject data and move the
      structure from virsecretobj.h to virsecretobj.c
      
      The virSecretObjSetValue logic will handle setting both the secret
      value and the value_size. Some slight adjustments to the error path
      over what was in secretSetValue were made.
      
      Additionally, a slight logic change in secretGetValue where we'll
      check for the internalFlags and error out before checking for
      and erroring out for a NULL secret->value. That way, it won't be
      obvious to anyone that the secret value wasn't set rather they'll
      just know they cannot get the secret value since it's private.
      43d3e3c1
    • J
      secret: Introduce virSecretObj{Get|Set}Def · 9e1e5621
      John Ferlan 提交于
      Introduce fetch and set accessor to the secretObj->def field for usage
      by the driver to avoid the driver needing to know the format of virSecretObj
      9e1e5621
    • J
      secret: Introduce virSecretObjSave{Config|Data} · ac9ffd60
      John Ferlan 提交于
      Move and rename the secretRewriteFile, secretSaveDef, and secretSaveValue
      from secret_driver to virsecretobj
      
      Need to make some slight adjustments since the secretSave* functions
      called secretEnsureDirectory, but otherwise mostly just a move of code.
      ac9ffd60
    • J
      secret: Introduce virSecretObjDelete{Config|Data} · d467ac07
      John Ferlan 提交于
      Move and rename secretDeleteSaved from secret_driver into virsecretobj and
      split it up into two parts since there is error path code that looks to
      just delete the secret data file
      d467ac07
    • J
      secret: Move and rename secretLoadAllConfigs · 85ec94f8
      John Ferlan 提交于
      Move to secret_conf.c and rename to virSecretLoadAllConfigs. Also includes
      moving/renaming the supporting virSecretLoad, virSecretLoadValue, and
      virSecretLoadValidateUUID.
      85ec94f8
    • J
      secret: Use the hashed virSecretObjList · 993f9128
      John Ferlan 提交于
      This patch replaces most of the guts of secret_driver.c with recently
      added secret_conf.c APIs in order manage secret lists and objects
      using the hashed virSecretObjList* lookup API's.
      993f9128
    • J
      secret: Introduce virSecretObjListGetUUIDs · bb1fba62
      John Ferlan 提交于
      Add function to return counted listed of uuids to from the hashed secrets
      object list. This will replace the guts of secretConnectListSecrets.
      bb1fba62
    • J
      secret: Introduce virSecretObjListExport · d12c6721
      John Ferlan 提交于
      Add function to return a "match" filtered list of secret objects. This
      function replaces the guts of secretConnectListAllSecrets.
      
      Need to also move and make global virSecretUsageIDForDef since it'll
      be used by both secret_driver.c and secret_conf.c
      d12c6721
    • J
      secret: Introduce virSecretObjListNumOfSecrets · 5249d076
      John Ferlan 提交于
      Add function to count the hashed secret obj list with filters. This
      will replace the guts of secret_driver's secretConnectNumOfSecrets.
      5249d076
    • J
      secret: Introduce virSecretObjListAdd* and virSecretObjListRemove · d4287b98
      John Ferlan 提交于
      Add the functions to add/remove elements from the hashed secret obj list.
      These will replace secret_driver functions secretAssignDef and secretObjRemove.
      
      The virSecretObjListAddLocked will perform the necessary lookups and
      decide whether to replace an existing hash entry or create a new one.
      This includes setting up the configPath and base64Path as well as being
      able to support the caller's need to restore from a previous definition
      in case something goes wrong in the caller.
      d4287b98
    • J
      secret: Introduce virSecretUsageIDForDef · 615c8cce
      John Ferlan 提交于
      Move the driver specific secretUsageIDForDef into secret_conf.c. It could
      be more of a general purpose API.
      615c8cce
    • J
      secret: Introduce virSecretObjListFindBy{UUID|Usage} support · 00a3f0d0
      John Ferlan 提交于
      New API's including unlocked and Locked versions in order to be able
      to use in either manner.
      
      Support for searching hash object lists instead of linked lists will
      replace existing secret_driver functions secretFindByUUID and
      secretFindByUsage
      00a3f0d0
    • J
      secret: Create virsecretobj.c and virsecretconf.h · 4652b158
      John Ferlan 提交于
      Move virSecretObj from secret_driver.c to virsecretobj.h
      
      To support being able to create a hashed secrets list, move the
      virSecretObj to virsecretobj.h so that the code can at least find
      the definition.
      
      This should be a temporary situation while the virsecretobj.c code
      is patched in order to support a hashed secret object while still
      having the linked list support in secret_driver.c. Eventually, the
      goal is to move the virSecretObj into virsecretobj.c, although it
      is notable that the existing model from which virSecretObj was
      derived has virDomainObj in src/conf/domain_conf.h and virNetworkObj
      in src/conf/network_conf.h, so virSecretObj wouldn't be unique if
      it were to remain in virsecretobj.h  Still adding accessors to fetch
      and store hashed object data will be the end goal.
      
      Add definitions and infrastucture in virsecretobj.c to create and
      handle a hashed virSecretObj and virSecretObjList including the class,
      object, lock setup, and disposal API's. Nothing will call these yet.
      
      This infrastructure will replace the forward linked list logic
      within the secret_driver, eventually.
      4652b158
    • M
      qemuProcessCreatePretendCmd: Rework FIPS handling · 927d047e
      Michal Privoznik 提交于
      This function - in contrast with qemuBuildCommandLine - merely
      constructs our internal command representation of a domain. This
      is then later compared against expected output. Or, this function
      is used also in virConnectDomainXMLToNative(). But due to a copy
      paste error this function, just like its image - has @forceFips
      argument that if enabled forces FIPS, otherwise mimics FIPS state
      in the host. If FIPS is enabled or forced the generated command
      line is different to state in which FIPS is disabled. Problem is,
      while this could be desired in the virConnectDomainXMLToNative()
      case, this is undesirable in the test suite as it will produce
      unpredicted results.
      Solution to this is to rename argument to @enableFips to
      specifically tell whether we expect command line to be build in
      either of fashions and make virConnectDomainXMLToNative()
      implementation fetch FIPS state and pass it to
      qemuProcessCreatePretendCmd().
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      927d047e
  5. 25 4月, 2016 7 次提交
    • L
      qemu: fix error log in qemuAssignPCIAddresses() · ff212622
      Laine Stump 提交于
      This error message was too specific, based on the incorrect assumption
      that any error was cause by auto-added bridges:
      
        failed to create PCI bridge on bus 2: too many devices
        with fixed addresses
      
      In practice you can't know if a bridge with an index <= the bus it's
      connecting to was added automatically, or if it was a mistake in
      explicit config, and the auto-add problem is going to be dealt with in
      a different way in an upcoming patch. The new message is this:
      
        PCI Controller at index 1 (0x01) has "
        bus='0x02', but bus must be <= index
      
      (note that index is given in both decimal and hex because it is
      formatted as decimal in the XML, but bus is formatted as hex, and
      displaying the hex value of index makes it easier to see the problem
      when index > 9 (which will often be the case with PCIe, since most
      controllers only have a single port, not 32 slots as with standard
      PCI)).
      
      Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1004593
      ff212622
    • A
      man: Fix SYNOPSIS section · 92b2c047
      Andrea Bolognani 提交于
      Format the text properly.
      92b2c047
    • A
      build: Replace variables in man pages · 49ba028a
      Andrea Bolognani 提交于
      We can't use eg. @sysconfdir@ directly in the .pod file, because
      pod2man(1) will interpret that as a variable name and format it
      accordingly.
      
      Instead, we use eg. SYSCONFDIR and use a subsequent sed(1) call
      to turn it into the expected @sysconfdir@.
      49ba028a
    • A
      build: Group files · 7351f7fe
      Andrea Bolognani 提交于
      Define $(PODFILES) and $(MANINFILES) so that adding a new man
      page only requires changes in a few, well defined spots.
      7351f7fe
    • A
      build: Standardize on .pod -> .x.in -> .x · 5b479f3b
      Andrea Bolognani 提交于
      After this commit, all man pages are generated using the same two
      steps:
      
        1. Process a source $command.pod file with pod2man(1) to obtain
           a valid man page in $command.$section.in
      
        2. Process $command.$section.in with sed(1) to obtain the final
           man page in $command.$section
      5b479f3b
    • A
      build: Build man pages in $(builddir) · 90709d8d
      Andrea Bolognani 提交于
      No file should be created inside $(srcdir) during build.
      90709d8d
    • M
      qemu: Fix off-by-one error in block I/O throttle messages · 72c313bc
      Martin Kletzander 提交于
      QEMU_BLOCK_IOTUNE_MAX is the maximum inclusively, so let's modify the
      message so it makes sense.
      
      https://bugzilla.redhat.com/show_bug.cgi?id=1329041Signed-off-by: NMartin Kletzander <mkletzan@redhat.com>
      72c313bc
  6. 24 4月, 2016 1 次提交
  7. 22 4月, 2016 3 次提交
    • M
      qemu: Limit maximum block device I/O tune values · 2d04f6de
      Martin Kletzander 提交于
      The values are currently limited to LLONG_MAX which causes some
      problems.  QEMU conveniently changed their maximum to 1e15 (1 PB) which
      is enough for some time and we need to adapt to that so that we don't
      throw "Unknown error" messages.  Strictly limiting these values actually
      fixes some corner case values (off-by-one checks in QEMU probably).
      
      Since values out of the new specified range do not overflow anything,
      change the type of error as well.
      
      Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1317531Signed-off-by: NMartin Kletzander <mkletzan@redhat.com>
      2d04f6de
    • C
      virconf: Handle conf file without ending newline · 3cc2a9e0
      Cole Robinson 提交于
      $ echo -n 'log_level=1' > ~/.config/libvirt/libvirtd.conf
      $ libvirtd --timeout=10
      2014-10-10 10:30:56.394+0000: 6626: info : libvirt version: 1.1.3.6, package: 1.fc20 (Fedora Project, 2014-09-08-17:50:42, buildvm-05.phx2.fedoraproject.org)
      2014-10-10 10:30:56.394+0000: 6626: error : main:1261 : Can't load config file: configuration file syntax error: /home/rjones/.config/libvirt/libvirtd.conf:1: expecting a value: /home/rjones/.config/libvirt/libvirtd.conf
      
      Rather than try to fix this in the depths of the parser, just catch
      the case when a config file doesn't end in a newline, and manually
      append a newline to the content before parsing
      
      https://bugzilla.redhat.com/show_bug.cgi?id=1151409
      3cc2a9e0
    • L
      network: fix DHCPv6 on networks with prefix != 64 · bf3d9f30
      Laine Stump 提交于
      According to the dnsmasq manpage, the netmask for IPv4 address ranges
      will be auto-deteremined from the interface dnsmasq is listening on,
      but it can't do this for IPv6 for some reason - it instead assumes a
      network prefix of 64 for all IPv6 address ranges. If this is
      incorrect, dnsmasq will refuse to give out an address to clients,
      instead logging this message:
      
       dnsmasq-dhcp[2380]: no address range available for DHCPv6 request via virbr0
      
      The solution is for libvirt to add ",$prefix" to all IPv6 dhcp-range
      arguments when building the dnsmasq.conf file.
      
      Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1033739
      bf3d9f30
  8. 21 4月, 2016 4 次提交