1
0
mirror of https://gitlab.com/libvirt/libvirt.git synced 2025-09-24 21:44:59 +03:00

Compare commits

..

629 Commits

Author SHA1 Message Date
Jiri Denemark
e324569691 po: Refresh potfile for v8.5.0
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
2022-06-27 08:56:55 +02:00
Göran Uddeborg
148b39c657 Translated using Weblate (Swedish)
Currently translated at 37.0% (3861 of 10431 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/sv/

Co-authored-by: Göran Uddeborg <goeran@uddeborg.se>
Signed-off-by: Göran Uddeborg <goeran@uddeborg.se>
2022-06-25 10:18:52 +02:00
Jonathon Jongsma
790f3b214b schema: Be more flexible for diskSourceNetworkProtocolPropsCommon
Add <interleave> to allow the subproperties to be specified in any
order.

Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-06-24 09:04:06 -05:00
Jonathon Jongsma
4260a642d3 docs: clarify 'readahead' and 'timeout' for disks
Document the format of the 'readahead' and 'timeout' XML elements more
accurately.

Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-06-24 09:03:54 -05:00
Jiri Denemark
d375993ab3 qemu_migration: Implement VIR_MIGRATE_ZEROCOPY flag
Resolves: https://gitlab.com/libvirt/libvirt/-/issues/306

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-23 16:45:39 +02:00
Jiri Denemark
efa3baeae7 virsh: Add support for VIR_MIGRATE_ZEROCOPY flag
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-23 16:45:39 +02:00
Jiri Denemark
8744beecb3 Add VIR_MIGRATE_ZEROCOPY flag
The flag can be used to enable zero-copy mechanism for migrating memory
pages.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-23 16:45:39 +02:00
Jiri Denemark
f01fc4d119 qemu_migration: Don't set unlimited memlock limit for RDMA
Our documentation says RDMA migration requires hard_limit to be set so
that we know how big memory locking limit should be set for the domain
during migration. But since commit v1.2.13-71-gcf521fc8ba (which changed
the default hard_limit value from 0 to
VIR_DOMAIN_MEMORY_PARAM_UNLIMITED) we were actually setting memlock
limit to unlimited if hard_limit was not set.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-23 16:45:39 +02:00
Jiri Denemark
d4d3bb8130 qemu_migration: Restore original memory locking limit
For RDMA migration we update memory locking limit, but never set it back
once migration finishes (on the destination host) or aborts (on the
source host).

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-23 16:45:39 +02:00
Jiri Denemark
22ee8cbf09 qemu_migration: Use qemuDomainSetMaxMemLock
This helper will not try to set the limit if it is already big enough,
which may be useful when libvirt daemon is running in a containerized
environment and is not allowed to change memory locking limit.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-23 16:45:39 +02:00
Jiri Denemark
dff51c7f57 qemu: Add qemuDomainSetMaxMemLock helper
qemuDomainAdjustMaxMemLock combined computing the desired limit with
applying it. This patch separates the code to apply a memory locking
limit to a new qemuDomainSetMaxMemLock helper for better reusability.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-23 16:45:39 +02:00
Ján Tomko
a55abe6c51 storagefile: set size field of ploop to 8
For all file formats, the length of the size field is assumed
and hardcoded to be 8 bytes.

Fix the length for the ploop format - since we specify the offset,
we read 8 bytes of the length, not 0.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-06-22 15:29:44 +02:00
Ján Tomko
74077a651b conf: virDomainDefParseMemory: remove pointless assignment
Evaluate the XPath as a boolean, instead of trying to get a node
out of it.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-06-22 15:29:44 +02:00
Ján Tomko
be4047d051 docs: update links to listman
The mailman for mailing lists hosted by Red Hat seems to have moved
to listman.redhat.com. While the old links still seem to work,
point our docs to the new location to avoid the redirect.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-06-22 15:29:44 +02:00
Ján Tomko
cf1a7df577 libxl: remove cleanup label from libxlDomainMigrationSrcPerform
Use VIR_AUTOCLOSE for the remaining file descriptor that uses
manual cleanup and remove the label.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-22 12:28:29 +02:00
Ján Tomko
7b5dd948b8 qemu: remove cleanup label from qemuMigrationSrcGraphicsRelocate
Remove the label and use 'rc' instead of 'ret'.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-22 12:28:29 +02:00
Ján Tomko
c1ac66afdb vmx: use g_autofree in virVMXParseSerial
Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-22 12:28:29 +02:00
Ján Tomko
6afc449106 vz: refactor prlsdkGetSerialInfo
Use g_autofree for the two strings still using manual cleanup
and remove the pointless cleanup label.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-22 12:28:29 +02:00
Ján Tomko
28337e9485 tests: remove pointless label in testURIParse
Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-22 12:28:29 +02:00
Ján Tomko
8d9bd178e2 Use g_auto for virURI almost everywhere
Convert all the cases where we can unconditionally free
the virURI at the end of scope.

In libxlDomainMigrationDstPrepare, uri is only filled
if uri_in was present, so moving the virURIFree out of
the condition is safe.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-22 12:28:29 +02:00
Göran Uddeborg
84543b2878 Translated using Weblate (Swedish)
Currently translated at 36.4% (3801 of 10431 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/sv/

Co-authored-by: Göran Uddeborg <goeran@uddeborg.se>
Signed-off-by: Göran Uddeborg <goeran@uddeborg.se>
2022-06-22 11:18:51 +02:00
Rohit Kumar
5d6abb5222 NEWS: Add support for network backed NVRAM
Signed-off-by: Rohit Kumar <rohit.kumar3@nutanix.com>
Reviewed-by: Ani Sinha <ani@anisinha.ca>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-06-22 10:40:48 +02:00
Ján Tomko
b8a2d96758 src: QemuMonitorCommandWithFiles: report error when fd passing is unsupported
The result of the <= 0 comparison was assigned to 'rc', rendering the
if (rc == 0) condition dead code.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2022-06-21 15:49:11 +02:00
Cole Robinson
25072c0304 libxl: Fix domain startup failure error reporting
When domain startup fails, domain cleanup calls
libxlNetworkUnwindDevices, which calls virGetConnectNetwork, which
is a top level API entry point, which resets the initial saved error,
leading to clients seeing:

  error: An error occurred, but the cause is unknown

This preserves the error around the entire teardown process, similar
to what is done in the qemu driver.

Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Signed-off-by: Cole Robinson <crobinso@redhat.com>
2022-06-21 09:01:03 -04:00
Cole Robinson
5f0765f90f qemu: validate: use domcaps for tpm validation
Replace tpm->type and tpm->model qemuCaps validation with the
similar logic in domcaps.

Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Signed-off-by: Cole Robinson <crobinso@redhat.com>
2022-06-21 08:23:18 -04:00
Cole Robinson
8b09303f24 tests: mock swtpm initialization for all qemu tests
Don't restrict this to domcaps testing only, we will soon
need it for qemu command line validation

Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Signed-off-by: Cole Robinson <crobinso@redhat.com>
2022-06-21 08:23:18 -04:00
Cole Robinson
b233bf89dc qemu: command: Use correct tpm device for all non-x86
The qemu `tpm-tis` device is an ISA device, so only really applicable
to x86 archs. For all non-x86 archs we should use `tpm-tis-device`

This fixes tpm-tis usage on armv7l and riscv

Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Signed-off-by: Cole Robinson <crobinso@redhat.com>
2022-06-21 08:23:18 -04:00
Cole Robinson
5aec476e2e qemu: validate: Drop tpm-tis arch validation
Checking against qemu capabilities should be enough here

Resolves: https://gitlab.com/libvirt/libvirt/-/issues/329

Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Signed-off-by: Cole Robinson <crobinso@redhat.com>
2022-06-21 08:23:18 -04:00
Sergey A
d428c7f5a7 Translated using Weblate (Russian)
Currently translated at 91.8% (9582 of 10431 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/ru/

Co-authored-by: Sergey A <sw@atrus.ru>
Signed-off-by: Sergey A. <sw@atrus.ru>
2022-06-20 14:15:51 +02:00
Göran Uddeborg
7ce80287d1 Translated using Weblate (Swedish)
Currently translated at 36.0% (3761 of 10431 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/sv/

Translated using Weblate (Swedish)

Currently translated at 35.6% (3721 of 10431 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/sv/

Co-authored-by: Göran Uddeborg <goeran@uddeborg.se>
Signed-off-by: Göran Uddeborg <goeran@uddeborg.se>
2022-06-20 14:15:51 +02:00
Daniel P. Berrangé
dae16374dd nwfilter: spawn thread for reloading on firewalld trigger
When firewalld is restarted or has its rules reloaded, we trigger a
reload of the nwfilter driver. This is done directly in the main
event loop thread which is a bad idea.

In a previous commit we fixed a actual deadlock problem with the
virStateReload API, when triggered from SIGHUP:

commit 33c6eb9689
Author: Jim Fehlig <jfehlig@suse.com>
Date:   Thu Mar 8 15:04:48 2018 -0700

    libvirtd: fix potential deadlock when reloading

The same deadlock problem previously existed with the firewalld reload
trigger, however, today it is not quite so series. The QEMU driver uses
a private event thread for each VM, so the particular deadlock would
not occur. None the less during the time the filters are reloading all
use of the event loop is blocked, which prevents APIs being serviced.

Reviewed-by: Erik Skultety <eskultet@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2022-06-20 13:15:21 +01:00
Daniel P. Berrangé
8603b3d76c tools: add '--xpath EXPRESSION --wrap' args to all dumpxml commands
While you can chain the virsh output up to a later 'xmllint' or 'xpath'
command, integrating it into virsh avoids needs for installing extra
binaries which we've often found to be missing on production installs
of libvirt. It also gives better response if the initial virsh command
hits an error, as you don't get an aborted pipeline.

    $ virsh pool-dumpxml --xpath //permissions default
    <permissions>
      <mode>0711</mode>
      <owner>1000</owner>
      <group>1000</group>
      <label>unconfined_u:object_r:svirt_home_t:s0</label>
    </permissions>

If multiple nodes match, they are emitted individually:

    $ virsh dumpxml --xpath '//devices/*/address[@type="pci"]' --wrap demo
    <address type="pci" domain="0x0000" bus="0x05" slot="0x00" function="0x0"/>
    <address type="pci" domain="0x0000" bus="0x03" slot="0x00" function="0x0"/>
    ...snip...
    <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x0" multifunction="on"/>
    <address type="pci" domain="0x0000" bus="0x07" slot="0x00" function="0x0"/>

but if intending to post-process the output further, the results
can be wrapped in a parent node

    $ virsh dumpxml --xpath '//devices/*/address[@type="pci"]' --wrap demo
    <nodes>
      <address type="pci" domain="0x0000" bus="0x05" slot="0x00" function="0x0"/>
      <address type="pci" domain="0x0000" bus="0x03" slot="0x00" function="0x0"/>
      ...snip...
      <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x0" multifunction="on"/>
      <address type="pci" domain="0x0000" bus="0x07" slot="0x00" function="0x0"/>
    </nodes>

Fixes https://gitlab.com/libvirt/libvirt/-/issues/244
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2022-06-20 10:40:45 +01:00
Daniel P. Berrangé
8615c19b5d tools: add helper method for printing an XML document
The trivial case of fully printing an XML document is boring, but
this helper does more by allowing an XPath expression to be given.
It will then print just the subset of nodes which match the
expression. It either print each match as a standalone XML doc
or can put them into one new XML doc wrapped woith <nodes>...</nodes>

Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2022-06-20 10:40:34 +01:00
Cole Robinson
812edc95a3 conf: cpu: Add <signature family=X model=X stepping=X/>
Internally we already collect x86 host family + model + stepping
numeric values. This exposed them in capabilities CPU output.
Example:

$ sudo virsh capabilities | grep -A1 -B1 signature
      <microcode version='240'/>
      <signature family='6' model='94' stepping='3'/>
      <counter name='tsc' frequency='3408010000' scaling='no'/>

Users need to know these values to calculate an expected.
SEV-ES/SEV-SNP launch measurement.

Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
Signed-off-by: Cole Robinson <crobinso@redhat.com>
2022-06-16 12:12:45 -04:00
Andrea Bolognani
03771f5f04 qemu: Fix alignment in qemuFirmwareMappingFlashFormat()
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
2022-06-16 15:27:16 +02:00
Andrea Bolognani
8c75efd4ef qemu: Simplify handling of virTristateBool values
We explicitly check whether the value is YES or NO, which makes
it unnecessary to make sure it's not ABSENT beforehand.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-16 15:27:16 +02:00
Andrea Bolognani
58805f3ace conf: Fix virDomainDefOSValidate()
Even when the os.loader element is absent, we still have to
validate that the user is not attempting to use firmware
autoselection with a driver that doesn't implement the feature.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-16 15:27:16 +02:00
Andrea Bolognani
69464f4280 vmx: Declare support for firmware autoselection
The feature was implemented in commits b4e34d1083 and
9bb6e4e739 but the corresponding feature flag was not set in
the driver, so other parts of of libvirt wouldn't be able to
know about it.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-16 15:27:16 +02:00
Ján Tomko
2753eba20c qemu: virtiofs: format --thread-pool-size
https://bugzilla.redhat.com/show_bug.cgi?id=2079582

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-06-16 14:58:25 +02:00
Ján Tomko
0df2e7df80 conf: virtiofs: add thread_pool element
Add an element to configure the thread pool size:

...
<binary>
  <thread_pool size='16'/>
</binary>
...

https://bugzilla.redhat.com/show_bug.cgi?id=2072905

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-06-16 14:58:25 +02:00
Yalan Zhang
261f106100 docs: formatdomain: update hostdev interface section a bit
Update the default "driver" value for hostdev interface since
the default is not "KVM" anymore (refer to "Host device
asssignment" part and by test results). And update the mac
address in one xml example.

Signed-off-by: Yalan Zhang <yalzhang@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-16 07:18:56 +02:00
Peng Liang
3d5245e3eb lxc: Remove unused includes
Signed-off-by: Peng Liang <tcx4c70@gmail.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-16 06:43:58 +02:00
Peng Liang
48e8c36b05 tests: Remove unused includes
Signed-off-by: Peng Liang <tcx4c70@gmail.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-16 06:43:58 +02:00
Peng Liang
1ce16ae098 tools: Remove unused includes
Signed-off-by: Peng Liang <tcx4c70@gmail.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-16 06:43:58 +02:00
Peng Liang
b3bb252a3b test_driver: Remove unused includes
Signed-off-by: Peng Liang <tcx4c70@gmail.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-16 06:43:58 +02:00
Peng Liang
0e791283e0 vmx: Remove unused includes
Signed-off-by: Peng Liang <tcx4c70@gmail.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-16 06:43:58 +02:00
Peng Liang
5bfb23850e vmware: Remove unused includes
Signed-off-by: Peng Liang <tcx4c70@gmail.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-16 06:43:58 +02:00
Peng Liang
3ef307cb9b vbox: Remove unused includes
Signed-off-by: Peng Liang <tcx4c70@gmail.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-16 06:43:57 +02:00
Peng Liang
55a996c90b util: Remove unused includes
Signed-off-by: Peng Liang <tcx4c70@gmail.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-16 06:43:57 +02:00
Peng Liang
abb90d278d storage: Remove unused includes
Signed-off-by: Peng Liang <tcx4c70@gmail.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-16 06:43:57 +02:00
Peng Liang
38ab1982fa rpc: Remove unused includes
Signed-off-by: Peng Liang <tcx4c70@gmail.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-16 06:43:57 +02:00
Peng Liang
68dae91767 remote: Remove unused includes
Signed-off-by: Peng Liang <tcx4c70@gmail.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-16 06:43:57 +02:00
Peng Liang
bc16c1bcf6 qemu: Remove unused includes
Signed-off-by: Peng Liang <tcx4c70@gmail.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-16 06:43:57 +02:00
Peng Liang
fa8bf49f89 openvz: Remove unused includes
Signed-off-by: Peng Liang <tcx4c70@gmail.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-16 06:43:57 +02:00
Peng Liang
3c97380138 node_device: Remove unused includes
Signed-off-by: Peng Liang <tcx4c70@gmail.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-16 06:43:57 +02:00
Peng Liang
b19cb3dff0 network: Remove unused includes
Signed-off-by: Peng Liang <tcx4c70@gmail.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-16 06:43:57 +02:00
Peng Liang
4c8a354fd5 logging: Remove unused includes
Signed-off-by: Peng Liang <tcx4c70@gmail.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-16 06:43:56 +02:00
Peng Liang
58391e6dea locking: Remove unused includes
Signed-off-by: Peng Liang <tcx4c70@gmail.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-16 06:43:56 +02:00
Peng Liang
3620f40702 libxl: Remove unused includes
Signed-off-by: Peng Liang <tcx4c70@gmail.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-16 06:43:56 +02:00
Peng Liang
bd09115d4c hypvervisor: Remove unused includes
Signed-off-by: Peng Liang <tcx4c70@gmail.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-16 06:43:56 +02:00
Peng Liang
07d8142814 hyperv: Remove unused includes
Signed-off-by: Peng Liang <tcx4c70@gmail.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-16 06:43:56 +02:00
Peng Liang
623efbcb11 esx: Remove unused includes
Signed-off-by: Peng Liang <tcx4c70@gmail.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-16 06:43:56 +02:00
Peng Liang
e9b5f6bed0 cpu: Remove unused includes
Signed-off-by: Peng Liang <tcx4c70@gmail.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-16 06:43:56 +02:00
Peng Liang
000e722d67 conf: Remove unused includes
Signed-off-by: Peng Liang <tcx4c70@gmail.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-16 06:43:56 +02:00
Peng Liang
7f7ec6df27 ch: Remove unused includes
Signed-off-by: Peng Liang <tcx4c70@gmail.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-16 06:43:56 +02:00
Peng Liang
6661df8f0b admin: Remove unused includes
Signed-off-by: Peng Liang <tcx4c70@gmail.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-16 06:43:56 +02:00
Peng Liang
3be884e280 access: Remove unused includes
Signed-off-by: Peng Liang <tcx4c70@gmail.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-16 06:43:55 +02:00
Göran Uddeborg
eb120a79da Translated using Weblate (Swedish)
Currently translated at 35.2% (3681 of 10431 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/sv/

Co-authored-by: Göran Uddeborg <goeran@uddeborg.se>
Signed-off-by: Göran Uddeborg <goeran@uddeborg.se>
2022-06-15 17:18:53 +02:00
Sergey A
fb1c2215ed Translated using Weblate (Russian)
Currently translated at 91.8% (9582 of 10431 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/ru/

Co-authored-by: Sergey A <sw@atrus.ru>
Signed-off-by: Sergey A. <sw@atrus.ru>
2022-06-15 17:18:52 +02:00
Peter Krempa
ed8984306e virDomainDiskTranslateSourcePool: Fix check of 'startupPolicy' definition
The check was historically done only for _TYPE_VOLUME disks, but
refactors to allow _TYPE_VOLUME disks in the backing chain caused a
regression where we'd reject startupPolicy also for _TYPE_BLOCK disks
which historically worked well.

Fix it by using the 'virDomainDiskDefValidateStartupPolicy' helper and
use it only when the top level image is a _TYPE_VOLUME as in other cases
it was already validated. This also allows _TYPE_BLOCK volumes to use
startup policy.

Fixes: 37f01262ee
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2095758
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-14 16:38:11 +02:00
Peter Krempa
b90d0f0a1e virDomainDiskDefValidateStartupPolicy: Validate disk type better
Our startup policy checkers work only for local paths, so disk sources
such as NVMe, or vhost-user can't be used with startup policy.

Unfortunately the validation did not catch these cases. Fix it.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-14 16:38:11 +02:00
Peter Krempa
3603a18bce domain_validate: Split out validation of disk startup policy
Move the code into 'virDomainDiskDefValidateStartupPolicy' which will be
later reused in the qemu driver.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-14 16:38:11 +02:00
Peter Krempa
9a480737c8 virDomainDiskDefValidate: Improve error messages for 'startupPolicy' checks
Remove linebreak and mention the attribute name. Also prepare the error
messages for future by substituting the type of offending access.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-14 16:38:11 +02:00
Peter Krempa
6900538254 virDomainHugepagesFormat: Use virXMLFormatElementEmpty
Refactor the function to use modern XML formatting machinery.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Tested-by: Rohit Kumar <rohit.kumar3@nutanix.com>
2022-06-14 15:53:11 +02:00
Rohit Kumar
d762abfe3f Add unit tests for new specification of nvram.
This patch adds unit tests for remote NVRAM.

Examples:

<nvram type='network'>
  <source protocol='iscsi' name='iqn.2013-07.com.example:iscsi-nopool/0'>
    <host name='example.com' port='6000'/>
    <auth username='myname'>
      <secret type='iscsi' usage='mycluster_myname'/>
    </auth>
  </source>
</nvram>

and

<nvram type='network'>
  <source protocol='nbd' name='bar'>
    <host name='example.org' port='6000'/>
  </source>
</nvram>

and

<nvram type='file'>
  <source file='/var/lib/libvirt/nvram/guest_VARS.fd'/>
</nvram>

Signed-off-by: Prerna Saxena <prerna.saxena@nutanix.com>
Signed-off-by: Florian Schmidt <flosch@nutanix.com>
Signed-off-by: Rohit Kumar <rohit.kumar3@nutanix.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Tested-by: Rohit Kumar <rohit.kumar3@nutanix.com>
2022-06-14 15:53:11 +02:00
Rohit Kumar
468a0a6027 conf: Add support to parse/format <source> for NVRAM
This patch introduces the logic to format and parse remote NVRAM.

Update NVRAM element schema, and docs for supporting network backed
NVRAM. NVRAM backed over network would give the flexibility to start
the VM on any host without having to worry about where to get the latest
nvram image.

<nvram type='network'>
  <source protocol='iscsi' name='iqn.2013-07.com.example:iscsi-nopool/0'>
    <host name='example.com' port='6000'/>
  </source>
</nvram>

or

<nvram type='file'>
  <source file='/var/lib/libvirt/nvram/guest_VARS.fd'/>
</nvram>

In the qemu driver we will support the new definition only with qemu's
supporting -blockdev.

Signed-off-by: Prerna Saxena <prerna.saxena@nutanix.com>
Signed-off-by: Florian Schmidt <flosch@nutanix.com>
Signed-off-by: Rohit Kumar <rohit.kumar3@nutanix.com>
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Tested-by: Rohit Kumar <rohit.kumar3@nutanix.com>
2022-06-14 15:53:11 +02:00
Peter Krempa
1cc5777874 conf: Extract formatting of NVRAM out of virDomainLoaderDefFormat
Introduce virDomainLoaderDefFormatNvram and extract the code to it so
that it's self-contained in upcoming patches adding more complex logic.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Tested-by: Rohit Kumar <rohit.kumar3@nutanix.com>
2022-06-14 15:53:11 +02:00
Peter Krempa
9d8abe0480 qemuFirmwareFillDomain: Don't fill in firmware for network backed nvram
Prepare for network backed nvram by refusing the reset of nvram on boot
and don't check whether it exists. We will not support filling it from a
template.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Tested-by: Rohit Kumar <rohit.kumar3@nutanix.com>
2022-06-14 15:53:11 +02:00
Rohit Kumar
bca731d0f5 qemu: validate: Reject virStorageSource features we don't want to support with nvram
Signed-off-by: Prerna Saxena <prerna.saxena@nutanix.com>
Signed-off-by: Florian Schmidt <flosch@nutanix.com>
Signed-off-by: Rohit Kumar <rohit.kumar3@nutanix.com>
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Tested-by: Rohit Kumar <rohit.kumar3@nutanix.com>
2022-06-14 15:53:11 +02:00
Peter Krempa
c3c586baa1 qemuDomainInitializePflashStorageSource: Properly and fully initialize nvram source
Setup all fields for use with -blockdev.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Tested-by: Rohit Kumar <rohit.kumar3@nutanix.com>
2022-06-14 15:53:11 +02:00
Peter Krempa
9945c24259 qemuProcessReconnect: Don't re-instantiate pflash storage source
We don't really use it besides when starting up the VM so when
reconnecting this step is totally pointless.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Tested-by: Rohit Kumar <rohit.kumar3@nutanix.com>
2022-06-14 15:53:11 +02:00
Peter Krempa
baf224f1f9 qemu: Properly setup the NVRAM virStorageSource
Use the designated helpers for virStorageSource instead using the
file-based ones with a check.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Tested-by: Rohit Kumar <rohit.kumar3@nutanix.com>
2022-06-14 15:53:11 +02:00
Peter Krempa
5709b31f35 qemu: Use 'def->os.loader->nvram' directly instead of 'priv->pflash1'
Since we now have a full virStorageSource for storing the nvram path we
don't need the extra dance of transferring the data into the 'pflash1'
variable which was an intermediary solution to use -blockdev.

For now we keep it functionally identical to the previous impl.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Tested-by: Rohit Kumar <rohit.kumar3@nutanix.com>
2022-06-14 14:39:55 +02:00
Rohit Kumar
911c3cb2f0 conf: Convert def->os.loader->nvram a virStorageSource
Currently, libvirt allows only local filepaths to specify the location
of the 'nvram' image. Changing it to virStorageSource type will allow
supporting remote storage for nvram.

Signed-off-by: Prerna Saxena <prerna.saxena@nutanix.com>
Signed-off-by: Florian Schmidt <flosch@nutanix.com>
Signed-off-by: Rohit Kumar <rohit.kumar3@nutanix.com>
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Tested-by: Rohit Kumar <rohit.kumar3@nutanix.com>
2022-06-14 14:39:55 +02:00
Peter Krempa
c3cf2a2b60 qemuBuildPflashBlockdevCommandLine: Take virDomainObj instead of private data
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Tested-by: Rohit Kumar <rohit.kumar3@nutanix.com>
2022-06-14 14:39:55 +02:00
Peter Krempa
f23b0ac13e qemuDomainPrepareStorageSourceBlockdev: Add a variant for custom nodename
Extract the internals of qemuDomainPrepareStorageSourceBlockdev into
qemuDomainPrepareStorageSourceBlockdevNodename so that we can reuse it
when instantiating the virStorageSource for pflash backing.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Tested-by: Rohit Kumar <rohit.kumar3@nutanix.com>
2022-06-14 14:39:55 +02:00
Peter Krempa
637f29bfac po/LINGUAS: Fix sorting
Fixes breakage of 'sc_linguas_sorting'.

Fixes: c886a40cfc
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2022-06-14 14:36:13 +02:00
김인수
17ac5af4ce Translated using Weblate (Korean)
Currently translated at 100.0% (10431 of 10431 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/ko/

Co-authored-by: 김인수 <simmon@nplob.com>
Signed-off-by: 김인수 <simmon@nplob.com>
2022-06-13 20:46:11 +02:00
Temuri Doghonadze
c886a40cfc Added translation using Weblate (Georgian)
Co-authored-by: Temuri Doghonadze <temuri.doghonadze@gmail.com>
Signed-off-by: Temuri Doghonadze <temuri.doghonadze@gmail.com>
2022-06-13 20:46:11 +02:00
Göran Uddeborg
fc0f2309b1 Translated using Weblate (Swedish)
Currently translated at 35.0% (3661 of 10431 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/sv/

Translated using Weblate (Swedish)

Currently translated at 34.9% (3641 of 10431 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/sv/

Translated using Weblate (Swedish)

Currently translated at 34.7% (3621 of 10431 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/sv/

Co-authored-by: Göran Uddeborg <goeran@uddeborg.se>
Signed-off-by: Göran Uddeborg <goeran@uddeborg.se>
2022-06-13 20:46:11 +02:00
Mark Mielke
31b5ad06e3 Fix incorrect uses of g_clear_pointer() introduced in 8.1.0
This is a partial revert of 87a43a907f

The change to use g_clear_pointer() in more places was accidentally
applied to cases involving vir_g_source_unref().

In some cases, the ordering of g_source_destroy() and
vir_g_source_unref() was reversed, which resulted in the source being
marked as destroyed, after it is already unreferenced. This
use-after-free case might work in many cases, but with versions of
glib older than 2.64.0 it may defer unref to run within the main
thread to avoid a race condition, which creates a large distance
between the g_source_unref() and g_source_destroy().

In some cases, the call to vir_g_source_unref() was replaced with a
second call to g_source_destroy(), leading to a memory leak or worse.

In our experience, the symptoms were that use of libvirt-python became
slower over time, with OpenStack nova-compute initially taking around
one second to periodically query the host PCI devices, and within an
hour it was taking over a minute to complete the same operation, until
it is was eventually running this query back-to-back, resulting in the
nova-compute process consuming 100% of one CPU thread, losing its
RabbitMQ connection frequently, and showing up as down to the control
plane.

Signed-off-by: Mark Mielke <mark.mielke@gmail.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
2022-06-13 20:42:47 +02:00
Peter Krempa
f5c5b16d5d kbase: launch_security_sev: Break up overly long line
Standard text is aligned to 80 colums in all .rst files.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2022-06-13 16:09:32 +02:00
Michal Privoznik
67e4fed61c qemuBuildInterfaceConnect: Initialize @tapfd array
When creating a TAP interface we can end up with multiple FDs,
each representing one queue. However, these FDs must be
relabelled as they are then passed to QEMU. In case of
qemuBuildInterfaceConnect() we allocate the array for the FDs and
then let function corresponding to the <interface/> type to fill
the array with FDs. When any of the functions meets an error,
it's also responsible for closing previously opened FDs. However,
the functions take a shortcut: iterate through each member of the
array and close it (if it's non-negative). This assumes that the
array is initialized to negative values, which use to be the case
before rewrite in v8.4.0-rc1~170 but after it it's no longer the
case. Subsequently, "random" FDs are closed (okay, not that
random since the array is allocated via g_new0(), but hey - FD 0
is still valid FD and might be valuable, actually).

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2075383#c18
Fixes: 7a38d3946b
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2022-06-13 16:06:54 +02:00
Michal Privoznik
74ba5b5401 virNetDevSaveNetConfig: Pass mode to virFileWriteStr()
For some types of SRIOV interfaces we create a temporary file
where the state of the interface is saved before we start
modifying it. The file is used then to restore the original
configuration when the interface is no longer associated with any
guest. For writing the file virFileWriteStr() is used. However,
it's given wrong argument: the last argument is supposed to be
mode to create the file with but virNetDevSaveNetConfig() passes
open(2) flags (O_CREAT|O_TRUNC|O_WRONLY). We need the file to be
writable and readable by root only (0600). Therefore, pass that
mode instead of gibberish.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2022-06-13 16:06:44 +02:00
Cole Robinson
d823f27597 docs: kbase/launch_security_sev: QEMU 6.0+ sets iommu=on for us
Reviewed-by: Erik Skultety <eskultet@redhat.com>
Signed-off-by: Cole Robinson <crobinso@redhat.com>
2022-06-13 09:12:35 -04:00
Cole Robinson
aabace2aa5 spec: Fix indentation
Signed-off-by: Cole Robinson <crobinso@redhat.com>
2022-06-13 09:09:35 -04:00
Cole Robinson
b7eca90cd4 spec: Xen arches have changed on Fedora 36+
Latest fedora 36+ xen builds have dropped i686 and armv7hl builds.

Reviewed-by: Erik Skultety <eskultet@redhat.com>
Signed-off-by: Cole Robinson <crobinso@redhat.com>
2022-06-13 08:11:31 -04:00
Jiri Denemark
a7d2272e59 util: Fix error reporting in virProcessSetMaxMemLock
Commit v7.1.0-136-g6a6d6bb520 refactored virProcessSetMaxMemLock by
moving its part into a new virProcessSetLimit, but lost "return -1" on
error.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2022-06-10 18:38:25 +02:00
Michal Privoznik
425d3b12a4 qemu: Generate command line for <defaultiothread/> pool size
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2059511
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2022-06-10 14:01:08 +02:00
Michal Privoznik
94b71589f1 qemu_validate: Check if QEMU's capable of setting <defaultiothread/> pool size
Since the main-loop and iothread classes are derived from the
same class (EventLoopBaseClass) we don't need new capability and
can use QEMU_CAPS_IOTHREAD_THREAD_POOL_MAX directly to check
whether QEMU's capable of setting defaultiothread pool size.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2022-06-10 14:01:06 +02:00
Michal Privoznik
3e4bebb9d1 conf: Introduce <defaultiothread/>
As of v7.0.0-877-g70ac26b9e5 QEMU exposes its default event loop
for devices with no IOThread assigned as an QMP object. In the
very next commit (v7.0.0-878-g71ad4713cc) it was extended for
thread-pool-min and thread-pool-max attributes. Expose them under
new <defaultiothread/> element.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2022-06-10 14:01:03 +02:00
Michal Privoznik
7162cee68a virsh: Wire up new virDomainSetIOThreadParams parameters
Since virsh implements a wrapper over virDomainSetIOThreadParams()
(command iothreadset) let's wire up new typed parameters there too.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2022-06-10 14:00:59 +02:00
Michal Privoznik
f078db9dab qemu: Wire up new virDomainSetIOThreadParams parameters
Introduced in previous commit, QEMU driver needs to be taught how
to set VIR_DOMAIN_IOTHREAD_THREAD_POOL_MIN and
VIR_DOMAIN_IOTHREAD_THREAD_POOL_MAX parameters on given IOThread.
Fortunately, this is fairly trivial to do and since these two
parameters are exposed in domain XML too the update of inactive
XML can be wired up too.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2022-06-10 14:00:44 +02:00
Michal Privoznik
1e8c3525f3 include: Introduce typed params for virDomainSetIOThreadParams wrt pool size
Our public API offers virDomainSetIOThreadParams() function which
allows users to set various aspects of IOThreads. Introduce two
new typed parameters: VIR_DOMAIN_IOTHREAD_THREAD_POOL_MIN and
VIR_DOMAIN_IOTHREAD_THREAD_POOL_MAX which will allow users to
modify the thread-pool-min and thread-pool-max attributes of an
iothread.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2022-06-10 14:00:35 +02:00
Michal Privoznik
86c10f81e5 qemu: Generate command line for IOThread pool size
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2022-06-10 14:00:13 +02:00
Michal Privoznik
2bfb8159bb qemu_validate: Check if QEMU's capable of setting iothread pool size
Now that we have a capability that reflects whether QEMU is
capable of setting iothread pool size, let's introduce a
validator check to make sure users are not trying to use this
feature with QEMU that doesn't support it.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2022-06-10 14:00:11 +02:00
Michal Privoznik
38a67a9a9e qemu: Introduce QEMU_CAPS_IOTHREAD_THREAD_POOL_MAX
This capability reflects whether QEMU allows setting
thread-pool-min and thread-pool-max attributes on iothread
object. Since both attributes were introduced in the same commit
(v7.0.0-878-g71ad4713cc) and can't exist independently of each
other we can stick with one capability covering both of them.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2022-06-10 14:00:08 +02:00
Michal Privoznik
568503edf1 conf: Introduce thread_pool_min and thread_pool_max attributes to IOThread
At least in case of QEMU an IOThread is actually a pool of
threads (see iothread_set_aio_context_params() in QEMU's code
base). As such, it can have minimal and maximal number of worker
threads. Allow setting them in domain XML.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2022-06-10 13:59:46 +02:00
Michal Privoznik
f899276737 conf: Introduce allocator for virDomainIOThreadIDDef
So far, iothread configuration structure (virDomainIOThreadIDDef)
is allocated by plain g_new0(). This is perfectly okay because
all members of the struct default to value 0 anyway. But soon
this is going to change. Therefore, replace those g_new0() with a
function so that the default value can be set consistently in one
place.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2022-06-10 13:53:52 +02:00
Michal Privoznik
c4c57cef33 conf: Move iothread formatter into a separate function
Formatting iothreads is currently open coded inside of
virDomainDefFormatInternalSetRootName(). While this works, it
makes the function needlessly long, especially if the formatting
code will expand in near future. Therefore, move it into a
separate function. At the same time, make
virDomainDefIothreadShouldFormat() accept const domain definition
so that the new function can also accept const domain definition.
Formatters shouldn't need to change definition.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2022-06-10 13:53:52 +02:00
Michal Privoznik
13a8c0aa61 virDomainIOThreadIDDefArrayInit: Decrease scope of @iothrid
In virDomainIOThreadIDDefArrayInit() the variable @iothrid is
used only inside a loop but is declared for whole function. Bring
the variable into the loop so that it's obvious that the variable
is not used elsewhere.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2022-06-10 13:53:52 +02:00
Michal Privoznik
d10b6b4c89 virDomainDefParseIOThreads: Use g_autoptr() for @iothrid
Using g_autoptr() for @iothrid variable inside
virDomainDefParseIOThreads() allows us to drop explicit call to
virDomainIOThreadIDDefFree() in one case.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2022-06-10 13:53:52 +02:00
Michal Privoznik
95c95f1b75 virml: Introduce VIR_XML_PROP_NONNEGATIVE flag
For easier attribute parsing we have virXMLProp*() family of
functions. These accept flags through which a caller can pose
some conditions onto the attribute value, for instance:
VIR_XML_PROP_NONZERO when the attribute may not be zero, etc.

What we are missing is VIR_XML_PROP_NONNEGATIVE when the
attribute value may be non-negative. Obviously, this flag makes
sense only for some members of the virXMLProp*() family.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2022-06-10 13:53:52 +02:00
Andrea Bolognani
ae2dabe5ed ci: Move upstream QEMU integration test to Fedora 36
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
2022-06-09 14:41:44 +02:00
Andrea Bolognani
4a4b7f2854 ci: Add Fedora 36 to integration tests
This requires publishing the RPMs as artifacts from the regular
build job.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
2022-06-09 14:41:40 +02:00
Erik Skultety
d1e3247675 ci: integration: Set 'safe.directory' when installing QEMU from git
Since a fix for CVE-2022-24765 was released every git command is now
checked against the context repo in which it's supposed to run
resulting in a fatal error if the repo is owned by other user than the
one running the git command.
This means that in order to be able to do 'sudo make install', we have
to set the 'safe.directory' for the root user. This is because QEMU
runs 'git submodule update' automatically on 'make install'.

Signed-off-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2022-06-09 13:38:17 +02:00
Erik Skultety
3b943f0c43 ci: integration: SELinux relabel the QEMU we installed from git
Signed-off-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2022-06-09 13:38:13 +02:00
Michal Privoznik
2177de7b6e virsh: Check whether enough arguments was passed to iothreadset
Virsh has iothreadset command which allows setting various
attributes of IOThreads. However, when the command is called
without any arguments (besides domain and IOThread IDs), then
@params stays NULL and is passed to virDomainSetIOThreadParams()
which produces rather user unfriendly error message:

  error: params in virDomainSetIOThreadParams must not be NULL

Introduce a check and produce better error message.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Claudio Fontana <cfontana@suse.de>
2022-06-08 15:37:35 +02:00
Jiri Denemark
4582267782 qemu: Improve error messages using qemuMigrationJobName
They were constructed from two separate strings using "%s: %s", which
is ugly and does not work well with translations.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
2022-06-08 11:00:43 +02:00
Jiri Denemark
87257c76b9 qemu: Fix VSERPORT_CHANGE event in post-copy migration
When a domain has a guest agent channel enabled and the agent is running
in the guest, we will get VSERPORT_CHANGE event on a destination host as
soon as we start vCPUs there. This is not an issue for normal migration,
but post-copy migration will remain running after we started vCPUs on
the destination. If it runs for more than 30s, the VSERPORT_CHANGE event
handler will fail to get a job and log the following error message:

    Timed out during operation: cannot acquire state change lock (held
    by monitor=remoteDispatchDomainMigrateFinish3Params)

and of course we will think the guest agent is not connected and thus
all APIs talking to it will fail. Until the agent or libvirt daemon is
restarted.

Luckily we only need to update the channel state (to mark it as
connected) and connect to the agent neither of which conflicts with
migration. Thus we can safely enable processing this event during
migration.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2022-06-07 17:40:21 +02:00
Jiri Denemark
b01426a238 Introduce VIR_JOB_MIGRATION_SAFE job type
This is a special job for operations that need to modify domain state
during an active migration. The modification must not affect any state
that could conflict with the migration code. This is useful mainly for
event handlers that need to be processed during migration and which
could otherwise time out on acquiring a normal MODIFY job.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2022-06-07 17:40:21 +02:00
Jiri Denemark
5915f93ed0 NEWS: Add support for post-copy recovery
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:21 +02:00
Jiri Denemark
ce34977c1f virsh: Add --postcopy option for domjobabort command
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:21 +02:00
Jiri Denemark
01d65a1520 qemu: Implement VIR_DOMAIN_ABORT_JOB_POSTCOPY flag
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2022-06-07 17:40:21 +02:00
Jiri Denemark
479d8e9f09 Add VIR_DOMAIN_ABORT_JOB_POSTCOPY flag for virDomainAbortJobFlags
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:21 +02:00
Jiri Denemark
fb50e56569 qemu: Implement virDomainAbortJobFlags
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:21 +02:00
Jiri Denemark
57762f8527 Add virDomainAbortJobFlags public API
The original virDomainAbortJob did not support flags.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:21 +02:00
Jiri Denemark
cf3842ef08 qemu: Enable support for VIR_MIGRATE_POSTCOPY_RESUME
Since all parts of post-copy recovery have been implemented now, it's
time to enable the corresponding flag.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
9189301fe5 qemu: Implement VIR_MIGRATE_POSTCOPY_RESUME for peer-to-peer migration
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
56348173fa qemu: Call qemuDomainCleanupAdd from qemuMigrationJobContinue
Every single call to qemuMigrationJobContinue needs to register a
cleanup callback in case the migrating domain dies between phases or
when migration is paused due to a failure in postcopy mode.

Let's integrate registering the callback in qemuMigrationJobContinue to
make sure the current thread does not release a migration job without
setting a cleanup callback.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
21469f6076 qemu: Register qemuProcessCleanupMigrationJob after Begin phase
The callback will properly cleanup non-p2p migration job in case the
migrating domain dies between Begin and Perform while the client which
controls the migration is not cooperating (normally the API for the next
migration phase would handle this).

The same situation can happen even after Prepare and Perform phases, but
they both already register a suitable callback, so no fix is needed
there.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
776311df23 qemu: Create completed jobData in qemuMigrationSrcComplete
Normally the structure is created once the source reports completed
migration, but with post-copy migration we can get here even after
libvirt daemon was restarted. It doesn't make sense to preserve the
structure in our status XML as we're going to rewrite almost all of it
while refreshing the stats anyway. So we just create the structure here
if it doesn't exist to make sure we can properly report statistics of a
completed migration.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
c1d40d2c40 qemu: Implement VIR_MIGRATE_POSTCOPY_RESUME for Finish phase
Everything was already done in the normal Finish phase and vCPUs are
running. We just need to wait for all remaining data to be transferred.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
55e49b1b72 qemu: Implement VIR_MIGRATE_POSTCOPY_RESUME for Prepare phase
The QEMU process is already running, all we need to do is to call
migrate-recover QMP command. Except for some checks and cookie handling,
of course.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
c04c93ea57 qemu: Start a migration phase in qemuMigrationAnyConnectionClosed
Non-postcopy case talks to QEMU monitor and thus needs to create a
nested job. Since qemuMigrationAnyConnectionClosed is called in case
there's no thread processing a migration API, we need to make the
current thread a temporary owner of the migration job to avoid "This
thread doesn't seem to be the async job owner: 0". This is done by
starting a migration phase.

While no monitor interaction happens in postcopy case and just setting
the phase (to indicate a broken postcopy migration) would be enough,
being consistent and setting the owner does not hurt anything.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
4f22d2f883 qemu: Handle incoming migration in qemuMigrationAnyConnectionClosed
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
5eec0b4b2d qemu: Refactor qemuMigrationAnyConnectionClosed
To prepare the code for handling incoming migration too.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
14aae98212 qemu: Rename qemuMigrationSrcCleanup
The function is now called qemuMigrationAnyConnectionClosed to make it
clear it is supposed to handle broken connection during migration. It
will soon be used on both sides of migration so the "Src" part was changed
to "Any" to avoid renaming the function twice in a row.

The original *Cleanup name could easily be confused with cleanup
callbacks called when a domain is destroyed.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
8c4da941c0 qemu: Add support for migrate-recover QMP command
This command tells QEMU to start listening for an incoming post-copy
recovery connection. Just like migrate-incoming is used for starting
fresh migration on the destination host.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
8e0d86fb6a qemu: Use autoptr for mig in qemuMigrationDstPrepareFresh
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
62181e8af6 qemu: Refactor qemuMigrationDstPrepareFresh
Offline migration jumps over a big part of qemuMigrationDstPrepareFresh.
Let's move that part into a new qemuMigrationDstPrepareActive function
to make the code easier to follow.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
c7727296f8 qemu: Introduce qemuMigrationDstPrepareFresh
Moves most of the code from qemuMigrationDstPrepareAny to a new
qemuMigrationDstPrepareFresh so that qemuMigrationDstPrepareAny can be
shared with post-copy resume.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
491c9eff6c qemu: Implement VIR_MIGRATE_POSTCOPY_RESUME for Confirm phase
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
f2a19b4cd0 qemu: Implement VIR_MIGRATE_POSTCOPY_RESUME for Perform phase
It just calls migrate QMP command with resume=true without having to
worry about migration capabilities or parameters, storage migration,
etc. since everything has already been done in the normal Perform phase.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
07a2a6e511 qemu: Add support for 'resume' parameter of migrate QMP command
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
691ce4ea8f qemu: Separate starting migration from qemuMigrationSrcRun
qemuMigrationSrcRun does a lot of thing before and after telling QEMU to
start the migration. Let's make the core reusable by moving it to a new
qemuMigrationSrcStart function.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
d1b6bce02c qemu: Refactor qemuMigrationSrcPerformPhase
To make the code flow a bit more sensible.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
37a67122dd qemu: Implement VIR_MIGRATE_POSTCOPY_RESUME for Begin phase
Mostly we just need to check whether the domain is in a failed post-copy
migration that can be resumed.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
a5e603c808 qemu: Don't set VIR_MIGRATE_PAUSED for post-copy resume
For historical reasons we automatically enabled VIR_MIGRATE_PAUSED flag
when a migration was started for a paused domain. However, when resuming
failed post-copy migration the domain on the source host will always be
paused (as it is already running on the destination host). We must avoid
enabling VIR_MIGRATE_PAUSED in this case.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
6280246971 virsh: Add --postcopy-resume option for migrate command
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
f55aedc845 Introduce VIR_MIGRATE_POSTCOPY_RESUME flag
This flag can be used to restart post-copy migration once it failed
because of a broken connection.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
b3110bb8e4 qemu: Use QEMU_MIGRATION_PHASE_POSTCOPY_FAILED
This phase marks a migration protocol as broken in a post-copy phase.
Libvirt is no longer actively watching the migration in this phase as
the migration API that started the migration failed.

This may either happen when post-copy migration really fails (QEMU
enters postcopy-paused migration state) or when the migration still
progresses between both QEMU processes, but libvirt lost control of it
because the connection between libvirt daemons (in p2p migration) or a
daemon and client (non-p2p migration) was closed. For example, when one
of the daemons was restarted.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
f1da6e9076 qemu: Do not set job owner in qemuMigrationJobSetPhase
Both qemuMigrationJobSetPhase and qemuMigrationJobStartPhase were doing
the same thing, which made little sense. Let's follow the difference
between qemuDomainObjSetJobPhase and qemuDomainObjStartJobPhase and
change job owner only in qemuMigrationJobStartPhase.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
2b163ca301 qemu: Refactor qemuDomainObjSetJobPhase
We will want to update migration phase without affecting job ownership.
Either in the thread that already owns the job or from an event handler
which only changes the phase (of a job no-one owns) without assuming it.

Let's move the ownership change to a new qemuDomainObjStartJobPhase
helper and let qemuDomainObjSetJobPhase set the phase without touching
ownership.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
69d9f54c66 qemu: Make qemuMigrationCheckPhase failure fatal
The check can reveal a serious bug in our migration code and we should
not silently ignore it.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
a5dc9bf96b qemu: Separate protocol checks from qemuMigrationJobSetPhase
Into a new qemuMigrationCheckPhase helper, which can be reused in other
places.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
6efd671a11 qemu: Add new migration phases for post-copy recovery
When recovering from a failed post-copy migration, we need to go through
all migration phases again, but don't need to repeat all the steps in
each phase. Let's create a new set of migration phases dedicated to
post-copy recovery so that we can easily distinguish between normal and
recovery code.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
ab3fd13932 qemu: Introduce qemuMigrationSrcBeginXML helper
Turn the final part of Begin phase formatting a domain XML for migration
into a reusable helper.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
3c1f37848d qemu: Check flags incompatible with offline migration earlier
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
2b137aba20 qemu: Improve post-copy migration handling on reconnect
When libvirt daemon is restarted during an active post-copy migration,
we do not always mark the migration as broken. In this phase libvirt is
not really needed for migration to finish successfully. In fact the
migration could have even finished while libvirt was not running or it
may still be happily running.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
c556d02551 qemu: Ignore missing memory statistics in query-migrate
We want to use query-migrate QMP command to check the current migration
state when reconnecting to active domains, but the reply we get to this
command may not contain any statistics at all if called on the
destination host.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
6908f857f8 qemu: Finish completed unattended migration
So far migration could only be completed while a migration API was
running and waiting for the migration to finish. In case such API could
not be called (the connection that initiated the migration is broken)
the migration would just be aborted or left in a "don't know what to do"
state. But this will change soon and we will be able to successfully
complete such migration once we get the corresponding event from QEMU.
This is specific to post-copy migration when vCPUs are already running
on the destination and we're only waiting for all memory pages to be
transferred. Such post-copy migration (which no-one is actively
watching) is called unattended migration.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
cc9f385a1d qemu: Pass qemuDomainJobObj to qemuMigrationDstComplete
When reconnecting to an active domain we need to use a different job
structure than the one referenced from the VM object.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
dbfcbe0896 qemu: Make sure migrationPort is released even in callbacks
Normally migrationPort is released in the Finish phase, but we need to
make sure it is properly released also in case qemuMigrationDstFinish is
not called at all. Currently the only callback which is called in this
situation qemuMigrationDstPrepareCleanup which already releases
migrationPort. This patch adds similar handling to additional callbacks
which will be used in the future.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
cff2e25043 qemu: Make final part of migration Confirm phase reusable
By separating it into a dedicated qemuMigrationSrcComplete function
which can be later called in other places.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
4c4e6913f4 qemu: Handle migration job in qemuMigrationDstFinish
The function which started a migration phase should also finish it by
calling qemuMigrationJobFinish/qemuMigrationJobContinue so that the code
is easier to follow.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
923ce7ed00 qemu: Introduce qemuMigrationDstFinishActive
Refactors qemuMigrationDstFinish by moving some parts to a dedicated
function for easier introduction of postcopy resume code without
duplicating common parts of the Finish phase. The goal is to have the
following call graph:

    - qemuMigrationDstFinish
        - qemuMigrationDstFinishOffline
        - qemuMigrationDstFinishActive
            - qemuMigrationDstFinishFresh
            - qemuMigrationDstFinishResume

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
229456b140 qemu: Separate cookie parsing for qemuMigrationDstFinishOffline
To keep all cookie handling (parsing and formatting) in the same
function.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
71951e9869 qemu: Introduce qemuMigrationDstFinishOffline
Refactors qemuMigrationDstFinish by moving some parts to a dedicated
function for easier introduction of postcopy resume code without
duplicating common parts of the Finish phase. The goal is to have the
following call graph:

    - qemuMigrationDstFinish
        - qemuMigrationDstFinishOffline
        - qemuMigrationDstFinishActive
            - qemuMigrationDstFinishFresh
            - qemuMigrationDstFinishResume

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
8ede853a9f qemu: Introduce qemuMigrationDstFinishFresh
Refactors qemuMigrationDstFinish by moving some parts to a dedicated
function for easier introduction of postcopy resume code without
duplicating common parts of the Finish phase. The goal is to have the
following call graph:

    - qemuMigrationDstFinish
        - qemuMigrationDstFinishOffline
        - qemuMigrationDstFinishActive
            - qemuMigrationDstFinishFresh
            - qemuMigrationDstFinishResume

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
3865596cf9 qemu: Preserve error in qemuMigrationDstFinish
We want to prevent our error path that can potentially kill the domain
on the destination host from overwriting an error reported earlier, but
we were only doing so in one specific path when starting vCPUs fails.
Let's do it in all paths.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
ea08483e7d qemu: Drop obsolete comment in qemuMigrationDstFinish
The comment about QEMU < 0.10.6 has been irrelevant for years.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
c41edf420b qemu: Make final part of migration Finish phase reusable
By separating it into a dedicated qemuMigrationDstComplete function
which can be later called in other places.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
c542432357 qemu: Generate migration cookie in Finish phase earlier
The final part of Finish phase will be refactored into a dedicated
function and we don't want to generate the cookie there.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
6bb40ef6b1 qemu: Rename "endjob" label in qemuMigrationDstFinish
Let's call it "error" so that it's clear the label is only used in
failure path.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
5eb956e284 qemu: Separate success and failure path in qemuMigrationDstFinish
Most of the code in "endjob" label is executed only on failure. Let's
duplicate the rest so that the label can be used only in error path
making the success path easier to follow and refactor.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
4cd9b5cdb8 qemu: Move success-only code out of endjob in qemuMigrationDstFinish
Code executed only when dom != NULL can be moved before "endjob" label,
to the only place where dom is set.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
b85eed31a5 qemu: Create domain object at the end of qemuMigrationDstFinish
We don't need the object until we get to the "endjob" label.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
73b81fc55f qemu: Add support for postcopy-recover QEMU migration state
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
5dd2d11ec0 qemu: Handle 'postcopy-paused' migration state
When connection breaks during post-copy migration, QEMU enters
'postcopy-paused' state. We need to handle this state and make the
situation visible to upper layers.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
458fa0e2bf qemu: Use switch in qemuProcessHandleMigrationStatus
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
425886ea99 qemu: Fetch paused migration stats
Even though a migration is paused, we still want to see the amount of
data transferred so far and that the migration is indeed not progressing
any further.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
918c14ee06 qemu: Don't wait for migration job when migration is running
Migration is a job which takes some time and if it succeeds, there's
nothing to call another migration on. If a migration fails, it might
make sense to rerun it with different arguments, but this would only be
done once the first migration fails rather than while it is still
running.

If this was not enough, the migration job now stays active even if
post-copy migration fails and anyone possibly retrying the migration
would be waiting for the job timeout just to get a suboptimal error
message.

So let's special case getting a migration job when another one is
already active.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
96db9dcfe9 qemu: Drop forward declarations in migration code
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
7c36e5004c qemu: Restore async job start timestamp on reconnect
Jobs that are supposed to remain active even when libvirt daemon
restarts were reported as started at the time the daemon was restarted.
This is not very helpful, we should restore the original timestamp.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
013d3091e0 qemu: Restore failed migration job on reconnect
Since we keep the migration job active when post-copy migration fails,
we need to restore it when reconnecting to running domains.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
c2f6a6a726 qemu: Abort failed post-copy when we haven't called Finish yet
When migration fails after it already switched to post-copy phase on the
source, but early enough that we haven't called Finish on the
destination yet, we know the vCPUs were not started on the destination
and the source host still has a complete state of the domain. Thus we
can just ignore the fact post-copy phase started and normally abort the
migration and resume vCPUs on the source.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
88a59fbbf3 qemu: Keep migration job active after failed post-copy
When post-copy migration fails, we can't just abort the migration and
resume the domain on the source host as it is already running on the
destination host and no host has a complete state of the domain memory.
Instead of the current approach of just marking the domain on both ends
as paused/running with a post-copy failed sub state, we will keep the
migration job active (even though the migration API will return failure)
so that the state is more visible and we can better control what APIs
can be called on the domains and even allow for resuming the migration.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
6637880b3c qemu: Add qemuDomainObjRestoreAsyncJob
The code for setting up a previously active backup job in
qemuProcessRecoverJob is generalized into a dedicated function so that
it can be later reused in other places.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
d6d1c4980d qemu: Rename qemuDomainObjRestoreJob as qemuDomainObjPreserveJob
It is used for saving job out of domain object. Just like
virErrorPreserveLast is used for errors. Let's make the naming
consistent as Restore would suggest different semantics.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
7c1840fa37 qemu: Introduce qemuProcessCleanupMigrationJob
The function can be used as a callback for qemuDomainCleanupAdd to
automatically clean up a migration job when a domain is destroyed.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
83ccd3a3d1 conf: Introduce virDomainObjIsPostcopy helper
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
efe95fb878 conf: Introduce virDomainObjIsFailedPostcopy helper
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
6ca0ff90ac qemu: Make qemuDomainCleanupAdd return void
The function never returns anything but zero.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
3abe9c496c qemu: Explicitly emit events on post-copy failure
The events would normally be triggered only if we're changing domain
state. But most of the time the domain is already in the right state and
we're just changing its substate from {PAUSED,RUNNING}_POSTCOPY to
*_POSTCOPY_FAILED. Let's emit lifecycle events explicitly when post-copy
migration fails to make the failure visible without polling.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
13b43c22b7 qemu: Keep domain running on dst on failed post-copy migration
There's no need to artificially pause a domain when post-copy fails
from our point of view unless QEMU connection is broken too as migration
may still be progressing well.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
aab9d64d4d Introduce VIR_DOMAIN_RUNNING_POSTCOPY_FAILED
This new "post-copy failed" reason for the running state will be used on
the destination host when post-copy migration fails while the domain is
already running there.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2022-06-07 17:40:20 +02:00
Jiri Denemark
8cd5edfdfe qemumonitorjsontest: Test more migration capabilities
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:19 +02:00
Jiri Denemark
8d00f3e801 qemu: Add debug messages to job recovery code
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-06-07 17:40:19 +02:00
Göran Uddeborg
fe67380b20 Translated using Weblate (Swedish)
Currently translated at 34.5% (3601 of 10431 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/sv/

Translated using Weblate (Swedish)

Currently translated at 34.1% (3561 of 10431 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/sv/

Co-authored-by: Göran Uddeborg <goeran@uddeborg.se>
Signed-off-by: Göran Uddeborg <goeran@uddeborg.se>
2022-06-07 16:50:32 +02:00
Peng Liang
b2297edc05 storage_file: Remove unused includes
Signed-off-by: Peng Liang <tcx4c70@gmail.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-07 16:16:48 +02:00
Peng Liang
32b11c49e6 security: Remove unused includes
Signed-off-by: Peng Liang <tcx4c70@gmail.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-07 16:07:00 +02:00
Peng Liang
c701575d8b secret: Remove unused includes
Signed-off-by: Peng Liang <tcx4c70@gmail.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-07 16:07:00 +02:00
Peng Liang
c666bb7929 nwfilter: Remove unused includes
Signed-off-by: Peng Liang <tcx4c70@gmail.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-07 16:04:21 +02:00
Peng Liang
72593eac93 interface: Remove unused includes
Signed-off-by: Peng Liang <tcx4c70@gmail.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-07 16:04:21 +02:00
Ján Tomko
4539530034 docs: contact: recommend the TLS port for IRC
Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2022-06-07 15:22:32 +02:00
Peter Krempa
0e3f42b834 qemucapabilitiestest: Update latest caps to 'v7.0.0-1512-gca127b3fc2'
Notable changes:

 - Icelake-Client cpu model family removed:
     "Icelake-Client-noTSX-x86_64-cpu"
     "Icelake-Client-v1-x86_64-cpu"
     "Icelake-Client-v2-x86_64-cpu"
     "Icelake-Client-v3-x86_64-cpu"
     "Icelake-Client-x86_64-cpu"

 - 'zero-copy-send' migration feature added

 - display 'sdl' qapified

 - 'arch-lbr' cpu feature added

 - new HyperV enlightenments:
     'hv-tlbflush-ext'
     'hv-tlbflush-direct'
     'hv-emsr-bitmap'
     'hv-xmm-input'

 - 'none-machine' has two new properties:
     - "boot" described as "Boot configuration"
     - "memory" described as "Memory size configuration"

 - 'igd-passthrough-isa-bridge' is now Xen-only

 - CXL: Compute eXpress Link related devices:
      "CXL"
      "cxl-rp",
      "cxl-type3",
      "pxb-cxl",
      "pxb-cxl-bus",
      "pxb-cxl-host",

 - 'dma-translation' feature of 'intel-iommu'

 - 'vmcb-clean' cpu feature now migratable:
     - possibly due to host kernel upgrade
     - changes commandline generated for the 'cpu-host-model' case of
       qemuxml2argvtest

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-06-07 13:00:56 +02:00
Peter Krempa
95bd137216 qemu: Fix crash in qemuBuildDeviceCommandlineHandleOverrides
'STREQ' is used to compare the override alias with the device alias.
While the parser ensures that the override alias is non-NULL, the device
alias may be NULL and STREQ doesn't handle that.

Fixes: 38ab5c9ead
Resolves: https://gitlab.com/libvirt/libvirt/-/issues/321
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-06 10:41:38 +02:00
Peter Krempa
8d3a807a4a qemu: fd: Fix monitor usage of qemuFDPassDirectGetPath
We need to use the 'name' variable and just overwrite it with the FD
number when FDs are passed on the monitor. Otherwise we will read NULL
path if the FD is accessed before being passed on the monitor. The idea
of this helper is to simplify the monitor code so it would be
counterproductive to have other behaviour.

Fixes the following symptom:

 $ virsh attach-interface cd network default --model virtio
 error: Failed to attach interface
 error: internal error: unable to execute QEMU command 'netdev_add': File descriptor named '(null)' has not been found

Fixes: bca9047906
Resolves: https://gitlab.com/libvirt/libvirt/-/issues/318
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2092856
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-06 09:42:58 +02:00
Peter Krempa
a939d4d869 util: json: Add modifier for adding non-negative long values to JSON objects
Similarly to the 'k' modifier for integers introduce 'K' for long
integers.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
2022-06-03 10:09:04 +02:00
Göran Uddeborg
b0f473f49e Translated using Weblate (Swedish)
Currently translated at 33.3% (3481 of 10431 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/sv/

Co-authored-by: Göran Uddeborg <goeran@uddeborg.se>
Signed-off-by: Göran Uddeborg <goeran@uddeborg.se>
2022-06-02 22:18:44 +02:00
Michal Privoznik
8d2567bccf qemu: Restore label to temp file in qemuDomainScreenshot()
Obtaining a screenshot via virDomainScreenshot() works like this:
  1) we create a temp file, label it, then
  2) tell QEMU to store the screenshot into it, and
  3) finally, open the file for transfer via virStream

Since the file is just temporary and even explicitly unlinked at
the end, no seclabel restoration is done. This makes perfect
sense for security models which attach a label to file itself
(DAC, SELinux) because the label is gone with the file. However,
for models where a list of files and allowed actions is kept on a
side (AppArmor) this approach means we just append files into the
profile and never remove them. In turn, the file grows and policy
update takes longer with each entry.

Restore the seclabel for AppArmor's sake.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
2022-06-02 17:03:43 +02:00
Michal Privoznik
215b2466cd virStorageSourceGetActualType: Change type of retval
The virStorageSourceGetActualType() function returns either
virStorageSource->type (which is of type virStorageType), or
virStorageSourcePoolDef->type, which really stores a value of the
same enum. Thus, the latter struct can be changed so that the
virStorageSourceGetActualType() function can return correct type
instead of generic int.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
2022-06-01 14:54:59 +02:00
Michal Privoznik
2307f06cb2 Drop needless typecast to virStorageType enum
There are three places (two in domain_conf.c and one in
qemu_migration.c) where a virStorageSource->type is typecasted to
virStorageType (for the purpose of catching missing enum member
in a switch() statement at compile time). This is needless,
because as of v8.2.0-rc1~120 the struct member is of proper type.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
2022-06-01 14:54:59 +02:00
Peter Krempa
0c4bdd835c schemas: Allow 'manual' snapshot mode in domain definition
Commit a1465e661e added the 'manual' disk snapshot mode documentation
but didn't allow it in the schema as default snapshot mode for a disk.

Add the needed value into the schema.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-06-01 12:27:10 +02:00
Peter Krempa
3299e00298 docs: domain: Remove extraneous quotes
Certain documentation bits tried to put a reference of a value into
quotes, but that's not needed for both the pure view of the rST source
and the rendered output.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-06-01 12:27:10 +02:00
Peter Krempa
24049c06d9 virNetMessageEncodePayloadEmpty: Replace by virNetMessageEncodePayloadRaw(msg, NULL, 0)
Replace the two outstanding invocations and remove the function.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Claudio Fontana <cfontana@suse.de>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-06-01 12:27:10 +02:00
Peter Krempa
9a86592c4e virNetMessageEncodePayloadRaw: Tolerate empty 'data'
'virNetMessageEncodePayloadRaw' is not supposed to be called with 'NULL'
data, but the code path from 'virNetClientStreamSendPacket' does so.

Now 'virNetMessageEncodePayloadEmpty' is intended for such case, but
since it's just a sub-set of steps from 'virNetMessageEncodePayloadRaw'
it's more straightforward to add NULL-tolerance to 'virNetMessageEncodePayloadRaw'
and subsequently remove 'virNetMessageEncodePayloadEmpty'.

Closes: https://gitlab.com/libvirt/libvirt/-/issues/308
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Claudio Fontana <cfontana@suse.de>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-06-01 12:27:10 +02:00
Peter Krempa
00509d2d6a glibcompat: Provide proper override for 'g_hash_table_steal_extended'
We've emulated the function in virHashSteal, with a note pointing to use
the proper version. Move the code to glibcomapt.c and make it such that
builds using newer glib already use the new function.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:10 +02:00
Peter Krempa
37356e1dc8 gitlab: issue_template: Remove labelling commands
The commands only work for users who are members of the project and thus
can set flags themselves.

For non-members they are ignored, so there's isn't much value in having
it here.

Additionally in my recent upstream issue triage I've changed some of the
labels so they were not accurate anyways.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:10 +02:00
Peter Krempa
8452124669 docs: Add HTML reference checker
In many cases we move around or rename internal anchors which may break
links leading to the content.

docutils handle the case of links inside a document, but we are lacking
the same form of checking between documents.

Introduce a script which cross-checks all the anchors and links in HTML
output files and prints problems and use it as a test case for the
'docs' directory.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:10 +02:00
Peter Krempa
dcff02d797 docs: formatstorageencryption: Use correct anchor into formatsecret page
The link was most likely broken when 'formatsecret' was converted to
RST.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:10 +02:00
Peter Krempa
602c14fdf5 uri: Fix link to qemu KVM example config
Link into the examples of the qemu driver.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:10 +02:00
Peter Krempa
ccc5df2e4c docs: remote: Fix anchor names in links to uri.html
When uri.html was converted to RST the 'URI remote' anchor was not fixed
in remote.rst.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:10 +02:00
Peter Krempa
5aa78876e0 docs: kbase/tlscerts: Fix links
Most of the links were broken by moving the article into kbase, but in
this case we need to also fix the anchor names.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:10 +02:00
Peter Krempa
ce2426baff docs: kbase/kvm-realtime: Fix few links
Certain links were missing the '../' prefix to reach files in the parent
directory from the time the page was introduced.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:10 +02:00
Peter Krempa
34aa8abda7 docs: Fix links in kbase/internals
The links were broken when the documentation was moved into the
'internals' subdirectory.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:10 +02:00
Peter Krempa
d19c8e7a57 docs: Remove extra leading slash in 'api' and 'formatdomaincaps' pages
While the links work they'd trip up the link validator script which will
be added later.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:10 +02:00
Peter Krempa
610407dad3 docs: Fix link to 'tlscerts' article
The link was not fixed when the page was moved into 'kbase/'

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:10 +02:00
Peter Krempa
f05a4fc766 scripts: hvsupport: Remove link into the 'html' directory
Linking to a list of files is not helpful.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:10 +02:00
Peter Krempa
d51664b8da docs: formatcaps: Fix anchors of links into formatdomain.rst
The links were broken on the initial conversion of formatdomain.html to
RST which didn't faithfully forward port some of the manually added
anchors.

Fix it by pointing to the closest possible heading.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:10 +02:00
Peter Krempa
0ad7ed199e docs: rpc: Fix broken headings
Remove what seems like links from some headings. This error predates the
conversion to RST where an '<a href' was used instead of '<a id' in the
source document.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:10 +02:00
Peter Krempa
f97e769b63 docs: domainstatecapture: Fix broken links
Some links didn't exit the 'kbase/' directory and 'virDomainBackupEnd'
API never existed.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:10 +02:00
Peter Krempa
d049011697 docs: page.xsl: Fix link to 'mailing-lists' section
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:10 +02:00
Peter Krempa
f50cfd9987 syntax-check: Add check prohibiting remote reference to local file
Within a file we should use the internal reference syntax.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:10 +02:00
Peter Krempa
85044a3631 docs: uri: Fix link to libvirtd configuration section
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:10 +02:00
Peter Krempa
0a78803843 docs: formatdomain: Use local reference directly
Once we are already using the new anchor format we can create the link
via a local reference.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:10 +02:00
Peter Krempa
954119343b docs: formatdomain: Remove the 'anchor' role
The role was used to pass through raw HTML to define custom anchor
names. Since all of the document was now converted to use the anchors
generated from headers we can remove it.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:10 +02:00
Peter Krempa
a781f7980c docs: formatdomain: Remove 'launchSecurity' anchor
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:10 +02:00
Peter Krempa
e8cdf37ebf docs: formatdomain: Remove 'keywrap' anchor
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:10 +02:00
Peter Krempa
cab8c4c423 docs: formatdomain: Remove 'seclabel' anchor
One local reference required rewording of a whole paragraph to make
sense.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:10 +02:00
Peter Krempa
2ca5661b38 docs: formatdomain: Remove 'vsock' anchor
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:10 +02:00
Peter Krempa
0f4af23ede docs: formatdomain: Remove 'elementsIommu' anchor
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:10 +02:00
Peter Krempa
fa5124bdbb docs: formatdomain: Remove 'elementsMemory' anchor
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:10 +02:00
Peter Krempa
341b8b1c8f docs: formatdomain: Remove 'elementsTpm' anchor
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:10 +02:00
Peter Krempa
a5018f1e0c docs: formatdomain: Remove 'elementsAudio' anchor
Local references were reworded to match.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:10 +02:00
Peter Krempa
92bc35daa6 docs: formatdomain: Remove 'elementsCharHost' anchor
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:10 +02:00
Peter Krempa
c81500b2a1 docs: formatdomain: Remove 'elementsCharHostInterface' anchor
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:10 +02:00
Peter Krempa
3956794b77 docs: formatdomain: Remove 'elementCharSerialAndConsole' anchor
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:09 +02:00
Peter Krempa
33a324ba49 docs: formatdomain: Remove 'elementCharSerial' anchor
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:09 +02:00
Peter Krempa
e3423c4f0e docs: formatdomain: Remove 'elementsConsole' anchor
Some rewording and rewraping was needed to accomodate the new local
references.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:09 +02:00
Peter Krempa
525287e1bd docs: formatdomain: Remove 'elementsVideo' anchor
The surrounding paragraph around the only fixed use was rewrapped.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:09 +02:00
Peter Krempa
58a7955c9c docs: formatdomain: Remove 'elementsGraphics' anchor
Local references needed rewording.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:09 +02:00
Peter Krempa
0859e2135d docs: formatdomain: Remove 'elementVhostuser' anchor
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:09 +02:00
Peter Krempa
696183be0e docs: formatdomain: Remove 'coalesce' anchor
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:09 +02:00
Peter Krempa
00901cb4e4 docs: formatdomain: Remove 'mtu' anchor
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:09 +02:00
Peter Krempa
fd36dc7397 docs: formatdomain: Remove 'elementPort' anchor
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:09 +02:00
Peter Krempa
5d2c344407 docs: formatdomain: Remove 'elementVlanTag' anchor
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:09 +02:00
Peter Krempa
8077974d64 docs: formatdomain: Remove 'elementQoS' anchor
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:09 +02:00
Peter Krempa
99e01a44e4 docs: formatdomain: Remove 'elementsNICSTargetOverride' anchor
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:09 +02:00
Peter Krempa
4506e4057d docs: formatdomain: Remove 'elementsNICSDirect' anchor
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:09 +02:00
Peter Krempa
dadd384907 docs: formatdomain: Remove 'elementsNICS' anchor
The one local link addition prompted rewrapping of the whole paragraph.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:09 +02:00
Peter Krempa
abc1b8ab60 docs: formatdomain: Remove 'elementsHostDev' anchor
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:09 +02:00
Peter Krempa
5dc55c52ac docs: formatdomain: Remove 'elementsControllers' anchor
Local references were reworded.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:09 +02:00
Peter Krempa
92e09c3659 docs: formatdomain: Remove 'elementsVirtioTransitional' anchor
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:09 +02:00
Peter Krempa
fbce49ed9a docs: formatdomain: Remove 'elementsVirtio' anchor
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:09 +02:00
Peter Krempa
02954a5f5d docs: formatdomain: Remove 'elementsAddress' anchor
All local links were reformulated to make sense with local references.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:09 +02:00
Peter Krempa
4331a892d4 docs: formatdomain: Remove 'elementsDisks' anchor
Two paragraphs containing local links were reformulated and rewrapped.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:09 +02:00
Peter Krempa
dff53731ec docs: formatdomain: Remove 'elementsDevices' anchor
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:09 +02:00
Peter Krempa
4fbaa15362 docs: formatdomain: Remove 'elementsFeatures' anchor
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:09 +02:00
Peter Krempa
2f36b98a42 docs: formatdomain: Remove 'elementsEvents' anchor
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:09 +02:00
Peter Krempa
cc947d59eb docs: formatdomain: Remove 'hmat' anchor
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:09 +02:00
Peter Krempa
456a710290 docs: formatdomain: Remove 'elementsCPU' anchor
Reworded documentation around the local link.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:09 +02:00
Peter Krempa
de430ac139 docs: formatdomain: Remove 'elementsBlockTuning' anchor
Reworded documentation around the local link.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:09 +02:00
Peter Krempa
763c35e7e6 docs: formatdomain: Remove 'elementsNUMATuning' anchor
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:09 +02:00
Peter Krempa
88b97d9bce docs: formatdomain: Remove 'elementsMemoryTuning' anchor
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:09 +02:00
Peter Krempa
e1f9c35220 docs: formatdomain: Remove 'elementsMemoryBacking' anchor
Reworded documentation around one of the local links.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:09 +02:00
Peter Krempa
14f11cf375 docs: formatdomain: Remove 'elementsMemoryAllocation' anchor
Reworded documentation around local links.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:09 +02:00
Peter Krempa
19bdd5d3d5 docs: formatdomain: Remove 'elementsCPUTuning' anchor
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:09 +02:00
Peter Krempa
f97e788994 docs: formatdomain: Remove 'elementsIOThreadsAllocation' anchor
Reworded documentation around local links.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:09 +02:00
Peter Krempa
6fee44f3f5 docs: formatdomain: Remove 'elementsCPUAllocation' anchor
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:09 +02:00
Peter Krempa
9e7ac886bb docs: formatdomain: Remove 'elementsSysinfo' anchor
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:09 +02:00
Peter Krempa
8593e550df docs: formatdomain: Remove 'elementsOSContainer' anchor
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:09 +02:00
Peter Krempa
09ed0fd5b9 docs: formatdomain: Remove 'elementsOSBIOS' anchor
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:09 +02:00
Peter Krempa
b680bb3bb6 docs: formatdomain: Remove 'elementsOS' anchor
Reworded the paragraph around the local link.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:09 +02:00
Peter Krempa
d67964a47a docs: formatdomain: Remove 'elementsMetadata' anchor
Reworded the local link so that it retains the sense.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:09 +02:00
Peter Krempa
986d596fcc docs: formatdomain: Remove 'elements' anchor
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 12:27:09 +02:00
Martin Kletzander
1b71b3ac81 virt-host-validate: Improve failure message when no HW virt is found
Make sure that more users understand that without HW virtualization you cannot
have KVM working.

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2086677
Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 11:58:09 +02:00
Tim Wiederhake
1b05f2e50b Fix typos
Signed-off-by: Tim Wiederhake <twiederh@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 09:55:48 +02:00
Michal Privoznik
2597296ea6 qemu_capspriv: Drop needless declarations
There are two functions declared in qemu_capspriv.h:
1) virQEMUCapsInitHostCPUModel() which is not used anywhere but
   qemu_capabilities.c,

2) virQEMUCapsSetSEVCapabilities() which is my personal favorite
   but despite that it's never implemented nor called.

Drop them.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
2022-06-01 09:45:40 +02:00
Michal Privoznik
12be42ee7e network: Generate TFTP config regardless of DHCP
We already allow users to provide TFTP root path in network XML
and not specify any DHCP. This makes sense, because dnsmasq is
not only DHCP server but also TFTP server and users might have
a DHCP server configured on their own, outside of libvirt's
control and want just the TFTP part.

By moving TFTP config generator out of DHCP generator and calling
it for every IPv4 range, users can finally enable just TFTP.

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2026765
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 09:40:40 +02:00
Michal Privoznik
bab462db6e network: Separate DHCP config generator into a function
Generating configuration file for dnsmasq is done in
networkDnsmasqConfContents() which is this big, self-contained
function. Separate at least DHCP part into its own function for
better readability.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 09:40:19 +02:00
Michal Privoznik
314dac422d network: Initialize variables in networkDnsmasqConfContents()
In networkDnsmasqConfContents() there's a for() loop which
initializes some variables in its initialization block. This
makes both the loop() statement and variable declaration block
look needlessly ugly. Speaking of variable declaration, also move
some variables which are used only within blocks into their
respective blocks.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-06-01 09:40:07 +02:00
Michal Privoznik
f344005547 lib: Be consistent about vm->pid
The virDomainObj struct has @pid member where the domain's
hypervisor PID is stored (e.g. QEMU/bhyve/libvirt_lxc/... PID).
However, we are not consistent when it comes to shutoff state.
Initially, because virDomainObjNew() uses g_new0() the @pid is
initialized to 0. But when domain is shut off, some functions set
it to -1 (virBhyveProcessStop, virCHProcessStop, qemuProcessStop,
..).

In other places, the @pid is tested to be 0, on some other places
it's tested for being negative and in the rest for being
positive.

To solve this inconsistency we can stick with either value, -1 or
0. I've chosen the latter as it's safer IMO. For instance if by
mistake we'd kill(vm->pid, SIGTERM) we would kill ourselves
instead of init's process group.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
2022-06-01 09:35:26 +02:00
Jiri Denemark
506210aab9 Post-release version bump to 8.5.0
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
2022-06-01 09:30:38 +02:00
Jiri Denemark
0c92b08426 Release of libvirt-8.4.0
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
2022-06-01 09:28:24 +02:00
Daniel P. Berrangé
8b8fd1bc67 ci: eliminate many cross arch CI builds
We currently build cross-arch containers for all three Debian
releases (10, 11, Sid), and do libvirt builds covering each
arch. This is overkill in terms of the number of problems it
identifies. The most important aspect of cross arch builds is
to find problems with 32-bit builds and problems with big
endian builds.

With this in mind the cross arch jobs are altered as follows

 - Debian 10
     - build the containers by default
     - build armv7 (32-bit) & s390x (big endian)
     - other arch builds manual

 - Debian 11 / Sid
     - container builds all optional
     - arch builds all optional

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
2022-05-31 17:23:04 +02:00
Daniel P. Berrangé
bb9abaed26 ci: move Ubuntu GCC santizers build to 20.04
We currently build on Ubuntu 22.04 twice, for GCC and CLang
with santizers turned on. Moving the GCC santizers build
to 20.04 lets us cull one of the 22.04 jobs

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
2022-05-31 17:23:04 +02:00
Daniel P. Berrangé
b7565a2145 ci: disable native builds on certain distros
Currently we do native builds on all distros that are covered
by the support matrix. This reduces that such that we mostly
only run builds on the newest (ie bleeding edge non-released)
version and the oldest version. The effect is that cut out
builds on the newest release version. This is acceptable,
because that version is sandwiched between two versions we
do still test, so unlikely to have failures not already
identified by other jobs.

This has the effect of disabling:

  - AlmaLinux 8 GCC - still has a CLang build
    and CentOS 8 Stream also gives coverage

  - Debian 11 - still has a Debian 10 and Sid
    build

  - Alpine 3.15 - still has a Alpine 3.14 and Edge
    build

Ideally Fedora 35 would be disabled too, but we rely on that
for the integration tests.

The Ubuntu jobs will be handled in the next patch.

The containers are still built since this is cheap-ish.

The build jobs can also be triggered manually if desired.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
2022-05-31 17:23:04 +02:00
Daniel P. Berrangé
1c5bc460d3 ci: refresh with lcitool manifest
This refreshes the containers bringing in new behaviour when
builds/containers are disabled.

Instead of deleting the job entirely, the job still exists
but is set to be a manual job. It won't affect the pipeline
result, but can be triggered by the developer if they wish
to test a specific scenario.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
2022-05-31 17:23:04 +02:00
Göran Uddeborg
77ffe16047 Translated using Weblate (Swedish)
Currently translated at 33.1% (3461 of 10431 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/sv/

Translated using Weblate (Swedish)

Currently translated at 32.9% (3441 of 10431 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/sv/

Translated using Weblate (Swedish)

Currently translated at 32.7% (3421 of 10431 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/sv/

Co-authored-by: Göran Uddeborg <goeran@uddeborg.se>
Signed-off-by: Göran Uddeborg <goeran@uddeborg.se>
2022-05-31 14:35:28 +02:00
Göran Uddeborg
78290b3cff Translated using Weblate (Swedish)
Currently translated at 32.7% (3421 of 10431 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/sv/

Co-authored-by: Göran Uddeborg <goeran@uddeborg.se>
Signed-off-by: Göran Uddeborg <goeran@uddeborg.se>
2022-05-31 12:13:00 +00:00
김인수
6813707157 Translated using Weblate (Korean)
Currently translated at 100.0% (10431 of 10431 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/ko/

Co-authored-by: 김인수 <simmon@nplob.com>
Signed-off-by: 김인수 <simmon@nplob.com>
2022-05-31 12:13:00 +00:00
Yuri Chornoivan
e39fc69b8b Translated using Weblate (Ukrainian)
Currently translated at 100.0% (10431 of 10431 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/uk/

Co-authored-by: Yuri Chornoivan <yurchor@ukr.net>
Signed-off-by: Yuri Chornoivan <yurchor@ukr.net>
2022-05-31 12:13:00 +00:00
Weblate
f9ea509d52 Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/

Co-authored-by: Weblate <noreply@weblate.org>
Signed-off-by: Fedora Weblate Translation <i18n@lists.fedoraproject.org>
2022-05-31 12:13:00 +00:00
Han Han
bac9e55efe news: Add APIs virDomainSaveParams virDomainRestoreParams
Signed-off-by: Han Han <hhan@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-31 12:26:42 +02:00
Han Han
586cbe754d news: Add qemu-vdagent
Signed-off-by: Han Han <hhan@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-31 12:26:37 +02:00
Michal Privoznik
b4161c2d42 virDomainInputDefValidate: Validate model
If input device has one of virtio* models set then it has to go
onto virtio bus. Introduce such check into the validator.

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2081981
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
2022-05-30 16:30:21 +02:00
Michal Privoznik
bded22e3a7 virDomainInputDefValidate: Reformat
There are some formatting problems with virDomainInputDefValidate().
Reformat it to our standards. Use this opportunity to move error
messages onto a single line.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
2022-05-30 16:30:09 +02:00
Peter Krempa
60d18ff746 NEWS: Mention 'absolute' clock offset
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-30 09:38:58 +02:00
Michal Privoznik
14bd5036e4 qemuProcessStop: Don't try to remove QoS on already removed TAP
When cleaning up after stopped domain, one of the things we do is
attempt to clear QoS settings on OVS type interfaces. Well, this
is needless because they were removed just a couple of lines
above. As a result, the attempt fails and a warning is printed
into logs, polluting them needlessly.

Closes: https://gitlab.com/libvirt/libvirt/-/issues/313
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-30 09:14:41 +02:00
Daniel P. Berrangé
a5d9c70621 gitlab: mark job dependencies as optional
The container jobs are all optional in upstream now, only
running if dockerfile changes were made. Thus any build
jobs which reference the container jobs need to mark their
dependency as optional too.

Reviewed-by: Erik Skultety <eskultet@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2022-05-27 08:11:15 -04:00
Michal Privoznik
7f463b4c0d nss: Compare hostname case insensitive
There are some tools that convert hostname to lowercase before
resolving it (e.g. ssh). In a way it makes sense because DNS is
case insensitive and in case of ssh the lowercase version is then
used to find matching record in its config file. However, our NSS
module performs case sensitive comparison, which makes it useless
with ssh. Just consider a machine named FooBar.

Therefore, switch to case insensitive string comparison.

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1777873
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
2022-05-27 13:43:14 +02:00
Martin Kletzander
76802e5dc6 ci: Refresh generated files
Notable changes:

* 'lcitool manifest' now generates absolute include paths

Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
2022-05-27 13:35:33 +02:00
Daniel P. Berrangé
bf769a4d42 build-aux: remove syntax checks for ATTRIBUTE_* and ARRAY_CARDINALITY
These checks made sense when we were in process of converting code.
Since the definition of the macros has been entirely removed now,
the compiler will already thrown an error. There aren't likely to
be any in-flight patches that would hit this anyone either.

Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2022-05-27 09:22:18 +01:00
Andrea Bolognani
be1d39f6bd ci: Don't mark any Fedora 36 job as optional
It's a stable distro, so we expect all jobs to succeed.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
2022-05-26 16:41:23 +02:00
Andrea Bolognani
1234ea1d38 ci: Move MinGW jobs to Fedora 36
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
2022-05-26 16:41:20 +02:00
Andrea Bolognani
a6f7ed6e72 ci: Add Fedora 36
The target is intentionally not added to the integration tests
at this time, because the corresponding VM template is not yet
available on the runner. A later patch will take care of that.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
2022-05-26 16:41:19 +02:00
Andrea Bolognani
c000499c4f ci: Refresh generated files
Notable changes:

  * 'lcitool manifest' now generates GitLab CI rules spread
    across a bunch of files;

  * container images are built less frequently for the main
    repository.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
2022-05-26 16:41:17 +02:00
Andrea Bolognani
af89e4b8f8 ci: Drop Fedora 34
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
2022-05-26 16:41:14 +02:00
Scott Davis
8833b42f3b vircgroupv1: fix null string specifier argument in virCgroupV1ValidatePlacement
Detected by gcc 11 -Wformat-overflow:
../../src/util/vircgroupv1.c: In function ‘virCgroupV1ValidatePlacement’:
../../src/util/virerror.h:176:5: warning: ‘%s’ directive argument is null [-Wformat-overflow=]
  176 |     virReportErrorHelper(VIR_FROM_THIS, code, __FILE__, \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  177 |                          __FUNCTION__, __LINE__, __VA_ARGS__)
      |                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../src/util/vircgroupv1.c:411:13: note: in expansion of macro ‘virReportError’
  411 |             virReportError(VIR_ERR_INTERNAL_ERROR,
      |             ^~~~~~~~~~~~~~
../../src/util/vircgroupv1.c:412:80: note: format string is defined here
  412 |                            _("Could not find placement for v1 controller %s at %s"),
      |                                                                                ^~

Signed-off-by: Scott Davis <scott.davis@starlab.io>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-26 10:14:49 +02:00
Scott Davis
8cd9065352 remote: fix null string specifier argument in remoteProbeSessionDriverFromBinary
Detected by gcc 11 -Wformat-overflow:
../src/remote/remote_sockets.c: In function ‘remoteProbeSessionDriverFromBinary’:
../src/util/virlog.h:79:5: error: ‘%s’ directive argument is null [-Werror=format-overflow=]
   79 |     virLogMessage(src, VIR_LOG_DEBUG, filename, linenr, funcname, NULL, __VA_ARGS__)
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/util/virlog.h:88:5: note: in expansion of macro ‘VIR_DEBUG_INT’
   88 |     VIR_DEBUG_INT(&virLogSelf, __FILE__, __LINE__, __func__, __VA_ARGS__)
      |     ^~~~~~~~~~~~~
../src/remote/remote_sockets.c:187:9: note: in expansion of macro ‘VIR_DEBUG’
  187 |         VIR_DEBUG("Probing driver '%s' via daemon %s", drivers[i], daemonpath);
      |         ^~~~~~~~~
../src/remote/remote_sockets.c:187:51: note: format string is defined here
  187 |         VIR_DEBUG("Probing driver '%s' via daemon %s", drivers[i], daemonpath);
      |                                                   ^~

Signed-off-by: Scott Davis <scott.davis@starlab.io>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-26 10:14:46 +02:00
Scott Davis
8c6fa38efc qemu: fix null string specifier argument in qemuDomainBlockJobAbort
Detected by gcc 11 -Wformat-overflow:
../../src/qemu/qemu_driver.c: In function ‘qemuDomainBlockJobAbort’:
../../src/util/virerror.h:176:5: warning: ‘%s’ directive argument is null [-Wformat-overflow=]
  176 |     virReportErrorHelper(VIR_FROM_THIS, code, __FILE__, \
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  177 |                          __FUNCTION__, __LINE__, __VA_ARGS__)
      |                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../src/qemu/qemu_driver.c:14475:17: note: in expansion of macro ‘virReportError’
14475 |                 virReportError(VIR_ERR_OPERATION_FAILED,
      |                 ^~~~~~~~~~~~~~
../../src/qemu/qemu_driver.c:14476:73: note: format string is defined here
14476 |                                _("block job '%s' failed while pivoting: %s"),
      |                                                                         ^~

Signed-off-by: Scott Davis <scott.davis@starlab.io>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-26 10:14:40 +02:00
Jiri Denemark
c781b025c0 po: Refresh potfile for v8.4.0
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
2022-05-25 22:18:56 +02:00
김인수
f0bcb31a53 Translated using Weblate (Korean)
Currently translated at 100.0% (10419 of 10419 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/ko/

Co-authored-by: 김인수 <simmon@nplob.com>
Signed-off-by: 김인수 <simmon@nplob.com>
2022-05-25 15:12:24 +02:00
Weblate
42ec0dbfc0 Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/

Co-authored-by: Weblate <noreply@weblate.org>
Signed-off-by: Fedora Weblate Translation <i18n@lists.fedoraproject.org>
2022-05-25 15:12:24 +02:00
Ján Tomko
ad318a6c12 vbox: SnapshotConfAllChildren: reduce scope of tempSize
Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2022-05-25 15:10:02 +02:00
Ján Tomko
9e41a59ce5 apparmor: report error when removing profile failed
Assign the return value to 'rc' before comparing it.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2022-05-25 15:10:02 +02:00
Ján Tomko
ef17772900 Do not check if unsigned vars are less than zero
Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2022-05-25 15:10:02 +02:00
Daniel Henrique Barboza
e79bfda145 NEWS.rst: document Power10 support
Update NEWS.rst with the now added Power10 processor support.

Reviewed-by: Andrea Bolognani <abologna@redhat.com>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
2022-05-24 14:25:41 -03:00
Daniel Henrique Barboza
316de7eb12 cpu_ppc64: add support for host-model on POWER10
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
2022-05-24 14:25:41 -03:00
Daniel Henrique Barboza
38dba6a02e cpu_map: add POWER10 cpu model
Add POWER10 as a supported cpu model.

Reviewed-by: Andrea Bolognani <abologna@redhat.com>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
2022-05-24 14:25:41 -03:00
Jiri Denemark
76baf935aa qemu: Do not pass unused opaque pointer to monitor callbacks
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-24 16:26:04 +02:00
Jiri Denemark
88f3727e71 qemu: Do not use opaque pointer in QEMU monitor callbacks
It always points to QEMU driver, which is quite redundant as all
callbacks also get a pointer to a vm object. Let's get the driver
pointer from there instead.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-24 16:26:04 +02:00
Jiri Denemark
64d5d06c56 qemu: Drop driver parameter from qemuProcessEventSubmit
We can easily get it from the vm object.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-24 16:26:04 +02:00
Jiri Denemark
7b5046ff6c qemu: Make vm parameter of qemuProcessEventSubmit mandatory
All callers (QMP event handlers) always pass non-NULL vm pointer. Let's
make the parameter mandatory.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-24 16:26:04 +02:00
Jiri Denemark
3ccd69f8c0 qemu: Pass arguments to qemuProcessEventSubmit directly
Allocating and filling qemuProcessEvent structure is a repeated pattern
before all calls to qemuProcessEventSubmit. We can move the allocation
inside this function and let callers pass all arguments directly.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-24 16:26:04 +02:00
Jiri Denemark
b4662bbd1f qemu: Avoid unlocked access to vm object in monitor callbacks
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-24 16:26:04 +02:00
Michal Privoznik
1c23123732 qemu_tpm: Make APIs work over a single virDomainTPMDef
In qemu_extdevice.c lives code that handles helper daemons that
are required for some types of devices (e.g. virtiofsd,
vhost-user-gpu, swtpm, etc.). These devices have their own
handling code in separate files, with only a very basic functions
exposed (e.g. for starting/stopping helper process, placing it
into given CGroup, etc.). And these functions all work over a
single instance of device (virDomainVideoDef *, virDomainFSDef *,
etc.), except for TPM handling code which takes virDomainDef *
and iterates over it inside its module.

Remove this oddness and make qemuExtTPM*() functions look closer
to the rest of the code.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2022-05-24 16:15:29 +02:00
Michal Privoznik
3663a7d48c virprocess: Drop workaround for setns() wrt old glibc
We have our own implementation of setns() which was introduced in
v1.2.9-rc1~190 and extended afterwards. The reason was that back
in 2014 we were dealing with glibc that in some of its older
versions did not provide the function. Mostly for non-intel
arches. Nevertheless, glibc now offers the function for all
architectures we care about (aarch64 being the freshest
architecture where the function was introduced, in glibc-2.17).

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2022-05-24 16:15:29 +02:00
Andrea Bolognani
9750edcfb0 syntax-check: Pull updates from gnulib
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-24 15:48:58 +02:00
Andrea Bolognani
a415225605 syntax-check: Add versioning information
Our copy of syntax-check has diverged quite a bit from the
gnulib original, but a lot of the core logic has remained
identical and it would be nice if we could periodically pull
improvements.

To make this manageable, record the gnulib commit our copy is
derived from: this way, the person updating the file will know
the range of gnulib commits that they have to consider.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-24 15:48:53 +02:00
Andrea Bolognani
7de9b74a84 src: Use archive.org for dead URLs
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-24 12:19:18 +02:00
Andrea Bolognani
fb5f2f100e docs: Use HTTPS where possible
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-24 12:19:17 +02:00
Andrea Bolognani
9a179fd65e docs: Update various URLs
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-24 12:19:16 +02:00
Andrea Bolognani
40d78e47e5 docs: Update URL for MinGW
The MinGW-w64 project has effectively replaced the original
MinGW project, and distributions such as Fedora have been shipping
packages based on the former for years now.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-24 12:19:15 +02:00
Andrea Bolognani
145f429f8c docs: Update URL for libxml2
The project is developed as part of GNOME these days, and the
old URL redirects to GNOME's GitLab instance.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-24 12:19:13 +02:00
Andrea Bolognani
bb8abcde2c docs: Use more generic URL for netcat
GNU netcat was last updated in 2004. These days, most operating
systems will include either the nmap or OpenBSD variant of the
tool.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-24 12:19:12 +02:00
Andrea Bolognani
d0a5eb59cb util: Drop references to netlink.pdf
The website no longer exists and the PDF file can't even be
retrieved via archive.org.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-24 12:19:11 +02:00
Andrea Bolognani
20afcc1c53 docs: apps: Drop Snooze
The website is still up, but the software itself was last
updated in 2014.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-24 12:19:10 +02:00
Andrea Bolognani
4c52d75f09 docs: apps: Drop Cracow Cloud One
The website is still up, although the latency is so high that it
could hardly considered usable; the software itself was last
updated in 2015.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-24 12:19:08 +02:00
Andrea Bolognani
37c8fd4f63 docs: apps: Drop Tivoli Provisioning Manager
It doesn't seem to be a current product: there is no proper
website for it, and the most recent installation instructions
I've been able to locate are targeted at RHEL 6.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-24 12:19:07 +02:00
Andrea Bolognani
4e61aecbc8 syntax-check: Drop unused http_sites
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-24 12:18:55 +02:00
Andrea Bolognani
7f403bc251 syntax-check: Enforce sc_prohibit_backslash_alignment everywhere
Basically all files in the repository are already passing the
check, except for syntax-check.mk itself. Fix that, and stop
limiting the files on which the test is performed.

These changes have been generated by running

  $ sed -Ei 's/[ '$'\t'']+\\$/ \\/g' $(git grep -El '[ '$'\t'']+\\$')

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-24 11:09:51 +02:00
Andrea Bolognani
6545173b69 syntax-check: Drop sc_ prefix when adding checks to meson
All checks are added to the syntax-check suite, and this name is
displayed prominently in the output of 'meson test', so there
really is no need to include the sc_ prefix too.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-24 11:09:50 +02:00
Andrea Bolognani
1a61e06af4 syntax-check: Add all target
The makefile is an implementation detail, so point users towards
the proper way of running syntax-check if they happen to call it
directly.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-24 11:09:48 +02:00
Andrea Bolognani
af9eb9e399 syntax-check: Reorganize file
Due to the way make works, we are not forced to follow a strict
order in defining rules and variables. In fact _sc_search_regexp,
which is used by all checks, is only defined halfway through the
file.

Shuffle things around so that the things that we need to look at
the most frequently are closer to the top of the file.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-24 11:09:47 +02:00
Andrea Bolognani
dddbc95375 syntax-check: Detect awk the same as all other programs
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-24 11:09:46 +02:00
Andrea Bolognani
f98baa1b54 syntax-check: Drop ME variable
It's only used in diagnostics, and even there it's not
particularly useful and can make it more difficult to spot the
actual error message.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-24 11:09:45 +02:00
Andrea Bolognani
afa944afb7 syntax-check: Drop unused machinery
_equal is not used anywhere; the rest of the code implements the
syntax-check target, which takes care of figuring out the list of
checks that have been defined and running them, printing the name
of each check along with its execution time.

This was useful when we were using autotools, but these days we
have meson driving the entire build process and each of the
checks is registered as a separate test, which gives us all of
the features described above for free.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-24 11:09:43 +02:00
Andrea Bolognani
ab305ad5ca syntax-check: Simplify VC_LIST_ALWAYS_EXCLUDE_REGEX
Most of the pattern is no longer relevant, because the files it
was intended to match have been dropped from the repository.

Specifically:

               files        commit        date
  ------------------  ------------  ----------
               *.gif  6cb131e5cb  2022-01-19
               *.fig  9ad637c965  2020-07-10
  docs/news*.html.in  f45735786a  2020-06-02
        docs/*.patch  6be034a8c0  2018-08-23

We can also avoid having a fallback value for the pattern: that
made sense when the implementation was coming from gnulib, as
they wouldn't be able to know in advance if the user would need
to provide their own exclude patterns, but that scenario is no
longer relevant to us.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-24 11:09:42 +02:00
Andrea Bolognani
39d1c78967 syntax-check: Use VC_LIST_EXCEPT in sc_prohibit_backup_files
We can assume that VC_LIST_ALWAYS_EXCLUDE_REGEX will not be
defined in a way that would catch backup files.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-24 11:09:41 +02:00
Andrea Bolognani
18cb263100 syntax-check: Improve sc_prohibit_config_h_in_headers check
In its current form, the check will not only catch the intended

  #include <config.h>

but also stuff like

  #include <wireshark/config.h>
  #include "qemu_interop_config.h"
  #include <meson-config.h>

The last one is problematic, because it's used in config.h itself.
Making the pattern more strict allows us to drop the exception.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-24 11:09:40 +02:00
Andrea Bolognani
8aa6063ef9 syntax-check: Remove sc_copyright_usage exception
The pattern in build-aux/syntax-check.mk is written specifically
so that it won't match itself, which makes having an exception
for the file unnecessary.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-24 11:09:38 +02:00
Andrea Bolognani
2c49bb1521 syntax-check: Remove sc_gettext_init exception
The file src/util/vireventglib.c doesn't contain a main() function
and so it's not even considered by the check.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-24 11:09:36 +02:00
Andrea Bolognani
4c8c336e78 syntax-check: Drop sc_bindtextdomain check
This is one of the standard checks that we have inherited from
gnulib, but it's not applicable to libvirt because we don't want
plain bindtextdomain() to be used: virGettextInitialize() is our
own private API that should be used instead.

The sc_gettext_init check ensures that our private API is used
in all the places where it makes sense, and the sc_bindtextdomain
check was disabled entirely via a blanket exception. Drop it
instead of keeping dead code around.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-24 11:09:28 +02:00
Michal Privoznik
2df6849d78 qemu_hotplug: Deny changing @rss and @rss_hash_report attributes of virtio vNICs
We have virDomainUpdateDeviceFlags() API that allows changing of
some attributes of a device whilst domain is still running (e.g.
setting different QoS, link state change on vNICs). But only very
limited set of attributes can be changed and we have to check
whether user isn't trying to sneak in a change that's not
allowed. Well, in case of a virtio vNIC we forgot to check for
@rss and @rss_hash_report attributes of <driver/>.

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2082540
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Laine Stump <laine@redhat.com>
2022-05-24 09:02:00 +02:00
Boris Fiuczynski
e37c39747b nodedev: prevent internal error on dev_busid parse
As "none" is a legal value represented in the sysfs attribute dev_busid
this patch prevents libvirt from incorrectly reporting an internal error.

Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Suggested-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-24 08:55:45 +02:00
Daniel Henrique Barboza
a46ff97762 qemuxml2argvtest.c: use CAPS_ARCH_LATEST() with pseries-cpu-compat-power9
Use the newly added ARG_CAPS_HOST_CPU_MODEL to set which host CPU we
expect the test to use - the test should fail when using a POWER8 host
cpu but complete when using a POWER9 host cpu.

Two new macros were added because we will be adding similar tests in the
near future when adding support for the Power10 chip.

Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
2022-05-23 19:25:09 -03:00
Daniel Henrique Barboza
a678430492 testutilsqemu: introduce ARG_CAPS_HOST_CPU_MODEL
When loading a latest caps for an arch for the first time the following
occurs in testQemuInfoInitArgs():

- the caps file is located. It's not in the cache since it's the first time
it's being read;
- the cachecaps are retrieved using qemuTestParseCapabilitiesArch() and
stored in the capscache;
- FLAG_REAL_CAPS is set and regular flow continues.

Loading the same latest caps for the second time the caps are loaded from the
cache, skipping qemuTestParseCapabilitiesArch(). By skipping this function it
means that it also skips virQEMUCapsLoadCache() and, more relevant to
our case, virQEMUCapsInitHostCPUModel(). This function will use the
current arch and cpuModel settings to write the qemuCaps that are being
stored in the cache. And we're also setting FLAG_REAL_CAPS, meaning that
we won't be updating the qemucaps host model via testUpdateQEMUCaps() as
well.

This has side-effects such as:

- the first time the latest caps for an arch is loaded determines the
cpuModel it'll use during the current qemuxml2argvtest run. For
example, when running all tests, the first time the latest ppc64 caps
are read is on "disk-floppy-pseries" test. Since the current host arch
at this point is x86_64, the cpuModel that will be set for this
capability is "core2duo";

- every other latest arch test will use the same hostCPU as the first
one set since we read it from the cache after the first run.
qemuTestSetHostCPU() makes no difference because we won't update the
host model due to FLAG_REAL_CAPS being set. Using the previous example,
every other latest ppc64 test that will be run will be using the
"core2duo" cpuModel.

Using fake capabilities (e.g. using DO_TEST()) prevents FLAG_REAL_CAPS to
be set, meaning that the cpuModel will be updated using the current
settings the test is being ran due to testUpdateQEMUCaps().

Note that not all latest caps arch tests care about the cpuModel being
set to an unexpected default cpuModel. But some tests will care, e.g.
"pseries-cpu-compat-power9", and changing it from DO_TEST() to
DO_TEST_CAPS_ARCH_LATEST() will make it fail every time the
"disk-floppy-pseries" is being ran first.

One way of fixing it is to rethink all the existing logic, for example
not setting FLAG_REAL_CAPS for latest arch tests. Another way is
presented here. ARGS_CAPS_HOST_CPU_MODEL is a new testQemuInfo arg that
allow us to set any specific host CPU model we want when running latest
arch caps tests. This new arg can then be used when converting existing
DO_TEST() testcases to DO_TEST_CAPS_ARCH_LATEST() that requires a
specific host CPU setting to be successful, which we're going to do in
the next patch with "pseries-cpu-compat-power9".

Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
2022-05-23 19:24:42 -03:00
Daniel Henrique Barboza
8ccb4f463e qemu_capspriv.h: fix indentation
Fix identation of virQEMUCapsUpdateHostCPUModel() params.

Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
2022-05-23 19:24:28 -03:00
Daniel Henrique Barboza
eca2a6cc92 qemuxml2xmltests.c: convert pseries tests to DO_TEST_CAPS_ARCH_LATEST
qemuxml2xmltests that have "pseries" in the name now use the
DO_TEST_CAPS_LATEST_ARCH() macro.

Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
2022-05-23 19:19:16 -03:00
Jiri Denemark
9c495f8fcb qemu: Do not return NULL when qemuMigrationSrcBegin succeeds
My recent commit v8.3.0-201-gc500955e95 tried to fix a regression which
would cause the function to return success even if virCloseCallbacksSet
failed. But due to a strange code flow in the function introduced an
opposite regression. The function would return NULL on success when
called without VIR_MIGRATE_CHANGE_PROTECTION flag.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-23 16:59:05 +02:00
Boris Fiuczynski
127fda5e84 nodedev: add tests for optional device address to css device
Add nodedev schema parsing and format tests for the optional new device
address on the css devices.

Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-23 16:32:44 +02:00
Boris Fiuczynski
122b975e40 nodedev: add optional device address of channel device to css device
Add the new introduced sysfs attribute dev_busid which provides the address
of the device in the subchannel independent from the bound device driver.
It is added if available in the sysfs as optional channel_dev_addr element into
the css device capabilty providing the ccw deivce address attributes cssid,
ssid and devno.

Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-23 16:32:35 +02:00
Boris Fiuczynski
e9ba2ced0b schemas: refactor out nodedev ccw address schema
Refactor out nodedev ccw address schema for easy reuse later.

Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-23 16:32:10 +02:00
Boris Fiuczynski
245ff2d663 nodedev: refactor css XML parsing from ccw XML parsing
In preparation for easier extension later.

Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-23 16:32:08 +02:00
Boris Fiuczynski
4402295d37 nodedev: refactor ccw device address parsing from XML
Move ccw device address XML parsing into new method for later reuse.

Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-23 16:32:07 +02:00
Boris Fiuczynski
c586488506 nodedev: refactor css format from ccw format method
In preparation for easier extension later.

Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-23 16:32:03 +02:00
Boris Fiuczynski
9453eb458a util: add virCCWDeviceAddressFromString to virccw
Add a method to parse a ccw device address from a string.

Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-23 16:31:59 +02:00
Boris Fiuczynski
8d52f99f0b util: add ccw device address parsing into virccw
Add virCCWDeviceAddressParseFromString and use it in nodedev udev.

Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-23 16:31:57 +02:00
Boris Fiuczynski
2d9fd19bf5 conf: adjust method name virDomainDeviceCCWAddressParseXML
Adjust method name virDomainDeviceCCWAddressParseXML to
virCCWDeviceAddressParseXML.

Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-23 16:31:55 +02:00
Boris Fiuczynski
784b876035 util: refactor virDomainDeviceCCWAddressEqual into virccw
Refactor virDomainDeviceCCWAddressEqual into virccw and rename method as
virCCWDeviceAddressEqual.

Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-23 16:31:53 +02:00
Boris Fiuczynski
38756ce5ba util: refactor virDomainDeviceCCWAddressIsValid into virccw
Refactor virDomainDeviceCCWAddressIsValid into virccw and rename method
as virCCWDeviceAddressIsValid.

Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-23 16:31:52 +02:00
Boris Fiuczynski
be1e16ed11 util: refactor virDomainCCWAddressIncrement into virccw
Refactor virDomainCCWAddressIncrement into virccw and rename method as
virCCWDeviceAddressIncrement.

Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-23 16:31:49 +02:00
Boris Fiuczynski
5fe90d471a util: refactor ccw address constants into virccw
Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-23 16:31:47 +02:00
Boris Fiuczynski
b41163005c util: make reuse of ccw device address format constant
Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-23 16:31:45 +02:00
Boris Fiuczynski
1df0a19869 util: refactor virDomainCCWAddressAsString into virccw
Move virDomainCCWAddressAsString into virccw and rename method as
virCCWDeviceAddressAsString.

Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-23 16:31:42 +02:00
Boris Fiuczynski
45a8e3988f util: refactor virDomainDeviceCCWAddress into virccw.h
Refactor ccw data structure virDomainDeviceCCWAddress into util virccw.h
and rename it as virCCWDeviceAddress.

Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-23 16:31:40 +02:00
Boris Fiuczynski
78094a4bd1 nodedev: fix reported error msg in css cap XML parsing
Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Marc Hartmayer <mhartmay@linux.ibm.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-23 16:31:37 +02:00
Michal Privoznik
a54391fbc2 remote_daemon: Don't run virStateCleanup() if virStateReload() is still running
When a SIGHUP is received a thread is spawned that runs
virStateReload(). However, if SIGINT is received while the former
thread is still running then we may get into problematic
situation: the cleanup code in main() sees drivers initialized
and thus calls virStateCleanup(). So now we have two threads, one
running virStateReload() the other virStateCleanup(). In this
situation it's very likely that a race condition occurs and
either of threads causes SIGSEGV.

To fix this, unmark drivers as initialized in the
virStateReload() thread for the time the function runs.

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2075837
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
2022-05-23 14:44:50 +02:00
Andrea Bolognani
2b98d5d91d apparmor: Allow locking AAVMF firmware
We already allow this for OVMF.

Closes: https://gitlab.com/libvirt/libvirt/-/issues/312
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
2022-05-23 14:01:21 +02:00
Andrea Bolognani
8d160b7979 syntax-check: Introduce sc_linguas_sorting
Make sure LINGUAS remains sorted correctly.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-23 13:58:29 +02:00
Andrea Bolognani
6a2fea9283 po: Sort LINGUAS
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-23 13:58:28 +02:00
Andrea Bolognani
bed3781a30 syntax-check: Don't exclude src/false.c from sc_po_check
This is something that certainly made sense in the context of
gnulib, but we don't have a use for it.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-23 13:58:26 +02:00
Andrea Bolognani
55ae46a6df po: Don't generate POTFILES
Now that we have dropped prefixes from the file, it no longer
needs to go through configure_file() and we can use it directly.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-23 13:58:25 +02:00
Andrea Bolognani
4172d1aedc po: Drop prefixes from POTFILES.in
Commit 8beb7fdd0e changed the handling of POTFILES so that it
could cope with files being located in either the source or build
directory: it did so by adding @SRCDIR@ and @BUILDDIR@
respectively at the beginning of each line, and then converting
them back to the actual values when generating POTFILES from
POTFILES.in.

Later, commit c6a0d3ff8b started passing --directory to
xgettext, which resulted in the tool being able to locate files
regardless of whether they are in the source or build directory.
However, @SRCDIR@ and @BUILDDIR@ were still added to POTFILES.in
only to be stripped when generating POTFILES.

Simplify things by not storing information that we know we're
going to discard later.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-23 13:58:24 +02:00
Andrea Bolognani
325dd585fb po: Stop using 'glib' preset for i18n.gettext()
Due to a bug in meson versions earlier than 0.60, the
--add-comments that's part of the 'glib' preset and the
--add-comments=TRANSLATORS: that we add ourselves might be
passed to xgettext in the wrong order, resulting in a bunch of
comments that we don't care about being added to the potfile.

Most of the options included in the 'glib' preset are not
applicable to libvirt anyway, so just stop using the preset and
pass a few extra options explicitly instead.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-23 13:58:22 +02:00
Andrea Bolognani
a4ed1e935f po: Drop unwanted comments from potfile
These managed to sneak in as part of ec02f5719a, when the
potfile was last refreshed, but are not supposed to be there.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-23 13:58:03 +02:00
Jiri Denemark
c500955e95 qemu: Fix error propagation in qemuMigrationBegin
Commit v8.3.0-152-g49ef0f95c6 removed explicit VIR_FREE from
qemuMigrationBegin, effectively reverting v1.2.14-57-g77ddd0bba2

The xml variable was used to hold the return value and thus had to be
unset when an error happened after xml was already non-NULL. Such code
may be quite confusing though and we usually avoid it by not storing
anything to a return variable until everything succeeded.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2022-05-23 13:13:37 +02:00
Max Goodhart
42cb548045 Allow VM to read sysfs PCI config, revision files
This fixes a blank screen when viewing a VM with virtio graphics and
gl-accelerated Spice display on Ubuntu 22.04 / libvirt 8.0.0 / qemu 6.2.

Without these AppArmor permissions, the libvirt error log contains
repetitions of:

qemu_spice_gl_scanout_texture: failed to get fd for texture

This appears to be similar to this GNOME Boxes issue:
https://gitlab.gnome.org/GNOME/gnome-boxes/-/issues/586

Fixes: https://launchpad.net/bugs/1972075

Signed-off-by: Max Goodhart <c@chromakode.com>
Reviewed-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
2022-05-20 07:37:14 +02:00
Jiri Denemark
1bd24e79be util: Do not report useless error in virPortAllocatorRelease
If the port allocator bitmap does not have enough bits to keep the state
of the port we're going to release, the port is not reserved and thus is
trivially released without doing anything. No need to report an error in
such case.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-05-19 17:40:31 +02:00
Martin Kletzander
b7b8cd6ad6 apparmor: Add support for dbus chardev
Commit 7648e40da5 added support for dbus chardev but forgot to handle it in
AppArmor code.

Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
2022-05-19 14:15:02 +02:00
Marc-André Lureau
89d789670d docs: document <graphics> type dbus
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-19 12:36:42 +02:00
Marc-André Lureau
3fa987cc42 qemu: add usbredir type 'dbus'
The USB device redirection works in a similar way as Spice. The
underlying 'dbus' channel is set to "org.qemu.usbredir" by default for
the client to identify the channel purpose (as specified in -display
dbus documentation).

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-19 12:36:40 +02:00
Marc-André Lureau
53905292f9 qemu: add -chardev dbus support
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-19 12:36:37 +02:00
Marc-André Lureau
7648e40da5 conf: add <serial type='dbus'>
Like a Spice port, a dbus serial must specify an associated channel name.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-19 12:36:35 +02:00
Marc-André Lureau
1ce258a570 qemu: add audio type 'dbus'
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-19 12:36:32 +02:00
Marc-André Lureau
a062f5f777 conf: add <audio type='dbus'> support
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-19 12:36:28 +02:00
Marc-André Lureau
bf213aa965 virsh: report the D-Bus bus URI for domdisplay
This implementation reports only Unix bus address using the URI format
proposed in https://gitlab.freedesktop.org/dbus/dbus/-/issues/348.

We prefer a URI form over the D-Bus address form, since all other
display protocols use a URI, allowing to distinguish between protocols
and making client implementation simpler.

Other transports (for example TCP) are not yet handled.

The client is assumed to know what to lookup on the bus (the bus name,
path & interface of the VM, eventually matching its UUID)

P2P mode doesn't report any available URI.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-19 12:36:24 +02:00
Marc-André Lureau
bde66322e8 qemu: add -display dbus support
By default, libvirt will start a private bus and tell QEMU to connect to
it. Instead, a D-Bus "address" to connect to can be specified, or the
p2p mode enabled.

D-Bus display works best with GL & a rendernode, which can be specified
with <gl> child element.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-19 12:36:20 +02:00
Marc-André Lureau
5c1e203a80 qemu: start the D-Bus daemon for the display
Start the daemon if necessary (it is already stopped in qemuProcessStop)

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-19 12:36:17 +02:00
Marc-André Lureau
88ba34f5a0 conf: add <graphics type='dbus'>
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-19 12:36:09 +02:00
Marc-André Lureau
14f45e5d8d qemu: add -display dbus capability check
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-19 12:35:26 +02:00
Michal Privoznik
b3e2fea3e8 remoteOpenConn: Pass correct variable to virConnectSetIdentity()
The remoteOpenConn() function was refactored recently. As a part
of that new variable @newconn was introduced which holds
virConnect object as it's being gradually constructed throughout
the function. At the very end, when everything succeeded the
variable is stolen into passed @conn. However, there was one
line missed in the refactor which still access the @conn instead
of @newconn leading to a NULL dereference.

Fixes: f7c422993e
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
2022-05-19 10:15:48 +02:00
Han Han
577c336151 docs: drvqemu: Fix the syntax typo of Hypervisor.framework link
Signed-off-by: Han Han <hhan@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2022-05-19 10:10:33 +02:00
Han Han
5ce918f3a5 docs: drivers: Mention KVM/HVF in the link of qemu driver
Signed-off-by: Han Han <hhan@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2022-05-19 10:10:31 +02:00
Han Han
f073783979 news: Add news for rss and rss_hash_report attributes
Signed-off-by: Han Han <hhan@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2022-05-19 10:10:30 +02:00
Han Han
facaa9ae98 docs: formatdomain: Add the introduced versions of net rss attrs
Signed-off-by: Han Han <hhan@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2022-05-19 10:10:29 +02:00
Han Han
49b5200e16 docs: apps: Add desktop app gnome-boxes
Signed-off-by: Han Han <hhan@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2022-05-19 10:10:23 +02:00
Han Han
1bd51b6afe news: Validation flags for creating net, nwfilter-binding, net port
Signed-off-by: Han Han <hhan@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2022-05-18 19:57:36 +02:00
Han Han
5c1a99ff83 news: Add queue_size option to virtio disk
Signed-off-by: Han Han <hhan@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2022-05-18 19:56:20 +02:00
Han Han
6921c2cf73 news: Support vhostuser in virsh attach-interface
Signed-off-by: Han Han <hhan@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2022-05-18 19:56:15 +02:00
Han Han
07d950adda news: qemu: Add support for NFS disk protocol
Signed-off-by: Han Han <hhan@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2022-05-18 19:55:59 +02:00
Han Han
4b4a7153d0 news: cpu_map: Add Snowridge cpu model
Signed-off-by: Han Han <hhan@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2022-05-18 19:55:58 +02:00
Han Han
6e5852cb4b news: qemu: support kvm-poll-control performance hint
Signed-off-by: Han Han <hhan@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2022-05-18 19:55:56 +02:00
Han Han
c9a37b64df news: Introduce "migrate_tls_force" to qemu.conf
Signed-off-by: Han Han <hhan@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2022-05-18 19:55:55 +02:00
Han Han
c04bb76af7 news: qemu: Add 'fmode' and 'dmode' options for 9pfs
Signed-off-by: Han Han <hhan@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2022-05-18 19:55:54 +02:00
Han Han
17fe7ae0cb news: qemu: virtiofs can be used without NUMA nodes
Signed-off-by: Han Han <hhan@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2022-05-18 19:55:53 +02:00
Han Han
95f9d4290c news: qemu: Introduce virtio free page reporting feature
Signed-off-by: Han Han <hhan@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2022-05-18 19:55:51 +02:00
Han Han
49211723b6 news: qemu: Set noqueue qdisc for TAP devices
Signed-off-by: Han Han <hhan@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2022-05-18 19:55:50 +02:00
Han Han
28deb22485 news: logging: allow max_len=0 to disable log rollover
Signed-off-by: Han Han <hhan@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2022-05-18 19:55:49 +02:00
Han Han
07666093f7 news: cpu: Support for XML validation in cpu comparison
Signed-off-by: Han Han <hhan@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2022-05-18 19:55:48 +02:00
Han Han
0529cf77f2 news: cpu_map: Add EPYC-Rome cpu model
Signed-off-by: Han Han <hhan@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2022-05-18 19:55:46 +02:00
Han Han
02c898d801 news: support device stats collection for SR-IOV VF hostdev
Signed-off-by: Han Han <hhan@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2022-05-18 19:55:42 +02:00
Han Han
cb12f8b8c8 news: make SEV attrs 'cbitpos' & 'reducedPhysBits' optional
Signed-off-by: Han Han <hhan@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2022-05-18 19:55:34 +02:00
Peter Krempa
f7c422993e doRemoteOpen: Refactor control flow
Use a temporary variable 'newconn' to hold the newly opened connection
until we are ready to pass it back instead of the original connection.

This way we can avoid complicated 'error'/'cleanup' sections.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-05-18 13:46:30 +02:00
Peter Krempa
7f50557c08 virIdentityGetParameters: Return 'virTypedParamList'
Refactor the code to use virTypedParamList which simplifies cleanup.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-05-18 13:46:30 +02:00
Peter Krempa
decc03857f virGetConnectGeneric: Fix memleak of 'identparams' when connecting between split daemons
The 'identparams' typed parameter list obtained from
virIdentityGetParameters is leaked when called from
'virGetConnectGeneric'.

Use 'virTypedParamListFromParams' to absorb it into a virTypedParamList
which can be autofreed.

Note that the memleak is observable only when running in split-daemon
mode.

Closes: https://gitlab.com/libvirt/libvirt/-/issues/314
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-05-18 13:46:30 +02:00
Peter Krempa
45064119c1 util: typedparam: Introduce virTypedParamListFromParams
The helper constructs a virTypedParamList from loose params.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-05-18 13:46:30 +02:00
Jan Kuparinen
6c9117c988 Translated using Weblate (Finnish)
Currently translated at 22.9% (2386 of 10419 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/fi/

Co-authored-by: Jan Kuparinen <copper_fin@hotmail.com>
Signed-off-by: Jan Kuparinen <copper_fin@hotmail.com>
2022-05-18 09:04:46 +02:00
Peter Krempa
579403ba2e virclosecallbacks: Don't pass opqaue pointer to callback invocation
Remove the argument from the function prototypes and the callback
handler.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-17 19:31:08 +02:00
Peter Krempa
e90301134c bhyveProcessAutoDestroy: Use 'driver' from VM private data
Access the 'driver' struct from the private data rather than the passed
opaque pointer in preparation to remove the opaque pointer.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-17 19:31:08 +02:00
Peter Krempa
2cada2c31c lxcProcessAutoDestroy: Use 'driver' from VM private data
Access the 'driver' struct from the private data rather than the passed
opaque pointer in preparation to remove the opaque pointer.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-17 19:31:08 +02:00
Peter Krempa
02fe5fe298 qemuProcessAutoDestroy: Use 'driver' from VM private data
Access the 'driver' struct from the private data rather than the passed
opaque pointer in preparation to remove the opaque pointer.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-17 19:31:08 +02:00
Peter Krempa
2f072e24db qemuMigrationSrcCleanup: Use 'driver' from VM private data
Access the 'driver' struct from the private data rather than the passed
opaque pointer in preparation to remove the opaque pointer.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-17 19:31:08 +02:00
Peter Krempa
6871553c3f lxc: Store 'driver' in VM private data
Similarly to the qemu driver if we store the immutable driver pointer in
the VM private data struct we don't have to questionably pass it through
opaque pointers to callbacks.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-17 19:31:08 +02:00
Peter Krempa
f5c8abf176 bhyve: Store 'driver' in VM private data
Similarly to the qemu driver if we store the immutable driver pointer in
the VM private data struct we don't have to questionably pass it through
opaque pointers to callbacks.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-17 19:31:08 +02:00
Peter Krempa
49ef0f95c6 qemuMigrationSrcBegin: Automatically free 'xml' variable on error
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-17 19:31:08 +02:00
Peter Krempa
4f6b1fbcfa virObjectLockGuard: Require that returned value is used
The returned value is used to unlock the object, so all callers must
necessarily make use of the returned value.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-17 19:31:08 +02:00
Peter Krempa
66a014bc09 virclosecallbacks.h: Reformat header to contemporary style
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-17 19:31:08 +02:00
Peter Krempa
58404f7871 qemu: fd: Fix documentation for FD set related functions
When dealing with fdsets only we don't need to pass the FD first as we
now generate fdset name directly. Also there are no more caveats in
passing multiple FDs.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-17 19:31:08 +02:00
Peter Krempa
4438b8ac09 qemuFDPassTransferCommand: Remove return value
Now that the 'direct' mode was separated and thus we don't have any
possible error case we can stop returning any values and simplify
callers.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-17 19:31:08 +02:00
Peter Krempa
20ba291ebd qemu: fd: Remove support for 'direct' fd passing from 'qemuFDPass'
This finishes the separation of the fdset and direct helpers. Remove
'qemuFDPassNewDirect' and all internals which were applicable only in
direct mode.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-17 19:31:08 +02:00
Peter Krempa
9bed5604db qemuFDPassValidate: Don't validate file descriptors
The callers adding the FDs are validating them regardless so this check
was redundant.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-17 19:31:08 +02:00
Peter Krempa
15bdced9b3 qemu: Use 'qemuFDPassDirect' for 'unix' chardevs
Unix socket chardevs with FD passing need to use the direct mode so we
need to convert it to use qemuFDPassDirect.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-17 19:31:08 +02:00
Peter Krempa
7e1c24c925 qemu: Convert passing of 'slirpfd' to 'qemuFDPassDirect'
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-17 19:31:08 +02:00
Peter Krempa
1715dfce38 qemu: Convert passing of 'tapfds' to 'qemuFDPassDirect'
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-17 19:31:07 +02:00
Peter Krempa
7869eb9b31 qemu: Convert passing of 'vhostfd' to 'qemuFDPassDirect'
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-17 19:31:07 +02:00
Peter Krempa
bca9047906 qemu: fd: Add a distinct set of APIs for 'direct' fd passing mode
Originally I envisioned a common set of APIs for both FD passing
approaches but it turns out they are not really compatible enough for it
to make sense to use one set of APIs.

As of such introduce a distinct set of APIs for the 'direct' mode, which
will later be used to convert all places that currently use
'qemuFDPassNewDirect' and later clean up the existing APIs.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-17 19:31:07 +02:00
Peter Krempa
e04acdf39d qemu: EVENTHANDLERS.txt: Move to kbase and rSTisze
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-17 19:31:07 +02:00
Peter Krempa
1095803ffa qemu: MIGRATION.txt: Move to kbase and rSTisze
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-17 19:31:07 +02:00
Peter Krempa
b414c4a00a qemu: THREADS.txt: rSTize and move to knowledge-base
Move the internal documentation about qemu threading to the knowledge
base.

The conversion included rstizing of the text document, mainly just
fixing of the headline and enclosing function names and code examples
into code block sections.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-17 19:31:07 +02:00
Peter Krempa
fcd7741c48 qemuBuildCommandLine: Remove 'flags' argument
The flags are not used for anything.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-05-17 19:31:07 +02:00
Peter Krempa
bab089d379 qemuBuildCommandLine: Don't avoid '-S' flag for 'domxml-to-native' conversion
The commandline generated from our XML->native convertor is the majority
of cases not usable without libvirt anyways and the situation will not
improve any more.

As of such there's no much utility of avoiding the use of stopped CPUs
flag in such case.

Remove the QEMU_BUILD_COMMAND_LINE_CPUS_RUNNING flag and the associated
logic.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-05-17 19:31:07 +02:00
Peter Krempa
2afaa6894e qemuBuildCommandLine: Inline qemuCheckFips
Now that we store the state of the host FIPS mode setting in the qemu
driver object, we don't need to outsource the logic into
'qemuCheckFips'.

Additionally since we no longer support very old qemu's which would not
yet have --enable-fips we can drop the part of the comment about very
old qemus.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-05-17 19:31:07 +02:00
Peter Krempa
9b765882cd qemuBuildCommandLine: Remove 'driver' argument
We pass 'vm' which already contains it.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-05-17 19:31:07 +02:00
Peter Krempa
d810ae2fae qemuConnectDomainXMLToNative: Refactor cleanup
Automatically free the 'vm' temporary domain object and remove the
'cleanup' label and 'ret' helper variable.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-05-17 19:31:07 +02:00
Peter Krempa
343920794d qemuBuildCommandLine: Sanitize debug logging
Improve the debug log inside 'qemuBuildCommandLine' to include the name
from the definition and remove useless data such as the pointer to the
qemuDriver object or qemuCaps.

Additionally remove the non-specific debug statements:

  VIR_DEBUG("Building emulator command line");

from the two callers of qemuBuildCommandLine.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-05-17 19:31:07 +02:00
Peter Krempa
b5fd6f2b68 qemu: Store state of FIPS in virQEMUDriver
Rather than re-query all the time we can cache the state of FIPS of the
host as it will not change during the runtime of the guest.

Introduce a 'hostFips' flag to 'virQEMUDriver' and move the code
checking the state from 'qemuCheckFips' to 'qemuStateInitialize' and
also populate 'hostFips' in qemuxml2argvtest.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-05-17 19:31:07 +02:00
Peter Krempa
552790edf2 qemuBuildCommandLine: Convert 'standalone' flag to use 'flags'
Introduce 'qemuBuildCommandLineFlags' and use it instead of specific
flag booleans.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-05-17 19:31:07 +02:00
Peter Krempa
0b64b75a09 qemu: command: Don't hide 'vhost' fds from 'standalone' command line
We already format a commandline using FD passing for the tap devices so
formatting the 'vhost' file descriptors won't make it any less usable
directly.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-05-17 19:31:07 +02:00
Peter Krempa
5b9c880e89 docs: drvqemu: Decrease expectations about command line from 'virsh domxml-to-native'
In the qemu driver certain configs such as disk throttling or CPU
hotplug is configured by interacting with the monitor at the startup
phase of the hypervisor and thus is not part of the "native config".

Add a paragraph into the documentation outlining that the native
configuration might not be completely usable.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-05-17 19:31:07 +02:00
Peter Krempa
6272e780e2 virConnectDomainXMLToNative: Add note about dynamically configured features
In the qemu driver certain configs such as disk throttling or CPU
hotplug is configured by interacting with the monitor at the startup
phase of the hypervisor and thus is not part of the "native config" as
returned by 'virConnectDomainXMLToNative'.

Similarly at least the commandline for qemu contains resources passed
via file descriptors which are obviously not part of the returned
"native config".

Add a paragraph into the documentation outlining that the native
configuration might not be completely usable.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2022-05-17 19:31:07 +02:00
Peter Krempa
7bbfabc6b2 qemu: Implement 'absolute' clock offset mode
Add support for the mode and add the corresponding qemuxml2argv test
case.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-17 19:30:59 +02:00
Peter Krempa
d53e75aad0 conf: Introduce 'absolute' clock offset
The 'absolute' clock offset type has a 'start' attribute which is an
unix epoch timestamp to which the hardware clock is always set at start
of the VM.

This is useful if some VM needs to be kept set to an arbitrary time for
e.g. testing or working around broken software.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-17 19:30:59 +02:00
김인수
9cd2c5257a Translated using Weblate (Korean)
Currently translated at 100.0% (10419 of 10419 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/ko/

Co-authored-by: 김인수 <simmon@nplob.com>
Signed-off-by: 김인수 <simmon@nplob.com>
2022-05-16 16:31:19 +02:00
Jonathon Jongsma
43aa510c19 util: Remove virCommandPassFDIndex()
The last use of this function was removed in commit 6d161bcc, so the
function is no longer used except as an internal implementation for
virCommandPassFD().

Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2022-05-16 09:29:47 -05:00
Jonathon Jongsma
2e89805894 util: remove virCommandPassFDGetFDIndex()
commit f9236200 removed the last use of this function, so it can be
dropped.

Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2022-05-16 09:29:47 -05:00
Andrea Bolognani
b6705cdefb conf: Fix smm=off handling
We have to always store the state of the feature in the
virDomainDef struct, otherwise

  <smm state='off'/>

will incorrectly be interpreted as if the <smm> element was not
present.

Fixes: eeb94215b0
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-16 14:29:11 +02:00
Andrea Bolognani
a6ea77e0a5 tests: Introduce smm=off test
This complements the existing smm=on tests. Looking at the output
files, one can immediately see how this case is currently not being
handled correctly. We're going to fix that in the next commit.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-16 14:29:09 +02:00
Andrea Bolognani
dd3258da09 tests: Update smm=on test
Use DO_TEST_CAPS_LATEST() instead of hardcoding capabilities and
add the xml2xml part, which was missing; finally, rename it to
accomodate the complementary smm=off test that we're about to
introduce.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-16 14:29:04 +02:00
Peter Krempa
74bb510a7b qemu: slirp: Remove unused 'qemuSlirpGetFD'
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-16 09:15:46 +02:00
Peter Krempa
485a336f5d qemuMonitorAddNetdev: Remove unneeded 'slirp' variables and useless debug
None of the callers now uses the slirp fd passing feature, so it can be
removed.

At this point even the VIR_DEBUG doesn't make sense as it would only log
the pointer of 'props'.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-16 09:15:46 +02:00
Peter Krempa
08b0ac6683 qemuDomainAttachNetDevice: Clean up unneeded 'slirp' helper variables
We don't need 'slirpfdName' and 'slirpfd'. The 'slirp' local can be
removed too as qemuSlirpStart is safe to be called if there's nothing to
do.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-16 09:15:46 +02:00
Peter Krempa
c8633d35ca qemu: slirp: Pass FDs to qemu via qemuFDPass in the network private data
Populate the 'slirpfd' qemuFDPass structure inside the private data for
passing the fd to qemu rather than using out-of-band variables.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-16 09:15:46 +02:00
Peter Krempa
812a36557d qemu: slirp: Call qemuSlirpOpen directly from qemuSlirpStart
No need to ask the callers to call this extra function.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-16 09:15:46 +02:00
Peter Krempa
42b939d13a qemuSlirpStart: Simplify parameters
The 'driver' can be taken from the private data of 'vm' and 'slirp' can
be taken from private data of 'net', both of which we need anyways.

Additionally by checking whether slirp needs to be started inside the
function we don't need to do this logic in the callers.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-16 09:15:46 +02:00
Peter Krempa
50d2489b7f qemuInterfacePrepareSlirp: Directly populate the 'slirp' variable in network private data
Both callers populate the variable when qemuInterfacePrepareSlirp
returned 1. We can save the hassle in the callers by just doing it right
away.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-16 09:15:46 +02:00
Peter Krempa
13ae2e2e30 qemuMonitorAddNetdev: Remove unused 'tapfd' infrastructure
All callers pass NULL/0.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-16 09:15:46 +02:00
Peter Krempa
c0d25738b2 qemuBuildNicDevProps: Remove unused 'tapfd' infrastructure
All callers pass NULL/0.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-16 09:15:46 +02:00
Peter Krempa
c613b1a211 qemuDomainAttachNetDevice: Remove unused 'tapfd' infrastructure
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-16 09:15:46 +02:00
Peter Krempa
822a6dfc07 qemuBuildInterfaceCommandLine: Remove 'tapfd' infrastructure
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-16 09:15:46 +02:00
Peter Krempa
7a38d3946b qemu: Move opening of tap file descriptors for net devices into qemuBuildInterfaceConnect
Use the new infrastructure which stores the fds inside 'qemuFDPass'
objects in the private data.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-16 09:15:46 +02:00
Peter Krempa
e22284d7bb qemuMonitorAddNetdev: Remove 'vhostfd' machinery
All callers now pass NULL/0 as arguments for vhostfd passing so we can
remove all the associated code.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-16 09:15:46 +02:00
Peter Krempa
4b3e730c77 qemuBuildHostNetProps: Remove 'vhostfd' machinery
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-16 09:15:46 +02:00
Peter Krempa
a7241f85f6 qemuBuildInterfaceCommandLine: Remove 'vhostfd' machinery
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-16 09:15:46 +02:00
Peter Krempa
7939e81f66 qemuDomainAttachNetDevice: Remove 'vhostfd' machinery
Now all the helper variables and code are not needed.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-16 09:15:46 +02:00
Peter Krempa
f59a707d2c qemu: Move opening of vhost file descriptors for net devices into qemuBuildInterfaceConnect
Use the new infrastructure which stores the fds inside 'qemuFDPass'
objects in the private data.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-16 09:15:46 +02:00
Peter Krempa
18f863a4da qemuInterfaceOpenVhostNet: Reformat error messages per new guidelines
Remove the linebreaks inside of error messages.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-16 09:15:46 +02:00
Peter Krempa
7c43765513 qemuBuildNicDevProps: Don't pass 'vhostfdSize'
All callers effectively pass 'net->driver.virtio.queues'. In case of the
code in 'qemu_hotplug.c' this value was set to '1' if it was 0 before.

Since 'qemuBuildNicDevProps' only uses it if it's greater than 1 we can
remove all the extra complexity.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-16 09:15:46 +02:00
Peter Krempa
29458f0491 qemu: Prepare netdev code for use of qemuFDPass for tapfd/vhostfd passing
Add alternative code paths for passing of the FDs using the new
infrastructure. This way we'll be able to refactor the code
incrementally.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-16 09:15:46 +02:00
Peter Krempa
3e9cc6e78e qemuDomainAttachNetDevice: Don't construct network device properties under monitor lock
After the 'qemuFDPass' code was refactored we no longer need to hand off
the FD to qemu before we know the path for it.

Thus the call to qemuBuildHostNetProps can be moved outside of the
monitor critical section.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-16 09:15:46 +02:00
Peter Krempa
29067596f2 qemuBuildHostNetProps: Refactor construction of tapfd/vhostfd arguments
Pre-construct the array the same way for the case when there's only one
FD and when there are multiple. We just change the argument name
depending on the count.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-16 09:15:46 +02:00
Peter Krempa
55485c56a4 qemuBuildHostNetProps: Move all 'tap' code together
Move the block guarded by 'is_tap' boolean to the only place where
'is_tap' is set to true.

This causes few arguments to change places.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-16 09:15:46 +02:00
Peter Krempa
96d6fec8dc qemuBuildInterfaceConnect: Connect to 'vdpa' netdev
Move the setup of the 'vdpa' netdev into the new helper shared between
commandline and hotplug code.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-16 09:15:46 +02:00
Peter Krempa
29d022b1eb qemu: command: Introduce 'qemuBuildInterfaceConnect' helper
The helper will aggregate code that is used to connect the network
backend to the corresponding host portion.

This will be used to refactor the duplicated code between the cold-start
and hotplug helper functions.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-16 09:15:46 +02:00
Peter Krempa
ba9e1f629c qemu: domain: Add qemuFDPass helpers into network private data
Prepare for the upcoming refactor to use qemuFDPass for all the network
related file descriptors:

    - tapfds
    - vhostfds
    - slirp
    - vdpa

This patch adds the private data variables and a utility function to
clear it. Clearing is useful since we don't really need the data once
the VM is running so we save some memory.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-16 09:15:45 +02:00
Peter Krempa
686f83e66e qemu: Clear 'qemuFDPass' helpers of char devices when no longer needed
While the FDs are closed right after use to prevent leaks, at certain
point we don't need the whole helper any more. Clear them for char
devices after hotplug and on start.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-16 09:15:45 +02:00
Peter Krempa
6b3373ffa5 qemuFDPassTransferMonitor: Close local copy of the FD as soon as it's passed to qemu
We don't want to keep the FDs open more than we need to.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-16 09:15:45 +02:00
Peter Krempa
c8f255c10e qemuMonitorAddFileHandleToSet: Remove return of 'qemuMonitorAddFdInfo'
The only caller doesn't use the fdset info any more.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-16 09:15:45 +02:00
Peter Krempa
1e925d1c17 qemu_fd: Don't rely on fdset id allocation by qemu
If we use our own fdset ID when hot-adding a fdset we can vastly
simplify our internals.

As a stop-gap when a fdset would be added behind libvirt's back we'll
validated that the fdset to be added is not yet used.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-16 09:15:45 +02:00
Peter Krempa
278c630d2a qemu: domain: Store and update 'fdsetindex' across libvirtd restarts
While 'add-fd' qmp command gives the possibility to find an unused fdset
ID when hot-adding fdsets, such usage is extremely inconvenient.

This patch allows us to track the used fdset id so that we can avoid the
need to check results and thus employ simpler code flow when hot-adding
devices which use FD passing.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-16 09:15:45 +02:00
Peter Krempa
76709d4f48 qemuMonitorJSONQueryFdsets: Ensure that JSON arrays are valid before using them
The code didn't check that the reply value is an array and that the
'fds' array is present. This could lead to a crash if qemu wouldn't
return an array in those places.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-16 09:15:45 +02:00
Peter Krempa
4e64cded66 qemu: monitor: Don't parse actual fd's from query-fdsets/add-fd replies
Libvirt doesn't use the returned value and in fact there's nothing we
could even do with them. Avoid parsing and storing them.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-16 09:15:45 +02:00
Peter Krempa
1d3e955938 qemuDomainAttachNetDevice: Use 'qemuFDPass' for the vdpa file descriptor
We use the qemuFDPass infrastructure when building the command line,
refactor the monitor too.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-16 09:15:45 +02:00
Peter Krempa
5077263ecb qemu_fd: Remove error checking from qemuFDPassAddFD
It's effectively replaced by checks in qemuFDPassTransfer. This will
simplify cleanup paths on constructing the qemuFDPass object when FDs
are being handled.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-16 09:15:45 +02:00
Peter Krempa
80f75fb758 qemu_fd: Add validation before transferring file descriptors
Add validation to the transfer step to make the adding step more simple
for easier cleanup paths.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-16 09:15:45 +02:00
Peter Krempa
bcfd23b762 qemu_fd: Add return value handling for qemuFDPassTransfer* APIs
Add possibility to delay checks to the point when the FDs are to be
passed to qemu.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-16 09:15:45 +02:00
Han Han
7b0e2e4a55 virt-xml-validate: Add more XML formats support
Add these XML formats validation in manpage or script:
cpu, domainbackup, domaincaps, domaincheckpoint, networkport,
storagepoolcaps.

Signed-off-by: Han Han <hhan@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
2022-05-13 17:15:24 +02:00
Michal Privoznik
af1933713b virDomainRestoreFlags: Require VIR_DOMAIN_SAVE_PARAM_FILE for now
Calling virDomainRestoreFlags() with no typed params results in
an error in open() because it tries to open a NULL path.
Obviously, this is wrong and path to restore from must be
provided, at least for now until other sources of restore are
introduced. Then this limitation can be relaxed.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
2022-05-13 17:10:10 +02:00
Michal Privoznik
f4e2910552 lib: Repurpose virDomainSaveParams() with no VIR_DOMAIN_SAVE_PARAM_FILE
When no VIR_DOMAIN_SAVE_PARAM_FILE typed param is set when
calling virDomainSaveParams() then in turn virQEMUFileOpenAs()
tries to open a NULL path.

We have two options now:
1) require the typed param, which in turn may be promoted to a
   regular argument, or

2) use this opportunity to make the API behave like
   virDomainManagedSave() and use typed params to pass extra
   arguments, instead of having to invent new managed save API
   with typed params.

Let's go with option 2, as it is more future proof.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
2022-05-13 17:10:10 +02:00
Michal Privoznik
25b2f75c7a qemu: Separate out save code from qemuDomainManagedSave()
The code that actually does managed save within
qemuDomainManagedSave() is going to be reused shortly. Move it
out into a separate helper.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
2022-05-13 17:10:10 +02:00
Han Han
43c83a2112 docs: formatdomain: Fix the introduced version of vdagent
The qemu-vdagent channel is introduced since:
"05b09f039e    conf: add qemu-vdagent channel"

It will be in the version 8.4.0.

Signed-off-by: Han Han <hhan@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
2022-05-13 14:38:11 +02:00
김인수
635df6c4bb Translated using Weblate (Korean)
Currently translated at 100.0% (10419 of 10419 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/ko/

Co-authored-by: 김인수 <simmon@nplob.com>
Signed-off-by: 김인수 <simmon@nplob.com>
2022-05-13 03:18:32 +02:00
Michal Privoznik
56ab5c3ae9 qemu: Don't check for qemuDomainManagedSavePath() retval
The qemuDomainManagedSavePath() function does no more than a
g_strdup_printf() and as such can't return NULL really.
Therefore, don't check for its return value.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2022-05-12 16:47:24 +02:00
Jiri Denemark
dc2b2b3ab9 qemu: Enable migration events only for fresh QEMU process
Every running QEMU process we are willing to reconnect (i.e., at least
3.1.0) supports migration events and we can assume the capability is
already enabled since last time libvirt daemon connected to its monitor.

Well, it's not guaranteed though. If libvirt 1.2.17 or older was used to
start QEMU 3.1.0 or newer, migration events would not be enabled. And if
the user decides to upgrade libvirt from 1.2.17 to 8.4.0 while the QEMU
process is still running, they would not be able to migrate the domain
because of disabled migration events. I think we do not really need to
worry about this scenario as libvirt 1.2.17 is 7 years old while QEMU
3.1.0 was released only 3.5 years ago. Thus a chance someone would be
running such configuration should be fairly small and a combination with
upgrading 1.2.17 to 8.4.0 (or newer) with running domains should get it
pretty much to zero. The issue would disappear ff the ancient libvirt is
first upgraded to something older than 8.4.0 and then to the current
libvirt.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2022-05-12 16:25:57 +02:00
Jiri Denemark
7f432214ab qemu: Make migration events mandatory
All QEMU versions we care about support migration events and we should
be able to enable the associated capability when connecting to the
monitor. Failure to do so is thus considered fatal now.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2022-05-12 16:25:57 +02:00
Jiri Denemark
62daebed13 qemu: Refactor qemuDomainGetJobInfoMigrationStats
The code was a bit too complicated, especially after removing the check
for QEMU_CAPS_MIGRATION_EVENT.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2022-05-12 16:25:57 +02:00
Jiri Denemark
b5fd70b367 qemu: Drop QEMU_CAPS_MIGRATION_EVENT
All QEMU versions we care about already support migration events.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2022-05-12 16:25:57 +02:00
Erik Skultety
b7fa48081d ci: Add a Fedora integration test job utilizing upstream QEMU
Signed-off-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2022-05-12 11:12:26 +02:00
Erik Skultety
80ffd571a8 ci: Add a new integration job template for the upstream QEMU scenario
YAML anchors don't work with Shell condition structures, so we cannot
simply reference the QEMU build template YAML anchor conditionally and
hence have everything as part of a single job template.
Instead, we have to "subclass" the .integration_tests template and
inject the QEMU building bits explicitly.

Signed-off-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2022-05-12 11:12:26 +02:00
Erik Skultety
de98075faf ci: Introduce a template for upstream QEMU build
This was heavily inspired by QEMU's upstream CI buildtest-template.yml.
Rather than referencing QEMU's template directly (which GitLab can do),
this patch resorts to hard-coding the build steps ourselves, solely
because there's no guarantee QEMU will keep either the template file
name or the template name from which the build steps were mostly copied
from.

Signed-off-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2022-05-12 11:12:26 +02:00
Erik Skultety
72887b8f59 ci: Break off the integration_tests template into more templates
There's quite a lot happening in the .integration_tests template
already even without adding upstream QEMU build into the mix.
Let's break the template into more pieces which can then reference
in the .integration_tests template when putting all the pieces back
together using YAML anchors.

Signed-off-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2022-05-12 11:12:26 +02:00
Erik Skultety
387932771a ci: Separate the integration job template to a separate file
Future patches will do more code extraction from the existing template
using YAML anchors so it'd be better that the templates would live
separately from job definitions.

Signed-off-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2022-05-12 11:12:26 +02:00
Michal Privoznik
46fa0e46e1 lib: Rename VIR_SAVE_PARAM_* to VIR_DOMAIN_SAVE_PARAM_*
A few commits ago new APIs were introduced (virDomainSaveParams()
and virDomainRestoreParams()) and with them new typed parameters:
VIR_SAVE_PARAM_FILE and VIR_SAVE_PARAM_DXML. But their name does
not suggest they apply to either of the APIs nor that they are
intended for domain related APIs. Switch to
VIR_DOMAIN_SAVE_PARAM prefix to make it obvious.

It's true we already have VIR_DOMAIN_SAVE_* symbols which are
part of virDomainSaveRestoreFlags enum, therefore stick also with
'_PARAM_ ' part of the name to differentiate the two.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2022-05-12 11:00:08 +02:00
Martin Kletzander
36e86dbf33 qemu: Disable spice-related devices without spice graphics
For most of them qemu errors out with unclear message, and for the
audiodev qemu just falls back to timer-based audio with a warning
message, and will possibly also error out in the future.

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2035163
Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-12 10:20:37 +02:00
Martin Kletzander
45c0ff3eea conf: Add virDomainDefHasSpiceGraphics
It will be used in future patch in multiple places.

Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-12 10:20:37 +02:00
Martin Kletzander
90d36d625e tests: Adjust for invalid qemu command combinations
Everything spice is not supported (and does not make sense) without spice
graphics.  For some tests I also added cirrus VGA capability so that the XML
stays simple and libvirt can guess a default video model rather than adding too
much of an irrelevant XML into the individual tests.

Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-12 10:20:36 +02:00
Martin Kletzander
d00e51e10c Remove serial-spiceport-nospice test
This old test was added by me to allow people to keep the spicevmc
channel while changing graphics type from spice to something else.
However we do not do this in other places and also now we have all the
Validate functions so it is better to show the user they will not have
the spicevmc channel available rather than simply not formatting it on
the qemu command line.

Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-12 10:20:36 +02:00
Michal Privoznik
bc3387f38f qemu_domain: Drop needless 'error' label in qemuDomainObjPrivateXMLParse()
After previous cleanup the 'error' label in
qemuDomainObjPrivateXMLParse() contains nothing but a return
statement. Well, the label can be dropped and all 'goto'-s can be
replaced with the return statement directly.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2022-05-12 08:51:18 +02:00
Michal Privoznik
5b0bba799b qemu_domain: Drop needless free from qemuDomainObjPrivateXMLParse()
The qemuDomainObjPrivateXMLParse() is responsible for parsing
given XML into qemuDomainObjPrivate struct. As it does so, memory
might be allocated for some members. If an error occurs during
parsing the control jumps onto 'error' label where only some of
previously allocated memory is freed. The reason there's no
memory leak is simple: the only caller (virDomainObjParseXML())
unrefs freshly created virDomainObj which in turn causes
qemuDomainObjPrivateFree() to be called. Therefore, these
partial, selective frees are needless and should be just dropped.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2022-05-12 08:50:54 +02:00
Michal Privoznik
21aec91790 qemu_domain: Format qemuDomainObjPrivate::originalMemlock
Now that qemuDomainObjPrivate struct gained new member format it
into XML and parse it so that the value is preserved across
daemon restarts.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2022-05-12 08:50:22 +02:00
Michal Privoznik
75df6d2c29 conf: Move virDomainObj::originalMemlock into qemuDomainObjPrivate
Since v1.3.0-90-gafbe1d4c56 the original value of memlock limit
is stored inside virDomainObj struct directly (under
originalMemlock member). This is needless because the value is
used only inside QEMU driver and thus can reside in
qemuDomainObjPrivate struct.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2022-05-12 08:49:30 +02:00
Jonathon Jongsma
2ba73a10fd qemu: add support for qemu-vdagent channel
Implement the qemu-vdagent channel introduced in the previous commit.

Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2022-05-10 11:00:16 -05:00
Jonathon Jongsma
05b09f039e conf: add qemu-vdagent channel
Add the ability to configure a qemu-vdagent in guest domains. This
device is similar to the spice vdagent channel except that qemu handles
the spice-vdagent protocol messages itself rather than routing them over
a spice protocol channel.

The qemu-vdagent device has two notable configuration options which
determine whether qemu will handle particular vdagent features:
'clipboard' and 'mouse'.

The 'clipboard' option allows qemu to synchronize its internal clipboard
manager with the guest clipboard, which enables client<->guest clipboard
synchronization for non-spice guests such as vnc.

The 'mouse' option allows absolute mouse positioning to be sent over the
vdagent channel rather than using a usb or virtio tablet device.

Sample configuration:
  <channel type='qemu-vdagent'>
    <target type='virtio' name='com.redhat.spice.0'/>
    <source>
      <clipboard copypaste='yes'/>
      <mouse mode='client'/>
    </source>
  </channel>

Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2022-05-10 11:00:15 -05:00
Jonathon Jongsma
f135fdabab Rename virDomainGraphicsSpiceMouseMode to virDomainMouseMode
This enumeration will be useful for vnc with the upcoming qemu-vdagent
device so make the name more generic.

Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2022-05-10 11:00:15 -05:00
Jonathon Jongsma
b6dfb216c9 qemu: add capability for qemu-vdagent chardev
Detect whether qemu supports the qemu-vdagent character device. This
enables support for copy/paste with VNC graphics.

Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2022-05-10 11:00:13 -05:00
Peter Krempa
dfba8b3645 qemucapabilitiestest: Add test data for the qemu-7.1 dev cycle on x86_64
Notable schema changes:

 - 'cluster-id' is now reported for CPU topology
 - 'display-update' QMP command added
 - 'main-loop' QOM object added with a whole set of properties
 - 'cpu0-id' field reported in SEV data
 - 'blockdev-change-medium' command now has 'force' property
 - 'screendump' QMP command now has a 'format' property
    - supported formats are 'ppm' and 'png'

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-10 14:02:31 +02:00
Han Han
81b928fa82 docs: apps: Add the app cockpit
Signed-off-by: Han Han <hhan@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-10 10:16:05 +02:00
Jonathon Jongsma
8cb37bac33 util: fix insert/instead documentation mixup
Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
2022-05-09 15:21:08 -05:00
Jonathon Jongsma
728c75b93f conf: ensure only one vgpu has ramfb enabled
Validate the domain configuration to ensure that if there are more than
one vgpu assigned to a domain, only one of them has 'ramfb' enabled.

This was never a supported configuration. QEMU failed confusingly when
attempting to start a domain with this configuration. This change
attempts to provide better information about the error.

https://bugzilla.redhat.com/show_bug.cgi?id=2079760

Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
2022-05-09 14:39:43 -05:00
Michal Privoznik
55c3e969cf qemu_security: Drop qemuSecurityStartVhostUserGPU()
There's no real difference between
qemuSecurityStartVhostUserGPU() and qemuSecurityCommandRun(). The
latter is used more frequently while the former has just one
user. Therefore, drop the less frequently used one.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-09 16:17:00 +02:00
Daniel Henrique Barboza
ae373781a4 tests: qemucapabilities: update ppc64 qemu caps for 7.0.0 release
There are no major changes since 7.0.0-rc2, but a few additional
features are enabled in this build.

Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2022-05-09 15:13:37 +02:00
luzhipeng
3e009bbdb8 apibuild: Fix self.waring method call
The parameters of self.warning is inconsistent with its definition, So
fix it.

Signed-off-by: luzhipeng <luzhipeng@cestc.cn>
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
2022-05-09 14:44:36 +02:00
Jan Kuparinen
1512119afd Translated using Weblate (Finnish)
Currently translated at 22.8% (2385 of 10419 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/fi/

Co-authored-by: Jan Kuparinen <copper_fin@hotmail.com>
Signed-off-by: Jan Kuparinen <copper_fin@hotmail.com>
2022-05-08 19:18:29 +02:00
Jiri Denemark
5890a320f8 NEWS: Mention improved heuristics for CPU baseline
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2022-05-06 23:30:44 +02:00
Jiri Denemark
bb6cedd208 cpu_x86: Ignore enabled features for input models in x86DecodeUseCandidate
While we don't want to aim for the shortest list of disabled features in
the baseline result (it would select a very old model), we want to do so
while looking at any of the input models for which we're trying to
compute a baseline CPU model. Given a set of input models, we always
want to take the least capable one of them (i.e., the one with shortest
list of disabled features) or a better model which is not one of the
input models.

So when considering an input model, we just check whether its list of
disabled features is shorter than the currently best one. When looking
at other models we check both enabled and disabled features while
penalizing disabled features as implemented by the previous patch.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-06 17:33:47 +02:00
Jiri Denemark
48341b025a cpu_x86: Penalize disabled features when computing CPU model
For finding the best matching CPU model for a given set of features
while we don't know the CPU signature (i.e., when computing a baseline
CPU model) we've been using a "shortest list of features" heuristics.
This works well if new CPU models are supersets of older models, but
that's not always the case. As a result it may actually select a new CPU
model as a baseline while removing some features from it to make it
compatible with older models. This is in general worse than using an old
CPU model with a bunch of added features as a guest OS or apps may crash
when using features that were disabled.

On the other hand we don't want to end up with a very old model which
would guarantee no disabled features as it could stop a guest OS or apps
from using some features provided by the CPU because they would not
expect them on such an old CPU.

This patch changes the heuristics to something in between. Enabled and
disabled features are counted separately so that a CPU model requiring
some features to be disabled looks worse than a model with fewer
disabled features even if its complete list of features is longer. The
penalty given for each additional disabled feature gets bigger to make
longer list of disabled features look even worse.

https://bugzilla.redhat.com/show_bug.cgi?id=1851227

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-06 17:33:47 +02:00
Jiri Denemark
1d6ca40ac2 cpu_x86: Refactor feature list comparison in x86DecodeUseCandidate
It will become more complicated and so it deserves to be separated into
a new function.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-06 17:33:46 +02:00
Jiri Denemark
35ce086667 cpu_x86: Consolidate signature match in x86DecodeUseCandidate
Checking the signature in two different places makes no sense since the
code in between can only mark the candidate as the best option so far,
which is what the second signature match does as well.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-06 17:33:46 +02:00
Jiri Denemark
63d633b9a4 cputest: Add some real world baseline tests
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-06 17:33:46 +02:00
Jiri Denemark
3daa68e265 cputest: Give better names to baseline tests
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-06 17:33:46 +02:00
Jiri Denemark
6aff36019b cputest: Drop some old artificial baseline tests
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-06 17:33:46 +02:00
Jiri Denemark
d2e4d66be3 cpu_map: Disable cpu64-rhel* for host-model and baseline
These ancient RHEL-only CPU models should not really be used by any CPU
definition created by libvirt. We keep them just for backwards
compatibility with domains which might still be using them.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-06 17:33:46 +02:00
Claudio Fontana
3342278539 docs: update refs to virDomainSaveParams and virDomainRestoreParams
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Claudio Fontana <cfontana@suse.de>
2022-05-06 15:34:30 +01:00
Claudio Fontana
9759639dd4 qemu: add implementation for virDomainRestoreParams API
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Claudio Fontana <cfontana@suse.de>
2022-05-06 15:34:30 +01:00
Claudio Fontana
26c43c8129 qemu: add implementation for virDomainSaveParams API
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Claudio Fontana <cfontana@suse.de>
2022-05-06 15:34:30 +01:00
Claudio Fontana
1140787c3c remote: Add RPC support for the virDomainRestoreParams API
Signed-off-by: Claudio Fontana <cfontana@suse.de>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2022-05-06 15:34:30 +01:00
Claudio Fontana
8583199c8a gendispatch: add DomainRestoreParams as requiring conn argument
in preparation for the addition of DomainRestoreParams,
add it to the list of methods requiring a conn first argument.

Signed-off-by: Claudio Fontana <cfontana@suse.de>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2022-05-06 15:34:30 +01:00
Claudio Fontana
fbfbcf1729 remote: Add RPC support for the virDomainSaveParams API
Signed-off-by: Claudio Fontana <cfontana@suse.de>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2022-05-06 15:34:30 +01:00
Claudio Fontana
f9a8e25b15 libvirt: introduce virDomainRestoreParams public API
add new API in order to be able to extend parameters to the domain
restore operation. We will use it to fit the existing arguments of
VirDomainRestoreFlags for now.

Signed-off-by: Claudio Fontana <cfontana@suse.de>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2022-05-06 15:34:30 +01:00
Claudio Fontana
6392cb1f1f libvirt: introduce virDomainSaveParams public API
create an alternative to virDomainSaveFlags that is more
extendible via parameters.

Signed-off-by: Claudio Fontana <cfontana@suse.de>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2022-05-06 15:34:30 +01:00
Claudio Fontana
f79de95b16 virfile: add comment about the use of SEEK_END in virFileDiskCopy
Signed-off-by: Claudio Fontana <cfontana@suse.de>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2022-05-06 15:34:30 +01:00
Claudio Fontana
8c09638514 virfile: change virFileDiskCopy arguments to extend beyond stdin, stdout
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Claudio Fontana <cfontana@suse.de>
2022-05-06 15:34:30 +01:00
Claudio Fontana
bcea5da257 virfile: rename runIO to virFileDiskCopy
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Claudio Fontana <cfontana@suse.de>
2022-05-06 15:34:30 +01:00
Claudio Fontana
49d7a3a756 iohelper: move runIO function to virfile.c
where it can be reused by other helpers.
No changes other than the move.

Note that this makes iohelper now dependent on -lutil and -lacl.

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Claudio Fontana <cfontana@suse.de>
2022-05-06 15:34:30 +01:00
Claudio Fontana
42dc978c28 iohelper: refactor copy operation as a separate function
Signed-off-by: Claudio Fontana <cfontana@suse.de>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2022-05-06 15:34:30 +01:00
Claudio Fontana
8188716522 iohelper: introduce new struct to carry copy operation parameters
this is in preparation for a minor refactoring of the copy
function itself out of runIO().

Signed-off-by: Claudio Fontana <cfontana@suse.de>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2022-05-06 15:34:30 +01:00
Andrea Bolognani
0495f841ee ci: Move clang/asan/ubsan jobs to Ubuntu 22.04
Using an updated toolchain means we're likely to catch more
issues.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-06 15:25:18 +02:00
Michal Privoznik
776e9a6b26 testutilsqemu: Write getter/setter for CPU def global variables
As of 47503cc859 we are statically linking libtest_utils_qemu.a
into qemuhotplugmock.so (see the original commit for reasoning).
However, this breaks ASAN on older clang because now
qemuhotplugtest has two instances of virCPUDef global variables
(cpuDefault, cpuHaswell, cpuPower8, cpuPower9). One that comes
from the binary itself (which also links with
libtest_utils_qemu.a) and the other from the mock. Resolve this
by making the variables static and introducing getter and setter.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2022-05-06 12:19:34 +02:00
Michal Privoznik
dff4b21585 testutils: Write setter for virTestHostArch global variable
As of 47503cc859 we are statically linking libtest_utils.a into
qemuhotplugmock.so (see the original commit for reasoning).
However, this breaks ASAN on older clang because now
qemuhotplugtest has two instances of virTestHostArch global
variable. One that comes from the binary itself (which also links
with libtest_utils.a) and the other from the mock. Resolve this
by making the variable static and introducing getter and setter.
Well, the former already exists (as virArchFromHost()) so only
the latter is needed.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2022-05-06 12:16:15 +02:00
Andrea Bolognani
29ee8c1d2e ci: Add Ubuntu 22.04
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-06 11:13:12 +02:00
Andrea Bolognani
1e25a480f5 ci: Refresh configuration
Notable changes:

  * use the most recent point release for FreeBSD 12.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-06 11:13:05 +02:00
Andrea Bolognani
3866a40a95 meson: Drop support for -Wl,-M
This was originally introduced in c2fb8bfee3, reportedly to
support symbol versioning on Solaris; more recently, 30b301c6ea
ported it to meson.

Up until the previous commit this has resulted in passing

  -M .../libvirt/build/src/libvirt.syms

to the linker on macOS, but the implementation of the -M option
on that platform's linker is literally

  else if ( strcmp(arg, "-M") == 0 ) {
      // FIX FIX
  }

so in practice we've been providing an additional input file,
which the linker understandably ignores after printing a warning
since it's not in any format that it recognizes.

Considering that LLVM's linker, which is now used by default on
FreeBSD, supports the same --version-script option as the GNU
linker, that we have introduced special handling for macOS, and
that we don't target Solaris, we can simply drop the branch at
this point.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-06 11:12:50 +02:00
Andrea Bolognani
b05dfcdfcb meson: Don't attempt to use version scripts on macOS
macOS libraries don't support symbol versioning, so the only
result that we achieve by passing additional flags to the linker
is a bunch of messages like

  ld: warning: ignoring file .../libvirt/build/src/libvirt.syms,
  building for macOS-x86_64 but attempting to link with file built
  for unknown-unsupported file format ( 0x23 0x20 0x57 0x41 ... )

being produced during the build.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-06 11:12:48 +02:00
Andrea Bolognani
fac80100c0 meson: Refactor handling of link_args and link_depends
This ensures variable names and the overall structure of the
code setting and using them is consistent. It will also make
upcoming changes less disruptive.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-06 11:12:44 +02:00
Michal Privoznik
5e5d030b1c tests: Deduplicate some WITH_* checks
When constructing mock_libs array it is firstly initialized to a
static set of mocks followed by couple of WITH_* checks to append
driver specific mocks. These checks are then repeated when
filling some other variables (e.g. supplementary helpers,
libraries, tests, etc.). Dissolve the former in the latter since
we are already doing that, partially, for qemu (qemucapsprobemock
and qemuhotplugmock)

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-05 13:26:32 +02:00
Michal Privoznik
47503cc859 test: Link qemuhotplugmock with test_utils_qemu and test_utils
As of ad81aa8ad0 the qemuhotplugmock.c calls
testQemuPrepareHostBackendChardevOne() which is implemented in
testutilsqemu.c. However, the mock is not linked with
testutilsqemu static library which makes some tools (valgrind
particularly) unhappy because the resulting mock library has
unresolved symbol.

The fix is simple, link mock library with test_utils_qemu_lib and
also with test_utils_lib since testutils.c calls some functions
from testutils.c.

Since these two libraries are declared only after mock_libs[], I
had to move the line that declares qemuhotplugmock after those
two.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-05 13:26:23 +02:00
Michal Privoznik
b399f2c000 virnetdev: Fix regression in setting VLAN tag
In the past, we did set VLAN tag on <interface type='direct'/>.
However, during rewrite (v8.1.0-rc1~191) virNetDevSetVfConfig()
was changed and a condition that was responsible for calling
a function that sets VLAN tag was changed accidentally resulting
in VLAN tag not being set anymore.

However, because of other changes in the same patchset, it may
happen that @adminMac is NULL (this is to work around yet another
broken SRIOV driver), and thus we must refrain from setting MAC
and have to set VLAN tag only.

Fixes: 73961771a1
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2075383
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-05 13:21:07 +02:00
Michal Privoznik
7899a11523 virNetDevSetVfMac: Fix error message on invalid args
If virNetDevSetVfMac() is called with either @macaddr or
@allowRetry arguments NULL an error is reported, because this is
considered invalid use. However, the error message is not
informative as it could be.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-05-05 13:19:43 +02:00
Niteesh Dubey
0236e6154c Support cpu0-id of Qemu QMP query-sev-capabilities
It allows libvirt to provide the value of cpu0-id retuned by the Qemu QMP
 command query-sev-capabilities as implemented by the Qemu Patch [1] which
 is merged to Qemu master branch and should be available with Qemu 7.1.
 This is used to get the signed Chip Endorsement Key (CEK) of the CPU of AMD
 system from AMD's Key Distribution Service (KDS).

Similar to  cbitpos, reducedPhysBits, maxGuests & maxESGuests;
 the value of cpu0-id is also provided using 'virsh domcapability'.

[1] https://lore.kernel.org/all/20220228093014.882288-1-dovmurik@linux.ibm.com/

Signed-off-by: Niteesh Dubey <niteesh@linux.ibm.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2022-05-05 12:29:53 +02:00
Andrea Bolognani
b6bd6eabc0 include: Fix unmatched parentheses in comment
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
2022-05-04 19:16:52 +02:00
Victor Toso
f3d4102d67 apibuild: remove 'v' from pattern matching
This makes it mandatory to *not* add 'v' to version numbers.

Signed-off-by: Victor Toso <victortoso@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2022-05-04 18:12:30 +02:00
Victor Toso
dddf047dd1 docstring: remove 'v' from since metadata
Since: v1.2.3 -> Since: 1.2.3

Signed-off-by: Victor Toso <victortoso@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2022-05-04 18:11:06 +02:00
Martin Kletzander
97ef63860a tests: Add test for missing network attribute in graphics' listen element
This tests a change done in commit 871a071abb.

Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
2022-05-04 16:11:43 +02:00
Amneesh Singh
871a071abb conf: virDomainGraphicsDefValidate: validate attribute 'network' for listen type 'network'
Related: https://gitlab.com/libvirt/libvirt/-/issues/93
Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
2022-05-04 14:33:02 +02:00
Liang Yan
d9f175379c qemu: do not use domain virt type to get default version
We do not need VIR_DOMAIN_VIRT_QEMU to get qemu default
version. With the 'os_type' and 'arch'in capabilities,
we could identify 'emulator' which is enough to get the version.

Actually VIR_DOMAIN_VIRT_QEMU is not the only domain virt type for
qemu driver, there are VIR_DOMAIN_VIRT_KVM and VIR_DOMAIN_VIRT_HVF.
If TCG is disabled in qemu, it will cause the error that could not
find suitable emulater when access version.

Signed-off-by: Liang Yan <lyan@digtalocean.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2022-05-04 12:02:32 +02:00
Daniel P. Berrangé
41e118fa4f build-aux: remove duplicated syntax check filter for 'select'
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2022-05-03 15:45:38 +01:00
Jiri Denemark
a12b2d8f21 Post-release version bump to 8.4.0
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
2022-05-02 13:37:43 +02:00
Jiri Denemark
aff8961dd1 Release of libvirt-8.3.0
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
2022-05-02 13:33:03 +02:00
Piotr Drąg
9684c7c97e Translated using Weblate (Polish)
Currently translated at 22.3% (2331 of 10419 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/pl/

Co-authored-by: Piotr Drąg <piotrdrag@gmail.com>
Signed-off-by: Piotr Drąg <piotrdrag@gmail.com>
2022-04-30 12:51:30 +02:00
Yuri Chornoivan
d0289cfa0e Translated using Weblate (Ukrainian)
Currently translated at 100.0% (10419 of 10419 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/uk/

Co-authored-by: Yuri Chornoivan <yurchor@ukr.net>
Signed-off-by: Yuri Chornoivan <yurchor@ukr.net>
2022-04-28 14:46:06 +02:00
김인수
755bd47b5f Translated using Weblate (Korean)
Currently translated at 100.0% (10419 of 10419 strings)

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/ko/

Co-authored-by: 김인수 <simmon@nplob.com>
Signed-off-by: 김인수 <simmon@nplob.com>
2022-04-28 14:46:06 +02:00
Weblate
413bf1ed54 Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: libvirt/libvirt
Translate-URL: https://translate.fedoraproject.org/projects/libvirt/libvirt/

Co-authored-by: Weblate <noreply@weblate.org>
Signed-off-by: Fedora Weblate Translation <i18n@lists.fedoraproject.org>
2022-04-28 14:46:06 +02:00
Daniel P. Berrangé
a055308668 tests: don't set G_DEBUG=fatal-warnings on macOS
On macOS when BROKEN_POLL is set in GLib, our tests will periodically
trigger a warning:

  (process:50880): GLib-WARNING **: 02:54:15.272: poll(2) failed due to: Bad file descriptor.

Our code is inherantly racy, calling g_source_destroy which
removes the FD from the event thread poll asynchronously but
we close the FD immediately after g_source_destroy returns.

With poll() this results in POLLNVAL which we're ignoring, but
with select() it generates the BADF error on macOS.

We need to ignore the warnings on macOS to avoid abort()ing
our test programs.

Closes: https://gitlab.com/libvirt/libvirt/-/issues/303
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2022-04-28 13:45:44 +01:00
Daniel P. Berrangé
d4d5cebdf1 ci: print stack traces on macOS if any tests fail
Mostly the tests should fail cleanly, but sometimes the test might crash
or abort. In this case we'll need to know the stack traces in order to
debug the problem. Fortunately on the Cirrus CI macOS instances, the
crash reporting service is active and saving crashes to the directory
~/Library/Logs/DiagnosticReports/

Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2022-04-28 13:36:34 +01:00
Peter Krempa
297ef539d0 NEWS: Mention bump of minimum qemu version to qemu-3.1
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2022-04-28 13:38:08 +02:00
Martin Kletzander
381498796c cpu: Remove pointless check
These two pointers can never be NULL since they are initialised to a reference
of a struct.  This became apparent when commit 210a195394 added a VIR_DEBUG
which used both pointers because due to the concise condition the compiler saw
that if the "and" part of the condition did short-circuit (and it assumed that
can happen) the second variable would not be initialised, but it is used in the
debugging message, so the build failed with:

  In file included from ../src/cpu/cpu_x86.c:27:
  ../src/cpu/cpu_x86.c: In function ‘virCPUx86DataIsIdentical’:
  ../src/util/virlog.h:79:5: error: ‘bdata’ may be used uninitialized in this
  function [-Werror=maybe-uninitialized]

Fix this by just assigning the helper pointers and remove the condition
altogether.

Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
2022-04-27 09:42:59 +02:00
Victor Toso
6975ed0a94 scripts: apibuild: add parsing variable's comments
scripts/apibuild.py did not consider exporting external variable's
comments into the XML API. This commits fixes that.

Noe that the way that CParser is designed, it is currently possible to
lose a parsed comment when parsing other fields as self.comment in
several places. I've added a comment to highlight this.

Signed-off-by: Victor Toso <victortoso@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2022-04-26 17:54:33 +02:00
Victor Toso
4bce59d963 scripts: apibuild: factor out comment cleaning
So we can use for comments that are being hold in helper variables.

Signed-off-by: Victor Toso <victortoso@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2022-04-26 17:54:30 +02:00
Victor Toso
034600e601 scripts: apibuild: parse 'Since' for functions
This patch adds 'version' parameter to generated XML API for functions
and functypes.

The 'version' metadata has been added with e0e0bf6628 by parsing .syms
files. This commit does not override that but it will warn if there is
not 'Since' metadata with new additions.

There is not clear benefit for keeping both. For now, I've added a
warning in case there is a mismatch between the version provided by
.syms and docstring.

Signed-off-by: Victor Toso <victortoso@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2022-04-26 17:54:28 +02:00
Victor Toso
b7472a1d79 scripts: apibuild: parse 'Since' for macros
This patch adds 'version' parameter to the generated XML API for
macros

It'll require, for new additions, to add a comment with the version
that the macro was added. An example bellow of code diff and
the change in the generated XML.

Note that the Since tag is removed from the comment as there is a
proper field for it in the XML.

Signed-off-by: Victor Toso <victortoso@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2022-04-26 17:54:27 +02:00
Victor Toso
8be766e39c scripts: apibuild: parse 'Since' for typedefs
This patch adds 'version' parameter to the generated XML API for
typedefs

It'll require, for new additions, to add a comment with the version
that the typedef value was added. An example bellow of code diff and
the change in the generated XML.

Note that the Since tag is removed from the comment as there is a
proper field for it in the XML.

Signed-off-by: Victor Toso <victortoso@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2022-04-26 17:54:25 +02:00
Victor Toso
2f1c01e672 scripts: apibuild: fix parsing block comments from typedef enum
Removed the TODO as we can rely to the serialize_typedef() the job to
report missing comments.

Signed-off-by: Victor Toso <victortoso@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2022-04-26 17:54:22 +02:00
Victor Toso
7958b7d9c5 scripts: apibuild: parse 'Since' version for enums
This patch adds 'version' parameter to the generated XML API for
enums.

It'll require, for new additions, to add a comment with the version
that the enum value was added.

Note that the Since tag is removed from the comment as there is a
proper field for it in the XML.

Signed-off-by: Victor Toso <victortoso@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2022-04-26 17:54:17 +02:00
Andrea Bolognani
60d62c5ea1 include: Move version information
It belongs to the comment for VIR_DOMAIN_AFFECT_CONFIG, not to
the unrelated one immediately after it.

Fixes: 807cdbf759
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
2022-04-26 17:38:35 +02:00
Daniel P. Berrangé
a45e4b42fe ci: print test suite logs on failure for Cirrus jobs
We don't have access to the 'testlog.txt' file, so we need meson to
print the failures for any broken tests directly.

Reviewed-by: Andrea Bolognani <abologna@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2022-04-26 13:17:52 +01:00
Victor Toso
85a5d64618 docstring: function: admin: Add 'Since version' metadata
Either create or append to existing docstring, the version (git tag)
that a given function was introduced in the format:

    Since: v1.2.3

Signed-off-by: Victor Toso <victortoso@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2022-04-26 12:31:41 +02:00
Victor Toso
c628bce03b docstring: function: libvirt: Add 'Since version' metadata
Either create or append to existing docstring, the version (git tag)
that a given function was introduced in the format:

    Since: v1.2.3

Signed-off-by: Victor Toso <victortoso@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2022-04-26 12:31:41 +02:00
Victor Toso
032724b9c4 docstring: typedef: admin: Add 'Since version' metadata
Either create or append to existing docstring, the version (git tag)
that a given typedef was introduced in the format:

    Since: v1.2.3

Signed-off-by: Victor Toso <victortoso@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2022-04-26 12:31:41 +02:00
Victor Toso
a1d3324f02 docstring: macros: admin: Add 'Since version' metadata
Either create or append to existing docstring, the version (git tag)
that a given macro was introduced in the format:

    Since: v1.2.3

Signed-off-by: Victor Toso <victortoso@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2022-04-26 12:31:41 +02:00
Victor Toso
da6d307a34 docstring: enums: admin: Add 'Since version' metadata
Either create or append to existing docstring, the version (git tag)
that a given enum value was introduced in the format:

    Since: v1.2.3

Signed-off-by: Victor Toso <victortoso@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2022-04-26 12:31:41 +02:00
Victor Toso
807cdbf759 docstring: enums: libvirt: Add 'Since version' metadata
Either create or append to existing docstring, the version (git tag)
that a given enum value was introduced in the format:

    Since: v1.2.3

Signed-off-by: Victor Toso <victortoso@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2022-04-26 12:31:41 +02:00
Andrea Bolognani
aad910c228 include: Remove more comments between enum values
apibuild.py mistakes these as being a continuation of the
previous comment.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
2022-04-26 12:31:41 +02:00
Andrea Bolognani
6237f2b84b include: Fix docstring indentation
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
2022-04-26 12:31:40 +02:00
Victor Toso
7852d30bff docstring: avoid sc_prohibit_nonreentrant in a comment
Follow up patch will add Since metadata to enum values of
virStorageVolWipeAlgorithm.

This patch is necessary to avoid breaking the build with
syntax-check.

Signed-off-by: Victor Toso <victortoso@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2022-04-26 11:25:25 +02:00
Victor Toso
1ae8b1df02 docstring: remove comments between enum values
scripts/apibuild.py does not handle well enum's with comments between
values. The outcome depends on whether the enum value has its own
docstring or not and if there is spaces between the enum values or
not.

This commit removes some generic comments that I have spotted.

Signed-off-by: Victor Toso <victortoso@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2022-04-26 11:25:23 +02:00
Victor Toso
469f3467e1 docstring: typedef: fix a few version
Fixes: 034432e47b
Signed-off-by: Victor Toso <victortoso@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2022-04-26 11:25:17 +02:00
1013 changed files with 134582 additions and 31855 deletions

View File

@@ -62,7 +62,8 @@ website:
stage: builds
image: $CI_REGISTRY_IMAGE/ci-almalinux-8:latest
needs:
- x86_64-almalinux-8-container
- job: x86_64-almalinux-8-container
optional: true
before_script:
- *script_variables
script:
@@ -82,7 +83,8 @@ codestyle:
stage: sanity_checks
image: $CI_REGISTRY_IMAGE/ci-opensuse-leap-153:latest
needs:
- x86_64-opensuse-leap-153-container
- job: x86_64-opensuse-leap-153-container
optional: true
before_script:
- *script_variables
script:
@@ -98,7 +100,8 @@ potfile:
stage: builds
image: $CI_REGISTRY_IMAGE/ci-almalinux-8:latest
needs:
- x86_64-almalinux-8-container
- job: x86_64-almalinux-8-container
optional: true
rules:
- if: "$CI_COMMIT_BRANCH == 'master'"
before_script:
@@ -120,7 +123,8 @@ potfile:
coverity:
image: $CI_REGISTRY_IMAGE/ci-almalinux-8:latest
needs:
- x86_64-almalinux-8-container
- job: x86_64-almalinux-8-container
optional: true
stage: builds
script:
- curl https://scan.coverity.com/download/linux64 --form project=$COVERITY_SCAN_PROJECT_NAME --form token=$COVERITY_SCAN_TOKEN -o /tmp/cov-analysis-linux64.tgz

View File

@@ -17,8 +17,3 @@
## Additional information
<!-- Attach XML configs, logs, stack traces, etc. Compress the files if necessary -->
<!-- See https://libvirt.org/kbase/debuglogs.html on how to configure logging -->
<!-- The line below ensures that proper tags are added to the issue. -- >
/label ~bug

View File

@@ -23,8 +23,3 @@ Thank you for your interest in helping us to make libvirt better!
## Additional information
<!-- The line below ensures that proper tags are added to the issue. -- >
/label ~enhancement

166
NEWS.rst
View File

@@ -8,7 +8,7 @@ the changes introduced by each of them.
For a more fine-grained view, use the `git log`_.
v8.3.0 (unreleased)
v8.5.0 (unreleased)
===================
* **Security**
@@ -17,15 +17,87 @@ v8.3.0 (unreleased)
* **New features**
* qemu: Introduce support for virtio-iommu
* qemu: Introduce support for network backed NVRAM
This IOMMU device can be used with both Q35 and ARM virt guests.
Users can now use remote store NVRAM image by specifying newly introduced
attribute `type='network'` with `<nvram>` element.
* qemu: Add support for post-copy migration recovery
A new ``VIR_MIGRATE_POSTCOPY_RESUME`` flag (``virsh migrate --postcopy-resume``)
was introduced for recovering from a failed post-copy migration.
* **Improvements**
* **Bug fixes**
v8.4.0 (2022-06-01)
===================
* **New features**
* qemu: D-Bus display
Libvirt is now able to setup a D-Bus display export, either with a private
bus or in p2p mode. This display is available in QEMU 7.0.0.
* qemu: ppc64 Power10 processor support
Support for the recently released IBM Power10 processor was added.
* qemu: Introduce ``absolute`` clock offset
The ``absolute`` clock offset type allows to set the guest clock to an
arbitrary epoch timestamp at each start. This is useful if some VM needs
to be kept set to an arbitrary time for e.g. testing or working around
broken software.
* qemu: add qemu-vdagent channel
This paravirtualized qemu vdagent channel can enable copy and paste between
a guest and a VNC client. It is available in QEMU 6.1.0.
* api: Add new APIs ``virDomainSaveParams`` and ``virDomainRestoreParams``
* ``virDomainSaveParams``: An alternative domain saving API, extends
``virDomainSaveFlags`` by adding parameters.
* ``virDomainRestoreParams``: An alternative domain restoring API, extends
``virDomainRestoreFlags`` by adding parameters.
* **Bug fixes**
* Improve heuristics for computing baseline CPU models
Both ``virConnectBaselineHypervisorCPU`` and ``virConnectBaselineCPU`` were
in some cases computing the result using a CPU model which was newer than
some of the input models. For example, ``Cascadelake-Server`` was used as a
baseline for ``Skylake-Server-IBRS`` and ``Cascadelake-Server``. The CPU
model selection heuristics was improved to choose a more appropriate model.
v8.3.0 (2022-05-02)
===================
* **Removed features**
* qemu: Remove support for QEMU < 3.1
In accordance with our platform support policy, the oldest supported QEMU
version is now bumped from 2.11 to 3.1.
* **New features**
* qemu: Introduce support for virtio-iommu
This IOMMU device can be used with both Q35 and ARM virt guests.
* qemu: Introduce attributes rss and rss_hash_report for net interface
They can enable in-qemu/ebpf RSS and in-qemu RSS hash report for virtio NIC.
Require QEMU >= 5.1.
v8.2.0 (2022-04-01)
===================
@@ -450,6 +522,20 @@ v7.8.0 (2021-10-01)
active. This information can also be retrieved with the new virsh command
``nodedev-info``.
* qemu: Add attribute ``queue_size`` for virtio-blk devices
* **Improvements**
* api: Add XML validation for creating of: networkport, nwfilter-binding,
network
* Add flag ``VIR_NETWORK_PORT_CREATE_VALIDATE`` to validate network port
input xml of network-port creating.
* Add flag ``VIR_NETWORK_CREATE_VALIDATE`` to validate network input xml of
network creating.
* Add flag ``VIR_NWFILTER_BINDING_CREATE_VALIDATE`` to validate
nwfilter-binding input xml of nwfilter-binding creating.
v7.7.0 (2021-09-01)
===================
@@ -521,6 +607,8 @@ v7.7.0 (2021-09-01)
forbidden for older qemus which don't support the update API as the guest
could still reboot and execute some instructions until it was terminated.
* virsh: Support vhostuser in attach-interface
* **Bug fixes**
* qemu: Open chardev logfile on behalf of QEMU
@@ -996,6 +1084,14 @@ v7.0.0 (2021-01-15)
powered off or undefined. Add per-TPM emulator option ``persistent_state``
for keeping TPM state.
* cpu_map: Add Snowridge CPU model
It's supported in QEMU 4.1 and newer.
* qemu: Add support for NFS disk protocol
Implement support for the 'nfs' native protocol driver in the qemu driver.
* **Improvements**
* qemu: Discourage users from polling ``virDomainGetBlockJobInfo`` for block
@@ -1086,6 +1182,12 @@ v6.10.0 (2020-12-01)
option is missing are now '1'. This ensures that only legitimate clients
access servers, which don't have any additional form of authentication.
* qemu: Introduce "migrate_tls_force" qemu.conf option
The ``migrate_tls_force`` configuration option allows administrators to
always force connections used for migration to be TLS secured as if the
``VIR_MIGRATE_TLS`` flag had been used.
* **New features**
* qemu: Implement OpenSSH authorized key file management APIs
@@ -1104,6 +1206,18 @@ v6.10.0 (2020-12-01)
``virDomainSetVcpus()``, and ``virDomainSetVcpusFlags()`` APIs have been
implemented in the Hyper-V driver.
* qemu: Add 'fmode' and 'dmode' options for 9pfs
Expose QEMU's 9pfs 'fmode' and 'dmode' options via attributes on the
'filesystem' node in the domain XML. These options control the creation
mode of files and directories, respectively, when using accessmode=mapped.
It requires QEMU 2.10 or above.
* qemu: support kvm-poll-control performance hint
Implement the new KVM feature 'poll-control' to set this performance hint
for KVM guests. It requires QEMU 4.2 or above.
* **Improvements**
* virsh: Support network disks in ``virsh attach-disk``
@@ -1172,6 +1286,52 @@ v6.9.0 (2020-11-02)
using ``<interface type='vdpa'>``. The node device APIs also now
list and provide XML descriptions for vDPA devices.
* cpu_map: Add EPYC-Rome CPU model
It's supported in QEMU 5.0.0 and newer.
* cpu: Add a flag for XML validation in CPU comparison
The ``virConnectCompareCPU`` and ``virConnectCompareHypervisorCPU`` API
now support the ``VIR_CONNECT_COMPARE_CPU_VALIDATE_XML`` flag, which
enables XML validation. For virsh, this feature is enabled by passing
the ``--validate`` option to the ``cpu-compare`` and
``hypervisor-cpu-compare`` subcommands.
* qemu: Introduce virtio-balloon free page reporting feature
Introduce the optional attribute ``free-page-reporting`` for virtio
memballoon device. It enables/disables the ability of the QEMU virtio
memory balloon to return unused pages back to the hypervisor. QEMU 5.1
and newer support this feature.
* **Improvements**
* qemu: Make 'cbitpos' & 'reducedPhysBits' attrs optional
Libvirt probes the underlying platform in order to fill in these SEV
attributes automatically before launching a guest.
* util: support device stats collection for SR-IOV VF hostdev
For SR-IOV VF hostdevs, libvirt now supports retrieving device traffic
stats via the ``virDomainInterfaceStats`` API and ``virsh domifstat``.
* logging: Allow disabling log rollover
Set ``max_len=0`` in ``virtlogd.conf`` to disable log rollover.
* qemu: Set noqueue qdisc for TAP devices
Set ``noqueue`` instead of the former ``pfifo_fast`` queue discipline
for TAP devices. It will avoid needless cost of host CPU cycles and
thus improve performance.
* qemu: virtiofs can be used without NUMA nodes
Virtiofs is supported for the VM without NUMA nodes but configured with
shared memory.
* **Bug fixes**
* hyperv: ensure WQL queries work in all locales

View File

@@ -7,6 +7,7 @@ RUNUTF8 = @runutf8@
PYTHON = @PYTHON3@
GREP = @GREP@
SED = @SED@
AWK = @AWK@
# include syntax-check.mk file
include $(top_srcdir)/build-aux/syntax-check.mk

View File

@@ -26,6 +26,8 @@ else
grep_prog = find_program('grep')
endif
awk_prog = find_program('awk')
syntax_check_conf = configuration_data({
'top_srcdir': meson.source_root(),
'top_builddir': meson.build_root(),
@@ -34,6 +36,7 @@ syntax_check_conf = configuration_data({
'PYTHON3': python3_prog.path(),
'GREP': grep_prog.path(),
'SED': sed_prog.path(),
'AWK': awk_prog.path(),
})
configure_file(
@@ -44,7 +47,7 @@ configure_file(
rc = run_command(
'sed', '-n',
's/^\\(sc_[a-zA-Z0-9_-]*\\):.*/\\1/p',
's/^sc_\\([a-zA-Z0-9_-]*\\):.*/\\1/p',
meson.current_source_dir() / 'syntax-check.mk',
check: true,
)
@@ -59,7 +62,7 @@ if git
test(
target,
make_prog,
args: [ '-C', meson.current_build_dir(), target ],
args: [ '-C', meson.current_build_dir(), 'sc_@0@'.format(target) ],
depends: [
potfiles_dep,
],

File diff suppressed because it is too large Load Diff

View File

@@ -140,7 +140,7 @@ endif
CI_GIT_ARGS = \
-c advice.detachedHead=false \
-q \
--local \
--local \
$(NULL)
# Args to use when running the container

View File

@@ -10,8 +10,8 @@ Cirrus CI integration
=====================
libvirt currently supports three non-Linux operating systems: Windows, FreeBSD
and macOS. Windows cross-builds can be prepared on Linux by using `MinGW`_, but
for both FreeBSD and macOS we need to use the actual operating system, and
and macOS. Windows cross-builds can be prepared on Linux by using `MinGW-w64`_,
but for both FreeBSD and macOS we need to use the actual operating system, and
unfortunately GitLab shared runners are currently not available for either.
To work around this limitation, we take advantage of `Cirrus CI`_'s free
@@ -61,7 +61,7 @@ repository as usual and you'll automatically get the additional CI coverage.
.. _Cirrus CI GitHub app: https://github.com/marketplace/cirrus-ci
.. _Cirrus CI settings: https://cirrus-ci.com/settings/profile/
.. _Cirrus CI: https://cirrus-ci.com/
.. _MinGW: http://mingw.org/
.. _MinGW-w64: https://www.mingw-w64.org/
.. _cirrus-run: https://github.com/sio/cirrus-run/

View File

@@ -26,4 +26,4 @@ build_task:
- meson setup build
- meson dist -C build --no-tests
- meson compile -C build
- meson test -C build --no-suite syntax-check
- meson test -C build --no-suite syntax-check --print-errorlogs || (cat ~/Library/Logs/DiagnosticReports/*.crash && exit 1)

View File

@@ -4,7 +4,7 @@
#
# https://gitlab.com/libvirt/libvirt-ci
FROM registry.fedoraproject.org/fedora:35
FROM registry.fedoraproject.org/fedora:36
RUN dnf install -y nosync && \
echo -e '#!/bin/sh\n\

View File

@@ -4,7 +4,7 @@
#
# https://gitlab.com/libvirt/libvirt-ci
FROM registry.fedoraproject.org/fedora:35
FROM registry.fedoraproject.org/fedora:36
RUN dnf install -y nosync && \
echo -e '#!/bin/sh\n\

View File

@@ -4,7 +4,7 @@
#
# https://gitlab.com/libvirt/libvirt-ci
FROM registry.fedoraproject.org/fedora:34
FROM registry.fedoraproject.org/fedora:36
RUN dnf install -y nosync && \
echo -e '#!/bin/sh\n\
@@ -69,7 +69,6 @@ exec "$@"' > /usr/bin/nosync && \
lvm2 \
make \
meson \
netcf-devel \
nfs-utils \
ninja-build \
numactl-devel \

View File

@@ -0,0 +1,101 @@
# THIS FILE WAS AUTO-GENERATED
#
# $ lcitool manifest ci/manifest.yml
#
# https://gitlab.com/libvirt/libvirt-ci
FROM docker.io/library/ubuntu:22.04
RUN export DEBIAN_FRONTEND=noninteractive && \
apt-get update && \
apt-get install -y eatmydata && \
eatmydata apt-get dist-upgrade -y && \
eatmydata apt-get install --no-install-recommends -y \
augeas-lenses \
augeas-tools \
bash-completion \
ca-certificates \
ccache \
clang \
codespell \
cpp \
diffutils \
dwarves \
ebtables \
flake8 \
gcc \
gettext \
git \
grep \
iproute2 \
iptables \
kmod \
libacl1-dev \
libapparmor-dev \
libattr1-dev \
libaudit-dev \
libblkid-dev \
libc-dev-bin \
libc6-dev \
libcap-ng-dev \
libcurl4-gnutls-dev \
libdevmapper-dev \
libfuse-dev \
libglib2.0-dev \
libglusterfs-dev \
libgnutls28-dev \
libiscsi-dev \
libnl-3-dev \
libnl-route-3-dev \
libnuma-dev \
libopenwsman-dev \
libparted-dev \
libpcap0.8-dev \
libpciaccess-dev \
librbd-dev \
libreadline-dev \
libsanlock-dev \
libsasl2-dev \
libselinux1-dev \
libssh-dev \
libssh2-1-dev \
libtirpc-dev \
libudev-dev \
libxen-dev \
libxml2-dev \
libxml2-utils \
libyajl-dev \
locales \
lvm2 \
make \
meson \
nfs-common \
ninja-build \
numad \
open-iscsi \
perl-base \
pkgconf \
policykit-1 \
python3 \
python3-docutils \
qemu-utils \
scrub \
sed \
systemtap-sdt-dev \
wireshark-dev \
xsltproc && \
eatmydata apt-get autoremove -y && \
eatmydata apt-get autoclean -y && \
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
dpkg-reconfigure locales && \
dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
mkdir -p /usr/libexec/ccache-wrappers && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
ENV LANG "en_US.UTF-8"
ENV MAKE "/usr/bin/make"
ENV NINJA "/usr/bin/ninja"
ENV PYTHON "/usr/bin/python3"
ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"

View File

@@ -4,748 +4,9 @@
#
# https://gitlab.com/libvirt/libvirt-ci
.container_job:
image: docker:stable
stage: containers
needs: []
services:
- docker:dind
before_script:
- export TAG="$CI_REGISTRY_IMAGE/ci-$NAME:latest"
- export COMMON_TAG="$CI_REGISTRY/libvirt/libvirt/ci-$NAME:latest"
- docker info
- docker login registry.gitlab.com -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD"
script:
- docker pull "$TAG" || docker pull "$COMMON_TAG" || true
- docker build --cache-from "$TAG" --cache-from "$COMMON_TAG" --tag "$TAG" -f "ci/containers/$NAME.Dockerfile" ci/containers
- docker push "$TAG"
after_script:
- docker logout
.gitlab_native_build_job:
image: $CI_REGISTRY_IMAGE/ci-$NAME:latest
stage: builds
.gitlab_cross_build_job:
image: $CI_REGISTRY_IMAGE/ci-$NAME-cross-$CROSS:latest
stage: builds
.cirrus_build_job:
stage: builds
image: registry.gitlab.com/libvirt/libvirt-ci/cirrus-run:master
needs: []
script:
- source ci/cirrus/$NAME.vars
- sed -e "s|[@]CI_REPOSITORY_URL@|$CI_REPOSITORY_URL|g"
-e "s|[@]CI_COMMIT_REF_NAME@|$CI_COMMIT_REF_NAME|g"
-e "s|[@]CI_COMMIT_SHA@|$CI_COMMIT_SHA|g"
-e "s|[@]CIRRUS_VM_INSTANCE_TYPE@|$CIRRUS_VM_INSTANCE_TYPE|g"
-e "s|[@]CIRRUS_VM_IMAGE_SELECTOR@|$CIRRUS_VM_IMAGE_SELECTOR|g"
-e "s|[@]CIRRUS_VM_IMAGE_NAME@|$CIRRUS_VM_IMAGE_NAME|g"
-e "s|[@]UPDATE_COMMAND@|$UPDATE_COMMAND|g"
-e "s|[@]UPGRADE_COMMAND@|$UPGRADE_COMMAND|g"
-e "s|[@]INSTALL_COMMAND@|$INSTALL_COMMAND|g"
-e "s|[@]PATH@|$PATH_EXTRA${PATH_EXTRA:+:}\$PATH|g"
-e "s|[@]PKG_CONFIG_PATH@|$PKG_CONFIG_PATH|g"
-e "s|[@]PKGS@|$PKGS|g"
-e "s|[@]MAKE@|$MAKE|g"
-e "s|[@]PYTHON@|$PYTHON|g"
-e "s|[@]PIP3@|$PIP3|g"
-e "s|[@]PYPI_PKGS@|$PYPI_PKGS|g"
-e "s|[@]XML_CATALOG_FILES@|$XML_CATALOG_FILES|g"
<ci/cirrus/build.yml >ci/cirrus/$NAME.yml
- cat ci/cirrus/$NAME.yml
- cirrus-run -v --show-build-log always ci/cirrus/$NAME.yml
rules:
- if: "$CIRRUS_GITHUB_REPO && $CIRRUS_API_TOKEN"
check-dco:
stage: sanity_checks
needs: []
image: registry.gitlab.com/libvirt/libvirt-ci/check-dco:master
script:
- /check-dco libvirt
except:
variables:
- $CI_PROJECT_NAMESPACE == 'libvirt'
variables:
GIT_DEPTH: 1000
# Native container jobs
x86_64-almalinux-8-container:
extends: .container_job
allow_failure: false
variables:
NAME: almalinux-8
x86_64-alpine-314-container:
extends: .container_job
allow_failure: false
variables:
NAME: alpine-314
x86_64-alpine-315-container:
extends: .container_job
allow_failure: false
variables:
NAME: alpine-315
x86_64-alpine-edge-container:
extends: .container_job
allow_failure: true
variables:
NAME: alpine-edge
x86_64-centos-stream-8-container:
extends: .container_job
allow_failure: false
variables:
NAME: centos-stream-8
x86_64-centos-stream-9-container:
extends: .container_job
allow_failure: false
variables:
NAME: centos-stream-9
x86_64-debian-10-container:
extends: .container_job
allow_failure: false
variables:
NAME: debian-10
x86_64-debian-11-container:
extends: .container_job
allow_failure: false
variables:
NAME: debian-11
x86_64-debian-sid-container:
extends: .container_job
allow_failure: true
variables:
NAME: debian-sid
x86_64-fedora-34-container:
extends: .container_job
allow_failure: false
variables:
NAME: fedora-34
x86_64-fedora-35-container:
extends: .container_job
allow_failure: false
variables:
NAME: fedora-35
x86_64-fedora-rawhide-container:
extends: .container_job
allow_failure: true
variables:
NAME: fedora-rawhide
x86_64-opensuse-leap-153-container:
extends: .container_job
allow_failure: false
variables:
NAME: opensuse-leap-153
x86_64-opensuse-tumbleweed-container:
extends: .container_job
allow_failure: true
variables:
NAME: opensuse-tumbleweed
x86_64-ubuntu-2004-container:
extends: .container_job
allow_failure: false
variables:
NAME: ubuntu-2004
# Cross container jobs
aarch64-debian-10-container:
extends: .container_job
allow_failure: true
variables:
NAME: debian-10-cross-aarch64
armv6l-debian-10-container:
extends: .container_job
allow_failure: false
variables:
NAME: debian-10-cross-armv6l
armv7l-debian-10-container:
extends: .container_job
allow_failure: true
variables:
NAME: debian-10-cross-armv7l
i686-debian-10-container:
extends: .container_job
allow_failure: true
variables:
NAME: debian-10-cross-i686
mips-debian-10-container:
extends: .container_job
allow_failure: false
variables:
NAME: debian-10-cross-mips
mips64el-debian-10-container:
extends: .container_job
allow_failure: true
variables:
NAME: debian-10-cross-mips64el
mipsel-debian-10-container:
extends: .container_job
allow_failure: false
variables:
NAME: debian-10-cross-mipsel
ppc64le-debian-10-container:
extends: .container_job
allow_failure: true
variables:
NAME: debian-10-cross-ppc64le
s390x-debian-10-container:
extends: .container_job
allow_failure: true
variables:
NAME: debian-10-cross-s390x
aarch64-debian-11-container:
extends: .container_job
allow_failure: true
variables:
NAME: debian-11-cross-aarch64
armv6l-debian-11-container:
extends: .container_job
allow_failure: true
variables:
NAME: debian-11-cross-armv6l
armv7l-debian-11-container:
extends: .container_job
allow_failure: false
variables:
NAME: debian-11-cross-armv7l
i686-debian-11-container:
extends: .container_job
allow_failure: true
variables:
NAME: debian-11-cross-i686
mips64el-debian-11-container:
extends: .container_job
allow_failure: false
variables:
NAME: debian-11-cross-mips64el
mipsel-debian-11-container:
extends: .container_job
allow_failure: true
variables:
NAME: debian-11-cross-mipsel
ppc64le-debian-11-container:
extends: .container_job
allow_failure: false
variables:
NAME: debian-11-cross-ppc64le
s390x-debian-11-container:
extends: .container_job
allow_failure: true
variables:
NAME: debian-11-cross-s390x
aarch64-debian-sid-container:
extends: .container_job
allow_failure: true
variables:
NAME: debian-sid-cross-aarch64
armv6l-debian-sid-container:
extends: .container_job
allow_failure: true
variables:
NAME: debian-sid-cross-armv6l
armv7l-debian-sid-container:
extends: .container_job
allow_failure: true
variables:
NAME: debian-sid-cross-armv7l
i686-debian-sid-container:
extends: .container_job
allow_failure: true
variables:
NAME: debian-sid-cross-i686
mips64el-debian-sid-container:
extends: .container_job
allow_failure: true
variables:
NAME: debian-sid-cross-mips64el
mipsel-debian-sid-container:
extends: .container_job
allow_failure: true
variables:
NAME: debian-sid-cross-mipsel
ppc64le-debian-sid-container:
extends: .container_job
allow_failure: true
variables:
NAME: debian-sid-cross-ppc64le
s390x-debian-sid-container:
extends: .container_job
allow_failure: true
variables:
NAME: debian-sid-cross-s390x
mingw32-fedora-35-container:
extends: .container_job
allow_failure: true
variables:
NAME: fedora-35-cross-mingw32
mingw64-fedora-35-container:
extends: .container_job
allow_failure: false
variables:
NAME: fedora-35-cross-mingw64
mingw32-fedora-rawhide-container:
extends: .container_job
allow_failure: true
variables:
NAME: fedora-rawhide-cross-mingw32
mingw64-fedora-rawhide-container:
extends: .container_job
allow_failure: true
variables:
NAME: fedora-rawhide-cross-mingw64
# Native build jobs
x86_64-almalinux-8:
extends: .native_build_job
needs:
- x86_64-almalinux-8-container
allow_failure: false
variables:
NAME: almalinux-8
RPM: skip
x86_64-almalinux-8-clang:
extends: .native_build_job
needs:
- x86_64-almalinux-8-container
allow_failure: false
variables:
CC: clang
NAME: almalinux-8
RPM: skip
x86_64-alpine-314:
extends: .native_build_job
needs:
- x86_64-alpine-314-container
allow_failure: false
variables:
NAME: alpine-314
x86_64-alpine-315:
extends: .native_build_job
needs:
- x86_64-alpine-315-container
allow_failure: false
variables:
NAME: alpine-315
x86_64-alpine-edge:
extends: .native_build_job
needs:
- x86_64-alpine-edge-container
allow_failure: true
variables:
NAME: alpine-edge
x86_64-centos-stream-8:
extends: .native_build_job
needs:
- x86_64-centos-stream-8-container
allow_failure: false
variables:
NAME: centos-stream-8
artifacts:
expire_in: 1 day
paths:
- libvirt-rpms
x86_64-centos-stream-9:
extends: .native_build_job
needs:
- x86_64-centos-stream-9-container
allow_failure: false
variables:
NAME: centos-stream-9
artifacts:
expire_in: 1 day
paths:
- libvirt-rpms
x86_64-debian-10:
extends: .native_build_job
needs:
- x86_64-debian-10-container
allow_failure: false
variables:
NAME: debian-10
x86_64-debian-11:
extends: .native_build_job
needs:
- x86_64-debian-11-container
allow_failure: false
variables:
NAME: debian-11
x86_64-debian-11-clang:
extends: .native_build_job
needs:
- x86_64-debian-11-container
allow_failure: false
variables:
NAME: debian-11
x86_64-debian-sid:
extends: .native_build_job
needs:
- x86_64-debian-sid-container
allow_failure: true
variables:
NAME: debian-sid
x86_64-fedora-34:
extends: .native_build_job
needs:
- x86_64-fedora-34-container
allow_failure: false
variables:
NAME: fedora-34
artifacts:
expire_in: 1 day
paths:
- libvirt-rpms
x86_64-fedora-35:
extends: .native_build_job
needs:
- x86_64-fedora-35-container
allow_failure: false
variables:
NAME: fedora-35
artifacts:
expire_in: 1 day
paths:
- libvirt-rpms
x86_64-fedora-rawhide:
extends: .native_build_job
needs:
- x86_64-fedora-rawhide-container
allow_failure: true
variables:
NAME: fedora-rawhide
x86_64-fedora-rawhide-clang:
extends: .native_build_job
needs:
- x86_64-fedora-rawhide-container
allow_failure: true
variables:
CC: clang
NAME: fedora-rawhide
RPM: skip
x86_64-opensuse-leap-153:
extends: .native_build_job
needs:
- x86_64-opensuse-leap-153-container
allow_failure: false
variables:
NAME: opensuse-leap-153
RPM: skip
x86_64-opensuse-tumbleweed:
extends: .native_build_job
needs:
- x86_64-opensuse-tumbleweed-container
allow_failure: true
variables:
NAME: opensuse-tumbleweed
RPM: skip
x86_64-ubuntu-2004:
extends: .native_build_job
needs:
- x86_64-ubuntu-2004-container
allow_failure: false
variables:
ASAN_OPTIONS: verify_asan_link_order=0
MESON_ARGS: -Db_lundef=false -Db_sanitize=address,undefined
NAME: ubuntu-2004
UBSAN_OPTIONS: print_stacktrace=1:halt_on_error=1
x86_64-ubuntu-2004-clang:
extends: .native_build_job
needs:
- x86_64-ubuntu-2004-container
allow_failure: false
variables:
CC: clang
MESON_ARGS: -Db_lundef=false -Db_sanitize=address,undefined
NAME: ubuntu-2004
UBSAN_OPTIONS: print_stacktrace=1:halt_on_error=1
# Cross build jobs
armv6l-debian-10:
extends: .cross_build_job
needs:
- armv6l-debian-10-container
allow_failure: false
variables:
CROSS: armv6l
NAME: debian-10
mips-debian-10:
extends: .cross_build_job
needs:
- mips-debian-10-container
allow_failure: false
variables:
CROSS: mips
NAME: debian-10
mipsel-debian-10:
extends: .cross_build_job
needs:
- mipsel-debian-10-container
allow_failure: false
variables:
CROSS: mipsel
NAME: debian-10
armv7l-debian-11:
extends: .cross_build_job
needs:
- armv7l-debian-11-container
allow_failure: false
variables:
CROSS: armv7l
NAME: debian-11
mips64el-debian-11:
extends: .cross_build_job
needs:
- mips64el-debian-11-container
allow_failure: false
variables:
CROSS: mips64el
NAME: debian-11
ppc64le-debian-11:
extends: .cross_build_job
needs:
- ppc64le-debian-11-container
allow_failure: false
variables:
CROSS: ppc64le
NAME: debian-11
aarch64-debian-sid:
extends: .cross_build_job
needs:
- aarch64-debian-sid-container
allow_failure: true
variables:
CROSS: aarch64
NAME: debian-sid
i686-debian-sid:
extends: .cross_build_job
needs:
- i686-debian-sid-container
allow_failure: true
variables:
CROSS: i686
NAME: debian-sid
s390x-debian-sid:
extends: .cross_build_job
needs:
- s390x-debian-sid-container
allow_failure: true
variables:
CROSS: s390x
NAME: debian-sid
mingw64-fedora-35:
extends: .cross_build_job
needs:
- mingw64-fedora-35-container
allow_failure: false
variables:
CROSS: mingw64
NAME: fedora-35
mingw32-fedora-rawhide:
extends: .cross_build_job
needs:
- mingw32-fedora-rawhide-container
allow_failure: true
variables:
CROSS: mingw32
NAME: fedora-rawhide
# Native cirrus build jobs
x86_64-freebsd-12:
extends: .cirrus_build_job
needs: []
allow_failure: false
variables:
CIRRUS_VM_IMAGE_NAME: freebsd-12-2
CIRRUS_VM_IMAGE_SELECTOR: image_family
CIRRUS_VM_INSTANCE_TYPE: freebsd_instance
INSTALL_COMMAND: pkg install -y
NAME: freebsd-12
UPDATE_COMMAND: pkg update
UPGRADE_COMMAND: pkg upgrade -y
x86_64-freebsd-13:
extends: .cirrus_build_job
needs: []
allow_failure: false
variables:
CIRRUS_VM_IMAGE_NAME: freebsd-13-0
CIRRUS_VM_IMAGE_SELECTOR: image_family
CIRRUS_VM_INSTANCE_TYPE: freebsd_instance
INSTALL_COMMAND: pkg install -y
NAME: freebsd-13
UPDATE_COMMAND: pkg update
UPGRADE_COMMAND: pkg upgrade -y
x86_64-macos-11:
extends: .cirrus_build_job
needs: []
allow_failure: false
variables:
CIRRUS_VM_IMAGE_NAME: big-sur-base
CIRRUS_VM_IMAGE_SELECTOR: image
CIRRUS_VM_INSTANCE_TYPE: osx_instance
INSTALL_COMMAND: brew install
NAME: macos-11
PATH_EXTRA: /usr/local/opt/ccache/libexec:/usr/local/opt/gettext/bin:/usr/local/opt/libpcap/bin:/usr/local/opt/libxslt/bin:/usr/local/opt/rpcgen/bin
PKG_CONFIG_PATH: /usr/local/opt/curl/lib/pkgconfig:/usr/local/opt/libpcap/lib/pkgconfig:/usr/local/opt/libxml2/lib/pkgconfig:/usr/local/opt/ncurses/lib/pkgconfig:/usr/local/opt/readline/lib/pkgconfig
UPDATE_COMMAND: brew update
UPGRADE_COMMAND: brew upgrade
include:
- local: '/ci/gitlab/container-templates.yml'
- local: '/ci/gitlab/build-templates.yml'
- local: '/ci/gitlab/sanity-checks.yml'
- local: '/ci/gitlab/containers.yml'
- local: '/ci/gitlab/builds.yml'

View File

@@ -0,0 +1,60 @@
# THIS FILE WAS AUTO-GENERATED
#
# $ lcitool manifest ci/manifest.yml
#
# https://gitlab.com/libvirt/libvirt-ci
.gitlab_native_build_job:
image: $CI_REGISTRY_IMAGE/ci-$NAME:latest
stage: builds
rules:
- if: '$LIBVIRT_JOB_OPTIONAL'
when: manual
allow_failure: true
- when: on_success
.gitlab_cross_build_job:
image: $CI_REGISTRY_IMAGE/ci-$NAME-cross-$CROSS:latest
stage: builds
rules:
- if: '$LIBVIRT_JOB_OPTIONAL'
when: manual
allow_failure: true
- when: on_success
.cirrus_build_job:
stage: builds
image: registry.gitlab.com/libvirt/libvirt-ci/cirrus-run:master
needs: []
script:
- source ci/cirrus/$NAME.vars
- sed -e "s|[@]CI_REPOSITORY_URL@|$CI_REPOSITORY_URL|g"
-e "s|[@]CI_COMMIT_REF_NAME@|$CI_COMMIT_REF_NAME|g"
-e "s|[@]CI_COMMIT_SHA@|$CI_COMMIT_SHA|g"
-e "s|[@]CIRRUS_VM_INSTANCE_TYPE@|$CIRRUS_VM_INSTANCE_TYPE|g"
-e "s|[@]CIRRUS_VM_IMAGE_SELECTOR@|$CIRRUS_VM_IMAGE_SELECTOR|g"
-e "s|[@]CIRRUS_VM_IMAGE_NAME@|$CIRRUS_VM_IMAGE_NAME|g"
-e "s|[@]UPDATE_COMMAND@|$UPDATE_COMMAND|g"
-e "s|[@]UPGRADE_COMMAND@|$UPGRADE_COMMAND|g"
-e "s|[@]INSTALL_COMMAND@|$INSTALL_COMMAND|g"
-e "s|[@]PATH@|$PATH_EXTRA${PATH_EXTRA:+:}\$PATH|g"
-e "s|[@]PKG_CONFIG_PATH@|$PKG_CONFIG_PATH|g"
-e "s|[@]PKGS@|$PKGS|g"
-e "s|[@]MAKE@|$MAKE|g"
-e "s|[@]PYTHON@|$PYTHON|g"
-e "s|[@]PIP3@|$PIP3|g"
-e "s|[@]PYPI_PKGS@|$PYPI_PKGS|g"
-e "s|[@]XML_CATALOG_FILES@|$XML_CATALOG_FILES|g"
<ci/cirrus/build.yml >ci/cirrus/$NAME.yml
- cat ci/cirrus/$NAME.yml
- cirrus-run -v --show-build-log always ci/cirrus/$NAME.yml
rules:
- if: "$CIRRUS_GITHUB_REPO == null || $CIRRUS_API_TOKEN == null"
when: never
- if: '$LIBVIRT_JOB_OPTIONAL'
when: manual
allow_failure: true
- when: on_success

634
ci/gitlab/builds.yml Normal file
View File

@@ -0,0 +1,634 @@
# THIS FILE WAS AUTO-GENERATED
#
# $ lcitool manifest ci/manifest.yml
#
# https://gitlab.com/libvirt/libvirt-ci
# Native build jobs
x86_64-almalinux-8:
extends: .native_build_job
needs:
- job: x86_64-almalinux-8-container
optional: true
allow_failure: false
variables:
LIBVIRT_JOB_OPTIONAL: 1
NAME: almalinux-8
RPM: skip
x86_64-almalinux-8-clang:
extends: .native_build_job
needs:
- job: x86_64-almalinux-8-container
optional: true
allow_failure: false
variables:
CC: clang
NAME: almalinux-8
RPM: skip
x86_64-alpine-314:
extends: .native_build_job
needs:
- job: x86_64-alpine-314-container
optional: true
allow_failure: false
variables:
NAME: alpine-314
x86_64-alpine-315:
extends: .native_build_job
needs:
- job: x86_64-alpine-315-container
optional: true
allow_failure: false
variables:
LIBVIRT_JOB_OPTIONAL: 1
NAME: alpine-315
x86_64-alpine-edge:
extends: .native_build_job
needs:
- job: x86_64-alpine-edge-container
optional: true
allow_failure: true
variables:
NAME: alpine-edge
x86_64-centos-stream-8:
extends: .native_build_job
needs:
- job: x86_64-centos-stream-8-container
optional: true
allow_failure: false
variables:
NAME: centos-stream-8
artifacts:
expire_in: 1 day
paths:
- libvirt-rpms
x86_64-centos-stream-9:
extends: .native_build_job
needs:
- job: x86_64-centos-stream-9-container
optional: true
allow_failure: false
variables:
NAME: centos-stream-9
artifacts:
expire_in: 1 day
paths:
- libvirt-rpms
x86_64-debian-10:
extends: .native_build_job
needs:
- job: x86_64-debian-10-container
optional: true
allow_failure: false
variables:
NAME: debian-10
x86_64-debian-11:
extends: .native_build_job
needs:
- job: x86_64-debian-11-container
optional: true
allow_failure: false
variables:
LIBVIRT_JOB_OPTIONAL: 1
NAME: debian-11
x86_64-debian-11-clang:
extends: .native_build_job
needs:
- job: x86_64-debian-11-container
optional: true
allow_failure: false
variables:
NAME: debian-11
x86_64-debian-sid:
extends: .native_build_job
needs:
- job: x86_64-debian-sid-container
optional: true
allow_failure: true
variables:
NAME: debian-sid
x86_64-fedora-35:
extends: .native_build_job
needs:
- job: x86_64-fedora-35-container
optional: true
allow_failure: false
variables:
NAME: fedora-35
artifacts:
expire_in: 1 day
paths:
- libvirt-rpms
x86_64-fedora-36:
extends: .native_build_job
needs:
- job: x86_64-fedora-36-container
optional: true
allow_failure: false
variables:
NAME: fedora-36
artifacts:
expire_in: 1 day
paths:
- libvirt-rpms
x86_64-fedora-rawhide:
extends: .native_build_job
needs:
- job: x86_64-fedora-rawhide-container
optional: true
allow_failure: true
variables:
NAME: fedora-rawhide
x86_64-fedora-rawhide-clang:
extends: .native_build_job
needs:
- job: x86_64-fedora-rawhide-container
optional: true
allow_failure: true
variables:
CC: clang
NAME: fedora-rawhide
RPM: skip
x86_64-opensuse-leap-153:
extends: .native_build_job
needs:
- job: x86_64-opensuse-leap-153-container
optional: true
allow_failure: false
variables:
NAME: opensuse-leap-153
RPM: skip
x86_64-opensuse-tumbleweed:
extends: .native_build_job
needs:
- job: x86_64-opensuse-tumbleweed-container
optional: true
allow_failure: true
variables:
NAME: opensuse-tumbleweed
RPM: skip
x86_64-ubuntu-2004:
extends: .native_build_job
needs:
- job: x86_64-ubuntu-2004-container
optional: true
allow_failure: false
variables:
ASAN_OPTIONS: verify_asan_link_order=0
MESON_ARGS: -Db_lundef=false -Db_sanitize=address,undefined
NAME: ubuntu-2004
UBSAN_OPTIONS: print_stacktrace=1:halt_on_error=1
x86_64-ubuntu-2204:
extends: .native_build_job
needs:
- job: x86_64-ubuntu-2204-container
optional: true
allow_failure: false
variables:
LIBVIRT_JOB_OPTIONAL: 1
NAME: ubuntu-2204
x86_64-ubuntu-2204-clang:
extends: .native_build_job
needs:
- job: x86_64-ubuntu-2204-container
optional: true
allow_failure: false
variables:
CC: clang
MESON_ARGS: -Db_lundef=false -Db_sanitize=address,undefined
NAME: ubuntu-2204
UBSAN_OPTIONS: print_stacktrace=1:halt_on_error=1
# Cross build jobs
aarch64-debian-10:
extends: .cross_build_job
needs:
- job: aarch64-debian-10-container
optional: true
allow_failure: true
variables:
CROSS: aarch64
LIBVIRT_JOB_OPTIONAL: 1
NAME: debian-10
armv6l-debian-10:
extends: .cross_build_job
needs:
- job: armv6l-debian-10-container
optional: true
allow_failure: true
variables:
CROSS: armv6l
LIBVIRT_JOB_OPTIONAL: 1
NAME: debian-10
armv7l-debian-10:
extends: .cross_build_job
needs:
- job: armv7l-debian-10-container
optional: true
allow_failure: false
variables:
CROSS: armv7l
NAME: debian-10
i686-debian-10:
extends: .cross_build_job
needs:
- job: i686-debian-10-container
optional: true
allow_failure: true
variables:
CROSS: i686
LIBVIRT_JOB_OPTIONAL: 1
NAME: debian-10
mips-debian-10:
extends: .cross_build_job
needs:
- job: mips-debian-10-container
optional: true
allow_failure: true
variables:
CROSS: mips
LIBVIRT_JOB_OPTIONAL: 1
NAME: debian-10
mips64el-debian-10:
extends: .cross_build_job
needs:
- job: mips64el-debian-10-container
optional: true
allow_failure: true
variables:
CROSS: mips64el
LIBVIRT_JOB_OPTIONAL: 1
NAME: debian-10
mipsel-debian-10:
extends: .cross_build_job
needs:
- job: mipsel-debian-10-container
optional: true
allow_failure: true
variables:
CROSS: mipsel
LIBVIRT_JOB_OPTIONAL: 1
NAME: debian-10
ppc64le-debian-10:
extends: .cross_build_job
needs:
- job: ppc64le-debian-10-container
optional: true
allow_failure: true
variables:
CROSS: ppc64le
LIBVIRT_JOB_OPTIONAL: 1
NAME: debian-10
s390x-debian-10:
extends: .cross_build_job
needs:
- job: s390x-debian-10-container
optional: true
allow_failure: true
variables:
CROSS: s390x
LIBVIRT_JOB_OPTIONAL: 1
NAME: debian-10
aarch64-debian-11:
extends: .cross_build_job
needs:
- job: aarch64-debian-11-container
optional: true
allow_failure: false
variables:
CROSS: aarch64
LIBVIRT_JOB_OPTIONAL: 1
NAME: debian-11
armv6l-debian-11:
extends: .cross_build_job
needs:
- job: armv6l-debian-11-container
optional: true
allow_failure: false
variables:
CROSS: armv6l
LIBVIRT_JOB_OPTIONAL: 1
NAME: debian-11
armv7l-debian-11:
extends: .cross_build_job
needs:
- job: armv7l-debian-11-container
optional: true
allow_failure: false
variables:
CROSS: armv7l
LIBVIRT_JOB_OPTIONAL: 1
NAME: debian-11
i686-debian-11:
extends: .cross_build_job
needs:
- job: i686-debian-11-container
optional: true
allow_failure: false
variables:
CROSS: i686
LIBVIRT_JOB_OPTIONAL: 1
NAME: debian-11
mips64el-debian-11:
extends: .cross_build_job
needs:
- job: mips64el-debian-11-container
optional: true
allow_failure: false
variables:
CROSS: mips64el
LIBVIRT_JOB_OPTIONAL: 1
NAME: debian-11
mipsel-debian-11:
extends: .cross_build_job
needs:
- job: mipsel-debian-11-container
optional: true
allow_failure: false
variables:
CROSS: mipsel
LIBVIRT_JOB_OPTIONAL: 1
NAME: debian-11
ppc64le-debian-11:
extends: .cross_build_job
needs:
- job: ppc64le-debian-11-container
optional: true
allow_failure: false
variables:
CROSS: ppc64le
LIBVIRT_JOB_OPTIONAL: 1
NAME: debian-11
s390x-debian-11:
extends: .cross_build_job
needs:
- job: s390x-debian-11-container
optional: true
allow_failure: false
variables:
CROSS: s390x
LIBVIRT_JOB_OPTIONAL: 1
NAME: debian-11
aarch64-debian-sid:
extends: .cross_build_job
needs:
- job: aarch64-debian-sid-container
optional: true
allow_failure: false
variables:
CROSS: aarch64
LIBVIRT_JOB_OPTIONAL: 1
NAME: debian-sid
armv6l-debian-sid:
extends: .cross_build_job
needs:
- job: armv6l-debian-sid-container
optional: true
allow_failure: false
variables:
CROSS: armv6l
LIBVIRT_JOB_OPTIONAL: 1
NAME: debian-sid
armv7l-debian-sid:
extends: .cross_build_job
needs:
- job: armv7l-debian-sid-container
optional: true
allow_failure: false
variables:
CROSS: armv7l
LIBVIRT_JOB_OPTIONAL: 1
NAME: debian-sid
i686-debian-sid:
extends: .cross_build_job
needs:
- job: i686-debian-sid-container
optional: true
allow_failure: false
variables:
CROSS: i686
LIBVIRT_JOB_OPTIONAL: 1
NAME: debian-sid
mips64el-debian-sid:
extends: .cross_build_job
needs:
- job: mips64el-debian-sid-container
optional: true
allow_failure: false
variables:
CROSS: mips64el
LIBVIRT_JOB_OPTIONAL: 1
NAME: debian-sid
mipsel-debian-sid:
extends: .cross_build_job
needs:
- job: mipsel-debian-sid-container
optional: true
allow_failure: false
variables:
CROSS: mipsel
LIBVIRT_JOB_OPTIONAL: 1
NAME: debian-sid
ppc64le-debian-sid:
extends: .cross_build_job
needs:
- job: ppc64le-debian-sid-container
optional: true
allow_failure: false
variables:
CROSS: ppc64le
LIBVIRT_JOB_OPTIONAL: 1
NAME: debian-sid
s390x-debian-sid:
extends: .cross_build_job
needs:
- job: s390x-debian-sid-container
optional: true
allow_failure: false
variables:
CROSS: s390x
LIBVIRT_JOB_OPTIONAL: 1
NAME: debian-sid
mingw32-fedora-36:
extends: .cross_build_job
needs:
- job: mingw32-fedora-36-container
optional: true
allow_failure: false
variables:
CROSS: mingw32
LIBVIRT_JOB_OPTIONAL: 1
NAME: fedora-36
mingw64-fedora-36:
extends: .cross_build_job
needs:
- job: mingw64-fedora-36-container
optional: true
allow_failure: false
variables:
CROSS: mingw64
NAME: fedora-36
mingw32-fedora-rawhide:
extends: .cross_build_job
needs:
- job: mingw32-fedora-rawhide-container
optional: true
allow_failure: true
variables:
CROSS: mingw32
NAME: fedora-rawhide
mingw64-fedora-rawhide:
extends: .cross_build_job
needs:
- job: mingw64-fedora-rawhide-container
optional: true
allow_failure: true
variables:
CROSS: mingw64
LIBVIRT_JOB_OPTIONAL: 1
NAME: fedora-rawhide
# Native cirrus build jobs
x86_64-freebsd-12:
extends: .cirrus_build_job
needs: []
allow_failure: false
variables:
CIRRUS_VM_IMAGE_NAME: freebsd-12-3
CIRRUS_VM_IMAGE_SELECTOR: image_family
CIRRUS_VM_INSTANCE_TYPE: freebsd_instance
INSTALL_COMMAND: pkg install -y
NAME: freebsd-12
UPDATE_COMMAND: pkg update
UPGRADE_COMMAND: pkg upgrade -y
x86_64-freebsd-13:
extends: .cirrus_build_job
needs: []
allow_failure: false
variables:
CIRRUS_VM_IMAGE_NAME: freebsd-13-0
CIRRUS_VM_IMAGE_SELECTOR: image_family
CIRRUS_VM_INSTANCE_TYPE: freebsd_instance
INSTALL_COMMAND: pkg install -y
NAME: freebsd-13
UPDATE_COMMAND: pkg update
UPGRADE_COMMAND: pkg upgrade -y
x86_64-macos-11:
extends: .cirrus_build_job
needs: []
allow_failure: false
variables:
CIRRUS_VM_IMAGE_NAME: big-sur-base
CIRRUS_VM_IMAGE_SELECTOR: image
CIRRUS_VM_INSTANCE_TYPE: osx_instance
INSTALL_COMMAND: brew install
NAME: macos-11
PATH_EXTRA: /usr/local/opt/ccache/libexec:/usr/local/opt/gettext/bin:/usr/local/opt/libpcap/bin:/usr/local/opt/libxslt/bin:/usr/local/opt/rpcgen/bin
PKG_CONFIG_PATH: /usr/local/opt/curl/lib/pkgconfig:/usr/local/opt/libpcap/lib/pkgconfig:/usr/local/opt/libxml2/lib/pkgconfig:/usr/local/opt/ncurses/lib/pkgconfig:/usr/local/opt/readline/lib/pkgconfig
UPDATE_COMMAND: brew update
UPGRADE_COMMAND: brew upgrade

View File

@@ -0,0 +1,55 @@
# THIS FILE WAS AUTO-GENERATED
#
# $ lcitool manifest ci/manifest.yml
#
# https://gitlab.com/libvirt/libvirt-ci
# For upstream
#
# - Push to default branch:
# -> rebuild if dockerfile changed, no cache
# - Otherwise
# -> rebuild if LIBVIRT_CI_CONTAINERS=1, no cache,
# to pick up new published distro packages or
# recover from deleted tag
#
# For forks
# - Always rebuild, with cache
#
.container_job:
image: docker:stable
stage: containers
needs: []
services:
- docker:dind
before_script:
- export TAG="$CI_REGISTRY_IMAGE/ci-$NAME:latest"
- export COMMON_TAG="$CI_REGISTRY/libvirt/libvirt/ci-$NAME:latest"
- docker info
- docker login "$CI_REGISTRY" -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD"
script:
- if test $CI_PROJECT_NAMESPACE = "libvirt";
then
docker build --tag "$TAG" -f "ci/containers/$NAME.Dockerfile" ci/containers ;
else
docker pull "$TAG" || docker pull "$COMMON_TAG" || true ;
docker build --cache-from "$TAG" --cache-from "$COMMON_TAG" --tag "$TAG" -f "ci/containers/$NAME.Dockerfile" ci/containers ;
fi
- docker push "$TAG"
after_script:
- docker logout
rules:
- if: '$CI_PROJECT_NAMESPACE == "libvirt" && $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
when: on_success
changes:
- ci/gitlab/container-templates.yml
- ci/containers/$NAME.Dockerfile
- if: '$CI_PROJECT_NAMESPACE == "libvirt" && $LIBVIRT_CI_CONTAINERS == "1"'
when: on_success
- if: '$CI_PROJECT_NAMESPACE == "libvirt"'
when: never
- if: '$LIBVIRT_JOB_OPTIONAL'
when: manual
allow_failure: true
- when: on_success

341
ci/gitlab/containers.yml Normal file
View File

@@ -0,0 +1,341 @@
# THIS FILE WAS AUTO-GENERATED
#
# $ lcitool manifest ci/manifest.yml
#
# https://gitlab.com/libvirt/libvirt-ci
# Native container jobs
x86_64-almalinux-8-container:
extends: .container_job
allow_failure: false
variables:
NAME: almalinux-8
x86_64-alpine-314-container:
extends: .container_job
allow_failure: false
variables:
NAME: alpine-314
x86_64-alpine-315-container:
extends: .container_job
allow_failure: false
variables:
NAME: alpine-315
x86_64-alpine-edge-container:
extends: .container_job
allow_failure: true
variables:
NAME: alpine-edge
x86_64-centos-stream-8-container:
extends: .container_job
allow_failure: false
variables:
NAME: centos-stream-8
x86_64-centos-stream-9-container:
extends: .container_job
allow_failure: false
variables:
NAME: centos-stream-9
x86_64-debian-10-container:
extends: .container_job
allow_failure: false
variables:
NAME: debian-10
x86_64-debian-11-container:
extends: .container_job
allow_failure: false
variables:
NAME: debian-11
x86_64-debian-sid-container:
extends: .container_job
allow_failure: true
variables:
NAME: debian-sid
x86_64-fedora-35-container:
extends: .container_job
allow_failure: false
variables:
NAME: fedora-35
x86_64-fedora-36-container:
extends: .container_job
allow_failure: false
variables:
NAME: fedora-36
x86_64-fedora-rawhide-container:
extends: .container_job
allow_failure: true
variables:
NAME: fedora-rawhide
x86_64-opensuse-leap-153-container:
extends: .container_job
allow_failure: false
variables:
NAME: opensuse-leap-153
x86_64-opensuse-tumbleweed-container:
extends: .container_job
allow_failure: true
variables:
NAME: opensuse-tumbleweed
x86_64-ubuntu-2004-container:
extends: .container_job
allow_failure: false
variables:
NAME: ubuntu-2004
x86_64-ubuntu-2204-container:
extends: .container_job
allow_failure: false
variables:
NAME: ubuntu-2204
# Cross container jobs
aarch64-debian-10-container:
extends: .container_job
allow_failure: true
variables:
NAME: debian-10-cross-aarch64
armv6l-debian-10-container:
extends: .container_job
allow_failure: true
variables:
NAME: debian-10-cross-armv6l
armv7l-debian-10-container:
extends: .container_job
allow_failure: false
variables:
NAME: debian-10-cross-armv7l
i686-debian-10-container:
extends: .container_job
allow_failure: true
variables:
NAME: debian-10-cross-i686
mips-debian-10-container:
extends: .container_job
allow_failure: true
variables:
NAME: debian-10-cross-mips
mips64el-debian-10-container:
extends: .container_job
allow_failure: true
variables:
NAME: debian-10-cross-mips64el
mipsel-debian-10-container:
extends: .container_job
allow_failure: true
variables:
NAME: debian-10-cross-mipsel
ppc64le-debian-10-container:
extends: .container_job
allow_failure: true
variables:
NAME: debian-10-cross-ppc64le
s390x-debian-10-container:
extends: .container_job
allow_failure: true
variables:
NAME: debian-10-cross-s390x
aarch64-debian-11-container:
extends: .container_job
allow_failure: false
variables:
LIBVIRT_JOB_OPTIONAL: 1
NAME: debian-11-cross-aarch64
armv6l-debian-11-container:
extends: .container_job
allow_failure: false
variables:
LIBVIRT_JOB_OPTIONAL: 1
NAME: debian-11-cross-armv6l
armv7l-debian-11-container:
extends: .container_job
allow_failure: false
variables:
LIBVIRT_JOB_OPTIONAL: 1
NAME: debian-11-cross-armv7l
i686-debian-11-container:
extends: .container_job
allow_failure: false
variables:
LIBVIRT_JOB_OPTIONAL: 1
NAME: debian-11-cross-i686
mips64el-debian-11-container:
extends: .container_job
allow_failure: false
variables:
LIBVIRT_JOB_OPTIONAL: 1
NAME: debian-11-cross-mips64el
mipsel-debian-11-container:
extends: .container_job
allow_failure: false
variables:
LIBVIRT_JOB_OPTIONAL: 1
NAME: debian-11-cross-mipsel
ppc64le-debian-11-container:
extends: .container_job
allow_failure: false
variables:
LIBVIRT_JOB_OPTIONAL: 1
NAME: debian-11-cross-ppc64le
s390x-debian-11-container:
extends: .container_job
allow_failure: false
variables:
LIBVIRT_JOB_OPTIONAL: 1
NAME: debian-11-cross-s390x
aarch64-debian-sid-container:
extends: .container_job
allow_failure: false
variables:
LIBVIRT_JOB_OPTIONAL: 1
NAME: debian-sid-cross-aarch64
armv6l-debian-sid-container:
extends: .container_job
allow_failure: false
variables:
LIBVIRT_JOB_OPTIONAL: 1
NAME: debian-sid-cross-armv6l
armv7l-debian-sid-container:
extends: .container_job
allow_failure: false
variables:
LIBVIRT_JOB_OPTIONAL: 1
NAME: debian-sid-cross-armv7l
i686-debian-sid-container:
extends: .container_job
allow_failure: false
variables:
LIBVIRT_JOB_OPTIONAL: 1
NAME: debian-sid-cross-i686
mips64el-debian-sid-container:
extends: .container_job
allow_failure: false
variables:
LIBVIRT_JOB_OPTIONAL: 1
NAME: debian-sid-cross-mips64el
mipsel-debian-sid-container:
extends: .container_job
allow_failure: false
variables:
LIBVIRT_JOB_OPTIONAL: 1
NAME: debian-sid-cross-mipsel
ppc64le-debian-sid-container:
extends: .container_job
allow_failure: false
variables:
LIBVIRT_JOB_OPTIONAL: 1
NAME: debian-sid-cross-ppc64le
s390x-debian-sid-container:
extends: .container_job
allow_failure: false
variables:
LIBVIRT_JOB_OPTIONAL: 1
NAME: debian-sid-cross-s390x
mingw32-fedora-36-container:
extends: .container_job
allow_failure: false
variables:
NAME: fedora-36-cross-mingw32
mingw64-fedora-36-container:
extends: .container_job
allow_failure: false
variables:
NAME: fedora-36-cross-mingw64
mingw32-fedora-rawhide-container:
extends: .container_job
allow_failure: true
variables:
NAME: fedora-rawhide-cross-mingw32
mingw64-fedora-rawhide-container:
extends: .container_job
allow_failure: true
variables:
NAME: fedora-rawhide-cross-mingw64

View File

@@ -0,0 +1,18 @@
# THIS FILE WAS AUTO-GENERATED
#
# $ lcitool manifest ci/manifest.yml
#
# https://gitlab.com/libvirt/libvirt-ci
check-dco:
stage: sanity_checks
needs: []
image: registry.gitlab.com/libvirt/libvirt-ci/check-dco:master
script:
- /check-dco libvirt
except:
variables:
- $CI_PROJECT_NAMESPACE == 'libvirt'
variables:
GIT_DEPTH: 1000

106
ci/integration-template.yml Normal file
View File

@@ -0,0 +1,106 @@
.qemu-build-template: &qemu-build-template
- git clone --depth 1 https://gitlab.com/qemu-project/qemu.git
- cd qemu
#
# inspired by upstream QEMU's buildtest-template.yml
- export JOBS="$(expr $(nproc) + 1)"
- mkdir build
- cd build
- ../configure --prefix=/usr
--enable-werror
--disable-tcg
--disable-docs
--target-list=x86_64-softmmu || (cat config.log meson-logs/meson-log.txt && exit 1)
- make -j"$JOBS"
- if test -n "$MAKE_CHECK_ARGS";
then
make -j"$JOBS" check-build;
fi
# we need the following since the fix for CVE-2022-24765 now causes a fatal
# error if a user issues a git command from within a directory owned by some
# other user
- sudo git config --global --add safe.directory "$SCRATCH_DIR/qemu"
- sudo make install
.install-deps: &install-deps
- sudo dnf install -y libvirt-rpms/* libvirt-perl-rpms/*
- sudo pip3 install --prefix=/usr avocado-framework
.enable-core-dumps: &enable-core-dumps
- sudo sh -c "echo DefaultLimitCORE=infinity >> /etc/systemd/system.conf" # Explicitly allow storing cores globally
- sudo systemctl daemon-reexec # need to reexec systemd after changing config
.enable-libvirt-debugging: &enable-libvirt-debugging
- source /etc/os-release # in order to query the vendor-provided variables
- if test "$ID" = "centos" && test "$VERSION_ID" -lt 9 ||
test "$ID" = "fedora" && test "$VERSION_ID" -lt 35;
then
DAEMONS="libvirtd virtlogd virtlockd";
else
DAEMONS="virtproxyd virtqemud virtinterfaced virtsecretd virtstoraged virtnwfilterd virtnodedevd virtlogd virtlockd";
fi
- for daemon in $DAEMONS;
do
LOG_OUTPUTS="1:file:/var/log/libvirt/${daemon}.log";
LOG_FILTERS="3:remote 4:event 3:util.json 3:util.object 3:util.dbus 3:util.netlink 3:node_device 3:rpc 3:access 1:*";
sudo augtool set /files/etc/libvirt/${daemon}.conf/log_filters "$LOG_FILTERS" &>/dev/null;
sudo augtool set /files/etc/libvirt/${daemon}.conf/log_outputs "$LOG_OUTPUTS" &>/dev/null;
sudo systemctl --quiet stop ${daemon}.service;
sudo systemctl restart ${daemon}.socket;
done
.collect-logs: &collect-logs
- mkdir logs
- test -e "$SCRATCH_DIR"/avocado && sudo mv "$SCRATCH_DIR"/avocado/latest/test-results logs/avocado;
- sudo coredumpctl info --no-pager > logs/coredumpctl.txt
- sudo mv /var/log/libvirt logs/libvirt
- sudo chown -R $(whoami):$(whoami) logs
# rename all Avocado stderr/stdout logs to *.log so that GitLab's web UI doesn't mangle the MIME type
- find logs/avocado/ -type f ! -name "*.log" -exec
sh -c 'DIR=$(dirname {}); NAME=$(basename {}); mv $DIR/$NAME{,.log}' \;
.integration_tests:
stage: integration_tests
before_script:
- mkdir "$SCRATCH_DIR"
- *install-deps
- *enable-core-dumps
- *enable-libvirt-debugging
- sudo virsh net-start default &>/dev/null || true;
script:
- cd "$SCRATCH_DIR"
- git clone --depth 1 https://gitlab.com/libvirt/libvirt-tck.git
- cd libvirt-tck
- sudo avocado --config avocado.config run --job-results-dir "$SCRATCH_DIR"/avocado
after_script:
- test "$CI_JOB_STATUS" = "success" && exit 0;
- *collect-logs
variables:
SCRATCH_DIR: "/tmp/scratch"
artifacts:
name: logs
paths:
- logs
when: on_failure
rules:
- if: '$LIBVIRT_CI_INTEGRATION'
when: on_success
- when: never
# YAML anchors don't work with Shell conditions so we can't use a variable
# to conditionally build+install QEMU from source.
# Instead, create a new test job template for this scenario.
.integration_tests_upstream_qemu:
extends: .integration_tests
before_script:
- !reference [.integration_tests, before_script]
- cd "$SCRATCH_DIR"
- *qemu-build-template
- sudo restorecon -R /usr

View File

@@ -1,55 +1,5 @@
.integration_tests:
stage: integration_tests
before_script:
- mkdir "$SCRATCH_DIR"
- sudo sh -c "echo DefaultLimitCORE=infinity >> /etc/systemd/system.conf" # Explicitly allow storing cores globally
- sudo systemctl daemon-reexec # need to reexec systemd after changing config
- sudo dnf install -y libvirt-rpms/* libvirt-perl-rpms/*
- sudo pip3 install --prefix=/usr avocado-framework
- source /etc/os-release # in order to query the vendor-provided variables
- if test "$ID" = "centos" && test "$VERSION_ID" -lt 9 ||
test "$ID" = "fedora" && test "$VERSION_ID" -lt 35;
then
DAEMONS="libvirtd virtlogd virtlockd";
else
DAEMONS="virtproxyd virtqemud virtinterfaced virtsecretd virtstoraged virtnwfilterd virtnodedevd virtlogd virtlockd";
fi
- for daemon in $DAEMONS;
do
LOG_OUTPUTS="1:file:/var/log/libvirt/${daemon}.log";
LOG_FILTERS="3:remote 4:event 3:util.json 3:util.object 3:util.dbus 3:util.netlink 3:node_device 3:rpc 3:access 1:*";
sudo augtool set /files/etc/libvirt/${daemon}.conf/log_filters "$LOG_FILTERS" &>/dev/null;
sudo augtool set /files/etc/libvirt/${daemon}.conf/log_outputs "$LOG_OUTPUTS" &>/dev/null;
sudo systemctl --quiet stop ${daemon}.service;
sudo systemctl restart ${daemon}.socket;
done
- sudo virsh net-start default &>/dev/null || true;
script:
- mkdir logs
- cd "$SCRATCH_DIR"
- git clone --depth 1 https://gitlab.com/libvirt/libvirt-tck.git
- cd libvirt-tck
- sudo avocado --config avocado.config run --job-results-dir "$SCRATCH_DIR"/avocado
after_script:
- test "$CI_JOB_STATUS" = "success" && exit 0;
- test -e "$SCRATCH_DIR"/avocado && sudo mv "$SCRATCH_DIR"/avocado/latest/test-results logs/avocado;
- sudo coredumpctl info --no-pager > logs/coredumpctl.txt
- sudo mv /var/log/libvirt logs/libvirt
- sudo chown -R $(whoami):$(whoami) logs
# rename all Avocado stderr/stdout logs to *.log so that GitLab's web UI doesn't mangle the MIME type
- find logs/avocado/ -type f ! -name "*.log" -exec
sh -c 'DIR=$(dirname {}); NAME=$(basename {}); mv $DIR/$NAME{,.log}' \;
variables:
SCRATCH_DIR: "/tmp/scratch"
artifacts:
name: logs
paths:
- logs
when: on_failure
rules:
- if: '$LIBVIRT_CI_INTEGRATION'
when: on_success
- when: never
include:
- 'ci/integration-template.yml'
centos-stream-8-tests:
extends: .integration_tests
@@ -83,22 +33,6 @@ centos-stream-9-tests:
tags:
- $LIBVIRT_CI_INTEGRATION_RUNNER_TAG
fedora-34-tests:
extends: .integration_tests
needs:
- x86_64-fedora-34
- project: libvirt/libvirt-perl
job: x86_64-fedora-34
ref: master
artifacts: true
variables:
# needed by libvirt-gitlab-executor
DISTRO: fedora-34
# can be overridden in forks to set a different runner tag
LIBVIRT_CI_INTEGRATION_RUNNER_TAG: redhat-vm-host
tags:
- $LIBVIRT_CI_INTEGRATION_RUNNER_TAG
fedora-35-tests:
extends: .integration_tests
needs:
@@ -114,3 +48,35 @@ fedora-35-tests:
LIBVIRT_CI_INTEGRATION_RUNNER_TAG: redhat-vm-host
tags:
- $LIBVIRT_CI_INTEGRATION_RUNNER_TAG
fedora-36-tests:
extends: .integration_tests
needs:
- x86_64-fedora-36
- project: libvirt/libvirt-perl
job: x86_64-fedora-36
ref: master
artifacts: true
variables:
# needed by libvirt-gitlab-executor
DISTRO: fedora-36
# can be overridden in forks to set a different runner tag
LIBVIRT_CI_INTEGRATION_RUNNER_TAG: redhat-vm-host
tags:
- $LIBVIRT_CI_INTEGRATION_RUNNER_TAG
fedora-36-upstream-qemu-tests:
extends: .integration_tests_upstream_qemu
needs:
- x86_64-fedora-36
- project: libvirt/libvirt-perl
job: x86_64-fedora-36
ref: master
artifacts: true
variables:
# needed by libvirt-gitlab-executor
DISTRO: fedora-36
# can be overridden in forks to set a different runner tag
LIBVIRT_CI_INTEGRATION_RUNNER_TAG: redhat-vm-host
tags:
- $LIBVIRT_CI_INTEGRATION_RUNNER_TAG

View File

@@ -9,6 +9,7 @@ targets:
almalinux-8:
jobs:
- arch: x86_64
builds: false
variables:
RPM: skip
@@ -20,7 +21,10 @@ targets:
alpine-314: x86_64
alpine-315: x86_64
alpine-315:
jobs:
- arch: x86_64
builds: false
alpine-edge:
jobs:
@@ -52,22 +56,26 @@ targets:
builds: false
- arch: armv6l
- arch: armv7l
allow-failure: true
builds: false
- arch: armv7l
- arch: i686
allow-failure: true
builds: false
- arch: mips
allow-failure: true
builds: false
- arch: mips64el
allow-failure: true
builds: false
- arch: mipsel
allow-failure: true
builds: false
- arch: ppc64le
allow-failure: true
@@ -80,34 +88,41 @@ targets:
debian-11:
jobs:
- arch: x86_64
builds: false
- arch: x86_64
suffix: -clang
- arch: aarch64
allow-failure: true
containers: false
builds: false
- arch: armv6l
allow-failure: true
containers: false
builds: false
- arch: armv7l
containers: false
builds: false
- arch: i686
allow-failure: true
containers: false
builds: false
- arch: mips64el
containers: false
builds: false
- arch: mipsel
allow-failure: true
containers: false
builds: false
- arch: ppc64le
containers: false
builds: false
- arch: s390x
allow-failure: true
containers: false
builds: false
debian-sid:
@@ -116,41 +131,36 @@ targets:
allow-failure: true
- arch: aarch64
allow-failure: true
containers: false
builds: false
- arch: armv6l
allow-failure: true
containers: false
builds: false
- arch: armv7l
allow-failure: true
containers: false
builds: false
- arch: i686
allow-failure: true
containers: false
builds: false
- arch: mips64el
allow-failure: true
containers: false
builds: false
- arch: mipsel
allow-failure: true
containers: false
builds: false
- arch: ppc64le
allow-failure: true
containers: false
builds: false
- arch: s390x
allow-failure: true
fedora-34:
jobs:
- arch: x86_64
artifacts:
expire_in: 1 day
paths:
- libvirt-rpms
containers: false
builds: false
fedora-35:
jobs:
@@ -160,8 +170,15 @@ targets:
paths:
- libvirt-rpms
fedora-36:
jobs:
- arch: x86_64
artifacts:
expire_in: 1 day
paths:
- libvirt-rpms
- arch: mingw32
allow-failure: true
builds: false
- arch: mingw64
@@ -217,6 +234,11 @@ targets:
MESON_ARGS: -Db_lundef=false -Db_sanitize=address,undefined
UBSAN_OPTIONS: print_stacktrace=1:halt_on_error=1
ubuntu-2204:
jobs:
- arch: x86_64
builds: false
- arch: x86_64
suffix: -clang
variables:

View File

@@ -27,7 +27,7 @@ wise thing to do in most cases. See the `connection URI <uri.html>`__
page for a full descriptions of the values allowed.
OnDevice the application obtains a
`virConnectPtr </html/libvirt-libvirt-host.html#virConnectPtr>`__
`virConnectPtr <html/libvirt-libvirt-host.html#virConnectPtr>`__
connection to the hypervisor it can then use it to manage the
hypervisor's available domains and related virtualization resources,
such as storage and networking. All those are exposed as first class

View File

@@ -143,30 +143,22 @@ Desktop applications
or text console associated with a virtual machine or container.
`qt-remote-viewer <https://f1ash.github.io/qt-virt-manager/#virtual-machines-viewer>`__
The Qt VNC/SPICE viewer for access to remote desktops or VMs.
`GNOME Boxes <https://gnomeboxes.org/>`__
A GNOME application to access virtual machines.
Infrastructure as a Service (IaaS)
----------------------------------
`Cracow Cloud One <http://cc1.ifj.edu.pl>`__
The CC1 system provides a complete solution for Private Cloud
Computing. An intuitive web access interface with an administration
module and simple installation procedure make it easy to benefit from
private Cloud Computing technology.
`Eucalyptus <https://github.com/eucalyptus/eucalyptus>`__
Eucalyptus is an on-premise Infrastructure as a Service cloud
software platform that is open source and AWS-compatible. Eucalyptus
uses libvirt virtualization API to directly interact with Xen and KVM
hypervisors.
`Nimbus <http://www.nimbusproject.org>`__
`Nimbus <https://www.nimbusproject.org/>`__
Nimbus is an open-source toolkit focused on providing
Infrastructure-as-a-Service (IaaS) capabilities to the scientific
community. It uses libvirt for communication with all KVM and Xen
virtual machines.
`Snooze <http://snooze.inria.fr>`__
Snooze is an open-source scalable, autonomic, and energy-efficient
virtual machine (VM) management framework for private clouds. It
integrates libvirt for VM monitoring, live migration, and life-cycle
management.
`OpenStack <https://www.openstack.org>`__
OpenStack is a "cloud operating system" usable for both public and
private clouds. Its various parts take care of compute, storage and
@@ -232,14 +224,14 @@ Monitoring
for each guest without installing collectd on the guest systems. For
a full description, please refer to the libvirt section in the
collectd.conf(5) manual page.
`Host sFlow <https://www.sflow.net/>`__
`Host sFlow <https://sflow.net/>`__
Host sFlow is a lightweight agent running on KVM hypervisors that
links to libvirt library and exports standardized cpu, memory,
network and disk metrics for all virtual machines.
`Munin <https://honk.sigxcpu.org/projects/libvirt/#munin>`__
The plugins provided by Guido Günther allow to monitor various things
like network and block I/O with
`Munin <http://munin.projects.linpro.no/>`__.
`Munin <https://munin-monitoring.org/>`__.
`Nagios-virt <https://people.redhat.com/rjones/nagios-virt/>`__
Nagios-virt is a configuration tool to add monitoring of your
virtualised domains to `Nagios <https://www.nagios.org/>`__. You can
@@ -256,12 +248,6 @@ Monitoring
Provisioning
------------
`Tivoli Provisioning Manager <https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/Tivoli+Provisioning+Manager>`__
Part of the IBM Tivoli family, Tivoli Provisioning Manager (TPM) is
an IT lifecycle automation product. It `uses
libvirt <http://publib.boulder.ibm.com/infocenter/tivihelp/v38r1/index.jsp?topic=/com.ibm.tivoli.tpm.apk.doc/libvirt_package.html>`__
for communication with virtualization hosts and guest domains.
`Foreman <https://theforeman.org>`__
Foreman is an open source web based application aimed to be a Single
Address For All Machines Life Cycle Management. Foreman:
@@ -331,6 +317,10 @@ Web applications
Secrets
- Create and launch VMs
- Configure VMs with easy panels or go pro and edit the VM's XML
`Cockpit <https://cockpit-project.org/>`__
Cockpit is a web-based graphical interface for servers. With
`cockpit-machines <https://github.com/cockpit-project/cockpit-machines>`__
it can create and manage virtual machines via libvirt.
Other
-----

View File

@@ -57,6 +57,6 @@ For information on using libvirt on **Windows** `please see the Windows
support page <windows.html>`__.
Support, requests or help for libvirt bindings are welcome on the
`mailing list <https://www.redhat.com/mailman/listinfo/libvir-list/>`__,
`mailing list <https://listman.redhat.com/mailman/listinfo/libvir-list/>`__,
as usual try to provide enough background information and make sure you
use recent version, see the `help page <bugs.html>`__.

View File

@@ -21,9 +21,9 @@ There are three mailing-lists:
**libvir-list@redhat.com** (for development)
Archives
https://www.redhat.com/archives/libvir-list
https://listman.redhat.com/archives/libvir-list
List info
https://www.redhat.com/mailman/listinfo/libvir-list
https://listman.redhat.com/mailman/listinfo/libvir-list
This is a high volume mailing list. It is a place for discussions about the
**development** of libvirt.
@@ -37,9 +37,9 @@ There are three mailing-lists:
**libvirt-users@redhat.com** (for users)
Archives
https://www.redhat.com/archives/libvirt-users
https://listman.redhat.com/archives/libvirt-users
List info
https://www.redhat.com/mailman/listinfo/libvirt-users
https://listman.redhat.com/mailman/listinfo/libvirt-users
This is a moderate volume mailing list. It is a place for discussions
involving libvirt **users**.
@@ -53,9 +53,9 @@ There are three mailing-lists:
**libvirt-announce@redhat.com** (for release notices)
Archives
https://www.redhat.com/archives/libvirt-announce
https://listman.redhat.com/archives/libvirt-announce
List info
https://www.redhat.com/mailman/listinfo/libvirt-announce
https://listman.redhat.com/mailman/listinfo/libvirt-announce
This is a low volume mailing list, with restricted posting, for announcements
of new libvirt releases.
@@ -80,7 +80,7 @@ Some of the libvirt developers may be found on IRC on the `OFTC
IRC <https://oftc.net>`__ network. Use the settings:
- server: irc.oftc.net
- port: 6667 (the usual IRC port)
- port: 6697 (the usual IRC TLS port)
- channel: #virt
NB There is no guarantee that someone will be watching or able to reply

View File

@@ -26,7 +26,7 @@ Deployment / operation
`Remote access <remote.html>`__
Enable remote access over TCP
`TLS certs <tlscerts.html>`__
`TLS certs <kbase/tlscerts.html>`__
Generate and deploy x509 certificates for TLS
`Authentication <auth.html>`__

View File

@@ -19,7 +19,7 @@ The hypervisor drivers currently supported by libvirt are:
- `LXC <drvlxc.html>`__ - Linux Containers
- `OpenVZ <drvopenvz.html>`__
- `QEMU <drvqemu.html>`__
- `QEMU/KVM/HVF <drvqemu.html>`__
- `Test <drvtest.html>`__ - Used for testing
- `VirtualBox <drvvbox.html>`__
- `VMware ESX <drvesx.html>`__

View File

@@ -9,7 +9,7 @@ The libvirt Microsoft Hyper-V driver can manage Hyper-V 2012 R2 and newer.
Project Links
-------------
- The `Microsoft Hyper-V <http://www.microsoft.com/hyper-v-server/>`__
- The `Microsoft Hyper-V <https://docs.microsoft.com/en-us/windows-server/virtualization/hyper-v/hyper-v-on-windows-server>`__
hypervisor
Connections to the Microsoft Hyper-V driver

View File

@@ -37,7 +37,7 @@ In order to separate processes inside a container from those in the primary
namespaces are compiled in. Libvirt currently requires the 'mount', 'ipc',
'pid', and 'uts' namespaces to be available. If separate network interfaces are
desired, then the 'net' namespace is required. If the guest configuration
declares a `UID or GID mapping <formatdomain.html#elementsOSContainer>`__, the
declares a `UID or GID mapping <formatdomain.html#container-boot>`__, the
'user' namespace will be enabled to apply these. **A suitably configured UID/GID
mapping is a pre-requisite to making containers secure, in the absence of sVirt
confinement.**
@@ -245,7 +245,7 @@ Systemd Socket Activation Integration
The libvirt LXC driver provides the ability to pass across pre-opened file
descriptors when starting LXC guests. This allows for libvirt LXC to support
systemd's `socket activation
capability <http://0pointer.de/blog/projects/socket-activated-containers.html>`__,
capability <https://0pointer.de/blog/projects/socket-activated-containers.html>`__,
where an incoming client connection in the host OS will trigger the startup of a
container, which runs another copy of systemd which gets passed the server
socket, and then activates the actual service handler in the container.

View File

@@ -20,7 +20,7 @@ Project Links
- The `KVM <https://www.linux-kvm.org/>`__ Linux hypervisor
- The `QEMU <https://wiki.qemu.org/Index.html>`__ emulator
- `Hypervisor.framework`<https://developer.apple.com/documentation/hypervisor>__` reference
- `Hypervisor.framework <https://developer.apple.com/documentation/hypervisor>`__ reference
Deployment pre-requisites
-------------------------
@@ -443,10 +443,16 @@ Converting from domain XML to QEMU args
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The ``virsh domxml-to-native`` provides a way to convert a guest description
using libvirt Domain XML, into a set of QEMU args that can be run manually. Note
that currently the command line formatted by libvirt is no longer suited for
manually running qemu as the configuration expects various resources and open
file descriptors passed to the process which are usually prepared by libvirtd.
using libvirt Domain XML, into a set of QEMU args that would be used by libvirt
to start the qemu process.
Note that currently the command line formatted by libvirt is no longer suited
for manually running qemu as the configuration expects various resources and
open file descriptors passed to the process which are usually prepared by
libvirtd as well as certain features being configured via the monitor.
The qemu arguments as returned by ``virsh domxml-to-native`` thus are not
trivially usable outside of libvirt.
Pass-through of arbitrary qemu commands
---------------------------------------

View File

@@ -37,7 +37,7 @@ were supplied). The following child elements and attributes are supported:
``server``
Present only for a pull mode backup. Contains the same attributes as the
```protocol`` element of a disk <formatdomain.html#elementsDisks>`__ attached
```protocol`` element of a disk <formatdomain.html#hard-drives-floppy-disks-cdroms>`__ attached
via NBD in the domain (such as transport, socket, name, port, or tls),
necessary to set up an NBD server that exposes the content of each disk at
the time the backup is started.
@@ -61,7 +61,7 @@ were supplied). The following child elements and attributes are supported:
``name``
A mandatory attribute which must match the ``<target dev='name'/>`` of
one of the `disk devices <formatdomain.html#elementsDisks>`__ specified
one of the `disk devices <formatdomain.html#hard-drives-floppy-disks-cdroms>`__ specified
for the domain at the time of the checkpoint.
``backup``
@@ -122,7 +122,7 @@ were supplied). The following child elements and attributes are supported:
file is not deleted after the backup but the contents of the file don't
make sense outside of the backup. The same applies for the block device
which must be formatted appropriately. Similarly to the domain
```disk`` <formatdomain.html#elementsDisks>`__ definition ``scratch``
```disk`` <formatdomain.html#hard-drives-floppy-disks-cdroms>`__ definition ``scratch``
and ``target`` can contain ``seclabel`` and/or ``encryption``
subelements to configure the corresponding properties.

View File

@@ -84,20 +84,20 @@ The ``<guest/>`` element will typically wrap up the following elements:
Size of CPU word in bits, for example 64.
``emulator``
Emulator (device model) path, for use in
`emulator <formatdomain.html#elementEmulator>`__ element of domain XML.
`emulator <formatdomain.html#devices>`__ element of domain XML.
``loader``
Loader path, for use in `loader <formatdomain.html#elementLoader>`__
Loader path, for use in `loader <formatdomain.html#bios-bootloader>`__
element of domain XML.
``machine``
Machine type, for use in
`machine <formatdomain.html#attributeOSTypeMachine>`__ attribute of
`machine <formatdomain.html#operating-system-booting>`__ attribute of
os/type element in domain XML. For example Xen supports ``xenfv`` for HVM,
``xenpv`` for PV, or ``xenpvh`` for PVH.
``domain``
The ``type`` attribute of this element specifies the type of hypervisor
required to run the domain. Use in
`type <formatdomain.html#attributeDomainType>`__ attribute of the domain
root element.
`type <formatdomain.html#element-and-attribute-overview>`__ attribute of
the domain root element.
``features``
This optional element encases possible features that can be used with a guest
of described type. Possible subelements are:

View File

@@ -69,7 +69,7 @@ The top-level ``domaincheckpoint`` element may contain the following elements:
``name``
A mandatory attribute which must match either the
``<target dev='name'/>`` or an unambiguous ``<source file='name'/>`` of
one of the `disk devices <formatdomain.html#elementsDisks>`__ specified
one of the `disk devices <formatdomain.html#hard-drives-floppy-disks-cdroms>`__ specified
for the domain at the time of the checkpoint.
``checkpoint``

File diff suppressed because it is too large Load Diff

View File

@@ -18,7 +18,7 @@ more recent to support VFIO, while legacy KVM is achievable just fine with older
qemus.
The main difference between
`virConnectGetCapabilities </html/libvirt-libvirt-host.html#virConnectGetCapabilities>`__
`virConnectGetCapabilities <html/libvirt-libvirt-host.html#virConnectGetCapabilities>`__
and the emulator capabilities API is, the former one aims more on the host
capabilities (e.g. NUMA topology, security models in effect, etc.) while the
latter one specializes on the hypervisor capabilities.
@@ -68,14 +68,14 @@ The root element that emulator capability XML document starts with has name
``path``
The full path to the emulator binary.
``domain``
Describes the `virtualization type <formatdomain.html#elements>`__ (or so
Describes the `virtualization type <formatdomain.html#element-and-attribute-overview>`__ (or so
called domain type).
``machine``
The domain's `machine type <formatdomain.html#elementsOSBIOS>`__. Since not
The domain's `machine type <formatdomain.html#bios-bootloader>`__. Since not
every hypervisor has a sense of machine types this element might be omitted
in such drivers.
``arch``
The domain's `architecture <formatdomain.html#elementsOSBIOS>`__.
The domain's `architecture <formatdomain.html#bios-bootloader>`__.
CPU Allocation
~~~~~~~~~~~~~~
@@ -98,7 +98,7 @@ BIOS bootloader
~~~~~~~~~~~~~~~
Sometimes users might want to tweak some BIOS knobs or use UEFI. For cases like
that, `os <formatdomain.html#elementsOSBIOS>`__ element exposes what values can
that, `os <formatdomain.html#bios-bootloader>`__ element exposes what values can
be passed to its children.
::
@@ -165,7 +165,7 @@ CPU configuration
~~~~~~~~~~~~~~~~~
The ``cpu`` element exposes options usable for configuring `guest
CPUs <formatdomain.html#elementsCPU>`__.
CPUs <formatdomain.html#cpu-model-and-topology>`__.
::
@@ -232,7 +232,7 @@ I/O Threads
~~~~~~~~~~~
The ``iothread`` elements indicates whether or not `I/O
threads <formatdomain.html#elementsIOThreadsAllocation>`__ are supported.
threads <formatdomain.html#iothreads-allocation>`__ are supported.
::
@@ -527,7 +527,7 @@ each of the elements or attributes. For example, the ``gic`` element has an
attribute ``version`` which can support the values ``2`` or ``3``.
For information about the purpose of each feature, see the `relevant
section <formatdomain.html#elementsFeatures>`__ in the domain XML documentation.
section <formatdomain.html#hypervisor-features>`__ in the domain XML documentation.
GIC capabilities
^^^^^^^^^^^^^^^^
@@ -568,7 +568,7 @@ s390-pv capability
Reports whether the hypervisor supports the Protected Virtualization. In order
to use Protected Virtualization with libvirt have a look at the `launchSecurity
element in the domain XML <formatdomain.html#launchSecurity>`__. For more
element in the domain XML <formatdomain.html#launch-security>`__. For more
details on the Protected Virtualization feature please see `Protected
Virtualization on s390 <kbase/s390_protected_virt.html>`__.
@@ -583,7 +583,7 @@ transparently encrypted with a key unique to that VM.
For more details on the SEV feature, please follow resources in the AMD
developer's document store. In order to use SEV with libvirt have a look at `SEV
in domain XML <formatdomain.html#launchSecurity>`__
in domain XML <formatdomain.html#launch-security>`__
``cbitpos``
When memory encryption is enabled, one of the physical address bits (aka the

View File

@@ -61,7 +61,7 @@ The first elements provide basic metadata about the virtual network.
The optional parameter ``trustGuestRxFilters`` can be used to set that
attribute of the same name for each domain interface connected to this
network ( :since:`since 1.2.10` ). See the `Network
interfaces <formatdomain.html#elementsNICS>`__ section of the domain XML
interfaces <formatdomain.html#network-interfaces>`__ section of the domain XML
documentation for more details. Note that an explicit setting of this
attribute in a portgroup or the individual domain interface will override the
setting in the network.
@@ -253,7 +253,7 @@ to the physical LAN (if at all).
interfaces to be used for a "direct" connection via macvtap using
macvtap's "bridge" mode (if the forward element has one or more
``<interface>`` subelements, :since:`Since 0.9.4` ) (see `Direct
attachment to physical interface <formatdomain.html#elementsNICSDirect>`__
attachment to physical interface <formatdomain.html#direct-attachment-to-physical-interface>`__
for descriptions of the various macvtap modes). libvirt doesn't attempt to
manage the bridge interface at all, thus the ``<bridge>`` element's
``stp`` and ``delay`` attributes are not allowed; no iptables rules, IP
@@ -599,7 +599,7 @@ as the 'default' portgroup for the network), and each portgroup has a name, as
well as various attributes and subelements associated with it. The currently
supported subelements are ``<bandwidth>`` (described in `Quality of service`_)
and ``<virtualport>`` (documented
`here <formatdomain.html#elementsNICSDirect>`__). If a domain interface
`here <formatdomain.html#direct-attachment-to-physical-interface>`__). If a domain interface
definition specifies a portgroup (by adding a ``portgroup`` attribute to the
``<source>`` subelement), that portgroup's info will be merged into the
interface's configuration. If no portgroup is given in the interface definition,
@@ -616,7 +616,7 @@ starting.
portgroups also support the optional parameter ``trustGuestRxFilters`` which can
be used to set that attribute of the same name for each domain interface using
this portgroup ( :since:`since 1.2.10` ). See the `Network
interfaces <formatdomain.html#elementsNICS>`__ section of the domain XML
interfaces <formatdomain.html#network-interfaces>`__ section of the domain XML
documentation for more details. Note that an explicit setting of this attribute
in the portgroup overrides the network-wide setting, and an explicit setting in
the individual domain interface will override the setting in the portgroup.

View File

@@ -98,7 +98,7 @@ The following elements are common to one or more of the plug types listed later
``virtualport``
The ``virtualport`` element describes metadata that needs to be provided to
the underlying network subsystem. It is described in the domain XML
`interface documentation <formatdomain.html#elementsNICS>`__.
`interface documentation <formatdomain.html#network-interfaces>`__.
Plugs
~~~~~
@@ -151,7 +151,7 @@ interface.
The ``dev`` attribute provides the name of the physical network interface to
which the port will be connected. The ``mode`` attribute describes how the
connection will be setup and takes the same values described in the `domain
XML <formatdomain.html#elementsNICSDirect>`__.
XML <formatdomain.html#direct-attachment-to-physical-interface>`__.
Host PCI
^^^^^^^^

View File

@@ -12,7 +12,7 @@ Node Device XML
There are several libvirt functions, all with the prefix ``virNodeDevice``,
which deal with management of host devices that can be handed to guests via
passthrough as <hostdev> elements in `the domain
XML <formatdomain.html#elementsHostDev>`__. These devices are represented as a
XML <formatdomain.html#host-device-assignment>`__. These devices are represented as a
hierarchy, where a device on a bus has a parent of the bus controller device;
the root of the hierarchy is the node named "computer".

View File

@@ -65,7 +65,7 @@ using ``virsh secret-set-value``.
The volume type secret can be supplied either in volume XML during creation of a
`storage volume <formatstorage.html#storage-volume-xml>`__ in order to provide
the passphrase to encrypt the volume or in domain XML
`disk device <formatdomain.html#elementsDisks>`__ in order to provide the
`disk device <formatdomain.html#hard-drives-floppy-disks-cdroms>`__ in order to provide the
passphrase to decrypt the volume, :since:`since 2.1.0` . An example follows:
::
@@ -101,7 +101,7 @@ This secret is associated with a Ceph RBD (rados block device). The
``<usage type='ceph'>`` element must contain a single ``name`` element that
specifies a usage name for the secret. The Ceph secret can then be used by UUID
or by this usage name via the ``<auth>`` element of a `disk
device <formatdomain.html#elementsDisks>`__ or a `storage pool
device <formatdomain.html#hard-drives-floppy-disks-cdroms>`__ or a `storage pool
(rbd) <formatstorage.html>`__. :since:`Since 0.9.7` . The following is an
example of the steps to be taken. First create a ceph-secret.xml file:
@@ -132,7 +132,7 @@ See `Setting secret values in virsh`_ on how to set the value of the secret
using ``virsh secret-set-value``.
The ceph secret can then be used by UUID or by the usage name via the ``<auth>``
element in a domain's `<disk> <formatdomain.html#elementsDisks>`__ element as
element in a domain's `<disk> <formatdomain.html#hard-drives-floppy-disks-cdroms>`__ element as
follows:
::
@@ -157,7 +157,7 @@ This secret is associated with an iSCSI target for CHAP authentication. The
``<usage type='iscsi'>`` element must contain a single ``target`` element that
specifies a usage name for the secret. The iSCSI secret can then be used by UUID
or by this usage name via the ``<auth>`` element of a `disk
device <formatdomain.html#elementsDisks>`__ or a `storage pool
device <formatdomain.html#hard-drives-floppy-disks-cdroms>`__ or a `storage pool
(iscsi) <formatstorage.html>`__. :since:`Since 1.0.4` . The following is an
example of the XML that may be used to generate a secret for iSCSI CHAP
authentication. Assume the following sample entry in an iSCSI authentication
@@ -207,7 +207,7 @@ See `Setting secret values in virsh`_ on how to set the value of the secret
using ``virsh secret-set-value``.
The iSCSI secret can then be used by UUID or by the usage name via the
``<auth>`` element in a domain's `<disk> <formatdomain.html#elementsDisks>`__
``<auth>`` element in a domain's `<disk> <formatdomain.html#hard-drives-floppy-disks-cdroms>`__
element as follows:
::
@@ -268,7 +268,7 @@ This secret is associated with a virtualized TPM (vTPM) and serves as a
passphrase for deriving a key from for encrypting the state of the vTPM. The
``<usage type='vtpm'>`` element must contain a single ``name`` element that
specifies a usage name for the secret. The vTPM secret can then be used by UUID
via the ``<encryption>`` element of a `tpm <formatdomain.html#elementsTpm>`__
via the ``<encryption>`` element of a `tpm <formatdomain.html#tpm-device>`__
when using an emulator. :since:`Since 5.6.0` . The following is an example of
the steps to be taken. First create a vtpm-secret.xml file:

View File

@@ -38,8 +38,9 @@ full system
Libvirt can manage all three types of snapshots. For now, VM state (memory)
snapshots are created only by the ``virDomainSave()``, ``virDomainSaveFlags``,
and ``virDomainManagedSave()`` functions, and restored via the
``virDomainRestore()``, ``virDomainRestoreFlags()``, ``virDomainCreate()``, and
``virDomainSaveParams`` and ``virDomainManagedSave()`` functions, and restored
via the ``virDomainRestore()``, ``virDomainRestoreFlags()``,
``virDomainRestoreParams``, ``virDomainCreate()``, and
``virDomainCreateWithFlags()`` functions (as well as via domain autostart). With
managed snapshots, libvirt tracks all information internally; with save images,
the user tracks the snapshot file, but libvirt provides functions such as
@@ -114,11 +115,11 @@ The top-level ``domainsnapshot`` element may contain the following elements:
This sub-element describes the snapshot properties of a specific disk.
The attribute ``name`` is mandatory, and must match either the ``<target
dev='name'/>`` (recommended) or an unambiguous ``<source file='name'/>``
of one of the `disk devices <formatdomain.html#elementsDisks>`__
of one of the `disk devices <formatdomain.html#hard-drives-floppy-disks-cdroms>`__
specified for the domain at the time of the snapshot. The attribute
``snapshot`` is optional, and the possible values are the same as the
``snapshot`` attribute for `disk devices
<formatdomain.html#elementsDisks>`__ (``no``, ``internal``, or
<formatdomain.html#hard-drives-floppy-disks-cdroms>`__ (``no``, ``internal``, or
``external``). Some hypervisors like ESX require that if specified, the
snapshot mode must not override any snapshot mode attached to the
corresponding domain disk, while others like qemu allow this field to
@@ -139,7 +140,7 @@ The top-level ``domainsnapshot`` element may contain the following elements:
overwrite the default ``file`` type. The ``type`` attribute along with
the format of the ``source`` sub-element is identical to the ``source``
element used in domain disk definitions. See the `disk devices
<formatdomain.html#elementsDisks>`__ section documentation for further
<formatdomain.html#hard-drives-floppy-disks-cdroms>`__ section documentation for further
information. Libvirt currently supports the ``type`` element in the qemu
driver and supported values are ``file``, ``block`` and ``network``
:since:`(since 1.2.2)`.
@@ -158,7 +159,7 @@ The top-level ``domainsnapshot`` element may contain the following elements:
The ``source`` element also may contain the ``seclabel`` element
(described in the `domain XML documentation
<formatdomain.html#seclabel>`__) which can be used to override the
<formatdomain.html#security-label>`__) which can be used to override the
domain security labeling policy for ``source``.
``driver``

View File

@@ -107,7 +107,7 @@ to a qemu VM using the qemu VM driver. A single
Examples
--------
Assuming a `luks volume type secret <formatsecret.html#VolumeUsageType>`__ is
Assuming a `luks volume type secret <formatsecret.html#usage-type-volume>`__ is
already defined, a simple example specifying use of the ``luks`` format for
either volume creation without a specific cipher being defined or as part of a
domain volume definition:

View File

@@ -176,12 +176,12 @@ capture have these properties:
contents are not also saved. Since creating an external snapshot
changes which disk image resource is in use by the guest, this API
can be coupled with
`virDomainBlockCommit() <html/libvirt-libvirt-domain.html#virDomainBlockCommit>`__
`virDomainBlockCommit() <../html/libvirt-libvirt-domain.html#virDomainBlockCommit>`__
to restore things back to the guest using its original disk image,
where a third-party tool can read the backing file prior to the live
commit. See also the `XML details <formatsnapshot.html>`__ used with
commit. See also the `XML details <../formatsnapshot.html>`__ used with
this command.
`virDomainFSFreeze <html/libvirt-libvirt-domain.html#virDomainFSFreeze>`__, `virDomainFSThaw <html/libvirt-libvirt-domain.html#virDomainFSThaw>`__
`virDomainFSFreeze <../html/libvirt-libvirt-domain.html#virDomainFSFreeze>`__, `virDomainFSThaw <../html/libvirt-libvirt-domain.html#virDomainFSThaw>`__
This pair of APIs does not directly capture guest state, but can be
used to coordinate with a trusted live guest that state capture is
about to happen, and therefore guest I/O should be quiesced so that
@@ -191,7 +191,7 @@ capture have these properties:
to these functions. Also, note that freezing guest I/O is only
possible with trusted guests running a guest agent, and that some
guests place maximum time limits on how long I/O can be frozen.
`virDomainCheckpointCreateXML <html/libvirt-libvirt-domain-checkpoint.html#virDomainCheckpointCreateXML>`__
`virDomainCheckpointCreateXML <../html/libvirt-libvirt-domain-checkpoint.html#virDomainCheckpointCreateXML>`__
This API does not actually capture guest state, rather it makes it
possible to track which portions of guest disks have changed between
a checkpoint and the current live execution of the guest. However,
@@ -201,9 +201,9 @@ capture have these properties:
at the creation of an external snapshot with
``virDomainSnapshotCreateXML2()``, since a second incremental backup
is most useful when using the checkpoint created during the first.
See also the `XML details <formatcheckpoint.html>`__ used with this
See also the `XML details <../formatcheckpoint.html>`__ used with this
command.
`virDomainBackupBegin <html/libvirt-libvirt-domain.html#virDomainBackupBegin>`__, `virDomainBackupEnd <html/libvirt-libvirt-domain.html#virDomainBackupEnd>`__
`virDomainBackupBegin <../html/libvirt-libvirt-domain.html#virDomainBackupBegin>`__
This API wraps approaches for capturing the state of disks of a
running guest, but does not track accompanying guest memory state.
The capture is consistent to the start of the operation, where the

View File

@@ -101,3 +101,12 @@ Internals
`RPC protocol & APIs <internals/rpc.html>`__
RPC protocol information and API / dispatch guide
`QEMU driver threading <internals/qemu-threads.html>`__
Basics of locking and threaded access to qemu driver primitives.
`QEMU migration internals <internals/qemu-migration.html>`__
Description of migration phases in the ``v2`` and ``v3`` migration protocol.
`QEMU monitor event handling <internals/qemu-event-handlers.html>`__
Brief outline how events emitted by qemu on the monitor are handlded.

View File

@@ -47,7 +47,7 @@ To work with event loop from our code we have plenty of APIs.
- ``virEventRemoveTimeout``: Unregisters a timer.
For more information on these APIs continue reading
`here <../html/libvirt-libvirt-event.html>`__.
`here <../../html/libvirt-libvirt-event.html>`__.
Worker pool
-----------

View File

@@ -5,6 +5,9 @@ docs_kbase_internals_files = [
'locking',
'migration',
'overview',
'qemu-event-handlers',
'qemu-migration',
'qemu-threads',
'rpc',
]

View File

@@ -7,7 +7,7 @@ Libvirt migration internals
Migration is a multi-step operation with at least two distinct actors,
the source and the destination libvirtd daemons, and a lot of failure
points. This document describes the basic migration workflow in the
code level, as a way to complement `the base migration docs <../migration.html>`_
code level, as a way to complement `the base migration docs <../../migration.html>`_
and help developers to get up to speed quicker with the code.
In this document, unless stated otherwise, these conventions are followed:

View File

@@ -1,10 +1,14 @@
===================
QEMU event handlers
===================
This is a short description of how an example qemu event can be used
to trigger handler code that is called from the context of a worker
thread, rather than directly from the event thread (which should
itself never block, and can't do things like send qemu monitor
commands, etc).
In this case (the NIC_RX_FILTER_CHANGED event) the event is handled by
In this case (the ``NIC_RX_FILTER_CHANGED`` event) the event is handled by
calling a qemu monitor command to get the current RX filter state,
then executing ioctls/sending netlink messages on the host in response
to changes in that filter state. This event is *not* propagated to the
@@ -14,39 +18,39 @@ to the end of this document, please do!).
Hopefully this narration will be helpful when adding handlers for
other qemu events in the future.
----------------------------------------------------
QEMU monitor events
-------------------
Any event emitted by qemu is received by
qemu_monitor_json.c:qemuMonitorJSONIOProcessEvent(). It looks up the
event by name in the table eventHandlers (in the same file), which
``qemu_monitor_json.c:qemuMonitorJSONIOProcessEvent()``. It looks up the
event by name in the table ``eventHandlers`` (in the same file), which
should have an entry like this for each event that libvirt
understands:
understands::
{ "NIC_RX_FILTER_CHANGED", qemuMonitorJSONHandleNicRxFilterChanged, },
NB: This table is searched with bsearch, so it *must* be
alphabetically sorted.
NB: This table is searched with bsearch, so it *must* be alphabetically sorted.
qemuMonitorJSONIOProcessEvent calls the function listed in
eventHandlers, e.g.:
``qemuMonitorJSONIOProcessEvent`` calls the function listed in
``eventHandlers``, e.g.::
qemu_monitor_json.c:qemuMonitorJSONHandleNicRxFilterChanged()
which extracts any required data from the JSON ("name" in this case),
and calls:
and calls::
qemu_monitor.c:qemuMonitorEmitNicRxFilterChanged()
which uses QEMU_MONITOR_CALLBACK() to call
mon->cb->domainNicRxFilterChanged(). domainNicRxFilterChanged is one
in a list of function pointers in qemu_process.c:monitorCallbacks. For
our example, it has been set to:
which uses ``QEMU_MONITOR_CALLBACK()`` to call
``mon->cb->domainNicRxFilterChanged()``. ``domainNicRxFilterChanged`` is one
in a list of function pointers in ``qemu_process.c:monitorCallbacks``. For
our example, it has been set to::
qemuProcessHandleNicRxFilterChanged()
This function allocates a qemuProcessEvent object, and queues an event
named QEMU_PROCESS_EVENT_NIC_RX_FILTER_CHANGED (you'll want to add an
enum to qemu_domain.h:qemuProcessEventType for your event) for a
This function allocates a ``qemuProcessEvent`` object, and queues an event
named ``QEMU_PROCESS_EVENT_NIC_RX_FILTER_CHANGED`` (you'll want to add an
enum to ``qemu_domain.h:qemuProcessEventType`` for your event) for a
worker thread to handle.
(Everything up to this point has happened in the context of the thread
@@ -56,17 +60,17 @@ monitor. Everything after this is handled in the context of a worker
thread, so it has more freedom to make qemu monitor calls and blocking
system calls on the host.)
When the worker thread gets the event, it calls
When the worker thread gets the event, it calls::
qemuProcessEventHandler()
which switches on the eventType (in our example,
QEMU_PROCESS_EVENT_NIC_RX_FILTER_CHANGED) and decides to call:
``QEMU_PROCESS_EVENT_NIC_RX_FILTER_CHANGED``) and decides to call::
processNicRxFilterChangedEvent()
and *that* is where the actual work will be done (and any
event-specific memory allocated during qemuProcessHandleXXX() will be
event-specific memory allocated during ``qemuProcessHandleXXX()`` will be
freed). Note that this function must do proper refcounting of the
domain object, and assure that the domain is still active prior to
performing any operations - it is possible that the domain could have

View File

@@ -1,84 +1,89 @@
QEMU Migration Phases
=====================
QEMU Migration Phases
=====================
.. contents::
QEMU supports only migration protocols 2 and 3 (1 was lacking too many
steps). Repeating the protocol sequences from libvirt.c:
Sequence v2:
Migration protocol v2 API Sequence
----------------------------------
Src: DumpXML
**Src**: ``DumpXML``
- Generate XML to pass to dst
Dst: Prepare
**Dst**: ``Prepare``
- Get ready to accept incoming VM
- Generate optional cookie to pass to src
Src: Perform
**Src**: ``Perform``
- Start migration and wait for send completion
- Kill off VM if successful, resume if failed
Dst: Finish
**Dst**: ``Finish``
- Wait for recv completion and check status
- Kill off VM if unsuccessful
Sequence v3:
Migration protocol v3 API Sequence
----------------------------------
Src: Begin
**Src**: ``Begin``
- Generate XML to pass to dst
- Generate optional cookie to pass to dst
Dst: Prepare
**Dst**: ``Prepare``
- Get ready to accept incoming VM
- Generate optional cookie to pass to src
Src: Perform
**Src**: ``Perform``
- Start migration and wait for send completion
- Generate optional cookie to pass to dst
Dst: Finish
**Dst**: ``Finish``
- Wait for recv completion and check status
- Kill off VM if failed, resume if success
- Generate optional cookie to pass to src
Src: Confirm
**Src**: ``Confirm``
- Kill off VM if success, resume if failed
QEMU Migration Locking Rules
============================
QEMU Migration Locking Rules
============================
Migration is a complicated beast which may span across several APIs on both
source and destination side and we need to keep the domain we are migrating in
a consistent state during the whole process.
To avoid anyone from changing the domain in the middle of migration we need to
keep MIGRATION_OUT job active during migration from Begin to Confirm on the
source side and MIGRATION_IN job has to be active from Prepare to Finish on
the destination side.
keep ``MIGRATION_OUT`` job active during migration from ``Begin`` to
``Confirm`` on the source side and ``MIGRATION_IN`` job has to be active from
``Prepare`` to ``Finish`` on the destination side.
For this purpose we introduce several helper methods to deal with locking
primitives (described in THREADS.txt) in the right way:
primitives (described in `qemu-threads <qemu-threads.html>`__) in the right way:
* qemuMigrationJobStart
* ``qemuMigrationJobStart``
* qemuMigrationJobContinue
* ``qemuMigrationJobContinue``
* qemuMigrationJobStartPhase
* ``qemuMigrationJobStartPhase``
* qemuMigrationJobSetPhase
* ``qemuMigrationJobSetPhase``
* qemuMigrationJobFinish
* ``qemuMigrationJobFinish``
The sequence of calling qemuMigrationJob* helper methods is as follows:
The sequence of calling ``qemuMigrationJob*`` helper methods is as follows:
- The first API of a migration protocol (Prepare or Perform/Begin depending on
migration type and version) has to start migration job and keep it active:
- The first API of a migration protocol (``Prepare`` or ``Perform/Begin``
depending on migration type and version) has to start migration job and keep
it active::
qemuMigrationJobStart(driver, vm, VIR_JOB_MIGRATION_{IN,OUT});
qemuMigrationJobSetPhase(driver, vm, QEMU_MIGRATION_PHASE_*);
...do work...
qemuMigrationJobContinue(vm);
- All consequent phases except for the last one have to keep the job active:
- All consequent phases except for the last one have to keep the job active::
if (!qemuMigrationJobIsActive(vm, VIR_JOB_MIGRATION_{IN,OUT}))
return;
@@ -86,7 +91,7 @@ The sequence of calling qemuMigrationJob* helper methods is as follows:
...do work...
qemuMigrationJobContinue(vm);
- The last migration phase finally finishes the migration job:
- The last migration phase finally finishes the migration job::
if (!qemuMigrationJobIsActive(vm, VIR_JOB_MIGRATION_{IN,OUT}))
return;
@@ -94,7 +99,7 @@ The sequence of calling qemuMigrationJob* helper methods is as follows:
...do work...
qemuMigrationJobFinish(driver, vm);
While migration job is running (i.e., after qemuMigrationJobStart* but before
qemuMigrationJob{Continue,Finish}), migration phase can be advanced using
While migration job is running (i.e., after ``qemuMigrationJobStart*`` but before
``qemuMigrationJob{Continue,Finish}``), migration phase can be advanced using::
qemuMigrationJobSetPhase(driver, vm, QEMU_MIGRATION_PHASE_*);

View File

@@ -1,5 +1,7 @@
QEMU Driver Threading: The Rules
=================================
QEMU Driver Threading: The Rules
================================
.. contents::
This document describes how thread safety is ensured throughout
the QEMU driver. The criteria for this model are:
@@ -8,37 +10,36 @@ the QEMU driver. The criteria for this model are:
- Code which sleeps must be able to time out after suitable period
- Must be safe against dispatch of asynchronous events from monitor
Basic locking primitives
------------------------
There are a number of locks on various objects
* virQEMUDriver *
``virQEMUDriver``
The qemu_conf.h file has inline comments describing the locking
The ``qemu_conf.h`` file has inline comments describing the locking
needs for each field. Any field marked immutable, self-locking
can be accessed without the driver lock. For other fields there
are typically helper APIs in qemu_conf.c that provide serialized
access to the data. No code outside qemu_conf.c should ever
are typically helper APIs in ``qemu_conf.c`` that provide serialized
access to the data. No code outside ``qemu_conf.c`` should ever
acquire this lock
* virDomainObj *
``virDomainObj``
Will be locked and the reference counter will be increased after calling
any of the virDomainObjListFindBy{ID,Name,UUID} methods. The preferred way
any of the ``virDomainObjListFindBy{ID,Name,UUID}`` methods. The preferred way
of decrementing the reference counter and unlocking the domain is using the
virDomainObjEndAPI() function.
``virDomainObjEndAPI()`` function.
Lock must be held when changing/reading any variable in the virDomainObj *
Lock must be held when changing/reading any variable in the ``virDomainObj``
This lock must not be held for anything which sleeps/waits (i.e. monitor
commands).
* qemuMonitorPrivatePtr: Job conditions
``qemuMonitorPrivatePtr`` job conditions
Since virDomainObj *lock must not be held during sleeps, the job
Since ``virDomainObj`` lock must not be held during sleeps, the job
conditions provide additional protection for code making updates.
QEMU driver uses three kinds of job conditions: asynchronous, agent
@@ -61,30 +62,30 @@ There are a number of locks on various objects
Agent job condition is then used when thread wishes to talk to qemu
agent monitor. It is possible to acquire just agent job
(qemuDomainObjBeginAgentJob), or only normal job (qemuDomainObjBeginJob)
(``qemuDomainObjBeginAgentJob``), or only normal job (``qemuDomainObjBeginJob``)
but not both at the same time. Holding an agent job and a normal job would
allow an unresponsive or malicious agent to block normal libvirt API and
potentially result in a denial of service. Which type of job to grab
depends whether caller wishes to communicate only with agent socket, or
only with qemu monitor socket.
Immediately after acquiring the virDomainObj *lock, any method
Immediately after acquiring the ``virDomainObj`` lock, any method
which intends to update state must acquire asynchronous, normal or
agent job . The virDomainObj *lock is released while blocking on
agent job . The ``virDomainObj`` lock is released while blocking on
these condition variables. Once the job condition is acquired, a
method can safely release the virDomainObj *lock whenever it hits
method can safely release the ``virDomainObj`` lock whenever it hits
a piece of code which may sleep/wait, and re-acquire it after the
sleep/wait. Whenever an asynchronous job wants to talk to the
monitor, it needs to acquire nested job (a special kind of normal
job) to obtain exclusive access to the monitor.
Since the virDomainObj *lock was dropped while waiting for the
Since the ``virDomainObj`` lock was dropped while waiting for the
job condition, it is possible that the domain is no longer active
when the condition is finally obtained. The monitor lock is only
safe to grab after verifying that the domain is still active.
* qemuMonitor *: Mutex
``qemuMonitor`` mutex
Lock to be used when invoking any monitor command to ensure safety
wrt any asynchronous events that may be dispatched from the monitor.
@@ -92,118 +93,111 @@ There are a number of locks on various objects
The job condition *MUST* be held before acquiring the monitor lock
The virDomainObj *lock *MUST* be held before acquiring the monitor
The ``virDomainObj`` lock *MUST* be held before acquiring the monitor
lock.
The virDomainObj *lock *MUST* then be released when invoking the
The ``virDomainObj`` lock *MUST* then be released when invoking the
monitor command.
Helper methods
--------------
To lock the virDomainObj *
To lock the ``virDomainObj``
virObjectLock()
- Acquires the virDomainObj *lock
virObjectUnlock()
- Releases the virDomainObj *lock
``virObjectLock()``
- Acquires the ``virDomainObj`` lock
``virObjectUnlock()``
- Releases the ``virDomainObj`` lock
To acquire the normal job condition
qemuDomainObjBeginJob()
``qemuDomainObjBeginJob()``
- Waits until the job is compatible with current async job or no
async job is running
- Waits for job.cond condition 'job.active != 0' using virDomainObj *
- Waits for ``job.cond`` condition ``job.active != 0`` using ``virDomainObj``
mutex
- Rechecks if the job is still compatible and repeats waiting if it
isn't
- Sets job.active to the job type
- Sets ``job.active`` to the job type
qemuDomainObjEndJob()
``qemuDomainObjEndJob()``
- Sets job.active to 0
- Signals on job.cond condition
To acquire the agent job condition
qemuDomainObjBeginAgentJob()
``qemuDomainObjBeginAgentJob()``
- Waits until there is no other agent job set
- Sets job.agentActive tp the job type
qemuDomainObjEndAgentJob()
- Sets job.agentActive to 0
- Signals on job.cond condition
- Sets ``job.agentActive`` to the job type
``qemuDomainObjEndAgentJob()``
- Sets ``job.agentActive`` to 0
- Signals on ``job.cond`` condition
To acquire the asynchronous job condition
qemuDomainObjBeginAsyncJob()
``qemuDomainObjBeginAsyncJob()``
- Waits until no async job is running
- Waits for job.cond condition 'job.active != 0' using virDomainObj *
- Waits for ``job.cond`` condition ``job.active != 0`` using ``virDomainObj``
mutex
- Rechecks if any async job was started while waiting on job.cond
- Rechecks if any async job was started while waiting on ``job.cond``
and repeats waiting in that case
- Sets job.asyncJob to the asynchronous job type
qemuDomainObjEndAsyncJob()
- Sets job.asyncJob to 0
- Broadcasts on job.asyncCond condition
- Sets ``job.asyncJob`` to the asynchronous job type
``qemuDomainObjEndAsyncJob()``
- Sets ``job.asyncJob`` to 0
- Broadcasts on ``job.asyncCond`` condition
To acquire the QEMU monitor lock
qemuDomainObjEnterMonitor()
- Acquires the qemuMonitorObjPtr lock
- Releases the virDomainObj *lock
``qemuDomainObjEnterMonitor()``
- Acquires the ``qemuMonitorObj`` lock
- Releases the ``virDomainObj`` lock
qemuDomainObjExitMonitor()
- Releases the qemuMonitorObjPtr lock
- Acquires the virDomainObj *lock
``qemuDomainObjExitMonitor()``
- Releases the ``qemuMonitorObj`` lock
- Acquires the ``virDomainObj`` lock
These functions must not be used by an asynchronous job.
To acquire the QEMU monitor lock as part of an asynchronous job
qemuDomainObjEnterMonitorAsync()
``qemuDomainObjEnterMonitorAsync()``
- Validates that the right async job is still running
- Acquires the qemuMonitorObjPtr lock
- Releases the virDomainObj *lock
- Acquires the ``qemuMonitorObj`` lock
- Releases the ``virDomainObj`` lock
- Validates that the VM is still active
qemuDomainObjExitMonitor()
- Releases the qemuMonitorObjPtr lock
- Acquires the virDomainObj *lock
- Releases the ``qemuMonitorObj`` lock
- Acquires the ``virDomainObj`` lock
These functions are for use inside an asynchronous job; the caller
must check for a return of -1 (VM not running, so nothing to exit).
Helper functions may also call this with VIR_ASYNC_JOB_NONE when
Helper functions may also call this with ``VIR_ASYNC_JOB_NONE`` when
used from a sync job (such as when first starting a domain).
To keep a domain alive while waiting on a remote command
qemuDomainObjEnterRemote()
- Releases the virDomainObj *lock
``qemuDomainObjEnterRemote()``
- Releases the ``virDomainObj`` lock
qemuDomainObjExitRemote()
- Acquires the virDomainObj *lock
``qemuDomainObjExitRemote()``
- Acquires the ``virDomainObj`` lock
Design patterns
---------------
* Accessing something directly to do with a virDomainObj *
* Accessing something directly to do with a ``virDomainObj``::
virDomainObj *obj;
@@ -214,7 +208,7 @@ Design patterns
virDomainObjEndAPI(&obj);
* Updating something directly to do with a virDomainObj *
* Updating something directly to do with a ``virDomainObj``::
virDomainObj *obj;
@@ -229,7 +223,7 @@ Design patterns
virDomainObjEndAPI(&obj);
* Invoking a monitor command on a virDomainObj *
* Invoking a monitor command on a ``virDomainObj``::
virDomainObj *obj;
qemuDomainObjPrivate *priv;
@@ -252,7 +246,7 @@ Design patterns
virDomainObjEndAPI(&obj);
* Invoking an agent command on a virDomainObj *
* Invoking an agent command on a ``virDomainObj``::
virDomainObj *obj;
qemuAgent *agent;
@@ -276,7 +270,7 @@ Design patterns
virDomainObjEndAPI(&obj);
* Running asynchronous job
* Running asynchronous job::
virDomainObj *obj;
qemuDomainObjPrivate *priv;
@@ -316,7 +310,7 @@ Design patterns
virDomainObjEndAPI(&obj);
* Coordinating with a remote server for migration
* Coordinating with a remote server for migration::
virDomainObj *obj;
qemuDomainObjPrivate *priv;

View File

@@ -27,8 +27,8 @@ outstanding method. The protocol was loosely inspired by the design of SunRPC.
The definition of the RPC protocol is in the file ``src/rpc/virnetprotocol.x``
in the libvirt source tree.
`Packet framing <protocolframing>`__
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Packet framing
~~~~~~~~~~~~~~
On the wire, there is no explicit packet framing marker. Instead each packet is
preceded by an unsigned 32-bit integer giving the total length of the packet in
@@ -45,8 +45,8 @@ the framing looks like this:
|~ Len ~|~ Data ~|~ Len ~|~ Data ~|~ Len ~|~ Data ~|~
`Packet data <protocoldata>`__
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Packet data
~~~~~~~~~~~
The data in each packet is split into two parts, a short fixed length header,
followed by a variable length payload. So a packet from the illustration above
@@ -61,8 +61,8 @@ is more correctly shown as
|~ Len ~|~ Header ~|~ Payload .... ~|
`Packet header <protocolheader>`__
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Packet header
~~~~~~~~~~~~~
The header contains 6 fields, encoded as signed/unsigned 32-bit integers.
@@ -119,8 +119,8 @@ The header contains 6 fields, encoded as signed/unsigned 32-bit integers.
#. continue: for streams this indicates that further data packets will be
following
`Packet payload <protocolpayload>`__
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Packet payload
~~~~~~~~~~~~~~
The payload of a packet will vary depending on the ``type`` and ``status``
fields from the header.

View File

@@ -128,7 +128,7 @@ host core that is in the `isolcpus` reserved set. The QEMU emulator threads
need to be pinned to host CPUs that are not in the `isolcpus` reserved set.
The vCPUs need to be given a real time CPU scheduler policy.
When configuring the `guest CPU count <../formatdomain.html#elementsCPUAllocation>`_,
When configuring the `guest CPU count <../formatdomain.html#cpu-allocation>`_,
do not include any CPU affinity at this stage:
::
@@ -137,7 +137,7 @@ do not include any CPU affinity at this stage:
The guest CPUs now need to be placed individually. In this case, they will all
be put within the same host socket, such that they can be exposed as core
siblings. This is achieved using the `CPU tuning config <../formatdomain.html#elementsCPUTuning>`_:
siblings. This is achieved using the `CPU tuning config <../formatdomain.html#cpu-tuning>`_:
::
@@ -150,7 +150,7 @@ siblings. This is achieved using the `CPU tuning config <../formatdomain.html#el
<vcpusched vcpus='0-4' scheduler='fifo' priority='1'/>
</cputune>
The `guest CPU model <formatdomain.html#elementsCPU>`_ now needs to be
The `guest CPU model <../formatdomain.html#cpu-model-and-topology>`_ now needs to be
configured to pass through the host model unchanged, with topology matching the
placement:
@@ -162,7 +162,7 @@ placement:
</cpu>
The performance monitoring unit virtualization needs to be disabled
via the `hypervisor features <../formatdomain.html#elementsFeatures>`_:
via the `hypervisor features <../formatdomain.html#hypervisor-features>`_:
::
@@ -178,7 +178,7 @@ Memory configuration
The host memory used for guest RAM needs to be allocated from huge pages on the
second NUMA node, and all other memory allocation needs to be locked into RAM
with memory page sharing disabled.
This is achieved by using the `memory backing config <formatdomain.html#elementsMemoryBacking>`_:
This is achieved by using the `memory backing config <../formatdomain.html#memory-backing>`_:
::

View File

@@ -154,7 +154,7 @@ VM Configuration
================
SEV is enabled in the XML by specifying the
`<launchSecurity> <https://libvirt.org/formatdomain.html#launchSecurity>`__
`<launchSecurity> <https://libvirt.org/formatdomain.html#launch-security>`__
element. However, specifying ``launchSecurity`` isn't enough to boot an
SEV VM. Further configuration requirements are discussed below.
@@ -295,7 +295,9 @@ In order to make virtio devices work, we need to use
``<driver iommu='on'/>`` inside the given device XML element in order
to enable DMA API in the virtio driver.
::
Starting with QEMU 6.0.0 QEMU will set this for us by default. For earlier
versions though, you will need to explicitly enable this in the device XML as
follows::
# virsh edit <domain>
<domain>

View File

@@ -173,7 +173,7 @@ Domain configuration
In case sanlock loses access to disk locks for some reason, it will kill
all domains that lost their locks. This default behavior may be changed
using `on_lockfailure element <../formatdomain.html#elementsEvents>`__ in
using `on_lockfailure element <../formatdomain.html#events-configuration>`__ in
domain XML. When this element is present, sanlock will call
``sanlock_helper`` (provided by libvirt) with the specified action. This
helper binary will connect to libvirtd and thus it may need to

View File

@@ -79,7 +79,7 @@ Furthermore, DIMMs can have ``<source/>`` element which configures backend for
devices. For NVDIMMs the element is mandatory and reflects where the content
is saved.
See `memory devices documentation <../formatdomain.html#elementsMemory>`_.
See `memory devices documentation <../formatdomain.html#memory-devices>`_.
``virtio-mem`` model
====================

View File

@@ -128,7 +128,7 @@ As the virtio data structures of secure guests are not accessible
by the host, it is necessary to use shared memory ('bounce buffers').
Since libvirt 7.6.0 the
`<launchSecurity> <https://libvirt.org/formatdomain.html#launchSecurity>`__
`<launchSecurity> <https://libvirt.org/formatdomain.html#launch-security>`__
element with type ``s390-pv`` should be used on protected virtualization guests.
Without ``launchSecurity`` you must enable all virtio devices to use shared
buffers by configuring them with platform_iommu enabled.

View File

@@ -84,12 +84,12 @@ clients. There are two distinct checks involved:
- The client should know that it is connecting to the right server. Checking
done by client by matching the certificate that the server sends to the
server's hostname. May be disabled by adding ``?no_verify=1`` to the `remote
URI <uri.html#Remote_URI_parameters>`__.
URI <../uri.html#tls-transport>`__.
- The server should know that only permitted clients are connecting. This can
be done based on client's IP address, or on client's IP address and client's
certificate. Checking done by the server. May be enabled and disabled in the
`libvirtd.conf file <remote.html#libvirtd-configuration-file>`__.
`libvirtd.conf file <../remote.html#libvirtd-configuration-file>`__.
For full certificate checking you will need to have certificates issued by a
recognised `Certificate Authority
@@ -99,7 +99,7 @@ CA, you can set up your own CA and tell your server(s) and clients to trust
certificates issues by your own CA. Follow the instructions in the next section.
Be aware that the `default configuration for
libvirtd <remote.html#libvirtd-configuration-file>`__ allows any client to
libvirtd <../remote.html#libvirtd-configuration-file>`__ allows any client to
connect provided they have a valid certificate issued by the CA for their own IP
address. You may want to change this to make it less (or more) permissive,
depending on your needs.
@@ -180,7 +180,7 @@ for validation may be discontinued entirely, so it is strongly recommended to
include the SAN fields.
In the example below, clients will be connecting to the server using a
`URI <uri.html#URI_remote>`__ of ``qemu://compute1.libvirt.org/system``, so the
`URI <../uri.html#remote-uris>`__ of ``qemu://compute1.libvirt.org/system``, so the
CN must be "``compute1.libvirt.org``".
Make a private key for the server:

View File

@@ -895,7 +895,7 @@ domain capabilities XML (printed by ``domcapabilities`` command). In
addition to the <cpu> element itself, this command accepts
full domain XML, capabilities XML, or domain capabilities XML containing
the CPU definition. For more information on guest CPU definition see:
`https://libvirt.org/formatdomain.html#elementsCPU <https://libvirt.org/formatdomain.html#elementsCPU>`__. If *--error* is
`https://libvirt.org/formatdomain.html#elementsCPU <https://libvirt.org/formatdomain.html#cpu-model-and-topology>`__. If *--error* is
specified, the command will return an error when the given CPU is
incompatible with host CPU and a message providing more details about the
incompatibility will be printed out. If *--validate* is specified, validates
@@ -943,7 +943,7 @@ host CPU model found in the domain capabilities XML (printed by the
``domcapabilities`` command). In addition to the <cpu> element itself, this
command accepts full domain XML, capabilities XML, or domain capabilities XML
containing the CPU definition. For more information on guest CPU definition
see: `https://libvirt.org/formatdomain.html#elementsCPU <https://libvirt.org/formatdomain.html#elementsCPU>`__.
see: `https://libvirt.org/formatdomain.html#elementsCPU <https://libvirt.org/formatdomain.html#cpu-model-and-topology>`__.
The *virttype* option specifies the virtualization type (usable in the 'type'
attribute of the <domain> top level element from the domain XML). *emulator*
@@ -1959,10 +1959,16 @@ backup-dumpxml
::
backup-dumpxml domain
backup-dumpxml [--xpath EXPRESSION] [--wrap] domain
Output XML describing the current backup job.
If the **--xpath** argument provides an XPath expression, it will be
evaluated against the output XML and only those matching nodes will
be printed. The default behaviour is to print each matching node as
a standalone document, however, for ease of additional processing,
the **--wrap** argument will cause the matching node to be wrapped
in a common root node.
domiflist
---------
@@ -2053,10 +2059,16 @@ domjobabort
::
domjobabort domain
domjobabort domain [--postcopy]
Abort the currently running domain job.
When the job to be aborted is a migration which entered post-copy mode, it
cannot be aborted as none of the hosts involved in migration has a complete
state of the domain. Optional *--postcopy* can be used to interrupt such
migration although doing so may effectively suspend the domain until the
migration is resumed (see also *--postcopy-resume* option of ``migrate``).
domjobinfo
----------
@@ -2646,7 +2658,8 @@ dumpxml
::
dumpxml domain [--inactive] [--security-info] [--update-cpu] [--migratable]
dumpxml [--inactive] [--security-info] [--update-cpu] [--migratable]
[--xpath EXPRESSION] [--wrap] domain
Output the domain information as an XML dump to stdout, this format can be used
by the ``create`` command. Additional options affecting the XML dump may be
@@ -2659,6 +2672,13 @@ migrations, i.e., compatible with older libvirt releases and possibly amended
with internal run-time options. This option may automatically enable other
options (*--update-cpu*, *--security-info*, ...) as necessary.
If the **--xpath** argument provides an XPath expression, it will be
evaluated against the output XML and only those matching nodes will
be printed. The default behaviour is to print each matching node as
a standalone document, however, for ease of additional processing,
the **--wrap** argument will cause the matching node to be wrapped
in a common root node.
edit
----
@@ -2993,7 +3013,8 @@ iothreadset
::
iothreadset domain iothread_id [[--poll-max-ns ns] [--poll-grow factor]
[--poll-shrink divisor]]
[--poll-shrink divisor] [--thread-pool-min value]
[--thread-pool-max value]]
[[--config] [--live] | [--current]]
Modifies an existing iothread of the domain using the specified
@@ -3010,6 +3031,16 @@ for a running guest. Saving, destroying, stopping, etc. the guest will
result in the polling values returning to hypervisor defaults at the
next start, restore, etc.
The *--thread-pool-min* and *--thread-pool-max* options then set lower and
upper bound, respectively of number of threads in worker pool of given
iothread. For changes to an inactive configuration -1 can be specified to
remove corresponding boundary from the domain configuration. For changes to a
running guest it's recommended to set the upper boundary first
(*--thread-pool-max*) and only after that set the lower boundary
(*--thread-pool-min*). It is allowed for the lower boundary to be the same as
the upper boundary, however it's not allowed for the upper boundary to be value
of zero.
If *--live* is specified, affect a running guest. If the guest is not
running an error is returned.
If *--current* is specified or *--live* is not specified, then handle
@@ -3073,12 +3104,19 @@ managedsave-dumpxml
::
managedsave-dumpxml domain [--security-info]
managedsave-dumpxml [--security-info] [--xpath EXPRESSION] [--wrap] domain
Extract the domain XML that was in effect at the time the saved state
file *file* was created with the ``managedsave`` command. Using
*--security-info* will also include security sensitive information.
If the **--xpath** argument provides an XPath expression, it will be
evaluated against the output XML and only those matching nodes will
be printed. The default behaviour is to print each matching node as
a standalone document, however, for ease of additional processing,
the **--wrap** argument will cause the matching node to be wrapped
in a common root node.
managedsave-edit
----------------
@@ -3246,7 +3284,8 @@ migrate
migrate [--live] [--offline] [--direct] [--p2p [--tunnelled]]
[--persistent] [--undefinesource] [--suspend] [--copy-storage-all]
[--copy-storage-inc] [--change-protection] [--unsafe] [--verbose]
[--rdma-pin-all] [--abort-on-error] [--postcopy] [--postcopy-after-precopy]
[--rdma-pin-all] [--abort-on-error] [--postcopy]
[--postcopy-after-precopy] [--postcopy-resume] [--zerocopy]
domain desturi [migrateuri] [graphicsuri] [listen-address] [dname]
[--timeout seconds [--timeout-suspend | --timeout-postcopy]]
[--xml file] [--migrate-disks disk-list] [--disks-port port]
@@ -3302,7 +3341,11 @@ Once migration is running, the user may switch to post-copy using the
automatically switch to post-copy after the first pass of pre-copy is finished.
The maximum bandwidth consumed during the post-copy phase may be limited using
*--postcopy-bandwidth*. The maximum bandwidth consumed during the pre-copy phase
may be limited using *--bandwidth*.
may be limited using *--bandwidth*. In case connection between the hosts breaks
while migration is in post-copy mode, the domain cannot be resumed on either
source or destination host and the ``migrate`` command will report an error
leaving the domain active on both hosts. To recover from such situation repeat
the original ``migrate`` command with an additional *--postcopy-resume* flag.
*--auto-converge* forces convergence during live migration. The initial
guest CPU throttling rate can be set with *auto-converge-initial*. If the
@@ -3319,6 +3362,11 @@ high (and thus allowing the domain to lock most of the host's memory). Doing so
may be dangerous to both the domain and the host itself since the host's kernel
may run out of memory.
*--zerocopy* requests zero-copy mechanism to be used for migrating memory pages.
For QEMU/KVM this means QEMU will be temporarily allowed to lock all guest
pages in host's memory, although only those that are queued for transfer will
be locked at the same time.
``Note``: Individual hypervisors usually do not support all possible types of
migration. For example, QEMU does not support direct migration.
@@ -3868,12 +3916,19 @@ save-image-dumpxml
::
save-image-dumpxml file [--security-info]
save-image-dumpxml [--security-info] [--xpath EXPRESSION] [--wrap] file
Extract the domain XML that was in effect at the time the saved state
file *file* was created with the ``save`` command. Using
*--security-info* will also include security sensitive information.
If the **--xpath** argument provides an XPath expression, it will be
evaluated against the output XML and only those matching nodes will
be printed. The default behaviour is to print each matching node as
a standalone document, however, for ease of additional processing,
the **--wrap** argument will cause the matching node to be wrapped
in a common root node.
save-image-edit
---------------
@@ -4645,7 +4700,7 @@ attach-device
Attach a device to the domain, using a device definition in an XML
file using a device definition element such as <disk> or <interface>
as the top-level element. See the documentation at
`https://libvirt.org/formatdomain.html#elementsDevices <https://libvirt.org/formatdomain.html#elementsDevices>`__ to learn about
`https://libvirt.org/formatdomain.html#elementsDevices <https://libvirt.org/formatdomain.html#devices>`__ to learn about
libvirt XML format for a device. If *--config* is specified the
command alters the persistent guest configuration with the device
attach taking effect the next time libvirt starts the domain.
@@ -5006,7 +5061,7 @@ Update the characteristics of a device associated with *domain*,
based on the device definition in an XML *file*. The *--force* option
can be used to force device update, e.g., to eject a CD-ROM even if it is
locked/mounted in the domain. See the documentation at
`https://libvirt.org/formatdomain.html#elementsDevices <https://libvirt.org/formatdomain.html#elementsDevices>`__ to learn about
`https://libvirt.org/formatdomain.html#elementsDevices <https://libvirt.org/formatdomain.html#devices>`__ to learn about
libvirt XML format for a device.
If *--live* is specified, affect a running domain.
@@ -5222,7 +5277,7 @@ nodedev-dumpxml
::
nodedev-dumpxml device
nodedev-dumpxml [--xpath EXPRESSION] [--wrap] device
Dump a <device> XML representation for the given node device, including
such information as the device name, which bus owns the device, the
@@ -5231,6 +5286,13 @@ libvirt (such as whether device reset is supported). *device* can
be either device name or wwn pair in "wwnn,wwpn" format (only works
for HBA).
If the **--xpath** argument provides an XPath expression, it will be
evaluated against the output XML and only those matching nodes will
be printed. The default behaviour is to print each matching node as
a standalone document, however, for ease of additional processing,
the **--wrap** argument will cause the matching node to be wrapped
in a common root node.
nodedev-info
------------
@@ -5411,13 +5473,20 @@ net-dumpxml
::
net-dumpxml network [--inactive]
net-dumpxml [--inactive] [--xpath EXPRESSION] [--wrap] network
Output the virtual network information as an XML dump to stdout.
If *--inactive* is specified, then physical functions are not
expanded into their associated virtual functions.
If the **--xpath** argument provides an XPath expression, it will be
evaluated against the output XML and only those matching nodes will
be printed. The default behaviour is to print each matching node as
a standalone document, however, for ease of additional processing,
the **--wrap** argument will cause the matching node to be wrapped
in a common root node.
net-edit
--------
@@ -5673,10 +5742,17 @@ net-port-dumpxml
::
net-port-dumpxml network port
net-port-dumpxml [--xpath EXPRESSION] [--wrap] network port
Output the network port information as an XML dump to stdout.
If the **--xpath** argument provides an XPath expression, it will be
evaluated against the output XML and only those matching nodes will
be printed. The default behaviour is to print each matching node as
a standalone document, however, for ease of additional processing,
the **--wrap** argument will cause the matching node to be wrapped
in a common root node.
net-port-delete
---------------
@@ -5760,12 +5836,19 @@ iface-dumpxml
::
iface-dumpxml interface [--inactive]
iface-dumpxml [--inactive] [--xpath EXPRESSION] [--wrap] interface
Output the host interface information as an XML dump to stdout. If
*--inactive* is specified, then the output reflects the persistent
state of the interface that will be used the next time it is started.
If the **--xpath** argument provides an XPath expression, it will be
evaluated against the output XML and only those matching nodes will
be printed. The default behaviour is to print each matching node as
a standalone document, however, for ease of additional processing,
the **--wrap** argument will cause the matching node to be wrapped
in a common root node.
iface-edit
----------
@@ -6236,12 +6319,19 @@ pool-dumpxml
::
pool-dumpxml [--inactive] pool-or-uuid
pool-dumpxml [--inactive] [--xpath EXPRESSION] [--wrap] pool-or-uuid
Returns the XML information about the *pool* object.
*--inactive* tells virsh to dump pool configuration that will be used
on next start of the pool as opposed to the current pool configuration.
If the **--xpath** argument provides an XPath expression, it will be
evaluated against the output XML and only those matching nodes will
be printed. The default behaviour is to print each matching node as
a standalone document, however, for ease of additional processing,
the **--wrap** argument will cause the matching node to be wrapped
in a common root node.
pool-edit
---------
@@ -6728,7 +6818,8 @@ vol-dumpxml
::
vol-dumpxml vol-name-or-key-or-path [--pool pool-or-uuid]
vol-dumpxml [--pool pool-or-uuid] [--xpath EXPRESSION] [--wrap]
vol-name-or-key-or-path
Output the volume information as an XML dump to stdout.
@@ -6740,6 +6831,13 @@ is in. If the volume name is provided instead of the key or path, then
providing the pool is necessary to find the volume to be uploaded into;
otherwise, the first volume found by the key or path will be used.
If the **--xpath** argument provides an XPath expression, it will be
evaluated against the output XML and only those matching nodes will
be printed. The default behaviour is to print each matching node as
a standalone document, however, for ease of additional processing,
the **--wrap** argument will cause the matching node to be wrapped
in a common root node.
vol-info
--------
@@ -6927,10 +7025,17 @@ secret-dumpxml
::
secret-dumpxml secret
secret-dumpxml [--xpath EXPRESSION] [--wrap] secret
Output properties of *secret* (specified by its UUID) as an XML dump to stdout.
If the **--xpath** argument provides an XPath expression, it will be
evaluated against the output XML and only those matching nodes will
be printed. The default behaviour is to print each matching node as
a standalone document, however, for ease of additional processing,
the **--wrap** argument will cause the matching node to be wrapped
in a common root node.
secret-event
------------
@@ -7348,12 +7453,20 @@ snapshot-dumpxml
::
snapshot-dumpxml domain snapshot [--security-info]
snapshot-dumpxml [--security-info] [--xpath EXPRESSION] [--wrap]
domain snapshot
Output the snapshot XML for the domain's snapshot named *snapshot*.
Using *--security-info* will also include security sensitive information.
Use ``snapshot-current`` to easily access the XML of the current snapshot.
If the **--xpath** argument provides an XPath expression, it will be
evaluated against the output XML and only those matching nodes will
be printed. The default behaviour is to print each matching node as
a standalone document, however, for ease of additional processing,
the **--wrap** argument will cause the matching node to be wrapped
in a common root node.
snapshot-parent
---------------
@@ -7633,7 +7746,8 @@ checkpoint-dumpxml
::
checkpoint-dumpxml domain checkpoint [--security-info] [--no-domain] [--size]
checkpoint-dumpxml [--security-info] [--no-domain] [--size]
[--xpath EXPRESSION] [--wrap] domain checkpoint
Output the checkpoint XML for the domain's checkpoint named
*checkpoint*. Using
@@ -7649,6 +7763,13 @@ space). Note that some hypervisors may require that *domain* is running when
Using *--no-domain* will omit the <domain> element from the
output for a more compact view.
If the **--xpath** argument provides an XPath expression, it will be
evaluated against the output XML and only those matching nodes will
be printed. The default behaviour is to print each matching node as
a standalone document, however, for ease of additional processing,
the **--wrap** argument will cause the matching node to be wrapped
in a common root node.
checkpoint-parent
-----------------
@@ -7751,10 +7872,17 @@ nwfilter-dumpxml
::
nwfilter-dumpxml nwfilter-name
nwfilter-dumpxml [--xpath EXPRESSION] [--wrap] nwfilter-name
Output the network filter XML.
If the **--xpath** argument provides an XPath expression, it will be
evaluated against the output XML and only those matching nodes will
be printed. The default behaviour is to print each matching node as
a standalone document, however, for ease of additional processing,
the **--wrap** argument will cause the matching node to be wrapped
in a common root node.
nwfilter-edit
-------------
@@ -7854,11 +7982,18 @@ nwfilter-binding-dumpxml
::
nwfilter-binding-dumpxml port-name
nwfilter-binding-dumpxml [--xpath EXPRESSION] [--wrap] port-name
Output the network filter binding XML for the network device called
``port-name``.
If the **--xpath** argument provides an XPath expression, it will be
evaluated against the output XML and only those matching nodes will
be printed. The default behaviour is to print each matching node as
a standalone document, however, for ease of additional processing,
the **--wrap** argument will cause the matching node to be wrapped
in a common root node.
HYPERVISOR-SPECIFIC COMMANDS
============================

View File

@@ -31,18 +31,42 @@ from the name of the root element in the XML document.
Valid schema names currently include
- ``cpu``
The schema for the XML format of cpu
- ``domainsnapshot``
The schema for the XML format used by domain snapshot configuration
- ``domaincheckpoint``
The schema for the XML format used by domain checkpoint configuration
- ``domainbackup``
The schema for the XML format used by domain backup configuration
- ``domaincaps``
The schema for the XML format of domain capabilities
- ``domain``
The schema for the XML format used by guest domains configuration
- ``networkport``
The schema for the XML format used by network port configuration
- ``network``
The schema for the XML format used by virtual network configuration
- ``storagepoolcaps``
The schema for the XML format of storage pool capabilities
- ``storagepool``
The schema for the XML format used by storage pool configuration

View File

@@ -350,3 +350,14 @@ run_target(
],
depends: install_web_deps,
)
test(
'check-html-references',
python3_prog,
args: [
check_html_references_prog.path(),
'--prefix',
meson.build_root() / 'docs'
],
env: runutf8,
)

View File

@@ -172,7 +172,7 @@
<div id="contact">
<h3>Contact</h3>
<ul>
<li><a href="{$href_base}contact.html#mailng-lists">email</a></li>
<li><a href="{$href_base}contact.html#mailing-lists">email</a></li>
<li><a href="{$href_base}contact.html#irc">irc</a></li>
</ul>
</div>

View File

@@ -24,7 +24,7 @@ access the system-wide QEMU daemon, then to access the system-wide QEMU daemon
on a remote machine called ``compute1.libvirt.org`` you would use
``qemu://compute1.libvirt.org/system``.
The `section on remote URIs <uri.html#URI_remote>`__ describes in more detail
The `section on remote URIs <uri.html#remote-uris>`__ describes in more detail
these remote URIs.
From an API point of view, apart from the change in URI, the API should behave
@@ -55,7 +55,7 @@ Remote libvirt supports a range of transports:
``ssh``
Transported over an ordinary `ssh (secure
shell) <https://www.openssh.com/>`__ connection. Requires `Netcat
(nc) <http://netcat.sourceforge.net/>`__ installed and libvirtd should be
(nc) <https://en.wikipedia.org/wiki/Netcat>`__ installed and libvirtd should be
running on the remote machine. You should use some sort of ssh key management
(eg. `ssh-agent <http://mah.everybody.org/docs/ssh>`__) otherwise programs
which use this transport will stop to ask for a password.
@@ -82,7 +82,7 @@ Remote libvirt supports a range of transports:
remote side.
The choice of transport is determined by the `URI
scheme <uri.html#URI_remote>`__, with ``tls`` as the default if no explicit
scheme <uri.html#remote-uris>`__, with ``tls`` as the default if no explicit
transport is requested.
libvirtd configuration file

View File

@@ -557,7 +557,7 @@ Example RBD disk attachment
RBD images can be attached to QEMU guests when QEMU is built with RBD support.
Information about attaching a RBD image to a guest can be found at `format
domain <formatdomain.html#elementsDisks>`__ page.
domain <formatdomain.html#hard-drives-floppy-disks-cdroms>`__ page.
Valid RBD pool format types
~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -618,7 +618,7 @@ Example Sheepdog disk attachment
Sheepdog images can be attached to QEMU guests. Information about attaching a
Sheepdog image to a guest can be found at the `format
domain <formatdomain.html#elementsDisks>`__ page.
domain <formatdomain.html#hard-drives-floppy-disks-cdroms>`__ page.
Valid Sheepdog pool format types
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -698,7 +698,7 @@ Example Gluster disk attachment
Files within a gluster volume can be attached to QEMU guests. Information about
attaching a Gluster image to a guest can be found at the `format
domain <formatdomain.html#elementsDisks>`__ page.
domain <formatdomain.html#hard-drives-floppy-disks-cdroms>`__ page.
Valid Gluster pool format types
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

View File

@@ -68,7 +68,7 @@ particularly bad at this.
If everything went well, your patch should show up on the
`libvir-list
archives <https://www.redhat.com/archives/libvir-list/>`__ in a
archives <https://listman.redhat.com/archives/libvir-list/>`__ in a
matter of minutes; if you still can't find it on there after an
hour or so, you should double-check your setup. **Note that, if
you are not already a subscriber, your very first post to the

View File

@@ -121,7 +121,7 @@ So to connect to the daemon, one of two different URIs is used:
domain socket(s) that it listens on in the various different modes).
KVM URIs are identical. You select between qemu, qemu accelerated and KVM guests
in the `guest XML as described here <format.html#KVM1>`__.
in the `guest XML as described here <drvqemu.html#example-domain-xml-config>`__.
test:///... Test URIs
~~~~~~~~~~~~~~~~~~~~~
@@ -178,7 +178,7 @@ Extra parameters can be added to remote URIs as part of the query string (the
part following ``?``). Remote URIs understand the extra parameters shown
below. Any others are passed unmodified through to the back end. Note that
parameter values must be
`URI-escaped <http://xmlsoft.org/html/libxml-uri.html#xmlURIEscapeStr>`__.
`URI-escaped <https://gnome.pages.gitlab.gnome.org/libxml2/devhelp/libxml2-uri.html#xmlURIEscapeStr>`__.
All transports support the following parameters:
@@ -291,7 +291,7 @@ Supported extra parameters:
If set to a non-zero value, this disables client checks of the server's
certificate. Note that to disable server checks of the client's certificate
or IP address you must `change the libvirtd configuration
<#Remote_libvirtd_configuration>`__
<remote.html#libvirtd-configuration-file>`__
**Example:** ``no_verify=1``

View File

@@ -104,8 +104,8 @@ desired <contact.html>`__.
Compiling yourself
------------------
Libvirt can be compiled on Windows using the free `MinGW
compiler <http://www.mingw.org/>`__.
Libvirt can be compiled on Windows using the free `MinGW-w64
compiler <https://www.mingw-w64.org/>`__.
MSYS Build script
~~~~~~~~~~~~~~~~~

View File

@@ -196,6 +196,9 @@ eventDetailToString(int event,
case VIR_DOMAIN_EVENT_RESUMED_POSTCOPY:
return "Post-copy";
case VIR_DOMAIN_EVENT_RESUMED_POSTCOPY_FAILED:
return "Post-copy Error";
case VIR_DOMAIN_EVENT_RESUMED_LAST:
break;
}

View File

@@ -37,6 +37,8 @@ extern "C" {
*
* a virAdmConnect is a private structure representing a connection to
* libvirt daemon.
*
* Since: 2.0.0
*/
typedef struct _virAdmConnect virAdmConnect;
@@ -45,6 +47,8 @@ typedef struct _virAdmConnect virAdmConnect;
*
* a virAdmServer is a private structure and client-side representation of
* a remote server object
*
* Since: 2.0.0
*/
typedef struct _virAdmServer virAdmServer;
@@ -53,6 +57,8 @@ typedef struct _virAdmServer virAdmServer;
*
* a virAdmClient is a private structure and client-side representation of
* a remote server's client object (as server sees clients connected to it)
*
* Since: 2.0.0
*/
typedef struct _virAdmClient virAdmClient;
@@ -62,6 +68,8 @@ typedef struct _virAdmClient virAdmClient;
* a virAdmConnectPtr is pointer to a virAdmConnect private structure,
* this is the type used to reference a connection to the daemon
* in the API.
*
* Since: 2.0.0
*/
typedef virAdmConnect *virAdmConnectPtr;
@@ -71,6 +79,8 @@ typedef virAdmConnect *virAdmConnectPtr;
* a virAdmServerPtr is a pointer to a virAdmServer structure,
* this is the type used to reference client-side representation of a
* remote server object throughout all the APIs.
*
* Since: 2.0.0
*/
typedef virAdmServer *virAdmServerPtr;
@@ -80,6 +90,8 @@ typedef virAdmServer *virAdmServerPtr;
* a virAdmClientPtr is a pointer to a virAdmClient structure,
* this is the type used to reference client-side representation of a
* client object throughout all the APIs.
*
* Since: 2.0.0
*/
typedef virAdmClient *virAdmClientPtr;
@@ -108,6 +120,8 @@ int virAdmConnectGetLibVersion(virAdmConnectPtr conn,
* @opaque: opaque client data
*
* A callback to be registered, in case a connection was closed.
*
* Since: 2.0.0
*/
typedef void (*virAdmConnectCloseFunc)(virAdmConnectPtr conn,
int reason,
@@ -132,6 +146,8 @@ virAdmServerPtr virAdmConnectLookupServer(virAdmConnectPtr conn,
* VIR_THREADPOOL_WORKERS_MIN:
* Macro for the threadpool minWorkers limit: represents the bottom limit to
* number of active workers in threadpool, as VIR_TYPED_PARAM_UINT.
*
* Since: 2.0.0
*/
# define VIR_THREADPOOL_WORKERS_MIN "minWorkers"
@@ -142,6 +158,8 @@ virAdmServerPtr virAdmConnectLookupServer(virAdmConnectPtr conn,
* number of active workers in threadpool, as VIR_TYPED_PARAM_UINT.
* The value of this limit has to be greater than VIR_THREADPOOL_WORKERS_MIN
* at all times.
*
* Since: 2.0.0
*/
# define VIR_THREADPOOL_WORKERS_MAX "maxWorkers"
@@ -150,6 +168,8 @@ virAdmServerPtr virAdmConnectLookupServer(virAdmConnectPtr conn,
* VIR_THREADPOOL_WORKERS_PRIORITY:
* Macro for the threadpool nPrioWorkers attribute: represents the current number
* of active priority workers in threadpool, as VIR_TYPED_PARAM_UINT.
*
* Since: 2.0.0
*/
# define VIR_THREADPOOL_WORKERS_PRIORITY "prioWorkers"
@@ -161,6 +181,8 @@ virAdmServerPtr virAdmConnectLookupServer(virAdmConnectPtr conn,
*
* NOTE: This attribute is read-only and any attempt to set it will be denied
* by daemon
*
* Since: 2.0.0
*/
# define VIR_THREADPOOL_WORKERS_FREE "freeWorkers"
@@ -172,6 +194,8 @@ virAdmServerPtr virAdmConnectLookupServer(virAdmConnectPtr conn,
*
* NOTE: This attribute is read-only and any attempt to set it will be denied
* by daemon
*
* Since: 2.0.0
*/
# define VIR_THREADPOOL_WORKERS_CURRENT "nWorkers"
@@ -183,6 +207,8 @@ virAdmServerPtr virAdmConnectLookupServer(virAdmConnectPtr conn,
*
* NOTE: This attribute is read-only and any attempt to set it will be denied
* by daemon
*
* Since: 2.0.0
*/
# define VIR_THREADPOOL_JOB_QUEUE_DEPTH "jobQueueDepth"
@@ -204,13 +230,18 @@ long long virAdmClientGetTimestamp(virAdmClientPtr client);
int virAdmClientGetTransport(virAdmClientPtr client);
int virAdmClientFree(virAdmClientPtr client);
/**
* virClientTransport:
*
* Since: 2.0.0
*/
typedef enum {
VIR_CLIENT_TRANS_UNIX = 0, /* connection via UNIX socket */
VIR_CLIENT_TRANS_TCP, /* connection via unencrypted TCP socket */
VIR_CLIENT_TRANS_TLS, /* connection via encrypted TCP socket */
VIR_CLIENT_TRANS_UNIX = 0, /* connection via UNIX socket (Since: 2.0.0) */
VIR_CLIENT_TRANS_TCP, /* connection via unencrypted TCP socket (Since: 2.0.0) */
VIR_CLIENT_TRANS_TLS, /* connection via encrypted TCP socket (Since: 2.0.0) */
# ifdef VIR_ENUM_SENTINELS
VIR_CLIENT_TRANS_LAST
VIR_CLIENT_TRANS_LAST /* (Since: 2.0.0) */
# endif
} virClientTransport;
@@ -233,6 +264,8 @@ virAdmServerLookupClient(virAdmServerPtr srv,
*
* NOTE: This attribute is read-only and any attempt to set it will be denied
* by daemon
*
* Since: 2.0.0
*/
# define VIR_CLIENT_INFO_READONLY "readonly"
@@ -244,6 +277,8 @@ virAdmServerLookupClient(virAdmServerPtr srv,
*
* NOTE: This attribute is read-only and any attempt to set it will be denied
* by daemon
*
* Since: 2.0.0
*/
# define VIR_CLIENT_INFO_SOCKET_ADDR "sock_addr"
@@ -255,6 +290,8 @@ virAdmServerLookupClient(virAdmServerPtr srv,
*
* NOTE: This attribute is read-only and any attempt to set it will be denied
* by daemon
*
* Since: 2.0.0
*/
# define VIR_CLIENT_INFO_SASL_USER_NAME "sasl_user_name"
@@ -267,6 +304,8 @@ virAdmServerLookupClient(virAdmServerPtr srv,
*
* NOTE: This attribute is read-only and any attempt to set it will be denied
* by daemon
*
* Since: 2.0.0
*/
# define VIR_CLIENT_INFO_X509_DISTINGUISHED_NAME "tls_x509_dname"
@@ -279,6 +318,8 @@ virAdmServerLookupClient(virAdmServerPtr srv,
*
* NOTE: This attribute is read-only and any attempt to set it will be denied
* by daemon
*
* Since: 2.0.0
*/
# define VIR_CLIENT_INFO_UNIX_USER_ID "unix_user_id"
@@ -291,6 +332,8 @@ virAdmServerLookupClient(virAdmServerPtr srv,
*
* NOTE: This attribute is read-only and any attempt to set it will be denied
* by daemon
*
* Since: 2.0.0
*/
# define VIR_CLIENT_INFO_UNIX_USER_NAME "unix_user_name"
@@ -303,6 +346,8 @@ virAdmServerLookupClient(virAdmServerPtr srv,
*
* NOTE: This attribute is read-only and any attempt to set it will be denied
* by daemon
*
* Since: 2.0.0
*/
# define VIR_CLIENT_INFO_UNIX_GROUP_ID "unix_group_id"
@@ -315,6 +360,8 @@ virAdmServerLookupClient(virAdmServerPtr srv,
*
* NOTE: This attribute is read-only and any attempt to set it will be denied
* by daemon
*
* Since: 2.0.0
*/
# define VIR_CLIENT_INFO_UNIX_GROUP_NAME "unix_group_name"
@@ -327,6 +374,8 @@ virAdmServerLookupClient(virAdmServerPtr srv,
*
* NOTE: This attribute is read-only and any attempt to set it will be denied
* by daemon
*
* Since: 2.0.0
*/
# define VIR_CLIENT_INFO_UNIX_PROCESS_ID "unix_process_id"
@@ -339,6 +388,8 @@ virAdmServerLookupClient(virAdmServerPtr srv,
*
* NOTE: This attribute is read-only and any attempt to set it will be denied
* by daemon
*
* Since: 2.0.0
*/
# define VIR_CLIENT_INFO_SELINUX_CONTEXT "selinux_context"
@@ -356,6 +407,8 @@ int virAdmClientClose(virAdmClientPtr client, unsigned int flags);
* VIR_SERVER_CLIENTS_MAX:
* Macro for per-server nclients_max limit: represents the upper limit to
* number of clients connected to the server, as uint.
*
* Since: 2.0.0
*/
# define VIR_SERVER_CLIENTS_MAX "nclients_max"
@@ -367,6 +420,8 @@ int virAdmClientClose(virAdmClientPtr client, unsigned int flags);
*
* NOTE: This attribute is read-only and any attempt to set it will be denied
* by daemon
*
* Since: 2.0.0
*/
# define VIR_SERVER_CLIENTS_CURRENT "nclients"
@@ -376,6 +431,8 @@ int virAdmClientClose(virAdmClientPtr client, unsigned int flags);
* Macro for per-server nclients_unauth_max limit: represents the upper limit
* to number of clients connected to the server, but not authenticated yet,
* as VIR_TYPED_PARAM_UINT.
*
* Since: 2.0.0
*/
# define VIR_SERVER_CLIENTS_UNAUTH_MAX "nclients_unauth_max"
@@ -388,6 +445,8 @@ int virAdmClientClose(virAdmClientPtr client, unsigned int flags);
*
* NOTE: This attribute is read-only and any attempt to set it will be denied
* by daemon
*
* Since: 2.0.0
*/
# define VIR_SERVER_CLIENTS_UNAUTH_CURRENT "nclients_unauth"

View File

@@ -71,7 +71,7 @@ extern "C" {
* Macro providing the version of the library as
* version * 1,000,000 + minor * 1000 + micro
*
* Since: v0.0.1
* Since: 0.0.1
*/
# define LIBVIR_VERSION_NUMBER @LIBVIRT_VERSION_NUMBER@
@@ -88,7 +88,7 @@ extern "C" {
* // some code that only works in 1.1.3 and newer
* #endif
*
* Since: v1.2.0
* Since: 1.2.0
*/
# define LIBVIR_CHECK_VERSION(major, minor, micro) \
((major) * 1000000 + (minor) * 1000 + (micro) <= LIBVIR_VERSION_NUMBER)
@@ -108,23 +108,23 @@ extern "C" {
* abide by this requirement may lead to application deadlocks
* or crashes.
*
* Since: v0.5.0
* Since: 0.5.0
*/
typedef void (*virFreeCallback)(void *opaque);
/**
* virConnectCloseReason:
*
* Since: v0.10.0
* Since: 0.10.0
*/
typedef enum {
VIR_CONNECT_CLOSE_REASON_ERROR = 0, /* Misc I/O error (Since: v0.10.0) */
VIR_CONNECT_CLOSE_REASON_EOF = 1, /* End-of-file from server (Since: v0.10.0) */
VIR_CONNECT_CLOSE_REASON_KEEPALIVE = 2, /* Keepalive timer triggered (Since: v0.10.0) */
VIR_CONNECT_CLOSE_REASON_CLIENT = 3, /* Client requested it (Since: v0.10.0) */
VIR_CONNECT_CLOSE_REASON_ERROR = 0, /* Misc I/O error (Since: 0.10.0) */
VIR_CONNECT_CLOSE_REASON_EOF = 1, /* End-of-file from server (Since: 0.10.0) */
VIR_CONNECT_CLOSE_REASON_KEEPALIVE = 2, /* Keepalive timer triggered (Since: 0.10.0) */
VIR_CONNECT_CLOSE_REASON_CLIENT = 3, /* Client requested it (Since: 0.10.0) */
# ifdef VIR_ENUM_SENTINELS
VIR_CONNECT_CLOSE_REASON_LAST /* (Since: v0.10.0) */
VIR_CONNECT_CLOSE_REASON_LAST /* (Since: 0.10.0) */
# endif
} virConnectCloseReason;
@@ -133,19 +133,19 @@ typedef enum {
*
* Express the type of a virTypedParameter
*
* Since: v0.9.2
* Since: 0.9.2
*/
typedef enum {
VIR_TYPED_PARAM_INT = 1, /* integer case (Since: v0.9.2) */
VIR_TYPED_PARAM_UINT = 2, /* unsigned integer case (Since: v0.9.2) */
VIR_TYPED_PARAM_LLONG = 3, /* long long case (Since: v0.9.2) */
VIR_TYPED_PARAM_ULLONG = 4, /* unsigned long long case (Since: v0.9.2) */
VIR_TYPED_PARAM_DOUBLE = 5, /* double case (Since: v0.9.2) */
VIR_TYPED_PARAM_BOOLEAN = 6, /* boolean(character) case (Since: v0.9.2) */
VIR_TYPED_PARAM_STRING = 7, /* string case (Since: v0.9.8) */
VIR_TYPED_PARAM_INT = 1, /* integer case (Since: 0.9.2) */
VIR_TYPED_PARAM_UINT = 2, /* unsigned integer case (Since: 0.9.2) */
VIR_TYPED_PARAM_LLONG = 3, /* long long case (Since: 0.9.2) */
VIR_TYPED_PARAM_ULLONG = 4, /* unsigned long long case (Since: 0.9.2) */
VIR_TYPED_PARAM_DOUBLE = 5, /* double case (Since: 0.9.2) */
VIR_TYPED_PARAM_BOOLEAN = 6, /* boolean(character) case (Since: 0.9.2) */
VIR_TYPED_PARAM_STRING = 7, /* string case (Since: 0.9.8) */
# ifdef VIR_ENUM_SENTINELS
VIR_TYPED_PARAM_LAST /* (Since: v0.9.10) */
VIR_TYPED_PARAM_LAST /* (Since: 0.9.10) */
# endif
} virTypedParameterType;
@@ -156,7 +156,7 @@ typedef enum {
*
* These enums should not conflict with those of virDomainModificationImpact.
*
* Since: v0.9.8
* Since: 0.9.8
*/
typedef enum {
/* 1 << 0 is reserved for virDomainModificationImpact */
@@ -172,7 +172,7 @@ typedef enum {
* setting the flag can be used to reject servers that cannot
* return typed strings, even if no strings would be returned.
*
* Since: v0.9.8
* Since: 0.9.8
*/
VIR_TYPED_PARAM_STRING_OKAY = 1 << 2,
@@ -183,7 +183,7 @@ typedef enum {
*
* Macro providing the field length of virTypedParameter name
*
* Since: v0.9.2
* Since: 0.9.2
*/
# define VIR_TYPED_PARAM_FIELD_LENGTH 80
@@ -196,7 +196,7 @@ typedef enum {
* virMemoryParameter are aliases of this type, for use when
* targeting libvirt earlier than 0.9.2.
*
* Since: v0.9.2
* Since: 0.9.2
*/
typedef struct _virTypedParameter virTypedParameter;
@@ -219,7 +219,7 @@ struct _virTypedParameter {
*
* a pointer to a virTypedParameter structure.
*
* Since: v0.9.2
* Since: 0.9.2
*/
typedef virTypedParameter *virTypedParameterPtr;

View File

@@ -35,7 +35,7 @@
* domain disks have been altered since a point in time, but by itself does
* not allow reverting back to that point in time.
*
* Since: v5.2.0
* Since: 5.2.0
*/
typedef struct _virDomainCheckpoint virDomainCheckpoint;
@@ -46,7 +46,7 @@ typedef struct _virDomainCheckpoint virDomainCheckpoint;
* private structure, and is the type used to reference a domain
* checkpoint in the API.
*
* Since: v5.2.0
* Since: 5.2.0
*/
typedef virDomainCheckpoint *virDomainCheckpointPtr;
@@ -57,17 +57,17 @@ virConnectPtr virDomainCheckpointGetConnect(virDomainCheckpointPtr checkpoint);
/**
* virDomainCheckpointCreateFlags:
*
* Since: v5.6.0
* Since: 5.6.0
*/
typedef enum {
VIR_DOMAIN_CHECKPOINT_CREATE_REDEFINE = (1 << 0), /* Restore or alter
metadata */
metadata (Since: 5.6.0) */
VIR_DOMAIN_CHECKPOINT_CREATE_QUIESCE = (1 << 1), /* use guest agent to
quiesce all mounted
file systems within
the domain */
the domain (Since: 5.6.0) */
VIR_DOMAIN_CHECKPOINT_CREATE_REDEFINE_VALIDATE = (1 << 2), /* validate disk data state
when redefining a checkpoint */
when redefining a checkpoint (Since: 6.10.0) */
} virDomainCheckpointCreateFlags;
/* Create a checkpoint using the current VM state. */
@@ -77,14 +77,14 @@ virDomainCheckpointPtr virDomainCheckpointCreateXML(virDomainPtr domain,
/**
* virDomainCheckpointXMLFlags:
*
* Since: v5.6.0
* Since: 5.6.0
*/
typedef enum {
VIR_DOMAIN_CHECKPOINT_XML_SECURE = (1 << 0), /* Include sensitive data */
VIR_DOMAIN_CHECKPOINT_XML_SECURE = (1 << 0), /* Include sensitive data (Since: 5.6.0) */
VIR_DOMAIN_CHECKPOINT_XML_NO_DOMAIN = (1 << 1), /* Suppress <domain>
subelement */
subelement (Since: 5.6.0) */
VIR_DOMAIN_CHECKPOINT_XML_SIZE = (1 << 2), /* Include dynamic
per-<disk> size */
per-<disk> size (Since: 5.6.0) */
} virDomainCheckpointXMLFlags;
/* Dump the XML of a checkpoint */
@@ -101,23 +101,23 @@ char *virDomainCheckpointGetXMLDesc(virDomainCheckpointPtr checkpoint,
* recursive. Remaining bits come in groups; if all bits from a group
* are 0, then that group is not used to filter results.
*
* Since: v5.6.0
* Since: 5.6.0
*/
typedef enum {
VIR_DOMAIN_CHECKPOINT_LIST_ROOTS = (1 << 0), /* Filter by checkpoints
with no parents, when
listing a domain */
listing a domain (Since: 5.6.0) */
VIR_DOMAIN_CHECKPOINT_LIST_DESCENDANTS = (1 << 0), /* List all descendants,
not just children, when
listing a checkpoint */
listing a checkpoint (Since: 5.6.0) */
VIR_DOMAIN_CHECKPOINT_LIST_TOPOLOGICAL = (1 << 1), /* Ensure parents occur
before children in
the resulting list */
the resulting list (Since: 5.6.0) */
VIR_DOMAIN_CHECKPOINT_LIST_LEAVES = (1 << 2), /* Filter by checkpoints
with no children */
with no children (Since: 5.6.0) */
VIR_DOMAIN_CHECKPOINT_LIST_NO_LEAVES = (1 << 3), /* Filter by checkpoints
that have children */
that have children (Since: 5.6.0) */
} virDomainCheckpointListFlags;
/* Get all checkpoint objects for this domain */
@@ -144,12 +144,12 @@ virDomainCheckpointPtr virDomainCheckpointGetParent(virDomainCheckpointPtr check
*
* Delete a checkpoint
*
* Since: v5.6.0
* Since: 5.6.0
*/
typedef enum {
VIR_DOMAIN_CHECKPOINT_DELETE_CHILDREN = (1 << 0), /* Also delete children */
VIR_DOMAIN_CHECKPOINT_DELETE_METADATA_ONLY = (1 << 1), /* Delete just metadata */
VIR_DOMAIN_CHECKPOINT_DELETE_CHILDREN_ONLY = (1 << 2), /* Delete just children */
VIR_DOMAIN_CHECKPOINT_DELETE_CHILDREN = (1 << 0), /* Also delete children (Since: 5.6.0) */
VIR_DOMAIN_CHECKPOINT_DELETE_METADATA_ONLY = (1 << 1), /* Delete just metadata (Since: 5.6.0) */
VIR_DOMAIN_CHECKPOINT_DELETE_CHILDREN_ONLY = (1 << 2), /* Delete just children (Since: 5.6.0) */
} virDomainCheckpointDeleteFlags;
int virDomainCheckpointDelete(virDomainCheckpointPtr checkpoint,

View File

@@ -35,7 +35,7 @@
* time, with the intent that the guest can be reverted back to that
* state at a later time.
*
* Since: v0.8.0
* Since: 0.8.0
*/
typedef struct _virDomainSnapshot virDomainSnapshot;
@@ -45,7 +45,7 @@ typedef struct _virDomainSnapshot virDomainSnapshot;
* A virDomainSnapshotPtr is pointer to a virDomainSnapshot private structure,
* and is the type used to reference a domain snapshot in the API.
*
* Since: v0.8.0
* Since: 0.8.0
*/
typedef virDomainSnapshot *virDomainSnapshotPtr;
@@ -56,32 +56,32 @@ virConnectPtr virDomainSnapshotGetConnect(virDomainSnapshotPtr snapshot);
/**
* virDomainSnapshotCreateFlags:
*
* Since: v0.9.5
* Since: 0.9.5
*/
typedef enum {
VIR_DOMAIN_SNAPSHOT_CREATE_REDEFINE = (1 << 0), /* Restore or alter
metadata */
metadata (Since: 0.9.5) */
VIR_DOMAIN_SNAPSHOT_CREATE_CURRENT = (1 << 1), /* With redefine, make
snapshot current */
snapshot current (Since: 0.9.5) */
VIR_DOMAIN_SNAPSHOT_CREATE_NO_METADATA = (1 << 2), /* Make snapshot without
remembering it */
remembering it (Since: 0.9.5) */
VIR_DOMAIN_SNAPSHOT_CREATE_HALT = (1 << 3), /* Stop running guest
after snapshot */
after snapshot (Since: 0.9.5) */
VIR_DOMAIN_SNAPSHOT_CREATE_DISK_ONLY = (1 << 4), /* disk snapshot, not
full system */
full system (Since: 0.9.5) */
VIR_DOMAIN_SNAPSHOT_CREATE_REUSE_EXT = (1 << 5), /* reuse any existing
external files */
external files (Since: 0.9.10) */
VIR_DOMAIN_SNAPSHOT_CREATE_QUIESCE = (1 << 6), /* use guest agent to
quiesce all mounted
file systems within
the domain */
the domain (Since: 0.9.10) */
VIR_DOMAIN_SNAPSHOT_CREATE_ATOMIC = (1 << 7), /* atomically avoid
partial changes */
partial changes (Since: 0.9.11) */
VIR_DOMAIN_SNAPSHOT_CREATE_LIVE = (1 << 8), /* create the snapshot
while the guest is
running */
running (Since: 1.0.1) */
VIR_DOMAIN_SNAPSHOT_CREATE_VALIDATE = (1 << 9), /* validate the XML
against the schema */
against the schema (Since: 5.6.0) */
} virDomainSnapshotCreateFlags;
/* Take a snapshot of the current VM state */
@@ -91,10 +91,10 @@ virDomainSnapshotPtr virDomainSnapshotCreateXML(virDomainPtr domain,
/**
* virDomainSnapshotXMLFlags:
*
* Since: v5.1.0
* Since: 5.1.0
*/
typedef enum {
VIR_DOMAIN_SNAPSHOT_XML_SECURE = VIR_DOMAIN_XML_SECURE, /* dump security sensitive information too */
VIR_DOMAIN_SNAPSHOT_XML_SECURE = VIR_DOMAIN_XML_SECURE, /* dump security sensitive information too (Since: 5.1.0) */
} virDomainSnapshotXMLFlags;
/* Dump the XML of a snapshot */
@@ -113,50 +113,48 @@ char *virDomainSnapshotGetXMLDesc(virDomainSnapshotPtr snapshot,
* recursive. Remaining bits come in groups; if all bits from a group are
* 0, then that group is not used to filter results.
*
* Since: v0.9.5
* Since: 0.9.5
*/
typedef enum {
VIR_DOMAIN_SNAPSHOT_LIST_ROOTS = (1 << 0), /* Filter by snapshots
with no parents, when
listing a domain */
listing a domain (Since: 0.9.5) */
VIR_DOMAIN_SNAPSHOT_LIST_DESCENDANTS = (1 << 0), /* List all descendants,
not just children, when
listing a snapshot */
/* For historical reasons, groups do not use contiguous bits. */
listing a snapshot (Since: 0.9.7) */
VIR_DOMAIN_SNAPSHOT_LIST_LEAVES = (1 << 2), /* Filter by snapshots
with no children */
with no children (Since: 0.9.7) */
VIR_DOMAIN_SNAPSHOT_LIST_NO_LEAVES = (1 << 3), /* Filter by snapshots
that have children */
that have children (Since: 0.9.13) */
VIR_DOMAIN_SNAPSHOT_LIST_METADATA = (1 << 1), /* Filter by snapshots
which have metadata */
which have metadata (Since: 0.9.5) */
VIR_DOMAIN_SNAPSHOT_LIST_NO_METADATA = (1 << 4), /* Filter by snapshots
with no metadata */
with no metadata (Since: 0.9.13) */
VIR_DOMAIN_SNAPSHOT_LIST_INACTIVE = (1 << 5), /* Filter by snapshots
taken while guest was
shut off */
shut off (Since: 1.0.1) */
VIR_DOMAIN_SNAPSHOT_LIST_ACTIVE = (1 << 6), /* Filter by snapshots
taken while guest was
active, and with
memory state */
memory state (Since: 1.0.1) */
VIR_DOMAIN_SNAPSHOT_LIST_DISK_ONLY = (1 << 7), /* Filter by snapshots
taken while guest was
active, but without
memory state */
memory state (Since: 1.0.1) */
VIR_DOMAIN_SNAPSHOT_LIST_INTERNAL = (1 << 8), /* Filter by snapshots
stored internal to
disk images */
disk images (Since: 1.0.1) */
VIR_DOMAIN_SNAPSHOT_LIST_EXTERNAL = (1 << 9), /* Filter by snapshots
that use files external
to disk images */
to disk images (Since: 1.0.1) */
VIR_DOMAIN_SNAPSHOT_LIST_TOPOLOGICAL = (1 << 10), /* Ensure parents occur
before children in
the resulting list */
the resulting list (Since: 5.2.0) */
} virDomainSnapshotListFlags;
/* Return the number of snapshots for this domain */
@@ -213,13 +211,13 @@ int virDomainSnapshotHasMetadata(virDomainSnapshotPtr snapshot,
/**
* virDomainSnapshotRevertFlags:
*
* Since: v0.9.5
* Since: 0.9.5
*/
typedef enum {
VIR_DOMAIN_SNAPSHOT_REVERT_RUNNING = 1 << 0, /* Run after revert */
VIR_DOMAIN_SNAPSHOT_REVERT_PAUSED = 1 << 1, /* Pause after revert */
VIR_DOMAIN_SNAPSHOT_REVERT_FORCE = 1 << 2, /* Allow risky reverts */
VIR_DOMAIN_SNAPSHOT_REVERT_RESET_NVRAM = 1 << 3, /* Re-initialize NVRAM from template */
VIR_DOMAIN_SNAPSHOT_REVERT_RUNNING = 1 << 0, /* Run after revert (Since: 0.9.5) */
VIR_DOMAIN_SNAPSHOT_REVERT_PAUSED = 1 << 1, /* Pause after revert (Since: 0.9.5) */
VIR_DOMAIN_SNAPSHOT_REVERT_FORCE = 1 << 2, /* Allow risky reverts (Since: 0.9.7) */
VIR_DOMAIN_SNAPSHOT_REVERT_RESET_NVRAM = 1 << 3, /* Re-initialize NVRAM from template (Since: 8.1.0) */
} virDomainSnapshotRevertFlags;
/* Revert the domain to a point-in-time snapshot. The
@@ -234,12 +232,12 @@ int virDomainRevertToSnapshot(virDomainSnapshotPtr snapshot,
*
* Delete a snapshot
*
* Since: v0.8.0
* Since: 0.8.0
*/
typedef enum {
VIR_DOMAIN_SNAPSHOT_DELETE_CHILDREN = (1 << 0), /* Also delete children */
VIR_DOMAIN_SNAPSHOT_DELETE_METADATA_ONLY = (1 << 1), /* Delete just metadata */
VIR_DOMAIN_SNAPSHOT_DELETE_CHILDREN_ONLY = (1 << 2), /* Delete just children */
VIR_DOMAIN_SNAPSHOT_DELETE_CHILDREN = (1 << 0), /* Also delete children (Since: 0.8.0) */
VIR_DOMAIN_SNAPSHOT_DELETE_METADATA_ONLY = (1 << 1), /* Delete just metadata (Since: 0.9.5) */
VIR_DOMAIN_SNAPSHOT_DELETE_CHILDREN_ONLY = (1 << 2), /* Delete just children (Since: 0.9.5) */
} virDomainSnapshotDeleteFlags;
int virDomainSnapshotDelete(virDomainSnapshotPtr snapshot,

File diff suppressed because it is too large Load Diff

View File

@@ -35,13 +35,13 @@
* to libvirt. A client app must translate to, and from POLL events when using
* this construct.
*
* Since: v0.5.0
* Since: 0.5.0
*/
typedef enum {
VIR_EVENT_HANDLE_READABLE = (1 << 0),
VIR_EVENT_HANDLE_WRITABLE = (1 << 1),
VIR_EVENT_HANDLE_ERROR = (1 << 2),
VIR_EVENT_HANDLE_HANGUP = (1 << 3),
VIR_EVENT_HANDLE_READABLE = (1 << 0), /* (Since: 0.5.0) */
VIR_EVENT_HANDLE_WRITABLE = (1 << 1), /* (Since: 0.5.0) */
VIR_EVENT_HANDLE_ERROR = (1 << 2), /* (Since: 0.5.0) */
VIR_EVENT_HANDLE_HANGUP = (1 << 3), /* (Since: 0.5.0) */
} virEventHandleType;
/**
@@ -54,6 +54,8 @@ typedef enum {
*
* Callback for receiving file handle events. The callback will
* be invoked once for each event which is pending.
*
* Since: 0.5.0
*/
typedef void (*virEventHandleCallback)(int watch, int fd, int events, void *opaque);
@@ -81,6 +83,8 @@ typedef void (*virEventHandleCallback)(int watch, int fd, int events, void *opaq
*
* Returns -1 if the file handle cannot be registered, otherwise a handle
* watch number to be used for updating and unregistering for events
*
* Since: 0.5.0
*/
typedef int (*virEventAddHandleFunc)(int fd, int event,
virEventHandleCallback cb,
@@ -94,6 +98,8 @@ typedef int (*virEventAddHandleFunc)(int fd, int event,
*
* Part of the EventImpl, this user-provided callback is notified when
* events to listen on change
*
* Since: 0.5.0
*/
typedef void (*virEventUpdateHandleFunc)(int watch, int event);
@@ -109,6 +115,8 @@ typedef void (*virEventUpdateHandleFunc)(int watch, int event);
* function call, when it is safe to release the user data.
*
* Returns -1 if the file handle was not registered, 0 upon success
*
* Since: 0.5.0
*/
typedef int (*virEventRemoveHandleFunc)(int watch);
@@ -119,6 +127,8 @@ typedef int (*virEventRemoveHandleFunc)(int watch);
* @opaque: user data registered with handle
*
* callback for receiving timer events
*
* Since: 0.5.0
*/
typedef void (*virEventTimeoutCallback)(int timer, void *opaque);
@@ -137,6 +147,8 @@ typedef void (*virEventTimeoutCallback)(int timer, void *opaque);
* this purpose.
*
* Returns a timer value
*
* Since: 0.5.0
*/
typedef int (*virEventAddTimeoutFunc)(int timeout,
virEventTimeoutCallback cb,
@@ -150,6 +162,8 @@ typedef int (*virEventAddTimeoutFunc)(int timeout,
*
* Part of the EventImpl, this user-defined callback updates an
* event timeout.
*
* Since: 0.5.0
*/
typedef void (*virEventUpdateTimeoutFunc)(int timer, int timeout);
@@ -164,6 +178,8 @@ typedef void (*virEventUpdateTimeoutFunc)(int timer, int timeout);
* function call, when it is safe to release the user data.
*
* Returns 0 on success, -1 on failure
*
* Since: 0.5.0
*/
typedef int (*virEventRemoveTimeoutFunc)(int timer);

View File

@@ -34,7 +34,7 @@
* a virConnect is a private structure representing a connection to
* the Hypervisor.
*
* Since: v0.0.1
* Since: 0.0.1
*/
typedef struct _virConnect virConnect;
@@ -44,7 +44,7 @@ typedef struct _virConnect virConnect;
* a virConnectPtr is pointer to a virConnect private structure, this is the
* type used to reference a connection to the Hypervisor in the API.
*
* Since: v0.0.1
* Since: 0.0.1
*/
typedef virConnect *virConnectPtr;
@@ -54,15 +54,15 @@ typedef virConnect *virConnectPtr;
* Flags to indicate which system-wide sleep state the host must be
* transitioned to.
*
* Since: v0.9.8
* Since: 0.9.8
*/
typedef enum {
VIR_NODE_SUSPEND_TARGET_MEM = 0,
VIR_NODE_SUSPEND_TARGET_DISK = 1,
VIR_NODE_SUSPEND_TARGET_HYBRID = 2,
VIR_NODE_SUSPEND_TARGET_MEM = 0, /* (Since: 0.9.8) */
VIR_NODE_SUSPEND_TARGET_DISK = 1, /* (Since: 0.9.8) */
VIR_NODE_SUSPEND_TARGET_HYBRID = 2, /* (Since: 0.9.8) */
# ifdef VIR_ENUM_SENTINELS
VIR_NODE_SUSPEND_TARGET_LAST /* This constant is subject to change */
VIR_NODE_SUSPEND_TARGET_LAST /* This constant is subject to change (Since: 0.9.8) */
# endif
} virNodeSuspendTarget;
@@ -71,7 +71,7 @@ typedef enum {
*
* a virStream is a private structure representing a data stream.
*
* Since: v0.7.2
* Since: 0.7.2
*/
typedef struct _virStream virStream;
@@ -81,7 +81,7 @@ typedef struct _virStream virStream;
* a virStreamPtr is pointer to a virStream private structure, this is the
* type used to reference a data stream in the API.
*
* Since: v0.7.2
* Since: 0.7.2
*/
typedef virStream *virStreamPtr;
@@ -91,7 +91,7 @@ typedef virStream *virStreamPtr;
* Macro providing the maximum length of the virSecurityLabel label string.
* Note that this value is based on that used by Labeled NFS.
*
* Since: v0.6.1
* Since: 0.6.1
*/
# define VIR_SECURITY_LABEL_BUFLEN (4096 + 1)
@@ -102,7 +102,7 @@ typedef virStream *virStreamPtr;
* providing the security label and associated attributes for the specified
* domain.
*
* Since: v0.6.1
* Since: 0.6.1
*/
typedef struct _virSecurityLabel virSecurityLabel;
@@ -116,7 +116,7 @@ struct _virSecurityLabel {
*
* a virSecurityLabelPtr is a pointer to a virSecurityLabel.
*
* Since: v0.6.1
* Since: 0.6.1
*/
typedef virSecurityLabel *virSecurityLabelPtr;
@@ -125,7 +125,7 @@ typedef virSecurityLabel *virSecurityLabelPtr;
*
* Macro providing the maximum length of the virSecurityModel model string.
*
* Since: v0.6.1
* Since: 0.6.1
*/
# define VIR_SECURITY_MODEL_BUFLEN (256 + 1)
@@ -134,7 +134,7 @@ typedef virSecurityLabel *virSecurityLabelPtr;
*
* Macro providing the maximum length of the virSecurityModel doi string.
*
* Since: v0.6.1
* Since: 0.6.1
*/
# define VIR_SECURITY_DOI_BUFLEN (256 + 1)
@@ -145,7 +145,7 @@ typedef virSecurityLabel *virSecurityLabelPtr;
* providing the per-hypervisor security model and DOI attributes for the
* specified domain.
*
* Since: v0.6.1
* Since: 0.6.1
*/
typedef struct _virSecurityModel virSecurityModel;
@@ -159,7 +159,7 @@ struct _virSecurityModel {
*
* a virSecurityModelPtr is a pointer to a virSecurityModel.
*
* Since: v0.6.1
* Since: 0.6.1
*/
typedef virSecurityModel *virSecurityModelPtr;
@@ -176,7 +176,7 @@ typedef virSecurityModel *virSecurityModelPtr;
* accurate relection of the system hardware. See the virNodeGetInfo()
* API documentation for further guidance.
*
* Since: v0.1.0
* Since: 0.1.0
*/
typedef struct _virNodeInfo virNodeInfo;
@@ -202,7 +202,7 @@ struct _virNodeInfo {
*
* Macro providing the field length of virNodeCPUStats
*
* Since: v0.9.3
* Since: 0.9.3
*/
# define VIR_NODE_CPU_STATS_FIELD_LENGTH 80
@@ -211,10 +211,10 @@ struct _virNodeInfo {
*
* Value for specifying request for the total CPU time/utilization
*
* Since: v0.9.8
* Since: 0.9.8
*/
typedef enum {
VIR_NODE_CPU_STATS_ALL_CPUS = -1,
VIR_NODE_CPU_STATS_ALL_CPUS = -1, /* (Since: 0.9.3) */
} virNodeGetCPUStatsAllCPUs;
/**
@@ -223,7 +223,7 @@ typedef enum {
* Macro for the cumulative CPU time which was spent by the kernel,
* since the node booting up (in nanoseconds).
*
* Since: v0.9.3
* Since: 0.9.3
*/
# define VIR_NODE_CPU_STATS_KERNEL "kernel"
@@ -233,7 +233,7 @@ typedef enum {
* The cumulative CPU time which was spent by user processes,
* since the node booting up (in nanoseconds).
*
* Since: v0.9.3
* Since: 0.9.3
*/
# define VIR_NODE_CPU_STATS_USER "user"
@@ -243,7 +243,7 @@ typedef enum {
* The cumulative idle CPU time,
* since the node booting up (in nanoseconds).
*
* Since: v0.9.3
* Since: 0.9.3
*/
# define VIR_NODE_CPU_STATS_IDLE "idle"
@@ -253,7 +253,7 @@ typedef enum {
* The cumulative I/O wait CPU time,
* since the node booting up (in nanoseconds).
*
* Since: v0.9.3
* Since: 0.9.3
*/
# define VIR_NODE_CPU_STATS_IOWAIT "iowait"
@@ -263,7 +263,7 @@ typedef enum {
* The cumulative interrupt CPU time,
* since the node booting up (in nanoseconds).
*
* Since: v1.2.2
* Since: 1.2.2
*/
# define VIR_NODE_CPU_STATS_INTR "intr"
@@ -274,7 +274,7 @@ typedef enum {
* The usage value is in percent and 100% represents all CPUs of
* the node.
*
* Since: v0.9.3
* Since: 0.9.3
*/
# define VIR_NODE_CPU_STATS_UTILIZATION "utilization"
@@ -284,7 +284,7 @@ typedef enum {
* a virNodeCPUStats is a structure filled by virNodeGetCPUStats()
* providing information about the CPU stats of the node.
*
* Since: v0.9.3
* Since: 0.9.3
*/
typedef struct _virNodeCPUStats virNodeCPUStats;
@@ -298,7 +298,7 @@ struct _virNodeCPUStats {
*
* Macro providing the field length of virNodeMemoryStats
*
* Since: v0.9.3
* Since: 0.9.3
*/
# define VIR_NODE_MEMORY_STATS_FIELD_LENGTH 80
@@ -307,10 +307,10 @@ struct _virNodeCPUStats {
*
* Value for specifying request for the total memory of all cells.
*
* Since: v0.9.8
* Since: 0.9.8
*/
typedef enum {
VIR_NODE_MEMORY_STATS_ALL_CELLS = -1,
VIR_NODE_MEMORY_STATS_ALL_CELLS = -1, /* (Since: 0.9.3) */
} virNodeGetMemoryStatsAllCells;
/**
@@ -319,7 +319,7 @@ typedef enum {
* Macro for the total memory of specified cell:
* it represents the maximum memory.
*
* Since: v0.9.3
* Since: 0.9.3
*/
# define VIR_NODE_MEMORY_STATS_TOTAL "total"
@@ -330,7 +330,7 @@ typedef enum {
* On Linux, it includes buffer and cached memory, in case of
* VIR_NODE_MEMORY_STATS_ALL_CELLS.
*
* Since: v0.9.3
* Since: 0.9.3
*/
# define VIR_NODE_MEMORY_STATS_FREE "free"
@@ -340,7 +340,7 @@ typedef enum {
* Macro for the buffer memory: On Linux, it is only returned in case of
* VIR_NODE_MEMORY_STATS_ALL_CELLS.
*
* Since: v0.9.3
* Since: 0.9.3
*/
# define VIR_NODE_MEMORY_STATS_BUFFERS "buffers"
@@ -350,7 +350,7 @@ typedef enum {
* Macro for the cached memory: On Linux, it is only returned in case of
* VIR_NODE_MEMORY_STATS_ALL_CELLS.
*
* Since: v0.9.3
* Since: 0.9.3
*/
# define VIR_NODE_MEMORY_STATS_CACHED "cached"
@@ -360,7 +360,7 @@ typedef enum {
* a virNodeMemoryStats is a structure filled by virNodeGetMemoryStats()
* providing information about the memory of the node.
*
* Since: v0.9.3
* Since: 0.9.3
*/
typedef struct _virNodeMemoryStats virNodeMemoryStats;
@@ -375,7 +375,7 @@ struct _virNodeMemoryStats {
* Macro for typed parameter that represents how many present pages
* to scan before the shared memory service goes to sleep.
*
* Since: v0.10.2
* Since: 0.10.2
*/
# define VIR_NODE_MEMORY_SHARED_PAGES_TO_SCAN "shm_pages_to_scan"
@@ -385,7 +385,7 @@ struct _virNodeMemoryStats {
* Macro for typed parameter that represents how many milliseconds
* the shared memory service should sleep before next scan.
*
* Since: v0.10.2
* Since: 0.10.2
*/
# define VIR_NODE_MEMORY_SHARED_SLEEP_MILLISECS "shm_sleep_millisecs"
@@ -395,7 +395,7 @@ struct _virNodeMemoryStats {
* Macro for typed parameter that represents how many the shared
* memory pages are being used.
*
* Since: v0.10.2
* Since: 0.10.2
*/
# define VIR_NODE_MEMORY_SHARED_PAGES_SHARED "shm_pages_shared"
@@ -405,7 +405,7 @@ struct _virNodeMemoryStats {
* Macro for typed parameter that represents how many sites are
* sharing the pages i.e. how much saved.
*
* Since: v0.10.2
* Since: 0.10.2
*/
# define VIR_NODE_MEMORY_SHARED_PAGES_SHARING "shm_pages_sharing"
@@ -415,7 +415,7 @@ struct _virNodeMemoryStats {
* Macro for typed parameter that represents how many pages unique
* but repeatedly checked for merging.
*
* Since: v0.10.2
* Since: 0.10.2
*/
# define VIR_NODE_MEMORY_SHARED_PAGES_UNSHARED "shm_pages_unshared"
@@ -425,7 +425,7 @@ struct _virNodeMemoryStats {
* Macro for typed parameter that represents how many pages changing
* too fast to be placed in a tree.
*
* Since: v0.10.2
* Since: 0.10.2
*/
# define VIR_NODE_MEMORY_SHARED_PAGES_VOLATILE "shm_pages_volatile"
@@ -435,7 +435,7 @@ struct _virNodeMemoryStats {
* Macro for typed parameter that represents how many times all
* mergeable areas have been scanned.
*
* Since: v0.10.2
* Since: 0.10.2
*/
# define VIR_NODE_MEMORY_SHARED_FULL_SCANS "shm_full_scans"
@@ -449,7 +449,7 @@ struct _virNodeMemoryStats {
* pages from all nodes can be merged. Other values are reserved
* for future use.
*
* Since: v1.0.0
* Since: 1.0.0
*/
# define VIR_NODE_MEMORY_SHARED_MERGE_ACROSS_NODES "shm_merge_across_nodes"
@@ -480,7 +480,7 @@ int virNodeGetCPUMap(virConnectPtr conn,
* This macro is to calculate the total number of CPUs supported
* but not necessary active in the host.
*
* Since: v0.1.4
* Since: 0.1.4
*/
# define VIR_NODEINFO_MAXCPUS(nodeinfo) ((nodeinfo).nodes*(nodeinfo).sockets*(nodeinfo).cores*(nodeinfo).threads)
@@ -489,7 +489,7 @@ int virNodeGetCPUMap(virConnectPtr conn,
*
* a virNodeInfoPtr is a pointer to a virNodeInfo structure.
*
* Since: v0.1.0
* Since: 0.1.0
*/
typedef virNodeInfo *virNodeInfoPtr;
@@ -498,7 +498,7 @@ typedef virNodeInfo *virNodeInfoPtr;
*
* a virNodeCPUStatsPtr is a pointer to a virNodeCPUStats structure.
*
* Since: v0.9.3
* Since: 0.9.3
*/
typedef virNodeCPUStats *virNodeCPUStatsPtr;
@@ -507,7 +507,7 @@ typedef virNodeCPUStats *virNodeCPUStatsPtr;
*
* a virNodeMemoryStatsPtr is a pointer to a virNodeMemoryStats structure.
*
* Since: v0.9.3
* Since: 0.9.3
*/
typedef virNodeMemoryStats *virNodeMemoryStatsPtr;
@@ -522,7 +522,7 @@ typedef virNodeMemoryStats *virNodeMemoryStatsPtr;
*
* Macro represents the Platform Diffie-Hellman key, as VIR_TYPED_PARAMS_STRING.
*
* Since: v4.5.0
* Since: 4.5.0
*/
# define VIR_NODE_SEV_PDH "pdh"
@@ -533,16 +533,27 @@ typedef virNodeMemoryStats *virNodeMemoryStatsPtr;
* endorsement key (PEK), owner certificate authority (OCD) and chip
* endorsement key (CEK), as VIR_TYPED_PARAMS_STRING.
*
* Since: v4.5.0
* Since: 4.5.0
*/
# define VIR_NODE_SEV_CERT_CHAIN "cert-chain"
/**
* VIR_NODE_SEV_CPU0_ID:
*
* Macro represents the unique ID of CPU0 (socket 0) needed to retrieve
* the signed CEK of the CPU from AMD's Key Distribution Service (KDS),
* as VIR_TYPED_PARAMS_STRING.
*
* Since: 8.4.0
*/
# define VIR_NODE_SEV_CPU0_ID "cpu0-id"
/**
* VIR_NODE_SEV_CBITPOS:
*
* Macro represents the CBit Position used by hypervisor when SEV is enabled.
*
* Since: v4.5.0
* Since: 4.5.0
*/
# define VIR_NODE_SEV_CBITPOS "cbitpos"
@@ -552,7 +563,7 @@ typedef virNodeMemoryStats *virNodeMemoryStatsPtr;
* Macro represents the number of bits we lose in physical address space
* when SEV is enabled in the guest.
*
* Since: v4.5.0
* Since: 4.5.0
*/
# define VIR_NODE_SEV_REDUCED_PHYS_BITS "reduced-phys-bits"
@@ -562,7 +573,7 @@ typedef virNodeMemoryStats *virNodeMemoryStatsPtr;
* Macro represents the number of SEV guests that can
* be run on the host, as a VIR_TYPED_PARAM_UINT.
*
* Since: v8.0.0
* Since: 8.0.0
*/
# define VIR_NODE_SEV_MAX_GUESTS "max-guests"
@@ -572,7 +583,7 @@ typedef virNodeMemoryStats *virNodeMemoryStatsPtr;
* Macro represents the number of SEV-ES guests that can
* be run on the host, as a VIR_TYPED_PARAM_UINT.
*
* Since: v8.0.0
* Since: 8.0.0
*/
# define VIR_NODE_SEV_MAX_ES_GUESTS "max-es-guests"
@@ -586,31 +597,31 @@ int virNodeGetSEVInfo (virConnectPtr conn,
*
* Flags when opening a connection to a hypervisor
*
* Since: v0.4.1
* Since: 0.4.1
*/
typedef enum {
VIR_CONNECT_RO = (1 << 0), /* A readonly connection */
VIR_CONNECT_NO_ALIASES = (1 << 1), /* Don't try to resolve URI aliases */
VIR_CONNECT_RO = (1 << 0), /* A readonly connection (Since: 0.4.1) */
VIR_CONNECT_NO_ALIASES = (1 << 1), /* Don't try to resolve URI aliases (Since: 0.9.7) */
} virConnectFlags;
/**
* virConnectCredentialType:
*
* Since: v0.4.1
* Since: 0.4.1
*/
typedef enum {
VIR_CRED_USERNAME = 1, /* Identity to act as */
VIR_CRED_AUTHNAME = 2, /* Identify to authorize as */
VIR_CRED_LANGUAGE = 3, /* RFC 1766 languages, comma separated */
VIR_CRED_CNONCE = 4, /* client supplies a nonce */
VIR_CRED_PASSPHRASE = 5, /* Passphrase secret */
VIR_CRED_ECHOPROMPT = 6, /* Challenge response */
VIR_CRED_NOECHOPROMPT = 7, /* Challenge response */
VIR_CRED_REALM = 8, /* Authentication realm */
VIR_CRED_EXTERNAL = 9, /* Externally managed credential */
VIR_CRED_USERNAME = 1, /* Identity to act as (Since: 0.4.1) */
VIR_CRED_AUTHNAME = 2, /* Identify to authorize as (Since: 0.4.1) */
VIR_CRED_LANGUAGE = 3, /* RFC 1766 languages, comma separated (Since: 0.4.1) */
VIR_CRED_CNONCE = 4, /* client supplies a nonce (Since: 0.4.1) */
VIR_CRED_PASSPHRASE = 5, /* Passphrase secret (Since: 0.4.1) */
VIR_CRED_ECHOPROMPT = 6, /* Challenge response (Since: 0.4.1) */
VIR_CRED_NOECHOPROMPT = 7, /* Challenge response (Since: 0.4.1) */
VIR_CRED_REALM = 8, /* Authentication realm (Since: 0.4.1) */
VIR_CRED_EXTERNAL = 9, /* Externally managed credential (Since: 0.4.1) */
# ifdef VIR_ENUM_SENTINELS
VIR_CRED_LAST /* More may be added - expect the unexpected */
VIR_CRED_LAST /* More may be added - expect the unexpected (Since: 0.9.10) */
# endif
} virConnectCredentialType;
@@ -626,14 +637,14 @@ struct _virConnectCredential {
/**
* virConnectCredential:
*
* Since: v0.4.1
* Since: 0.4.1
*/
typedef struct _virConnectCredential virConnectCredential;
/**
* virConnectCredentialPtr:
*
* Since: v0.4.1
* Since: 0.4.1
*/
typedef virConnectCredential *virConnectCredentialPtr;
@@ -650,6 +661,8 @@ typedef virConnectCredential *virConnectCredentialPtr;
* If an interaction cannot be filled, fill in NULL and 0.
*
* Returns 0 if all interactions were filled, or -1 upon error
*
* Since: 0.4.1
*/
typedef int (*virConnectAuthCallbackPtr)(virConnectCredentialPtr cred,
unsigned int ncred,
@@ -666,14 +679,14 @@ struct _virConnectAuth {
/**
* virConnectAuth:
*
* Since: v0.4.1
* Since: 0.4.1
*/
typedef struct _virConnectAuth virConnectAuth;
/**
* virConnectAuthPtr:
*
* Since: v0.4.1
* Since: 0.4.1
*/
typedef virConnectAuth *virConnectAuthPtr;
@@ -687,7 +700,7 @@ typedef virConnectAuth *virConnectAuthPtr;
* suitable for the application's needs an alternative implementation
* should be provided.
*
* Since: v0.4.1
* Since: 0.4.1
*/
VIR_EXPORT_VAR virConnectAuthPtr virConnectAuthPtrDefault;
@@ -697,7 +710,7 @@ VIR_EXPORT_VAR virConnectAuthPtr virConnectAuthPtrDefault;
* This macro provides the length of the buffer required
* for virDomainGetUUID()
*
* Since: v0.2.0
* Since: 0.2.0
*/
# define VIR_UUID_BUFLEN (16)
@@ -707,7 +720,7 @@ VIR_EXPORT_VAR virConnectAuthPtr virConnectAuthPtrDefault;
* This macro provides the length of the buffer required
* for virDomainGetUUIDString()
*
* Since: v0.2.0
* Since: 0.2.0
*/
# define VIR_UUID_STRING_BUFLEN (36+1)
@@ -734,7 +747,7 @@ int virConnectClose (virConnectPtr conn);
*
* The operating system user name as VIR_TYPED_PARAM_STRING.
*
* Since: v5.8.0
* Since: 5.8.0
*/
# define VIR_CONNECT_IDENTITY_USER_NAME "user-name"
@@ -743,7 +756,7 @@ int virConnectClose (virConnectPtr conn);
*
* The UNIX user ID as VIR_TYPED_PARAM_ULLONG.
*
* Since: v5.8.0
* Since: 5.8.0
*/
# define VIR_CONNECT_IDENTITY_UNIX_USER_ID "unix-user-id"
@@ -752,7 +765,7 @@ int virConnectClose (virConnectPtr conn);
*
* The operating system group name as VIR_TYPED_PARAM_STRING.
*
* Since: v5.8.0
* Since: 5.8.0
*/
# define VIR_CONNECT_IDENTITY_GROUP_NAME "group-name"
@@ -761,7 +774,7 @@ int virConnectClose (virConnectPtr conn);
*
* The UNIX group ID as VIR_TYPED_PARAM_ULLONG.
*
* Since: v5.8.0
* Since: 5.8.0
*/
# define VIR_CONNECT_IDENTITY_UNIX_GROUP_ID "unix-group-id"
@@ -770,7 +783,7 @@ int virConnectClose (virConnectPtr conn);
*
* The operating system process ID as VIR_TYPED_PARAM_LLONG.
*
* Since: v5.8.0
* Since: 5.8.0
*/
# define VIR_CONNECT_IDENTITY_PROCESS_ID "process-id"
@@ -783,7 +796,7 @@ int virConnectClose (virConnectPtr conn);
* host operating system. On Linux this is usually clock
* ticks (as reported in /proc/$PID/stat field 22).
*
* Since: v5.8.0
* Since: 5.8.0
*/
# define VIR_CONNECT_IDENTITY_PROCESS_TIME "process-time"
@@ -792,7 +805,7 @@ int virConnectClose (virConnectPtr conn);
*
* The SASL authenticated username as VIR_TYPED_PARAM_STRING
*
* Since: v5.8.0
* Since: 5.8.0
*/
# define VIR_CONNECT_IDENTITY_SASL_USER_NAME "sasl-user-name"
@@ -801,7 +814,7 @@ int virConnectClose (virConnectPtr conn);
*
* The TLS x509 certificate distinguished named as VIR_TYPED_PARAM_STRING
*
* Since: v5.8.0
* Since: 5.8.0
*/
# define VIR_CONNECT_IDENTITY_X509_DISTINGUISHED_NAME "x509-distinguished-name"
@@ -810,7 +823,7 @@ int virConnectClose (virConnectPtr conn);
*
* The application's SELinux context as VIR_TYPED_PARAM_STRING.
*
* Since: v5.8.0
* Since: 5.8.0
*/
# define VIR_CONNECT_IDENTITY_SELINUX_CONTEXT "selinux-context"
@@ -841,6 +854,8 @@ int virConnectSetKeepAlive(virConnectPtr conn,
*
* A callback function to be registered, and called when the connection
* is closed.
*
* Since: 0.10.0
*/
typedef void (*virConnectCloseFunc)(virConnectPtr conn,
int reason,
@@ -906,29 +921,29 @@ int virConnectIsAlive(virConnectPtr conn);
/**
* virCPUCompareResult:
*
* Since: v0.7.5
* Since: 0.7.5
*/
typedef enum {
VIR_CPU_COMPARE_ERROR = -1,
VIR_CPU_COMPARE_INCOMPATIBLE = 0,
VIR_CPU_COMPARE_IDENTICAL = 1,
VIR_CPU_COMPARE_SUPERSET = 2,
VIR_CPU_COMPARE_ERROR = -1, /* (Since: 0.7.5) */
VIR_CPU_COMPARE_INCOMPATIBLE = 0, /* (Since: 0.7.5) */
VIR_CPU_COMPARE_IDENTICAL = 1, /* (Since: 0.7.5) */
VIR_CPU_COMPARE_SUPERSET = 2, /* (Since: 0.7.5) */
# ifdef VIR_ENUM_SENTINELS
VIR_CPU_COMPARE_LAST
VIR_CPU_COMPARE_LAST /* (Since: 0.9.10) */
# endif
} virCPUCompareResult;
/**
* virConnectCompareCPUFlags:
*
* Since: v1.2.6
* Since: 1.2.6
*/
typedef enum {
VIR_CONNECT_COMPARE_CPU_FAIL_INCOMPATIBLE = (1 << 0), /* treat incompatible
CPUs as failure */
CPUs as failure (Since: 1.2.6) */
VIR_CONNECT_COMPARE_CPU_VALIDATE_XML = (1 << 1), /* validate the xml
document */
document (Since: 6.9.0) */
} virConnectCompareCPUFlags;
int virConnectCompareCPU(virConnectPtr conn,
@@ -952,11 +967,11 @@ int virConnectGetCPUModelNames(virConnectPtr conn,
*
* Flags when getting XML description of a computed CPU
*
* Since: v1.1.2
* Since: 1.1.2
*/
typedef enum {
VIR_CONNECT_BASELINE_CPU_EXPAND_FEATURES = (1 << 0), /* show all features */
VIR_CONNECT_BASELINE_CPU_MIGRATABLE = (1 << 1), /* filter out non-migratable features */
VIR_CONNECT_BASELINE_CPU_EXPAND_FEATURES = (1 << 0), /* show all features (Since: 1.1.2) */
VIR_CONNECT_BASELINE_CPU_MIGRATABLE = (1 << 1), /* filter out non-migratable features (Since: 1.2.14) */
} virConnectBaselineCPUFlags;
char *virConnectBaselineCPU(virConnectPtr conn,
@@ -983,14 +998,14 @@ int virNodeGetFreePages(virConnectPtr conn,
/**
* virNodeAllocPagesFlags:
*
* Since: v1.2.9
* Since: 1.2.9
*/
typedef enum {
VIR_NODE_ALLOC_PAGES_ADD = 0, /* Add @pageCounts to the pages pool. This
can be used only to size up the pool. */
can be used only to size up the pool. (Since: 1.2.9) */
VIR_NODE_ALLOC_PAGES_SET = (1 << 0), /* Don't add @pageCounts, instead set
passed number of pages. This can be
used to free allocated pages. */
used to free allocated pages. (Since: 1.2.9) */
} virNodeAllocPagesFlags;
int virNodeAllocPages(virConnectPtr conn,

View File

@@ -32,7 +32,7 @@
*
* a virInterface is a private structure representing a virtual interface.
*
* Since: v0.6.4
* Since: 0.6.4
*/
typedef struct _virInterface virInterface;
@@ -42,7 +42,7 @@ typedef struct _virInterface virInterface;
* a virInterfacePtr is pointer to a virInterface private structure, this is the
* type used to reference a virtual interface in the API.
*
* Since: v0.6.4
* Since: 0.6.4
*/
typedef virInterface *virInterfacePtr;
@@ -62,11 +62,11 @@ int virConnectListDefinedInterfaces (virConnectPtr conn,
*
* Flags used to filter the returned interfaces.
*
* Since: v0.10.2
* Since: 0.10.2
*/
typedef enum {
VIR_CONNECT_LIST_INTERFACES_INACTIVE = 1 << 0,
VIR_CONNECT_LIST_INTERFACES_ACTIVE = 1 << 1,
VIR_CONNECT_LIST_INTERFACES_INACTIVE = 1 << 0, /* (Since: 0.10.2) */
VIR_CONNECT_LIST_INTERFACES_ACTIVE = 1 << 1, /* (Since: 0.10.2) */
} virConnectListAllInterfacesFlags;
int virConnectListAllInterfaces (virConnectPtr conn,
@@ -84,19 +84,19 @@ const char* virInterfaceGetMACString (virInterfacePtr iface);
/**
* virInterfaceXMLFlags:
*
* Since: v0.7.3
* Since: 0.7.3
*/
typedef enum {
VIR_INTERFACE_XML_INACTIVE = 1 << 0 /* dump inactive interface information */
VIR_INTERFACE_XML_INACTIVE = 1 << 0 /* dump inactive interface information (Since: 0.7.3) */
} virInterfaceXMLFlags;
/**
* virInterfaceDefineFlags:
*
* Since: v7.7.0
* Since: 7.7.0
*/
typedef enum {
VIR_INTERFACE_DEFINE_VALIDATE = 1 << 0, /* Validate the XML document against schema */
VIR_INTERFACE_DEFINE_VALIDATE = 1 << 0, /* Validate the XML document against schema (Since: 7.7.0) */
} virInterfaceDefineFlags;
char * virInterfaceGetXMLDesc (virInterfacePtr iface,

View File

@@ -30,10 +30,10 @@
/**
* virNetworkXMLFlags:
*
* Since: v0.9.10
* Since: 0.9.10
*/
typedef enum {
VIR_NETWORK_XML_INACTIVE = (1 << 0), /* dump inactive network information */
VIR_NETWORK_XML_INACTIVE = (1 << 0), /* dump inactive network information (Since: 0.9.10) */
} virNetworkXMLFlags;
/**
@@ -41,7 +41,7 @@ typedef enum {
*
* a virNetwork is a private structure representing a virtual network.
*
* Since: v0.2.0
* Since: 0.2.0
*/
typedef struct _virNetwork virNetwork;
@@ -51,7 +51,7 @@ typedef struct _virNetwork virNetwork;
* a virNetworkPtr is pointer to a virNetwork private structure, this is the
* type used to reference a virtual network in the API.
*
* Since: v0.2.0
* Since: 0.2.0
*/
typedef virNetwork *virNetworkPtr;
@@ -61,7 +61,7 @@ typedef virNetwork *virNetworkPtr;
* a virNetworkPort is a private structure representing a virtual network
* port
*
* Since: v5.5.0
* Since: 5.5.0
*/
typedef struct _virNetworkPort virNetworkPort;
@@ -71,7 +71,7 @@ typedef struct _virNetworkPort virNetworkPort;
* a virNetworkPortPtr is pointer to a virNetworkPort private structure,
* this is the type used to reference a virtual network port in the API.
*
* Since: v5.5.0
* Since: 5.5.0
*/
typedef virNetworkPort *virNetworkPortPtr;
@@ -101,17 +101,17 @@ int virConnectListDefinedNetworks (virConnectPtr conn,
* Flags used to filter the returned networks. Flags in each group
* are exclusive attributes of a network.
*
* Since: v0.10.2
* Since: 0.10.2
*/
typedef enum {
VIR_CONNECT_LIST_NETWORKS_INACTIVE = 1 << 0,
VIR_CONNECT_LIST_NETWORKS_ACTIVE = 1 << 1,
VIR_CONNECT_LIST_NETWORKS_INACTIVE = 1 << 0, /* (Since: 0.10.2) */
VIR_CONNECT_LIST_NETWORKS_ACTIVE = 1 << 1, /* (Since: 0.10.2) */
VIR_CONNECT_LIST_NETWORKS_PERSISTENT = 1 << 2,
VIR_CONNECT_LIST_NETWORKS_TRANSIENT = 1 << 3,
VIR_CONNECT_LIST_NETWORKS_PERSISTENT = 1 << 2, /* (Since: 0.10.2) */
VIR_CONNECT_LIST_NETWORKS_TRANSIENT = 1 << 3, /* (Since: 0.10.2) */
VIR_CONNECT_LIST_NETWORKS_AUTOSTART = 1 << 4,
VIR_CONNECT_LIST_NETWORKS_NO_AUTOSTART = 1 << 5,
VIR_CONNECT_LIST_NETWORKS_AUTOSTART = 1 << 4, /* (Since: 0.10.2) */
VIR_CONNECT_LIST_NETWORKS_NO_AUTOSTART = 1 << 5, /* (Since: 0.10.2) */
} virConnectListAllNetworksFlags;
int virConnectListAllNetworks (virConnectPtr conn,
@@ -130,10 +130,10 @@ virNetworkPtr virNetworkLookupByUUIDString (virConnectPtr conn,
/**
* virNetworkCreateFlags:
*
* Since: v7.8.0
* Since: 7.8.0
*/
typedef enum {
VIR_NETWORK_CREATE_VALIDATE = 1 << 0, /* Validate the XML document against schema */
VIR_NETWORK_CREATE_VALIDATE = 1 << 0, /* Validate the XML document against schema (Since: 7.8.0) */
} virNetworkCreateFlags;
/*
@@ -147,10 +147,10 @@ virNetworkPtr virNetworkCreateXMLFlags(virConnectPtr conn,
/**
* virNetworkDefineFlags:
*
* Since: v7.7.0
* Since: 7.7.0
*/
typedef enum {
VIR_NETWORK_DEFINE_VALIDATE = 1 << 0, /* Validate the XML document against schema */
VIR_NETWORK_DEFINE_VALIDATE = 1 << 0, /* Validate the XML document against schema (Since: 7.7.0) */
} virNetworkDefineFlags;
/*
@@ -173,16 +173,16 @@ int virNetworkUndefine (virNetworkPtr network);
* describes which type of update to perform on a <network>
* definition.
*
* Since: v0.10.2
* Since: 0.10.2
*/
typedef enum {
VIR_NETWORK_UPDATE_COMMAND_NONE = 0, /* (invalid) */
VIR_NETWORK_UPDATE_COMMAND_MODIFY = 1, /* modify an existing element */
VIR_NETWORK_UPDATE_COMMAND_DELETE = 2, /* delete an existing element */
VIR_NETWORK_UPDATE_COMMAND_ADD_LAST = 3, /* add an element at end of list */
VIR_NETWORK_UPDATE_COMMAND_ADD_FIRST = 4, /* add an element at start of list */
VIR_NETWORK_UPDATE_COMMAND_NONE = 0, /* invalid (Since: 0.10.2) */
VIR_NETWORK_UPDATE_COMMAND_MODIFY = 1, /* modify an existing element (Since: 0.10.2) */
VIR_NETWORK_UPDATE_COMMAND_DELETE = 2, /* delete an existing element (Since: 0.10.2) */
VIR_NETWORK_UPDATE_COMMAND_ADD_LAST = 3, /* add an element at end of list (Since: 0.10.2) */
VIR_NETWORK_UPDATE_COMMAND_ADD_FIRST = 4, /* add an element at start of list (Since: 0.10.2) */
# ifdef VIR_ENUM_SENTINELS
VIR_NETWORK_UPDATE_COMMAND_LAST
VIR_NETWORK_UPDATE_COMMAND_LAST /* (Since: 0.10.2) */
# endif
} virNetworkUpdateCommand;
@@ -192,24 +192,24 @@ typedef enum {
* describes which section of a <network> definition the provided
* xml should be applied to.
*
* Since: v0.10.2
* Since: 0.10.2
*/
typedef enum {
VIR_NETWORK_SECTION_NONE = 0, /* (invalid) */
VIR_NETWORK_SECTION_BRIDGE = 1, /* <bridge> */
VIR_NETWORK_SECTION_DOMAIN = 2, /* <domain> */
VIR_NETWORK_SECTION_IP = 3, /* <ip> */
VIR_NETWORK_SECTION_IP_DHCP_HOST = 4, /* <ip>/<dhcp>/<host> */
VIR_NETWORK_SECTION_IP_DHCP_RANGE = 5, /* <ip>/<dhcp>/<range> */
VIR_NETWORK_SECTION_FORWARD = 6, /* <forward> */
VIR_NETWORK_SECTION_FORWARD_INTERFACE = 7, /* <forward>/<interface> */
VIR_NETWORK_SECTION_FORWARD_PF = 8, /* <forward>/<pf> */
VIR_NETWORK_SECTION_PORTGROUP = 9, /* <portgroup> */
VIR_NETWORK_SECTION_DNS_HOST = 10, /* <dns>/<host> */
VIR_NETWORK_SECTION_DNS_TXT = 11, /* <dns>/<txt> */
VIR_NETWORK_SECTION_DNS_SRV = 12, /* <dns>/<srv> */
VIR_NETWORK_SECTION_NONE = 0, /* invalid (Since: 0.10.2) */
VIR_NETWORK_SECTION_BRIDGE = 1, /* <bridge> (Since: 0.10.2) */
VIR_NETWORK_SECTION_DOMAIN = 2, /* <domain> (Since: 0.10.2) */
VIR_NETWORK_SECTION_IP = 3, /* <ip> (Since: 0.10.2) */
VIR_NETWORK_SECTION_IP_DHCP_HOST = 4, /* <ip>/<dhcp>/<host> (Since: 0.10.2) */
VIR_NETWORK_SECTION_IP_DHCP_RANGE = 5, /* <ip>/<dhcp>/<range> (Since: 0.10.2) */
VIR_NETWORK_SECTION_FORWARD = 6, /* <forward> (Since: 0.10.2) */
VIR_NETWORK_SECTION_FORWARD_INTERFACE = 7, /* <forward>/<interface> (Since: 0.10.2) */
VIR_NETWORK_SECTION_FORWARD_PF = 8, /* <forward>/<pf> (Since: 0.10.2) */
VIR_NETWORK_SECTION_PORTGROUP = 9, /* <portgroup> (Since: 0.10.2) */
VIR_NETWORK_SECTION_DNS_HOST = 10, /* <dns>/<host> (Since: 0.10.2) */
VIR_NETWORK_SECTION_DNS_TXT = 11, /* <dns>/<txt> (Since: 0.10.2) */
VIR_NETWORK_SECTION_DNS_SRV = 12, /* <dns>/<srv> (Since: 0.10.2) */
# ifdef VIR_ENUM_SENTINELS
VIR_NETWORK_SECTION_LAST
VIR_NETWORK_SECTION_LAST /* (Since: 0.10.2) */
# endif
} virNetworkUpdateSection;
@@ -218,13 +218,13 @@ typedef enum {
*
* Flags to control options for virNetworkUpdate()
*
* Since: v0.10.2
* Since: 0.10.2
*/
typedef enum {
VIR_NETWORK_UPDATE_AFFECT_CURRENT = 0, /* affect live if network is active,
config if it's not active */
VIR_NETWORK_UPDATE_AFFECT_LIVE = 1 << 0, /* affect live state of network only */
VIR_NETWORK_UPDATE_AFFECT_CONFIG = 1 << 1, /* affect persistent config only */
config if it's not active (Since: 0.10.2) */
VIR_NETWORK_UPDATE_AFFECT_LIVE = 1 << 0, /* affect live state of network only (Since: 0.10.2) */
VIR_NETWORK_UPDATE_AFFECT_CONFIG = 1 << 1, /* affect persistent config only (Since: 0.10.2) */
} virNetworkUpdateFlags;
/*
@@ -274,16 +274,16 @@ int virNetworkIsPersistent(virNetworkPtr net);
*
* a virNetworkEventLifecycleType is emitted during network lifecycle events
*
* Since: v1.2.1
* Since: 1.2.1
*/
typedef enum {
VIR_NETWORK_EVENT_DEFINED = 0,
VIR_NETWORK_EVENT_UNDEFINED = 1,
VIR_NETWORK_EVENT_STARTED = 2,
VIR_NETWORK_EVENT_STOPPED = 3,
VIR_NETWORK_EVENT_DEFINED = 0, /* (Since: 1.2.1) */
VIR_NETWORK_EVENT_UNDEFINED = 1, /* (Since: 1.2.1) */
VIR_NETWORK_EVENT_STARTED = 2, /* (Since: 1.2.1) */
VIR_NETWORK_EVENT_STOPPED = 3, /* (Since: 1.2.1) */
# ifdef VIR_ENUM_SENTINELS
VIR_NETWORK_EVENT_LAST
VIR_NETWORK_EVENT_LAST /* (Since: 1.2.1) */
# endif
} virNetworkEventLifecycleType;
@@ -300,6 +300,8 @@ typedef enum {
*
* The callback signature to use when registering for an event of type
* VIR_NETWORK_EVENT_ID_LIFECYCLE with virConnectNetworkEventRegisterAny()
*
* Since: 1.2.1
*/
typedef void (*virConnectNetworkEventLifecycleCallback)(virConnectPtr conn,
virNetworkPtr net,
@@ -313,7 +315,7 @@ typedef void (*virConnectNetworkEventLifecycleCallback)(virConnectPtr conn,
* Used to cast the event specific callback into the generic one
* for use for virConnectNetworkEventRegisterAny()
*
* Since: v1.2.1
* Since: 1.2.1
*/
# define VIR_NETWORK_EVENT_CALLBACK(cb) ((virConnectNetworkEventGenericCallback)(cb))
@@ -324,10 +326,10 @@ typedef void (*virConnectNetworkEventLifecycleCallback)(virConnectPtr conn,
* virConnectNetworkEventRegisterAny(). Each event id determines which
* signature of callback function will be used.
*
* Since: v1.2.1
* Since: 1.2.1
*/
typedef enum {
VIR_NETWORK_EVENT_ID_LIFECYCLE = 0, /* virConnectNetworkEventLifecycleCallback */
VIR_NETWORK_EVENT_ID_LIFECYCLE = 0, /* virConnectNetworkEventLifecycleCallback (Since: 1.2.1) */
# ifdef VIR_ENUM_SENTINELS
VIR_NETWORK_EVENT_ID_LAST
@@ -335,6 +337,8 @@ typedef enum {
* NB: this enum value will increase over time as new events are
* added to the libvirt API. It reflects the last event ID supported
* by this version of the libvirt API.
*
* Since: 1.2.1
*/
# endif
} virNetworkEventID;
@@ -342,28 +346,28 @@ typedef enum {
/**
* virIPAddrType:
*
* Since: v1.2.6
* Since: 1.2.6
*/
typedef enum {
VIR_IP_ADDR_TYPE_IPV4,
VIR_IP_ADDR_TYPE_IPV6,
VIR_IP_ADDR_TYPE_IPV4, /* (Since: 1.2.6) */
VIR_IP_ADDR_TYPE_IPV6, /* (Since: 1.2.6) */
# ifdef VIR_ENUM_SENTINELS
VIR_IP_ADDR_TYPE_LAST
VIR_IP_ADDR_TYPE_LAST /* (Since: 1.2.6) */
# endif
} virIPAddrType;
/**
* virNetworkDHCPLease:
*
* Since: v1.2.6
* Since: 1.2.6
*/
typedef struct _virNetworkDHCPLease virNetworkDHCPLease;
/**
* virNetworkDHCPLeasePtr:
*
* Since: v1.2.6
* Since: 1.2.6
*/
typedef virNetworkDHCPLease *virNetworkDHCPLeasePtr;
struct _virNetworkDHCPLease {
@@ -396,6 +400,8 @@ int virNetworkGetDHCPLeases(virNetworkPtr network,
* have a customization with extra parameters, often with @opaque being
* passed in a different parameter position; use VIR_NETWORK_EVENT_CALLBACK()
* when registering an appropriate handler.
*
* Since: 1.2.1
*/
typedef void (*virConnectNetworkEventGenericCallback)(virConnectPtr conn,
virNetworkPtr net,
@@ -424,11 +430,11 @@ virNetworkPortLookupByUUIDString(virNetworkPtr net,
/**
* virNetworkPortCreateFlags:
*
* Since: v5.5.0
* Since: 5.5.0
*/
typedef enum {
VIR_NETWORK_PORT_CREATE_RECLAIM = (1 << 0), /* reclaim existing used resources */
VIR_NETWORK_PORT_CREATE_VALIDATE = (1 << 1), /* Validate the XML document against schema */
VIR_NETWORK_PORT_CREATE_RECLAIM = (1 << 0), /* reclaim existing used resources (Since: 5.5.0) */
VIR_NETWORK_PORT_CREATE_VALIDATE = (1 << 1), /* Validate the XML document against schema (Since: 7.8.0) */
} virNetworkPortCreateFlags;
virNetworkPortPtr
@@ -457,7 +463,7 @@ virNetworkPortGetUUIDString(virNetworkPortPtr port,
*
* Macro represents the inbound average of NIC bandwidth, as a uint.
*
* Since: v5.5.0
* Since: 5.5.0
*/
# define VIR_NETWORK_PORT_BANDWIDTH_IN_AVERAGE "inbound.average"
@@ -466,7 +472,7 @@ virNetworkPortGetUUIDString(virNetworkPortPtr port,
*
* Macro represents the inbound peak of NIC bandwidth, as a uint.
*
* Since: v5.5.0
* Since: 5.5.0
*/
# define VIR_NETWORK_PORT_BANDWIDTH_IN_PEAK "inbound.peak"
@@ -475,7 +481,7 @@ virNetworkPortGetUUIDString(virNetworkPortPtr port,
*
* Macro represents the inbound burst of NIC bandwidth, as a uint.
*
* Since: v5.5.0
* Since: 5.5.0
*/
# define VIR_NETWORK_PORT_BANDWIDTH_IN_BURST "inbound.burst"
@@ -484,7 +490,7 @@ virNetworkPortGetUUIDString(virNetworkPortPtr port,
*
* Macro represents the inbound floor of NIC bandwidth, as a uint.
*
* Since: v5.5.0
* Since: 5.5.0
*/
# define VIR_NETWORK_PORT_BANDWIDTH_IN_FLOOR "inbound.floor"
@@ -493,7 +499,7 @@ virNetworkPortGetUUIDString(virNetworkPortPtr port,
*
* Macro represents the outbound average of NIC bandwidth, as a uint.
*
* Since: v5.5.0
* Since: 5.5.0
*/
# define VIR_NETWORK_PORT_BANDWIDTH_OUT_AVERAGE "outbound.average"
@@ -502,7 +508,7 @@ virNetworkPortGetUUIDString(virNetworkPortPtr port,
*
* Macro represents the outbound peak of NIC bandwidth, as a uint.
*
* Since: v5.5.0
* Since: 5.5.0
*/
# define VIR_NETWORK_PORT_BANDWIDTH_OUT_PEAK "outbound.peak"
@@ -511,7 +517,7 @@ virNetworkPortGetUUIDString(virNetworkPortPtr port,
*
* Macro represents the outbound burst of NIC bandwidth, as a uint.
*
* Since: v5.5.0
* Since: 5.5.0
*/
# define VIR_NETWORK_PORT_BANDWIDTH_OUT_BURST "outbound.burst"

View File

@@ -33,7 +33,7 @@
*
* A virNodeDevice contains a node (host) device details.
*
* Since: v0.5.0
* Since: 0.5.0
*/
typedef struct _virNodeDevice virNodeDevice;
@@ -45,7 +45,7 @@ typedef struct _virNodeDevice virNodeDevice;
* to call virNodeDeviceFree when done using a virNodeDevicePtr obtained
* from any of the above functions to avoid leaking memory.
*
* Since: v0.5.0
* Since: 0.5.0
*/
typedef virNodeDevice *virNodeDevicePtr;
@@ -65,34 +65,34 @@ int virNodeListDevices (virConnectPtr conn,
* Flags used to filter either by capability or active state, the
* returned node devices.
*
* Since: v0.10.2
* Since: 0.10.2
*/
typedef enum {
VIR_CONNECT_LIST_NODE_DEVICES_CAP_SYSTEM = 1 << 0, /* System capability */
VIR_CONNECT_LIST_NODE_DEVICES_CAP_PCI_DEV = 1 << 1, /* PCI device */
VIR_CONNECT_LIST_NODE_DEVICES_CAP_USB_DEV = 1 << 2, /* USB device */
VIR_CONNECT_LIST_NODE_DEVICES_CAP_USB_INTERFACE = 1 << 3, /* USB interface */
VIR_CONNECT_LIST_NODE_DEVICES_CAP_NET = 1 << 4, /* Network device */
VIR_CONNECT_LIST_NODE_DEVICES_CAP_SCSI_HOST = 1 << 5, /* SCSI Host Bus Adapter */
VIR_CONNECT_LIST_NODE_DEVICES_CAP_SCSI_TARGET = 1 << 6, /* SCSI Target */
VIR_CONNECT_LIST_NODE_DEVICES_CAP_SCSI = 1 << 7, /* SCSI device */
VIR_CONNECT_LIST_NODE_DEVICES_CAP_STORAGE = 1 << 8, /* Storage device */
VIR_CONNECT_LIST_NODE_DEVICES_CAP_FC_HOST = 1 << 9, /* FC Host Bus Adapter */
VIR_CONNECT_LIST_NODE_DEVICES_CAP_VPORTS = 1 << 10, /* Capable of vport */
VIR_CONNECT_LIST_NODE_DEVICES_CAP_SCSI_GENERIC = 1 << 11, /* Capable of scsi_generic */
VIR_CONNECT_LIST_NODE_DEVICES_CAP_DRM = 1 << 12, /* DRM device */
VIR_CONNECT_LIST_NODE_DEVICES_CAP_MDEV_TYPES = 1 << 13, /* Capable of mediated devices */
VIR_CONNECT_LIST_NODE_DEVICES_CAP_MDEV = 1 << 14, /* Mediated device */
VIR_CONNECT_LIST_NODE_DEVICES_CAP_CCW_DEV = 1 << 15, /* CCW device */
VIR_CONNECT_LIST_NODE_DEVICES_CAP_CSS_DEV = 1 << 16, /* CSS device */
VIR_CONNECT_LIST_NODE_DEVICES_CAP_VDPA = 1 << 17, /* vDPA device */
VIR_CONNECT_LIST_NODE_DEVICES_CAP_AP_CARD = 1 << 18, /* s390 AP Card device */
VIR_CONNECT_LIST_NODE_DEVICES_CAP_AP_QUEUE = 1 << 19, /* s390 AP Queue */
VIR_CONNECT_LIST_NODE_DEVICES_CAP_AP_MATRIX = 1 << 20, /* s390 AP Matrix */
VIR_CONNECT_LIST_NODE_DEVICES_CAP_VPD = 1 << 21, /* Device with VPD */
VIR_CONNECT_LIST_NODE_DEVICES_CAP_SYSTEM = 1 << 0, /* System capability (Since: 0.10.2) */
VIR_CONNECT_LIST_NODE_DEVICES_CAP_PCI_DEV = 1 << 1, /* PCI device (Since: 0.10.2) */
VIR_CONNECT_LIST_NODE_DEVICES_CAP_USB_DEV = 1 << 2, /* USB device (Since: 0.10.2) */
VIR_CONNECT_LIST_NODE_DEVICES_CAP_USB_INTERFACE = 1 << 3, /* USB interface (Since: 0.10.2) */
VIR_CONNECT_LIST_NODE_DEVICES_CAP_NET = 1 << 4, /* Network device (Since: 0.10.2) */
VIR_CONNECT_LIST_NODE_DEVICES_CAP_SCSI_HOST = 1 << 5, /* SCSI Host Bus Adapter (Since: 0.10.2) */
VIR_CONNECT_LIST_NODE_DEVICES_CAP_SCSI_TARGET = 1 << 6, /* SCSI Target (Since: 0.10.2) */
VIR_CONNECT_LIST_NODE_DEVICES_CAP_SCSI = 1 << 7, /* SCSI device (Since: 0.10.2) */
VIR_CONNECT_LIST_NODE_DEVICES_CAP_STORAGE = 1 << 8, /* Storage device (Since: 0.10.2) */
VIR_CONNECT_LIST_NODE_DEVICES_CAP_FC_HOST = 1 << 9, /* FC Host Bus Adapter (Since: 1.0.4) */
VIR_CONNECT_LIST_NODE_DEVICES_CAP_VPORTS = 1 << 10, /* Capable of vport (Since: 1.0.4) */
VIR_CONNECT_LIST_NODE_DEVICES_CAP_SCSI_GENERIC = 1 << 11, /* Capable of scsi_generic (Since: 1.1.0) */
VIR_CONNECT_LIST_NODE_DEVICES_CAP_DRM = 1 << 12, /* DRM device (Since: 3.1.0) */
VIR_CONNECT_LIST_NODE_DEVICES_CAP_MDEV_TYPES = 1 << 13, /* Capable of mediated devices (Since: 3.4.0) */
VIR_CONNECT_LIST_NODE_DEVICES_CAP_MDEV = 1 << 14, /* Mediated device (Since: 3.4.0) */
VIR_CONNECT_LIST_NODE_DEVICES_CAP_CCW_DEV = 1 << 15, /* CCW device (Since: 3.4.0) */
VIR_CONNECT_LIST_NODE_DEVICES_CAP_CSS_DEV = 1 << 16, /* CSS device (Since: 6.8.0) */
VIR_CONNECT_LIST_NODE_DEVICES_CAP_VDPA = 1 << 17, /* vDPA device (Since: 6.9.0) */
VIR_CONNECT_LIST_NODE_DEVICES_CAP_AP_CARD = 1 << 18, /* s390 AP Card device (Since: 7.0.0) */
VIR_CONNECT_LIST_NODE_DEVICES_CAP_AP_QUEUE = 1 << 19, /* s390 AP Queue (Since: 7.0.0) */
VIR_CONNECT_LIST_NODE_DEVICES_CAP_AP_MATRIX = 1 << 20, /* s390 AP Matrix (Since: 7.0.0) */
VIR_CONNECT_LIST_NODE_DEVICES_CAP_VPD = 1 << 21, /* Device with VPD (Since: 7.9.0) */
VIR_CONNECT_LIST_NODE_DEVICES_INACTIVE = 1 << 30, /* Inactive devices */
VIR_CONNECT_LIST_NODE_DEVICES_ACTIVE = 1U << 31, /* Active devices */
VIR_CONNECT_LIST_NODE_DEVICES_INACTIVE = 1 << 30, /* Inactive devices (Since: 7.3.0) */
VIR_CONNECT_LIST_NODE_DEVICES_ACTIVE = 1U << 31, /* Active devices (Since: 7.3.0) */
} virConnectListAllNodeDeviceFlags;
int virConnectListAllNodeDevices (virConnectPtr conn,
@@ -162,7 +162,7 @@ int virNodeDeviceIsActive(virNodeDevicePtr dev);
* Used to cast the event specific callback into the generic one
* for use for virConnectNodeDeviceEventRegisterAny()
*
* Since: v2.2.0
* Since: 2.2.0
*/
# define VIR_NODE_DEVICE_EVENT_CALLBACK(cb)((virConnectNodeDeviceEventGenericCallback)(cb))
@@ -173,11 +173,11 @@ int virNodeDeviceIsActive(virNodeDevicePtr dev);
* virConnectNodeDeviceEventRegisterAny(). Each event id determines which
* signature of callback function will be used.
*
* Since: v2.2.0
* Since: 2.2.0
*/
typedef enum {
VIR_NODE_DEVICE_EVENT_ID_LIFECYCLE = 0, /* virConnectNodeDeviceEventLifecycleCallback */
VIR_NODE_DEVICE_EVENT_ID_UPDATE = 1, /* virConnectNodeDeviceEventGenericCallback */
VIR_NODE_DEVICE_EVENT_ID_LIFECYCLE = 0, /* virConnectNodeDeviceEventLifecycleCallback (Since: 2.2.0) */
VIR_NODE_DEVICE_EVENT_ID_UPDATE = 1, /* virConnectNodeDeviceEventGenericCallback (Since: 2.2.0) */
# ifdef VIR_ENUM_SENTINELS
VIR_NODE_DEVICE_EVENT_ID_LAST
@@ -185,6 +185,8 @@ typedef enum {
* NB: this enum value will increase over time as new events are
* added to the libvirt API. It reflects the last event ID supported
* by this version of the libvirt API.
*
* Since: 2.2.0
*/
# endif
} virNodeDeviceEventID;
@@ -200,6 +202,8 @@ typedef enum {
* have a customization with extra parameters, often with @opaque being
* passed in a different parameter position; use
* VIR_NODE_DEVICE_EVENT_CALLBACK() when registering an appropriate handler.
*
* Since: 2.2.0
*/
typedef void (*virConnectNodeDeviceEventGenericCallback)(virConnectPtr conn,
virNodeDevicePtr dev,
@@ -222,16 +226,16 @@ int virConnectNodeDeviceEventDeregisterAny(virConnectPtr conn,
* a virNodeDeviceEventLifecycleType is emitted during node device
* lifecycle events
*
* Since: v2.2.0
* Since: 2.2.0
*/
typedef enum {
VIR_NODE_DEVICE_EVENT_CREATED = 0,
VIR_NODE_DEVICE_EVENT_DELETED = 1,
VIR_NODE_DEVICE_EVENT_DEFINED = 2,
VIR_NODE_DEVICE_EVENT_UNDEFINED = 3,
VIR_NODE_DEVICE_EVENT_CREATED = 0, /* (Since: 2.2.0) */
VIR_NODE_DEVICE_EVENT_DELETED = 1, /* (Since: 2.2.0) */
VIR_NODE_DEVICE_EVENT_DEFINED = 2, /* (Since: 7.3.0) */
VIR_NODE_DEVICE_EVENT_UNDEFINED = 3, /* (Since: 7.3.0) */
# ifdef VIR_ENUM_SENTINELS
VIR_NODE_DEVICE_EVENT_LAST
VIR_NODE_DEVICE_EVENT_LAST /* (Since: 2.2.0) */
# endif
} virNodeDeviceEventLifecycleType;
@@ -249,6 +253,8 @@ typedef enum {
* The callback signature to use when registering for an event of type
* VIR_NODE_DEVICE_EVENT_ID_LIFECYCLE with
* virConnectNodeDeviceEventRegisterAny()
*
* Since: 2.2.0
*/
typedef void (*virConnectNodeDeviceEventLifecycleCallback)(virConnectPtr conn,
virNodeDevicePtr dev,

View File

@@ -32,7 +32,7 @@
*
* a virNWFilter is a private structure representing a network filter
*
* Since: v0.8.0
* Since: 0.8.0
*/
typedef struct _virNWFilter virNWFilter;
@@ -42,7 +42,7 @@ typedef struct _virNWFilter virNWFilter;
* a virNWFilterPtr is pointer to a virNWFilter private structure,
* this is the type used to reference a network filter in the API.
*
* Since: v0.8.0
* Since: 0.8.0
*/
typedef virNWFilter *virNWFilterPtr;
@@ -52,7 +52,7 @@ typedef virNWFilter *virNWFilterPtr;
* a virNWFilterBinding is a private structure representing a network
* filter binding to a port
*
* Since: v4.5.0
* Since: 4.5.0
*/
typedef struct _virNWFilterBinding virNWFilterBinding;
@@ -63,7 +63,7 @@ typedef struct _virNWFilterBinding virNWFilterBinding;
* structure, this is the type used to reference a network filter
* port binding in the API.
*
* Since: v4.5.0
* Since: 4.5.0
*/
typedef virNWFilterBinding *virNWFilterBindingPtr;
@@ -90,10 +90,10 @@ virNWFilterPtr virNWFilterLookupByUUIDString (virConnectPtr conn,
/**
* virNWFilterDefineFlags:
*
* Since: v7.7.0
* Since: 7.7.0
*/
typedef enum {
VIR_NWFILTER_DEFINE_VALIDATE = 1 << 0, /* Validate the XML document against schema */
VIR_NWFILTER_DEFINE_VALIDATE = 1 << 0, /* Validate the XML document against schema (Since: 7.7.0) */
} virNWFilterDefineFlags;
/*
@@ -123,10 +123,10 @@ int virNWFilterFree (virNWFilterPtr nwfilter);
/**
* virNWFilterBindingCreateFlags:
*
* Since: v7.8.0
* Since: 7.8.0
*/
typedef enum {
VIR_NWFILTER_BINDING_CREATE_VALIDATE = 1 << 0, /* Validate the XML document against schema */
VIR_NWFILTER_BINDING_CREATE_VALIDATE = 1 << 0, /* Validate the XML document against schema (Since: 7.8.0) */
} virNWFilterBindingCreateFlags;
const char* virNWFilterGetName (virNWFilterPtr nwfilter);

View File

@@ -33,11 +33,11 @@ extern "C" {
/**
* virDomainQemuMonitorCommandFlags:
*
* Since: v0.8.8
* Since: 0.8.8
*/
typedef enum {
VIR_DOMAIN_QEMU_MONITOR_COMMAND_DEFAULT = 0, /* (Since: v0.8.8) */
VIR_DOMAIN_QEMU_MONITOR_COMMAND_HMP = (1 << 0), /* cmd is in HMP (Since: v0.8.8) */
VIR_DOMAIN_QEMU_MONITOR_COMMAND_DEFAULT = 0, /* (Since: 0.8.8) */
VIR_DOMAIN_QEMU_MONITOR_COMMAND_HMP = (1 << 0), /* cmd is in HMP (Since: 0.8.8) */
} virDomainQemuMonitorCommandFlags;
int virDomainQemuMonitorCommand(virDomainPtr domain, const char *cmd,
@@ -58,14 +58,14 @@ virDomainPtr virDomainQemuAttach(virConnectPtr domain,
/**
* virDomainQemuAgentCommandTimeoutValues:
*
* Since: v0.10.0
* Since: 0.10.0
*/
typedef enum {
VIR_DOMAIN_QEMU_AGENT_COMMAND_MIN = VIR_DOMAIN_AGENT_RESPONSE_TIMEOUT_BLOCK, /* (Since: v0.10.0) */
VIR_DOMAIN_QEMU_AGENT_COMMAND_BLOCK = VIR_DOMAIN_AGENT_RESPONSE_TIMEOUT_BLOCK, /* (Since: v0.10.0) */
VIR_DOMAIN_QEMU_AGENT_COMMAND_DEFAULT = VIR_DOMAIN_AGENT_RESPONSE_TIMEOUT_DEFAULT, /* (Since: v0.10.0) */
VIR_DOMAIN_QEMU_AGENT_COMMAND_NOWAIT = VIR_DOMAIN_AGENT_RESPONSE_TIMEOUT_NOWAIT, /* (Since: v0.10.0) */
VIR_DOMAIN_QEMU_AGENT_COMMAND_SHUTDOWN = 60, /* (Since: v1.2.15) */
VIR_DOMAIN_QEMU_AGENT_COMMAND_MIN = VIR_DOMAIN_AGENT_RESPONSE_TIMEOUT_BLOCK, /* (Since: 0.10.0) */
VIR_DOMAIN_QEMU_AGENT_COMMAND_BLOCK = VIR_DOMAIN_AGENT_RESPONSE_TIMEOUT_BLOCK, /* (Since: 0.10.0) */
VIR_DOMAIN_QEMU_AGENT_COMMAND_DEFAULT = VIR_DOMAIN_AGENT_RESPONSE_TIMEOUT_DEFAULT, /* (Since: 0.10.0) */
VIR_DOMAIN_QEMU_AGENT_COMMAND_NOWAIT = VIR_DOMAIN_AGENT_RESPONSE_TIMEOUT_NOWAIT, /* (Since: 0.10.0) */
VIR_DOMAIN_QEMU_AGENT_COMMAND_SHUTDOWN = 60, /* (Since: 1.2.15) */
} virDomainQemuAgentCommandTimeoutValues;
char *virDomainQemuAgentCommand(virDomainPtr domain, const char *cmd,
@@ -85,7 +85,7 @@ char *virDomainQemuAgentCommand(virDomainPtr domain, const char *cmd,
* The callback signature to use when registering for a qemu monitor
* event with virConnectDomainQemuMonitorEventRegister().
*
* Since: v1.2.3
* Since: 1.2.3
*/
typedef void (*virConnectDomainQemuMonitorEventCallback)(virConnectPtr conn,
virDomainPtr dom,
@@ -99,13 +99,13 @@ typedef void (*virConnectDomainQemuMonitorEventCallback)(virConnectPtr conn,
/**
* virConnectDomainQemuMonitorEventRegisterFlags:
*
* Since: v1.2.3
* Since: 1.2.3
*/
typedef enum {
/* Event filter is a regex rather than a literal string (Since: v1.2.3) */
/* Event filter is a regex rather than a literal string (Since: 1.2.3) */
VIR_CONNECT_DOMAIN_QEMU_MONITOR_EVENT_REGISTER_REGEX = (1 << 0),
/* Event filter is case insensitive (Since: v1.2.3) */
/* Event filter is case insensitive (Since: 1.2.3) */
VIR_CONNECT_DOMAIN_QEMU_MONITOR_EVENT_REGISTER_NOCASE = (1 << 1),
} virConnectDomainQemuMonitorEventRegisterFlags;

View File

@@ -34,29 +34,29 @@
* A virSecret stores a secret value (e.g. a passphrase or encryption key)
* and associated metadata.
*
* Since: v0.7.1
* Since: 0.7.1
*/
typedef struct _virSecret virSecret;
/**
* virSecretPtr:
*
* Since: v0.7.1
* Since: 0.7.1
*/
typedef virSecret *virSecretPtr;
/**
* virSecretUsageType:
*
* Since: v0.7.1
* Since: 0.7.1
*/
typedef enum {
VIR_SECRET_USAGE_TYPE_NONE = 0,
VIR_SECRET_USAGE_TYPE_VOLUME = 1,
VIR_SECRET_USAGE_TYPE_CEPH = 2,
VIR_SECRET_USAGE_TYPE_ISCSI = 3,
VIR_SECRET_USAGE_TYPE_TLS = 4,
VIR_SECRET_USAGE_TYPE_VTPM = 5,
VIR_SECRET_USAGE_TYPE_NONE = 0, /* (Since: 0.7.1) */
VIR_SECRET_USAGE_TYPE_VOLUME = 1, /* (Since: 0.7.1) */
VIR_SECRET_USAGE_TYPE_CEPH = 2, /* (Since: 0.9.7) */
VIR_SECRET_USAGE_TYPE_ISCSI = 3, /* (Since: 1.0.4) */
VIR_SECRET_USAGE_TYPE_TLS = 4, /* (Since: 2.3.0) */
VIR_SECRET_USAGE_TYPE_VTPM = 5, /* (Since: 5.6.0) */
# ifdef VIR_ENUM_SENTINELS
VIR_SECRET_USAGE_TYPE_LAST
@@ -64,6 +64,8 @@ typedef enum {
* NB: this enum value will increase over time as new usage types are
* added to the libvirt API. It reflects the last usage type supported
* by this version of the libvirt API.
*
* Since: 0.9.7
*/
# endif
} virSecretUsageType;
@@ -80,17 +82,17 @@ int virConnectListSecrets (virConnectPtr conn,
* Flags used to filter the returned secrets. Flags in each group
* are exclusive attributes of a secret.
*
* Since: v0.10.2
* Since: 0.10.2
*/
typedef enum {
VIR_CONNECT_LIST_SECRETS_EPHEMERAL = 1 << 0, /* kept in memory, never
stored persistently */
VIR_CONNECT_LIST_SECRETS_NO_EPHEMERAL = 1 << 1,
stored persistently (Since: 0.10.2) */
VIR_CONNECT_LIST_SECRETS_NO_EPHEMERAL = 1 << 1, /* (Since: 0.10.2) */
VIR_CONNECT_LIST_SECRETS_PRIVATE = 1 << 2, /* not revealed to any caller
of libvirt, nor to any other
node */
VIR_CONNECT_LIST_SECRETS_NO_PRIVATE = 1 << 3,
node (Since: 0.10.2) */
VIR_CONNECT_LIST_SECRETS_NO_PRIVATE = 1 << 3, /* (Since: 0.10.2) */
} virConnectListAllSecretsFlags;
int virConnectListAllSecrets(virConnectPtr conn,
@@ -106,10 +108,10 @@ virSecretPtr virSecretLookupByUsage(virConnectPtr conn,
/**
* virSecretDefineFlags:
*
* Since: v7.7.0
* Since: 7.7.0
*/
typedef enum {
VIR_SECRET_DEFINE_VALIDATE = 1 << 0, /* Validate the XML document against schema */
VIR_SECRET_DEFINE_VALIDATE = 1 << 0, /* Validate the XML document against schema (Since: 7.7.0) */
} virSecretDefineFlags;
virSecretPtr virSecretDefineXML (virConnectPtr conn,
@@ -140,7 +142,7 @@ int virSecretFree (virSecretPtr secret);
* Used to cast the event specific callback into the generic one
* for use for virConnectSecretEventRegisterAny()
*
* Since: v3.0.0
* Since: 3.0.0
*/
# define VIR_SECRET_EVENT_CALLBACK(cb)((virConnectSecretEventGenericCallback)(cb))
@@ -151,11 +153,11 @@ int virSecretFree (virSecretPtr secret);
* virConnectSecretEventRegisterAny(). Each event id determines which
* signature of callback function will be used.
*
* Since: v3.0.0
* Since: 3.0.0
*/
typedef enum {
VIR_SECRET_EVENT_ID_LIFECYCLE = 0, /* virConnectSecretEventLifecycleCallback */
VIR_SECRET_EVENT_ID_VALUE_CHANGED = 1, /* virConnectSecretEventGenericCallback */
VIR_SECRET_EVENT_ID_LIFECYCLE = 0, /* virConnectSecretEventLifecycleCallback (Since: 3.0.0) */
VIR_SECRET_EVENT_ID_VALUE_CHANGED = 1, /* virConnectSecretEventGenericCallback (Since: 3.0.0) */
# ifdef VIR_ENUM_SENTINELS
VIR_SECRET_EVENT_ID_LAST
@@ -163,6 +165,8 @@ typedef enum {
* NB: this enum value will increase over time as new events are
* added to the libvirt API. It reflects the last event ID supported
* by this version of the libvirt API.
*
* Since: 3.0.0
*/
# endif
} virSecretEventID;
@@ -178,6 +182,8 @@ typedef enum {
* have a customization with extra parameters, often with @opaque being
* passed in a different parameter position; use
* VIR_SECRET_EVENT_CALLBACK() when registering an appropriate handler.
*
* Since: 3.0.0
*/
typedef void (*virConnectSecretEventGenericCallback)(virConnectPtr conn,
virSecretPtr secret,
@@ -200,14 +206,14 @@ int virConnectSecretEventDeregisterAny(virConnectPtr conn,
* a virSecretEventLifecycleType is emitted during secret
* lifecycle events
*
* Since: v3.0.0
* Since: 3.0.0
*/
typedef enum {
VIR_SECRET_EVENT_DEFINED = 0,
VIR_SECRET_EVENT_UNDEFINED = 1,
VIR_SECRET_EVENT_DEFINED = 0, /* (Since: 3.0.0) */
VIR_SECRET_EVENT_UNDEFINED = 1, /* (Since: 3.0.0) */
# ifdef VIR_ENUM_SENTINELS
VIR_SECRET_EVENT_LAST
VIR_SECRET_EVENT_LAST /* (Since: 3.0.0) */
# endif
} virSecretEventLifecycleType;
@@ -225,6 +231,8 @@ typedef enum {
* The callback signature to use when registering for an event of type
* VIR_SECRET_EVENT_ID_LIFECYCLE with
* virConnectSecretEventRegisterAny()
*
* Since: 3.0.0
*/
typedef void (*virConnectSecretEventLifecycleCallback)(virConnectPtr conn,
virSecretPtr secret,

View File

@@ -33,7 +33,7 @@
*
* a virStoragePool is a private structure representing a storage pool
*
* Since: v0.4.1
* Since: 0.4.1
*/
typedef struct _virStoragePool virStoragePool;
@@ -43,7 +43,7 @@ typedef struct _virStoragePool virStoragePool;
* a virStoragePoolPtr is pointer to a virStoragePool private structure, this is the
* type used to reference a storage pool in the API.
*
* Since: v0.4.1
* Since: 0.4.1
*/
typedef virStoragePool *virStoragePoolPtr;
@@ -51,70 +51,76 @@ typedef virStoragePool *virStoragePoolPtr;
/**
* virStoragePoolState:
*
* Since: v0.4.1
* Since: 0.4.1
*/
typedef enum {
VIR_STORAGE_POOL_INACTIVE = 0, /* Not running */
VIR_STORAGE_POOL_BUILDING = 1, /* Initializing pool, not available */
VIR_STORAGE_POOL_RUNNING = 2, /* Running normally */
VIR_STORAGE_POOL_DEGRADED = 3, /* Running degraded */
VIR_STORAGE_POOL_INACCESSIBLE = 4, /* Running, but not accessible */
VIR_STORAGE_POOL_INACTIVE = 0, /* Not running (Since: 0.4.1) */
VIR_STORAGE_POOL_BUILDING = 1, /* Initializing pool, not available (Since: 0.4.1) */
VIR_STORAGE_POOL_RUNNING = 2, /* Running normally (Since: 0.4.1) */
VIR_STORAGE_POOL_DEGRADED = 3, /* Running degraded (Since: 0.4.1) */
VIR_STORAGE_POOL_INACCESSIBLE = 4, /* Running, but not accessible (Since: 0.8.2) */
# ifdef VIR_ENUM_SENTINELS
VIR_STORAGE_POOL_STATE_LAST
VIR_STORAGE_POOL_STATE_LAST /* (Since: 0.9.10) */
# endif
} virStoragePoolState;
/**
* virStoragePoolBuildFlags:
*
* Since: v0.4.1
* Since: 0.4.1
*/
typedef enum {
VIR_STORAGE_POOL_BUILD_NEW = 0, /* Regular build from scratch */
VIR_STORAGE_POOL_BUILD_REPAIR = (1 << 0), /* Repair / reinitialize */
VIR_STORAGE_POOL_BUILD_RESIZE = (1 << 1), /* Extend existing pool */
VIR_STORAGE_POOL_BUILD_NO_OVERWRITE = (1 << 2), /* Do not overwrite existing pool */
VIR_STORAGE_POOL_BUILD_OVERWRITE = (1 << 3), /* Overwrite data */
VIR_STORAGE_POOL_BUILD_NEW = 0, /* Regular build from scratch (Since: 0.4.1) */
VIR_STORAGE_POOL_BUILD_REPAIR = (1 << 0), /* Repair / reinitialize (Since: 0.4.1) */
VIR_STORAGE_POOL_BUILD_RESIZE = (1 << 1), /* Extend existing pool (Since: 0.4.1) */
VIR_STORAGE_POOL_BUILD_NO_OVERWRITE = (1 << 2), /* Do not overwrite existing pool (Since: 0.9.5) */
VIR_STORAGE_POOL_BUILD_OVERWRITE = (1 << 3), /* Overwrite data (Since: 0.9.5) */
} virStoragePoolBuildFlags;
/**
* virStoragePoolDeleteFlags:
*
* Since: v0.4.1
* Since: 0.4.1
*/
typedef enum {
VIR_STORAGE_POOL_DELETE_NORMAL = 0, /* Delete metadata only (fast) */
VIR_STORAGE_POOL_DELETE_ZEROED = 1 << 0, /* Clear all data to zeros (slow) */
VIR_STORAGE_POOL_DELETE_NORMAL = 0, /* Delete metadata only (fast) (Since: 0.4.1) */
VIR_STORAGE_POOL_DELETE_ZEROED = 1 << 0, /* Clear all data to zeros (slow) (Since: 0.4.1) */
} virStoragePoolDeleteFlags;
/**
* virStoragePoolCreateFlags:
*
* Since: v1.3.1
* Since: 1.3.1
*/
typedef enum {
/* Create the pool but do not perform pool build */
/* Create the pool but do not perform pool build (Since: 1.3.1) */
VIR_STORAGE_POOL_CREATE_NORMAL = 0,
/* Create the pool and perform pool build without any flags */
/* Create the pool and perform pool build without any flags (Since: 1.3.1) */
VIR_STORAGE_POOL_CREATE_WITH_BUILD = 1 << 0,
/* Create the pool and perform pool build using the
* VIR_STORAGE_POOL_BUILD_OVERWRITE flag. This is mutually
* exclusive to VIR_STORAGE_POOL_CREATE_WITH_BUILD_NO_OVERWRITE */
* exclusive to VIR_STORAGE_POOL_CREATE_WITH_BUILD_NO_OVERWRITE
*
* Since: 1.3.1
*/
VIR_STORAGE_POOL_CREATE_WITH_BUILD_OVERWRITE = 1 << 1,
/* Create the pool and perform pool build using the
* VIR_STORAGE_POOL_BUILD_NO_OVERWRITE flag. This is mutually
* exclusive to VIR_STORAGE_POOL_CREATE_WITH_BUILD_OVERWRITE */
* exclusive to VIR_STORAGE_POOL_CREATE_WITH_BUILD_OVERWRITE
*
* Since: 1.3.1
*/
VIR_STORAGE_POOL_CREATE_WITH_BUILD_NO_OVERWRITE = 1 << 2,
} virStoragePoolCreateFlags;
/**
* virStoragePoolInfo:
*
* Since: v0.4.1
* Since: 0.4.1
*/
typedef struct _virStoragePoolInfo virStoragePoolInfo;
@@ -128,7 +134,7 @@ struct _virStoragePoolInfo {
/**
* virStoragePoolInfoPtr:
*
* Since: v0.4.1
* Since: 0.4.1
*/
typedef virStoragePoolInfo *virStoragePoolInfoPtr;
@@ -138,7 +144,7 @@ typedef virStoragePoolInfo *virStoragePoolInfoPtr;
*
* a virStorageVol is a private structure representing a storage volume
*
* Since: v0.4.1
* Since: 0.4.1
*/
typedef struct _virStorageVol virStorageVol;
@@ -148,7 +154,7 @@ typedef struct _virStorageVol virStorageVol;
* a virStorageVolPtr is pointer to a virStorageVol private structure, this is the
* type used to reference a storage volume in the API.
*
* Since: v0.4.1
* Since: 0.4.1
*/
typedef virStorageVol *virStorageVolPtr;
@@ -156,59 +162,59 @@ typedef virStorageVol *virStorageVolPtr;
/**
* virStorageVolType:
*
* Since: v0.4.1
* Since: 0.4.1
*/
typedef enum {
VIR_STORAGE_VOL_FILE = 0, /* Regular file based volumes */
VIR_STORAGE_VOL_BLOCK = 1, /* Block based volumes */
VIR_STORAGE_VOL_DIR = 2, /* Directory-passthrough based volume */
VIR_STORAGE_VOL_NETWORK = 3, /* Network volumes like RBD (RADOS Block Device) */
VIR_STORAGE_VOL_FILE = 0, /* Regular file based volumes (Since: 0.4.1) */
VIR_STORAGE_VOL_BLOCK = 1, /* Block based volumes (Since: 0.4.1) */
VIR_STORAGE_VOL_DIR = 2, /* Directory-passthrough based volume (Since: 0.9.5) */
VIR_STORAGE_VOL_NETWORK = 3, /* Network volumes like RBD (RADOS Block Device) (Since: 0.9.13) */
VIR_STORAGE_VOL_NETDIR = 4, /* Network accessible directory that can
* contain other network volumes */
VIR_STORAGE_VOL_PLOOP = 5, /* Ploop based volumes */
* contain other network volumes (Since: 1.2.0) */
VIR_STORAGE_VOL_PLOOP = 5, /* Ploop based volumes (Since: 1.3.4) */
# ifdef VIR_ENUM_SENTINELS
VIR_STORAGE_VOL_LAST
VIR_STORAGE_VOL_LAST /* (Since: 0.9.10) */
# endif
} virStorageVolType;
/**
* virStorageVolDeleteFlags:
*
* Since: v0.4.1
* Since: 0.4.1
*/
typedef enum {
VIR_STORAGE_VOL_DELETE_NORMAL = 0, /* Delete metadata only (fast) */
VIR_STORAGE_VOL_DELETE_ZEROED = 1 << 0, /* Clear all data to zeros (slow) */
VIR_STORAGE_VOL_DELETE_WITH_SNAPSHOTS = 1 << 1, /* Force removal of volume, even if in use */
VIR_STORAGE_VOL_DELETE_NORMAL = 0, /* Delete metadata only (fast) (Since: 0.4.1) */
VIR_STORAGE_VOL_DELETE_ZEROED = 1 << 0, /* Clear all data to zeros (slow) (Since: 0.4.1) */
VIR_STORAGE_VOL_DELETE_WITH_SNAPSHOTS = 1 << 1, /* Force removal of volume, even if in use (Since: 1.2.21) */
} virStorageVolDeleteFlags;
/**
* virStorageVolWipeAlgorithm:
*
* Since: v0.9.10
* Since: 0.9.10
*/
typedef enum {
VIR_STORAGE_VOL_WIPE_ALG_ZERO = 0, /* 1-pass, all zeroes */
VIR_STORAGE_VOL_WIPE_ALG_ZERO = 0, /* 1-pass, all zeroes (Since: 0.9.10) */
VIR_STORAGE_VOL_WIPE_ALG_NNSA = 1, /* 4-pass NNSA Policy Letter
NAP-14.1-C (XVI-8) */
NAP-14.1-C (XVI-8) (Since: 0.9.10) */
VIR_STORAGE_VOL_WIPE_ALG_DOD = 2, /* 4-pass DoD 5220.22-M section
8-306 procedure */
8-306 procedure (Since: 0.9.10) */
VIR_STORAGE_VOL_WIPE_ALG_BSI = 3, /* 9-pass method recommended by the
German Center of Security in
Information Technologies */
VIR_STORAGE_VOL_WIPE_ALG_GUTMANN = 4, /* The canonical 35-pass sequence */
Information Technologies (Since: 0.9.10) */
VIR_STORAGE_VOL_WIPE_ALG_GUTMANN = 4, /* The canonical 35-pass sequence (Since: 0.9.10) */
VIR_STORAGE_VOL_WIPE_ALG_SCHNEIER = 5, /* 7-pass method described by
Bruce Schneier in "Applied
Cryptography" (1996) */
VIR_STORAGE_VOL_WIPE_ALG_PFITZNER7 = 6, /* 7-pass random */
Cryptography" (1996) (Since: 0.9.10) */
VIR_STORAGE_VOL_WIPE_ALG_PFITZNER7 = 6, /* 7-pass random data (Since: 0.9.10) */
VIR_STORAGE_VOL_WIPE_ALG_PFITZNER33 = 7, /* 33-pass random */
VIR_STORAGE_VOL_WIPE_ALG_PFITZNER33 = 7, /* 33-pass random data (Since: 0.9.10) */
VIR_STORAGE_VOL_WIPE_ALG_RANDOM = 8, /* 1-pass random */
VIR_STORAGE_VOL_WIPE_ALG_RANDOM = 8, /* 1-pass random data (Since: 0.9.10) */
VIR_STORAGE_VOL_WIPE_ALG_TRIM = 9, /* 1-pass, trim all data on the
volume by using TRIM or DISCARD */
volume by using TRIM or DISCARD (Since: 1.3.2) */
# ifdef VIR_ENUM_SENTINELS
VIR_STORAGE_VOL_WIPE_ALG_LAST
@@ -216,6 +222,8 @@ typedef enum {
* NB: this enum value will increase over time as new algorithms are
* added to the libvirt API. It reflects the last algorithm supported
* by this version of the libvirt API.
*
* Since: 0.9.10
*/
# endif
} virStorageVolWipeAlgorithm;
@@ -223,17 +231,17 @@ typedef enum {
/**
* virStorageVolInfoFlags:
*
* Since: v3.0.0
* Since: 3.0.0
*/
typedef enum {
VIR_STORAGE_VOL_USE_ALLOCATION = 0, /* (Since: v3.0.0) */
VIR_STORAGE_VOL_GET_PHYSICAL = 1 << 0, /* Return the physical size in allocation (Since: v3.0.0) */
VIR_STORAGE_VOL_USE_ALLOCATION = 0, /* (Since: 3.0.0) */
VIR_STORAGE_VOL_GET_PHYSICAL = 1 << 0, /* Return the physical size in allocation (Since: 3.0.0) */
} virStorageVolInfoFlags;
/**
* virStorageVolInfo:
*
* Since: v0.4.1
* Since: 0.4.1
*/
typedef struct _virStorageVolInfo virStorageVolInfo;
@@ -247,17 +255,17 @@ struct _virStorageVolInfo {
/**
* virStorageVolInfoPtr:
*
* Since: v0.4.1
* Since: 0.4.1
*/
typedef virStorageVolInfo *virStorageVolInfoPtr;
/**
* virStorageXMLFlags:
*
* Since: v0.9.13
* Since: 0.9.13
*/
typedef enum {
VIR_STORAGE_XML_INACTIVE = (1 << 0), /* dump inactive pool/volume information */
VIR_STORAGE_XML_INACTIVE = (1 << 0), /* dump inactive pool/volume information (Since: 0.9.13) */
} virStorageXMLFlags;
/*
@@ -292,33 +300,32 @@ int virConnectListDefinedStoragePools(virConnectPtr conn,
* Note that these flags come in groups; if all bits from a group are 0,
* then that group is not used to filter results.
*
* Since: v1.0.0
* Since: 0.10.2
*/
typedef enum {
VIR_CONNECT_LIST_STORAGE_POOLS_INACTIVE = 1 << 0,
VIR_CONNECT_LIST_STORAGE_POOLS_ACTIVE = 1 << 1,
VIR_CONNECT_LIST_STORAGE_POOLS_INACTIVE = 1 << 0, /* (Since: 0.10.2) */
VIR_CONNECT_LIST_STORAGE_POOLS_ACTIVE = 1 << 1, /* (Since: 0.10.2) */
VIR_CONNECT_LIST_STORAGE_POOLS_PERSISTENT = 1 << 2,
VIR_CONNECT_LIST_STORAGE_POOLS_TRANSIENT = 1 << 3,
VIR_CONNECT_LIST_STORAGE_POOLS_PERSISTENT = 1 << 2, /* (Since: 0.10.2) */
VIR_CONNECT_LIST_STORAGE_POOLS_TRANSIENT = 1 << 3, /* (Since: 0.10.2) */
VIR_CONNECT_LIST_STORAGE_POOLS_AUTOSTART = 1 << 4,
VIR_CONNECT_LIST_STORAGE_POOLS_NO_AUTOSTART = 1 << 5,
VIR_CONNECT_LIST_STORAGE_POOLS_AUTOSTART = 1 << 4, /* (Since: 0.10.2) */
VIR_CONNECT_LIST_STORAGE_POOLS_NO_AUTOSTART = 1 << 5, /* (Since: 0.10.2) */
/* List pools by type */
VIR_CONNECT_LIST_STORAGE_POOLS_DIR = 1 << 6,
VIR_CONNECT_LIST_STORAGE_POOLS_FS = 1 << 7,
VIR_CONNECT_LIST_STORAGE_POOLS_NETFS = 1 << 8,
VIR_CONNECT_LIST_STORAGE_POOLS_LOGICAL = 1 << 9,
VIR_CONNECT_LIST_STORAGE_POOLS_DISK = 1 << 10,
VIR_CONNECT_LIST_STORAGE_POOLS_ISCSI = 1 << 11,
VIR_CONNECT_LIST_STORAGE_POOLS_SCSI = 1 << 12,
VIR_CONNECT_LIST_STORAGE_POOLS_MPATH = 1 << 13,
VIR_CONNECT_LIST_STORAGE_POOLS_RBD = 1 << 14,
VIR_CONNECT_LIST_STORAGE_POOLS_SHEEPDOG = 1 << 15,
VIR_CONNECT_LIST_STORAGE_POOLS_GLUSTER = 1 << 16,
VIR_CONNECT_LIST_STORAGE_POOLS_ZFS = 1 << 17,
VIR_CONNECT_LIST_STORAGE_POOLS_VSTORAGE = 1 << 18,
VIR_CONNECT_LIST_STORAGE_POOLS_ISCSI_DIRECT = 1 << 19,
VIR_CONNECT_LIST_STORAGE_POOLS_DIR = 1 << 6, /* (Since: 0.10.2) */
VIR_CONNECT_LIST_STORAGE_POOLS_FS = 1 << 7, /* (Since: 0.10.2) */
VIR_CONNECT_LIST_STORAGE_POOLS_NETFS = 1 << 8, /* (Since: 0.10.2) */
VIR_CONNECT_LIST_STORAGE_POOLS_LOGICAL = 1 << 9, /* (Since: 0.10.2) */
VIR_CONNECT_LIST_STORAGE_POOLS_DISK = 1 << 10, /* (Since: 0.10.2) */
VIR_CONNECT_LIST_STORAGE_POOLS_ISCSI = 1 << 11, /* (Since: 0.10.2) */
VIR_CONNECT_LIST_STORAGE_POOLS_SCSI = 1 << 12, /* (Since: 0.10.2) */
VIR_CONNECT_LIST_STORAGE_POOLS_MPATH = 1 << 13, /* (Since: 0.10.2) */
VIR_CONNECT_LIST_STORAGE_POOLS_RBD = 1 << 14, /* (Since: 0.10.2) */
VIR_CONNECT_LIST_STORAGE_POOLS_SHEEPDOG = 1 << 15, /* (Since: 0.10.2) */
VIR_CONNECT_LIST_STORAGE_POOLS_GLUSTER = 1 << 16, /* (Since: 1.2.1) */
VIR_CONNECT_LIST_STORAGE_POOLS_ZFS = 1 << 17, /* (Since: 1.2.8) */
VIR_CONNECT_LIST_STORAGE_POOLS_VSTORAGE = 1 << 18, /* (Since: 3.1.0) */
VIR_CONNECT_LIST_STORAGE_POOLS_ISCSI_DIRECT = 1 << 19, /* (Since: 5.6.0) */
} virConnectListAllStoragePoolsFlags;
int virConnectListAllStoragePools(virConnectPtr conn,
@@ -347,10 +354,10 @@ virStoragePoolPtr virStoragePoolLookupByTargetPath(virConnectPtr conn,
/**
* virStoragePoolDefineFlags:
*
* Since: v7.7.0
* Since: 7.7.0
*/
typedef enum {
VIR_STORAGE_POOL_DEFINE_VALIDATE = 1 << 0, /* Validate the XML document against schema */
VIR_STORAGE_POOL_DEFINE_VALIDATE = 1 << 0, /* Validate the XML document against schema (Since: 7.7.0) */
} virStoragePoolDefineFlags;
/*
@@ -425,11 +432,11 @@ const char* virStorageVolGetKey (virStorageVolPtr vol);
/**
* virStorageVolCreateFlags:
*
* Since: v1.0.1
* Since: 1.0.1
*/
typedef enum {
VIR_STORAGE_VOL_CREATE_PREALLOC_METADATA = 1 << 0,
VIR_STORAGE_VOL_CREATE_REFLINK = 1 << 1, /* perform a btrfs lightweight copy */
VIR_STORAGE_VOL_CREATE_PREALLOC_METADATA = 1 << 0, /* (Since: 1.0.1) */
VIR_STORAGE_VOL_CREATE_REFLINK = 1 << 1, /* perform a btrfs lightweight copy (Since: 1.2.13) */
} virStorageVolCreateFlags;
virStorageVolPtr virStorageVolCreateXML (virStoragePoolPtr pool,
@@ -442,10 +449,10 @@ virStorageVolPtr virStorageVolCreateXMLFrom (virStoragePoolPtr pool,
/**
* virStorageVolDownloadFlags:
*
* Since: v3.4.0
* Since: 3.4.0
*/
typedef enum {
VIR_STORAGE_VOL_DOWNLOAD_SPARSE_STREAM = 1 << 0, /* Use sparse stream */
VIR_STORAGE_VOL_DOWNLOAD_SPARSE_STREAM = 1 << 0, /* Use sparse stream (Since: 3.4.0) */
} virStorageVolDownloadFlags;
int virStorageVolDownload (virStorageVolPtr vol,
@@ -457,10 +464,10 @@ int virStorageVolDownload (virStorageVolPtr vol,
/**
* virStorageVolUploadFlags:
*
* Since: v3.4.0
* Since: 3.4.0
*/
typedef enum {
VIR_STORAGE_VOL_UPLOAD_SPARSE_STREAM = 1 << 0, /* Use sparse stream */
VIR_STORAGE_VOL_UPLOAD_SPARSE_STREAM = 1 << 0, /* Use sparse stream (Since: 3.4.0) */
} virStorageVolUploadFlags;
int virStorageVolUpload (virStorageVolPtr vol,
@@ -491,12 +498,12 @@ char * virStorageVolGetPath (virStorageVolPtr vol);
/**
* virStorageVolResizeFlags:
*
* Since: v0.9.10
* Since: 0.9.10
*/
typedef enum {
VIR_STORAGE_VOL_RESIZE_ALLOCATE = 1 << 0, /* force allocation of new size */
VIR_STORAGE_VOL_RESIZE_DELTA = 1 << 1, /* size is relative to current */
VIR_STORAGE_VOL_RESIZE_SHRINK = 1 << 2, /* allow decrease in capacity */
VIR_STORAGE_VOL_RESIZE_ALLOCATE = 1 << 0, /* force allocation of new size (Since: 0.9.10) */
VIR_STORAGE_VOL_RESIZE_DELTA = 1 << 1, /* size is relative to current (Since: 0.9.10) */
VIR_STORAGE_VOL_RESIZE_SHRINK = 1 << 2, /* allow decrease in capacity (Since: 0.9.10) */
} virStorageVolResizeFlags;
int virStorageVolResize (virStorageVolPtr vol,
@@ -512,7 +519,7 @@ int virStoragePoolIsPersistent(virStoragePoolPtr pool);
* Used to cast the event specific callback into the generic one
* for use for virConnectStoragePoolEventRegisterAny()
*
* Since: v2.0.0
* Since: 2.0.0
*/
# define VIR_STORAGE_POOL_EVENT_CALLBACK(cb)((virConnectStoragePoolEventGenericCallback)(cb))
@@ -523,11 +530,11 @@ int virStoragePoolIsPersistent(virStoragePoolPtr pool);
* virConnectStoragePoolEventRegisterAny(). Each event id determines which
* signature of callback function will be used.
*
* Since: v2.0.0
* Since: 2.0.0
*/
typedef enum {
VIR_STORAGE_POOL_EVENT_ID_LIFECYCLE = 0, /* virConnectStoragePoolEventLifecycleCallback */
VIR_STORAGE_POOL_EVENT_ID_REFRESH = 1, /* virConnectStoragePoolEventGenericCallback */
VIR_STORAGE_POOL_EVENT_ID_LIFECYCLE = 0, /* virConnectStoragePoolEventLifecycleCallback (Since: 2.0.0) */
VIR_STORAGE_POOL_EVENT_ID_REFRESH = 1, /* virConnectStoragePoolEventGenericCallback (Since: 2.0.0) */
# ifdef VIR_ENUM_SENTINELS
VIR_STORAGE_POOL_EVENT_ID_LAST
@@ -535,6 +542,8 @@ typedef enum {
* NB: this enum value will increase over time as new events are
* added to the libvirt API. It reflects the last event ID supported
* by this version of the libvirt API.
*
* Since: 2.0.0
*/
# endif
} virStoragePoolEventID;
@@ -550,6 +559,8 @@ typedef enum {
* have a customization with extra parameters, often with @opaque being
* passed in a different parameter position; use
* VIR_STORAGE_POOL_EVENT_CALLBACK() when registering an appropriate handler.
*
* Since: 2.0.0
*/
typedef void (*virConnectStoragePoolEventGenericCallback)(virConnectPtr conn,
virStoragePoolPtr pool,
@@ -572,18 +583,18 @@ int virConnectStoragePoolEventDeregisterAny(virConnectPtr conn,
* a virStoragePoolEventLifecycleType is emitted during storage pool
* lifecycle events
*
* Since: v2.0.0
* Since: 2.0.0
*/
typedef enum {
VIR_STORAGE_POOL_EVENT_DEFINED = 0,
VIR_STORAGE_POOL_EVENT_UNDEFINED = 1,
VIR_STORAGE_POOL_EVENT_STARTED = 2,
VIR_STORAGE_POOL_EVENT_STOPPED = 3,
VIR_STORAGE_POOL_EVENT_CREATED = 4,
VIR_STORAGE_POOL_EVENT_DELETED = 5,
VIR_STORAGE_POOL_EVENT_DEFINED = 0, /* (Since: 2.0.0) */
VIR_STORAGE_POOL_EVENT_UNDEFINED = 1, /* (Since: 2.0.0) */
VIR_STORAGE_POOL_EVENT_STARTED = 2, /* (Since: 2.0.0) */
VIR_STORAGE_POOL_EVENT_STOPPED = 3, /* (Since: 2.0.0) */
VIR_STORAGE_POOL_EVENT_CREATED = 4, /* (Since: 3.8.0) */
VIR_STORAGE_POOL_EVENT_DELETED = 5, /* (Since: 3.8.0) */
# ifdef VIR_ENUM_SENTINELS
VIR_STORAGE_POOL_EVENT_LAST
VIR_STORAGE_POOL_EVENT_LAST /* (Since: 2.0.0) */
# endif
} virStoragePoolEventLifecycleType;
@@ -601,6 +612,8 @@ typedef enum {
* The callback signature to use when registering for an event of type
* VIR_STORAGE_POOL_EVENT_ID_LIFECYCLE with
* virConnectStoragePoolEventRegisterAny()
*
* Since: 2.0.0
*/
typedef void (*virConnectStoragePoolEventLifecycleCallback)(virConnectPtr conn,
virStoragePoolPtr pool,

View File

@@ -31,10 +31,10 @@
/**
* virStreamFlags:
*
* Since: v0.7.2
* Since: 0.7.2
*/
typedef enum {
VIR_STREAM_NONBLOCK = (1 << 0),
VIR_STREAM_NONBLOCK = (1 << 0), /* (Since: 0.7.2) */
} virStreamFlags;
virStreamPtr virStreamNew(virConnectPtr conn,
@@ -52,10 +52,10 @@ int virStreamRecv(virStreamPtr st,
/**
* virStreamRecvFlagsValues:
*
* Since: v3.4.0
* Since: 3.4.0
*/
typedef enum {
VIR_STREAM_RECV_STOP_AT_HOLE = (1 << 0),
VIR_STREAM_RECV_STOP_AT_HOLE = (1 << 0), /* (Since: 3.4.0) */
} virStreamRecvFlagsValues;
int virStreamRecvFlags(virStreamPtr st,
@@ -98,6 +98,8 @@ int virStreamRecvHole(virStreamPtr,
*
* Returns the number of bytes filled, 0 upon end
* of file, or -1 upon error
*
* Since: 0.7.2
*/
typedef int (*virStreamSourceFunc)(virStreamPtr st,
char *data,
@@ -136,6 +138,8 @@ int virStreamSendAll(virStreamPtr st,
*
* Returns 0 on success,
* -1 upon error
*
* Since: 3.4.0
*/
typedef int (*virStreamSourceHoleFunc)(virStreamPtr st,
int *inData,
@@ -162,6 +166,8 @@ typedef int (*virStreamSourceHoleFunc)(virStreamPtr st,
*
* Returns 0 on success,
* -1 upon error.
*
* Since: 3.4.0
*/
typedef int (*virStreamSourceSkipFunc)(virStreamPtr st,
long long length,
@@ -199,6 +205,8 @@ int virStreamSparseSendAll(virStreamPtr st,
*
* Returns the number of bytes consumed or -1 upon
* error
*
* Since: 0.7.2
*/
typedef int (*virStreamSinkFunc)(virStreamPtr st,
const char *data,
@@ -229,6 +237,8 @@ int virStreamRecvAll(virStreamPtr st,
*
* Returns 0 on success,
* -1 upon error
*
* Since: 3.4.0
*/
typedef int (*virStreamSinkHoleFunc)(virStreamPtr st,
long long length,
@@ -242,13 +252,13 @@ int virStreamSparseRecvAll(virStreamPtr stream,
/**
* virStreamEventType:
*
* Since: v0.7.2
* Since: 0.7.2
*/
typedef enum {
VIR_STREAM_EVENT_READABLE = (1 << 0),
VIR_STREAM_EVENT_WRITABLE = (1 << 1),
VIR_STREAM_EVENT_ERROR = (1 << 2),
VIR_STREAM_EVENT_HANGUP = (1 << 3),
VIR_STREAM_EVENT_READABLE = (1 << 0), /* (Since: 0.7.2) */
VIR_STREAM_EVENT_WRITABLE = (1 << 1), /* (Since: 0.7.2) */
VIR_STREAM_EVENT_ERROR = (1 << 2), /* (Since: 0.7.2) */
VIR_STREAM_EVENT_HANGUP = (1 << 3), /* (Since: 0.7.2) */
} virStreamEventType;
@@ -261,6 +271,8 @@ typedef enum {
*
* Callback for receiving stream events. The callback will
* be invoked once for each event which is pending.
*
* Since: 0.7.2
*/
typedef void (*virStreamEventCallback)(virStreamPtr stream, int events, void *opaque);

View File

@@ -35,12 +35,12 @@ extern "C" {
*
* Indicates the level of an error
*
* Since: v0.1.0
* Since: 0.1.0
*/
typedef enum {
VIR_ERR_NONE = 0,
VIR_ERR_WARNING = 1, /* A simple warning */
VIR_ERR_ERROR = 2 /* An error */
VIR_ERR_NONE = 0, /* (Since: 0.1.0) */
VIR_ERR_WARNING = 1, /* A simple warning (Since: 0.1.0) */
VIR_ERR_ERROR = 2 /* An error (Since: 0.1.0) */
} virErrorLevel;
/**
@@ -49,101 +49,101 @@ typedef enum {
* Indicates where an error may have come from. This should remain
* stable, with all additions placed at the end since libvirt 0.1.0.
*
* Since: v0.1.0
* Since: 0.1.0
*/
typedef enum {
VIR_FROM_NONE = 0,
VIR_FROM_XEN = 1, /* Error at Xen hypervisor layer */
VIR_FROM_XEND = 2, /* Error at connection with xend daemon */
VIR_FROM_XENSTORE = 3, /* Error at connection with xen store */
VIR_FROM_SEXPR = 4, /* Error in the S-Expression code */
VIR_FROM_NONE = 0, /* (Since: 0.1.0) */
VIR_FROM_XEN = 1, /* Error at Xen hypervisor layer (Since: 0.1.0) */
VIR_FROM_XEND = 2, /* Error at connection with xend daemon (Since: 0.1.0) */
VIR_FROM_XENSTORE = 3, /* Error at connection with xen store (Since: 0.1.0) */
VIR_FROM_SEXPR = 4, /* Error in the S-Expression code (Since: 0.1.0) */
VIR_FROM_XML = 5, /* Error in the XML code */
VIR_FROM_DOM = 6, /* Error when operating on a domain */
VIR_FROM_RPC = 7, /* Error in the XML-RPC code */
VIR_FROM_XML = 5, /* Error in the XML code (Since: 0.1.0) */
VIR_FROM_DOM = 6, /* Error when operating on a domain (Since: 0.1.0) */
VIR_FROM_RPC = 7, /* Error in the XML-RPC code (Since: 0.1.1) */
VIR_FROM_PROXY = 8, /* Error in the proxy code; unused since
0.8.6 */
VIR_FROM_CONF = 9, /* Error in the configuration file handling */
0.8.6 (Since: 0.1.3) */
VIR_FROM_CONF = 9, /* Error in the configuration file handling (Since: 0.1.6) */
VIR_FROM_QEMU = 10, /* Error at the QEMU daemon */
VIR_FROM_NET = 11, /* Error when operating on a network */
VIR_FROM_TEST = 12, /* Error from test driver */
VIR_FROM_REMOTE = 13, /* Error from remote driver */
VIR_FROM_OPENVZ = 14, /* Error from OpenVZ driver */
VIR_FROM_QEMU = 10, /* Error at the QEMU daemon (Since: 0.2.0) */
VIR_FROM_NET = 11, /* Error when operating on a network (Since: 0.2.0) */
VIR_FROM_TEST = 12, /* Error from test driver (Since: 0.2.3) */
VIR_FROM_REMOTE = 13, /* Error from remote driver (Since: 0.2.3) */
VIR_FROM_OPENVZ = 14, /* Error from OpenVZ driver (Since: 0.3.1) */
VIR_FROM_XENXM = 15, /* Error at Xen XM layer */
VIR_FROM_STATS_LINUX = 16, /* Error in the Linux Stats code */
VIR_FROM_LXC = 17, /* Error from Linux Container driver */
VIR_FROM_STORAGE = 18, /* Error from storage driver */
VIR_FROM_NETWORK = 19, /* Error from network config */
VIR_FROM_XENXM = 15, /* Error at Xen XM layer (Since: 0.4.1) */
VIR_FROM_STATS_LINUX = 16, /* Error in the Linux Stats code (Since: 0.4.1) */
VIR_FROM_LXC = 17, /* Error from Linux Container driver (Since: 0.4.2) */
VIR_FROM_STORAGE = 18, /* Error from storage driver (Since: 0.4.1) */
VIR_FROM_NETWORK = 19, /* Error from network config (Since: 0.4.6) */
VIR_FROM_DOMAIN = 20, /* Error from domain config */
VIR_FROM_UML = 21, /* Error at the UML driver; unused since 5.0.0 */
VIR_FROM_NODEDEV = 22, /* Error from node device monitor */
VIR_FROM_XEN_INOTIFY = 23, /* Error from xen inotify layer */
VIR_FROM_SECURITY = 24, /* Error from security framework */
VIR_FROM_DOMAIN = 20, /* Error from domain config (Since: 0.4.6) */
VIR_FROM_UML = 21, /* Error at the UML driver; unused since 5.0.0 (Since: 0.5.0) */
VIR_FROM_NODEDEV = 22, /* Error from node device monitor (Since: 0.5.0) */
VIR_FROM_XEN_INOTIFY = 23, /* Error from xen inotify layer (Since: 0.5.0) */
VIR_FROM_SECURITY = 24, /* Error from security framework (Since: 0.6.1) */
VIR_FROM_VBOX = 25, /* Error from VirtualBox driver */
VIR_FROM_INTERFACE = 26, /* Error when operating on an interface */
VIR_FROM_VBOX = 25, /* Error from VirtualBox driver (Since: 0.6.3) */
VIR_FROM_INTERFACE = 26, /* Error when operating on an interface (Since: 0.6.4) */
VIR_FROM_ONE = 27, /* The OpenNebula driver no longer exists.
Retained for ABI/API compat only */
VIR_FROM_ESX = 28, /* Error from ESX driver */
VIR_FROM_PHYP = 29, /* Error from the phyp driver, unused since 6.0.0 */
Retained for ABI/API compat only (Since: 0.6.4) */
VIR_FROM_ESX = 28, /* Error from ESX driver (Since: 0.7.0) */
VIR_FROM_PHYP = 29, /* Error from the phyp driver, unused since 6.0.0 (Since: 0.7.0) */
VIR_FROM_SECRET = 30, /* Error from secret storage */
VIR_FROM_CPU = 31, /* Error from CPU driver */
VIR_FROM_XENAPI = 32, /* Error from XenAPI */
VIR_FROM_NWFILTER = 33, /* Error from network filter driver */
VIR_FROM_HOOK = 34, /* Error from Synchronous hooks */
VIR_FROM_SECRET = 30, /* Error from secret storage (Since: 0.7.1) */
VIR_FROM_CPU = 31, /* Error from CPU driver (Since: 0.7.5) */
VIR_FROM_XENAPI = 32, /* Error from XenAPI (Since: 0.8.0) */
VIR_FROM_NWFILTER = 33, /* Error from network filter driver (Since: 0.8.0) */
VIR_FROM_HOOK = 34, /* Error from Synchronous hooks (Since: 0.8.0) */
VIR_FROM_DOMAIN_SNAPSHOT = 35,/* Error from domain snapshot */
VIR_FROM_AUDIT = 36, /* Error from auditing subsystem */
VIR_FROM_SYSINFO = 37, /* Error from sysinfo/SMBIOS */
VIR_FROM_STREAMS = 38, /* Error from I/O streams */
VIR_FROM_VMWARE = 39, /* Error from VMware driver */
VIR_FROM_DOMAIN_SNAPSHOT = 35,/* Error from domain snapshot (Since: 0.8.0) */
VIR_FROM_AUDIT = 36, /* Error from auditing subsystem (Since: 0.8.5) */
VIR_FROM_SYSINFO = 37, /* Error from sysinfo/SMBIOS (Since: 0.8.6) */
VIR_FROM_STREAMS = 38, /* Error from I/O streams (Since: 0.8.6) */
VIR_FROM_VMWARE = 39, /* Error from VMware driver (Since: 0.8.7) */
VIR_FROM_EVENT = 40, /* Error from event loop impl */
VIR_FROM_LIBXL = 41, /* Error from libxenlight driver */
VIR_FROM_LOCKING = 42, /* Error from lock manager */
VIR_FROM_HYPERV = 43, /* Error from Hyper-V driver */
VIR_FROM_CAPABILITIES = 44, /* Error from capabilities */
VIR_FROM_EVENT = 40, /* Error from event loop impl (Since: 0.9.0) */
VIR_FROM_LIBXL = 41, /* Error from libxenlight driver (Since: 0.9.0) */
VIR_FROM_LOCKING = 42, /* Error from lock manager (Since: 0.9.2) */
VIR_FROM_HYPERV = 43, /* Error from Hyper-V driver (Since: 0.9.5) */
VIR_FROM_CAPABILITIES = 44, /* Error from capabilities (Since: 0.9.8) */
VIR_FROM_URI = 45, /* Error from URI handling */
VIR_FROM_AUTH = 46, /* Error from auth handling */
VIR_FROM_DBUS = 47, /* Error from DBus */
VIR_FROM_PARALLELS = 48, /* Error from Parallels */
VIR_FROM_DEVICE = 49, /* Error from Device */
VIR_FROM_URI = 45, /* Error from URI handling (Since: 0.9.11) */
VIR_FROM_AUTH = 46, /* Error from auth handling (Since: 0.9.11) */
VIR_FROM_DBUS = 47, /* Error from DBus (Since: 0.9.12) */
VIR_FROM_PARALLELS = 48, /* Error from Parallels (Since: 0.10.0) */
VIR_FROM_DEVICE = 49, /* Error from Device (Since: 0.10.0) */
VIR_FROM_SSH = 50, /* Error from libssh2 connection transport */
VIR_FROM_LOCKSPACE = 51, /* Error from lockspace */
VIR_FROM_INITCTL = 52, /* Error from initctl device communication */
VIR_FROM_IDENTITY = 53, /* Error from identity code */
VIR_FROM_CGROUP = 54, /* Error from cgroups */
VIR_FROM_SSH = 50, /* Error from libssh2 connection transport (Since: 0.10.0) */
VIR_FROM_LOCKSPACE = 51, /* Error from lockspace (Since: 1.0.0) */
VIR_FROM_INITCTL = 52, /* Error from initctl device communication (Since: 1.0.1) */
VIR_FROM_IDENTITY = 53, /* Error from identity code (Since: 1.0.4) */
VIR_FROM_CGROUP = 54, /* Error from cgroups (Since: 1.0.5) */
VIR_FROM_ACCESS = 55, /* Error from access control manager */
VIR_FROM_SYSTEMD = 56, /* Error from systemd code */
VIR_FROM_BHYVE = 57, /* Error from bhyve driver */
VIR_FROM_CRYPTO = 58, /* Error from crypto code */
VIR_FROM_FIREWALL = 59, /* Error from firewall */
VIR_FROM_ACCESS = 55, /* Error from access control manager (Since: 1.1.0) */
VIR_FROM_SYSTEMD = 56, /* Error from systemd code (Since: 1.1.1) */
VIR_FROM_BHYVE = 57, /* Error from bhyve driver (Since: 1.2.2) */
VIR_FROM_CRYPTO = 58, /* Error from crypto code (Since: 1.2.3) */
VIR_FROM_FIREWALL = 59, /* Error from firewall (Since: 1.2.4) */
VIR_FROM_POLKIT = 60, /* Error from polkit code */
VIR_FROM_THREAD = 61, /* Error from thread utils */
VIR_FROM_ADMIN = 62, /* Error from admin backend */
VIR_FROM_LOGGING = 63, /* Error from log manager */
VIR_FROM_XENXL = 64, /* Error from Xen xl config code */
VIR_FROM_POLKIT = 60, /* Error from polkit code (Since: 1.2.9) */
VIR_FROM_THREAD = 61, /* Error from thread utils (Since: 1.2.14) */
VIR_FROM_ADMIN = 62, /* Error from admin backend (Since: 1.2.17) */
VIR_FROM_LOGGING = 63, /* Error from log manager (Since: 1.3.0) */
VIR_FROM_XENXL = 64, /* Error from Xen xl config code (Since: 1.3.2) */
VIR_FROM_PERF = 65, /* Error from perf */
VIR_FROM_LIBSSH = 66, /* Error from libssh connection transport */
VIR_FROM_RESCTRL = 67, /* Error from resource control */
VIR_FROM_FIREWALLD = 68, /* Error from firewalld */
VIR_FROM_DOMAIN_CHECKPOINT = 69, /* Error from domain checkpoint */
VIR_FROM_PERF = 65, /* Error from perf (Since: 1.3.3) */
VIR_FROM_LIBSSH = 66, /* Error from libssh connection transport (Since: 2.5.0) */
VIR_FROM_RESCTRL = 67, /* Error from resource control (Since: 3.7.0) */
VIR_FROM_FIREWALLD = 68, /* Error from firewalld (Since: 5.1.0) */
VIR_FROM_DOMAIN_CHECKPOINT = 69, /* Error from domain checkpoint (Since: 5.2.0) */
VIR_FROM_TPM = 70, /* Error from TPM */
VIR_FROM_BPF = 71, /* Error from BPF code */
VIR_FROM_CH = 72, /* Error from Cloud-Hypervisor driver */
VIR_FROM_TPM = 70, /* Error from TPM (Since: 5.6.0) */
VIR_FROM_BPF = 71, /* Error from BPF code (Since: 5.10.0) */
VIR_FROM_CH = 72, /* Error from Cloud-Hypervisor driver (Since: 7.5.0) */
# ifdef VIR_ENUM_SENTINELS
VIR_ERR_DOMAIN_LAST
VIR_ERR_DOMAIN_LAST /* (Since: 0.9.13) */
# endif
} virErrorDomain;
@@ -157,14 +157,14 @@ typedef enum {
* Reference counts are not incremented so the underlying objects
* may be deleted without notice after the error has been delivered.
*
* Since: v0.1.0
* Since: 0.1.0
*/
typedef struct _virError virError;
/**
* virErrorPtr:
*
* Since: v0.1.0
* Since: 0.1.0
*/
typedef virError *virErrorPtr;
struct _virError {
@@ -217,140 +217,140 @@ struct _virError {
* default:
* }
*
* Since: v0.1.0
* Since: 0.1.0
*/
typedef enum {
VIR_ERR_OK = 0,
VIR_ERR_INTERNAL_ERROR = 1, /* internal error */
VIR_ERR_NO_MEMORY = 2, /* memory allocation failure */
VIR_ERR_NO_SUPPORT = 3, /* no support for this function */
VIR_ERR_UNKNOWN_HOST = 4, /* could not resolve hostname */
VIR_ERR_NO_CONNECT = 5, /* can't connect to hypervisor */
VIR_ERR_INVALID_CONN = 6, /* invalid connection object */
VIR_ERR_INVALID_DOMAIN = 7, /* invalid domain object */
VIR_ERR_INVALID_ARG = 8, /* invalid function argument */
VIR_ERR_OPERATION_FAILED = 9, /* a command to hypervisor failed */
VIR_ERR_GET_FAILED = 10, /* a HTTP GET command to failed */
VIR_ERR_POST_FAILED = 11, /* a HTTP POST command to failed */
VIR_ERR_HTTP_ERROR = 12, /* unexpected HTTP error code */
VIR_ERR_SEXPR_SERIAL = 13, /* failure to serialize an S-Expr */
VIR_ERR_OK = 0, /* (Since: 0.1.0) */
VIR_ERR_INTERNAL_ERROR = 1, /* internal error (Since: 0.1.0) */
VIR_ERR_NO_MEMORY = 2, /* memory allocation failure (Since: 0.1.0) */
VIR_ERR_NO_SUPPORT = 3, /* no support for this function (Since: 0.1.0) */
VIR_ERR_UNKNOWN_HOST = 4, /* could not resolve hostname (Since: 0.1.0) */
VIR_ERR_NO_CONNECT = 5, /* can't connect to hypervisor (Since: 0.1.0) */
VIR_ERR_INVALID_CONN = 6, /* invalid connection object (Since: 0.1.0) */
VIR_ERR_INVALID_DOMAIN = 7, /* invalid domain object (Since: 0.1.0) */
VIR_ERR_INVALID_ARG = 8, /* invalid function argument (Since: 0.1.0) */
VIR_ERR_OPERATION_FAILED = 9, /* a command to hypervisor failed (Since: 0.1.0) */
VIR_ERR_GET_FAILED = 10, /* a HTTP GET command to failed (Since: 0.1.0) */
VIR_ERR_POST_FAILED = 11, /* a HTTP POST command to failed (Since: 0.1.0) */
VIR_ERR_HTTP_ERROR = 12, /* unexpected HTTP error code (Since: 0.1.0) */
VIR_ERR_SEXPR_SERIAL = 13, /* failure to serialize an S-Expr (Since: 0.1.0) */
VIR_ERR_NO_XEN = 14, /* could not open Xen hypervisor
control */
VIR_ERR_XEN_CALL = 15, /* failure doing an hypervisor call */
VIR_ERR_OS_TYPE = 16, /* unknown OS type */
VIR_ERR_NO_KERNEL = 17, /* missing kernel information */
VIR_ERR_NO_ROOT = 18, /* missing root device information */
VIR_ERR_NO_SOURCE = 19, /* missing source device information */
VIR_ERR_NO_TARGET = 20, /* missing target device information */
VIR_ERR_NO_NAME = 21, /* missing domain name information */
VIR_ERR_NO_OS = 22, /* missing domain OS information */
VIR_ERR_NO_DEVICE = 23, /* missing domain devices information */
VIR_ERR_NO_XENSTORE = 24, /* could not open Xen Store control */
VIR_ERR_DRIVER_FULL = 25, /* too many drivers registered */
control (Since: 0.1.0) */
VIR_ERR_XEN_CALL = 15, /* failure doing an hypervisor call (Since: 0.1.0) */
VIR_ERR_OS_TYPE = 16, /* unknown OS type (Since: 0.1.0) */
VIR_ERR_NO_KERNEL = 17, /* missing kernel information (Since: 0.1.0) */
VIR_ERR_NO_ROOT = 18, /* missing root device information (Since: 0.1.0) */
VIR_ERR_NO_SOURCE = 19, /* missing source device information (Since: 0.1.0) */
VIR_ERR_NO_TARGET = 20, /* missing target device information (Since: 0.1.0) */
VIR_ERR_NO_NAME = 21, /* missing domain name information (Since: 0.1.0) */
VIR_ERR_NO_OS = 22, /* missing domain OS information (Since: 0.1.0) */
VIR_ERR_NO_DEVICE = 23, /* missing domain devices information (Since: 0.1.0) */
VIR_ERR_NO_XENSTORE = 24, /* could not open Xen Store control (Since: 0.1.0) */
VIR_ERR_DRIVER_FULL = 25, /* too many drivers registered (Since: 0.1.0) */
VIR_ERR_CALL_FAILED = 26, /* not supported by the drivers
(DEPRECATED) */
(DEPRECATED) (Since: 0.1.0) */
VIR_ERR_XML_ERROR = 27, /* an XML description is not well
formed or broken */
VIR_ERR_DOM_EXIST = 28, /* the domain already exist */
formed or broken (Since: 0.1.1) */
VIR_ERR_DOM_EXIST = 28, /* the domain already exist (Since: 0.1.1) */
VIR_ERR_OPERATION_DENIED = 29, /* operation forbidden on read-only
connections */
VIR_ERR_OPEN_FAILED = 30, /* failed to open a conf file */
VIR_ERR_READ_FAILED = 31, /* failed to read a conf file */
VIR_ERR_PARSE_FAILED = 32, /* failed to parse a conf file */
connections (Since: 0.1.4) */
VIR_ERR_OPEN_FAILED = 30, /* failed to open a conf file (Since: 0.1.6) */
VIR_ERR_READ_FAILED = 31, /* failed to read a conf file (Since: 0.1.6) */
VIR_ERR_PARSE_FAILED = 32, /* failed to parse a conf file (Since: 0.1.6) */
VIR_ERR_CONF_SYNTAX = 33, /* failed to parse the syntax of a
conf file */
VIR_ERR_WRITE_FAILED = 34, /* failed to write a conf file */
VIR_ERR_XML_DETAIL = 35, /* detail of an XML error */
VIR_ERR_INVALID_NETWORK = 36, /* invalid network object */
VIR_ERR_NETWORK_EXIST = 37, /* the network already exist */
VIR_ERR_SYSTEM_ERROR = 38, /* general system call failure */
VIR_ERR_RPC = 39, /* some sort of RPC error */
VIR_ERR_GNUTLS_ERROR = 40, /* error from a GNUTLS call */
VIR_WAR_NO_NETWORK = 41, /* failed to start network */
conf file (Since: 0.1.6) */
VIR_ERR_WRITE_FAILED = 34, /* failed to write a conf file (Since: 0.1.6) */
VIR_ERR_XML_DETAIL = 35, /* detail of an XML error (Since: 0.1.9) */
VIR_ERR_INVALID_NETWORK = 36, /* invalid network object (Since: 0.2.0) */
VIR_ERR_NETWORK_EXIST = 37, /* the network already exist (Since: 0.2.0) */
VIR_ERR_SYSTEM_ERROR = 38, /* general system call failure (Since: 0.2.1) */
VIR_ERR_RPC = 39, /* some sort of RPC error (Since: 0.2.3) */
VIR_ERR_GNUTLS_ERROR = 40, /* error from a GNUTLS call (Since: 0.2.3) */
VIR_WAR_NO_NETWORK = 41, /* failed to start network (Since: 0.2.3) */
VIR_ERR_NO_DOMAIN = 42, /* domain not found or unexpectedly
disappeared */
VIR_ERR_NO_NETWORK = 43, /* network not found */
VIR_ERR_INVALID_MAC = 44, /* invalid MAC address */
VIR_ERR_AUTH_FAILED = 45, /* authentication failed */
VIR_ERR_INVALID_STORAGE_POOL = 46, /* invalid storage pool object */
VIR_ERR_INVALID_STORAGE_VOL = 47, /* invalid storage vol object */
VIR_WAR_NO_STORAGE = 48, /* failed to start storage */
VIR_ERR_NO_STORAGE_POOL = 49, /* storage pool not found */
VIR_ERR_NO_STORAGE_VOL = 50, /* storage volume not found */
VIR_WAR_NO_NODE = 51, /* failed to start node driver */
VIR_ERR_INVALID_NODE_DEVICE = 52, /* invalid node device object */
VIR_ERR_NO_NODE_DEVICE = 53, /* node device not found */
VIR_ERR_NO_SECURITY_MODEL = 54, /* security model not found */
disappeared (Since: 0.3.0) */
VIR_ERR_NO_NETWORK = 43, /* network not found (Since: 0.3.0) */
VIR_ERR_INVALID_MAC = 44, /* invalid MAC address (Since: 0.3.1) */
VIR_ERR_AUTH_FAILED = 45, /* authentication failed (Since: 0.4.1) */
VIR_ERR_INVALID_STORAGE_POOL = 46, /* invalid storage pool object (Since: 0.4.1) */
VIR_ERR_INVALID_STORAGE_VOL = 47, /* invalid storage vol object (Since: 0.4.1) */
VIR_WAR_NO_STORAGE = 48, /* failed to start storage (Since: 0.4.1) */
VIR_ERR_NO_STORAGE_POOL = 49, /* storage pool not found (Since: 0.4.1) */
VIR_ERR_NO_STORAGE_VOL = 50, /* storage volume not found (Since: 0.4.1) */
VIR_WAR_NO_NODE = 51, /* failed to start node driver (Since: 0.5.0) */
VIR_ERR_INVALID_NODE_DEVICE = 52, /* invalid node device object (Since: 0.5.0) */
VIR_ERR_NO_NODE_DEVICE = 53, /* node device not found (Since: 0.5.0) */
VIR_ERR_NO_SECURITY_MODEL = 54, /* security model not found (Since: 0.6.1) */
VIR_ERR_OPERATION_INVALID = 55, /* operation is not applicable at this
time */
VIR_WAR_NO_INTERFACE = 56, /* failed to start interface driver */
VIR_ERR_NO_INTERFACE = 57, /* interface driver not running */
VIR_ERR_INVALID_INTERFACE = 58, /* invalid interface object */
time (Since: 0.6.4) */
VIR_WAR_NO_INTERFACE = 56, /* failed to start interface driver (Since: 0.6.4) */
VIR_ERR_NO_INTERFACE = 57, /* interface driver not running (Since: 0.6.4) */
VIR_ERR_INVALID_INTERFACE = 58, /* invalid interface object (Since: 0.6.4) */
VIR_ERR_MULTIPLE_INTERFACES = 59, /* more than one matching interface
found */
VIR_WAR_NO_NWFILTER = 60, /* failed to start nwfilter driver */
VIR_ERR_INVALID_NWFILTER = 61, /* invalid nwfilter object */
VIR_ERR_NO_NWFILTER = 62, /* nw filter pool not found */
VIR_ERR_BUILD_FIREWALL = 63, /* nw filter pool not found */
VIR_WAR_NO_SECRET = 64, /* failed to start secret storage */
VIR_ERR_INVALID_SECRET = 65, /* invalid secret */
VIR_ERR_NO_SECRET = 66, /* secret not found */
found (Since: 0.7.0) */
VIR_WAR_NO_NWFILTER = 60, /* failed to start nwfilter driver (Since: 0.8.0) */
VIR_ERR_INVALID_NWFILTER = 61, /* invalid nwfilter object (Since: 0.8.0) */
VIR_ERR_NO_NWFILTER = 62, /* nw filter pool not found (Since: 0.8.0) */
VIR_ERR_BUILD_FIREWALL = 63, /* nw filter pool not found (Since: 0.8.0) */
VIR_WAR_NO_SECRET = 64, /* failed to start secret storage (Since: 0.7.1) */
VIR_ERR_INVALID_SECRET = 65, /* invalid secret (Since: 0.7.1) */
VIR_ERR_NO_SECRET = 66, /* secret not found (Since: 0.7.1) */
VIR_ERR_CONFIG_UNSUPPORTED = 67, /* unsupported configuration
construct */
VIR_ERR_OPERATION_TIMEOUT = 68, /* timeout occurred during operation */
construct (Since: 0.7.3) */
VIR_ERR_OPERATION_TIMEOUT = 68, /* timeout occurred during operation (Since: 0.7.3) */
VIR_ERR_MIGRATE_PERSIST_FAILED = 69,/* a migration worked, but making the
VM persist on the dest host failed */
VIR_ERR_HOOK_SCRIPT_FAILED = 70, /* a synchronous hook script failed */
VIR_ERR_INVALID_DOMAIN_SNAPSHOT = 71,/* invalid domain snapshot */
VIR_ERR_NO_DOMAIN_SNAPSHOT = 72, /* domain snapshot not found */
VIR_ERR_INVALID_STREAM = 73, /* stream pointer not valid */
VM persist on the dest host failed (Since: 0.7.3) */
VIR_ERR_HOOK_SCRIPT_FAILED = 70, /* a synchronous hook script failed (Since: 0.8.0) */
VIR_ERR_INVALID_DOMAIN_SNAPSHOT = 71,/* invalid domain snapshot (Since: 0.8.0) */
VIR_ERR_NO_DOMAIN_SNAPSHOT = 72, /* domain snapshot not found (Since: 0.8.0) */
VIR_ERR_INVALID_STREAM = 73, /* stream pointer not valid (Since: 0.9.0) */
VIR_ERR_ARGUMENT_UNSUPPORTED = 74, /* valid API use but unsupported by
the given driver */
VIR_ERR_STORAGE_PROBE_FAILED = 75, /* storage pool probe failed */
VIR_ERR_STORAGE_POOL_BUILT = 76, /* storage pool already built */
the given driver (Since: 0.9.4) */
VIR_ERR_STORAGE_PROBE_FAILED = 75, /* storage pool probe failed (Since: 0.9.5) */
VIR_ERR_STORAGE_POOL_BUILT = 76, /* storage pool already built (Since: 0.9.5) */
VIR_ERR_SNAPSHOT_REVERT_RISKY = 77, /* force was not requested for a
risky domain snapshot revert */
risky domain snapshot revert (Since: 0.9.7) */
VIR_ERR_OPERATION_ABORTED = 78, /* operation on a domain was
canceled/aborted by user */
VIR_ERR_AUTH_CANCELLED = 79, /* authentication cancelled */
VIR_ERR_NO_DOMAIN_METADATA = 80, /* The metadata is not present */
VIR_ERR_MIGRATE_UNSAFE = 81, /* Migration is not safe */
VIR_ERR_OVERFLOW = 82, /* integer overflow */
VIR_ERR_BLOCK_COPY_ACTIVE = 83, /* action prevented by block copy job */
canceled/aborted by user (Since: 0.9.9) */
VIR_ERR_AUTH_CANCELLED = 79, /* authentication cancelled (Since: 0.9.10) */
VIR_ERR_NO_DOMAIN_METADATA = 80, /* The metadata is not present (Since: 0.9.10) */
VIR_ERR_MIGRATE_UNSAFE = 81, /* Migration is not safe (Since: 0.9.11) */
VIR_ERR_OVERFLOW = 82, /* integer overflow (Since: 0.9.11) */
VIR_ERR_BLOCK_COPY_ACTIVE = 83, /* action prevented by block copy job (Since: 0.9.12) */
VIR_ERR_OPERATION_UNSUPPORTED = 84, /* The requested operation is not
supported */
VIR_ERR_SSH = 85, /* error in ssh transport driver */
supported (Since: 0.10.0) */
VIR_ERR_SSH = 85, /* error in ssh transport driver (Since: 0.10.0) */
VIR_ERR_AGENT_UNRESPONSIVE = 86, /* guest agent is unresponsive,
not running or not usable */
VIR_ERR_RESOURCE_BUSY = 87, /* resource is already in use */
not running or not usable (Since: 0.10.0) */
VIR_ERR_RESOURCE_BUSY = 87, /* resource is already in use (Since: 1.0.0) */
VIR_ERR_ACCESS_DENIED = 88, /* operation on the object/resource
was denied */
VIR_ERR_DBUS_SERVICE = 89, /* error from a dbus service */
VIR_ERR_STORAGE_VOL_EXIST = 90, /* the storage vol already exists */
VIR_ERR_CPU_INCOMPATIBLE = 91, /* given CPU is incompatible with host CPU */
VIR_ERR_XML_INVALID_SCHEMA = 92, /* XML document doesn't validate against schema */
VIR_ERR_MIGRATE_FINISH_OK = 93, /* Finish API succeeded but it is expected to return NULL */
VIR_ERR_AUTH_UNAVAILABLE = 94, /* authentication unavailable */
VIR_ERR_NO_SERVER = 95, /* Server was not found */
VIR_ERR_NO_CLIENT = 96, /* Client was not found */
was denied (Since: 1.1.0) */
VIR_ERR_DBUS_SERVICE = 89, /* error from a dbus service (Since: 1.1.1) */
VIR_ERR_STORAGE_VOL_EXIST = 90, /* the storage vol already exists (Since: 1.1.4) */
VIR_ERR_CPU_INCOMPATIBLE = 91, /* given CPU is incompatible with host CPU (Since: 1.2.6) */
VIR_ERR_XML_INVALID_SCHEMA = 92, /* XML document doesn't validate against schema (Since: 1.2.12) */
VIR_ERR_MIGRATE_FINISH_OK = 93, /* Finish API succeeded but it is expected to return NULL (Since: 1.2.18) */
VIR_ERR_AUTH_UNAVAILABLE = 94, /* authentication unavailable (Since: 1.3.3) */
VIR_ERR_NO_SERVER = 95, /* Server was not found (Since: 1.3.3) */
VIR_ERR_NO_CLIENT = 96, /* Client was not found (Since: 1.3.5) */
VIR_ERR_AGENT_UNSYNCED = 97, /* guest agent replies with wrong id
to guest-sync command (DEPRECATED) */
VIR_ERR_LIBSSH = 98, /* error in libssh transport driver */
VIR_ERR_DEVICE_MISSING = 99, /* fail to find the desired device */
VIR_ERR_INVALID_NWFILTER_BINDING = 100, /* invalid nwfilter binding */
VIR_ERR_NO_NWFILTER_BINDING = 101, /* no nwfilter binding */
VIR_ERR_INVALID_DOMAIN_CHECKPOINT = 102, /* invalid domain checkpoint */
VIR_ERR_NO_DOMAIN_CHECKPOINT = 103, /* domain checkpoint not found */
VIR_ERR_NO_DOMAIN_BACKUP = 104, /* domain backup job id not found */
VIR_ERR_INVALID_NETWORK_PORT = 105, /* invalid network port object */
VIR_ERR_NETWORK_PORT_EXIST = 106, /* the network port already exist */
VIR_ERR_NO_NETWORK_PORT = 107, /* network port not found */
VIR_ERR_NO_HOSTNAME = 108, /* no domain's hostname found */
VIR_ERR_CHECKPOINT_INCONSISTENT = 109, /* checkpoint can't be used */
VIR_ERR_MULTIPLE_DOMAINS = 110, /* more than one matching domain found */
to guest-sync command (DEPRECATED) (Since: 2.3.0) */
VIR_ERR_LIBSSH = 98, /* error in libssh transport driver (Since: 2.5.0) */
VIR_ERR_DEVICE_MISSING = 99, /* fail to find the desired device (Since: 4.1.0) */
VIR_ERR_INVALID_NWFILTER_BINDING = 100, /* invalid nwfilter binding (Since: 4.5.0) */
VIR_ERR_NO_NWFILTER_BINDING = 101, /* no nwfilter binding (Since: 4.5.0) */
VIR_ERR_INVALID_DOMAIN_CHECKPOINT = 102, /* invalid domain checkpoint (Since: 5.2.0) */
VIR_ERR_NO_DOMAIN_CHECKPOINT = 103, /* domain checkpoint not found (Since: 5.2.0) */
VIR_ERR_NO_DOMAIN_BACKUP = 104, /* domain backup job id not found (Since: 5.2.0) */
VIR_ERR_INVALID_NETWORK_PORT = 105, /* invalid network port object (Since: 5.5.0) */
VIR_ERR_NETWORK_PORT_EXIST = 106, /* the network port already exist (Since: 5.5.0) */
VIR_ERR_NO_NETWORK_PORT = 107, /* network port not found (Since: 5.5.0) */
VIR_ERR_NO_HOSTNAME = 108, /* no domain's hostname found (Since: 6.1.0) */
VIR_ERR_CHECKPOINT_INCONSISTENT = 109, /* checkpoint can't be used (Since: 6.10.0) */
VIR_ERR_MULTIPLE_DOMAINS = 110, /* more than one matching domain found (Since: 7.1.0) */
# ifdef VIR_ENUM_SENTINELS
VIR_ERR_NUMBER_LAST
VIR_ERR_NUMBER_LAST /* (Since: 5.0.0) */
# endif
} virErrorNumber;
@@ -360,6 +360,8 @@ typedef enum {
* @error: the error being raised.
*
* Signature of a function to use when there is an error raised by the library.
*
* Since: 0.1.0
*/
typedef void (*virErrorFunc) (void *userData, virErrorPtr error);

View File

@@ -21,6 +21,9 @@
%define arches_systemtap_64bit %{arches_64bit}
%define arches_dmidecode %{arches_x86}
%define arches_xen %{arches_x86} aarch64
%if 0%{?fedora} >= 36
%define arches_xen x86_64 aarch64
%endif
%define arches_vbox %{arches_x86}
%define arches_ceph %{arches_64bit}
%define arches_zfs %{arches_x86} %{power64} %{arm}

View File

@@ -1,6 +1,6 @@
project(
'libvirt', 'c',
version: '8.3.0',
version: '8.5.0',
license: 'LGPLv2+',
meson_version: '>= 0.54.0',
default_options: [
@@ -510,12 +510,13 @@ libvirt_no_indirect = cc.get_supported_link_arguments([
if host_machine.system() == 'windows'
version_script_flags = '-Wl,'
elif host_machine.system() == 'darwin'
# macOS libraries don't support symbol versioning
version_script_flags = ''
else
test_file = '@0@/src/libvirt_qemu.syms'.format(meson.source_root())
if cc.has_link_argument('-Wl,--version-script=@0@'.format(test_file))
version_script_flags = '-Wl,--version-script='
elif cc.has_link_argument('-Wl,-M,')
version_script_flags = '-Wl,-M,'
else
error('No supported version script link argument found.')
endif
@@ -556,7 +557,6 @@ functions = [
'prlimit',
'sched_setscheduler',
'setgroups',
'setns',
'setrlimit',
'symlink',
'sysctlbyname',

View File

@@ -17,6 +17,7 @@ hu
id
it
ja
ka
kn
ko
mk
@@ -28,17 +29,17 @@ nl
or
pa
pl
pt_BR
pt
pt_BR
ru
sr@latin
si
sr
sr@latin
sv
ta
te
tr
uk
vi
zh_CN
zh_TW
tr
si

385
po/POTFILES Normal file
View File

@@ -0,0 +1,385 @@
src/access/viraccessapicheck.c
src/access/viraccessapichecklxc.c
src/access/viraccessapicheckqemu.c
src/admin/admin_client.h
src/admin/admin_server_dispatch_stubs.h
src/remote/remote_client_bodies.h
src/remote/remote_daemon_dispatch_stubs.h
src/access/viraccessdriverpolkit.c
src/access/viraccessmanager.c
src/admin/admin_server.c
src/admin/admin_server_dispatch.c
src/admin/libvirt-admin.c
src/bhyve/bhyve_capabilities.c
src/bhyve/bhyve_command.c
src/bhyve/bhyve_domain.c
src/bhyve/bhyve_driver.c
src/bhyve/bhyve_firmware.c
src/bhyve/bhyve_monitor.c
src/bhyve/bhyve_parse_command.c
src/bhyve/bhyve_process.c
src/ch/ch_conf.c
src/ch/ch_domain.c
src/ch/ch_driver.c
src/ch/ch_monitor.c
src/ch/ch_process.c
src/conf/backup_conf.c
src/conf/capabilities.c
src/conf/checkpoint_conf.c
src/conf/cpu_conf.c
src/conf/device_conf.c
src/conf/domain_addr.c
src/conf/domain_capabilities.c
src/conf/domain_conf.c
src/conf/domain_event.c
src/conf/domain_validate.c
src/conf/interface_conf.c
src/conf/netdev_bandwidth_conf.c
src/conf/netdev_vlan_conf.c
src/conf/netdev_vport_profile_conf.c
src/conf/network_conf.c
src/conf/networkcommon_conf.c
src/conf/node_device_conf.c
src/conf/node_device_util.c
src/conf/numa_conf.c
src/conf/nwfilter_conf.c
src/conf/nwfilter_params.c
src/conf/object_event.c
src/conf/secret_conf.c
src/conf/snapshot_conf.c
src/conf/storage_adapter_conf.c
src/conf/storage_conf.c
src/conf/storage_encryption_conf.c
src/conf/storage_source_conf.c
src/conf/virchrdev.c
src/conf/virdomainmomentobjlist.c
src/conf/virdomainobjlist.c
src/conf/virnetworkobj.c
src/conf/virnetworkportdef.c
src/conf/virnodedeviceobj.c
src/conf/virnwfilterbindingdef.c
src/conf/virnwfilterbindingobj.c
src/conf/virnwfilterbindingobjlist.c
src/conf/virnwfilterobj.c
src/conf/virsavecookie.c
src/conf/virsecretobj.c
src/conf/virstorageobj.c
src/cpu/cpu.c
src/cpu/cpu_arm.c
src/cpu/cpu_map.c
src/cpu/cpu_ppc64.c
src/cpu/cpu_s390.c
src/cpu/cpu_x86.c
src/datatypes.c
src/driver.c
src/esx/esx_driver.c
src/esx/esx_network_driver.c
src/esx/esx_storage_backend_iscsi.c
src/esx/esx_storage_backend_vmfs.c
src/esx/esx_storage_driver.c
src/esx/esx_stream.c
src/esx/esx_util.c
src/esx/esx_util.h
src/esx/esx_vi.c
src/esx/esx_vi_methods.c
src/esx/esx_vi_types.c
src/hyperv/hyperv_driver.c
src/hyperv/hyperv_network_driver.c
src/hyperv/hyperv_util.c
src/hyperv/hyperv_wmi.c
src/hypervisor/domain_cgroup.c
src/hypervisor/domain_driver.c
src/hypervisor/virclosecallbacks.c
src/hypervisor/virhostdev.c
src/interface/interface_backend_netcf.c
src/interface/interface_backend_udev.c
src/internal.h
src/libvirt-domain-checkpoint.c
src/libvirt-domain-snapshot.c
src/libvirt-domain.c
src/libvirt-host.c
src/libvirt-lxc.c
src/libvirt-network.c
src/libvirt-nodedev.c
src/libvirt-nwfilter.c
src/libvirt-qemu.c
src/libvirt-secret.c
src/libvirt-storage.c
src/libvirt-stream.c
src/libvirt.c
src/libxl/libxl_capabilities.c
src/libxl/libxl_conf.c
src/libxl/libxl_domain.c
src/libxl/libxl_driver.c
src/libxl/libxl_migration.c
src/libxl/xen_common.c
src/libxl/xen_xl.c
src/libxl/xen_xm.c
src/locking/lock_daemon.c
src/locking/lock_daemon_dispatch.c
src/locking/lock_driver_lockd.c
src/locking/lock_driver_sanlock.c
src/locking/lock_manager.c
src/locking/sanlock_helper.c
src/logging/log_daemon.c
src/logging/log_daemon_dispatch.c
src/logging/log_handler.c
src/logging/log_manager.c
src/lxc/lxc_cgroup.c
src/lxc/lxc_conf.c
src/lxc/lxc_container.c
src/lxc/lxc_controller.c
src/lxc/lxc_domain.c
src/lxc/lxc_driver.c
src/lxc/lxc_fuse.c
src/lxc/lxc_hostdev.c
src/lxc/lxc_native.c
src/lxc/lxc_process.c
src/network/bridge_driver.c
src/network/bridge_driver_linux.c
src/network/leaseshelper.c
src/node_device/node_device_driver.c
src/node_device/node_device_udev.c
src/nwfilter/nwfilter_dhcpsnoop.c
src/nwfilter/nwfilter_driver.c
src/nwfilter/nwfilter_ebiptables_driver.c
src/nwfilter/nwfilter_gentech_driver.c
src/nwfilter/nwfilter_learnipaddr.c
src/openvz/openvz_conf.c
src/openvz/openvz_driver.c
src/openvz/openvz_util.c
src/qemu/qemu_agent.c
src/qemu/qemu_alias.c
src/qemu/qemu_backup.c
src/qemu/qemu_block.c
src/qemu/qemu_blockjob.c
src/qemu/qemu_capabilities.c
src/qemu/qemu_cgroup.c
src/qemu/qemu_checkpoint.c
src/qemu/qemu_command.c
src/qemu/qemu_conf.c
src/qemu/qemu_dbus.c
src/qemu/qemu_domain.c
src/qemu/qemu_domain_address.c
src/qemu/qemu_domainjob.c
src/qemu/qemu_driver.c
src/qemu/qemu_extdevice.c
src/qemu/qemu_fd.c
src/qemu/qemu_firmware.c
src/qemu/qemu_hostdev.c
src/qemu/qemu_hotplug.c
src/qemu/qemu_interface.c
src/qemu/qemu_interop_config.c
src/qemu/qemu_migration.c
src/qemu/qemu_migration_cookie.c
src/qemu/qemu_migration_params.c
src/qemu/qemu_monitor.c
src/qemu/qemu_monitor_json.c
src/qemu/qemu_monitor_text.c
src/qemu/qemu_namespace.c
src/qemu/qemu_process.c
src/qemu/qemu_qapi.c
src/qemu/qemu_saveimage.c
src/qemu/qemu_slirp.c
src/qemu/qemu_snapshot.c
src/qemu/qemu_tpm.c
src/qemu/qemu_validate.c
src/qemu/qemu_vhost_user.c
src/qemu/qemu_vhost_user_gpu.c
src/qemu/qemu_virtiofs.c
src/remote/remote_daemon.c
src/remote/remote_daemon_config.c
src/remote/remote_daemon_dispatch.c
src/remote/remote_daemon_stream.c
src/remote/remote_driver.c
src/remote/remote_sockets.c
src/remote/remote_ssh_helper.c
src/rpc/virkeepalive.c
src/rpc/virnetclient.c
src/rpc/virnetclientprogram.c
src/rpc/virnetclientstream.c
src/rpc/virnetdaemon.c
src/rpc/virnetlibsshsession.c
src/rpc/virnetmessage.c
src/rpc/virnetsaslcontext.c
src/rpc/virnetserver.c
src/rpc/virnetserverclient.c
src/rpc/virnetserverprogram.c
src/rpc/virnetserverservice.c
src/rpc/virnetsocket.c
src/rpc/virnetsshsession.c
src/rpc/virnettlscontext.c
src/secret/secret_driver.c
src/security/security_apparmor.c
src/security/security_dac.c
src/security/security_driver.c
src/security/security_manager.c
src/security/security_selinux.c
src/security/security_util.c
src/security/virt-aa-helper.c
src/storage/parthelper.c
src/storage/storage_backend.c
src/storage/storage_backend_disk.c
src/storage/storage_backend_fs.c
src/storage/storage_backend_gluster.c
src/storage/storage_backend_iscsi.c
src/storage/storage_backend_iscsi_direct.c
src/storage/storage_backend_logical.c
src/storage/storage_backend_mpath.c
src/storage/storage_backend_rbd.c
src/storage/storage_backend_scsi.c
src/storage/storage_backend_sheepdog.c
src/storage/storage_backend_vstorage.c
src/storage/storage_backend_zfs.c
src/storage/storage_driver.c
src/storage/storage_util.c
src/storage_file/storage_file_backend.c
src/storage_file/storage_file_backend_fs.c
src/storage_file/storage_file_backend_gluster.c
src/storage_file/storage_file_probe.c
src/storage_file/storage_source.c
src/storage_file/storage_source_backingstore.c
src/test/test_driver.c
src/util/iohelper.c
src/util/viralloc.c
src/util/virarptable.c
src/util/viraudit.c
src/util/virauth.c
src/util/virauthconfig.c
src/util/virbitmap.c
src/util/vircgroup.c
src/util/virccw.c
src/util/vircgroupbackend.c
src/util/vircgroupbackend.h
src/util/vircgroupv1.c
src/util/vircgroupv2.c
src/util/vircgroupv2devices.c
src/util/vircommand.c
src/util/virconf.c
src/util/vircrypto.c
src/util/virdaemon.c
src/util/virdevmapper.c
src/util/virdnsmasq.c
src/util/virerror.c
src/util/virerror.h
src/util/virevent.c
src/util/vireventthread.c
src/util/virfcp.c
src/util/virfdstream.c
src/util/virfile.c
src/util/virfilecache.c
src/util/virfirewall.c
src/util/virfirewalld.c
src/util/virfirmware.c
src/util/virgdbus.c
src/util/virhash.c
src/util/virhook.c
src/util/virhostcpu.c
src/util/virhostmem.c
src/util/virhostuptime.c
src/util/viridentity.c
src/util/virinitctl.c
src/util/viriptables.c
src/util/viriscsi.c
src/util/virjson.c
src/util/virlease.c
src/util/virlockspace.c
src/util/virlog.c
src/util/virmacmap.c
src/util/virmdev.c
src/util/virmodule.c
src/util/virnetdev.c
src/util/virnetdevbandwidth.c
src/util/virnetdevbridge.c
src/util/virnetdevip.c
src/util/virnetdevmacvlan.c
src/util/virnetdevmidonet.c
src/util/virnetdevopenvswitch.c
src/util/virnetdevtap.c
src/util/virnetdevveth.c
src/util/virnetdevvportprofile.c
src/util/virnetlink.c
src/util/virnodesuspend.c
src/util/virnuma.c
src/util/virnvme.c
src/util/virobject.c
src/util/virpci.c
src/util/virpcivpd.c
src/util/virperf.c
src/util/virpidfile.c
src/util/virpolkit.c
src/util/virportallocator.c
src/util/virprocess.c
src/util/virqemu.c
src/util/virrandom.c
src/util/virresctrl.c
src/util/virrotatingfile.c
src/util/virscsi.c
src/util/virscsihost.c
src/util/virscsivhost.c
src/util/virsecret.c
src/util/virsocketaddr.c
src/util/virstoragefile.c
src/util/virstring.c
src/util/virsysinfo.c
src/util/virsystemd.c
src/util/virthreadjob.c
src/util/virthreadpool.c
src/util/virtime.c
src/util/virtpm.c
src/util/virtypedparam-public.c
src/util/virtypedparam.c
src/util/viruri.c
src/util/virusb.c
src/util/virutil.c
src/util/virvhba.c
src/util/virvsock.c
src/util/virxml.c
src/vbox/vbox_XPCOMCGlue.c
src/vbox/vbox_common.c
src/vbox/vbox_driver.c
src/vbox/vbox_network.c
src/vbox/vbox_snapshot_conf.c
src/vbox/vbox_storage.c
src/vbox/vbox_tmpl.c
src/vmware/vmware_conf.c
src/vmware/vmware_driver.c
src/vmx/vmx.c
src/vz/vz_driver.c
src/vz/vz_sdk.c
src/vz/vz_utils.c
src/vz/vz_utils.h
tests/virpolkittest.c
tools/libvirt-guests.sh.in
tools/virsh-backup.c
tools/virsh-checkpoint.c
tools/virsh-completer-host.c
tools/virsh-console.c
tools/virsh-domain-event.c
tools/virsh-domain-monitor.c
tools/virsh-domain.c
tools/virsh-edit.c
tools/virsh-host.c
tools/virsh-interface.c
tools/virsh-network.c
tools/virsh-nodedev.c
tools/virsh-nwfilter.c
tools/virsh-pool.c
tools/virsh-secret.c
tools/virsh-snapshot.c
tools/virsh-util.c
tools/virsh-volume.c
tools/virsh.c
tools/virsh.h
tools/virt-admin.c
tools/virt-host-validate-bhyve.c
tools/virt-host-validate-ch.c
tools/virt-host-validate-common.c
tools/virt-host-validate-lxc.c
tools/virt-host-validate-qemu.c
tools/virt-host-validate.c
tools/virt-login-shell-helper.c
tools/virt-pki-query-dn.c
tools/vsh-table.c
tools/vsh.c
tools/vsh.h

View File

@@ -1,384 +0,0 @@
@BUILDDIR@src/access/viraccessapicheck.c
@BUILDDIR@src/access/viraccessapichecklxc.c
@BUILDDIR@src/access/viraccessapicheckqemu.c
@BUILDDIR@src/admin/admin_client.h
@BUILDDIR@src/admin/admin_server_dispatch_stubs.h
@BUILDDIR@src/remote/remote_client_bodies.h
@BUILDDIR@src/remote/remote_daemon_dispatch_stubs.h
@SRCDIR@src/access/viraccessdriverpolkit.c
@SRCDIR@src/access/viraccessmanager.c
@SRCDIR@src/admin/admin_server.c
@SRCDIR@src/admin/admin_server_dispatch.c
@SRCDIR@src/admin/libvirt-admin.c
@SRCDIR@src/bhyve/bhyve_capabilities.c
@SRCDIR@src/bhyve/bhyve_command.c
@SRCDIR@src/bhyve/bhyve_domain.c
@SRCDIR@src/bhyve/bhyve_driver.c
@SRCDIR@src/bhyve/bhyve_firmware.c
@SRCDIR@src/bhyve/bhyve_monitor.c
@SRCDIR@src/bhyve/bhyve_parse_command.c
@SRCDIR@src/bhyve/bhyve_process.c
@SRCDIR@src/ch/ch_conf.c
@SRCDIR@src/ch/ch_domain.c
@SRCDIR@src/ch/ch_driver.c
@SRCDIR@src/ch/ch_monitor.c
@SRCDIR@src/ch/ch_process.c
@SRCDIR@src/conf/backup_conf.c
@SRCDIR@src/conf/capabilities.c
@SRCDIR@src/conf/checkpoint_conf.c
@SRCDIR@src/conf/cpu_conf.c
@SRCDIR@src/conf/device_conf.c
@SRCDIR@src/conf/domain_addr.c
@SRCDIR@src/conf/domain_capabilities.c
@SRCDIR@src/conf/domain_conf.c
@SRCDIR@src/conf/domain_event.c
@SRCDIR@src/conf/domain_validate.c
@SRCDIR@src/conf/interface_conf.c
@SRCDIR@src/conf/netdev_bandwidth_conf.c
@SRCDIR@src/conf/netdev_vlan_conf.c
@SRCDIR@src/conf/netdev_vport_profile_conf.c
@SRCDIR@src/conf/network_conf.c
@SRCDIR@src/conf/networkcommon_conf.c
@SRCDIR@src/conf/node_device_conf.c
@SRCDIR@src/conf/node_device_util.c
@SRCDIR@src/conf/numa_conf.c
@SRCDIR@src/conf/nwfilter_conf.c
@SRCDIR@src/conf/nwfilter_params.c
@SRCDIR@src/conf/object_event.c
@SRCDIR@src/conf/secret_conf.c
@SRCDIR@src/conf/snapshot_conf.c
@SRCDIR@src/conf/storage_adapter_conf.c
@SRCDIR@src/conf/storage_conf.c
@SRCDIR@src/conf/storage_encryption_conf.c
@SRCDIR@src/conf/storage_source_conf.c
@SRCDIR@src/conf/virchrdev.c
@SRCDIR@src/conf/virdomainmomentobjlist.c
@SRCDIR@src/conf/virdomainobjlist.c
@SRCDIR@src/conf/virnetworkobj.c
@SRCDIR@src/conf/virnetworkportdef.c
@SRCDIR@src/conf/virnodedeviceobj.c
@SRCDIR@src/conf/virnwfilterbindingdef.c
@SRCDIR@src/conf/virnwfilterbindingobj.c
@SRCDIR@src/conf/virnwfilterbindingobjlist.c
@SRCDIR@src/conf/virnwfilterobj.c
@SRCDIR@src/conf/virsavecookie.c
@SRCDIR@src/conf/virsecretobj.c
@SRCDIR@src/conf/virstorageobj.c
@SRCDIR@src/cpu/cpu.c
@SRCDIR@src/cpu/cpu_arm.c
@SRCDIR@src/cpu/cpu_map.c
@SRCDIR@src/cpu/cpu_ppc64.c
@SRCDIR@src/cpu/cpu_s390.c
@SRCDIR@src/cpu/cpu_x86.c
@SRCDIR@src/datatypes.c
@SRCDIR@src/driver.c
@SRCDIR@src/esx/esx_driver.c
@SRCDIR@src/esx/esx_network_driver.c
@SRCDIR@src/esx/esx_storage_backend_iscsi.c
@SRCDIR@src/esx/esx_storage_backend_vmfs.c
@SRCDIR@src/esx/esx_storage_driver.c
@SRCDIR@src/esx/esx_stream.c
@SRCDIR@src/esx/esx_util.c
@SRCDIR@src/esx/esx_util.h
@SRCDIR@src/esx/esx_vi.c
@SRCDIR@src/esx/esx_vi_methods.c
@SRCDIR@src/esx/esx_vi_types.c
@SRCDIR@src/hyperv/hyperv_driver.c
@SRCDIR@src/hyperv/hyperv_network_driver.c
@SRCDIR@src/hyperv/hyperv_util.c
@SRCDIR@src/hyperv/hyperv_wmi.c
@SRCDIR@src/hypervisor/domain_cgroup.c
@SRCDIR@src/hypervisor/domain_driver.c
@SRCDIR@src/hypervisor/virclosecallbacks.c
@SRCDIR@src/hypervisor/virhostdev.c
@SRCDIR@src/interface/interface_backend_netcf.c
@SRCDIR@src/interface/interface_backend_udev.c
@SRCDIR@src/internal.h
@SRCDIR@src/libvirt-domain-checkpoint.c
@SRCDIR@src/libvirt-domain-snapshot.c
@SRCDIR@src/libvirt-domain.c
@SRCDIR@src/libvirt-host.c
@SRCDIR@src/libvirt-lxc.c
@SRCDIR@src/libvirt-network.c
@SRCDIR@src/libvirt-nodedev.c
@SRCDIR@src/libvirt-nwfilter.c
@SRCDIR@src/libvirt-qemu.c
@SRCDIR@src/libvirt-secret.c
@SRCDIR@src/libvirt-storage.c
@SRCDIR@src/libvirt-stream.c
@SRCDIR@src/libvirt.c
@SRCDIR@src/libxl/libxl_capabilities.c
@SRCDIR@src/libxl/libxl_conf.c
@SRCDIR@src/libxl/libxl_domain.c
@SRCDIR@src/libxl/libxl_driver.c
@SRCDIR@src/libxl/libxl_migration.c
@SRCDIR@src/libxl/xen_common.c
@SRCDIR@src/libxl/xen_xl.c
@SRCDIR@src/libxl/xen_xm.c
@SRCDIR@src/locking/lock_daemon.c
@SRCDIR@src/locking/lock_daemon_dispatch.c
@SRCDIR@src/locking/lock_driver_lockd.c
@SRCDIR@src/locking/lock_driver_sanlock.c
@SRCDIR@src/locking/lock_manager.c
@SRCDIR@src/locking/sanlock_helper.c
@SRCDIR@src/logging/log_daemon.c
@SRCDIR@src/logging/log_daemon_dispatch.c
@SRCDIR@src/logging/log_handler.c
@SRCDIR@src/logging/log_manager.c
@SRCDIR@src/lxc/lxc_cgroup.c
@SRCDIR@src/lxc/lxc_conf.c
@SRCDIR@src/lxc/lxc_container.c
@SRCDIR@src/lxc/lxc_controller.c
@SRCDIR@src/lxc/lxc_domain.c
@SRCDIR@src/lxc/lxc_driver.c
@SRCDIR@src/lxc/lxc_fuse.c
@SRCDIR@src/lxc/lxc_hostdev.c
@SRCDIR@src/lxc/lxc_native.c
@SRCDIR@src/lxc/lxc_process.c
@SRCDIR@src/network/bridge_driver.c
@SRCDIR@src/network/bridge_driver_linux.c
@SRCDIR@src/network/leaseshelper.c
@SRCDIR@src/node_device/node_device_driver.c
@SRCDIR@src/node_device/node_device_udev.c
@SRCDIR@src/nwfilter/nwfilter_dhcpsnoop.c
@SRCDIR@src/nwfilter/nwfilter_driver.c
@SRCDIR@src/nwfilter/nwfilter_ebiptables_driver.c
@SRCDIR@src/nwfilter/nwfilter_gentech_driver.c
@SRCDIR@src/nwfilter/nwfilter_learnipaddr.c
@SRCDIR@src/openvz/openvz_conf.c
@SRCDIR@src/openvz/openvz_driver.c
@SRCDIR@src/openvz/openvz_util.c
@SRCDIR@src/qemu/qemu_agent.c
@SRCDIR@src/qemu/qemu_alias.c
@SRCDIR@src/qemu/qemu_backup.c
@SRCDIR@src/qemu/qemu_block.c
@SRCDIR@src/qemu/qemu_blockjob.c
@SRCDIR@src/qemu/qemu_capabilities.c
@SRCDIR@src/qemu/qemu_cgroup.c
@SRCDIR@src/qemu/qemu_checkpoint.c
@SRCDIR@src/qemu/qemu_command.c
@SRCDIR@src/qemu/qemu_conf.c
@SRCDIR@src/qemu/qemu_dbus.c
@SRCDIR@src/qemu/qemu_domain.c
@SRCDIR@src/qemu/qemu_domain_address.c
@SRCDIR@src/qemu/qemu_domainjob.c
@SRCDIR@src/qemu/qemu_driver.c
@SRCDIR@src/qemu/qemu_extdevice.c
@SRCDIR@src/qemu/qemu_fd.c
@SRCDIR@src/qemu/qemu_firmware.c
@SRCDIR@src/qemu/qemu_hostdev.c
@SRCDIR@src/qemu/qemu_hotplug.c
@SRCDIR@src/qemu/qemu_interface.c
@SRCDIR@src/qemu/qemu_interop_config.c
@SRCDIR@src/qemu/qemu_migration.c
@SRCDIR@src/qemu/qemu_migration_cookie.c
@SRCDIR@src/qemu/qemu_migration_params.c
@SRCDIR@src/qemu/qemu_monitor.c
@SRCDIR@src/qemu/qemu_monitor_json.c
@SRCDIR@src/qemu/qemu_monitor_text.c
@SRCDIR@src/qemu/qemu_namespace.c
@SRCDIR@src/qemu/qemu_process.c
@SRCDIR@src/qemu/qemu_qapi.c
@SRCDIR@src/qemu/qemu_saveimage.c
@SRCDIR@src/qemu/qemu_slirp.c
@SRCDIR@src/qemu/qemu_snapshot.c
@SRCDIR@src/qemu/qemu_tpm.c
@SRCDIR@src/qemu/qemu_validate.c
@SRCDIR@src/qemu/qemu_vhost_user.c
@SRCDIR@src/qemu/qemu_vhost_user_gpu.c
@SRCDIR@src/qemu/qemu_virtiofs.c
@SRCDIR@src/remote/remote_daemon.c
@SRCDIR@src/remote/remote_daemon_config.c
@SRCDIR@src/remote/remote_daemon_dispatch.c
@SRCDIR@src/remote/remote_daemon_stream.c
@SRCDIR@src/remote/remote_driver.c
@SRCDIR@src/remote/remote_sockets.c
@SRCDIR@src/remote/remote_ssh_helper.c
@SRCDIR@src/rpc/virkeepalive.c
@SRCDIR@src/rpc/virnetclient.c
@SRCDIR@src/rpc/virnetclientprogram.c
@SRCDIR@src/rpc/virnetclientstream.c
@SRCDIR@src/rpc/virnetdaemon.c
@SRCDIR@src/rpc/virnetlibsshsession.c
@SRCDIR@src/rpc/virnetmessage.c
@SRCDIR@src/rpc/virnetsaslcontext.c
@SRCDIR@src/rpc/virnetserver.c
@SRCDIR@src/rpc/virnetserverclient.c
@SRCDIR@src/rpc/virnetserverprogram.c
@SRCDIR@src/rpc/virnetserverservice.c
@SRCDIR@src/rpc/virnetsocket.c
@SRCDIR@src/rpc/virnetsshsession.c
@SRCDIR@src/rpc/virnettlscontext.c
@SRCDIR@src/secret/secret_driver.c
@SRCDIR@src/security/security_apparmor.c
@SRCDIR@src/security/security_dac.c
@SRCDIR@src/security/security_driver.c
@SRCDIR@src/security/security_manager.c
@SRCDIR@src/security/security_selinux.c
@SRCDIR@src/security/security_util.c
@SRCDIR@src/security/virt-aa-helper.c
@SRCDIR@src/storage/parthelper.c
@SRCDIR@src/storage/storage_backend.c
@SRCDIR@src/storage/storage_backend_disk.c
@SRCDIR@src/storage/storage_backend_fs.c
@SRCDIR@src/storage/storage_backend_gluster.c
@SRCDIR@src/storage/storage_backend_iscsi.c
@SRCDIR@src/storage/storage_backend_iscsi_direct.c
@SRCDIR@src/storage/storage_backend_logical.c
@SRCDIR@src/storage/storage_backend_mpath.c
@SRCDIR@src/storage/storage_backend_rbd.c
@SRCDIR@src/storage/storage_backend_scsi.c
@SRCDIR@src/storage/storage_backend_sheepdog.c
@SRCDIR@src/storage/storage_backend_vstorage.c
@SRCDIR@src/storage/storage_backend_zfs.c
@SRCDIR@src/storage/storage_driver.c
@SRCDIR@src/storage/storage_util.c
@SRCDIR@src/storage_file/storage_file_backend.c
@SRCDIR@src/storage_file/storage_file_backend_fs.c
@SRCDIR@src/storage_file/storage_file_backend_gluster.c
@SRCDIR@src/storage_file/storage_file_probe.c
@SRCDIR@src/storage_file/storage_source.c
@SRCDIR@src/storage_file/storage_source_backingstore.c
@SRCDIR@src/test/test_driver.c
@SRCDIR@src/util/iohelper.c
@SRCDIR@src/util/viralloc.c
@SRCDIR@src/util/virarptable.c
@SRCDIR@src/util/viraudit.c
@SRCDIR@src/util/virauth.c
@SRCDIR@src/util/virauthconfig.c
@SRCDIR@src/util/virbitmap.c
@SRCDIR@src/util/vircgroup.c
@SRCDIR@src/util/vircgroupbackend.c
@SRCDIR@src/util/vircgroupbackend.h
@SRCDIR@src/util/vircgroupv1.c
@SRCDIR@src/util/vircgroupv2.c
@SRCDIR@src/util/vircgroupv2devices.c
@SRCDIR@src/util/vircommand.c
@SRCDIR@src/util/virconf.c
@SRCDIR@src/util/vircrypto.c
@SRCDIR@src/util/virdaemon.c
@SRCDIR@src/util/virdevmapper.c
@SRCDIR@src/util/virdnsmasq.c
@SRCDIR@src/util/virerror.c
@SRCDIR@src/util/virerror.h
@SRCDIR@src/util/virevent.c
@SRCDIR@src/util/vireventthread.c
@SRCDIR@src/util/virfcp.c
@SRCDIR@src/util/virfdstream.c
@SRCDIR@src/util/virfile.c
@SRCDIR@src/util/virfilecache.c
@SRCDIR@src/util/virfirewall.c
@SRCDIR@src/util/virfirewalld.c
@SRCDIR@src/util/virfirmware.c
@SRCDIR@src/util/virgdbus.c
@SRCDIR@src/util/virhash.c
@SRCDIR@src/util/virhook.c
@SRCDIR@src/util/virhostcpu.c
@SRCDIR@src/util/virhostmem.c
@SRCDIR@src/util/virhostuptime.c
@SRCDIR@src/util/viridentity.c
@SRCDIR@src/util/virinitctl.c
@SRCDIR@src/util/viriptables.c
@SRCDIR@src/util/viriscsi.c
@SRCDIR@src/util/virjson.c
@SRCDIR@src/util/virlease.c
@SRCDIR@src/util/virlockspace.c
@SRCDIR@src/util/virlog.c
@SRCDIR@src/util/virmacmap.c
@SRCDIR@src/util/virmdev.c
@SRCDIR@src/util/virmodule.c
@SRCDIR@src/util/virnetdev.c
@SRCDIR@src/util/virnetdevbandwidth.c
@SRCDIR@src/util/virnetdevbridge.c
@SRCDIR@src/util/virnetdevip.c
@SRCDIR@src/util/virnetdevmacvlan.c
@SRCDIR@src/util/virnetdevmidonet.c
@SRCDIR@src/util/virnetdevopenvswitch.c
@SRCDIR@src/util/virnetdevtap.c
@SRCDIR@src/util/virnetdevveth.c
@SRCDIR@src/util/virnetdevvportprofile.c
@SRCDIR@src/util/virnetlink.c
@SRCDIR@src/util/virnodesuspend.c
@SRCDIR@src/util/virnuma.c
@SRCDIR@src/util/virnvme.c
@SRCDIR@src/util/virobject.c
@SRCDIR@src/util/virpci.c
@SRCDIR@src/util/virpcivpd.c
@SRCDIR@src/util/virperf.c
@SRCDIR@src/util/virpidfile.c
@SRCDIR@src/util/virpolkit.c
@SRCDIR@src/util/virportallocator.c
@SRCDIR@src/util/virprocess.c
@SRCDIR@src/util/virqemu.c
@SRCDIR@src/util/virrandom.c
@SRCDIR@src/util/virresctrl.c
@SRCDIR@src/util/virrotatingfile.c
@SRCDIR@src/util/virscsi.c
@SRCDIR@src/util/virscsihost.c
@SRCDIR@src/util/virscsivhost.c
@SRCDIR@src/util/virsecret.c
@SRCDIR@src/util/virsocketaddr.c
@SRCDIR@src/util/virstoragefile.c
@SRCDIR@src/util/virstring.c
@SRCDIR@src/util/virsysinfo.c
@SRCDIR@src/util/virsystemd.c
@SRCDIR@src/util/virthreadjob.c
@SRCDIR@src/util/virthreadpool.c
@SRCDIR@src/util/virtime.c
@SRCDIR@src/util/virtpm.c
@SRCDIR@src/util/virtypedparam-public.c
@SRCDIR@src/util/virtypedparam.c
@SRCDIR@src/util/viruri.c
@SRCDIR@src/util/virusb.c
@SRCDIR@src/util/virutil.c
@SRCDIR@src/util/virvhba.c
@SRCDIR@src/util/virvsock.c
@SRCDIR@src/util/virxml.c
@SRCDIR@src/vbox/vbox_XPCOMCGlue.c
@SRCDIR@src/vbox/vbox_common.c
@SRCDIR@src/vbox/vbox_driver.c
@SRCDIR@src/vbox/vbox_network.c
@SRCDIR@src/vbox/vbox_snapshot_conf.c
@SRCDIR@src/vbox/vbox_storage.c
@SRCDIR@src/vbox/vbox_tmpl.c
@SRCDIR@src/vmware/vmware_conf.c
@SRCDIR@src/vmware/vmware_driver.c
@SRCDIR@src/vmx/vmx.c
@SRCDIR@src/vz/vz_driver.c
@SRCDIR@src/vz/vz_sdk.c
@SRCDIR@src/vz/vz_utils.c
@SRCDIR@src/vz/vz_utils.h
@SRCDIR@tests/virpolkittest.c
@SRCDIR@tools/libvirt-guests.sh.in
@SRCDIR@tools/virsh-backup.c
@SRCDIR@tools/virsh-checkpoint.c
@SRCDIR@tools/virsh-completer-host.c
@SRCDIR@tools/virsh-console.c
@SRCDIR@tools/virsh-domain-event.c
@SRCDIR@tools/virsh-domain-monitor.c
@SRCDIR@tools/virsh-domain.c
@SRCDIR@tools/virsh-edit.c
@SRCDIR@tools/virsh-host.c
@SRCDIR@tools/virsh-interface.c
@SRCDIR@tools/virsh-network.c
@SRCDIR@tools/virsh-nodedev.c
@SRCDIR@tools/virsh-nwfilter.c
@SRCDIR@tools/virsh-pool.c
@SRCDIR@tools/virsh-secret.c
@SRCDIR@tools/virsh-snapshot.c
@SRCDIR@tools/virsh-util.c
@SRCDIR@tools/virsh-volume.c
@SRCDIR@tools/virsh.c
@SRCDIR@tools/virsh.h
@SRCDIR@tools/virt-admin.c
@SRCDIR@tools/virt-host-validate-bhyve.c
@SRCDIR@tools/virt-host-validate-ch.c
@SRCDIR@tools/virt-host-validate-common.c
@SRCDIR@tools/virt-host-validate-lxc.c
@SRCDIR@tools/virt-host-validate-qemu.c
@SRCDIR@tools/virt-host-validate.c
@SRCDIR@tools/virt-login-shell-helper.c
@SRCDIR@tools/virt-pki-query-dn.c
@SRCDIR@tools/vsh-table.c
@SRCDIR@tools/vsh.c
@SRCDIR@tools/vsh.h

247
po/as.po
View File

@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 6.0.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2022-03-28 11:25+0000\n"
"POT-Creation-Date: 2022-05-25 19:40+0000\n"
"PO-Revision-Date: 2015-02-26 06:48+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Assamese (http://www.transifex.com/projects/p/libvirt/"
@@ -811,9 +811,9 @@ msgstr ""
msgid "%s: expected an unsigned integer for '%s' parameter"
msgstr ""
#, fuzzy, c-format
msgid "%s: failed to communicate with bridge helper: %s%s"
msgstr "%s: লগ ফাইল লিখোঁতে ব্যৰ্থ: %s"
#, c-format
msgid "%s: failed to communicate with bridge helper: %s"
msgstr ""
#, c-format
msgid "%s: failed to read temporary file: %s"
@@ -917,10 +917,6 @@ msgstr "%s: অধিক বিৱৰণৰ বাবে --help চেষ্ট
msgid "%s: try --help for more details\n"
msgstr "%s: অধিক বিৱৰণৰ বাবে --help চেষ্টা কৰি চাওক"
#, c-format
msgid "%s: unable to determine access mode of fd %d"
msgstr "%s: fd %d ৰ অভিগম অৱস্থা নিৰ্ধাৰণ কৰিবলে অক্ষম"
#, c-format
msgid "%s: unexpected URI transport '%s'\n"
msgstr ""
@@ -977,6 +973,10 @@ msgstr ""
msgid "'%s'"
msgstr ""
#, c-format
msgid "'%s' D-Bus address is not handled"
msgstr ""
#, fuzzy, c-format
msgid "'%s' architecture is not supported by CPU driver"
msgstr "এই libvirt দ্বাৰা ফিল্টাৰ কৰাটো সমৰ্থিত নহয়"
@@ -1180,6 +1180,9 @@ msgstr "guest-get-vcpus ৰ উত্তৰত 'online' নাই"
msgid "'netns' namespace source can only be used with sharenet"
msgstr ""
msgid "'network' attribute is required for listen type 'network'"
msgstr ""
#, fuzzy
msgid "'network' attribute is valid only for listen type 'network'"
msgstr "<interface type='network'/> ৰ সৈতে <source> 'network' গুণ উল্লেখিত নহয়।"
@@ -2364,8 +2367,8 @@ msgid "Can only modify disk quota"
msgstr "কেৱল ডিস্ক কুটা পৰিবৰ্তন কৰিব পাৰি"
#, c-format
msgid "Can only open VNC or SPICE graphics backends, not %s"
msgstr "কেৱল VNC অথবা SPICE গ্ৰাফিক্স বেকএণ্ড খোলিব পাৰে, %s নোৱাৰে"
msgid "Can only open VNC, SPICE or D-Bus p2p graphics backends, not %s"
msgstr ""
msgid "Can't add USB hub: USB is disabled for this domain"
msgstr "USB হাব যোগ কৰিব নোৱাৰি: USB এই ডমেইনৰ বাবে অসামৰ্থবান কৰা আছে"
@@ -4996,6 +4999,12 @@ msgstr "বৰ্তমান:"
msgid "Custom loader requires explicit %s configuration"
msgstr ""
msgid "D-Bus audio is not supported with this QEMU"
msgstr ""
msgid "D-Bus p2p with an address is not supported"
msgstr ""
msgid "DAC imagelabel couldn't be determined"
msgstr ""
@@ -7659,6 +7668,10 @@ msgstr "tty %s খুলিবলৈ ব্যৰ্থ"
msgid "Failed to parse %s: only com1 and com2 supported."
msgstr "URl উপাদান %s ৰ মান বিশ্লেষণ কৰিবলে ব্যৰ্থ"
#, c-format
msgid "Failed to parse CCW address '%s'"
msgstr ""
#, fuzzy, c-format
msgid "Failed to parse MAC address from '%s'"
msgstr "'%s' ৰ পৰা uid আৰু gid বিশ্লেষণ কৰিবলে ব্যৰ্থ"
@@ -7945,10 +7958,6 @@ msgstr "লক এৰিবলে ব্যৰ্থ"
msgid "Failed to release lock: %s"
msgstr "লক এৰিবলে ব্যৰ্থ"
#, c-format
msgid "Failed to release port %d"
msgstr "পোৰ্ট %d উন্মোচন কৰিবলে ব্যৰ্থ"
#, fuzzy, c-format
msgid "Failed to remove capability %s: %d"
msgstr "ক্ষমতা প্ৰয়োগ কৰিবলৈ ব্যৰ্থ: %d"
@@ -8934,6 +8943,10 @@ msgstr "ডমেইনৰ হস্টনাম প্ৰিণ্ট কৰক
msgid "Gets statistics about one or more (or all) domains"
msgstr ""
#, c-format
msgid "Global feature %d should have already been handled"
msgstr ""
msgid "Got empty feature list from resctrl"
msgstr ""
@@ -8980,10 +8993,6 @@ msgstr ""
msgid "HTM configuration is not supported by this QEMU binary"
msgstr "nvram ডিভাইচ এই QEMU বাইনাৰি দ্বাৰা সমৰ্থিত নহয়"
#, fuzzy
msgid "HTP resizing is not supported by this QEMU binary"
msgstr "এই QEMU বাইনাৰি দ্বাৰা ডিস্কাৰ্ড সমৰ্থিত নহয়"
#, c-format
msgid "HTTP response code %d for call to '%s'"
msgstr "HTTP প্ৰতিক্ৰিয়া ক'ড %d কলৰ বাবে '%s'"
@@ -9194,10 +9203,22 @@ msgstr "nvram ডিভাইচ এই QEMU বাইনাৰি দ্বা
msgid "IOMMU device: '%s' is only supported with ARM Virt machines"
msgstr ""
#, c-format
msgid "IOMMU device: '%s' is only supported with Q35 and ARM Virt machines"
msgstr ""
#, c-format
msgid "IOMMU device: '%s' is only supported with Q35 machines"
msgstr ""
#, c-format
msgid "IOMMU device: '%s' needs a PCI address"
msgstr ""
#, c-format
msgid "IOMMU device: '%s' requires ACPI"
msgstr ""
msgid "IOMMU eim requires interrupt remapping to be enabled"
msgstr ""
@@ -10130,7 +10151,7 @@ msgid "Invalid parameter type passed to free"
msgstr "virXPathNode() লৈ অবৈধ স্থিতিমাপ"
#, c-format
msgid "Invalid parameters: %d"
msgid "Invalid parameters macaddr=%p allowRetry=%p"
msgstr ""
msgid "Invalid partial specification for virtio ccw address"
@@ -11484,19 +11505,10 @@ msgid ""
"response"
msgstr ""
msgid "Missing or invalid fd in add-fd response"
msgstr ""
msgid "Missing or invalid fdset-id in add-fd response"
msgstr ""
#, fuzzy
msgid "Missing or invalid name in query-rx-filter response"
msgstr "CPU আৰ্হি %s ত সন্ধানহীন অথবা অবৈধ PVR মান"
msgid "Missing or invalid return data in add-fd response"
msgstr ""
msgid "Missing or invalid scsi adapter 'unique_id' value"
msgstr "সন্ধানহীন অথবা অবৈধ scsi adapter 'unique_id' মান"
@@ -12846,6 +12858,9 @@ msgstr "কেৱল এটা প্ৰাথমিক ভিডিঅ' ডি
msgid "Only one primary video device is supported"
msgstr "কেৱল এটা প্ৰাথমিক ভিডিঅ' ডিভাইচ সমৰ্থিত"
msgid "Only one vgpu device can have 'ramfb' enabled"
msgstr ""
msgid "Only ploop disk images are supported by vz driver."
msgstr ""
@@ -14799,6 +14814,9 @@ msgstr "ধাৰ্য্য কৰে যদি পৃথক numa ন'ডস
msgid "Specifying mount point is not supported for now"
msgstr "মাউণ্ট পইণ্ট ধাৰ্য্য কৰাটো এতিয়াৰ বাবে সমৰ্থিত নহয়"
msgid "Spice audio is not supported without spice graphics"
msgstr ""
#, fuzzy
msgid "Start"
msgstr "আৰম্ভ কৰা হল"
@@ -15983,6 +16001,9 @@ msgstr "QEMU এক্সিকিউটেবুল %s এ TPM আৰ্হি
msgid "The XML configuration was changed by another user."
msgstr "XML সংৰূপ অন্য ব্যৱহাৰকাৰী দ্বাৰা পৰিবৰ্তন কৰা হৈছিল।"
msgid "The associated audio is not of 'dbus' kind."
msgstr ""
#, c-format
msgid "The certificate %s basic constraints do not show a CA"
msgstr "প্ৰমাণপত্ৰ %s মৌলিক বাধাসমূহে এটা CA নেদেখুৱায়"
@@ -16045,6 +16066,10 @@ msgid ""
"The device at PCI address %s has unrecognized connection type flags 0x%.2x"
msgstr ""
#, c-format
msgid "The device at PCI address %s needs to be an integrated device (bus=0)"
msgstr ""
#, c-format
msgid ""
"The device at PCI address %s requires hotplug capability, but the PCI "
@@ -16654,10 +16679,6 @@ msgstr "সংৰূপ ফাইল %s অভিগম কৰিবলে অ
msgid "Unable to access file descriptor %d"
msgstr "ফাইল বিৱৰক %d অভিগম কৰিবলে অক্ষম"
#, c-format
msgid "Unable to access file descriptor %d path %s"
msgstr ""
#, fuzzy
msgid "Unable to access kernel32.dll"
msgstr "%s অভিগম কৰিবলে অক্ষম"
@@ -20669,6 +20690,13 @@ msgstr ""
msgid "authentication failed: %s"
msgstr "প্ৰমাণীকৰণ বিফল হ'ল: %s"
#, c-format
msgid "authentication is not supported for protocol '%s'"
msgstr ""
msgid "authentication is supported only for network backed disks"
msgstr ""
msgid "authentication required"
msgstr "প্ৰমাণীকৰণ আৱশ্যক"
@@ -22927,6 +22955,14 @@ msgstr "কেৰেক্টাৰ ডিভাইচৰ তথ্যত ফা
msgid "character device name"
msgstr "আখৰ ডিভাইচ নাম"
#, c-format
msgid "chardev '%s' not supported in this QEMU binary"
msgstr ""
#, c-format
msgid "chardev '%s' not supported without spice graphics"
msgstr ""
msgid "chardev already exists"
msgstr "chardev ইতিমধ্যে অস্তিত্ববান"
@@ -24268,9 +24304,6 @@ msgstr ""
msgid "dir"
msgstr "dir"
msgid "direct FD passing supports only 1 file descriptor"
msgstr ""
msgid "direct migration"
msgstr "সৰাসৰি প্ৰব্ৰজন"
@@ -25166,6 +25199,9 @@ msgstr ""
msgid "encryption is not supported with vhostuser disk"
msgstr ""
msgid "encryption is supported only with 'raw' and 'qcow2' image format"
msgstr ""
#, c-format
msgid "end of range %s - %s in network %s/%d is the broadcast address"
msgstr ""
@@ -25841,9 +25877,9 @@ msgstr "স্নেপশ্বট %s মচি পেলাবলে ব্য
msgid "failed to create a new XML namespace"
msgstr "এটা নতুন XML নেইমস্পেইচ সৃষ্টি কৰিবলৈ ব্যৰ্থ"
#, fuzzy, c-format
msgid "failed to create channel dir '%s': %s"
msgstr "সংৰক্ষণ ডাইৰেকটৰি '%s' সৃষ্টি কৰিবলে ব্যৰ্থ: %s"
#, c-format
msgid "failed to create channel dir '%s'"
msgstr ""
msgid "failed to create connection to CH socket"
msgstr ""
@@ -25856,9 +25892,9 @@ msgstr "ছকেট নিৰ্মাণ কৰিবলৈ ব্যৰ্থ
msgid "failed to create directory '%s'"
msgstr "'%s' পঞ্জিকা নিৰ্মাণ কৰিবলৈ ব্যৰ্থ"
#, fuzzy, c-format
msgid "failed to create dump dir '%s': %s"
msgstr "lib dir '%s' নিৰ্মাণ কৰিবলৈ ব্যৰ্থ: %s"
#, c-format
msgid "failed to create dump dir '%s'"
msgstr ""
#, c-format
msgid "failed to create glfs object for '%s'"
@@ -25879,16 +25915,16 @@ msgid "failed to create json"
msgstr "%s সৃষ্টি কৰিবলে ব্যৰ্থ"
#, c-format
msgid "failed to create lib dir '%s': %s"
msgstr "lib dir '%s' নিৰ্মাণ কৰিবলৈ ব্যৰ্থ: %s"
msgid "failed to create lib dir '%s'"
msgstr ""
#, fuzzy, c-format
msgid "failed to create libssh channel: %s"
msgstr "ssh চেনেল খোলিবলে ব্যৰ্থ: %s"
#, c-format
msgid "failed to create log dir '%s': %s"
msgstr "লগ ডাইৰেকটৰি '%s' সৃষ্টি কৰিবলৈ ব্যৰ্থ: %s "
msgid "failed to create log dir '%s'"
msgstr ""
#, c-format
msgid "failed to create logfile %s"
@@ -25901,8 +25937,8 @@ msgid "failed to create profile"
msgstr "আলেখ্য সৃষ্টি কৰিবলে ব্যৰ্থ"
#, c-format
msgid "failed to create save dir '%s': %s"
msgstr "সংৰক্ষণ ডাইৰেকটৰি '%s' সৃষ্টি কৰিবলে ব্যৰ্থ: %s"
msgid "failed to create save dir '%s'"
msgstr ""
msgid "failed to create socket"
msgstr "ছকেট নিৰ্মাণ কৰিবলৈ ব্যৰ্থ"
@@ -25916,8 +25952,8 @@ msgid "failed to create socketpair"
msgstr "ছকেট নিৰ্মাণ কৰিবলৈ ব্যৰ্থ"
#, c-format
msgid "failed to create state dir '%s': %s"
msgstr "অৱস্থা ডাইৰেকটৰি '%s' সৃষ্টি কৰিবলে ব্যৰ্থ: %s"
msgid "failed to create state dir '%s'"
msgstr ""
msgid "failed to create the RADOS cluster"
msgstr "RADOS থুপ সৃষ্টি কৰিবলে ব্যৰ্থ"
@@ -26446,6 +26482,9 @@ msgstr "'%s' ৰ পৰা uid আৰু gid বিশ্লেষণ কৰি
msgid "failed to parse node name index"
msgstr "'%s' ধৰণ বিশ্লষণ কৰোঁতে ব্যৰ্থ"
msgid "failed to parse original memlock size"
msgstr ""
#, fuzzy, c-format
msgid "failed to parse port number '%s'"
msgstr "পোৰ্ট সংখ্যা বিশ্লেষণ কৰিবলে ব্যৰ্থ"
@@ -26919,6 +26958,10 @@ msgstr "fd বৈধ হব লাগিব"
msgid "fd passing is not supported by this connection"
msgstr "এই ফলন সংযোগ ড্ৰাইভাৰ দ্বাৰা সমৰ্থিত নহয়"
#, c-format
msgid "fdset '%u' is already in use by qemu"
msgstr ""
msgid "fetch or set the currently defined set of logging filters on daemon"
msgstr ""
@@ -28487,9 +28530,6 @@ msgstr "অবৈধ ব্যৰ্থতা কাৰ্য্য: '%s'\n"
msgid "invalid fd %d for %s"
msgstr "অবৈধ fd %d %s"
msgid "invalid file descriptor"
msgstr ""
msgid "invalid flag"
msgstr "অবৈধ ফ্লেগ"
@@ -29066,10 +29106,10 @@ msgstr "nl_recv ব্যৰ্থ হল"
msgid "library call failed: %s"
msgstr "লিখা ব্যৰ্থ হল: %s"
msgid "librbd encryption engine only supports luks/luks2 formats"
msgid "librbd encryption is not supported by this QEMU binary"
msgstr ""
msgid "librbd encryption is not supported by this QEMU binary"
msgid "librbd encryption is supported only with RBD backed disks"
msgstr ""
#, fuzzy
@@ -30361,6 +30401,9 @@ msgstr ""
msgid "missing 'server' attribute in JSON backing definition for NFS volume"
msgstr ""
msgid "missing 'start' attribute for clock with offset='absolute'"
msgstr ""
#, c-format
msgid ""
"missing 'start' attribute in <address> element in <nat> in <forward> in "
@@ -30898,6 +30941,9 @@ msgstr ""
msgid "missing path for <reservations/>"
msgstr "emulatorpin ৰ বাবে cpuset নাই"
msgid "missing path to restore from"
msgstr ""
msgid "missing per-device path"
msgstr "সন্ধানহীন প্ৰতি-ডিভাইচ পথ "
@@ -31137,6 +31183,10 @@ msgstr "হস্টৰ বাবে সন্ধানহীন নাম"
msgid "missing value for migration parameter '%s'"
msgstr "%s ত নামৰ তথ্য সন্ধানহীন"
#, fuzzy
msgid "missing values for acceleration"
msgstr "নামৰ তথ্য সন্ধানহীন"
msgid "missing vendor"
msgstr "অনুপস্থিত vendor"
@@ -32572,7 +32622,8 @@ msgid "only 'pci' addresses are supported for the virtio-pmem device"
msgstr ""
msgid ""
"only 1 graphics device of each type (sdl, vnc, spice, headless) is supported"
"only 1 graphics device of each type (sdl, vnc, spice, headless, dbus) is "
"supported"
msgstr ""
msgid "only JSON objects can be top level"
@@ -33115,8 +33166,8 @@ msgstr "ডিস্ক ড্ৰাইভাৰ %s সমৰ্থিত নহ
msgid "pci device %s is not a PCI-Express device"
msgstr "ডিভাইচ %s এটা PCI ডিভাইচ নহয়"
msgid "pci device assignment backend driver (e.g. 'vfio' or 'kvm')"
msgstr "pci ডিভাইচ ধাৰ্য্যকৰণ বেকএণ্ড ড্ৰাইভাৰ (উদাহৰণস্বৰূপ 'vfio' অথবা 'kvm')"
msgid "pci device assignment backend driver (e.g. 'vfio' or 'xen')"
msgstr ""
msgid ""
"pci-expander-bus controllers are only supported on 440fx-based machinetypes"
@@ -33478,6 +33529,9 @@ msgstr "এটা প্ৰদান কৰা নেটৱৰ্ক বলৱ
msgid "print statistics for any kind of job (even failed ones)"
msgstr ""
msgid "print the XML used to start the copy job instead of starting the job"
msgstr ""
#, fuzzy
msgid "print the admin server URI"
msgstr "ডমেইনৰ হস্টনাম প্ৰিণ্ট কৰক"
@@ -33539,7 +33593,7 @@ msgstr "প্ৰোগ্ৰাম অমিল (প্ৰকৃত %x, প্
msgid "prohibited character in DNS TXT record name '%s' of network %s"
msgstr "নেটৱৰ্ক %s ৰ DNS TXT ৰেকৰ্ড নাম '%s' ৰ প্ৰয়োজনীয় মান বৈশিষ্ট্য নাই"
msgid "property with name 'id' can't be overriden"
msgid "property with name 'id' can't be overridden"
msgstr ""
#, c-format
@@ -33720,9 +33774,6 @@ msgstr ""
msgid "query-fdsets reply was missing 'fdset-id'"
msgstr ""
msgid "query-fdsets return data missing 'fd'"
msgstr ""
msgid "query-fdsets return data missing fd array element"
msgstr ""
@@ -34031,6 +34082,9 @@ msgstr ""
"সংযুক্ত সংৰক্ষণ ভলিউমসমূহ আতৰাওক (লক্ষ্যসমূহ অথবা উৎস পথসমূহৰ কমা পৃথকিত তালিকা) "
"(domblklist চাওক)"
msgid "remove domain logs"
msgstr ""
msgid "remove domain managed state file"
msgstr "ডমেইন ব্যৱস্থাপিত অৱস্থা ফাইল আতৰাওক"
@@ -34441,9 +34495,6 @@ msgstr "ডোমেইন '%s' ক '%s' লৈ ৰক্ষা কৰা হৈ
msgid "sbbc configuration is not supported by this QEMU binary"
msgstr "এই QEMU বাইনাৰি দ্বাৰা ডিস্কাৰ্ড সমৰ্থিত নহয়"
msgid "scheduler information is not supported on this platform"
msgstr ""
#, fuzzy, c-format
msgid "scheme and host are mandatory vz migration URI: %s"
msgstr "প্ৰব্ৰজন URl ত হস্ট সন্ধানহীন: %s"
@@ -34562,7 +34613,9 @@ msgstr "সুৰক্ষা আৰ্হি সৰ্বাধিক অতি
msgid "security model string exceeds max %d bytes"
msgstr "সুৰক্ষা মডেলৰ শব্দৰ সংখ্যা সৰ্বাধিক %d bytes ৰ অধিক"
msgid "select particular graphical display (e.g. \"vnc\", \"spice\", \"rdp\")"
msgid ""
"select particular graphical display (e.g. \"vnc\", \"spice\", \"rdp\", \"dbus"
"\")"
msgstr ""
#, fuzzy
@@ -36405,6 +36458,10 @@ msgstr ""
"নেটৱৰ্ক '%s' ত আন্তঃপষ্ঠ '%s' মচিবলে অক্ষম। ইয়াক বৰ্তমানে %d ডমেইনসমূহ দ্বাৰা "
"ব্যৱহাৰ কৰা হৈছে।"
#, c-format
msgid "unable to determine access mode of %s"
msgstr ""
#, fuzzy
msgid "unable to determine if checkpoint has parent"
msgstr "স্নেপশ্বট উপধায়ক আছে নে নিৰ্ধাৰণ কৰিবলে অক্ষম"
@@ -36736,6 +36793,9 @@ msgid "unable to set ownership of '%s' to user %d:%d"
msgstr ""
"'%s' ৰ মালিকানা ব্যৱহাৰকৰ্তা %d ৰ বাবে স্থাপন কৰিবলৈ ব্যৰ্থ:%d নিৰ্ধাৰণ কৰিবলৈ ব্যৰ্থ"
msgid "unable to set pipe size"
msgstr ""
#, c-format
msgid "unable to set security context '%s'"
msgstr "নিৰাপত্তাৰ সন্দৰ্ভ '%s' নিৰ্ধাৰণ কৰিবলৈ ব্যৰ্থনোৱাৰি '"
@@ -36776,6 +36836,10 @@ msgstr ""
msgid "unable to stat block copy target '%s'"
msgstr "বান্ধনী লক্ষ্য %s বান্ধীবলে অক্ষম"
#, c-format
msgid "unable to stat file descriptor %d path %s"
msgstr ""
#, c-format
msgid "unable to stat for disk %s: %s"
msgstr "ডিস্ক %s ৰ বাবে পৰিসংখ্যা কৰিবলে অক্ষম: %s"
@@ -38664,6 +38728,9 @@ msgstr "virDomainGetXMLDesc secure flag ৰ লগত"
msgid "virDomainSnapshotGetXMLDesc with secure flag"
msgstr "সুৰক্ষিত ফ্লেগৰ সৈতে virDomainSnapshotGetXMLDesc"
msgid "virFileDiskCopy unsupported on this platform"
msgstr ""
msgid "virFileOpenAs is not implemented for WIN32"
msgstr "virFileOpenAs ক WIN32 ৰ বাবে প্ৰণয়ন কৰা হোৱা নাই"
@@ -38752,6 +38819,12 @@ msgstr "অসমৰ্থিত ডিস্ক ঠিকনা ধৰণ '%s'"
msgid "virtio non-transitional model not supported for this qemu"
msgstr "vport কাৰ্য্য '%s' সমৰ্থিত নহয় হস্ট %d"
msgid "virtio rss hash report is not supported with this QEMU binary"
msgstr ""
msgid "virtio rss is not supported with this QEMU binary"
msgstr ""
#, c-format
msgid "virtio rx_queue_size option %d is not same with tx_queue_size %d"
msgstr ""
@@ -39251,6 +39324,46 @@ msgstr ""
msgid "{[--%s] <string>}..."
msgstr "{[--%s] <string>}..."
#~ msgid "%s: unable to determine access mode of fd %d"
#~ msgstr "%s: fd %d ৰ অভিগম অৱস্থা নিৰ্ধাৰণ কৰিবলে অক্ষম"
#~ msgid "Can only open VNC or SPICE graphics backends, not %s"
#~ msgstr "কেৱল VNC অথবা SPICE গ্ৰাফিক্স বেকএণ্ড খোলিব পাৰে, %s নোৱাৰে"
#~ msgid "Failed to release port %d"
#~ msgstr "পোৰ্ট %d উন্মোচন কৰিবলে ব্যৰ্থ"
#, fuzzy
#~ msgid "%s: failed to communicate with bridge helper: %s%s"
#~ msgstr "%s: লগ ফাইল লিখোঁতে ব্যৰ্থ: %s"
#, fuzzy
#~ msgid "HTP resizing is not supported by this QEMU binary"
#~ msgstr "এই QEMU বাইনাৰি দ্বাৰা ডিস্কাৰ্ড সমৰ্থিত নহয়"
#, fuzzy
#~ msgid "failed to create channel dir '%s': %s"
#~ msgstr "সংৰক্ষণ ডাইৰেকটৰি '%s' সৃষ্টি কৰিবলে ব্যৰ্থ: %s"
#, fuzzy
#~ msgid "failed to create dump dir '%s': %s"
#~ msgstr "lib dir '%s' নিৰ্মাণ কৰিবলৈ ব্যৰ্থ: %s"
#~ msgid "failed to create lib dir '%s': %s"
#~ msgstr "lib dir '%s' নিৰ্মাণ কৰিবলৈ ব্যৰ্থ: %s"
#~ msgid "failed to create log dir '%s': %s"
#~ msgstr "লগ ডাইৰেকটৰি '%s' সৃষ্টি কৰিবলৈ ব্যৰ্থ: %s "
#~ msgid "failed to create save dir '%s': %s"
#~ msgstr "সংৰক্ষণ ডাইৰেকটৰি '%s' সৃষ্টি কৰিবলে ব্যৰ্থ: %s"
#~ msgid "failed to create state dir '%s': %s"
#~ msgstr "অৱস্থা ডাইৰেকটৰি '%s' সৃষ্টি কৰিবলে ব্যৰ্থ: %s"
#~ msgid "pci device assignment backend driver (e.g. 'vfio' or 'kvm')"
#~ msgstr "pci ডিভাইচ ধাৰ্য্যকৰণ বেকএণ্ড ড্ৰাইভাৰ (উদাহৰণস্বৰূপ 'vfio' অথবা 'kvm')"
#~ msgid "Call to utsname failed: %d"
#~ msgstr "utsname লৈ কল ব্যৰ্থ হল: %d"
@@ -39433,10 +39546,6 @@ msgstr "{[--%s] <string>}..."
#~ msgid "missing boot device"
#~ msgstr "হৰুৱা উৎসৰ ডিভাইচ"
#, fuzzy
#~ msgid "missing values for acceleration"
#~ msgstr "নামৰ তথ্য সন্ধানহীন"
#~ msgid "sgio of shared disk '%s' conflicts with other active domains"
#~ msgstr "অংশীদাৰী ডিস্ক '%s' ৰ sgio এ অন্য সক্ৰিয় ডমেইনসমূহৰ সৈতে দন্দ কৰে"

234
po/bg.po
View File

@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 6.0.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2022-03-28 11:25+0000\n"
"POT-Creation-Date: 2022-05-25 19:40+0000\n"
"PO-Revision-Date: 2021-01-04 08:47+0000\n"
"Last-Translator: Nickys Music Group <nickys.music.group@gmail.com>\n"
"Language-Team: Bulgarian <https://translate.fedoraproject.org/projects/"
@@ -753,7 +753,7 @@ msgid "%s: expected an unsigned integer for '%s' parameter"
msgstr ""
#, c-format
msgid "%s: failed to communicate with bridge helper: %s%s"
msgid "%s: failed to communicate with bridge helper: %s"
msgstr ""
#, fuzzy, c-format
@@ -855,10 +855,6 @@ msgstr ""
msgid "%s: try --help for more details\n"
msgstr ""
#, c-format
msgid "%s: unable to determine access mode of fd %d"
msgstr ""
#, c-format
msgid "%s: unexpected URI transport '%s'\n"
msgstr ""
@@ -913,6 +909,10 @@ msgstr ""
msgid "'%s'"
msgstr ""
#, c-format
msgid "'%s' D-Bus address is not handled"
msgstr ""
#, c-format
msgid "'%s' architecture is not supported by CPU driver"
msgstr ""
@@ -1102,6 +1102,9 @@ msgstr ""
msgid "'netns' namespace source can only be used with sharenet"
msgstr ""
msgid "'network' attribute is required for listen type 'network'"
msgstr ""
msgid "'network' attribute is valid only for listen type 'network'"
msgstr ""
@@ -2229,7 +2232,7 @@ msgid "Can only modify disk quota"
msgstr ""
#, c-format
msgid "Can only open VNC or SPICE graphics backends, not %s"
msgid "Can only open VNC, SPICE or D-Bus p2p graphics backends, not %s"
msgstr ""
msgid "Can't add USB hub: USB is disabled for this domain"
@@ -4773,6 +4776,12 @@ msgstr ""
msgid "Custom loader requires explicit %s configuration"
msgstr ""
msgid "D-Bus audio is not supported with this QEMU"
msgstr ""
msgid "D-Bus p2p with an address is not supported"
msgstr ""
msgid "DAC imagelabel couldn't be determined"
msgstr ""
@@ -7424,6 +7433,10 @@ msgstr "Неуспешно приспиване на домейн %s"
msgid "Failed to parse %s: only com1 and com2 supported."
msgstr ""
#, c-format
msgid "Failed to parse CCW address '%s'"
msgstr ""
#, fuzzy, c-format
msgid "Failed to parse MAC address from '%s'"
msgstr "Неуспех при възстановяване на домейн от %s"
@@ -7718,10 +7731,6 @@ msgstr "Неуспех при опит за създаване на XML файл
msgid "Failed to release lock: %s"
msgstr "Неуспешно събуждане на домейн %s"
#, fuzzy, c-format
msgid "Failed to release port %d"
msgstr "Неуспешно събуждане на домейн %s"
#, fuzzy, c-format
msgid "Failed to remove capability %s: %d"
msgstr "неуспешно получаване на възможностите"
@@ -8690,6 +8699,10 @@ msgstr ""
msgid "Gets statistics about one or more (or all) domains"
msgstr ""
#, c-format
msgid "Global feature %d should have already been handled"
msgstr ""
msgid "Got empty feature list from resctrl"
msgstr ""
@@ -8732,9 +8745,6 @@ msgstr ""
msgid "HTM configuration is not supported by this QEMU binary"
msgstr ""
msgid "HTP resizing is not supported by this QEMU binary"
msgstr ""
#, c-format
msgid "HTTP response code %d for call to '%s'"
msgstr ""
@@ -8940,10 +8950,22 @@ msgstr ""
msgid "IOMMU device: '%s' is only supported with ARM Virt machines"
msgstr ""
#, c-format
msgid "IOMMU device: '%s' is only supported with Q35 and ARM Virt machines"
msgstr ""
#, c-format
msgid "IOMMU device: '%s' is only supported with Q35 machines"
msgstr ""
#, c-format
msgid "IOMMU device: '%s' needs a PCI address"
msgstr ""
#, c-format
msgid "IOMMU device: '%s' requires ACPI"
msgstr ""
msgid "IOMMU eim requires interrupt remapping to be enabled"
msgstr ""
@@ -9853,7 +9875,7 @@ msgid "Invalid parameter type passed to free"
msgstr ""
#, c-format
msgid "Invalid parameters: %d"
msgid "Invalid parameters macaddr=%p allowRetry=%p"
msgstr ""
msgid "Invalid partial specification for virtio ccw address"
@@ -11142,18 +11164,9 @@ msgid ""
"response"
msgstr ""
msgid "Missing or invalid fd in add-fd response"
msgstr ""
msgid "Missing or invalid fdset-id in add-fd response"
msgstr ""
msgid "Missing or invalid name in query-rx-filter response"
msgstr ""
msgid "Missing or invalid return data in add-fd response"
msgstr ""
msgid "Missing or invalid scsi adapter 'unique_id' value"
msgstr ""
@@ -12434,6 +12447,9 @@ msgstr ""
msgid "Only one primary video device is supported"
msgstr ""
msgid "Only one vgpu device can have 'ramfb' enabled"
msgstr ""
msgid "Only ploop disk images are supported by vz driver."
msgstr ""
@@ -14292,6 +14308,9 @@ msgstr ""
msgid "Specifying mount point is not supported for now"
msgstr ""
msgid "Spice audio is not supported without spice graphics"
msgstr ""
msgid "Start"
msgstr ""
@@ -15438,6 +15457,9 @@ msgstr ""
msgid "The XML configuration was changed by another user."
msgstr ""
msgid "The associated audio is not of 'dbus' kind."
msgstr ""
#, c-format
msgid "The certificate %s basic constraints do not show a CA"
msgstr ""
@@ -15494,6 +15516,10 @@ msgid ""
"The device at PCI address %s has unrecognized connection type flags 0x%.2x"
msgstr ""
#, c-format
msgid "The device at PCI address %s needs to be an integrated device (bus=0)"
msgstr ""
#, c-format
msgid ""
"The device at PCI address %s requires hotplug capability, but the PCI "
@@ -16094,10 +16120,6 @@ msgstr "грешка при разбор на конфигурационния
msgid "Unable to access file descriptor %d"
msgstr ""
#, c-format
msgid "Unable to access file descriptor %d path %s"
msgstr ""
msgid "Unable to access kernel32.dll"
msgstr ""
@@ -20017,6 +20039,13 @@ msgstr ""
msgid "authentication failed: %s"
msgstr "грешка при операция: %s"
#, c-format
msgid "authentication is not supported for protocol '%s'"
msgstr ""
msgid "authentication is supported only for network backed disks"
msgstr ""
msgid "authentication required"
msgstr ""
@@ -22202,6 +22231,14 @@ msgstr "липсва информация за главното устройст
msgid "character device name"
msgstr "тип на целевото устройство"
#, c-format
msgid "chardev '%s' not supported in this QEMU binary"
msgstr ""
#, c-format
msgid "chardev '%s' not supported without spice graphics"
msgstr ""
msgid "chardev already exists"
msgstr ""
@@ -23512,9 +23549,6 @@ msgstr ""
msgid "dir"
msgstr ""
msgid "direct FD passing supports only 1 file descriptor"
msgstr ""
#, fuzzy
msgid "direct migration"
msgstr "мигриране по време на работа"
@@ -24402,6 +24436,9 @@ msgstr ""
msgid "encryption is not supported with vhostuser disk"
msgstr ""
msgid "encryption is supported only with 'raw' and 'qcow2' image format"
msgstr ""
#, c-format
msgid "end of range %s - %s in network %s/%d is the broadcast address"
msgstr ""
@@ -25074,9 +25111,9 @@ msgstr "Неуспех при създаване на домейн от %s"
msgid "failed to create a new XML namespace"
msgstr "Неуспех при опит за създаване на XML файл"
#, fuzzy, c-format
msgid "failed to create channel dir '%s': %s"
msgstr "Неуспех при създаване на домейн от %s"
#, c-format
msgid "failed to create channel dir '%s'"
msgstr ""
msgid "failed to create connection to CH socket"
msgstr ""
@@ -25089,9 +25126,9 @@ msgstr "неуспешен запис на файл"
msgid "failed to create directory '%s'"
msgstr "неуспешно получаване на мрежа '%s'"
#, fuzzy, c-format
msgid "failed to create dump dir '%s': %s"
msgstr "Неуспешен запис на ядрото на домейн %s в %s"
#, c-format
msgid "failed to create dump dir '%s'"
msgstr ""
#, c-format
msgid "failed to create glfs object for '%s'"
@@ -25112,17 +25149,17 @@ msgstr "неуспех при запис в дневника"
msgid "failed to create json"
msgstr "Неуспех при опит за създаване на XML файл"
#, fuzzy, c-format
msgid "failed to create lib dir '%s': %s"
msgstr "неуспешно получаване на домейн '%s'"
#, c-format
msgid "failed to create lib dir '%s'"
msgstr ""
#, fuzzy, c-format
msgid "failed to create libssh channel: %s"
msgstr "Неуспех при създаване на домейн от %s"
#, fuzzy, c-format
msgid "failed to create log dir '%s': %s"
msgstr "неуспешно получаване на домейн '%s'"
#, c-format
msgid "failed to create log dir '%s'"
msgstr ""
#, fuzzy, c-format
msgid "failed to create logfile %s"
@@ -25135,9 +25172,9 @@ msgstr ""
msgid "failed to create profile"
msgstr "неуспех при запис в дневника"
#, fuzzy, c-format
msgid "failed to create save dir '%s': %s"
msgstr "Неуспешно записване на домейн %s в %s"
#, c-format
msgid "failed to create save dir '%s'"
msgstr ""
#, fuzzy
msgid "failed to create socket"
@@ -25151,9 +25188,9 @@ msgstr "Неуспех при създаване на домейн от %s"
msgid "failed to create socketpair"
msgstr "Неуспех при създаване на домейн от %s"
#, fuzzy, c-format
msgid "failed to create state dir '%s': %s"
msgstr "Неуспех при създаване на домейн от %s"
#, c-format
msgid "failed to create state dir '%s'"
msgstr ""
#, fuzzy
msgid "failed to create the RADOS cluster"
@@ -25693,6 +25730,9 @@ msgstr "Неуспешно прикачане на устройство от %s"
msgid "failed to parse node name index"
msgstr "неуспешно получаване на информация за възела"
msgid "failed to parse original memlock size"
msgstr ""
#, fuzzy, c-format
msgid "failed to parse port number '%s'"
msgstr "неуспешно получаване на мрежа '%s'"
@@ -26180,6 +26220,10 @@ msgstr ""
msgid "fd passing is not supported by this connection"
msgstr ""
#, c-format
msgid "fdset '%u' is already in use by qemu"
msgstr ""
msgid "fetch or set the currently defined set of logging filters on daemon"
msgstr ""
@@ -27704,9 +27748,6 @@ msgstr ""
msgid "invalid fd %d for %s"
msgstr "невалиден указател за домейн в %s"
msgid "invalid file descriptor"
msgstr ""
msgid "invalid flag"
msgstr ""
@@ -28269,10 +28310,10 @@ msgstr ""
msgid "library call failed: %s"
msgstr "грешка при операция: %s"
msgid "librbd encryption engine only supports luks/luks2 formats"
msgid "librbd encryption is not supported by this QEMU binary"
msgstr ""
msgid "librbd encryption is not supported by this QEMU binary"
msgid "librbd encryption is supported only with RBD backed disks"
msgstr ""
msgid "libssh transport error"
@@ -29539,6 +29580,9 @@ msgstr ""
msgid "missing 'server' attribute in JSON backing definition for NFS volume"
msgstr ""
msgid "missing 'start' attribute for clock with offset='absolute'"
msgstr ""
#, c-format
msgid ""
"missing 'start' attribute in <address> element in <nat> in <forward> in "
@@ -30057,6 +30101,9 @@ msgstr ""
msgid "missing path for <reservations/>"
msgstr ""
msgid "missing path to restore from"
msgstr ""
#, fuzzy
msgid "missing per-device path"
msgstr "липсва информация за устройство"
@@ -30303,6 +30350,10 @@ msgstr "липсва информация за източника на устр
msgid "missing value for migration parameter '%s'"
msgstr "липсва информация за източника на устройство %s"
#, fuzzy
msgid "missing values for acceleration"
msgstr "липсва информация за устройство"
#, fuzzy
msgid "missing vendor"
msgstr "липсва \""
@@ -31691,7 +31742,8 @@ msgid "only 'pci' addresses are supported for the virtio-pmem device"
msgstr ""
msgid ""
"only 1 graphics device of each type (sdl, vnc, spice, headless) is supported"
"only 1 graphics device of each type (sdl, vnc, spice, headless, dbus) is "
"supported"
msgstr ""
msgid "only JSON objects can be top level"
@@ -32207,7 +32259,7 @@ msgstr ""
msgid "pci device %s is not a PCI-Express device"
msgstr ""
msgid "pci device assignment backend driver (e.g. 'vfio' or 'kvm')"
msgid "pci device assignment backend driver (e.g. 'vfio' or 'xen')"
msgstr ""
msgid ""
@@ -32552,6 +32604,9 @@ msgstr ""
msgid "print statistics for any kind of job (even failed ones)"
msgstr ""
msgid "print the XML used to start the copy job instead of starting the job"
msgstr ""
#, fuzzy
msgid "print the admin server URI"
msgstr "извеждане каноничния УРИ на хипервайзора"
@@ -32615,7 +32670,7 @@ msgstr ""
msgid "prohibited character in DNS TXT record name '%s' of network %s"
msgstr ""
msgid "property with name 'id' can't be overriden"
msgid "property with name 'id' can't be overridden"
msgstr ""
#, c-format
@@ -32790,9 +32845,6 @@ msgstr ""
msgid "query-fdsets reply was missing 'fdset-id'"
msgstr ""
msgid "query-fdsets return data missing 'fd'"
msgstr ""
msgid "query-fdsets return data missing fd array element"
msgstr ""
@@ -33081,6 +33133,9 @@ msgid ""
"paths) (see domblklist)"
msgstr ""
msgid "remove domain logs"
msgstr ""
#, fuzzy
msgid "remove domain managed state file"
msgstr "възстановяване на домейн към запазено във файл състояние"
@@ -33482,9 +33537,6 @@ msgstr "запис състоянието на домейн във файл"
msgid "sbbc configuration is not supported by this QEMU binary"
msgstr ""
msgid "scheduler information is not supported on this platform"
msgstr ""
#, c-format
msgid "scheme and host are mandatory vz migration URI: %s"
msgstr ""
@@ -33598,7 +33650,9 @@ msgstr ""
msgid "security model string exceeds max %d bytes"
msgstr ""
msgid "select particular graphical display (e.g. \"vnc\", \"spice\", \"rdp\")"
msgid ""
"select particular graphical display (e.g. \"vnc\", \"spice\", \"rdp\", \"dbus"
"\")"
msgstr ""
msgid "send handler failed"
@@ -35356,6 +35410,10 @@ msgid ""
"by %d domains."
msgstr ""
#, c-format
msgid "unable to determine access mode of %s"
msgstr ""
msgid "unable to determine if checkpoint has parent"
msgstr ""
@@ -35684,6 +35742,9 @@ msgstr ""
msgid "unable to set ownership of '%s' to user %d:%d"
msgstr ""
msgid "unable to set pipe size"
msgstr ""
#, c-format
msgid "unable to set security context '%s'"
msgstr ""
@@ -35723,6 +35784,10 @@ msgstr ""
msgid "unable to stat block copy target '%s'"
msgstr "Неуспешно извличане състоянието на блоковете %s %s"
#, c-format
msgid "unable to stat file descriptor %d path %s"
msgstr ""
#, fuzzy, c-format
msgid "unable to stat for disk %s: %s"
msgstr "Неуспешно стартиране на мрежа %s"
@@ -37601,6 +37666,9 @@ msgstr ""
msgid "virDomainSnapshotGetXMLDesc with secure flag"
msgstr ""
msgid "virFileDiskCopy unsupported on this platform"
msgstr ""
msgid "virFileOpenAs is not implemented for WIN32"
msgstr ""
@@ -37686,6 +37754,12 @@ msgstr ""
msgid "virtio non-transitional model not supported for this qemu"
msgstr ""
msgid "virtio rss hash report is not supported with this QEMU binary"
msgstr ""
msgid "virtio rss is not supported with this QEMU binary"
msgstr ""
#, c-format
msgid "virtio rx_queue_size option %d is not same with tx_queue_size %d"
msgstr ""
@@ -38160,6 +38234,34 @@ msgstr ""
msgid "{[--%s] <string>}..."
msgstr "--%s <низ>"
#, fuzzy
#~ msgid "Failed to release port %d"
#~ msgstr "Неуспешно събуждане на домейн %s"
#, fuzzy
#~ msgid "failed to create channel dir '%s': %s"
#~ msgstr "Неуспех при създаване на домейн от %s"
#, fuzzy
#~ msgid "failed to create dump dir '%s': %s"
#~ msgstr "Неуспешен запис на ядрото на домейн %s в %s"
#, fuzzy
#~ msgid "failed to create lib dir '%s': %s"
#~ msgstr "неуспешно получаване на домейн '%s'"
#, fuzzy
#~ msgid "failed to create log dir '%s': %s"
#~ msgstr "неуспешно получаване на домейн '%s'"
#, fuzzy
#~ msgid "failed to create save dir '%s': %s"
#~ msgstr "Неуспешно записване на домейн %s в %s"
#, fuzzy
#~ msgid "failed to create state dir '%s': %s"
#~ msgstr "Неуспех при създаване на домейн от %s"
#, fuzzy
#~ msgid "Call to utsname failed: %d"
#~ msgstr "грешка при операция: %s"
@@ -38204,10 +38306,6 @@ msgstr "--%s <низ>"
#~ msgid "missing boot device"
#~ msgstr "липсва информация за главното устройство"
#, fuzzy
#~ msgid "missing values for acceleration"
#~ msgstr "липсва информация за устройство"
#, fuzzy
#~ msgid "swtpm failed to start"
#~ msgstr "Неуспешно стартиране на домейн %s"

View File

@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 6.0.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2022-03-28 11:25+0000\n"
"POT-Creation-Date: 2022-05-25 19:40+0000\n"
"PO-Revision-Date: 2020-06-24 14:36+0000\n"
"Last-Translator: Akarshan Biswas <akarshan.biswas@gmail.com>\n"
"Language-Team: Bengali (India) <https://translate.fedoraproject.org/projects/"
@@ -768,9 +768,9 @@ msgstr ""
msgid "%s: expected an unsigned integer for '%s' parameter"
msgstr ""
#, fuzzy, c-format
msgid "%s: failed to communicate with bridge helper: %s%s"
msgstr "%s: লগ ফাইল লিখতে ব্যর্থ: %s"
#, c-format
msgid "%s: failed to communicate with bridge helper: %s"
msgstr ""
#, c-format
msgid "%s: failed to read temporary file: %s"
@@ -874,10 +874,6 @@ msgstr ""
msgid "%s: try --help for more details\n"
msgstr ""
#, fuzzy, c-format
msgid "%s: unable to determine access mode of fd %d"
msgstr "%s: ত্রুটি: ডিমন চলছে কিনা তা নির্ধারণ করতে ব্যর্থ: %s\n"
#, c-format
msgid "%s: unexpected URI transport '%s'\n"
msgstr ""
@@ -932,6 +928,10 @@ msgstr ""
msgid "'%s'"
msgstr ""
#, c-format
msgid "'%s' D-Bus address is not handled"
msgstr ""
#, fuzzy, c-format
msgid "'%s' architecture is not supported by CPU driver"
msgstr "SASL প্রণালী %s, সার্ভার দ্বারা সমর্থিত নয়"
@@ -1127,6 +1127,9 @@ msgstr ""
msgid "'netns' namespace source can only be used with sharenet"
msgstr ""
msgid "'network' attribute is required for listen type 'network'"
msgstr ""
#, fuzzy
msgid "'network' attribute is valid only for listen type 'network'"
msgstr ""
@@ -2295,7 +2298,7 @@ msgid "Can only modify disk quota"
msgstr ""
#, c-format
msgid "Can only open VNC or SPICE graphics backends, not %s"
msgid "Can only open VNC, SPICE or D-Bus p2p graphics backends, not %s"
msgstr ""
msgid "Can't add USB hub: USB is disabled for this domain"
@@ -4949,6 +4952,12 @@ msgstr ""
msgid "Custom loader requires explicit %s configuration"
msgstr ""
msgid "D-Bus audio is not supported with this QEMU"
msgstr ""
msgid "D-Bus p2p with an address is not supported"
msgstr ""
msgid "DAC imagelabel couldn't be determined"
msgstr ""
@@ -7631,6 +7640,10 @@ msgstr "tty %s খুলতে ব্যর্থ"
msgid "Failed to parse %s: only com1 and com2 supported."
msgstr ""
#, c-format
msgid "Failed to parse CCW address '%s'"
msgstr ""
#, fuzzy, c-format
msgid "Failed to parse MAC address from '%s'"
msgstr "ডিরেক্টরির নাম '%s' পার্স করতে ব্যর্থ"
@@ -7923,10 +7936,6 @@ msgstr "সকেট নির্মাণ করতে ব্যর্থ"
msgid "Failed to release lock: %s"
msgstr "ভলিউম %s নির্মাণ করতে ব্যর্থ"
#, fuzzy, c-format
msgid "Failed to release port %d"
msgstr "%s পুল নির্মাণ করতে ব্যর্থ"
#, fuzzy, c-format
msgid "Failed to remove capability %s: %d"
msgstr "ক্ষমতা প্রয়োগ করতে ব্যর্থ: %d"
@@ -8916,6 +8925,10 @@ msgstr ""
msgid "Gets statistics about one or more (or all) domains"
msgstr ""
#, c-format
msgid "Global feature %d should have already been handled"
msgstr ""
msgid "Got empty feature list from resctrl"
msgstr ""
@@ -8960,10 +8973,6 @@ msgstr ""
msgid "HTM configuration is not supported by this QEMU binary"
msgstr "এই QEMU বাইনারি দ্বারা SATA সমর্থিত হয় না"
#, fuzzy
msgid "HTP resizing is not supported by this QEMU binary"
msgstr "এই QEMU বাইনারি দ্বারা SATA সমর্থিত হয় না"
#, c-format
msgid "HTTP response code %d for call to '%s'"
msgstr ""
@@ -9179,10 +9188,22 @@ msgstr "এই QEMU বাইনারি দ্বারা SATA সমর্
msgid "IOMMU device: '%s' is only supported with ARM Virt machines"
msgstr ""
#, c-format
msgid "IOMMU device: '%s' is only supported with Q35 and ARM Virt machines"
msgstr ""
#, c-format
msgid "IOMMU device: '%s' is only supported with Q35 machines"
msgstr ""
#, c-format
msgid "IOMMU device: '%s' needs a PCI address"
msgstr ""
#, c-format
msgid "IOMMU device: '%s' requires ACPI"
msgstr ""
msgid "IOMMU eim requires interrupt remapping to be enabled"
msgstr ""
@@ -10116,7 +10137,7 @@ msgid "Invalid parameter type passed to free"
msgstr "virXPathNode()-র অবৈধ পরামিতি"
#, c-format
msgid "Invalid parameters: %d"
msgid "Invalid parameters macaddr=%p allowRetry=%p"
msgstr ""
msgid "Invalid partial specification for virtio ccw address"
@@ -11453,19 +11474,10 @@ msgid ""
"response"
msgstr ""
msgid "Missing or invalid fd in add-fd response"
msgstr ""
msgid "Missing or invalid fdset-id in add-fd response"
msgstr ""
#, fuzzy
msgid "Missing or invalid name in query-rx-filter response"
msgstr "CPU মডেল %s এ PVR মান অনুপস্থিত বা অবৈধ"
msgid "Missing or invalid return data in add-fd response"
msgstr ""
#, fuzzy
msgid "Missing or invalid scsi adapter 'unique_id' value"
msgstr "vlan ট্যাগ অাইডি অ্যাট্রিবিউট হয় অনুপস্থিত বা অবৈধ"
@@ -12813,6 +12825,9 @@ msgstr "শুধুমাত্র একটি প্রাথমিক ডি
msgid "Only one primary video device is supported"
msgstr "শুধুমাত্র একটি প্রাথমিক ডিভিও ডিভাইস সমর্থিত"
msgid "Only one vgpu device can have 'ramfb' enabled"
msgstr ""
msgid "Only ploop disk images are supported by vz driver."
msgstr ""
@@ -14731,6 +14746,9 @@ msgstr ""
msgid "Specifying mount point is not supported for now"
msgstr "cpu অ্যাফিনিটি সমর্থিত নয়"
msgid "Spice audio is not supported without spice graphics"
msgstr ""
msgid "Start"
msgstr ""
@@ -15913,6 +15931,9 @@ msgstr ""
msgid "The XML configuration was changed by another user."
msgstr "%s ইন্টারফেসের XML কনফিগারেশন পরিবর্তন করা হয়নি।\n"
msgid "The associated audio is not of 'dbus' kind."
msgstr ""
#, c-format
msgid "The certificate %s basic constraints do not show a CA"
msgstr ""
@@ -15970,6 +15991,10 @@ msgid ""
"The device at PCI address %s has unrecognized connection type flags 0x%.2x"
msgstr ""
#, c-format
msgid "The device at PCI address %s needs to be an integrated device (bus=0)"
msgstr ""
#, c-format
msgid ""
"The device at PCI address %s requires hotplug capability, but the PCI "
@@ -16583,10 +16608,6 @@ msgstr "কনফিগারেশন ফাইল %s পার্স করত
msgid "Unable to access file descriptor %d"
msgstr "non-blocking ফাইল ডেস্ক্রিপটর ফ্ল্যাগের মান নির্ধারণ করতে ব্যর্থ"
#, c-format
msgid "Unable to access file descriptor %d path %s"
msgstr ""
msgid "Unable to access kernel32.dll"
msgstr ""
@@ -20683,6 +20704,13 @@ msgstr ""
msgid "authentication failed: %s"
msgstr "অনুমোদন বিফল: %s"
#, c-format
msgid "authentication is not supported for protocol '%s'"
msgstr ""
msgid "authentication is supported only for network backed disks"
msgstr ""
msgid "authentication required"
msgstr "অনুমোদন আবশ্যক"
@@ -22961,6 +22989,14 @@ msgstr "ক্যারেক্টার ডিভাইসের তথ্য
msgid "character device name"
msgstr "অজানা ক্যারেক্টার ডিভাইস ধরন: %s"
#, c-format
msgid "chardev '%s' not supported in this QEMU binary"
msgstr ""
#, c-format
msgid "chardev '%s' not supported without spice graphics"
msgstr ""
#, fuzzy
msgid "chardev already exists"
msgstr "%s টার্গেট বর্তমানে উপস্থিত রয়েছে"
@@ -24312,9 +24348,6 @@ msgstr ""
msgid "dir"
msgstr ""
msgid "direct FD passing supports only 1 file descriptor"
msgstr ""
msgid "direct migration"
msgstr "সরাসরি মাইগ্রেশন"
@@ -25222,6 +25255,9 @@ msgstr ""
msgid "encryption is not supported with vhostuser disk"
msgstr ""
msgid "encryption is supported only with 'raw' and 'qcow2' image format"
msgstr ""
#, c-format
msgid "end of range %s - %s in network %s/%d is the broadcast address"
msgstr ""
@@ -25902,9 +25938,9 @@ msgstr "%s পুল নির্মাণ করতে ব্যর্থ"
msgid "failed to create a new XML namespace"
msgstr "XML নির্মাণ করতে ব্যর্থ"
#, fuzzy, c-format
msgid "failed to create channel dir '%s': %s"
msgstr "'%s' নির্মাণ করতে ব্যর্থ: %s"
#, c-format
msgid "failed to create channel dir '%s'"
msgstr ""
msgid "failed to create connection to CH socket"
msgstr ""
@@ -25917,9 +25953,9 @@ msgstr "সকেট নির্মাণ করতে ব্যর্থ"
msgid "failed to create directory '%s'"
msgstr "'%s' ডিরেক্টরি নির্মাণ করতে ব্যর্থ"
#, fuzzy, c-format
msgid "failed to create dump dir '%s': %s"
msgstr "'%s' নির্মাণ করতে ব্যর্থ: %s"
#, c-format
msgid "failed to create dump dir '%s'"
msgstr ""
#, c-format
msgid "failed to create glfs object for '%s'"
@@ -25940,17 +25976,17 @@ msgstr "%s লগ-ফাইল নির্মাণ করতে ব্যর
msgid "failed to create json"
msgstr "সকেট নির্মাণ করতে ব্যর্থ"
#, fuzzy, c-format
msgid "failed to create lib dir '%s': %s"
msgstr "'%s' নির্মাণ করতে ব্যর্থ: %s"
#, c-format
msgid "failed to create lib dir '%s'"
msgstr ""
#, fuzzy, c-format
msgid "failed to create libssh channel: %s"
msgstr "%s লগ-ফাইল নির্মাণ করতে ব্যর্থ"
#, fuzzy, c-format
msgid "failed to create log dir '%s': %s"
msgstr "'%s' নির্মাণ করতে ব্যর্থ: %s"
#, c-format
msgid "failed to create log dir '%s'"
msgstr ""
#, c-format
msgid "failed to create logfile %s"
@@ -25963,9 +25999,9 @@ msgstr ""
msgid "failed to create profile"
msgstr "%s লগ-ফাইল নির্মাণ করতে ব্যর্থ"
#, fuzzy, c-format
msgid "failed to create save dir '%s': %s"
msgstr "'%s' নির্মাণ করতে ব্যর্থ: %s"
#, c-format
msgid "failed to create save dir '%s'"
msgstr ""
msgid "failed to create socket"
msgstr "সকেট নির্মাণ করতে ব্যর্থ"
@@ -25978,9 +26014,9 @@ msgstr "'%s' ডিরেক্টরি নির্মাণ করতে ব
msgid "failed to create socketpair"
msgstr "সকেট নির্মাণ করতে ব্যর্থ"
#, fuzzy, c-format
msgid "failed to create state dir '%s': %s"
msgstr "'%s' নির্মাণ করতে ব্যর্থ: %s"
#, c-format
msgid "failed to create state dir '%s'"
msgstr ""
#, fuzzy
msgid "failed to create the RADOS cluster"
@@ -26516,6 +26552,9 @@ msgstr "MAC ঠিকানা '%s' পার্স করতে ব্যর্
msgid "failed to parse node name index"
msgstr "%s ব্লকের নাম পার্স করতে ব্যর্থ"
msgid "failed to parse original memlock size"
msgstr ""
#, fuzzy, c-format
msgid "failed to parse port number '%s'"
msgstr "ডিরেক্টরির নাম '%s' পার্স করতে ব্যর্থ"
@@ -26999,6 +27038,10 @@ msgstr ""
msgid "fd passing is not supported by this connection"
msgstr "CPU মডেল %s hypervisor দ্বারা সমর্থিত নয়"
#, c-format
msgid "fdset '%u' is already in use by qemu"
msgstr ""
msgid "fetch or set the currently defined set of logging filters on daemon"
msgstr ""
@@ -28575,9 +28618,6 @@ msgstr "অবৈধ ট্র্যান্সলেশন মান '%s'"
msgid "invalid fd %d for %s"
msgstr "'%s'-র জন্য উল্লিখিত মাপ বৈধ নয়"
msgid "invalid file descriptor"
msgstr ""
#, fuzzy
msgid "invalid flag"
msgstr "অবৈধ pid"
@@ -29168,10 +29208,10 @@ msgstr ""
msgid "library call failed: %s"
msgstr "কর্ম বিফল: %s"
msgid "librbd encryption engine only supports luks/luks2 formats"
msgid "librbd encryption is not supported by this QEMU binary"
msgstr ""
msgid "librbd encryption is not supported by this QEMU binary"
msgid "librbd encryption is supported only with RBD backed disks"
msgstr ""
msgid "libssh transport error"
@@ -30492,6 +30532,9 @@ msgstr ""
msgid "missing 'server' attribute in JSON backing definition for NFS volume"
msgstr ""
msgid "missing 'start' attribute for clock with offset='absolute'"
msgstr ""
#, c-format
msgid ""
"missing 'start' attribute in <address> element in <nat> in <forward> in "
@@ -31031,6 +31074,9 @@ msgstr ""
msgid "missing path for <reservations/>"
msgstr "vcpupin ক্ষেত্রে cpuset অনুপস্থিত"
msgid "missing path to restore from"
msgstr ""
msgid "missing per-device path"
msgstr "ডিভাইস প্রতি পাথ অনুপস্থিত"
@@ -31273,6 +31319,10 @@ msgstr "হোস্টের ক্ষেত্রে নাম অনুপস
msgid "missing value for migration parameter '%s'"
msgstr "ডিভাইস %s-র উৎস সংক্রান্ত তথ্য অনুপস্থিত"
#, fuzzy
msgid "missing values for acceleration"
msgstr "ডিভাইস সংক্রান্ত তথ্য অনুপস্থিত"
msgid "missing vendor"
msgstr "অনুপস্থিত বিক্রেতা"
@@ -32720,7 +32770,8 @@ msgid "only 'pci' addresses are supported for the virtio-pmem device"
msgstr ""
msgid ""
"only 1 graphics device of each type (sdl, vnc, spice, headless) is supported"
"only 1 graphics device of each type (sdl, vnc, spice, headless, dbus) is "
"supported"
msgstr ""
msgid "only JSON objects can be top level"
@@ -33268,7 +33319,7 @@ msgstr "hostdev মোড '%s' সমর্থিত নয়"
msgid "pci device %s is not a PCI-Express device"
msgstr "%s ডিভাইসটি PCI ডিভাইস নয়"
msgid "pci device assignment backend driver (e.g. 'vfio' or 'kvm')"
msgid "pci device assignment backend driver (e.g. 'vfio' or 'xen')"
msgstr ""
msgid ""
@@ -33627,6 +33678,9 @@ msgstr ""
msgid "print statistics for any kind of job (even failed ones)"
msgstr ""
msgid "print the XML used to start the copy job instead of starting the job"
msgstr ""
#, fuzzy
msgid "print the admin server URI"
msgstr "হাইপার-ভাইসর canonical URI প্রদর্শন করা হবে"
@@ -33692,7 +33746,7 @@ msgid "prohibited character in DNS TXT record name '%s' of network %s"
msgstr ""
"'%s' নামের DNS TXT রেকর্ডে, %s নেটওয়ার্কের, প্রয়োজনীয় মান অ্যাট্রিবিউট অনুপস্থিত"
msgid "property with name 'id' can't be overriden"
msgid "property with name 'id' can't be overridden"
msgstr ""
#, c-format
@@ -33871,9 +33925,6 @@ msgstr ""
msgid "query-fdsets reply was missing 'fdset-id'"
msgstr ""
msgid "query-fdsets return data missing 'fd'"
msgstr ""
msgid "query-fdsets return data missing fd array element"
msgstr ""
@@ -34174,6 +34225,9 @@ msgid ""
"paths) (see domblklist)"
msgstr ""
msgid "remove domain logs"
msgstr ""
#, fuzzy
msgid "remove domain managed state file"
msgstr "ফাইলের মধ্যে সংরক্ষিত অবস্থা থেকে ডোমেইন পুনরুদ্ধার করুন"
@@ -34590,9 +34644,6 @@ msgstr "'%s' ডোমেইন '%s'-এ সংরক্ষণ করা হচ
msgid "sbbc configuration is not supported by this QEMU binary"
msgstr "এই QEMU বাইনারি দ্বারা SATA সমর্থিত হয় না"
msgid "scheduler information is not supported on this platform"
msgstr ""
#, c-format
msgid "scheme and host are mandatory vz migration URI: %s"
msgstr ""
@@ -34712,7 +34763,9 @@ msgstr "নিরাপত্তার লেবেলের মাপ সর্
msgid "security model string exceeds max %d bytes"
msgstr "নিরাপত্তার মডেলের স্ট্রিং সর্বাধিক %d বাইটের বেশি"
msgid "select particular graphical display (e.g. \"vnc\", \"spice\", \"rdp\")"
msgid ""
"select particular graphical display (e.g. \"vnc\", \"spice\", \"rdp\", \"dbus"
"\")"
msgstr ""
#, fuzzy
@@ -36553,6 +36606,10 @@ msgstr ""
"ইন্টারফেস '%s', '%s' নেটওয়ার্কে মুছতে ব্যর্থ। এটি বর্তমানে %d ডোমেন দ্বারা ব্যবহৃত "
"হচ্ছে।"
#, c-format
msgid "unable to determine access mode of %s"
msgstr ""
#, fuzzy
msgid "unable to determine if checkpoint has parent"
msgstr "%s: ত্রুটি: ডিমন চলছে কিনা তা নির্ধারণ করতে ব্যর্থ: %s\n"
@@ -36894,6 +36951,9 @@ msgstr "'%s'-র মালিকানা %d-এ স্থাপন করতে
msgid "unable to set ownership of '%s' to user %d:%d"
msgstr "'%s'-র মালিকানা ব্যবহারকারী %d-র জন্য স্থাপন করতে ব্যর্থ:%d"
msgid "unable to set pipe size"
msgstr ""
#, c-format
msgid "unable to set security context '%s'"
msgstr "নিরাপত্তার কনটেক্সট '%s' নির্ধারণ করতে ব্যর্থ"
@@ -36934,6 +36994,10 @@ msgstr ""
msgid "unable to stat block copy target '%s'"
msgstr "নিরাপত্তার কনটেক্সট '%s' নির্ধারণ করতে ব্যর্থ"
#, c-format
msgid "unable to stat file descriptor %d path %s"
msgstr ""
#, fuzzy, c-format
msgid "unable to stat for disk %s: %s"
msgstr "rundir %s নির্মাণ করতে ব্যর্থ: %s"
@@ -38841,6 +38905,9 @@ msgstr "নিরাপত্তার ফ্ল্যাগ সহ virDomainGet
msgid "virDomainSnapshotGetXMLDesc with secure flag"
msgstr "নিরাপত্তার ফ্ল্যাগ সহ virDomainGetXMLDesc"
msgid "virFileDiskCopy unsupported on this platform"
msgstr ""
#, fuzzy
msgid "virFileOpenAs is not implemented for WIN32"
msgstr "Win32-র মধ্যে %s বাস্তবায়িত হয়নি"
@@ -38929,6 +38996,12 @@ msgstr "অজানা ধরনের ঠিকানা '%s'"
msgid "virtio non-transitional model not supported for this qemu"
msgstr "qemu-img বিনা non-raw ইমেজের নির্মাণ সমর্থিত নয়"
msgid "virtio rss hash report is not supported with this QEMU binary"
msgstr ""
msgid "virtio rss is not supported with this QEMU binary"
msgstr ""
#, c-format
msgid "virtio rx_queue_size option %d is not same with tx_queue_size %d"
msgstr ""
@@ -39423,6 +39496,46 @@ msgstr ""
msgid "{[--%s] <string>}..."
msgstr "[--%s <string>]"
#, fuzzy
#~ msgid "%s: unable to determine access mode of fd %d"
#~ msgstr "%s: ত্রুটি: ডিমন চলছে কিনা তা নির্ধারণ করতে ব্যর্থ: %s\n"
#, fuzzy
#~ msgid "Failed to release port %d"
#~ msgstr "%s পুল নির্মাণ করতে ব্যর্থ"
#, fuzzy
#~ msgid "%s: failed to communicate with bridge helper: %s%s"
#~ msgstr "%s: লগ ফাইল লিখতে ব্যর্থ: %s"
#, fuzzy
#~ msgid "HTP resizing is not supported by this QEMU binary"
#~ msgstr "এই QEMU বাইনারি দ্বারা SATA সমর্থিত হয় না"
#, fuzzy
#~ msgid "failed to create channel dir '%s': %s"
#~ msgstr "'%s' নির্মাণ করতে ব্যর্থ: %s"
#, fuzzy
#~ msgid "failed to create dump dir '%s': %s"
#~ msgstr "'%s' নির্মাণ করতে ব্যর্থ: %s"
#, fuzzy
#~ msgid "failed to create lib dir '%s': %s"
#~ msgstr "'%s' নির্মাণ করতে ব্যর্থ: %s"
#, fuzzy
#~ msgid "failed to create log dir '%s': %s"
#~ msgstr "'%s' নির্মাণ করতে ব্যর্থ: %s"
#, fuzzy
#~ msgid "failed to create save dir '%s': %s"
#~ msgstr "'%s' নির্মাণ করতে ব্যর্থ: %s"
#, fuzzy
#~ msgid "failed to create state dir '%s': %s"
#~ msgstr "'%s' নির্মাণ করতে ব্যর্থ: %s"
#, fuzzy
#~ msgid "Call to utsname failed: %d"
#~ msgstr "কর্ম বিফল: %s"
@@ -39593,10 +39706,6 @@ msgstr "[--%s <string>]"
#~ msgid "missing boot device"
#~ msgstr "অনুপস্থিত বুট ডিভাইস"
#, fuzzy
#~ msgid "missing values for acceleration"
#~ msgstr "ডিভাইস সংক্রান্ত তথ্য অনুপস্থিত"
#, fuzzy
#~ msgid "swtpm failed to start"
#~ msgstr "পুল %s আরম্ভ করতে ব্যর্থ"

234
po/bs.po
View File

@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 6.0.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2022-03-28 11:25+0000\n"
"POT-Creation-Date: 2022-05-25 19:40+0000\n"
"PO-Revision-Date: 2015-02-26 07:12+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Bosnian (http://www.transifex.com/projects/p/fedora/language/"
@@ -744,7 +744,7 @@ msgid "%s: expected an unsigned integer for '%s' parameter"
msgstr ""
#, c-format
msgid "%s: failed to communicate with bridge helper: %s%s"
msgid "%s: failed to communicate with bridge helper: %s"
msgstr ""
#, fuzzy, c-format
@@ -846,10 +846,6 @@ msgstr ""
msgid "%s: try --help for more details\n"
msgstr ""
#, c-format
msgid "%s: unable to determine access mode of fd %d"
msgstr ""
#, c-format
msgid "%s: unexpected URI transport '%s'\n"
msgstr ""
@@ -904,6 +900,10 @@ msgstr ""
msgid "'%s'"
msgstr ""
#, c-format
msgid "'%s' D-Bus address is not handled"
msgstr ""
#, c-format
msgid "'%s' architecture is not supported by CPU driver"
msgstr ""
@@ -1093,6 +1093,9 @@ msgstr ""
msgid "'netns' namespace source can only be used with sharenet"
msgstr ""
msgid "'network' attribute is required for listen type 'network'"
msgstr ""
msgid "'network' attribute is valid only for listen type 'network'"
msgstr ""
@@ -2215,7 +2218,7 @@ msgid "Can only modify disk quota"
msgstr ""
#, c-format
msgid "Can only open VNC or SPICE graphics backends, not %s"
msgid "Can only open VNC, SPICE or D-Bus p2p graphics backends, not %s"
msgstr ""
msgid "Can't add USB hub: USB is disabled for this domain"
@@ -4750,6 +4753,12 @@ msgstr ""
msgid "Custom loader requires explicit %s configuration"
msgstr ""
msgid "D-Bus audio is not supported with this QEMU"
msgstr ""
msgid "D-Bus p2p with an address is not supported"
msgstr ""
msgid "DAC imagelabel couldn't be determined"
msgstr ""
@@ -7391,6 +7400,10 @@ msgstr "Obustavljanje domene %s nije uspjelo"
msgid "Failed to parse %s: only com1 and com2 supported."
msgstr ""
#, c-format
msgid "Failed to parse CCW address '%s'"
msgstr ""
#, fuzzy, c-format
msgid "Failed to parse MAC address from '%s'"
msgstr "Obnavljanje domene iz %s nije uspjelo"
@@ -7684,10 +7697,6 @@ msgstr "Nastavljanje domene %s nije uspjelo"
msgid "Failed to release lock: %s"
msgstr "Nastavljanje domene %s nije uspjelo"
#, fuzzy, c-format
msgid "Failed to release port %d"
msgstr "Nastavljanje domene %s nije uspjelo"
#, fuzzy, c-format
msgid "Failed to remove capability %s: %d"
msgstr "Nastavljanje domene %s nije uspjelo"
@@ -8647,6 +8656,10 @@ msgstr ""
msgid "Gets statistics about one or more (or all) domains"
msgstr ""
#, c-format
msgid "Global feature %d should have already been handled"
msgstr ""
msgid "Got empty feature list from resctrl"
msgstr ""
@@ -8689,9 +8702,6 @@ msgstr ""
msgid "HTM configuration is not supported by this QEMU binary"
msgstr ""
msgid "HTP resizing is not supported by this QEMU binary"
msgstr ""
#, c-format
msgid "HTTP response code %d for call to '%s'"
msgstr ""
@@ -8897,10 +8907,22 @@ msgstr ""
msgid "IOMMU device: '%s' is only supported with ARM Virt machines"
msgstr ""
#, c-format
msgid "IOMMU device: '%s' is only supported with Q35 and ARM Virt machines"
msgstr ""
#, c-format
msgid "IOMMU device: '%s' is only supported with Q35 machines"
msgstr ""
#, c-format
msgid "IOMMU device: '%s' needs a PCI address"
msgstr ""
#, c-format
msgid "IOMMU device: '%s' requires ACPI"
msgstr ""
msgid "IOMMU eim requires interrupt remapping to be enabled"
msgstr ""
@@ -9808,7 +9830,7 @@ msgid "Invalid parameter type passed to free"
msgstr ""
#, c-format
msgid "Invalid parameters: %d"
msgid "Invalid parameters macaddr=%p allowRetry=%p"
msgstr ""
msgid "Invalid partial specification for virtio ccw address"
@@ -11089,18 +11111,9 @@ msgid ""
"response"
msgstr ""
msgid "Missing or invalid fd in add-fd response"
msgstr ""
msgid "Missing or invalid fdset-id in add-fd response"
msgstr ""
msgid "Missing or invalid name in query-rx-filter response"
msgstr ""
msgid "Missing or invalid return data in add-fd response"
msgstr ""
msgid "Missing or invalid scsi adapter 'unique_id' value"
msgstr ""
@@ -12375,6 +12388,9 @@ msgstr ""
msgid "Only one primary video device is supported"
msgstr ""
msgid "Only one vgpu device can have 'ramfb' enabled"
msgstr ""
msgid "Only ploop disk images are supported by vz driver."
msgstr ""
@@ -14218,6 +14234,9 @@ msgstr ""
msgid "Specifying mount point is not supported for now"
msgstr ""
msgid "Spice audio is not supported without spice graphics"
msgstr ""
msgid "Start"
msgstr ""
@@ -15359,6 +15378,9 @@ msgstr ""
msgid "The XML configuration was changed by another user."
msgstr ""
msgid "The associated audio is not of 'dbus' kind."
msgstr ""
#, c-format
msgid "The certificate %s basic constraints do not show a CA"
msgstr ""
@@ -15415,6 +15437,10 @@ msgid ""
"The device at PCI address %s has unrecognized connection type flags 0x%.2x"
msgstr ""
#, c-format
msgid "The device at PCI address %s needs to be an integrated device (bus=0)"
msgstr ""
#, c-format
msgid ""
"The device at PCI address %s requires hotplug capability, but the PCI "
@@ -16017,10 +16043,6 @@ msgstr "raščlanjivanje konfiguracijske datoteke %s nije uspjelo"
msgid "Unable to access file descriptor %d"
msgstr ""
#, c-format
msgid "Unable to access file descriptor %d path %s"
msgstr ""
msgid "Unable to access kernel32.dll"
msgstr ""
@@ -19890,6 +19912,13 @@ msgstr ""
msgid "authentication failed: %s"
msgstr "operacija nije uspjela: %s"
#, c-format
msgid "authentication is not supported for protocol '%s'"
msgstr ""
msgid "authentication is supported only for network backed disks"
msgstr ""
msgid "authentication required"
msgstr ""
@@ -22065,6 +22094,14 @@ msgstr "nedostaju podaci o korijenskom uređaju pri %s"
msgid "character device name"
msgstr ""
#, c-format
msgid "chardev '%s' not supported in this QEMU binary"
msgstr ""
#, c-format
msgid "chardev '%s' not supported without spice graphics"
msgstr ""
msgid "chardev already exists"
msgstr ""
@@ -23368,9 +23405,6 @@ msgstr ""
msgid "dir"
msgstr ""
msgid "direct FD passing supports only 1 file descriptor"
msgstr ""
#, fuzzy
msgid "direct migration"
msgstr "podaci čvora"
@@ -24255,6 +24289,9 @@ msgstr ""
msgid "encryption is not supported with vhostuser disk"
msgstr ""
msgid "encryption is supported only with 'raw' and 'qcow2' image format"
msgstr ""
#, c-format
msgid "end of range %s - %s in network %s/%d is the broadcast address"
msgstr ""
@@ -24923,9 +24960,9 @@ msgstr "Izrada domene iz %s nije uspjela"
msgid "failed to create a new XML namespace"
msgstr "Izrada domene iz %s nije uspjela"
#, fuzzy, c-format
msgid "failed to create channel dir '%s': %s"
msgstr "Izrada domene iz %s nije uspjela"
#, c-format
msgid "failed to create channel dir '%s'"
msgstr ""
msgid "failed to create connection to CH socket"
msgstr ""
@@ -24938,9 +24975,9 @@ msgstr "spremanje sadržaja nije uspjelo"
msgid "failed to create directory '%s'"
msgstr "Izrada domene iz %s nije uspjela"
#, fuzzy, c-format
msgid "failed to create dump dir '%s': %s"
msgstr "Izbacivanje jezgre domene %s u %s nije uspjelo."
#, c-format
msgid "failed to create dump dir '%s'"
msgstr ""
#, c-format
msgid "failed to create glfs object for '%s'"
@@ -24961,17 +24998,17 @@ msgstr "otvaranje datoteke nije uspjelo"
msgid "failed to create json"
msgstr "spremanje sadržaja nije uspjelo"
#, fuzzy, c-format
msgid "failed to create lib dir '%s': %s"
msgstr "dohvaćanje domene '%s' nije uspjelo"
#, c-format
msgid "failed to create lib dir '%s'"
msgstr ""
#, fuzzy, c-format
msgid "failed to create libssh channel: %s"
msgstr "Izrada domene iz %s nije uspjela"
#, fuzzy, c-format
msgid "failed to create log dir '%s': %s"
msgstr "dohvaćanje domene '%s' nije uspjelo"
#, c-format
msgid "failed to create log dir '%s'"
msgstr ""
#, fuzzy, c-format
msgid "failed to create logfile %s"
@@ -24984,9 +25021,9 @@ msgstr ""
msgid "failed to create profile"
msgstr "otvaranje datoteke nije uspjelo"
#, fuzzy, c-format
msgid "failed to create save dir '%s': %s"
msgstr "Spremanje domene %s na lokaciju %s nije uspjelo"
#, c-format
msgid "failed to create save dir '%s'"
msgstr ""
#, fuzzy
msgid "failed to create socket"
@@ -25000,9 +25037,9 @@ msgstr "Izrada domene iz %s nije uspjela"
msgid "failed to create socketpair"
msgstr "Izrada domene iz %s nije uspjela"
#, fuzzy, c-format
msgid "failed to create state dir '%s': %s"
msgstr "Izrada domene iz %s nije uspjela"
#, c-format
msgid "failed to create state dir '%s'"
msgstr ""
msgid "failed to create the RADOS cluster"
msgstr ""
@@ -25540,6 +25577,9 @@ msgstr "Izrada domene iz %s nije uspjela"
msgid "failed to parse node name index"
msgstr "Dohvaćanje podataka o čvoru nije uspjelo"
msgid "failed to parse original memlock size"
msgstr ""
#, fuzzy, c-format
msgid "failed to parse port number '%s'"
msgstr "raščlanjivanje konfiguracijske datoteke %s nije uspjelo"
@@ -26025,6 +26065,10 @@ msgstr ""
msgid "fd passing is not supported by this connection"
msgstr ""
#, c-format
msgid "fdset '%u' is already in use by qemu"
msgstr ""
msgid "fetch or set the currently defined set of logging filters on daemon"
msgstr ""
@@ -27527,9 +27571,6 @@ msgstr ""
msgid "invalid fd %d for %s"
msgstr "neispravan pokazivač domene pri %s"
msgid "invalid file descriptor"
msgstr ""
msgid "invalid flag"
msgstr ""
@@ -28090,10 +28131,10 @@ msgstr ""
msgid "library call failed: %s"
msgstr "operacija nije uspjela: %s"
msgid "librbd encryption engine only supports luks/luks2 formats"
msgid "librbd encryption is not supported by this QEMU binary"
msgstr ""
msgid "librbd encryption is not supported by this QEMU binary"
msgid "librbd encryption is supported only with RBD backed disks"
msgstr ""
msgid "libssh transport error"
@@ -29339,6 +29380,9 @@ msgstr ""
msgid "missing 'server' attribute in JSON backing definition for NFS volume"
msgstr ""
msgid "missing 'start' attribute for clock with offset='absolute'"
msgstr ""
#, c-format
msgid ""
"missing 'start' attribute in <address> element in <nat> in <forward> in "
@@ -29857,6 +29901,9 @@ msgstr ""
msgid "missing path for <reservations/>"
msgstr ""
msgid "missing path to restore from"
msgstr ""
#, fuzzy
msgid "missing per-device path"
msgstr "nedostaju podaci o uređaju"
@@ -30103,6 +30150,10 @@ msgstr "nedostaju podaci izvora za uređaj %s"
msgid "missing value for migration parameter '%s'"
msgstr "nedostaju podaci izvora za uređaj %s"
#, fuzzy
msgid "missing values for acceleration"
msgstr "nedostaju podaci o uređaju"
#, fuzzy
msgid "missing vendor"
msgstr "nedostaje \""
@@ -31481,7 +31532,8 @@ msgid "only 'pci' addresses are supported for the virtio-pmem device"
msgstr ""
msgid ""
"only 1 graphics device of each type (sdl, vnc, spice, headless) is supported"
"only 1 graphics device of each type (sdl, vnc, spice, headless, dbus) is "
"supported"
msgstr ""
msgid "only JSON objects can be top level"
@@ -31998,7 +32050,7 @@ msgstr ""
msgid "pci device %s is not a PCI-Express device"
msgstr ""
msgid "pci device assignment backend driver (e.g. 'vfio' or 'kvm')"
msgid "pci device assignment backend driver (e.g. 'vfio' or 'xen')"
msgstr ""
msgid ""
@@ -32342,6 +32394,9 @@ msgstr ""
msgid "print statistics for any kind of job (even failed ones)"
msgstr ""
msgid "print the XML used to start the copy job instead of starting the job"
msgstr ""
msgid "print the admin server URI"
msgstr ""
@@ -32405,7 +32460,7 @@ msgstr ""
msgid "prohibited character in DNS TXT record name '%s' of network %s"
msgstr ""
msgid "property with name 'id' can't be overriden"
msgid "property with name 'id' can't be overridden"
msgstr ""
#, c-format
@@ -32580,9 +32635,6 @@ msgstr ""
msgid "query-fdsets reply was missing 'fdset-id'"
msgstr ""
msgid "query-fdsets return data missing 'fd'"
msgstr ""
msgid "query-fdsets return data missing fd array element"
msgstr ""
@@ -32870,6 +32922,9 @@ msgid ""
"paths) (see domblklist)"
msgstr ""
msgid "remove domain logs"
msgstr ""
#, fuzzy
msgid "remove domain managed state file"
msgstr "obnovi domenu iz stanje spremljenog u datoteci"
@@ -33268,9 +33323,6 @@ msgstr "spremi stanje domene u datoteku"
msgid "sbbc configuration is not supported by this QEMU binary"
msgstr ""
msgid "scheduler information is not supported on this platform"
msgstr ""
#, c-format
msgid "scheme and host are mandatory vz migration URI: %s"
msgstr ""
@@ -33383,7 +33435,9 @@ msgstr ""
msgid "security model string exceeds max %d bytes"
msgstr ""
msgid "select particular graphical display (e.g. \"vnc\", \"spice\", \"rdp\")"
msgid ""
"select particular graphical display (e.g. \"vnc\", \"spice\", \"rdp\", \"dbus"
"\")"
msgstr ""
msgid "send handler failed"
@@ -35133,6 +35187,10 @@ msgid ""
"by %d domains."
msgstr ""
#, c-format
msgid "unable to determine access mode of %s"
msgstr ""
msgid "unable to determine if checkpoint has parent"
msgstr ""
@@ -35457,6 +35515,9 @@ msgstr ""
msgid "unable to set ownership of '%s' to user %d:%d"
msgstr ""
msgid "unable to set pipe size"
msgstr ""
#, c-format
msgid "unable to set security context '%s'"
msgstr ""
@@ -35496,6 +35557,10 @@ msgstr ""
msgid "unable to stat block copy target '%s'"
msgstr ""
#, c-format
msgid "unable to stat file descriptor %d path %s"
msgstr ""
#, fuzzy, c-format
msgid "unable to stat for disk %s: %s"
msgstr "Pokretanje domene %s nije uspjelo"
@@ -37363,6 +37428,9 @@ msgstr ""
msgid "virDomainSnapshotGetXMLDesc with secure flag"
msgstr ""
msgid "virFileDiskCopy unsupported on this platform"
msgstr ""
msgid "virFileOpenAs is not implemented for WIN32"
msgstr ""
@@ -37448,6 +37516,12 @@ msgstr ""
msgid "virtio non-transitional model not supported for this qemu"
msgstr ""
msgid "virtio rss hash report is not supported with this QEMU binary"
msgstr ""
msgid "virtio rss is not supported with this QEMU binary"
msgstr ""
#, c-format
msgid "virtio rx_queue_size option %d is not same with tx_queue_size %d"
msgstr ""
@@ -37921,6 +37995,34 @@ msgstr ""
msgid "{[--%s] <string>}..."
msgstr "--%s <niz>"
#, fuzzy
#~ msgid "Failed to release port %d"
#~ msgstr "Nastavljanje domene %s nije uspjelo"
#, fuzzy
#~ msgid "failed to create channel dir '%s': %s"
#~ msgstr "Izrada domene iz %s nije uspjela"
#, fuzzy
#~ msgid "failed to create dump dir '%s': %s"
#~ msgstr "Izbacivanje jezgre domene %s u %s nije uspjelo."
#, fuzzy
#~ msgid "failed to create lib dir '%s': %s"
#~ msgstr "dohvaćanje domene '%s' nije uspjelo"
#, fuzzy
#~ msgid "failed to create log dir '%s': %s"
#~ msgstr "dohvaćanje domene '%s' nije uspjelo"
#, fuzzy
#~ msgid "failed to create save dir '%s': %s"
#~ msgstr "Spremanje domene %s na lokaciju %s nije uspjelo"
#, fuzzy
#~ msgid "failed to create state dir '%s': %s"
#~ msgstr "Izrada domene iz %s nije uspjela"
#, fuzzy
#~ msgid "Call to utsname failed: %d"
#~ msgstr "operacija nije uspjela: %s"
@@ -37961,10 +38063,6 @@ msgstr "--%s <niz>"
#~ msgid "missing boot device"
#~ msgstr "nedostaje podaci o korijenskom uređaju"
#, fuzzy
#~ msgid "missing values for acceleration"
#~ msgstr "nedostaju podaci o uređaju"
#, fuzzy
#~ msgid "swtpm failed to start"
#~ msgstr "Pokretanje domene %s nije uspjelo"

234
po/ca.po
View File

@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 6.0.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2022-03-28 11:25+0000\n"
"POT-Creation-Date: 2022-05-25 19:40+0000\n"
"PO-Revision-Date: 2018-02-24 11:19+0000\n"
"Last-Translator: Robert Antoni Buj Gelonch <rbuj@fedoraproject.org>\n"
"Language-Team: Catalan (http://www.transifex.com/projects/p/libvirt/language/"
@@ -752,7 +752,7 @@ msgid "%s: expected an unsigned integer for '%s' parameter"
msgstr ""
#, c-format
msgid "%s: failed to communicate with bridge helper: %s%s"
msgid "%s: failed to communicate with bridge helper: %s"
msgstr ""
#, fuzzy, c-format
@@ -854,10 +854,6 @@ msgstr ""
msgid "%s: try --help for more details\n"
msgstr ""
#, c-format
msgid "%s: unable to determine access mode of fd %d"
msgstr ""
#, c-format
msgid "%s: unexpected URI transport '%s'\n"
msgstr ""
@@ -912,6 +908,10 @@ msgstr ""
msgid "'%s'"
msgstr ""
#, c-format
msgid "'%s' D-Bus address is not handled"
msgstr ""
#, c-format
msgid "'%s' architecture is not supported by CPU driver"
msgstr ""
@@ -1102,6 +1102,9 @@ msgstr ""
msgid "'netns' namespace source can only be used with sharenet"
msgstr ""
msgid "'network' attribute is required for listen type 'network'"
msgstr ""
msgid "'network' attribute is valid only for listen type 'network'"
msgstr ""
@@ -2230,7 +2233,7 @@ msgid "Can only modify disk quota"
msgstr ""
#, c-format
msgid "Can only open VNC or SPICE graphics backends, not %s"
msgid "Can only open VNC, SPICE or D-Bus p2p graphics backends, not %s"
msgstr ""
msgid "Can't add USB hub: USB is disabled for this domain"
@@ -4816,6 +4819,12 @@ msgstr ""
msgid "Custom loader requires explicit %s configuration"
msgstr ""
msgid "D-Bus audio is not supported with this QEMU"
msgstr ""
msgid "D-Bus p2p with an address is not supported"
msgstr ""
msgid "DAC imagelabel couldn't be determined"
msgstr ""
@@ -7476,6 +7485,10 @@ msgstr "No s'ha pogut suspendre el domini %s"
msgid "Failed to parse %s: only com1 and com2 supported."
msgstr ""
#, c-format
msgid "Failed to parse CCW address '%s'"
msgstr ""
#, fuzzy, c-format
msgid "Failed to parse MAC address from '%s'"
msgstr "No s'ha pogut analitzar el mode '%s'"
@@ -7771,10 +7784,6 @@ msgstr "No s'ha pogut crear l'XML"
msgid "Failed to release lock: %s"
msgstr "No s'ha pogut recuperar el domini %s"
#, fuzzy, c-format
msgid "Failed to release port %d"
msgstr "No s'ha pogut recuperar el domini %s"
#, fuzzy, c-format
msgid "Failed to remove capability %s: %d"
msgstr "no s'ha pogut obtenir les capacitats"
@@ -8754,6 +8763,10 @@ msgstr ""
msgid "Gets statistics about one or more (or all) domains"
msgstr ""
#, c-format
msgid "Global feature %d should have already been handled"
msgstr ""
msgid "Got empty feature list from resctrl"
msgstr ""
@@ -8797,9 +8810,6 @@ msgstr ""
msgid "HTM configuration is not supported by this QEMU binary"
msgstr ""
msgid "HTP resizing is not supported by this QEMU binary"
msgstr ""
#, c-format
msgid "HTTP response code %d for call to '%s'"
msgstr ""
@@ -9005,10 +9015,22 @@ msgstr ""
msgid "IOMMU device: '%s' is only supported with ARM Virt machines"
msgstr ""
#, c-format
msgid "IOMMU device: '%s' is only supported with Q35 and ARM Virt machines"
msgstr ""
#, c-format
msgid "IOMMU device: '%s' is only supported with Q35 machines"
msgstr ""
#, c-format
msgid "IOMMU device: '%s' needs a PCI address"
msgstr ""
#, c-format
msgid "IOMMU device: '%s' requires ACPI"
msgstr ""
msgid "IOMMU eim requires interrupt remapping to be enabled"
msgstr ""
@@ -9919,7 +9941,7 @@ msgid "Invalid parameter type passed to free"
msgstr ""
#, c-format
msgid "Invalid parameters: %d"
msgid "Invalid parameters macaddr=%p allowRetry=%p"
msgstr ""
msgid "Invalid partial specification for virtio ccw address"
@@ -11225,18 +11247,9 @@ msgid ""
"response"
msgstr ""
msgid "Missing or invalid fd in add-fd response"
msgstr ""
msgid "Missing or invalid fdset-id in add-fd response"
msgstr ""
msgid "Missing or invalid name in query-rx-filter response"
msgstr ""
msgid "Missing or invalid return data in add-fd response"
msgstr ""
msgid "Missing or invalid scsi adapter 'unique_id' value"
msgstr ""
@@ -12525,6 +12538,9 @@ msgstr ""
msgid "Only one primary video device is supported"
msgstr ""
msgid "Only one vgpu device can have 'ramfb' enabled"
msgstr ""
msgid "Only ploop disk images are supported by vz driver."
msgstr ""
@@ -14400,6 +14416,9 @@ msgstr ""
msgid "Specifying mount point is not supported for now"
msgstr ""
msgid "Spice audio is not supported without spice graphics"
msgstr ""
msgid "Start"
msgstr ""
@@ -15606,6 +15625,9 @@ msgstr ""
msgid "The XML configuration was changed by another user."
msgstr ""
msgid "The associated audio is not of 'dbus' kind."
msgstr ""
#, c-format
msgid "The certificate %s basic constraints do not show a CA"
msgstr ""
@@ -15662,6 +15684,10 @@ msgid ""
"The device at PCI address %s has unrecognized connection type flags 0x%.2x"
msgstr ""
#, c-format
msgid "The device at PCI address %s needs to be an integrated device (bus=0)"
msgstr ""
#, c-format
msgid ""
"The device at PCI address %s requires hotplug capability, but the PCI "
@@ -16263,10 +16289,6 @@ msgstr "no s'ha pogut analitzar el fitxer de configuració %s"
msgid "Unable to access file descriptor %d"
msgstr "No es pot serialitzar la descripció de la màquina."
#, c-format
msgid "Unable to access file descriptor %d path %s"
msgstr ""
msgid "Unable to access kernel32.dll"
msgstr ""
@@ -20274,6 +20296,13 @@ msgstr ""
msgid "authentication failed: %s"
msgstr "l'autenticació ha fallat"
#, c-format
msgid "authentication is not supported for protocol '%s'"
msgstr ""
msgid "authentication is supported only for network backed disks"
msgstr ""
msgid "authentication required"
msgstr "Es necessita autenticació"
@@ -22473,6 +22502,14 @@ msgstr "falta la informació del dispositiu arrel a %s"
msgid "character device name"
msgstr "tipus de dispositiu destí"
#, c-format
msgid "chardev '%s' not supported in this QEMU binary"
msgstr ""
#, c-format
msgid "chardev '%s' not supported without spice graphics"
msgstr ""
msgid "chardev already exists"
msgstr ""
@@ -23797,9 +23834,6 @@ msgstr ""
msgid "dir"
msgstr ""
msgid "direct FD passing supports only 1 file descriptor"
msgstr ""
#, fuzzy
msgid "direct migration"
msgstr "migració activa"
@@ -24689,6 +24723,9 @@ msgstr ""
msgid "encryption is not supported with vhostuser disk"
msgstr ""
msgid "encryption is supported only with 'raw' and 'qcow2' image format"
msgstr ""
#, c-format
msgid "end of range %s - %s in network %s/%d is the broadcast address"
msgstr ""
@@ -25361,9 +25398,9 @@ msgstr "No s'ha pogut crear un domini des de %s"
msgid "failed to create a new XML namespace"
msgstr "No s'ha pogut crear l'XML"
#, fuzzy, c-format
msgid "failed to create channel dir '%s': %s"
msgstr "No s'ha pogut crear un domini des de %s"
#, c-format
msgid "failed to create channel dir '%s'"
msgstr ""
msgid "failed to create connection to CH socket"
msgstr ""
@@ -25376,9 +25413,9 @@ msgstr "no s'ha pogut desar el contingut"
msgid "failed to create directory '%s'"
msgstr "no s'ha pogut obtenir la xarxa '%s'"
#, fuzzy, c-format
msgid "failed to create dump dir '%s': %s"
msgstr "No s'ha pogut bolcar el domini %s a %s"
#, c-format
msgid "failed to create dump dir '%s'"
msgstr ""
#, c-format
msgid "failed to create glfs object for '%s'"
@@ -25399,17 +25436,17 @@ msgstr "no s'ha pogut escriure el fitxer de registre"
msgid "failed to create json"
msgstr "No s'ha pogut crear l'XML"
#, fuzzy, c-format
msgid "failed to create lib dir '%s': %s"
msgstr "no s'ha pogut obtenir el domini '%s'"
#, c-format
msgid "failed to create lib dir '%s'"
msgstr ""
#, fuzzy, c-format
msgid "failed to create libssh channel: %s"
msgstr "No s'ha pogut crear un domini des de %s"
#, fuzzy, c-format
msgid "failed to create log dir '%s': %s"
msgstr "no s'ha pogut obtenir el domini '%s'"
#, c-format
msgid "failed to create log dir '%s'"
msgstr ""
#, fuzzy, c-format
msgid "failed to create logfile %s"
@@ -25422,9 +25459,9 @@ msgstr ""
msgid "failed to create profile"
msgstr "no s'ha pogut escriure el fitxer de registre"
#, fuzzy, c-format
msgid "failed to create save dir '%s': %s"
msgstr "No s'ha pogut iniciar automàticament la VM '%s': %s"
#, c-format
msgid "failed to create save dir '%s'"
msgstr ""
#, fuzzy
msgid "failed to create socket"
@@ -25438,9 +25475,9 @@ msgstr "No s'ha pogut crear un domini des de %s"
msgid "failed to create socketpair"
msgstr "No s'ha pogut crear un domini des de %s"
#, fuzzy, c-format
msgid "failed to create state dir '%s': %s"
msgstr "No s'ha pogut iniciar automàticament la VM '%s': %s"
#, c-format
msgid "failed to create state dir '%s'"
msgstr ""
#, fuzzy
msgid "failed to create the RADOS cluster"
@@ -25980,6 +26017,9 @@ msgstr "No s'ha pogut analitzar el mode '%s'"
msgid "failed to parse node name index"
msgstr "no es pot obtenir informació de node"
msgid "failed to parse original memlock size"
msgstr ""
#, fuzzy, c-format
msgid "failed to parse port number '%s'"
msgstr "No s'ha pogut analitzar el mode '%s'"
@@ -26468,6 +26508,10 @@ msgstr ""
msgid "fd passing is not supported by this connection"
msgstr ""
#, c-format
msgid "fdset '%u' is already in use by qemu"
msgstr ""
msgid "fetch or set the currently defined set of logging filters on daemon"
msgstr ""
@@ -27997,9 +28041,6 @@ msgstr ""
msgid "invalid fd %d for %s"
msgstr "punter de domini invàlid a %s"
msgid "invalid file descriptor"
msgstr ""
msgid "invalid flag"
msgstr ""
@@ -28564,10 +28605,10 @@ msgstr ""
msgid "library call failed: %s"
msgstr "ha fallat l'operació: %s"
msgid "librbd encryption engine only supports luks/luks2 formats"
msgid "librbd encryption is not supported by this QEMU binary"
msgstr ""
msgid "librbd encryption is not supported by this QEMU binary"
msgid "librbd encryption is supported only with RBD backed disks"
msgstr ""
msgid "libssh transport error"
@@ -29856,6 +29897,9 @@ msgstr ""
msgid "missing 'server' attribute in JSON backing definition for NFS volume"
msgstr ""
msgid "missing 'start' attribute for clock with offset='absolute'"
msgstr ""
#, c-format
msgid ""
"missing 'start' attribute in <address> element in <nat> in <forward> in "
@@ -30389,6 +30433,9 @@ msgstr ""
msgid "missing path for <reservations/>"
msgstr ""
msgid "missing path to restore from"
msgstr ""
#, fuzzy
msgid "missing per-device path"
msgstr "falta el tipus de dispositiu d'entrada"
@@ -30639,6 +30686,10 @@ msgstr "falta l'element o l'atribut '%s'"
msgid "missing value for migration parameter '%s'"
msgstr "falta la informació de l'origen per al dispositiu %s"
#, fuzzy
msgid "missing values for acceleration"
msgstr "falta la informació dels dispositius"
#, fuzzy
msgid "missing vendor"
msgstr "falta \""
@@ -32041,7 +32092,8 @@ msgid "only 'pci' addresses are supported for the virtio-pmem device"
msgstr ""
msgid ""
"only 1 graphics device of each type (sdl, vnc, spice, headless) is supported"
"only 1 graphics device of each type (sdl, vnc, spice, headless, dbus) is "
"supported"
msgstr ""
msgid "only JSON objects can be top level"
@@ -32559,7 +32611,7 @@ msgstr "El tipus de xarxa %d no està suportat"
msgid "pci device %s is not a PCI-Express device"
msgstr ""
msgid "pci device assignment backend driver (e.g. 'vfio' or 'kvm')"
msgid "pci device assignment backend driver (e.g. 'vfio' or 'xen')"
msgstr ""
msgid ""
@@ -32909,6 +32961,9 @@ msgstr ""
msgid "print statistics for any kind of job (even failed ones)"
msgstr ""
msgid "print the XML used to start the copy job instead of starting the job"
msgstr ""
#, fuzzy
msgid "print the admin server URI"
msgstr "escriu l'URI canònica de l'hipervisor"
@@ -32972,7 +33027,7 @@ msgstr "S'ha produït un error de coincidència de versió (real %x, esperada %x
msgid "prohibited character in DNS TXT record name '%s' of network %s"
msgstr ""
msgid "property with name 'id' can't be overriden"
msgid "property with name 'id' can't be overridden"
msgstr ""
#, c-format
@@ -33150,9 +33205,6 @@ msgstr ""
msgid "query-fdsets reply was missing 'fdset-id'"
msgstr ""
msgid "query-fdsets return data missing 'fd'"
msgstr ""
msgid "query-fdsets return data missing fd array element"
msgstr ""
@@ -33443,6 +33495,9 @@ msgid ""
"paths) (see domblklist)"
msgstr ""
msgid "remove domain logs"
msgstr ""
#, fuzzy
msgid "remove domain managed state file"
msgstr "restaura un domini des d'un estat desat en un fitxer"
@@ -33848,9 +33903,6 @@ msgstr "desa un estat de domini a un fitxer"
msgid "sbbc configuration is not supported by this QEMU binary"
msgstr ""
msgid "scheduler information is not supported on this platform"
msgstr ""
#, c-format
msgid "scheme and host are mandatory vz migration URI: %s"
msgstr ""
@@ -33964,7 +34016,9 @@ msgstr ""
msgid "security model string exceeds max %d bytes"
msgstr ""
msgid "select particular graphical display (e.g. \"vnc\", \"spice\", \"rdp\")"
msgid ""
"select particular graphical display (e.g. \"vnc\", \"spice\", \"rdp\", \"dbus"
"\")"
msgstr ""
msgid "send handler failed"
@@ -35741,6 +35795,10 @@ msgid ""
"by %d domains."
msgstr ""
#, c-format
msgid "unable to determine access mode of %s"
msgstr ""
msgid "unable to determine if checkpoint has parent"
msgstr ""
@@ -36079,6 +36137,9 @@ msgstr ""
msgid "unable to set ownership of '%s' to user %d:%d"
msgstr ""
msgid "unable to set pipe size"
msgstr ""
#, c-format
msgid "unable to set security context '%s'"
msgstr ""
@@ -36118,6 +36179,10 @@ msgstr ""
msgid "unable to stat block copy target '%s'"
msgstr "No s'ha pogut obtenir les estadístiques dels blocs %s %s"
#, c-format
msgid "unable to stat file descriptor %d path %s"
msgstr ""
#, fuzzy, c-format
msgid "unable to stat for disk %s: %s"
msgstr "No s'ha pogut iniciar la xarxa %s"
@@ -38012,6 +38077,9 @@ msgstr ""
msgid "virDomainSnapshotGetXMLDesc with secure flag"
msgstr ""
msgid "virFileDiskCopy unsupported on this platform"
msgstr ""
msgid "virFileOpenAs is not implemented for WIN32"
msgstr ""
@@ -38097,6 +38165,12 @@ msgstr ""
msgid "virtio non-transitional model not supported for this qemu"
msgstr ""
msgid "virtio rss hash report is not supported with this QEMU binary"
msgstr ""
msgid "virtio rss is not supported with this QEMU binary"
msgstr ""
#, c-format
msgid "virtio rx_queue_size option %d is not same with tx_queue_size %d"
msgstr ""
@@ -38572,6 +38646,34 @@ msgstr ""
msgid "{[--%s] <string>}..."
msgstr "--%s <cadena>"
#, fuzzy
#~ msgid "Failed to release port %d"
#~ msgstr "No s'ha pogut recuperar el domini %s"
#, fuzzy
#~ msgid "failed to create channel dir '%s': %s"
#~ msgstr "No s'ha pogut crear un domini des de %s"
#, fuzzy
#~ msgid "failed to create dump dir '%s': %s"
#~ msgstr "No s'ha pogut bolcar el domini %s a %s"
#, fuzzy
#~ msgid "failed to create lib dir '%s': %s"
#~ msgstr "no s'ha pogut obtenir el domini '%s'"
#, fuzzy
#~ msgid "failed to create log dir '%s': %s"
#~ msgstr "no s'ha pogut obtenir el domini '%s'"
#, fuzzy
#~ msgid "failed to create save dir '%s': %s"
#~ msgstr "No s'ha pogut iniciar automàticament la VM '%s': %s"
#, fuzzy
#~ msgid "failed to create state dir '%s': %s"
#~ msgstr "No s'ha pogut iniciar automàticament la VM '%s': %s"
#, fuzzy
#~ msgid "Call to utsname failed: %d"
#~ msgstr "ha fallat l'operació: %s"
@@ -38632,10 +38734,6 @@ msgstr "--%s <cadena>"
#~ msgid "missing boot device"
#~ msgstr "falten els dispositius d'origen"
#, fuzzy
#~ msgid "missing values for acceleration"
#~ msgstr "falta la informació dels dispositius"
#, fuzzy
#~ msgid "swtpm failed to start"
#~ msgstr "No s'ha pogut iniciar el domini %s"

251
po/cs.po
View File

@@ -14,7 +14,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 6.0.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2022-03-28 11:25+0000\n"
"POT-Creation-Date: 2022-05-25 19:40+0000\n"
"PO-Revision-Date: 2021-07-21 11:38+0000\n"
"Last-Translator: Matej Cepl <mcepl@cepl.eu>\n"
"Language-Team: Czech <https://translate.fedoraproject.org/projects/libvirt/"
@@ -915,8 +915,8 @@ msgid "%s: expected an unsigned integer for '%s' parameter"
msgstr "%s: pro parametr „%s“ očekáváno celé číslo bez znaménka"
#, c-format
msgid "%s: failed to communicate with bridge helper: %s%s"
msgstr "%s: nepodařilo se komunikovat s helper mostu: %s%s"
msgid "%s: failed to communicate with bridge helper: %s"
msgstr ""
#, c-format
msgid "%s: failed to read temporary file: %s"
@@ -1029,10 +1029,6 @@ msgstr "%s: pro další podrobnosti zkuste --help"
msgid "%s: try --help for more details\n"
msgstr "%s: pro další podrobnosti vyzkoušejte --help\n"
#, c-format
msgid "%s: unable to determine access mode of fd %d"
msgstr "%s: nedaří se zjistit režim přístupu popisovače souboru %d"
#, c-format
msgid "%s: unexpected URI transport '%s'\n"
msgstr ""
@@ -1089,6 +1085,10 @@ msgstr "%s_DEBUG nenastaveno s platnou číselnou hodnotou"
msgid "'%s'"
msgstr "„%s“"
#, c-format
msgid "'%s' D-Bus address is not handled"
msgstr ""
#, c-format
msgid "'%s' architecture is not supported by CPU driver"
msgstr "architektura „%s“ není podporována ovladačem procesoru"
@@ -1284,6 +1284,9 @@ msgstr "v odpovědi guest-get-fsinfo chybí 'name'"
msgid "'netns' namespace source can only be used with sharenet"
msgstr "zdroj jmenného prostoru 'netns' je možné použít pouze s sharenet"
msgid "'network' attribute is required for listen type 'network'"
msgstr ""
msgid "'network' attribute is valid only for listen type 'network'"
msgstr ""
"atribut 'network' (síť) je platný pouze pro typ očekávání spojení 'network'"
@@ -2472,8 +2475,8 @@ msgid "Can only modify disk quota"
msgstr "Kvótu disku je možné pouze upravit"
#, c-format
msgid "Can only open VNC or SPICE graphics backends, not %s"
msgstr "Může otevřít pouze VNC nebo SPICE grafické podpůrné vrstvy, ne %s"
msgid "Can only open VNC, SPICE or D-Bus p2p graphics backends, not %s"
msgstr ""
msgid "Can't add USB hub: USB is disabled for this domain"
msgstr "Nedaří se přidat USB rozbočovač: USB je pro tuto doménu vypnuté"
@@ -5073,6 +5076,12 @@ msgstr "Stávající:"
msgid "Custom loader requires explicit %s configuration"
msgstr "Uživatelsky určený zavaděč vyžaduje výslovné nastavení %s"
msgid "D-Bus audio is not supported with this QEMU"
msgstr ""
msgid "D-Bus p2p with an address is not supported"
msgstr ""
msgid "DAC imagelabel couldn't be determined"
msgstr "nepodařilo se zjistit DAC imagelabel"
@@ -7734,6 +7743,10 @@ msgstr "Nezdařilo se otevření tty %s"
msgid "Failed to parse %s: only com1 and com2 supported."
msgstr "Nepodařilo se zpracovat %s: podporováno pouze com1 a com2."
#, c-format
msgid "Failed to parse CCW address '%s'"
msgstr ""
#, c-format
msgid "Failed to parse MAC address from '%s'"
msgstr "Nepodařilo se zpracovat MAC adresu z „%s“"
@@ -8012,10 +8025,6 @@ msgstr "Nepodařilo se uvolnit zámek"
msgid "Failed to release lock: %s"
msgstr "Nepodařilo se uvolnit zámek: %s"
#, c-format
msgid "Failed to release port %d"
msgstr "Nepodařilo se uvolnit port %d"
#, c-format
msgid "Failed to remove capability %s: %d"
msgstr "Nepodařilo se odebrat schopnost %s: %d"
@@ -9007,6 +9016,10 @@ msgstr "Získat nebo nastavit systémový čas domény"
msgid "Gets statistics about one or more (or all) domains"
msgstr "Získat statistiky o jedné nebo více (nebo všech) doménách"
#, c-format
msgid "Global feature %d should have already been handled"
msgstr ""
msgid "Got empty feature list from resctrl"
msgstr "Získán prázdný seznam funkcí z resctrl"
@@ -9052,9 +9065,6 @@ msgstr ""
msgid "HTM configuration is not supported by this QEMU binary"
msgstr "Nastavování HTM není touto binárkou QEMU podporováno"
msgid "HTP resizing is not supported by this QEMU binary"
msgstr "HTP změna velikosti není touto QEMU binárkou podporována"
#, c-format
msgid "HTTP response code %d for call to '%s'"
msgstr "Kód HTTP odpovědi %d na volání do „%s“"
@@ -9269,10 +9279,22 @@ msgstr "IOMMU zařízení: %s není podporováno touto binárkou QEMU"
msgid "IOMMU device: '%s' is only supported with ARM Virt machines"
msgstr "zařízení IOMMU: „%s“ je podporováno pouze u ARM virt. strojů"
#, c-format
msgid "IOMMU device: '%s' is only supported with Q35 and ARM Virt machines"
msgstr ""
#, c-format
msgid "IOMMU device: '%s' is only supported with Q35 machines"
msgstr "zařízení IOMMU: „%s“ je podporováno pouze u Q35 strojů"
#, c-format
msgid "IOMMU device: '%s' needs a PCI address"
msgstr ""
#, c-format
msgid "IOMMU device: '%s' requires ACPI"
msgstr ""
msgid "IOMMU eim requires interrupt remapping to be enabled"
msgstr "IOMMU eim vyžaduje, aby bylo zapnuté přemapovávání přerušení"
@@ -10231,7 +10253,7 @@ msgid "Invalid parameter type passed to free"
msgstr "free předán neplatný typ parametru"
#, c-format
msgid "Invalid parameters: %d"
msgid "Invalid parameters macaddr=%p allowRetry=%p"
msgstr ""
msgid "Invalid partial specification for virtio ccw address"
@@ -11560,18 +11582,9 @@ msgstr ""
"Chybějící nebo neplatný prvek %zu v 'vlan-table' poli v odpovědi query-rx-"
"filter"
msgid "Missing or invalid fd in add-fd response"
msgstr ""
msgid "Missing or invalid fdset-id in add-fd response"
msgstr ""
msgid "Missing or invalid name in query-rx-filter response"
msgstr "Chybějící nebo neplatný název pro odpověď query-rx-filter"
msgid "Missing or invalid return data in add-fd response"
msgstr ""
msgid "Missing or invalid scsi adapter 'unique_id' value"
msgstr ""
"Chybějící nebo neplatná hodnota 'unique_id' (neopakující se identifikátor) "
@@ -12888,6 +12901,9 @@ msgid "Only one primary video device is supported"
msgstr ""
"V rámci jednoho stroje je podporováno pouze jedno hlavní video zařízení"
msgid "Only one vgpu device can have 'ramfb' enabled"
msgstr ""
msgid "Only ploop disk images are supported by vz driver."
msgstr "Ovladačem vz jsou podporovány pouze ploop diskové obrazy."
@@ -14811,6 +14827,9 @@ msgstr "Určuje zda stránky z rozdílných numa uzlů mohou být sloučeny"
msgid "Specifying mount point is not supported for now"
msgstr "Prozatím není určení přípojného bodu podporováno"
msgid "Spice audio is not supported without spice graphics"
msgstr ""
msgid "Start"
msgstr "Spustit"
@@ -16025,6 +16044,9 @@ msgstr "Spustitelný soubor QEMU %s nepodporuje TPM model %s"
msgid "The XML configuration was changed by another user."
msgstr "XML nastavení bylo změněno jiným uživatelem."
msgid "The associated audio is not of 'dbus' kind."
msgstr ""
#, c-format
msgid "The certificate %s basic constraints do not show a CA"
msgstr "Základní omezení certifikátu %s nezobrazují cert. autoritu"
@@ -16088,6 +16110,10 @@ msgid ""
msgstr ""
"Zařízení na PCI adrese %s má nerozpoznané příznaky typu připojení 0x%.2x"
#, c-format
msgid "The device at PCI address %s needs to be an integrated device (bus=0)"
msgstr ""
#, c-format
msgid ""
"The device at PCI address %s requires hotplug capability, but the PCI "
@@ -16707,10 +16733,6 @@ msgstr "Nedaří se přistupovat k souboru s nastaveními %s"
msgid "Unable to access file descriptor %d"
msgstr "Nedaří se přistupovat k popisovači souboru %d"
#, c-format
msgid "Unable to access file descriptor %d path %s"
msgstr ""
#, fuzzy
msgid "Unable to access kernel32.dll"
msgstr "Nedaří se přistoupit k %s"
@@ -20652,6 +20674,13 @@ msgstr ""
msgid "authentication failed: %s"
msgstr "ověření se nezdařilo: %s"
#, c-format
msgid "authentication is not supported for protocol '%s'"
msgstr ""
msgid "authentication is supported only for network backed disks"
msgstr ""
msgid "authentication required"
msgstr "je požadováno ověření"
@@ -22904,6 +22933,14 @@ msgstr "v informacích o znakovém zařízení chyběl štítek"
msgid "character device name"
msgstr "název znakového zařízení"
#, c-format
msgid "chardev '%s' not supported in this QEMU binary"
msgstr ""
#, c-format
msgid "chardev '%s' not supported without spice graphics"
msgstr ""
msgid "chardev already exists"
msgstr "znakové zařízení už existuje"
@@ -24240,9 +24277,6 @@ msgstr "v informacích o dimm paměti chybí „id“ (identifikátor)"
msgid "dir"
msgstr "složka"
msgid "direct FD passing supports only 1 file descriptor"
msgstr ""
msgid "direct migration"
msgstr "přímá migrace"
@@ -25124,6 +25158,9 @@ msgstr "je třeba, aby formát šifrování vstupního svazku byl LUKS"
msgid "encryption is not supported with vhostuser disk"
msgstr ""
msgid "encryption is supported only with 'raw' and 'qcow2' image format"
msgstr ""
#, c-format
msgid "end of range %s - %s in network %s/%d is the broadcast address"
msgstr "konec rozsahu %s - %s v síti %s/%d je broadcast adresa"
@@ -25796,8 +25833,8 @@ msgid "failed to create a new XML namespace"
msgstr "nepodařilo se vytvořit nový XML jmenný prostor"
#, c-format
msgid "failed to create channel dir '%s': %s"
msgstr "nepodařilo se vytvořit složku kanálu „%s“: %s"
msgid "failed to create channel dir '%s'"
msgstr ""
msgid "failed to create connection to CH socket"
msgstr ""
@@ -25810,8 +25847,8 @@ msgid "failed to create directory '%s'"
msgstr "nepodařilo se vytvořit složku „%s“"
#, c-format
msgid "failed to create dump dir '%s': %s"
msgstr "Nepodařilo se vytvořit složku pro výpisy „%s“: %s"
msgid "failed to create dump dir '%s'"
msgstr ""
#, c-format
msgid "failed to create glfs object for '%s'"
@@ -25831,16 +25868,16 @@ msgid "failed to create json"
msgstr "nepodařilo se vytvořit json"
#, c-format
msgid "failed to create lib dir '%s': %s"
msgstr "nepodařilo se vytvořit složku knihovny „%s“: %s"
msgid "failed to create lib dir '%s'"
msgstr ""
#, c-format
msgid "failed to create libssh channel: %s"
msgstr "nepodařilo se vytvořit kanál libssh: %s"
#, c-format
msgid "failed to create log dir '%s': %s"
msgstr "nepodařilo se vytvořit složku pro záznam událostí „%s“: %s"
msgid "failed to create log dir '%s'"
msgstr ""
#, c-format
msgid "failed to create logfile %s"
@@ -25853,8 +25890,8 @@ msgid "failed to create profile"
msgstr "nepodařilo se vytvořit profil"
#, c-format
msgid "failed to create save dir '%s': %s"
msgstr "nepodařilo se vytvořit složku ukládání „%s“: %s"
msgid "failed to create save dir '%s'"
msgstr ""
msgid "failed to create socket"
msgstr "nepodařilo se vytvořit soket"
@@ -25868,8 +25905,8 @@ msgid "failed to create socketpair"
msgstr "nepodařilo se vytvořit soket"
#, c-format
msgid "failed to create state dir '%s': %s"
msgstr "nepodařilo se vytvořit stavovou složku „%s“: %s"
msgid "failed to create state dir '%s'"
msgstr ""
msgid "failed to create the RADOS cluster"
msgstr "nepodařilo se vytvořit RADOS cluster"
@@ -26386,6 +26423,9 @@ msgstr "nepodařilo se zpracovat adresu vícesměrového vysílání z „%s“"
msgid "failed to parse node name index"
msgstr "nepodařilo se zpracovat rejstřík názvů uzlů"
msgid "failed to parse original memlock size"
msgstr ""
#, c-format
msgid "failed to parse port number '%s'"
msgstr "nepodařilo se zpracovat číslo portu „%s“"
@@ -26849,6 +26889,10 @@ msgstr "je třeba, aby popisovač souboru byl platný"
msgid "fd passing is not supported by this connection"
msgstr "předávání popisovače souboru není tímto spojením podporováno"
#, c-format
msgid "fdset '%u' is already in use by qemu"
msgstr ""
msgid "fetch or set the currently defined set of logging filters on daemon"
msgstr ""
"získat nebo nastavit nyní definovanou sadu filtrů záznamu událostí na "
@@ -28435,9 +28479,6 @@ msgstr "neplatná akce selhání: „%s“\n"
msgid "invalid fd %d for %s"
msgstr "neplatný popisovač souboru %d pro %s"
msgid "invalid file descriptor"
msgstr ""
msgid "invalid flag"
msgstr "neplatný příznak"
@@ -29014,10 +29055,10 @@ msgstr "volání knihovny se nezdařilo"
msgid "library call failed: %s"
msgstr "volání knihovny se nezdařilo: %s"
msgid "librbd encryption engine only supports luks/luks2 formats"
msgid "librbd encryption is not supported by this QEMU binary"
msgstr ""
msgid "librbd encryption is not supported by this QEMU binary"
msgid "librbd encryption is supported only with RBD backed disks"
msgstr ""
msgid "libssh transport error"
@@ -30299,6 +30340,9 @@ msgstr "v souboru „%s“ SELinux lxc kontextu chybí hodnota 'process'"
msgid "missing 'server' attribute in JSON backing definition for NFS volume"
msgstr ""
msgid "missing 'start' attribute for clock with offset='absolute'"
msgstr ""
#, c-format
msgid ""
"missing 'start' attribute in <address> element in <nat> in <forward> in "
@@ -30814,6 +30858,9 @@ msgstr ""
msgid "missing path for <reservations/>"
msgstr "chybí popis umístění pro <reservations/>"
msgid "missing path to restore from"
msgstr ""
msgid "missing per-device path"
msgstr "chybí popis umístění per-device"
@@ -31049,6 +31096,10 @@ msgstr "chybí hodnota ssid pro „%s“"
msgid "missing value for migration parameter '%s'"
msgstr "chybí hodnota pro parametr stěhování „%s“"
#, fuzzy
msgid "missing values for acceleration"
msgstr "chybí popis umístění pro <reservations/>"
msgid "missing vendor"
msgstr "chybí výrobce"
@@ -32474,10 +32525,9 @@ msgid "only 'pci' addresses are supported for the virtio-pmem device"
msgstr ""
msgid ""
"only 1 graphics device of each type (sdl, vnc, spice, headless) is supported"
"only 1 graphics device of each type (sdl, vnc, spice, headless, dbus) is "
"supported"
msgstr ""
"je podporováno pouze jediné grafické zařízení každého z typů (sdl, vnc, "
"spice, headless)"
msgid "only JSON objects can be top level"
msgstr "na nejvyšší úrovni mohou být pouze JSON objekty"
@@ -33009,9 +33059,8 @@ msgstr "ovladač pci podpůrné vrstvy „%s“ není podporován"
msgid "pci device %s is not a PCI-Express device"
msgstr "pci zařízení %s není PCI-Express zařízení"
msgid "pci device assignment backend driver (e.g. 'vfio' or 'kvm')"
msgid "pci device assignment backend driver (e.g. 'vfio' or 'xen')"
msgstr ""
"podpůrná vrstva ovladače přidělování pci zařízení (nap. „vfio“ nebo „kvm“)"
msgid ""
"pci-expander-bus controllers are only supported on 440fx-based machinetypes"
@@ -33367,6 +33416,9 @@ msgstr "vypsat informace o zápůjčkách dané sítě"
msgid "print statistics for any kind of job (even failed ones)"
msgstr ""
msgid "print the XML used to start the copy job instead of starting the job"
msgstr ""
msgid "print the admin server URI"
msgstr "vypsat URI adresu správního serveru"
@@ -33428,7 +33480,7 @@ msgstr "neshoda programu v události (skutečný 0x%x, očekáváno 0x%x)"
msgid "prohibited character in DNS TXT record name '%s' of network %s"
msgstr "nepovolený znak v názvu DNS záznamu TXT „%s“ sítě %s"
msgid "property with name 'id' can't be overriden"
msgid "property with name 'id' can't be overridden"
msgstr ""
#, c-format
@@ -33612,9 +33664,6 @@ msgstr ""
msgid "query-fdsets reply was missing 'fdset-id'"
msgstr ""
msgid "query-fdsets return data missing 'fd'"
msgstr ""
msgid "query-fdsets return data missing fd array element"
msgstr ""
@@ -33931,6 +33980,9 @@ msgstr ""
"odebrat související svazky úložiště (čárkou oddělovaný seznam cílů nebo "
"zdrojových popisů umístění) (viz domblklist)"
msgid "remove domain logs"
msgstr ""
msgid "remove domain managed state file"
msgstr "odebrat stavový soubor správy domény"
@@ -34331,9 +34383,6 @@ msgstr "ukládání domény „%s“ na „%s“: nepodařilo se zapsat"
msgid "sbbc configuration is not supported by this QEMU binary"
msgstr "Nastavování HTM není touto binárkou QEMU podporováno"
msgid "scheduler information is not supported on this platform"
msgstr ""
#, c-format
msgid "scheme and host are mandatory vz migration URI: %s"
msgstr "schéma a stroj jsou povinné vz URI stěhování: %s"
@@ -34451,8 +34500,10 @@ msgstr "model zabezpečení překračuje maximum: %zu"
msgid "security model string exceeds max %d bytes"
msgstr "řetězec modelu zabezpečení přesahuje maximálních %d bajtů"
msgid "select particular graphical display (e.g. \"vnc\", \"spice\", \"rdp\")"
msgstr "vybrat konkrétní grafický displej (např. „vnc“, „spice“, „rdp“)"
msgid ""
"select particular graphical display (e.g. \"vnc\", \"spice\", \"rdp\", \"dbus"
"\")"
msgstr ""
msgid "send handler failed"
msgstr "obsluha odeslání se nezdařila"
@@ -36313,6 +36364,10 @@ msgstr ""
"není možné smazat rozhraní „%s“ v síti „%s“. V tuto chvíli je využíváno %d "
"doménami."
#, c-format
msgid "unable to determine access mode of %s"
msgstr ""
msgid "unable to determine if checkpoint has parent"
msgstr "nedaří se zjistit, zda kontrolní bod má nadřazený"
@@ -36634,6 +36689,9 @@ msgstr "nedaří se nastavit vlastnictví „%s“ na %d:%d"
msgid "unable to set ownership of '%s' to user %d:%d"
msgstr "nedaří se nastavit vlastnictví „%s“ na uživatele %d:%d"
msgid "unable to set pipe size"
msgstr ""
#, c-format
msgid "unable to set security context '%s'"
msgstr "nedaří se nastavit kontext zabezpečení „%s“"
@@ -36673,6 +36731,10 @@ msgstr ""
msgid "unable to stat block copy target '%s'"
msgstr "nedaří se zjistit stav cíle „%s“ blokového kopírování"
#, c-format
msgid "unable to stat file descriptor %d path %s"
msgstr ""
#, c-format
msgid "unable to stat for disk %s: %s"
msgstr "nedaří se zjistit stav pro disk %s: %s"
@@ -38568,6 +38630,9 @@ msgstr "virDomainManagedSaveGetXMLDesc s příznakem zabezpečení"
msgid "virDomainSnapshotGetXMLDesc with secure flag"
msgstr "virDomainSnapshotGetXMLDesc s příznakem zabezpečení"
msgid "virFileDiskCopy unsupported on this platform"
msgstr ""
msgid "virFileOpenAs is not implemented for WIN32"
msgstr "virFileOpenAs není pro WIN32 implementováno"
@@ -38656,6 +38721,12 @@ msgstr "virtio disk nemůže mít adresu typu „%s“"
msgid "virtio non-transitional model not supported for this qemu"
msgstr "virtio ne-přechodný model není tímto qemu podporován"
msgid "virtio rss hash report is not supported with this QEMU binary"
msgstr ""
msgid "virtio rss is not supported with this QEMU binary"
msgstr ""
#, c-format
msgid "virtio rx_queue_size option %d is not same with tx_queue_size %d"
msgstr ""
@@ -39158,6 +39229,54 @@ msgstr "zóna %s vyžadována pro sít %s, ale firewalld není aktivní"
msgid "{[--%s] <string>}..."
msgstr "{[--%s] <řetězec>}…"
#~ msgid "%s: unable to determine access mode of fd %d"
#~ msgstr "%s: nedaří se zjistit režim přístupu popisovače souboru %d"
#~ msgid "Can only open VNC or SPICE graphics backends, not %s"
#~ msgstr "Může otevřít pouze VNC nebo SPICE grafické podpůrné vrstvy, ne %s"
#~ msgid "Failed to release port %d"
#~ msgstr "Nepodařilo se uvolnit port %d"
#~ msgid ""
#~ "only 1 graphics device of each type (sdl, vnc, spice, headless) is "
#~ "supported"
#~ msgstr ""
#~ "je podporováno pouze jediné grafické zařízení každého z typů (sdl, vnc, "
#~ "spice, headless)"
#~ msgid ""
#~ "select particular graphical display (e.g. \"vnc\", \"spice\", \"rdp\")"
#~ msgstr "vybrat konkrétní grafický displej (např. „vnc“, „spice“, „rdp“)"
#~ msgid "%s: failed to communicate with bridge helper: %s%s"
#~ msgstr "%s: nepodařilo se komunikovat s helper mostu: %s%s"
#~ msgid "HTP resizing is not supported by this QEMU binary"
#~ msgstr "HTP změna velikosti není touto QEMU binárkou podporována"
#~ msgid "failed to create channel dir '%s': %s"
#~ msgstr "nepodařilo se vytvořit složku kanálu „%s“: %s"
#~ msgid "failed to create dump dir '%s': %s"
#~ msgstr "Nepodařilo se vytvořit složku pro výpisy „%s“: %s"
#~ msgid "failed to create lib dir '%s': %s"
#~ msgstr "nepodařilo se vytvořit složku knihovny „%s“: %s"
#~ msgid "failed to create log dir '%s': %s"
#~ msgstr "nepodařilo se vytvořit složku pro záznam událostí „%s“: %s"
#~ msgid "failed to create save dir '%s': %s"
#~ msgstr "nepodařilo se vytvořit složku ukládání „%s“: %s"
#~ msgid "failed to create state dir '%s': %s"
#~ msgstr "nepodařilo se vytvořit stavovou složku „%s“: %s"
#~ msgid "pci device assignment backend driver (e.g. 'vfio' or 'kvm')"
#~ msgstr ""
#~ "podpůrná vrstva ovladače přidělování pci zařízení (nap. „vfio“ nebo „kvm“)"
#~ msgid "Call to utsname failed: %d"
#~ msgstr "Volání do utsname se nezdařilo: %d"
@@ -39334,10 +39453,6 @@ msgstr "{[--%s] <řetězec>}…"
#~ msgid "missing boot device"
#~ msgstr "chybí zařízení ze kterého má být zaváděn systému"
#, fuzzy
#~ msgid "missing values for acceleration"
#~ msgstr "chybí popis umístění pro <reservations/>"
#~ msgid "sgio of shared disk '%s' conflicts with other active domains"
#~ msgstr "sgio sdíleného disku '%s' koliduje s ostatními aktivními doménami"

234
po/da.po
View File

@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 6.0.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2022-03-28 11:25+0000\n"
"POT-Creation-Date: 2022-05-25 19:40+0000\n"
"PO-Revision-Date: 2015-02-26 08:52+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Danish (http://www.transifex.com/projects/p/fedora/language/"
@@ -745,7 +745,7 @@ msgid "%s: expected an unsigned integer for '%s' parameter"
msgstr ""
#, c-format
msgid "%s: failed to communicate with bridge helper: %s%s"
msgid "%s: failed to communicate with bridge helper: %s"
msgstr ""
#, fuzzy, c-format
@@ -847,10 +847,6 @@ msgstr ""
msgid "%s: try --help for more details\n"
msgstr ""
#, c-format
msgid "%s: unable to determine access mode of fd %d"
msgstr ""
#, c-format
msgid "%s: unexpected URI transport '%s'\n"
msgstr ""
@@ -905,6 +901,10 @@ msgstr ""
msgid "'%s'"
msgstr ""
#, c-format
msgid "'%s' D-Bus address is not handled"
msgstr ""
#, c-format
msgid "'%s' architecture is not supported by CPU driver"
msgstr ""
@@ -1094,6 +1094,9 @@ msgstr ""
msgid "'netns' namespace source can only be used with sharenet"
msgstr ""
msgid "'network' attribute is required for listen type 'network'"
msgstr ""
msgid "'network' attribute is valid only for listen type 'network'"
msgstr ""
@@ -2221,7 +2224,7 @@ msgid "Can only modify disk quota"
msgstr ""
#, c-format
msgid "Can only open VNC or SPICE graphics backends, not %s"
msgid "Can only open VNC, SPICE or D-Bus p2p graphics backends, not %s"
msgstr ""
msgid "Can't add USB hub: USB is disabled for this domain"
@@ -4755,6 +4758,12 @@ msgstr ""
msgid "Custom loader requires explicit %s configuration"
msgstr ""
msgid "D-Bus audio is not supported with this QEMU"
msgstr ""
msgid "D-Bus p2p with an address is not supported"
msgstr ""
msgid "DAC imagelabel couldn't be determined"
msgstr ""
@@ -7404,6 +7413,10 @@ msgstr "Kunne ikke suspendere domæne %s"
msgid "Failed to parse %s: only com1 and com2 supported."
msgstr ""
#, c-format
msgid "Failed to parse CCW address '%s'"
msgstr ""
#, fuzzy, c-format
msgid "Failed to parse MAC address from '%s'"
msgstr "Kunne ikke genetablere domæne fra %s"
@@ -7697,10 +7710,6 @@ msgstr "Kunne ikke fortsætte domæne %s"
msgid "Failed to release lock: %s"
msgstr "Kunne ikke fortsætte domæne %s"
#, fuzzy, c-format
msgid "Failed to release port %d"
msgstr "Kunne ikke fortsætte domæne %s"
#, fuzzy, c-format
msgid "Failed to remove capability %s: %d"
msgstr "kunne ikke få fat på faciliteter"
@@ -8659,6 +8668,10 @@ msgstr ""
msgid "Gets statistics about one or more (or all) domains"
msgstr ""
#, c-format
msgid "Global feature %d should have already been handled"
msgstr ""
msgid "Got empty feature list from resctrl"
msgstr ""
@@ -8701,9 +8714,6 @@ msgstr ""
msgid "HTM configuration is not supported by this QEMU binary"
msgstr ""
msgid "HTP resizing is not supported by this QEMU binary"
msgstr ""
#, c-format
msgid "HTTP response code %d for call to '%s'"
msgstr ""
@@ -8909,10 +8919,22 @@ msgstr ""
msgid "IOMMU device: '%s' is only supported with ARM Virt machines"
msgstr ""
#, c-format
msgid "IOMMU device: '%s' is only supported with Q35 and ARM Virt machines"
msgstr ""
#, c-format
msgid "IOMMU device: '%s' is only supported with Q35 machines"
msgstr ""
#, c-format
msgid "IOMMU device: '%s' needs a PCI address"
msgstr ""
#, c-format
msgid "IOMMU device: '%s' requires ACPI"
msgstr ""
msgid "IOMMU eim requires interrupt remapping to be enabled"
msgstr ""
@@ -9821,7 +9843,7 @@ msgid "Invalid parameter type passed to free"
msgstr ""
#, c-format
msgid "Invalid parameters: %d"
msgid "Invalid parameters macaddr=%p allowRetry=%p"
msgstr ""
msgid "Invalid partial specification for virtio ccw address"
@@ -11104,18 +11126,9 @@ msgid ""
"response"
msgstr ""
msgid "Missing or invalid fd in add-fd response"
msgstr ""
msgid "Missing or invalid fdset-id in add-fd response"
msgstr ""
msgid "Missing or invalid name in query-rx-filter response"
msgstr ""
msgid "Missing or invalid return data in add-fd response"
msgstr ""
msgid "Missing or invalid scsi adapter 'unique_id' value"
msgstr ""
@@ -12393,6 +12406,9 @@ msgstr ""
msgid "Only one primary video device is supported"
msgstr ""
msgid "Only one vgpu device can have 'ramfb' enabled"
msgstr ""
msgid "Only ploop disk images are supported by vz driver."
msgstr ""
@@ -14244,6 +14260,9 @@ msgstr ""
msgid "Specifying mount point is not supported for now"
msgstr ""
msgid "Spice audio is not supported without spice graphics"
msgstr ""
msgid "Start"
msgstr ""
@@ -15386,6 +15405,9 @@ msgstr ""
msgid "The XML configuration was changed by another user."
msgstr ""
msgid "The associated audio is not of 'dbus' kind."
msgstr ""
#, c-format
msgid "The certificate %s basic constraints do not show a CA"
msgstr ""
@@ -15442,6 +15464,10 @@ msgid ""
"The device at PCI address %s has unrecognized connection type flags 0x%.2x"
msgstr ""
#, c-format
msgid "The device at PCI address %s needs to be an integrated device (bus=0)"
msgstr ""
#, c-format
msgid ""
"The device at PCI address %s requires hotplug capability, but the PCI "
@@ -16045,10 +16071,6 @@ msgstr "kunne ikke analysere konfigurationsfilen %s"
msgid "Unable to access file descriptor %d"
msgstr ""
#, c-format
msgid "Unable to access file descriptor %d path %s"
msgstr ""
msgid "Unable to access kernel32.dll"
msgstr ""
@@ -19930,6 +19952,13 @@ msgstr ""
msgid "authentication failed: %s"
msgstr "operation mislykkedes: %s"
#, c-format
msgid "authentication is not supported for protocol '%s'"
msgstr ""
msgid "authentication is supported only for network backed disks"
msgstr ""
msgid "authentication required"
msgstr ""
@@ -22108,6 +22137,14 @@ msgstr "mangler rodenhedsinformation i %s"
msgid "character device name"
msgstr ""
#, c-format
msgid "chardev '%s' not supported in this QEMU binary"
msgstr ""
#, c-format
msgid "chardev '%s' not supported without spice graphics"
msgstr ""
msgid "chardev already exists"
msgstr ""
@@ -23414,9 +23451,6 @@ msgstr ""
msgid "dir"
msgstr ""
msgid "direct FD passing supports only 1 file descriptor"
msgstr ""
#, fuzzy
msgid "direct migration"
msgstr "knudeinformation"
@@ -24302,6 +24336,9 @@ msgstr ""
msgid "encryption is not supported with vhostuser disk"
msgstr ""
msgid "encryption is supported only with 'raw' and 'qcow2' image format"
msgstr ""
#, c-format
msgid "end of range %s - %s in network %s/%d is the broadcast address"
msgstr ""
@@ -24972,9 +25009,9 @@ msgstr "Kunne ikke oprette domæne fra %s"
msgid "failed to create a new XML namespace"
msgstr "Kunne ikke oprette netværk fra %s"
#, fuzzy, c-format
msgid "failed to create channel dir '%s': %s"
msgstr "Kunne ikke oprette domæne fra %s"
#, c-format
msgid "failed to create channel dir '%s'"
msgstr ""
msgid "failed to create connection to CH socket"
msgstr ""
@@ -24987,9 +25024,9 @@ msgstr "kunne ikke gemme indhold"
msgid "failed to create directory '%s'"
msgstr "kunne ikke hente netværk '%s'"
#, fuzzy, c-format
msgid "failed to create dump dir '%s': %s"
msgstr "Kunne ikke udskrive domæne %s fra hukommelsen til %s"
#, c-format
msgid "failed to create dump dir '%s'"
msgstr ""
#, c-format
msgid "failed to create glfs object for '%s'"
@@ -25010,17 +25047,17 @@ msgstr "kunne ikke åbne fil"
msgid "failed to create json"
msgstr "kunne ikke gemme indhold"
#, fuzzy, c-format
msgid "failed to create lib dir '%s': %s"
msgstr "kunne ikke hente domæne '%s'"
#, c-format
msgid "failed to create lib dir '%s'"
msgstr ""
#, fuzzy, c-format
msgid "failed to create libssh channel: %s"
msgstr "Kunne ikke oprette domæne fra %s"
#, fuzzy, c-format
msgid "failed to create log dir '%s': %s"
msgstr "kunne ikke hente domæne '%s'"
#, c-format
msgid "failed to create log dir '%s'"
msgstr ""
#, fuzzy, c-format
msgid "failed to create logfile %s"
@@ -25033,9 +25070,9 @@ msgstr ""
msgid "failed to create profile"
msgstr "kunne ikke åbne fil"
#, fuzzy, c-format
msgid "failed to create save dir '%s': %s"
msgstr "Kunne ikke gemme domæne %s til %s"
#, c-format
msgid "failed to create save dir '%s'"
msgstr ""
#, fuzzy
msgid "failed to create socket"
@@ -25049,9 +25086,9 @@ msgstr "Kunne ikke oprette domæne fra %s"
msgid "failed to create socketpair"
msgstr "Kunne ikke oprette domæne fra %s"
#, fuzzy, c-format
msgid "failed to create state dir '%s': %s"
msgstr "Kunne ikke oprette domæne fra %s"
#, c-format
msgid "failed to create state dir '%s'"
msgstr ""
#, fuzzy
msgid "failed to create the RADOS cluster"
@@ -25591,6 +25628,9 @@ msgstr "Kunne ikke oprette domæne fra %s"
msgid "failed to parse node name index"
msgstr "kunne ikke få knudeinformation"
msgid "failed to parse original memlock size"
msgstr ""
#, fuzzy, c-format
msgid "failed to parse port number '%s'"
msgstr "kunne ikke hente netværk '%s'"
@@ -26076,6 +26116,10 @@ msgstr ""
msgid "fd passing is not supported by this connection"
msgstr ""
#, c-format
msgid "fdset '%u' is already in use by qemu"
msgstr ""
msgid "fetch or set the currently defined set of logging filters on daemon"
msgstr ""
@@ -27593,9 +27637,6 @@ msgstr ""
msgid "invalid fd %d for %s"
msgstr "ugyldig domænepeger i %s"
msgid "invalid file descriptor"
msgstr ""
msgid "invalid flag"
msgstr ""
@@ -28157,10 +28198,10 @@ msgstr ""
msgid "library call failed: %s"
msgstr "operation mislykkedes: %s"
msgid "librbd encryption engine only supports luks/luks2 formats"
msgid "librbd encryption is not supported by this QEMU binary"
msgstr ""
msgid "librbd encryption is not supported by this QEMU binary"
msgid "librbd encryption is supported only with RBD backed disks"
msgstr ""
msgid "libssh transport error"
@@ -29418,6 +29459,9 @@ msgstr ""
msgid "missing 'server' attribute in JSON backing definition for NFS volume"
msgstr ""
msgid "missing 'start' attribute for clock with offset='absolute'"
msgstr ""
#, c-format
msgid ""
"missing 'start' attribute in <address> element in <nat> in <forward> in "
@@ -29936,6 +29980,9 @@ msgstr ""
msgid "missing path for <reservations/>"
msgstr ""
msgid "missing path to restore from"
msgstr ""
#, fuzzy
msgid "missing per-device path"
msgstr "mangler enhedsinformation"
@@ -30182,6 +30229,10 @@ msgstr "mangler kildeinformation for enhed %s"
msgid "missing value for migration parameter '%s'"
msgstr "mangler kildeinformation for enhed %s"
#, fuzzy
msgid "missing values for acceleration"
msgstr "mangler enhedsinformation"
#, fuzzy
msgid "missing vendor"
msgstr "mangler \""
@@ -31566,7 +31617,8 @@ msgid "only 'pci' addresses are supported for the virtio-pmem device"
msgstr ""
msgid ""
"only 1 graphics device of each type (sdl, vnc, spice, headless) is supported"
"only 1 graphics device of each type (sdl, vnc, spice, headless, dbus) is "
"supported"
msgstr ""
msgid "only JSON objects can be top level"
@@ -32082,7 +32134,7 @@ msgstr ""
msgid "pci device %s is not a PCI-Express device"
msgstr ""
msgid "pci device assignment backend driver (e.g. 'vfio' or 'kvm')"
msgid "pci device assignment backend driver (e.g. 'vfio' or 'xen')"
msgstr ""
msgid ""
@@ -32426,6 +32478,9 @@ msgstr ""
msgid "print statistics for any kind of job (even failed ones)"
msgstr ""
msgid "print the XML used to start the copy job instead of starting the job"
msgstr ""
msgid "print the admin server URI"
msgstr ""
@@ -32489,7 +32544,7 @@ msgstr ""
msgid "prohibited character in DNS TXT record name '%s' of network %s"
msgstr ""
msgid "property with name 'id' can't be overriden"
msgid "property with name 'id' can't be overridden"
msgstr ""
#, c-format
@@ -32664,9 +32719,6 @@ msgstr ""
msgid "query-fdsets reply was missing 'fdset-id'"
msgstr ""
msgid "query-fdsets return data missing 'fd'"
msgstr ""
msgid "query-fdsets return data missing fd array element"
msgstr ""
@@ -32954,6 +33006,9 @@ msgid ""
"paths) (see domblklist)"
msgstr ""
msgid "remove domain logs"
msgstr ""
#, fuzzy
msgid "remove domain managed state file"
msgstr "genetablér et domæne fra et gemt tilstand i en fil"
@@ -33352,9 +33407,6 @@ msgstr "gem en domænetilstand på en fil"
msgid "sbbc configuration is not supported by this QEMU binary"
msgstr ""
msgid "scheduler information is not supported on this platform"
msgstr ""
#, c-format
msgid "scheme and host are mandatory vz migration URI: %s"
msgstr ""
@@ -33467,7 +33519,9 @@ msgstr ""
msgid "security model string exceeds max %d bytes"
msgstr ""
msgid "select particular graphical display (e.g. \"vnc\", \"spice\", \"rdp\")"
msgid ""
"select particular graphical display (e.g. \"vnc\", \"spice\", \"rdp\", \"dbus"
"\")"
msgstr ""
msgid "send handler failed"
@@ -35217,6 +35271,10 @@ msgid ""
"by %d domains."
msgstr ""
#, c-format
msgid "unable to determine access mode of %s"
msgstr ""
msgid "unable to determine if checkpoint has parent"
msgstr ""
@@ -35545,6 +35603,9 @@ msgstr ""
msgid "unable to set ownership of '%s' to user %d:%d"
msgstr ""
msgid "unable to set pipe size"
msgstr ""
#, c-format
msgid "unable to set security context '%s'"
msgstr ""
@@ -35584,6 +35645,10 @@ msgstr ""
msgid "unable to stat block copy target '%s'"
msgstr ""
#, c-format
msgid "unable to stat file descriptor %d path %s"
msgstr ""
#, fuzzy, c-format
msgid "unable to stat for disk %s: %s"
msgstr "Kunne ikke starte netværk %s"
@@ -37454,6 +37519,9 @@ msgstr ""
msgid "virDomainSnapshotGetXMLDesc with secure flag"
msgstr ""
msgid "virFileDiskCopy unsupported on this platform"
msgstr ""
msgid "virFileOpenAs is not implemented for WIN32"
msgstr ""
@@ -37539,6 +37607,12 @@ msgstr ""
msgid "virtio non-transitional model not supported for this qemu"
msgstr ""
msgid "virtio rss hash report is not supported with this QEMU binary"
msgstr ""
msgid "virtio rss is not supported with this QEMU binary"
msgstr ""
#, c-format
msgid "virtio rx_queue_size option %d is not same with tx_queue_size %d"
msgstr ""
@@ -38012,6 +38086,34 @@ msgstr ""
msgid "{[--%s] <string>}..."
msgstr "--%s <streng>"
#, fuzzy
#~ msgid "Failed to release port %d"
#~ msgstr "Kunne ikke fortsætte domæne %s"
#, fuzzy
#~ msgid "failed to create channel dir '%s': %s"
#~ msgstr "Kunne ikke oprette domæne fra %s"
#, fuzzy
#~ msgid "failed to create dump dir '%s': %s"
#~ msgstr "Kunne ikke udskrive domæne %s fra hukommelsen til %s"
#, fuzzy
#~ msgid "failed to create lib dir '%s': %s"
#~ msgstr "kunne ikke hente domæne '%s'"
#, fuzzy
#~ msgid "failed to create log dir '%s': %s"
#~ msgstr "kunne ikke hente domæne '%s'"
#, fuzzy
#~ msgid "failed to create save dir '%s': %s"
#~ msgstr "Kunne ikke gemme domæne %s til %s"
#, fuzzy
#~ msgid "failed to create state dir '%s': %s"
#~ msgstr "Kunne ikke oprette domæne fra %s"
#, fuzzy
#~ msgid "Call to utsname failed: %d"
#~ msgstr "operation mislykkedes: %s"
@@ -38056,10 +38158,6 @@ msgstr "--%s <streng>"
#~ msgid "missing boot device"
#~ msgstr "mangler rodenhedsinformation"
#, fuzzy
#~ msgid "missing values for acceleration"
#~ msgstr "mangler enhedsinformation"
#, fuzzy
#~ msgid "swtpm failed to start"
#~ msgstr "Kunne ikke starte domæne %s"

259
po/de.po
View File

@@ -20,7 +20,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 6.0.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2022-03-28 11:25+0000\n"
"POT-Creation-Date: 2022-05-25 19:40+0000\n"
"PO-Revision-Date: 2022-03-19 09:16+0000\n"
"Last-Translator: Tom Wieczorek <tom@bibbu.net>\n"
"Language-Team: German <https://translate.fedoraproject.org/projects/libvirt/"
@@ -838,9 +838,9 @@ msgstr ""
msgid "%s: expected an unsigned integer for '%s' parameter"
msgstr ""
#, fuzzy, c-format
msgid "%s: failed to communicate with bridge helper: %s%s"
msgstr "%s: Konnte nicht in Log-Datei schreiben: %s"
#, c-format
msgid "%s: failed to communicate with bridge helper: %s"
msgstr ""
#, c-format
msgid "%s: failed to read temporary file: %s"
@@ -957,10 +957,6 @@ msgstr "%s: Versuchen Sie --help für mehr Details"
msgid "%s: try --help for more details\n"
msgstr "%s: Versuchen Sie --help für mehr Details\n"
#, c-format
msgid "%s: unable to determine access mode of fd %d"
msgstr "%s: Kann nicht den Zugriffs-Modus von fd %d bestimmen"
#, c-format
msgid "%s: unexpected URI transport '%s'\n"
msgstr ""
@@ -1017,6 +1013,10 @@ msgstr ""
msgid "'%s'"
msgstr "'%s'"
#, c-format
msgid "'%s' D-Bus address is not handled"
msgstr ""
#, c-format
msgid "'%s' architecture is not supported by CPU driver"
msgstr "'%s'-Architektur wird nicht unterstützt vom CPU-Treiber"
@@ -1219,6 +1219,9 @@ msgstr "'online' fehlt in Antwort auf guest-get-vcpus"
msgid "'netns' namespace source can only be used with sharenet"
msgstr ""
msgid "'network' attribute is required for listen type 'network'"
msgstr ""
#, fuzzy
msgid "'network' attribute is valid only for listen type 'network'"
msgstr ""
@@ -2426,8 +2429,8 @@ msgid "Can only modify disk quota"
msgstr "Kann Datenträgerkontingent nur ändern"
#, c-format
msgid "Can only open VNC or SPICE graphics backends, not %s"
msgstr "Kann nur VNC oder SPICE Grafik-Backends öffnen, nicht %s"
msgid "Can only open VNC, SPICE or D-Bus p2p graphics backends, not %s"
msgstr ""
msgid "Can't add USB hub: USB is disabled for this domain"
msgstr "Kann keinen USB-Hub hinzufügen: USB ist für diese Domain deaktiviert"
@@ -5113,6 +5116,12 @@ msgstr "Aktuell:"
msgid "Custom loader requires explicit %s configuration"
msgstr ""
msgid "D-Bus audio is not supported with this QEMU"
msgstr ""
msgid "D-Bus p2p with an address is not supported"
msgstr ""
msgid "DAC imagelabel couldn't be determined"
msgstr ""
@@ -7830,6 +7839,10 @@ msgstr "Öffnen des TTY %s fehlgeschlagen"
msgid "Failed to parse %s: only com1 and com2 supported."
msgstr "Konnte den Wert der URI Komponente %s nicht analysieren"
#, c-format
msgid "Failed to parse CCW address '%s'"
msgstr ""
#, fuzzy, c-format
msgid "Failed to parse MAC address from '%s'"
msgstr "Verarbeiten von uid und gid von '%s' fehlgeschlagen"
@@ -8116,10 +8129,6 @@ msgstr "Sperren Freigabe fehlgeschlagen"
msgid "Failed to release lock: %s"
msgstr "Sperren Freigabe fehlgeschlagen"
#, c-format
msgid "Failed to release port %d"
msgstr "Port %d Freigabe fehlgeschlagen"
#, fuzzy, c-format
msgid "Failed to remove capability %s: %d"
msgstr "Anwenden der Fähigkeiten gescheitert: %d"
@@ -9132,6 +9141,10 @@ msgstr "Hostname der Domain ausgeben"
msgid "Gets statistics about one or more (or all) domains"
msgstr ""
#, c-format
msgid "Global feature %d should have already been handled"
msgstr ""
msgid "Got empty feature list from resctrl"
msgstr ""
@@ -9178,10 +9191,6 @@ msgstr ""
msgid "HTM configuration is not supported by this QEMU binary"
msgstr "nvram Einheit wird von dieser QEMU-Programmdatei nicht unterstützt"
#, fuzzy
msgid "HTP resizing is not supported by this QEMU binary"
msgstr "discard wird von dieser QEMU-Programmdatei nicht unterstützt"
#, c-format
msgid "HTTP response code %d for call to '%s'"
msgstr "HTTP-Antwortcode %d für Aufruf von »%s«"
@@ -9398,10 +9407,22 @@ msgstr "nvram Einheit wird von dieser QEMU-Programmdatei nicht unterstützt"
msgid "IOMMU device: '%s' is only supported with ARM Virt machines"
msgstr ""
#, c-format
msgid "IOMMU device: '%s' is only supported with Q35 and ARM Virt machines"
msgstr ""
#, c-format
msgid "IOMMU device: '%s' is only supported with Q35 machines"
msgstr ""
#, c-format
msgid "IOMMU device: '%s' needs a PCI address"
msgstr ""
#, c-format
msgid "IOMMU device: '%s' requires ACPI"
msgstr ""
msgid "IOMMU eim requires interrupt remapping to be enabled"
msgstr ""
@@ -10351,7 +10372,7 @@ msgid "Invalid parameter type passed to free"
msgstr "Ungültiger Parameter für PrintDlgEx"
#, c-format
msgid "Invalid parameters: %d"
msgid "Invalid parameters macaddr=%p allowRetry=%p"
msgstr ""
msgid "Invalid partial specification for virtio ccw address"
@@ -11737,19 +11758,10 @@ msgid ""
"response"
msgstr ""
msgid "Missing or invalid fd in add-fd response"
msgstr ""
msgid "Missing or invalid fdset-id in add-fd response"
msgstr ""
#, fuzzy
msgid "Missing or invalid name in query-rx-filter response"
msgstr "Fehlender oder ungültiger PVR Wert in CPU-Modell %s"
msgid "Missing or invalid return data in add-fd response"
msgstr ""
#, fuzzy
msgid "Missing or invalid scsi adapter 'unique_id' value"
msgstr "fehlendes oder ungültiges vlan Tag ID Attribut"
@@ -13131,6 +13143,9 @@ msgstr "Nur eine Primär-Video-Einheit wird unterstützt"
msgid "Only one primary video device is supported"
msgstr "Nur eine Primär-Video-Einheit wird unterstützt"
msgid "Only one vgpu device can have 'ramfb' enabled"
msgstr ""
msgid "Only ploop disk images are supported by vz driver."
msgstr ""
@@ -15140,6 +15155,9 @@ msgstr ""
msgid "Specifying mount point is not supported for now"
msgstr "Festlegen Anschlusspunkt ist derzeit nicht unterstützt"
msgid "Spice audio is not supported without spice graphics"
msgstr ""
#, fuzzy
msgid "Start"
msgstr "gestartet"
@@ -16375,6 +16393,9 @@ msgstr "Die QEMU ausführbare Datei %s unterstützt nicht TPM Modell %s"
msgid "The XML configuration was changed by another user."
msgstr "Die XML-Konfiguration wurde von einem anderen Benutzer verändert."
msgid "The associated audio is not of 'dbus' kind."
msgstr ""
#, c-format
msgid "The certificate %s basic constraints do not show a CA"
msgstr "Die grundlegenden Einschränkungen des Zertifikats %s zeigen keine CA"
@@ -16438,6 +16459,10 @@ msgid ""
"The device at PCI address %s has unrecognized connection type flags 0x%.2x"
msgstr ""
#, c-format
msgid "The device at PCI address %s needs to be an integrated device (bus=0)"
msgstr ""
#, c-format
msgid ""
"The device at PCI address %s requires hotplug capability, but the PCI "
@@ -17055,10 +17080,6 @@ msgstr "Konnte nicht auf Konfigurations-Datei %s zugreifen"
msgid "Unable to access file descriptor %d"
msgstr "Konnte nicht auf Datei-Beschreibung %d zugreifen"
#, c-format
msgid "Unable to access file descriptor %d path %s"
msgstr ""
#, fuzzy
msgid "Unable to access kernel32.dll"
msgstr "Kann auf %s nicht zugreifen"
@@ -21139,6 +21160,13 @@ msgstr ""
msgid "authentication failed: %s"
msgstr "Authentifikation gescheitert: %s"
#, c-format
msgid "authentication is not supported for protocol '%s'"
msgstr ""
msgid "authentication is supported only for network backed disks"
msgstr ""
msgid "authentication required"
msgstr "Authentifikation benötigt"
@@ -23425,6 +23453,14 @@ msgstr "Den Charaktergeräte-Informationen fehlte der Dateiname"
msgid "character device name"
msgstr "Charakter-Einheit Name"
#, c-format
msgid "chardev '%s' not supported in this QEMU binary"
msgstr ""
#, c-format
msgid "chardev '%s' not supported without spice graphics"
msgstr ""
msgid "chardev already exists"
msgstr "chardev bereits vorhanden"
@@ -24802,9 +24838,6 @@ msgstr ""
msgid "dir"
msgstr "dir"
msgid "direct FD passing supports only 1 file descriptor"
msgstr ""
msgid "direct migration"
msgstr "Direkte Migration"
@@ -25703,6 +25736,9 @@ msgstr ""
msgid "encryption is not supported with vhostuser disk"
msgstr ""
msgid "encryption is supported only with 'raw' and 'qcow2' image format"
msgstr ""
#, c-format
msgid "end of range %s - %s in network %s/%d is the broadcast address"
msgstr ""
@@ -26381,9 +26417,9 @@ msgstr "Löschen des Snapshot %s fehlgeschlagen"
msgid "failed to create a new XML namespace"
msgstr "Erstellen von XML gescheitert"
#, fuzzy, c-format
msgid "failed to create channel dir '%s': %s"
msgstr "Konnte '%s' nicht erstellen: %s"
#, c-format
msgid "failed to create channel dir '%s'"
msgstr ""
msgid "failed to create connection to CH socket"
msgstr ""
@@ -26396,9 +26432,9 @@ msgstr "Erzeugen eines Sockets gescheitert"
msgid "failed to create directory '%s'"
msgstr "Fehler beim Anlegen des Verzeichnisses '%s'"
#, fuzzy, c-format
msgid "failed to create dump dir '%s': %s"
msgstr "Konnte '%s' nicht erstellen: %s"
#, c-format
msgid "failed to create dump dir '%s'"
msgstr ""
#, c-format
msgid "failed to create glfs object for '%s'"
@@ -26418,17 +26454,17 @@ msgstr "scheiterte die Include-Datei zu Erstellen"
msgid "failed to create json"
msgstr "%s konnte nicht erstellt werden"
#, fuzzy, c-format
msgid "failed to create lib dir '%s': %s"
msgstr "Konnte '%s' nicht erstellen: %s"
#, c-format
msgid "failed to create lib dir '%s'"
msgstr ""
#, fuzzy, c-format
msgid "failed to create libssh channel: %s"
msgstr "Öffnen des SSH-Kanals %s fehlgeschlagen"
#, fuzzy, c-format
msgid "failed to create log dir '%s': %s"
msgstr "Konnte '%s' nicht erstellen: %s"
#, c-format
msgid "failed to create log dir '%s'"
msgstr ""
#, c-format
msgid "failed to create logfile %s"
@@ -26440,9 +26476,9 @@ msgstr ""
msgid "failed to create profile"
msgstr "Profil konnte nicht erstellt werden"
#, fuzzy, c-format
msgid "failed to create save dir '%s': %s"
msgstr "Konnte '%s' nicht erstellen: %s"
#, c-format
msgid "failed to create save dir '%s'"
msgstr ""
msgid "failed to create socket"
msgstr "Erzeugen eines Sockets gescheitert"
@@ -26455,9 +26491,9 @@ msgstr "Socket-Erstellung benötigt für '%s' fehlgeschlagen"
msgid "failed to create socketpair"
msgstr "Erzeugen eines Sockets gescheitert"
#, fuzzy, c-format
msgid "failed to create state dir '%s': %s"
msgstr "Konnte '%s' nicht erstellen: %s"
#, c-format
msgid "failed to create state dir '%s'"
msgstr ""
msgid "failed to create the RADOS cluster"
msgstr "Rados Cluster konnte nicht erstellt werden"
@@ -26990,6 +27026,9 @@ msgstr "Verarbeiten von uid und gid von '%s' fehlgeschlagen"
msgid "failed to parse node name index"
msgstr "Parsen von Blockname %s fehlgeschlagen"
msgid "failed to parse original memlock size"
msgstr ""
#, fuzzy, c-format
msgid "failed to parse port number '%s'"
msgstr "Kann Port Nummer nicht analysieren"
@@ -27468,6 +27507,10 @@ msgstr "fd muss gültig sein"
msgid "fd passing is not supported by this connection"
msgstr "Diese Funktion wird vom Verbindungstreiber nicht unterstützt"
#, c-format
msgid "fdset '%u' is already in use by qemu"
msgstr ""
msgid "fetch or set the currently defined set of logging filters on daemon"
msgstr ""
@@ -29056,9 +29099,6 @@ msgstr "Ungültige Fehler Aktion: '%s'\n"
msgid "invalid fd %d for %s"
msgstr "Ungültige fd %d für %s"
msgid "invalid file descriptor"
msgstr ""
msgid "invalid flag"
msgstr "ungültige Flag"
@@ -29640,10 +29680,10 @@ msgstr "nl_recv fehlgeschlagen"
msgid "library call failed: %s"
msgstr "Schreiben schlug fehl: %s"
msgid "librbd encryption engine only supports luks/luks2 formats"
msgid "librbd encryption is not supported by this QEMU binary"
msgstr ""
msgid "librbd encryption is not supported by this QEMU binary"
msgid "librbd encryption is supported only with RBD backed disks"
msgstr ""
#, fuzzy
@@ -30944,6 +30984,9 @@ msgstr ""
msgid "missing 'server' attribute in JSON backing definition for NFS volume"
msgstr ""
msgid "missing 'start' attribute for clock with offset='absolute'"
msgstr ""
#, c-format
msgid ""
"missing 'start' attribute in <address> element in <nat> in <forward> in "
@@ -31486,6 +31529,9 @@ msgstr ""
msgid "missing path for <reservations/>"
msgstr "fehlende Namens-Information"
msgid "missing path to restore from"
msgstr ""
msgid "missing per-device path"
msgstr "Per-Einheit Pfad fehlt"
@@ -31731,6 +31777,10 @@ msgstr "Fehlender Name für Host"
msgid "missing value for migration parameter '%s'"
msgstr "fehlende Namens-Information in %s"
#, fuzzy
msgid "missing values for acceleration"
msgstr "fehlende Namens-Information"
msgid "missing vendor"
msgstr "Fehlender Hersteller"
@@ -33205,7 +33255,8 @@ msgid "only 'pci' addresses are supported for the virtio-pmem device"
msgstr ""
msgid ""
"only 1 graphics device of each type (sdl, vnc, spice, headless) is supported"
"only 1 graphics device of each type (sdl, vnc, spice, headless, dbus) is "
"supported"
msgstr ""
msgid "only JSON objects can be top level"
@@ -33756,8 +33807,8 @@ msgstr "Disk Treiber %s ist nicht unterstützt"
msgid "pci device %s is not a PCI-Express device"
msgstr "Gerät %s ist kein PCI-Gerät"
msgid "pci device assignment backend driver (e.g. 'vfio' or 'kvm')"
msgstr "PCI Einheiten-Zuordnung Backend-Treiber (z.B. 'vfio' oder 'kvm')"
msgid "pci device assignment backend driver (e.g. 'vfio' or 'xen')"
msgstr ""
msgid ""
"pci-expander-bus controllers are only supported on 440fx-based machinetypes"
@@ -34122,6 +34173,9 @@ msgstr "Ein bestimmtes Domäne gewaltsam anhalten."
msgid "print statistics for any kind of job (even failed ones)"
msgstr ""
msgid "print the XML used to start the copy job instead of starting the job"
msgstr ""
#, fuzzy
msgid "print the admin server URI"
msgstr "Hostname der Domain ausgeben"
@@ -34185,7 +34239,7 @@ msgstr ""
"Fehlendes erforderliches Wert-Attribut in DNS-TXT-Datensatz namens '%s' vom "
"Netzwerk %s"
msgid "property with name 'id' can't be overriden"
msgid "property with name 'id' can't be overridden"
msgstr ""
#, c-format
@@ -34367,9 +34421,6 @@ msgstr ""
msgid "query-fdsets reply was missing 'fdset-id'"
msgstr ""
msgid "query-fdsets return data missing 'fd'"
msgstr ""
msgid "query-fdsets return data missing fd array element"
msgstr ""
@@ -34690,6 +34741,9 @@ msgstr ""
"entfernen zugehörige Speicher-Datenträger (durch Kommata getrennte Liste von "
"Zielen oder Quell-Pfaden) (siehe domblklist)"
msgid "remove domain logs"
msgstr ""
msgid "remove domain managed state file"
msgstr "Entfernen der von der Domain verwalteten Status-Datei"
@@ -35118,9 +35172,6 @@ msgstr "Beim Speichern der Domain '%s' nach '%s': Schreiben schlug fehl"
msgid "sbbc configuration is not supported by this QEMU binary"
msgstr "discard wird von dieser QEMU-Programmdatei nicht unterstützt"
msgid "scheduler information is not supported on this platform"
msgstr ""
#, fuzzy, c-format
msgid "scheme and host are mandatory vz migration URI: %s"
msgstr "Fehlender Host in Migrations-URI: %s"
@@ -35239,7 +35290,9 @@ msgstr "Sicherheits-Modell überschreitet Höchstwert: %zu"
msgid "security model string exceeds max %d bytes"
msgstr "Sicherheitsmodell-String größer als die maximal erlaubten %d Bytes"
msgid "select particular graphical display (e.g. \"vnc\", \"spice\", \"rdp\")"
msgid ""
"select particular graphical display (e.g. \"vnc\", \"spice\", \"rdp\", \"dbus"
"\")"
msgstr ""
#, fuzzy
@@ -37132,6 +37185,10 @@ msgstr ""
"kann Schnittstelle '%s' in Netzwerk '%s' nicht löschen. Sie wird derzeit von "
"%d Domänen verwendet."
#, c-format
msgid "unable to determine access mode of %s"
msgstr ""
#, fuzzy
msgid "unable to determine if checkpoint has parent"
msgstr "nicht in der Lage zu bestimmen, ob Snapshot einen Übergeordneten hat"
@@ -37463,6 +37520,9 @@ msgstr "Kann Eigentum von '%s' nicht auf %d:%d setzen"
msgid "unable to set ownership of '%s' to user %d:%d"
msgstr "Kann Eigentümer von '%s' nicht für Benutzer %d:%d ändern"
msgid "unable to set pipe size"
msgstr ""
#, c-format
msgid "unable to set security context '%s'"
msgstr "Kann Sicherheits-Kontext '%s' nicht setzen"
@@ -37503,6 +37563,10 @@ msgstr ""
msgid "unable to stat block copy target '%s'"
msgstr "Konnte stat für Bind-Ziel %s nicht erhalten"
#, c-format
msgid "unable to stat file descriptor %d path %s"
msgstr ""
#, c-format
msgid "unable to stat for disk %s: %s"
msgstr "Kann Disk %s nicht statistisch erfassen: %s"
@@ -39397,6 +39461,9 @@ msgstr "virDomainGetXMLDesc mit sicherem Flag"
msgid "virDomainSnapshotGetXMLDesc with secure flag"
msgstr "virDomainSnapshotGetXMLDesc mit sicherer Flag"
msgid "virFileDiskCopy unsupported on this platform"
msgstr ""
msgid "virFileOpenAs is not implemented for WIN32"
msgstr "virFileOpenAs ist nicht implementiert auf Win32"
@@ -39491,6 +39558,12 @@ msgstr "Nicht unterstützter Laufwerks-Adressen Typ '%s'"
msgid "virtio non-transitional model not supported for this qemu"
msgstr "vport Operation '%s' ist nicht unterstützt für Host%d"
msgid "virtio rss hash report is not supported with this QEMU binary"
msgstr ""
msgid "virtio rss is not supported with this QEMU binary"
msgstr ""
#, c-format
msgid "virtio rx_queue_size option %d is not same with tx_queue_size %d"
msgstr ""
@@ -39999,6 +40072,50 @@ msgstr ""
msgid "{[--%s] <string>}..."
msgstr "{[--%s] <string>}..."
#~ msgid "%s: unable to determine access mode of fd %d"
#~ msgstr "%s: Kann nicht den Zugriffs-Modus von fd %d bestimmen"
#~ msgid "Can only open VNC or SPICE graphics backends, not %s"
#~ msgstr "Kann nur VNC oder SPICE Grafik-Backends öffnen, nicht %s"
#~ msgid "Failed to release port %d"
#~ msgstr "Port %d Freigabe fehlgeschlagen"
#, fuzzy
#~ msgid "%s: failed to communicate with bridge helper: %s%s"
#~ msgstr "%s: Konnte nicht in Log-Datei schreiben: %s"
#, fuzzy
#~ msgid "HTP resizing is not supported by this QEMU binary"
#~ msgstr "discard wird von dieser QEMU-Programmdatei nicht unterstützt"
#, fuzzy
#~ msgid "failed to create channel dir '%s': %s"
#~ msgstr "Konnte '%s' nicht erstellen: %s"
#, fuzzy
#~ msgid "failed to create dump dir '%s': %s"
#~ msgstr "Konnte '%s' nicht erstellen: %s"
#, fuzzy
#~ msgid "failed to create lib dir '%s': %s"
#~ msgstr "Konnte '%s' nicht erstellen: %s"
#, fuzzy
#~ msgid "failed to create log dir '%s': %s"
#~ msgstr "Konnte '%s' nicht erstellen: %s"
#, fuzzy
#~ msgid "failed to create save dir '%s': %s"
#~ msgstr "Konnte '%s' nicht erstellen: %s"
#, fuzzy
#~ msgid "failed to create state dir '%s': %s"
#~ msgstr "Konnte '%s' nicht erstellen: %s"
#~ msgid "pci device assignment backend driver (e.g. 'vfio' or 'kvm')"
#~ msgstr "PCI Einheiten-Zuordnung Backend-Treiber (z.B. 'vfio' oder 'kvm')"
#~ msgid "Call to utsname failed: %d"
#~ msgstr "Aufruf von utsname gescheitert: %d"
@@ -40183,10 +40300,6 @@ msgstr "{[--%s] <string>}..."
#~ msgid "missing boot device"
#~ msgstr "Fehlendes Boot-Gerät"
#, fuzzy
#~ msgid "missing values for acceleration"
#~ msgstr "fehlende Namens-Information"
#~ msgid "sgio of shared disk '%s' conflicts with other active domains"
#~ msgstr ""
#~ "SGIO von gemeinsam genutztem Datenträger '%s' ist in Konflikt mit anderen "

221
po/el.po
View File

@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 6.0.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2022-03-28 11:25+0000\n"
"POT-Creation-Date: 2022-05-25 19:40+0000\n"
"PO-Revision-Date: 2015-02-27 04:41+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Greek (http://www.transifex.com/projects/p/fedora/language/"
@@ -738,7 +738,7 @@ msgid "%s: expected an unsigned integer for '%s' parameter"
msgstr ""
#, c-format
msgid "%s: failed to communicate with bridge helper: %s%s"
msgid "%s: failed to communicate with bridge helper: %s"
msgstr ""
#, c-format
@@ -840,10 +840,6 @@ msgstr ""
msgid "%s: try --help for more details\n"
msgstr ""
#, c-format
msgid "%s: unable to determine access mode of fd %d"
msgstr ""
#, c-format
msgid "%s: unexpected URI transport '%s'\n"
msgstr ""
@@ -898,6 +894,10 @@ msgstr ""
msgid "'%s'"
msgstr ""
#, c-format
msgid "'%s' D-Bus address is not handled"
msgstr ""
#, c-format
msgid "'%s' architecture is not supported by CPU driver"
msgstr ""
@@ -1087,6 +1087,9 @@ msgstr ""
msgid "'netns' namespace source can only be used with sharenet"
msgstr ""
msgid "'network' attribute is required for listen type 'network'"
msgstr ""
#, fuzzy
msgid "'network' attribute is valid only for listen type 'network'"
msgstr ""
@@ -2197,7 +2200,7 @@ msgid "Can only modify disk quota"
msgstr ""
#, c-format
msgid "Can only open VNC or SPICE graphics backends, not %s"
msgid "Can only open VNC, SPICE or D-Bus p2p graphics backends, not %s"
msgstr ""
msgid "Can't add USB hub: USB is disabled for this domain"
@@ -4735,6 +4738,12 @@ msgstr ""
msgid "Custom loader requires explicit %s configuration"
msgstr ""
msgid "D-Bus audio is not supported with this QEMU"
msgstr ""
msgid "D-Bus p2p with an address is not supported"
msgstr ""
msgid "DAC imagelabel couldn't be determined"
msgstr ""
@@ -7313,6 +7322,10 @@ msgstr "Αδυναμία επεξεργασίας της κατάστασης '%
msgid "Failed to parse %s: only com1 and com2 supported."
msgstr ""
#, c-format
msgid "Failed to parse CCW address '%s'"
msgstr ""
#, fuzzy, c-format
msgid "Failed to parse MAC address from '%s'"
msgstr "Αδυναμία επεξεργασίας της κατάστασης '%s'"
@@ -7601,10 +7614,6 @@ msgstr "αποτυχία δημιουργίας του UUID"
msgid "Failed to release lock: %s"
msgstr "Αδυναμία επεξεργασίας της κατάστασης '%s'"
#, fuzzy, c-format
msgid "Failed to release port %d"
msgstr "Αδυναμία επεξεργασίας της κατάστασης '%s'"
#, fuzzy, c-format
msgid "Failed to remove capability %s: %d"
msgstr "Αδυναμία επεξεργασίας της κατάστασης '%s'"
@@ -8554,6 +8563,10 @@ msgstr ""
msgid "Gets statistics about one or more (or all) domains"
msgstr ""
#, c-format
msgid "Global feature %d should have already been handled"
msgstr ""
msgid "Got empty feature list from resctrl"
msgstr ""
@@ -8596,9 +8609,6 @@ msgstr ""
msgid "HTM configuration is not supported by this QEMU binary"
msgstr ""
msgid "HTP resizing is not supported by this QEMU binary"
msgstr ""
#, c-format
msgid "HTTP response code %d for call to '%s'"
msgstr ""
@@ -8801,10 +8811,22 @@ msgstr ""
msgid "IOMMU device: '%s' is only supported with ARM Virt machines"
msgstr ""
#, c-format
msgid "IOMMU device: '%s' is only supported with Q35 and ARM Virt machines"
msgstr ""
#, c-format
msgid "IOMMU device: '%s' is only supported with Q35 machines"
msgstr ""
#, c-format
msgid "IOMMU device: '%s' needs a PCI address"
msgstr ""
#, c-format
msgid "IOMMU device: '%s' requires ACPI"
msgstr ""
msgid "IOMMU eim requires interrupt remapping to be enabled"
msgstr ""
@@ -9717,7 +9739,7 @@ msgid "Invalid parameter type passed to free"
msgstr ""
#, c-format
msgid "Invalid parameters: %d"
msgid "Invalid parameters macaddr=%p allowRetry=%p"
msgstr ""
msgid "Invalid partial specification for virtio ccw address"
@@ -11013,18 +11035,9 @@ msgid ""
"response"
msgstr ""
msgid "Missing or invalid fd in add-fd response"
msgstr ""
msgid "Missing or invalid fdset-id in add-fd response"
msgstr ""
msgid "Missing or invalid name in query-rx-filter response"
msgstr ""
msgid "Missing or invalid return data in add-fd response"
msgstr ""
msgid "Missing or invalid scsi adapter 'unique_id' value"
msgstr ""
@@ -12338,6 +12351,9 @@ msgstr ""
msgid "Only one primary video device is supported"
msgstr ""
msgid "Only one vgpu device can have 'ramfb' enabled"
msgstr ""
msgid "Only ploop disk images are supported by vz driver."
msgstr ""
@@ -14147,6 +14163,9 @@ msgstr ""
msgid "Specifying mount point is not supported for now"
msgstr ""
msgid "Spice audio is not supported without spice graphics"
msgstr ""
msgid "Start"
msgstr ""
@@ -15350,6 +15369,9 @@ msgstr ""
msgid "The XML configuration was changed by another user."
msgstr ""
msgid "The associated audio is not of 'dbus' kind."
msgstr ""
#, c-format
msgid "The certificate %s basic constraints do not show a CA"
msgstr ""
@@ -15406,6 +15428,10 @@ msgid ""
"The device at PCI address %s has unrecognized connection type flags 0x%.2x"
msgstr ""
#, c-format
msgid "The device at PCI address %s needs to be an integrated device (bus=0)"
msgstr ""
#, c-format
msgid ""
"The device at PCI address %s requires hotplug capability, but the PCI "
@@ -15994,10 +16020,6 @@ msgstr "αδυναμία εγγραφής του αρχείου ρυθμίσεω
msgid "Unable to access file descriptor %d"
msgstr ""
#, c-format
msgid "Unable to access file descriptor %d path %s"
msgstr ""
msgid "Unable to access kernel32.dll"
msgstr ""
@@ -19838,6 +19860,13 @@ msgstr ""
msgid "authentication failed: %s"
msgstr "απαιτείται ταυτοποίηση χρήστη"
#, c-format
msgid "authentication is not supported for protocol '%s'"
msgstr ""
msgid "authentication is supported only for network backed disks"
msgstr ""
msgid "authentication required"
msgstr "απαιτείται ταυτοποίηση χρήστη"
@@ -22039,6 +22068,14 @@ msgstr ""
msgid "character device name"
msgstr ""
#, c-format
msgid "chardev '%s' not supported in this QEMU binary"
msgstr ""
#, c-format
msgid "chardev '%s' not supported without spice graphics"
msgstr ""
msgid "chardev already exists"
msgstr ""
@@ -23322,9 +23359,6 @@ msgstr ""
msgid "dir"
msgstr ""
msgid "direct FD passing supports only 1 file descriptor"
msgstr ""
msgid "direct migration"
msgstr ""
@@ -24181,6 +24215,9 @@ msgstr ""
msgid "encryption is not supported with vhostuser disk"
msgstr ""
msgid "encryption is supported only with 'raw' and 'qcow2' image format"
msgstr ""
#, c-format
msgid "end of range %s - %s in network %s/%d is the broadcast address"
msgstr ""
@@ -24834,7 +24871,7 @@ msgid "failed to create a new XML namespace"
msgstr ""
#, c-format
msgid "failed to create channel dir '%s': %s"
msgid "failed to create channel dir '%s'"
msgstr ""
msgid "failed to create connection to CH socket"
@@ -24848,9 +24885,9 @@ msgstr "Αδυναμία καταχώρησης διαστήματος αναμ
msgid "failed to create directory '%s'"
msgstr "αδυναμία δημιουργίας καταλόγου ρυθμίσεων '%s'"
#, fuzzy, c-format
msgid "failed to create dump dir '%s': %s"
msgstr "Αδυναμία επεξεργασίας της κατάστασης '%s'"
#, c-format
msgid "failed to create dump dir '%s'"
msgstr ""
#, c-format
msgid "failed to create glfs object for '%s'"
@@ -24870,17 +24907,17 @@ msgstr ""
msgid "failed to create json"
msgstr "αποτυχία δημιουργίας του UUID"
#, fuzzy, c-format
msgid "failed to create lib dir '%s': %s"
msgstr "Αδυναμία επεξεργασίας της κατάστασης '%s'"
#, c-format
msgid "failed to create lib dir '%s'"
msgstr ""
#, fuzzy, c-format
msgid "failed to create libssh channel: %s"
msgstr "Αποτυχία fork ως δαίμονα: %s"
#, fuzzy, c-format
msgid "failed to create log dir '%s': %s"
msgstr "Αδυναμία επεξεργασίας της κατάστασης '%s'"
#, c-format
msgid "failed to create log dir '%s'"
msgstr ""
#, fuzzy, c-format
msgid "failed to create logfile %s"
@@ -24892,9 +24929,9 @@ msgstr ""
msgid "failed to create profile"
msgstr ""
#, fuzzy, c-format
msgid "failed to create save dir '%s': %s"
msgstr "Αδυναμία επεξεργασίας της κατάστασης '%s'"
#, c-format
msgid "failed to create save dir '%s'"
msgstr ""
#, fuzzy
msgid "failed to create socket"
@@ -24907,9 +24944,9 @@ msgstr "Αδυναμία επεξεργασίας της κατάστασης '%
msgid "failed to create socketpair"
msgstr ""
#, fuzzy, c-format
msgid "failed to create state dir '%s': %s"
msgstr "Αδυναμία επεξεργασίας της κατάστασης '%s'"
#, c-format
msgid "failed to create state dir '%s'"
msgstr ""
msgid "failed to create the RADOS cluster"
msgstr ""
@@ -25428,6 +25465,9 @@ msgstr "Αδυναμία επεξεργασίας της κατάστασης '%
msgid "failed to parse node name index"
msgstr "Αδυναμία επεξεργασίας της κατάστασης '%s'"
msgid "failed to parse original memlock size"
msgstr ""
#, fuzzy, c-format
msgid "failed to parse port number '%s'"
msgstr "Αδυναμία επεξεργασίας της κατάστασης '%s'"
@@ -25892,6 +25932,10 @@ msgstr ""
msgid "fd passing is not supported by this connection"
msgstr ""
#, c-format
msgid "fdset '%u' is already in use by qemu"
msgstr ""
msgid "fetch or set the currently defined set of logging filters on daemon"
msgstr ""
@@ -27418,9 +27462,6 @@ msgstr "απαράδεκτη κατάσταση τομέα (domain state) '%s'"
msgid "invalid fd %d for %s"
msgstr "μη αποδεκτό μέγεθος για το '%s'"
msgid "invalid file descriptor"
msgstr ""
#, fuzzy
msgid "invalid flag"
msgstr "απαράδεκτη pid"
@@ -27994,10 +28035,10 @@ msgstr ""
msgid "library call failed: %s"
msgstr ""
msgid "librbd encryption engine only supports luks/luks2 formats"
msgid "librbd encryption is not supported by this QEMU binary"
msgstr ""
msgid "librbd encryption is not supported by this QEMU binary"
msgid "librbd encryption is supported only with RBD backed disks"
msgstr ""
msgid "libssh transport error"
@@ -29258,6 +29299,9 @@ msgstr ""
msgid "missing 'server' attribute in JSON backing definition for NFS volume"
msgstr ""
msgid "missing 'start' attribute for clock with offset='absolute'"
msgstr ""
#, c-format
msgid ""
"missing 'start' attribute in <address> element in <nat> in <forward> in "
@@ -29788,6 +29832,9 @@ msgstr ""
msgid "missing path for <reservations/>"
msgstr ""
msgid "missing path to restore from"
msgstr ""
#, fuzzy
msgid "missing per-device path"
msgstr "δεν προσδιορίζεται ο τύπος της συσκευής εισόδου"
@@ -30043,6 +30090,9 @@ msgstr ""
msgid "missing value for migration parameter '%s'"
msgstr ""
msgid "missing values for acceleration"
msgstr ""
msgid "missing vendor"
msgstr "δεν δόθηκε τιμή στην παράμετρο κατασκευαστής (vendor)"
@@ -31418,7 +31468,8 @@ msgid "only 'pci' addresses are supported for the virtio-pmem device"
msgstr ""
msgid ""
"only 1 graphics device of each type (sdl, vnc, spice, headless) is supported"
"only 1 graphics device of each type (sdl, vnc, spice, headless, dbus) is "
"supported"
msgstr ""
msgid "only JSON objects can be top level"
@@ -31934,7 +31985,7 @@ msgstr ""
msgid "pci device %s is not a PCI-Express device"
msgstr ""
msgid "pci device assignment backend driver (e.g. 'vfio' or 'kvm')"
msgid "pci device assignment backend driver (e.g. 'vfio' or 'xen')"
msgstr ""
msgid ""
@@ -32275,6 +32326,9 @@ msgstr ""
msgid "print statistics for any kind of job (even failed ones)"
msgstr ""
msgid "print the XML used to start the copy job instead of starting the job"
msgstr ""
msgid "print the admin server URI"
msgstr ""
@@ -32335,7 +32389,7 @@ msgstr "πρόβλημα έκδοσης (τρέχουσα %x, αναμενόμε
msgid "prohibited character in DNS TXT record name '%s' of network %s"
msgstr ""
msgid "property with name 'id' can't be overriden"
msgid "property with name 'id' can't be overridden"
msgstr ""
#, c-format
@@ -32512,9 +32566,6 @@ msgstr ""
msgid "query-fdsets reply was missing 'fdset-id'"
msgstr ""
msgid "query-fdsets return data missing 'fd'"
msgstr ""
msgid "query-fdsets return data missing fd array element"
msgstr ""
@@ -32800,6 +32851,9 @@ msgid ""
"paths) (see domblklist)"
msgstr ""
msgid "remove domain logs"
msgstr ""
msgid "remove domain managed state file"
msgstr ""
@@ -33186,9 +33240,6 @@ msgstr ""
msgid "sbbc configuration is not supported by this QEMU binary"
msgstr ""
msgid "scheduler information is not supported on this platform"
msgstr ""
#, c-format
msgid "scheme and host are mandatory vz migration URI: %s"
msgstr ""
@@ -33302,7 +33353,9 @@ msgstr ""
msgid "security model string exceeds max %d bytes"
msgstr ""
msgid "select particular graphical display (e.g. \"vnc\", \"spice\", \"rdp\")"
msgid ""
"select particular graphical display (e.g. \"vnc\", \"spice\", \"rdp\", \"dbus"
"\")"
msgstr ""
msgid "send handler failed"
@@ -35048,6 +35101,10 @@ msgid ""
"by %d domains."
msgstr ""
#, c-format
msgid "unable to determine access mode of %s"
msgstr ""
msgid "unable to determine if checkpoint has parent"
msgstr ""
@@ -35371,6 +35428,9 @@ msgstr ""
msgid "unable to set ownership of '%s' to user %d:%d"
msgstr ""
msgid "unable to set pipe size"
msgstr ""
#, c-format
msgid "unable to set security context '%s'"
msgstr ""
@@ -35410,6 +35470,10 @@ msgstr ""
msgid "unable to stat block copy target '%s'"
msgstr ""
#, c-format
msgid "unable to stat file descriptor %d path %s"
msgstr ""
#, c-format
msgid "unable to stat for disk %s: %s"
msgstr ""
@@ -37294,6 +37358,9 @@ msgstr ""
msgid "virDomainSnapshotGetXMLDesc with secure flag"
msgstr ""
msgid "virFileDiskCopy unsupported on this platform"
msgstr ""
msgid "virFileOpenAs is not implemented for WIN32"
msgstr ""
@@ -37381,6 +37448,12 @@ msgstr ""
msgid "virtio non-transitional model not supported for this qemu"
msgstr ""
msgid "virtio rss hash report is not supported with this QEMU binary"
msgstr ""
msgid "virtio rss is not supported with this QEMU binary"
msgstr ""
#, c-format
msgid "virtio rx_queue_size option %d is not same with tx_queue_size %d"
msgstr ""
@@ -37854,6 +37927,30 @@ msgstr ""
msgid "{[--%s] <string>}..."
msgstr ""
#, fuzzy
#~ msgid "Failed to release port %d"
#~ msgstr "Αδυναμία επεξεργασίας της κατάστασης '%s'"
#, fuzzy
#~ msgid "failed to create dump dir '%s': %s"
#~ msgstr "Αδυναμία επεξεργασίας της κατάστασης '%s'"
#, fuzzy
#~ msgid "failed to create lib dir '%s': %s"
#~ msgstr "Αδυναμία επεξεργασίας της κατάστασης '%s'"
#, fuzzy
#~ msgid "failed to create log dir '%s': %s"
#~ msgstr "Αδυναμία επεξεργασίας της κατάστασης '%s'"
#, fuzzy
#~ msgid "failed to create save dir '%s': %s"
#~ msgstr "Αδυναμία επεξεργασίας της κατάστασης '%s'"
#, fuzzy
#~ msgid "failed to create state dir '%s': %s"
#~ msgstr "Αδυναμία επεξεργασίας της κατάστασης '%s'"
#, fuzzy
#~ msgid "Cannot parse version string '%s'"
#~ msgstr "αδυναμία ερμηνείας μνήμης βίντεο (video ram) '%s'"

View File

@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 6.0.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2022-03-28 11:25+0000\n"
"POT-Creation-Date: 2022-05-25 19:40+0000\n"
"PO-Revision-Date: 2015-02-24 06:05+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: English (United Kingdom) (http://www.transifex.com/projects/p/"
@@ -808,9 +808,9 @@ msgstr ""
msgid "%s: expected an unsigned integer for '%s' parameter"
msgstr ""
#, fuzzy, c-format
msgid "%s: failed to communicate with bridge helper: %s%s"
msgstr "%s: failed to write log file: %s"
#, c-format
msgid "%s: failed to communicate with bridge helper: %s"
msgstr ""
#, c-format
msgid "%s: failed to read temporary file: %s"
@@ -919,10 +919,6 @@ msgstr "%s: try --help for more details"
msgid "%s: try --help for more details\n"
msgstr "%s: try --help for more details"
#, c-format
msgid "%s: unable to determine access mode of fd %d"
msgstr "%s: unable to determine access mode of fd %d"
#, c-format
msgid "%s: unexpected URI transport '%s'\n"
msgstr ""
@@ -979,6 +975,10 @@ msgstr ""
msgid "'%s'"
msgstr ""
#, c-format
msgid "'%s' D-Bus address is not handled"
msgstr ""
#, fuzzy, c-format
msgid "'%s' architecture is not supported by CPU driver"
msgstr "Filtering is not supported by this libvirt"
@@ -1183,6 +1183,9 @@ msgstr "'online' missing in reply of guest-get-vcpus"
msgid "'netns' namespace source can only be used with sharenet"
msgstr ""
msgid "'network' attribute is required for listen type 'network'"
msgstr ""
#, fuzzy
msgid "'network' attribute is valid only for listen type 'network'"
msgstr ""
@@ -2366,8 +2369,8 @@ msgid "Can only modify disk quota"
msgstr "Can only modify disk quota"
#, c-format
msgid "Can only open VNC or SPICE graphics backends, not %s"
msgstr "Can only open VNC or SPICE graphics backends, not %s"
msgid "Can only open VNC, SPICE or D-Bus p2p graphics backends, not %s"
msgstr ""
msgid "Can't add USB hub: USB is disabled for this domain"
msgstr "Can't add USB hub: USB is disabled for this domain"
@@ -4999,6 +5002,12 @@ msgstr "Current:"
msgid "Custom loader requires explicit %s configuration"
msgstr ""
msgid "D-Bus audio is not supported with this QEMU"
msgstr ""
msgid "D-Bus p2p with an address is not supported"
msgstr ""
msgid "DAC imagelabel couldn't be determined"
msgstr ""
@@ -7652,6 +7661,10 @@ msgstr "Failed to open tty %s"
msgid "Failed to parse %s: only com1 and com2 supported."
msgstr "Failed to parse value of URI component %s"
#, c-format
msgid "Failed to parse CCW address '%s'"
msgstr ""
#, fuzzy, c-format
msgid "Failed to parse MAC address from '%s'"
msgstr "Failed to parse uid and gid from '%s'"
@@ -7938,10 +7951,6 @@ msgstr "Failed to release lock"
msgid "Failed to release lock: %s"
msgstr "Failed to release lock"
#, c-format
msgid "Failed to release port %d"
msgstr "Failed to release port %d"
#, fuzzy, c-format
msgid "Failed to remove capability %s: %d"
msgstr "Failed to apply capabilities: %d"
@@ -8930,6 +8939,10 @@ msgstr "print the domain's hostname"
msgid "Gets statistics about one or more (or all) domains"
msgstr ""
#, c-format
msgid "Global feature %d should have already been handled"
msgstr ""
msgid "Got empty feature list from resctrl"
msgstr ""
@@ -8976,10 +8989,6 @@ msgstr ""
msgid "HTM configuration is not supported by this QEMU binary"
msgstr "nvram device is not supported by this QEMU binary"
#, fuzzy
msgid "HTP resizing is not supported by this QEMU binary"
msgstr "discard is not supported by this QEMU binary"
#, c-format
msgid "HTTP response code %d for call to '%s'"
msgstr "HTTP response code %d for call to '%s'"
@@ -9194,10 +9203,22 @@ msgstr "nvram device is not supported by this QEMU binary"
msgid "IOMMU device: '%s' is only supported with ARM Virt machines"
msgstr ""
#, c-format
msgid "IOMMU device: '%s' is only supported with Q35 and ARM Virt machines"
msgstr ""
#, c-format
msgid "IOMMU device: '%s' is only supported with Q35 machines"
msgstr ""
#, c-format
msgid "IOMMU device: '%s' needs a PCI address"
msgstr ""
#, c-format
msgid "IOMMU device: '%s' requires ACPI"
msgstr ""
msgid "IOMMU eim requires interrupt remapping to be enabled"
msgstr ""
@@ -10136,7 +10157,7 @@ msgid "Invalid parameter type passed to free"
msgstr "Invalid parameter to virXPathNode()"
#, c-format
msgid "Invalid parameters: %d"
msgid "Invalid parameters macaddr=%p allowRetry=%p"
msgstr ""
msgid "Invalid partial specification for virtio ccw address"
@@ -11493,19 +11514,10 @@ msgid ""
"response"
msgstr ""
msgid "Missing or invalid fd in add-fd response"
msgstr ""
msgid "Missing or invalid fdset-id in add-fd response"
msgstr ""
#, fuzzy
msgid "Missing or invalid name in query-rx-filter response"
msgstr "Missing or invalid PVR value in CPU model %s"
msgid "Missing or invalid return data in add-fd response"
msgstr ""
#, fuzzy
msgid "Missing or invalid scsi adapter 'unique_id' value"
msgstr "missing or invalid vlan tag id attribute"
@@ -12858,6 +12870,9 @@ msgstr "Only one primary video device is supported"
msgid "Only one primary video device is supported"
msgstr "Only one primary video device is supported"
msgid "Only one vgpu device can have 'ramfb' enabled"
msgstr ""
msgid "Only ploop disk images are supported by vz driver."
msgstr ""
@@ -14816,6 +14831,9 @@ msgstr "Specifies if pages from different numa nodes can be merged"
msgid "Specifying mount point is not supported for now"
msgstr "Specifying mount point is not supported for now"
msgid "Spice audio is not supported without spice graphics"
msgstr ""
#, fuzzy
msgid "Start"
msgstr "started"
@@ -16015,6 +16033,9 @@ msgstr "The QEMU executable %s does not support TPM model %s"
msgid "The XML configuration was changed by another user."
msgstr "The XML configuration was changed by another user."
msgid "The associated audio is not of 'dbus' kind."
msgstr ""
#, c-format
msgid "The certificate %s basic constraints do not show a CA"
msgstr "The certificate %s basic constraints do not show a CA"
@@ -16075,6 +16096,10 @@ msgid ""
"The device at PCI address %s has unrecognized connection type flags 0x%.2x"
msgstr ""
#, c-format
msgid "The device at PCI address %s needs to be an integrated device (bus=0)"
msgstr ""
#, c-format
msgid ""
"The device at PCI address %s requires hotplug capability, but the PCI "
@@ -16686,10 +16711,6 @@ msgstr "Unable to access config file %s"
msgid "Unable to access file descriptor %d"
msgstr "Unable to access file descriptor %d"
#, c-format
msgid "Unable to access file descriptor %d path %s"
msgstr ""
#, fuzzy
msgid "Unable to access kernel32.dll"
msgstr "Unable to access %s"
@@ -20700,6 +20721,13 @@ msgstr ""
msgid "authentication failed: %s"
msgstr "authentication failed: %s"
#, c-format
msgid "authentication is not supported for protocol '%s'"
msgstr ""
msgid "authentication is supported only for network backed disks"
msgstr ""
msgid "authentication required"
msgstr "authentication required"
@@ -22958,6 +22986,14 @@ msgstr "character device information was missing filename"
msgid "character device name"
msgstr "character device name"
#, c-format
msgid "chardev '%s' not supported in this QEMU binary"
msgstr ""
#, c-format
msgid "chardev '%s' not supported without spice graphics"
msgstr ""
msgid "chardev already exists"
msgstr "chardev already exists"
@@ -24294,9 +24330,6 @@ msgstr ""
msgid "dir"
msgstr "dir"
msgid "direct FD passing supports only 1 file descriptor"
msgstr ""
msgid "direct migration"
msgstr "direct migration"
@@ -25193,6 +25226,9 @@ msgstr ""
msgid "encryption is not supported with vhostuser disk"
msgstr ""
msgid "encryption is supported only with 'raw' and 'qcow2' image format"
msgstr ""
#, c-format
msgid "end of range %s - %s in network %s/%d is the broadcast address"
msgstr ""
@@ -25868,9 +25904,9 @@ msgstr "Failed to delete snapshot %s"
msgid "failed to create a new XML namespace"
msgstr "failed to create a new XML namespace"
#, fuzzy, c-format
msgid "failed to create channel dir '%s': %s"
msgstr "failed to create save dir '%s': %s"
#, c-format
msgid "failed to create channel dir '%s'"
msgstr ""
msgid "failed to create connection to CH socket"
msgstr ""
@@ -25883,9 +25919,9 @@ msgstr "failed to create socket"
msgid "failed to create directory '%s'"
msgstr "failed to create directory '%s'"
#, fuzzy, c-format
msgid "failed to create dump dir '%s': %s"
msgstr "failed to create lib dir '%s': %s"
#, c-format
msgid "failed to create dump dir '%s'"
msgstr ""
#, c-format
msgid "failed to create glfs object for '%s'"
@@ -25906,16 +25942,16 @@ msgid "failed to create json"
msgstr "failed to create %s"
#, c-format
msgid "failed to create lib dir '%s': %s"
msgstr "failed to create lib dir '%s': %s"
msgid "failed to create lib dir '%s'"
msgstr ""
#, fuzzy, c-format
msgid "failed to create libssh channel: %s"
msgstr "failed to open ssh channel: %s"
#, c-format
msgid "failed to create log dir '%s': %s"
msgstr "failed to create log dir '%s': %s"
msgid "failed to create log dir '%s'"
msgstr ""
#, c-format
msgid "failed to create logfile %s"
@@ -25928,8 +25964,8 @@ msgid "failed to create profile"
msgstr "failed to create profile"
#, c-format
msgid "failed to create save dir '%s': %s"
msgstr "failed to create save dir '%s': %s"
msgid "failed to create save dir '%s'"
msgstr ""
msgid "failed to create socket"
msgstr "failed to create socket"
@@ -25943,8 +25979,8 @@ msgid "failed to create socketpair"
msgstr "failed to create socket"
#, c-format
msgid "failed to create state dir '%s': %s"
msgstr "failed to create state dir '%s': %s"
msgid "failed to create state dir '%s'"
msgstr ""
msgid "failed to create the RADOS cluster"
msgstr "failed to create the RADOS cluster"
@@ -26473,6 +26509,9 @@ msgstr "Failed to parse uid and gid from '%s'"
msgid "failed to parse node name index"
msgstr "Failed to parse block name %s"
msgid "failed to parse original memlock size"
msgstr ""
#, fuzzy, c-format
msgid "failed to parse port number '%s'"
msgstr "Failed to parse port number"
@@ -26946,6 +26985,10 @@ msgstr "fd must be valid"
msgid "fd passing is not supported by this connection"
msgstr "this function is not supported by the connection driver"
#, c-format
msgid "fdset '%u' is already in use by qemu"
msgstr ""
msgid "fetch or set the currently defined set of logging filters on daemon"
msgstr ""
@@ -28515,9 +28558,6 @@ msgstr "invalid failure action: '%s'\n"
msgid "invalid fd %d for %s"
msgstr "invalid fd %d for %s"
msgid "invalid file descriptor"
msgstr ""
msgid "invalid flag"
msgstr "invalid flag"
@@ -29096,10 +29136,10 @@ msgstr "nl_recv failed"
msgid "library call failed: %s"
msgstr "write failed: %s"
msgid "librbd encryption engine only supports luks/luks2 formats"
msgid "librbd encryption is not supported by this QEMU binary"
msgstr ""
msgid "librbd encryption is not supported by this QEMU binary"
msgid "librbd encryption is supported only with RBD backed disks"
msgstr ""
#, fuzzy
@@ -30391,6 +30431,9 @@ msgstr ""
msgid "missing 'server' attribute in JSON backing definition for NFS volume"
msgstr ""
msgid "missing 'start' attribute for clock with offset='absolute'"
msgstr ""
#, c-format
msgid ""
"missing 'start' attribute in <address> element in <nat> in <forward> in "
@@ -30933,6 +30976,9 @@ msgstr ""
msgid "missing path for <reservations/>"
msgstr "missing name information"
msgid "missing path to restore from"
msgstr ""
msgid "missing per-device path"
msgstr "missing per-device path"
@@ -31173,6 +31219,10 @@ msgstr "missing name for host"
msgid "missing value for migration parameter '%s'"
msgstr "missing name information in %s"
#, fuzzy
msgid "missing values for acceleration"
msgstr "missing name information"
msgid "missing vendor"
msgstr "missing vendor"
@@ -32612,7 +32662,8 @@ msgid "only 'pci' addresses are supported for the virtio-pmem device"
msgstr ""
msgid ""
"only 1 graphics device of each type (sdl, vnc, spice, headless) is supported"
"only 1 graphics device of each type (sdl, vnc, spice, headless, dbus) is "
"supported"
msgstr ""
msgid "only JSON objects can be top level"
@@ -33158,8 +33209,8 @@ msgstr "disk driver %s is not supported"
msgid "pci device %s is not a PCI-Express device"
msgstr "device %s is not a PCI device"
msgid "pci device assignment backend driver (e.g. 'vfio' or 'kvm')"
msgstr "pci device assignment backend driver (e.g. 'vfio' or 'kvm')"
msgid "pci device assignment backend driver (e.g. 'vfio' or 'xen')"
msgstr ""
msgid ""
"pci-expander-bus controllers are only supported on 440fx-based machinetypes"
@@ -33520,6 +33571,9 @@ msgstr "Forcefully stop a given network."
msgid "print statistics for any kind of job (even failed ones)"
msgstr ""
msgid "print the XML used to start the copy job instead of starting the job"
msgstr ""
#, fuzzy
msgid "print the admin server URI"
msgstr "print the domain's hostname"
@@ -33582,7 +33636,7 @@ msgid "prohibited character in DNS TXT record name '%s' of network %s"
msgstr ""
"missing required value attribute in DNS TXT record named '%s' of network %s"
msgid "property with name 'id' can't be overriden"
msgid "property with name 'id' can't be overridden"
msgstr ""
#, c-format
@@ -33763,9 +33817,6 @@ msgstr ""
msgid "query-fdsets reply was missing 'fdset-id'"
msgstr ""
msgid "query-fdsets return data missing 'fd'"
msgstr ""
msgid "query-fdsets return data missing fd array element"
msgstr ""
@@ -34075,6 +34126,9 @@ msgstr ""
"remove associated storage volumes (comma separated list of targets or source "
"paths) (see domblklist)"
msgid "remove domain logs"
msgstr ""
msgid "remove domain managed state file"
msgstr "remove domain managed state file"
@@ -34485,9 +34539,6 @@ msgstr "saving domain '%s' to '%s': write failed"
msgid "sbbc configuration is not supported by this QEMU binary"
msgstr "discard is not supported by this QEMU binary"
msgid "scheduler information is not supported on this platform"
msgstr ""
#, fuzzy, c-format
msgid "scheme and host are mandatory vz migration URI: %s"
msgstr "missing host in migration URI: %s"
@@ -34606,7 +34657,9 @@ msgstr "security model exceeds maximum: %zu"
msgid "security model string exceeds max %d bytes"
msgstr "security model string exceeds max %d bytes"
msgid "select particular graphical display (e.g. \"vnc\", \"spice\", \"rdp\")"
msgid ""
"select particular graphical display (e.g. \"vnc\", \"spice\", \"rdp\", \"dbus"
"\")"
msgstr ""
#, fuzzy
@@ -36459,6 +36512,10 @@ msgstr ""
"unable to delete interface '%s' in network '%s'. It is currently being used "
"by %d domains."
#, c-format
msgid "unable to determine access mode of %s"
msgstr ""
#, fuzzy
msgid "unable to determine if checkpoint has parent"
msgstr "unable to determine if snapshot has parent"
@@ -36789,6 +36846,9 @@ msgstr "unable to set ownership of '%s' to %d:%d"
msgid "unable to set ownership of '%s' to user %d:%d"
msgstr "unable to set ownership of '%s' to user %d:%d"
msgid "unable to set pipe size"
msgstr ""
#, c-format
msgid "unable to set security context '%s'"
msgstr "unable to set security context '%s'"
@@ -36829,6 +36889,10 @@ msgstr ""
msgid "unable to stat block copy target '%s'"
msgstr "Unable to stat bind target %s"
#, c-format
msgid "unable to stat file descriptor %d path %s"
msgstr ""
#, c-format
msgid "unable to stat for disk %s: %s"
msgstr "unable to stat for disk %s: %s"
@@ -38716,6 +38780,9 @@ msgstr "virDomainGetXMLDesc with secure flag"
msgid "virDomainSnapshotGetXMLDesc with secure flag"
msgstr "virDomainSnapshotGetXMLDesc with secure flag"
msgid "virFileDiskCopy unsupported on this platform"
msgstr ""
msgid "virFileOpenAs is not implemented for WIN32"
msgstr "virFileOpenAs is not implemented for WIN32"
@@ -38805,6 +38872,12 @@ msgstr "Unsupported disk address type '%s'"
msgid "virtio non-transitional model not supported for this qemu"
msgstr "vport operation '%s' is not supported for host%d"
msgid "virtio rss hash report is not supported with this QEMU binary"
msgstr ""
msgid "virtio rss is not supported with this QEMU binary"
msgstr ""
#, c-format
msgid "virtio rx_queue_size option %d is not same with tx_queue_size %d"
msgstr ""
@@ -39303,6 +39376,46 @@ msgstr ""
msgid "{[--%s] <string>}..."
msgstr "{[--%s] <string>}..."
#~ msgid "%s: unable to determine access mode of fd %d"
#~ msgstr "%s: unable to determine access mode of fd %d"
#~ msgid "Can only open VNC or SPICE graphics backends, not %s"
#~ msgstr "Can only open VNC or SPICE graphics backends, not %s"
#~ msgid "Failed to release port %d"
#~ msgstr "Failed to release port %d"
#, fuzzy
#~ msgid "%s: failed to communicate with bridge helper: %s%s"
#~ msgstr "%s: failed to write log file: %s"
#, fuzzy
#~ msgid "HTP resizing is not supported by this QEMU binary"
#~ msgstr "discard is not supported by this QEMU binary"
#, fuzzy
#~ msgid "failed to create channel dir '%s': %s"
#~ msgstr "failed to create save dir '%s': %s"
#, fuzzy
#~ msgid "failed to create dump dir '%s': %s"
#~ msgstr "failed to create lib dir '%s': %s"
#~ msgid "failed to create lib dir '%s': %s"
#~ msgstr "failed to create lib dir '%s': %s"
#~ msgid "failed to create log dir '%s': %s"
#~ msgstr "failed to create log dir '%s': %s"
#~ msgid "failed to create save dir '%s': %s"
#~ msgstr "failed to create save dir '%s': %s"
#~ msgid "failed to create state dir '%s': %s"
#~ msgstr "failed to create state dir '%s': %s"
#~ msgid "pci device assignment backend driver (e.g. 'vfio' or 'kvm')"
#~ msgstr "pci device assignment backend driver (e.g. 'vfio' or 'kvm')"
#~ msgid "Call to utsname failed: %d"
#~ msgstr "Call to utsname failed: %d"
@@ -39486,10 +39599,6 @@ msgstr "{[--%s] <string>}..."
#~ msgid "missing boot device"
#~ msgstr "missing boot device"
#, fuzzy
#~ msgid "missing values for acceleration"
#~ msgstr "missing name information"
#~ msgid "sgio of shared disk '%s' conflicts with other active domains"
#~ msgstr "sgio of shared disk '%s' conflicts with other active domains"

261
po/es.po
View File

@@ -23,7 +23,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2022-03-28 11:25+0000\n"
"POT-Creation-Date: 2022-05-25 19:40+0000\n"
"PO-Revision-Date: 2022-01-30 17:16+0000\n"
"Last-Translator: Emilio Herrera <ehespinosa57@gmail.com>\n"
"Language-Team: Spanish <https://translate.fedoraproject.org/projects/libvirt/"
@@ -850,9 +850,9 @@ msgstr ""
msgid "%s: expected an unsigned integer for '%s' parameter"
msgstr ""
#, fuzzy, c-format
msgid "%s: failed to communicate with bridge helper: %s%s"
msgstr "%s: falló al escribir en el archivo de registro: %s"
#, c-format
msgid "%s: failed to communicate with bridge helper: %s"
msgstr ""
#, c-format
msgid "%s: failed to read temporary file: %s"
@@ -963,10 +963,6 @@ msgstr "%s: try --help para mayor información"
msgid "%s: try --help for more details\n"
msgstr "%s: try --help para mayor información"
#, c-format
msgid "%s: unable to determine access mode of fd %d"
msgstr "%s: no se puede determinar modo de acceso de FD %d"
#, c-format
msgid "%s: unexpected URI transport '%s'\n"
msgstr ""
@@ -1023,6 +1019,10 @@ msgstr ""
msgid "'%s'"
msgstr ""
#, c-format
msgid "'%s' D-Bus address is not handled"
msgstr ""
#, fuzzy, c-format
msgid "'%s' architecture is not supported by CPU driver"
msgstr "Esta libvirt no soporta filtraje"
@@ -1224,6 +1224,9 @@ msgstr "'online' falta en respuesta de guest-get-vcpus"
msgid "'netns' namespace source can only be used with sharenet"
msgstr ""
msgid "'network' attribute is required for listen type 'network'"
msgstr ""
#, fuzzy
msgid "'network' attribute is valid only for listen type 'network'"
msgstr ""
@@ -2429,9 +2432,8 @@ msgid "Can only modify disk quota"
msgstr "No se puede modificar cuota de disco"
#, c-format
msgid "Can only open VNC or SPICE graphics backends, not %s"
msgid "Can only open VNC, SPICE or D-Bus p2p graphics backends, not %s"
msgstr ""
"Solo puede abrir las gráficas open VNC or SPICE graphics backends, not %s"
msgid "Can't add USB hub: USB is disabled for this domain"
msgstr ""
@@ -5121,6 +5123,12 @@ msgstr "Actual:"
msgid "Custom loader requires explicit %s configuration"
msgstr ""
msgid "D-Bus audio is not supported with this QEMU"
msgstr ""
msgid "D-Bus p2p with an address is not supported"
msgstr ""
msgid "DAC imagelabel couldn't be determined"
msgstr ""
@@ -7853,6 +7861,10 @@ msgstr "Falló al abrir tty %s"
msgid "Failed to parse %s: only com1 and com2 supported."
msgstr "Falló la lectura del valor del componente de URI %s"
#, c-format
msgid "Failed to parse CCW address '%s'"
msgstr ""
#, fuzzy, c-format
msgid "Failed to parse MAC address from '%s'"
msgstr "No se pudo leer UID ni GID desde '%s'"
@@ -8139,10 +8151,6 @@ msgstr "Falló al emitir cerrojo"
msgid "Failed to release lock: %s"
msgstr "Falló al emitir cerrojo"
#, c-format
msgid "Failed to release port %d"
msgstr "No se pudo lanzar puerto %d"
#, fuzzy, c-format
msgid "Failed to remove capability %s: %d"
msgstr "Falló al aplicar capacidades: %d"
@@ -9161,6 +9169,10 @@ msgstr "Imprime el nombre de host de dominio"
msgid "Gets statistics about one or more (or all) domains"
msgstr ""
#, c-format
msgid "Global feature %d should have already been handled"
msgstr ""
msgid "Got empty feature list from resctrl"
msgstr ""
@@ -9209,10 +9221,6 @@ msgstr ""
msgid "HTM configuration is not supported by this QEMU binary"
msgstr "Esta versión de QEMU no admite el dispositivo nvram"
#, fuzzy
msgid "HTP resizing is not supported by this QEMU binary"
msgstr "Binario QEMU no admite descarte"
#, c-format
msgid "HTTP response code %d for call to '%s'"
msgstr "Código de respuesta HTTP %d para la llamada a '%s'"
@@ -9430,10 +9438,22 @@ msgstr "Esta versión de QEMU no admite el dispositivo nvram"
msgid "IOMMU device: '%s' is only supported with ARM Virt machines"
msgstr ""
#, c-format
msgid "IOMMU device: '%s' is only supported with Q35 and ARM Virt machines"
msgstr ""
#, c-format
msgid "IOMMU device: '%s' is only supported with Q35 machines"
msgstr ""
#, c-format
msgid "IOMMU device: '%s' needs a PCI address"
msgstr ""
#, c-format
msgid "IOMMU device: '%s' requires ACPI"
msgstr ""
msgid "IOMMU eim requires interrupt remapping to be enabled"
msgstr ""
@@ -10378,7 +10398,7 @@ msgid "Invalid parameter type passed to free"
msgstr "Parámetro inválido hacia virXPathNode()"
#, c-format
msgid "Invalid parameters: %d"
msgid "Invalid parameters macaddr=%p allowRetry=%p"
msgstr ""
msgid "Invalid partial specification for virtio ccw address"
@@ -11764,19 +11784,10 @@ msgid ""
"response"
msgstr ""
msgid "Missing or invalid fd in add-fd response"
msgstr ""
msgid "Missing or invalid fdset-id in add-fd response"
msgstr ""
#, fuzzy
msgid "Missing or invalid name in query-rx-filter response"
msgstr "Falta el valor PVR o el valor es inválido en el modelo de CPU %s"
msgid "Missing or invalid return data in add-fd response"
msgstr ""
#, fuzzy
msgid "Missing or invalid scsi adapter 'unique_id' value"
msgstr "Falta o es inválido el atributo ID de etiqueta VLAN"
@@ -13174,6 +13185,9 @@ msgstr "Solamente se admite un dispositivo de vídeo primario"
msgid "Only one primary video device is supported"
msgstr "Solamente se admite un dispositivo de vídeo primario"
msgid "Only one vgpu device can have 'ramfb' enabled"
msgstr ""
msgid "Only ploop disk images are supported by vz driver."
msgstr ""
@@ -15193,6 +15207,9 @@ msgstr "Especifica si las páginas de diferentes nodos numa pueden fusionarse"
msgid "Specifying mount point is not supported for now"
msgstr "La especificación de punto de montaje no tiene soporte por ahora"
msgid "Spice audio is not supported without spice graphics"
msgstr ""
#, fuzzy
msgid "Start"
msgstr "Iniciado"
@@ -16484,6 +16501,9 @@ msgstr "El ejecutable de QEMU %s no soporta modelo TPM %s"
msgid "The XML configuration was changed by another user."
msgstr "La configuración XML fue cambiada por otro usuario."
msgid "The associated audio is not of 'dbus' kind."
msgstr ""
#, c-format
msgid "The certificate %s basic constraints do not show a CA"
msgstr "Las restricciones básicas del certificado %s no muestran un CA"
@@ -16544,6 +16564,10 @@ msgid ""
"The device at PCI address %s has unrecognized connection type flags 0x%.2x"
msgstr ""
#, c-format
msgid "The device at PCI address %s needs to be an integrated device (bus=0)"
msgstr ""
#, c-format
msgid ""
"The device at PCI address %s requires hotplug capability, but the PCI "
@@ -17163,10 +17187,6 @@ msgstr "No se puede acceder al archivo config: %s"
msgid "Unable to access file descriptor %d"
msgstr "No es posible acceder a descriptor de archivos %d"
#, c-format
msgid "Unable to access file descriptor %d path %s"
msgstr ""
#, fuzzy
msgid "Unable to access kernel32.dll"
msgstr "No se puede acceder %s"
@@ -21213,6 +21233,13 @@ msgstr ""
msgid "authentication failed: %s"
msgstr "Falló la autenticación: %s"
#, c-format
msgid "authentication is not supported for protocol '%s'"
msgstr ""
msgid "authentication is supported only for network backed disks"
msgstr ""
msgid "authentication required"
msgstr "Se requiere autenticación"
@@ -23533,6 +23560,14 @@ msgstr ""
msgid "character device name"
msgstr "Nombre de dispositivo de carácter"
#, c-format
msgid "chardev '%s' not supported in this QEMU binary"
msgstr ""
#, c-format
msgid "chardev '%s' not supported without spice graphics"
msgstr ""
msgid "chardev already exists"
msgstr "chardev ya existe"
@@ -24891,9 +24926,6 @@ msgstr ""
msgid "dir"
msgstr "dir"
msgid "direct FD passing supports only 1 file descriptor"
msgstr ""
msgid "direct migration"
msgstr "migración directa"
@@ -25801,6 +25833,9 @@ msgstr ""
msgid "encryption is not supported with vhostuser disk"
msgstr ""
msgid "encryption is supported only with 'raw' and 'qcow2' image format"
msgstr ""
#, c-format
msgid "end of range %s - %s in network %s/%d is the broadcast address"
msgstr ""
@@ -26487,9 +26522,9 @@ msgstr "Falló al borrar la instantánea %s "
msgid "failed to create a new XML namespace"
msgstr "Falló al crear XML"
#, fuzzy, c-format
msgid "failed to create channel dir '%s': %s"
msgstr "Falló al crear '%s': %s"
#, c-format
msgid "failed to create channel dir '%s'"
msgstr ""
msgid "failed to create connection to CH socket"
msgstr ""
@@ -26502,9 +26537,9 @@ msgstr "no fue posible crear socket"
msgid "failed to create directory '%s'"
msgstr "falló al crear el directorio '%s'"
#, fuzzy, c-format
msgid "failed to create dump dir '%s': %s"
msgstr "Falló al crear '%s': %s"
#, c-format
msgid "failed to create dump dir '%s'"
msgstr ""
#, c-format
msgid "failed to create glfs object for '%s'"
@@ -26524,17 +26559,17 @@ msgstr "No pudo crear archivo de inclusión"
msgid "failed to create json"
msgstr "Falló al crear %s"
#, fuzzy, c-format
msgid "failed to create lib dir '%s': %s"
msgstr "Falló al crear '%s': %s"
#, c-format
msgid "failed to create lib dir '%s'"
msgstr ""
#, fuzzy, c-format
msgid "failed to create libssh channel: %s"
msgstr "No se pudo abrir el canal ssh channel: %s"
#, fuzzy, c-format
msgid "failed to create log dir '%s': %s"
msgstr "Falló al crear '%s': %s"
#, c-format
msgid "failed to create log dir '%s'"
msgstr ""
#, c-format
msgid "failed to create logfile %s"
@@ -26546,9 +26581,9 @@ msgstr ""
msgid "failed to create profile"
msgstr "Falló la creación de perfil"
#, fuzzy, c-format
msgid "failed to create save dir '%s': %s"
msgstr "Falló al crear '%s': %s"
#, c-format
msgid "failed to create save dir '%s'"
msgstr ""
msgid "failed to create socket"
msgstr "no fue posible crear socket"
@@ -26561,9 +26596,9 @@ msgstr "Falló la creación de socket necesaria para '%s'"
msgid "failed to create socketpair"
msgstr "no fue posible crear socket"
#, fuzzy, c-format
msgid "failed to create state dir '%s': %s"
msgstr "Falló al crear '%s': %s"
#, c-format
msgid "failed to create state dir '%s'"
msgstr ""
msgid "failed to create the RADOS cluster"
msgstr "Falló crear el clúster de RADOS"
@@ -27096,6 +27131,9 @@ msgstr "No se pudo leer UID ni GID desde '%s'"
msgid "failed to parse node name index"
msgstr "Falló al analizar el nombre del bloque %s"
msgid "failed to parse original memlock size"
msgstr ""
#, fuzzy, c-format
msgid "failed to parse port number '%s'"
msgstr "Falló la lectura del número del puerto"
@@ -27573,6 +27611,10 @@ msgstr "fd debe ser válido"
msgid "fd passing is not supported by this connection"
msgstr "esta función no está soportada por el controlador de conexión"
#, c-format
msgid "fdset '%u' is already in use by qemu"
msgstr ""
msgid "fetch or set the currently defined set of logging filters on daemon"
msgstr ""
@@ -29161,9 +29203,6 @@ msgstr "Acción de falla inválida: '%s'\n"
msgid "invalid fd %d for %s"
msgstr "FD inválido %d para %s"
msgid "invalid file descriptor"
msgstr ""
msgid "invalid flag"
msgstr "Indicador inválido"
@@ -29747,10 +29786,10 @@ msgstr "Falló nl_recv"
msgid "library call failed: %s"
msgstr "Falló la escritura: %s"
msgid "librbd encryption engine only supports luks/luks2 formats"
msgid "librbd encryption is not supported by this QEMU binary"
msgstr ""
msgid "librbd encryption is not supported by this QEMU binary"
msgid "librbd encryption is supported only with RBD backed disks"
msgstr ""
#, fuzzy
@@ -31073,6 +31112,9 @@ msgstr ""
msgid "missing 'server' attribute in JSON backing definition for NFS volume"
msgstr ""
msgid "missing 'start' attribute for clock with offset='absolute'"
msgstr ""
#, c-format
msgid ""
"missing 'start' attribute in <address> element in <nat> in <forward> in "
@@ -31613,6 +31655,9 @@ msgstr ""
msgid "missing path for <reservations/>"
msgstr "falta la ruta para <reservations/>"
msgid "missing path to restore from"
msgstr ""
msgid "missing per-device path"
msgstr "Falta ruta per-device"
@@ -31858,6 +31903,10 @@ msgstr "no se encuentra el nombre del equipo"
msgid "missing value for migration parameter '%s'"
msgstr "Falta información de nombre en %s"
#, fuzzy
msgid "missing values for acceleration"
msgstr "Falta información de nombre"
msgid "missing vendor"
msgstr "No se encuentra proveedor"
@@ -33333,7 +33382,8 @@ msgid "only 'pci' addresses are supported for the virtio-pmem device"
msgstr ""
msgid ""
"only 1 graphics device of each type (sdl, vnc, spice, headless) is supported"
"only 1 graphics device of each type (sdl, vnc, spice, headless, dbus) is "
"supported"
msgstr ""
msgid "only JSON objects can be top level"
@@ -33891,10 +33941,8 @@ msgstr "El controlador de disco %s no tiene soporte"
msgid "pci device %s is not a PCI-Express device"
msgstr "el dispositivo %s no es un dispositivo PCI"
msgid "pci device assignment backend driver (e.g. 'vfio' or 'kvm')"
msgid "pci device assignment backend driver (e.g. 'vfio' or 'xen')"
msgstr ""
"Controlador de segundo plano de asignación de dispositivo de pci (e.j. "
"'vfio' or 'kvm')"
msgid ""
"pci-expander-bus controllers are only supported on 440fx-based machinetypes"
@@ -34264,6 +34312,9 @@ msgstr "Detiene a la fuerza una red determinada."
msgid "print statistics for any kind of job (even failed ones)"
msgstr ""
msgid "print the XML used to start the copy job instead of starting the job"
msgstr ""
#, fuzzy
msgid "print the admin server URI"
msgstr "Imprime el nombre de host de dominio"
@@ -34327,7 +34378,7 @@ msgstr ""
"Falta el valor del atributo requerido en el registro DNS TXT llamado '%s'de "
"red %s"
msgid "property with name 'id' can't be overriden"
msgid "property with name 'id' can't be overridden"
msgstr ""
#, c-format
@@ -34510,9 +34561,6 @@ msgstr ""
msgid "query-fdsets reply was missing 'fdset-id'"
msgstr ""
msgid "query-fdsets return data missing 'fd'"
msgstr ""
msgid "query-fdsets return data missing fd array element"
msgstr ""
@@ -34830,6 +34878,9 @@ msgstr ""
"Retirar los volúmenes de almacenamiento (lista de destinos o rutas de "
"origen) (ver domblklist)"
msgid "remove domain logs"
msgstr ""
msgid "remove domain managed state file"
msgstr "Retira el archivo de estado administrado de domino"
@@ -35254,9 +35305,6 @@ msgstr "saving domain '%s' en '%s': falló la escritura"
msgid "sbbc configuration is not supported by this QEMU binary"
msgstr "Binario QEMU no admite descarte"
msgid "scheduler information is not supported on this platform"
msgstr ""
#, fuzzy, c-format
msgid "scheme and host are mandatory vz migration URI: %s"
msgstr "Falta host en migración URI: %s"
@@ -35376,7 +35424,9 @@ msgid "security model string exceeds max %d bytes"
msgstr ""
"la cadena del modelo de seguridad supera la cantidad de %d bytes permitidos "
msgid "select particular graphical display (e.g. \"vnc\", \"spice\", \"rdp\")"
msgid ""
"select particular graphical display (e.g. \"vnc\", \"spice\", \"rdp\", \"dbus"
"\")"
msgstr ""
#, fuzzy
@@ -37267,6 +37317,10 @@ msgstr ""
"No se puede borrar interfaz '%s' en red '%s'. Actualmente esta siendo "
"utilizada por dominios %d."
#, c-format
msgid "unable to determine access mode of %s"
msgstr ""
#, fuzzy
msgid "unable to determine if checkpoint has parent"
msgstr "No se puede determinar si la instantánea tiene padre"
@@ -37600,6 +37654,9 @@ msgstr "No es posible establecer la pertenencia de '%s' para %d:%d"
msgid "unable to set ownership of '%s' to user %d:%d"
msgstr "No es posible establecer la pertenencia de '%s' para el usuario %d:%d"
msgid "unable to set pipe size"
msgstr ""
#, c-format
msgid "unable to set security context '%s'"
msgstr "no es posible definir contexto de seguridad '%s'"
@@ -37642,6 +37699,10 @@ msgstr ""
msgid "unable to stat block copy target '%s'"
msgstr "No se puede 'stat bind' target %s"
#, c-format
msgid "unable to stat file descriptor %d path %s"
msgstr ""
#, c-format
msgid "unable to stat for disk %s: %s"
msgstr "No es posible hacer estadística para disco %s: %s"
@@ -39542,6 +39603,9 @@ msgstr "virDomainGetXMLDesc con indicador seguro"
msgid "virDomainSnapshotGetXMLDesc with secure flag"
msgstr "virDomainSnapshotGetXMLDesc con indicador seguro"
msgid "virFileDiskCopy unsupported on this platform"
msgstr ""
msgid "virFileOpenAs is not implemented for WIN32"
msgstr "virFileOpenAs no está implementada para WIN32"
@@ -39630,6 +39694,12 @@ msgstr "Tipo de dirección de disco '%s' no soportado "
msgid "virtio non-transitional model not supported for this qemu"
msgstr "Operación vport '%s' no se admite para host%d"
msgid "virtio rss hash report is not supported with this QEMU binary"
msgstr ""
msgid "virtio rss is not supported with this QEMU binary"
msgstr ""
#, c-format
msgid "virtio rx_queue_size option %d is not same with tx_queue_size %d"
msgstr ""
@@ -40131,6 +40201,53 @@ msgstr ""
msgid "{[--%s] <string>}..."
msgstr "{[--%s] <string>}..."
#~ msgid "%s: unable to determine access mode of fd %d"
#~ msgstr "%s: no se puede determinar modo de acceso de FD %d"
#~ msgid "Can only open VNC or SPICE graphics backends, not %s"
#~ msgstr ""
#~ "Solo puede abrir las gráficas open VNC or SPICE graphics backends, not %s"
#~ msgid "Failed to release port %d"
#~ msgstr "No se pudo lanzar puerto %d"
#, fuzzy
#~ msgid "%s: failed to communicate with bridge helper: %s%s"
#~ msgstr "%s: falló al escribir en el archivo de registro: %s"
#, fuzzy
#~ msgid "HTP resizing is not supported by this QEMU binary"
#~ msgstr "Binario QEMU no admite descarte"
#, fuzzy
#~ msgid "failed to create channel dir '%s': %s"
#~ msgstr "Falló al crear '%s': %s"
#, fuzzy
#~ msgid "failed to create dump dir '%s': %s"
#~ msgstr "Falló al crear '%s': %s"
#, fuzzy
#~ msgid "failed to create lib dir '%s': %s"
#~ msgstr "Falló al crear '%s': %s"
#, fuzzy
#~ msgid "failed to create log dir '%s': %s"
#~ msgstr "Falló al crear '%s': %s"
#, fuzzy
#~ msgid "failed to create save dir '%s': %s"
#~ msgstr "Falló al crear '%s': %s"
#, fuzzy
#~ msgid "failed to create state dir '%s': %s"
#~ msgstr "Falló al crear '%s': %s"
#~ msgid "pci device assignment backend driver (e.g. 'vfio' or 'kvm')"
#~ msgstr ""
#~ "Controlador de segundo plano de asignación de dispositivo de pci (e.j. "
#~ "'vfio' or 'kvm')"
#~ msgid "Call to utsname failed: %d"
#~ msgstr "Falló la llamada a utsname: %d"
@@ -40316,10 +40433,6 @@ msgstr "{[--%s] <string>}..."
#~ msgid "missing boot device"
#~ msgstr "No se encuentra dispositivo de arranque"
#, fuzzy
#~ msgid "missing values for acceleration"
#~ msgstr "Falta información de nombre"
#~ msgid "sgio of shared disk '%s' conflicts with other active domains"
#~ msgstr ""
#~ "sgio de disco compartido '%s' en conflicto con otros dominios activos"

Some files were not shown because too many files have changed in this diff Show More