1
0
mirror of https://gitlab.com/libvirt/libvirt.git synced 2025-09-28 09:45:00 +03:00

Compare commits

..

509 Commits

Author SHA1 Message Date
Daniel P. Berrangé
3e02ee9b5d network: avoid trying to create global firewall rules if unprivileged
The unprivileged libvirtd does not have permission to create firewall
rules, or bridge devices, or do anything to the host network in
general. Historically we still activate the network driver though and
let the network start API call fail.

The startup code path which reloads firewall rules on active networks
would thus effectively be a no-op when unprivileged as it is impossible
for there to be any active networks

With the change to use a global set of firewall chains, however, we now
have code that is run unconditionally.

Ideally we would not register the network driver at all when
unprivileged, but the entanglement with the virt drivers currently makes
that impractical. As a temporary hack, we just make the firewall reload
into a no-op.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
(cherry picked from commit 5d010c3df6)
2019-03-20 17:10:44 +00:00
Daniel P. Berrangé
095c450366 network: split setup of ipv4 and ipv6 top level chains
During startup libvirtd creates top level chains for both ipv4
and ipv6 protocols. If this fails for any reason then startup
of virtual networks is blocked.

The default virtual network, however, only requires use of ipv4
and some servers have ipv6 disabled so it is expected that ipv6
chain creation will fail. There could equally be servers with
no ipv4, only ipv6.

This patch thus makes error reporting a little more fine grained
so that it works more sensibly when either ipv4 or ipv6 is
disabled on the server. Only the protocols that are actually
used by the virtual network have errors reported.

Reviewed-by: Andrea Bolognani <abologna@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
(cherry picked from commit 686803a1a2)
2019-03-20 17:10:38 +00:00
Daniel P. Berrangé
b990740b12 network: improve error report when firewall chain creation fails
During startup we create some top level chains in which all
virtual network firewall rules will be placed. The upfront
creation is done to avoid slowing down creation of individual
virtual networks by checking for chain existance every time.

There are some factors which can cause this upfront creation
to fail and while a message will get into the libvirtd log
this won't be seen by users who later try to start a virtual
network. Instead they'll just get a message saying that the
libvirt top level chain does not exist. This message is
accurate, but unhelpful for solving the root cause.

This patch thus saves any error during daemon startup and
reports it when trying to create a virtual network later.

Reviewed-by: Andrea Bolognani <abologna@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
(cherry picked from commit 9f4e35dc73)
2019-03-20 17:10:28 +00:00
Daniel P. Berrangé
e8ec259220 storage: add support for new rbd_list2 method
The rbd_list method has been deprecated in Ceph >= 14.0.0
in favour of the new rbd_list2 method which populates an
array of structs.

Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
(cherry picked from commit 3aa190f2a4)
2019-03-20 17:10:16 +00:00
Daniel P. Berrangé
092320f10b storage: split off code for calling rbd_list
The rbd_list method has a quite unpleasant signature returning an
array of strings in a single buffer instead of an array. It is
being deprecated in favour of rbd_list2. To maintain clarity of
code when supporting both APIs in parallel, split the rbd_list
code out into a separate method.

In splitting this we now honour the rbd_list failures.

Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
(cherry picked from commit 28c8403ed0)
2019-03-20 17:10:10 +00:00
Daniel Veillard
cc9c141b08 Release of libvirt-5.1.0
* docs/news.xml: updated for release

Signed-off-by: Daniel Veillard <veillard@redhat.com>
2019-03-04 10:58:02 +01:00
Eric Blake
d542b45490 news: More 5.1 updates
Mention my snapshot bug fixes, and the corresponding virsh command-line
parse tweak I added while working on the snapshot bug fixes.

Signed-off-by: Eric Blake <eblake@redhat.com>
2019-03-01 08:24:12 -06:00
Eric Blake
3926d0aa49 qemu: Fix snapshot redefine vs. domain state bug
The existing qemu snapshot code has a slight bug: if the domain
is currently pmsuspended, you can't use the _REDEFINE flag even
though the current domain state should have no bearing on being
able to recreate metadata state; and conversely, you can use the
_REDEFINE flag to create snapshot metadata claiming to be
pmsuspended as a bypass to the normal restrictions that you can't
create an original qemu snapshot in that state (the restriction
against pmsuspend is specific to qemu, rather than part of the
driver-agnostic snapshot_conf code).

Fix this by checking the snapshot state (when redefining) instead
of the domain state (which is a subset of snapshot states).

Fixes the second problem mentioned in https://bugzilla.redhat.com/1680304

Signed-off-by: Eric Blake <eblake@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-03-01 08:23:31 -06:00
Jiri Denemark
5de5432e34 storage: Fix iscsi-direct volume size for volumes > 4GiB
Both block_size and nb_block are unit32_t and multiplying them overflows
at 4GiB.

Moreover, the iscsi_*10_* APIs use 32bit number of blocks and thus they
can only address images up to 2TiB with 512B blocks. Let's use 64b
iscsi_*16_* APIs instead.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
2019-02-28 16:07:53 +01:00
Michal Privoznik
bf5cf610f2 virISCSIDirectRefreshVol: Don't clear volumes in each run
When fetching LUNs from iscsi server the
virISCSIDirectReportLuns() is called. This function does some
libiscsi calls and then calls virISCSIDirectRefreshVol() over
each LUN found. It's unfortunate that the latter calls
virStoragePoolObjClearVols() as we lose all LUNs processed
in previous iterations.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
2019-02-28 15:55:48 +01:00
Andrea Bolognani
6097d1c8d2 news: Trivial style fixes
Some of the recent entries deviated from the established
style used throughout the file, so let's fix them.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
2019-02-28 15:24:23 +01:00
Michal Privoznik
fb3b41d225 news: Update for 5.1.0 release
Not exhaustive list of new features, improvements and bugfixes.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-02-28 14:26:59 +01:00
Michal Privoznik
290383cb2f iscsi_direct: Reset pool capacity and allocation just before refresh
Jirka reported a bug that with every 'virsh pool-refresh' an
iscsi-direct pool would grow and grow. The problem is that
virISCSIDirectRefreshVol() only adds to def->capacity and
def->allocation but nothing clears it out to begin with.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
2019-02-28 13:55:38 +01:00
Eric Blake
33a07b8e41 snapshot: Improve message for VIR_ERR_INVALID_DOMAIN_SNAPSHOT
For consistency with other error messages, and the fact that
the object is always called a virDomainSnapshot rather than
a mere virSnapshot, include the word "domain" in the error
message.

Suggested-by: John Ferlan <jferlan@redhat.com>
Signed-off-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2019-02-27 14:21:10 -06:00
Eric Blake
438ff36317 domain: Document VIR_DOMAIN_XML_MIGRATABLE
Commit 28f8dfdc (1.0.0) added a flag to virDomainGetXMLDesc, but
failed to document its effects.  And considering that the
MIGRATABLE flag has been the source of past bugs (CVE-2014-7823,
fixed in commit b1674ad5 (1.2.11), or even cf2d4c60 (1.2.13) where
flag mismatch broke virsh edit), make the wording wishy-washy
enough to discourage using the flag casually, by mentioning that
the resulting XML is more for internal use than for validation
against the schema.

Signed-off-by: Eric Blake <eblake@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-02-27 13:39:30 -06:00
Eric Blake
dafef600f4 snapshot: Permit redefine of offline external snapshot
Due to historical back-compat, bare 'virsh snapshot-create-as'
favors internal snapshots (but can't be used on domains with raw
storage), while 'virsh snapshot-create-as --disk-only' favors
external snapshots.  What's more, snapshots created with
--disk-only while the domain was running are marked as snapshot
state 'disk-snapshot', while snapshots created while the domain
was offline are marked as snapshot state 'shutdown' (a
'disk-snapshot' image might not be quiescent, while a 'shutdown'
snapshot always is).

But this leads to some interesting problems: if we create a
--disk-only snapshot of an offline guest, and then immediately try
to 'virsh snapshot-create --redefine' using the resulting XML to
overwrite the existing snapashot in place, things silently succeed,
but 'virsh snapshot-create --redefine --disk-only' fails with an
error message that the snapshot state is not 'disk-only'.  Worse,
if we delete the snapshot metadata first and then try to recreate
things, omitting --disk-only fails because the verification code
wants to force the default of an internal snapshot (which doesn't
work with raw disks), and using --disk-only still fails because the
snapshot XML is not 'disk-only' - making it impossible to recreate
the snapshot metadata (or to transfer it from one libvirtd host to
another).  Ideally, the presence or absence of the --disk-only
flag, and the presence or absence of an existing snapshot being
overwritten, shouldn't matter; if the XML is valid for one
situation, it should always be valid to redefine the metadata for
that snapshot.

Fix things by uniformly using virDomainSnapshotDefIsExternal()
(caching the results up front, and eliminating other 'if' clauses
now rendered redundant) when deciding whether the XML being
requested for redefinition should permit external or force internal
state capture (we got it right in only one out of three places in
the function).

See also https://bugzilla.redhat.com/1680304; this fixes the
domain-agnostic problems mentioned there, but another patch is
needed to fix further oddities with the qemu driver.  I did not
check for sure when the problems were introduced (git blame puts
some affected hunks as far back as 1.0.0), but it was definitely
been broken even before when commit 670e86bf (1.1.4) factored
redefine prep out of qemu code into the common snapshot_conf code.

Signed-off-by: Eric Blake <eblake@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-02-26 16:28:36 -06:00
Eric Blake
d152c727c6 snapshots: Avoid term 'checkpoint' for full system snapshot
Upcoming patches plan to introduce virDomainCheckpointPtr as a new
object for use in incremental backups, along with documentation on
how incremental backups differ from snapshots.  But first, we need
to rename any existing mention of a 'system checkpoint' to instead
be a 'full system snapshot', so that we aren't overloading
the term checkpoint.

Signed-off-by: Eric Blake <eblake@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-02-26 15:48:58 -06:00
Eric Blake
5817dec014 virsh: Elide backslash-newline in batch mode
The previous patch made it possible to split multiple commands by
adding newline, but not to split a long single command. The sequence
backslash-newline was being used as if it were a quoted newline
character, rather than completely elided the way the shell does.

Again, add more tests, although this time it seems more like I am
suffering from a leaning-toothpick syndrome with all the \.

Signed-off-by: Eric Blake <eblake@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-02-26 15:42:21 -06:00
Eric Blake
fe1b683fd0 virsh: Treat \n like ; in batch mode
I wanted to do a demonstration with virsh batch mode, which
takes multiple commands all packed into a single argument:

$ virsh -c test:///default 'echo a; echo b;'
a
b

but that produced a really long line, so I tried to make it
more legible:

$ virsh -c test:///default '
   echo a;
   echo b;
'
error: unknown command: '
'

Let's be more like the shell, and treat unquoted newline as a
command separator just as we do for semicolon.  In fact, with
that, I can even now mix styles:

$ virsh -c test:///default '
   echo a; echo b
   echo c
'
a
b
c

Signed-off-by: Eric Blake <eblake@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-02-26 14:16:04 -06:00
Yi Wang
12a5e10f02 qemu: fix vcpu pinning when not all vcpus are enabled
vcpupin will fail when maxvcpus is larger than current
vcpu:

virsh vcpupin win7 --vcpu 0 --cpulist 5-6
error: Requested operation is not valid: cpu affinity is not supported

win7 xml in the command above is like below:
...
<vcpu current="3" placement="static">8</vcpu>
...

The reason is vcpu[3] and vcpu[4] have zero tids and should not been
compared as valid situation in qemuDomainRefreshVcpuInfo().

This issue is introduced by commit 34f7743, which fix recording of vCPU
pids for MTTCG.

Signed-off-by: Yi Wang <wang.yi59@zte.com.cn>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
2019-02-26 13:40:35 +01:00
Diego Michelotto
d163b940a7 virfile: added GPFS as shared fs
Added GPFS as shared file system recognized during live migration
security checks.

GPFS is 'IBM General Parallel File System' also called
'IBM Spectrum Scale'

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

Signed-off-by: Diego Michelotto <diego.michelotto@cnaf.infn.it>
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2019-02-26 11:41:18 +01:00
Julio Faracco
ac62e297db lxc: Converting 'if, else' logic into a 'switch, case'
The structure used to handle network entries was based on 'if,else'
conditions. This commit converts this ugly structure into a switch to
clearify each option of the handler.

Signed-off-by: Julio Faracco <jcfaracco@gmail.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-02-25 10:41:39 -05:00
Julio Faracco
087a7c9a88 lxc: Introduce lxcNetworkParseDataType
Extract out the network "type" processing into it's own method
rather than inline within lxcNetworkParseDataSuffix.

Signed-off-by: Julio Faracco <jcfaracco@gmail.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-02-25 10:41:39 -05:00
Julio Faracco
f7fd10e5f8 lxc: Introduce lxcNetworkParseDataSuffix
This commit removes the full network entry setting: "lxc.network.X" to
type only. Like "type", "name", "flags", etc. This will handle entries
regardless of whether they are prefixed by "lxc.network." (today) or
"lxc.net.X." (the future).

Signed-off-by: Julio Faracco <jcfaracco@gmail.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-02-25 10:41:39 -05:00
Julio Faracco
0ebb057a2a lxc: Introduce lxcNetworkParseDataEntry
Refactor lxcNetworkWalkCallback to be a simple method to handle
both possible network settings with indexes or the simple one. It is
better the decouple the whole algorithm to parse data to only parse
which entry type libvirt is handling.

The new method is responsible to verify is the settings correspond to
network entry. Right now, it is only verifying "lxc.network.", but in
the future, it can be used to verify "lxc.net.X." too. Any other case
would be rejected.

On the other hand, the idea here is working only with types. If we know
that entry is part of network settings, after we just need to know which
type is. It keeps the handler simple.

Signed-off-by: Julio Faracco <jcfaracco@gmail.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-02-25 10:41:39 -05:00
Julio Faracco
e6cb63d2ef lxc: Create a separate method to handle IPv{4, 6} outside parser
The new method called lxcNetworkParseDataIPs() is responsible to handle
IPv{4,6} settings now. The idea is let lxcNetworkWalkCallback() method
handle all entries related to network definition only.

Signed-off-by: Julio Faracco <jcfaracco@gmail.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-02-25 10:41:39 -05:00
Andrea Bolognani
40204c05c5 util: Report error in virFileWrapperFdClose()
libvirt_iohelper is used internally by the virFileWrapperFd APIs;
more specifically, in the QEMU driver we have the doCoreDump() and
qemuDomainSaveMemory() helper functions as users, and those in turn
end up being called by the implementation of several driver APIs.

By calling virReportError() if libvirt_iohelper has failed, we
overwrite whatever generic error message QEMU might have raised
with the more useful one generated by the helper program.

After this commit, the user will be able to see the error directly
instead of having to dig in the journal or libvirtd log.

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

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-25 16:34:37 +01:00
Andrea Bolognani
4640131ba3 util: Move error reporting back to virFileWrapperFdClose()
virFileWrapperFdFree(), like all free functions, is supposed
to only release allocated resources, so error reporting is
better suited for virFileWrapperFdClose().

This reverts commit b0c3e93180.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-25 16:34:33 +01:00
Andrea Bolognani
e0e16a3d9a qemu: Always call virFileWrapperFdClose()
Right now we're reporting errors in virFileWrapperFdFree(),
but that's hardly the appropriate place to do so, as free
functions are supposed to do nothing more than release
allocated resources.

We want to move that code back into virFileWrapperFdClose(),
but before we can do that we need to make sure the function
is actually called every time we're done processing the
wrapped file. The cleanup path is the obvious candidate.

In a couple of cases we can just move the call, but for the
remaining ones we need to duplicate it instead in order not
to alter the existing behavior. We do, however, make sure
that in all cases a failure to properly close the wrapper
results in the overall operation being reported as failed.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-25 16:34:30 +01:00
Andrea Bolognani
aa60562869 util: Make it safe to call virFileWrapperFdClose() multiple times
We'll want to use this function in the cleanup path soon,
and in order to be able to do that we need to make sure we
can call it multiple times on the same virFileWrapperFd
without side effects.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-25 16:34:22 +01:00
Marc Hartmayer
d7be1b1c5e qemu: Replace virDomainChrSourceDefFree with virObjectUnref
Replace virDomainChrSourceDefFree with virObjectUnref.

Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
2019-02-25 14:38:30 +01:00
Marc Hartmayer
527da4ce9b qemu: Use refcounting for priv->monConfig
Use refcounting for priv->monConfig instead of asymmetric freeing.

Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
Reviewed-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
2019-02-25 14:38:30 +01:00
Christian Ehrhardt
27a9ebf281 security: aa-helper: generate more rules for gl devices
Change fb01e1a44 "virt-aa-helper: generate rules for gl enabled
graphics devices" implemented the detection for gl enabled
devices in virt-aa-helper. But further testing showed
that it will need much more access for the full gl stack
to work.

Upstream apparmor just recently split those things out and now
has two related abstractions at
https://gitlab.com/apparmor/apparmor/blob/master:
- dri-common at /profiles/apparmor.d/abstractions/dri-common
- mesa: at /profiles/apparmor.d/abstractions/mesa

If would be great to just include that for the majority of
rules, but they are not yet in any distribution so we need
to add rules inspired by them based on the testing that we
can do.

Furthermore qemu with opengl will also probe the backing device
of the rendernode for attributes which should be safe as
read-only wildcard rules.

Fixes: https://bugs.launchpad.net/ubuntu/+source/libvirt/+bug/1815452

Acked-by: Jamie Strandboge <jamie@canonical.com>
Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
2019-02-25 08:57:33 +01:00
Christian Ehrhardt
d85e8e400b security: aa-helper: allow virt-aa-helper to read /dev/dri
Change fb01e1a44 "virt-aa-helper: generate rules for gl enabled
graphics devices" implemented the detection for gl enabled
devices in virt-aa-helper. But it will in certain cases e.g. if
no rendernode was explicitly specified need to read /dev/dri
which it currently isn't allowed.

Add a rule to the apparmor profile of virt-aa-helper itself to
be able to do that.

Acked-by: Jamie Strandboge <jamie@canonical.com>
Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
2019-02-25 08:50:38 +01:00
Roman Bogorodskiy
12f4bf80a7 bhyve: add bhyveDomainDefNeedsISAController helper
Add a bhyveDomainDefNeedsISAController() helper function
which by domain configuration determines whether LPC controller is
required or not.

Signed-off-by: Roman Bogorodskiy <bogorodskiy@gmail.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-24 17:24:00 +04:00
Roman Bogorodskiy
a042c94880 news: document bhyve msrs feature
Describe bhyve's ignoring unknown MSRs access feature
introduced by commit e9528f41c6.

Signed-off-by: Roman Bogorodskiy <bogorodskiy@gmail.com>
Reviewed-by: Cole Robinson <crobinso@redhat.com>
2019-02-24 13:38:23 +04:00
Roman Bogorodskiy
e9528f41c6 bhyve: implement ignore unknown MSRs feature
Implement the MSRs ignore unknown reads and writes feature
that's specified using:

  <features>
    ...
    <msrs unknown='ignore'>
    ...
  </features>

in the domain XML.

In bhyve, it's just passing '-w' command line argument to the bhyve(8)
executable.

Signed-off-by: Roman Bogorodskiy <bogorodskiy@gmail.com>
Reviewed-by: Cole Robinson <crobinso@redhat.com>
2019-02-24 13:20:51 +04:00
Roman Bogorodskiy
b71de701b8 conf: introduce 'msrs' feature
Introduce the 'msrs' feature element that controls Model Specific
Registers related behaviour. At this moment it allows only
single tunable attribute "unknown":

 <msrs unknown='ignore|fault'/>

Which tells hypervisor to ignore accesses to unimplemented
Model Specific Registers. The only user of that for now is going
to be the bhyve driver.

Signed-off-by: Roman Bogorodskiy <bogorodskiy@gmail.com>
Reviewed-by: Cole Robinson <crobinso@redhat.com>
2019-02-24 12:33:42 +04:00
Jiri Denemark
ac5d4e6cb0 cputest: Use python3 in CPU parser scripts
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-22 18:41:19 +01:00
Jiri Denemark
78b148c3c8 cputest: Adapt scripts to split cpu_map
The tests/cputestdata/cpu-parse.sh script has been broken since the
cpu_map.xml file was split into several XMLs.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-22 18:41:19 +01:00
David Kiarie
cb6a46364b src/xenconfig: update copyright notice
Signed-off-by: David Kiarie <davidkiarie4@gmail.com>
2019-02-22 12:52:25 +00:00
Ján Tomko
3b4819802b qemu: fix memory leak in qemuBuildDiskDeviceStr
Commit a1dce962 added the allocated scsiVPDDeviceId without freeing it.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
2019-02-22 12:56:13 +01:00
Peter Krempa
0c5d8300c5 qemu: domain: Use VIR_AUTOCLEAN for virBuffer
Replace all uses where virBuffer would need clearing on the cleanup
path.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
2019-02-22 10:05:45 +01:00
Peter Krempa
55ee6ac8de util: buffer: Introduce VIR_AUTOCLEAN function for virBuffer
virBuffer is almost always stack-allocated, but requires freeing of the
internals on error. Introduce a VIR_AUTOCLEAN function to deal with
this.

Along with the addition add a test which would leak the buffer contents
if it weren't autocleaned.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
2019-02-22 10:05:45 +01:00
Peter Krempa
c73f752e46 util: alloc: Introduce 'VIR_AUTOCLEAN' macros for clearing stack'd structs
The new utility macros are useful for variables we put on the stack but
require some cleanup. The most prominent of those is virBuffer which is
used almost exclusively in that way.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
2019-02-22 10:05:45 +01:00
Peter Krempa
e25492444f util: buf: Remove virBufferEscapeN
The function was used only in the tests, remove it.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
2019-02-22 10:05:45 +01:00
Peter Krempa
3d6ba96ff6 tests: buf: Fix debug messages in 'testBufEscapeRegex'
The messages reference testBufEscapeN instead of testBufEscapeRegex.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
2019-02-22 10:05:45 +01:00
Peter Krempa
c97679c680 util: buf: Fix memory leak in virBufferEscapeN
The conversion to VIR_AUTOFREE of 'escapeList' introduced memory leak of
the copied item to be escaped:

==17517== 2 bytes in 1 blocks are definitely lost in loss record 1 of 32
==17517==    at 0x483880B: malloc (vg_replace_malloc.c:309)
==17517==    by 0x54D666D: strdup (in /usr/lib64/libc-2.28.so)
==17517==    by 0x497663E: virStrdup (virstring.c:956)
==17517==    by 0x497663E: virStrdup (virstring.c:945)
==17517==    by 0x48F8853: virBufferEscapeN (virbuffer.c:707)
==17517==    by 0x403C9D: testBufEscapeN (virbuftest.c:383)
==17517==    by 0x405FA8: virTestRun (testutils.c:174)
==17517==    by 0x403A70: mymain (virbuftest.c:517)
==17517==    by 0x406BC9: virTestMain (testutils.c:1097)
==17517==    by 0x5470412: (below main) (in /usr/lib64/libc-2.28.so)

[...] (all other have same backtrace as it happens in a loop)

Fix it by reverting all the VIR_AUTO nonsense in this function as there
is exactly one place where it's handled.

This effectively reverts commits:
d0a92a0371
96fbf6df90
d261ed2fb1

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
2019-02-22 10:05:45 +01:00
Peter Krempa
a3d0d77e74 util: buffer: Remove misleading AUTOPTR func for 'virBuffer'
'virBufferFreeAndReset' does not free the top level structure itself.
Additionally we almost exclusively use stack'd buffers rather than
pointers.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
2019-02-22 10:05:45 +01:00
Laine Stump
82fe58ff26 network: add netmask to dhcp range of dnsmasq conf file for IPv4
dnsmasq documentation says that the *IPv4* prefix/network
address/broadcast address sent to dhcp clients will be automatically
determined by dnsmasq by looking at the interface it's listening on,
so the original libvirt code did not add a netmask to the dnsmasq
commandline (or later, the dnsmasq conf file).

For *IPv6* however, dnsmasq apparently cannot automatically determine
the prefix (functionally the same as a netmask), and it must be
explicitly provided in the conf file (as a part of the dhcp-range
option). So many years after IPv4 DHCP support had been added, when
IPv6 dhcp support was added the prefix was included at the end of the
dhcp-range setting, but only for IPv6.

A user had reported a bug on a host where one of the interfaces was a
superset of the libvirt network where dhcp is needed (e.g., the host's
ethernet is 10.0.0.20/8, and the libvirt network is 10.10.0.1/24). For
some reason dnsmasq was supplying the netmask for the /8 network to
clients requesting an address on the /24 interface.

This seems like a bug in dnsmasq, but even if/when it gets fixed
there, it looks like there is no harm in just always adding the
netmask to all IPv4 dhcp-range options similar to how prefix is added
to all IPv6 dhcp-range options.

Signed-off-by: Laine Stump <laine@laine.org>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-02-21 13:06:16 -05:00
Laine Stump
abb293a56f util: set missing data length in virSocketAddrPrefixToNetmask()
This fixes a bug that has been present since the original version of
the function was pushed in commit 1ab80f3 on Nov. 26 2010 (by me). The
virSocketAddr::len was not being set.

Apparently until now we were always calling
virSocketAddrPrefixToNetmask with virSocketAddr object that was
already (coincidentally) initialized for the proper address family,
but the bug became apparent when trying to use it to fill in an
otherwise uninitialized object.

Signed-off-by: Laine Stump <laine@laine.org>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-02-21 12:59:09 -05:00
Eric Blake
c900474e6a snapshot: Saner use of uuid
Most of the code base is fairly consistent about using the name
'uuidstr' when dealing with a formatted human-readable form, and
'uuid' when dealing with the smaller raw bytes form. Fix
snapshot_conf to comply, as well as reducing the scope of a human
string to only the error message that needs it.

Signed-off-by: Eric Blake <eblake@redhat.com>
2019-02-21 11:40:04 -06:00
Marc Hartmayer
27eb324668 udev: wake up the udev thread for stopping it
Signal the udev thread the change of `priv->threadQuit` by using the
thread condition.

Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-02-20 14:07:48 -05:00
Marc Hartmayer
9380d92d6f udev: nodeStateInitializeEnumerate: remove watch handle in case of an error
If the udev thread is stopped, it must be ensured that the watch
handle is also removed from the main loop.

Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-02-20 14:07:42 -05:00
John Ferlan
632a8697c6 conf: Use VIR_STEAL_PTR in domain_conf
In preparation for some autofree mods.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-20 13:25:46 -05:00
Michal Privoznik
740aeb349f testutils: Explicitly name virTestCompare*() arguments
Currently, some arguments are called strcontent and strsrc, or
content and src or some other combination. This makes it
impossible to see at the first glance what argument is supposed
to represent 'expected' value and which one represents 'actual'
value. Rename the arguments to make it obvious.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-20 15:54:41 +01:00
Michal Privoznik
9de317d0d1 virTestCompareToULL: Rename local variables
The current naming makes it hard for me to see which holds the
expected value and which holds the actual value. Rename them to
make it obvious.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-20 15:54:31 +01:00
Michal Privoznik
86d1f08669 virTestCompareToULL: Use VIR_AUTOFREE()
In order to save a few lines of code, and also since it's hype
let's use VIR_AUTOFREE() for the two strings we allocate there.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-20 15:53:32 +01:00
Andrea Bolognani
939f254234 iohelper: Remove remaining newlines from error messages
The iohelper is an internal program that's only supposed to
be called by libvirt, and whatever output it might produce
will ultimately be passed to virReportError() or similar.

Since we do not want strings passed to those functions to
contain newlines, we can simply not output them in the first
place.

This is what happens in pretty much all cases already, but
in a couple instances newlines have managed to slip in.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Laine Stump <laine@laine.org>
2019-02-20 08:51:39 +01:00
Eric Blake
a27031c408 snapshot: Define explicit flags for snapshot xml
Commit f609cb85 (0.9.5) introduced virDomainSnapshotGetXMLDesc()'s use
of @flags as a subset of virDomainXMLFlags, documenting that 2 of the
3 flags defined at the time would never be valid.  Later, commit
28f8dfdc (1.0.0) introduced a new flag, VIR_DOMAIN_XML_MIGRATABLE, but
did not adjust the snapshot documentation to declare it as invalid.
However, since the flag is not accepted as valid by any of the
drivers (remote is just passthrough; esx and vbox don't support flags;
qemu, test, and vz only support VIR_DOMAIN_XML_SECURE), and it is
unlikely that the domain state saved off during a snapshot creation
needs to be migration-friendly (as the snapshot is not the source of
a migration), it is easier to just define an explicit set of supported
flags directly related to the snapshot API rather than trying to
borrow from domain API, and risking confusion if even more domain
flags are added later (in fact, I have an upcoming patch that plans to
add a new flag to virDomainGetXMLDesc that makes no sense for
snapshots).

There is no API or ABI impact (since we purposefully used unsigned int
rather than an enum type in public API, and since the new flag name
carries the same value as the reused name).

Signed-off-by: Eric Blake <eblake@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-02-19 21:34:42 -06:00
Eric Blake
12a51f372a domain: Define explicit flags for saved image xml
Commit d2a929d4 (0.9.4) defined virDomainSaveImageGetXMLDesc()'s use
of @flags as a subset of virDomainXMLFlags, documenting that 2 of the
3 flags defined at the time would never be valid.  Later, commit
28f8dfdc (1.0.0) introduced a new flag, VIR_DOMAIN_XML_MIGRATABLE, but
did not adjust the save image documentation to declare it as invalid.
Later, commit a67e3872 (3.7.0) blindly copied and pasted the same text
into virDomainManagedSaveGetXMLDesc.

However, since the flag is not accepted as valid by any of the
drivers (remote is just passthrough; and qemu is the only supporting
driver for either API, with support for just VIR_DOMAIN_XML_SECURE),
it is easier to just define an explicit set of supported flags
directly related to the save image API rather than trying to borrow
from live domain API, and risking confusion if even more domain flags
are added later (in fact, I have an upcoming patch that plans to add
a new flag to virDomainGetXMLDesc that makes no sense for saved
images).  We may someday decide that saved images need to support the
_MIGRATABLE flag, as it is possible to load a saved image with a
different version of libvirt than the one that created it, but that
can be a separate patch if it is ever needed.  Meanwhile, it DOES make
sense to reuse the same flags for SaveImage and for ManagedSave (since
ManagedSave is really just sugar for creating a normal SaveImage in a
location controlled by libvirt instead of by the user).

There is no API or ABI impact (since we purposefully used unsigned int
rather than an enum type in public API, and since the new flag name
carries the same value as the old reused name).

Signed-off-by: Eric Blake <eblake@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-02-19 21:34:42 -06:00
Eric Blake
022eeddf29 qemu: Use correct domain xml flag
Although VIR_DOMAIN_DEF_FORMAT_INACTIVE and VIR_DOMAIN_XML_INACTIVE
happen to have the same value (1<<1), they come from different enums;
and it is nicer to reason about a 'flags' variable if all uses of
that variable are compared against the same enum type.  Messed up in
commit 06f75ff2 (3.8.0).

Signed-off-by: Eric Blake <eblake@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-02-19 17:02:43 -06:00
Eric Blake
27c8fd7490 domain: Fix unknown flags diagnosis in virDomainGetXMLDesc
Many drivers had a comment that they did not validate the incoming
'flags' to virDomainGetXMLDesc() because they were relying on
virDomainDefFormat() to do it instead. This used to be the case
(at least since 461e0f1a and friends in 0.9.4 added unknown flag
checking in general), but regressed in commit 0ecd6851 (1.2.12),
when all of the drivers were changed to pass 'flags' through the
new helper virDomainDefFormatConvertXMLFlags(). Since this helper
silently ignores unknown flags, we need to implement flag checking
in each driver instead.

Annoyingly, this means that any new flag values added will silently
be ignored when targeting an older libvirt, rather than our usual
practice of loudly diagnosing an unsupported flag.  Add comments
in domain_conf.[ch] to remind us to be extra vigilant about the
impact when adding flags (a new flag to add data is safe if the
older server omitting the requested data doesn't break things in
the newer client; a new flag to suppress data rather than enhancing
the existing VIR_DOMAIN_XML_SECURE may form a data leak or even a
security hole).

In the qemu driver, there are multiple callers all funnelling to
qemuDomainDefFormatBufInternal(); many of them already validated
flags (and often only a subset of the full set of possible flags),
but for ease of maintenance, we can also check flags at the common
helper function.

Signed-off-by: Eric Blake <eblake@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-02-19 16:52:51 -06:00
Chris Venteicher
5b13da5ca2 qemu_process: Enter QMP command mode when starting QEMU Process
qemuProcessQMPStart starts a QEMU process and monitor connection that
can be used by multiple functions possibly for multiple QMP commands.

The QMP exchange to exit capabilities negotiation mode and enter command
mode can only be performed once after the monitor connection is
established.

Move responsibility for entering QMP command mode into the
qemuProcessQMP code so multiple functions can issue QMP commands in
arbitrary orders.

This also simplifies the functions using the connection provided by
qemuProcessQMPStart to issue QMP commands.

Test code now needs to call qemuMonitorSetCapabilities to send the
message to switch to command mode because the test code does not use the
qemuProcessQMP command that internally calls qemuMonitorSetCapabilities.

Signed-off-by: Chris Venteicher <cventeic@redhat.com>
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-19 18:44:49 +01:00
Chris Venteicher
5724dca135 qemu_process: Use unique directories for QMP processes
Multiple QEMU processes for QMP commands can operate concurrently.

Use a unique directory under libDir for each QEMU process to avoid
pidfile and unix socket collision between processes.

The pid file name is changed from "capabilities.pidfile" to "qmp.pid"
because we no longer need to avoid a possible clash with a qemu domain
called "capabilities" now that the processes artifacts are stored in
their own unique temporary directories.

"Capabilities" was changed to "qmp" in the pid file name because these
processes are no longer specific to the capabilities usecase and are
more generic in terms of being used for any general purpose QMP message
exchanges with a QEMU process that is not associated with a domain.

Signed-off-by: Chris Venteicher <cventeic@redhat.com>
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-19 18:44:44 +01:00
Jiri Denemark
f87eb56067 qemu_process: Hide qemuProcessQMPStop
Users qemuProcessQMP struct were always forced to call both
qemuProcessQMPStop and qemuProcessQMPFree when they are done with the
process. We can just call qemuProcessQMPStop from qemuProcessQMPFree and
let users call qemuProcessQMPFree only.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-19 18:44:39 +01:00
Chris Venteicher
e691b150e4 qemu_process: Document and cleanup qemuProcessQMPNew
qemuProcessQMPNew is one of the public functions used to create and
manage a QEMU process for QMP command exchanges outside of domain
operations.

Add descriptive comment block, debug statement and make source
consistent with the cleanup / VIR_STEAL_PTR format used elsewhere.

Signed-off-by: Chris Venteicher <cventeic@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-19 18:44:13 +01:00
Chris Venteicher
095d36d052 qemu_process: Stop retaining monitor config in qemuProcessQMP
The monitor config data is removed from the qemuProcessQMP struct.

The monitor config data can be initialized immediately before call to
qemuMonitorOpen and does not need to be maintained after the call
because qemuMonitorOpen copies any strings it needs.

Signed-off-by: Chris Venteicher <cventeic@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-19 18:44:10 +01:00
Chris Venteicher
9ab441c8c2 qemu_process: Setup paths within qemuProcessQMPInit
Move code for setting paths and prepping file system from
qemuProcessQMPNew to qemuProcessQMPInit.

This keeps qemuProcessQMPNew limited to data structures and path
initialization is done in qemuProcessQMPInit.

The patch is a non-functional, cut / paste change, however goto is now
"cleanup" rather than "error".

Signed-off-by: Chris Venteicher <cventeic@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-19 18:44:05 +01:00
Chris Venteicher
9f25cdf710 qemu_process: Store libDir in qemuProcessQMP struct
Store libDir path in the qemuProcessQMP struct in anticipation of moving
path construction code into qemuProcessQMPInit function.

Signed-off-by: Chris Venteicher <cventeic@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-19 18:44:01 +01:00
Chris Venteicher
126f77b55f qemu_process: Move monitor code to qemuProcessQMPConnectMonitor
All code related to QEMU monitor is moved from qemuProcessQMPNew and
qemuProcessQMPInit into qemuProcessQMPConnectMonitor.

Signed-off-by: Chris Venteicher <cventeic@redhat.com>
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-19 18:43:56 +01:00
Chris Venteicher
cfaebe837c qemu_process: Introduce qemuProcessQMPStart
This is a replacement for qemuProcessQMPRun to make the name consistent
with qemuProcessStart. The original qemuProcessQMPRun function is
renamed as qemuProcessQMPLaunch and becomes one of the simpler functions
called from the main qemuProcessQMPStart entry point. The following
patches will move parts of the code in qemuProcessQMPLaunch to the other
functions (qemuProcessQMPInit and qemuProcessQMPConnectMonitor).

Signed-off-by: Chris Venteicher <cventeic@redhat.com>
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-19 18:43:49 +01:00
Jiri Denemark
09d7daf380 qemu_process: Hide qmperr inside qemuProcessQMP
Keep the pointer to QEMU stderr output in qemuProcessQMP struct instead
of requiring the caller to provide it (and free it).

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-19 18:43:37 +01:00
Jiri Denemark
b459fde50b qemu_capabilities: Log probe failure in virQEMUCapsInitQMPSingle
Let's push the call to virQEMUCapsLogProbeFailure down the stack to
where the probing failure is detected.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-19 18:43:29 +01:00
Jiri Denemark
cf335683de qemu_process: Don't ignore errors in virQEMUCapsInit
While qemuProcessQMPRun and virQEMUCapsInitQMPMonitor* functions called
from virQEMUCapsInit ignore some errors, the caller of virQEMUCapsInit
would report an error unless usedQMP is true anyway. And since usedQMP
can only be true if the probing code really succeeded (i.e., no errors
were ignored), we can just simplify the logic by not ignoring the errors
in the first place.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-19 18:43:20 +01:00
Jiri Denemark
c7b59b66ab qemu_capabilities: Refactor virQEMUCapsInitQMP
The function contains two almost identical parts. Let's consolidate them
into a single helper function and call it twice.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-19 18:41:34 +01:00
Chris Venteicher
0e12707680 qemu_process: Use qemuProcessQMP struct for a single process
In new process code, move from model where qemuProcessQMP struct can be
used to activate a series of Qemu processes to model where one
qemuProcessQMP struct is used for one and only one Qemu process.

By allowing only one process activation per qemuProcessQMP struct, the
struct can safely store process outputs like status and stderr, without
being overwritten, until qemuProcessQMPFree is called.

By doing this, process outputs like status and stderr can remain stored
in the qemuProcessQMP struct without being overwritten by subsequent
process activations.

The forceTCG parameter (use / don't use KVM) will be passed when the
qemuProcessQMP struct is initialized since the qemuProcessQMP struct
won't be reused.

Signed-off-by: Chris Venteicher <cventeic@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-19 18:41:28 +01:00
Chris Venteicher
bfff747313 qemu_capabilities: Stop QEMU process before freeing
virQEMUCapsInitQMP now stops QEMU process in all execution paths,
before freeing the process structure.

The qemuProcessQMPStop function can be called multiple times without
problems... Won't attempt to stop processes and free resources multiple
times.

Follow the convention established in qemu_process of
1) alloc process structure
2) start process
3) use process
4) stop process
5) free process data structure

The process data structure persists after the process activation fails
or the process dies or is killed so stderr strings can be retrieved
until the process data structure is freed.

Signed-off-by: Chris Venteicher <cventeic@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-19 18:41:23 +01:00
Chris Venteicher
468841eabd qemu_process: Use consistent name for stop process function
s/qemuProcessQMPAbort/qemuProcessQMPStop/ applied to change function
name used to stop QEMU processes in process code moved from
qemu_capabilities.

No functionality change.

The new name, qemuProcessQMPStop, is consistent with the existing
function qemuProcessStop used to stop Domain processes.

Signed-off-by: Chris Venteicher <cventeic@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-19 18:41:06 +01:00
Chris Venteicher
3dcdd18b6b qemu_process: Refer to proc not cmd in process code
s/cmd/proc/ in process code imported from qemu_capabilities.

Signed-off-by: Chris Venteicher <cventeic@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-19 18:40:58 +01:00
Chris Venteicher
1aa4257569 qemu_process: Limit qemuProcessQMPNew to const input strings
Add the const qualifier on non modified strings
(string only copied inside qemuProcessQMPNew)
so that const strings can be used directly in calls to
qemuProcessQMPNew in future patches.

Signed-off-by: Chris Venteicher <cventeic@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-19 18:40:49 +01:00
Chris Venteicher
3bdb6e826f qemu_process: Rename identifiers moved from qemu_capabilities
s/virQEMUCapsInitQMPCommand/qemuProcessQMP/

Signed-off-by: Chris Venteicher <cventeic@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-19 18:40:11 +01:00
Chris Venteicher
16058045d0 qemu_process: Move process code from qemu_capabilities
QEMU process code in qemu_capabilities.c is moved to qemu_process.c in
order to make the code usable outside the original capabilities use
cases.

The moved code activates and manages QEMU processes without establishing
a guest domain.

This patch is a straight cut/paste move between files.

Signed-off-by: Chris Venteicher <cventeic@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-19 18:40:02 +01:00
Daniel P. Berrangé
e97d7733fe virsh: fix return value in storage vol name completor
The function must return a pointer, not a boolean. Fortunately 'false'
is equivalent to 'NULL' so this bug no had ill effect previously.

Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2019-02-19 16:06:46 +00:00
Daniel P. Berrangé
a470758468 conf: make virPCIDeviceAddressFormat void
Only one of the three callers of virPCIDeviceAddressFormat correctly
handles an error return status. Fortunately it can't fail so can be
made void.

Reviewed-by: Laine Stump <laine@laine.org>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2019-02-19 15:59:38 +00:00
Andrea Bolognani
aa4f3bbf2c iohelper: Don't include newlines in error messages
The newline was pretty arbitrary, and we're better off
without it.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-02-19 15:59:19 +01:00
Andrea Bolognani
1d2a62b2e0 vircommand: Ensure buffers are NULL-terminated
The memory allocated by VIR_REALLOC_N() is uninitialized,
which means it's not possible to figure out whether any
output was produced at all after the fact.

Since we don't care about the previous contents of buffers,
if any, use VIR_FREE() followed by VIR_ALLOC_N() instead.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2019-02-19 15:58:59 +01:00
Nikolay Shirokovskiy
0b856db8ab vz: build fix for virStorageBackendVzPoolStart
Remove unused variable. Fix for [1]

[1] 821dd6d8: storage: Use VIR_AUTOFREE for storage backends

Signed-off-by: Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
2019-02-19 12:52:21 +03:00
Ján Tomko
060e07c3ca Remove remaining references to kqemu
We dropped support in commit 8e91a40 (November 2015), but some
occurrences still remained, even in live code.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reported-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
2019-02-19 08:33:50 +01:00
Peter Krempa
1e5634ec79 util: Use virStorageSourceNew in virStorageFileMetadataNew
Commit dcda2bf4c1 forgot to fix this one instance.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-02-18 14:00:15 +01:00
Peter Krempa
44601a0e96 util: Replace virStorageSourceFree with virObjectUnref
Now that virStorageSource is a subclass of virObject we can use
virObjectUnref and remove virStorageSourceFree which was a thin wrapper.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
2019-02-18 10:31:21 +01:00
Peter Krempa
e1c01b2252 util: Remove the AUTOPTR func for virStorageSource
Since virStorageSource is now a subclass of virObject, we can use
VIR_AUTOUNREF instead.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
2019-02-18 10:31:21 +01:00
Peter Krempa
0d13790695 util: alloc: Introduce VIR_AUTOUNREF macro
Add helper for utilizing __attribute__(cleanup())) for unref-ing
instances of sublasses of virObject.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
2019-02-18 10:31:21 +01:00
Peter Krempa
53a0fa7366 util: storage: Turn virStorageSource into a virObject
To allow tracking a single virStorageSource in multiple structures
without extra hassle allow refcounting by turining it into an object.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
2019-02-18 10:31:17 +01:00
Peter Krempa
dcda2bf4c1 util: Introduce function for allocating virStorageSource
Add virStorageSourceNew and refactor places allocating that structure to
use the helper.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
2019-02-18 10:27:30 +01:00
Peter Krempa
84966103be bhyve: use virDomainDiskDefNew to instead of VIR_ALLOC
Use the proper function to allocate a disk definition.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
2019-02-18 10:27:30 +01:00
Andrea Bolognani
0624ac3fa8 conf: Rework virDomainDeviceDefPostParseCommon()
Now that we've moved all the actual code into helper
functions, we can turn it into a switch statement.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-15 14:58:40 +01:00
Andrea Bolognani
48dbd70e39 conf: Introduce virDomainNetDefPostParse()
Minor tweaks to ensure compliance with our coding style.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-15 14:58:40 +01:00
Andrea Bolognani
8393bee03d conf: Introduce virDomainControllerDefPostParse()
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-15 14:58:40 +01:00
Andrea Bolognani
33ae373638 conf: Introduce virDomainVideoDefPostParse()
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-15 14:58:40 +01:00
Andrea Bolognani
ca9ccd8adb conf: Introduce virDomainDiskDefPostParse()
Minor tweaks to ensure compliance with our coding style.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-15 14:58:40 +01:00
Andrea Bolognani
49b45a1cf4 conf: Introduce virDomainRNGDefPostParse()
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-15 14:58:40 +01:00
Andrea Bolognani
fcb30c40e9 conf: Introduce virDomainChrDefPostParse()
Minor tweaks to ensure compliance with our coding style.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-15 14:58:40 +01:00
Laine Stump
41adfe8ca9 network: explicitly allow icmp/icmpv6 in libvirt zonefile
The libvirt zonefile for firewalld (added in commit 3b71f2e4) does the
following:

1) lists specific services it wants to allow, then

2) uses a lower priority <reject/> rule to block all other services to
   the host, and then finally,

3) relies on the zone's default "accept" policy to, accept all
   forwarded traffic (since forwarded traffic is ignored by the
   slightly higher priority <reject/> rule in (2)).

I had assumed that icmp traffic was either being allowed at the top of
the rules, or that it would be ignored by the <reject/> rule and
passed by the default accept policy (similar to forwarded traffic),
but this assumption was incorrect; the <reject/> rule does block icmp
traffic. This became apparent when DHCPv6 which requires ICMPv6 in
addition to udp/dhcpv6) failed to work.

This all means that in order to achieve our original goal of "similar
behavior to a default reject policy, but also allowing forwarded
traffic", we need to add rules to allow all icmp and icmpv6 traffic to
the libvirt zone, and that's what this patch does.

This is a further refinement of the resolution to
https://bugzilla.redhat.com/1650320

Signed-off-by: Laine Stump <laine@laine.org>
Acked-by: Eric Garver <eric@garver.life>
2019-02-14 15:06:42 -05:00
Michal Privoznik
fa5db009c9 virkmodtest: Don't fail if modprobe doesn't exist
On some very basic installations (e.g. some container images) the
modprobe binary might be missing. If that is the case, don't fail
virkmodtest.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2019-02-14 18:03:10 +01:00
Ján Tomko
d3e5c3605a virsh: fix snapshot list --parent
The root snapshot does not have a parent.
Use NULLSTR_EMPTY to pass an empty string instead of putting
too few columns in the table.

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

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
2019-02-14 16:37:24 +01:00
Michal Privoznik
4b23f18d2c qemu_hotplug: Initialize @charAlias in qemuDomainRemoveChrDevice
My change in 112f3a8d0f was too drastic. The @charAlias
variable is initialized only if @monitor == true. However, it is
used even outside of that condition, at which point it's just
uninitialized pointer.

Reported-by: John Ferlan <jferlan@redhat.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-02-14 15:23:53 +01:00
Marc Hartmayer
4c4ff7a1a0 udev: only report a warning if udev_enumerate_scan_devices fails
Even if an error is reported by `udev_enumerate_scan_devices`,
e.g. because a driver of a device has an bug, we can still enumerate
all other devices. Additionally the documentation of
udev_enumerate_scan_devices says that on success an integer >= 0 is
returned (see man udev_enumerate_scan_devices(3)).

Reviewed-by: Bjoern Walk <bwalk@linux.ibm.com>
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-02-14 08:46:45 -05:00
Ján Tomko
0f110d5ac8 Use NULLSTR_EMPTY
Instead of repetitive:
  s ? s : ""
use NULLSTR_EMPTY.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2019-02-14 14:09:38 +01:00
Ján Tomko
375f5317b7 Remove EMPTY_STR macro
Another misleadingly named macro.
Deprecate in favor of NULLSTR_STAR.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2019-02-14 14:09:38 +01:00
Ján Tomko
77908cfcda Remove EMPTYSTR macro
This macro neither takes nor produces an empty string.
Remove it in favor of NULLSTR_MINUS.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2019-02-14 14:09:38 +01:00
Ján Tomko
57f5262868 tools: use NULLSTR_MINUS
Use the newly introduced macro in the few places that open-code it.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2019-02-14 14:09:37 +01:00
Ján Tomko
bd5519deb7 internal: introduce a family of NULLSTR macros
NULLSTR_EMPTY, the quiet child,
NULLSTR_STAR, the famous one and
NULLSTR_MINUS, the grumpy one.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2019-02-14 14:09:37 +01:00
Michal Privoznik
5657e22212 qemu_hotplug: Assume chardev alias always exists in qemuDomainDetachChrDevice
The @tmpChr is looked up in domain definition based on user
provided chardev XML. Therefore, the alias must have been
allocated already when domain was started up.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-02-14 13:44:56 +01:00
Michal Privoznik
0c17685760 qemu_hotplug: Don't build device string in qemuDomainDetachChrDevice
This is basically an old artefact from 24b0821926 when the idea
was:

1) Build device string only to see if chardev has any -device
associated with it and thus if device_del is needed
2) Detach chardev using chardev_del

Now, that DEVICE and DEVICE_DELETED capabilities are assumed for
every domain 1) does not make sense anymore.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-02-14 13:42:07 +01:00
Michal Privoznik
17ddfd420a qemuhotplugtest: Test guestfwd attach and detach
Previous two commits demonstrate a hole in our test scenario.
Fix that.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-02-14 09:22:17 +01:00
Michal Privoznik
112f3a8d0f qemu_hotplug: Detach guestfwd using netdev_del
https://bugzilla.redhat.com/show_bug.cgi?id=1624204

The guestfwd channels are -netdevs really. Hotunplug them as
such. Also, DEVICE_DELETED event is not triggered (surprisingly,
since we're not issuing device_del rather than netdev_del) and
associated chardev is removed automagically too. This means that
we need to do qemuDomainRemoveChrDevice() minus monitor call to
remove the chardev.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-02-14 09:20:40 +01:00
Michal Privoznik
903315dc8f qemu_hotplug: Attach guestfwd using netdev_add
https://bugzilla.redhat.com/show_bug.cgi?id=1624204

The guestfwd channels are -netdevs really. Hotplug them as such.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-02-14 09:19:33 +01:00
Michal Privoznik
18b8f67745 qemuL: Drop "user-" prefix for guestfwd netdev
Introduced by d86c876a66.

There is no real need to have "user-" prefix for chardev.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-02-14 09:18:31 +01:00
Michal Privoznik
f538f5ed3a qemu: Use @tmpChr in qemuDomainDetachChrDevice to build device string
So far we are passing @chr to qemuBuildChrDeviceStr. This is
suboptimal (in fact wrong) because @chr is just parsed XML
definition provided by user which by definition may lack some
information. On the other hand, @tmpChr is the one that was found
using @chr in domain definition so it contains the same amount of
information or more.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-02-14 09:15:02 +01:00
Eric Blake
174309a1f8 qemu: Escape external snapshot names containing comma
The code for creating external snapshots for an offline domain
called out to qemu-img without escaping commas in the manner
that qemu-img expects. This also fixes a typo in the comment.

Signed-off-by: Eric Blake <eblake@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-02-13 16:36:05 -06:00
Laine Stump
2c48e84b75 util: fix memory leak in virFirewallDInterfaceSetZone()
commit 3bba4825 added the new function virFirewallDInterfaceSetZone()
which calledsends virDBUSCallMethod a DBusMessage** for the reply
message, but doesn't use the reply, and also doesn't free it. Since
this arg is allowed to be NULL, this patch simply sets it to NULL so
we don't have to deal with it.

Signed-off-by: Laine Stump <laine@laine.org>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2019-02-13 14:30:14 -05:00
Ján Tomko
6dbe6e4cec virsh: initialize info in cmdIOThreadInfo
Although it is not needed at the moment, do not rely on a value being
set before the first jump to cleanup.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-02-13 13:58:56 +01:00
Ján Tomko
4c44c9f456 virsh: remove redundant virshNodeGetCPUCount
Since commit 4c4b821e it is not used for anything.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-02-13 13:58:55 +01:00
Ján Tomko
4834c9a4bd virsh: do not assign negative values to niothreads
Use a temporary 'rc' variable to avoid comparing signed
and unsigned integers in the cleanup section.

Bug introduced by commit 3072ded which added the comparison against
the unsigned 'i'.

Also make niothreads size_t to mark that it should be unsigned.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-02-13 13:58:55 +01:00
Ján Tomko
3ce86316a8 virsh: reduce the optimism in cmdIOThreadInfo
Instead of using niothreads which defaults to zero, use the common
pattern with a ret varaible set to true just before the cleanup label.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-02-13 13:58:55 +01:00
John Ferlan
bf688a0067 util: Introduce VIR_DEFINE_AUTOPTR_FUNC for virStorageSource
Let's make use of the auto __cleanup capabilities cleaning up any
now unnecessary goto paths.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 13:19:26 -05:00
John Ferlan
b20e957d0a util: Check for duplicated id in virStorageSourceParseRBDColonString
If we find multiple "id=" strings during processing, then we need
to force an error since we cannot have multiple <auth>'s defined
for a single source volume.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 13:11:45 -05:00
John Ferlan
466a3e5dfa conf: Check for duplicate authdef during hostdev iSCSI processing
If virDomainHostdevSubsysSCSIiSCSIDefParseXML processing finds a
duplicated <auth> structure, we should error out rather than continue.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 13:11:41 -05:00
John Ferlan
bc096fc4a2 tests: Fix memory leak in testCompareXMLToArgvFiles
Only one path will consume the @def; otherwise, we need to free it.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 13:11:36 -05:00
John Ferlan
180f3207ae storage: Use VIR_AUTOCLOSE
Modify code to use the VIR_AUTOCLOSE logic cleaning up any
now unnecessary goto paths.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 13:11:31 -05:00
John Ferlan
d5aa75e64b storage: Rework ret logic in storageBackendUpdateVolTargetInfo
Rather than overload @ret with trying serve multiple purposes,
let's initialize @ret to -1 and introduce an @rc function return
value that can be used for functions that may return -1 or -2
and only override @ret when rc < 0.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 13:11:26 -05:00
John Ferlan
821dd6d80a storage: Use VIR_AUTOFREE for storage backends
Let's make use of the auto __cleanup capabilities. This also allows
for the cleanup of some goto paths.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 13:11:20 -05:00
John Ferlan
1ee7294bed storage: Cleanup virStorageFileBackendGlusterReadlinkCallback
Rather than having two exit paths, let's use a @retval value
and VIR_STEAL_PTR in order to unite the exit path through the
error label.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 13:11:04 -05:00
John Ferlan
9916f2a3c8 tests: Rename variable in testStorageFileGetMetadata
To prepare for subsequent change to use VIR_AUTOPTR logic rename
the @ret to @def.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 08:51:23 -05:00
John Ferlan
e698af1768 util: Rename variable in virStorageSourceNewFromBacking
To prepare for subsequent change to use VIR_AUTOPTR logic rename
the @ret to @def.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 08:51:23 -05:00
John Ferlan
c856f72251 util: Rename variable in virStorageSourceNewFromBackingAbsolute
To prepare for subsequent change to use VIR_AUTOPTR logic rename
the @ret to @def.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 08:51:23 -05:00
John Ferlan
a2cdee57d2 util: Rename variable in virStorageSourceNewFromBackingRelative
To prepare for subsequent change to use VIR_AUTOPTR logic rename
the @ret to @def.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 08:51:23 -05:00
John Ferlan
f035e2cd26 util: Rename variable in virStorageSourceCopy
To prepare for subsequent change to use VIR_AUTOPTR logic rename
the @ret to @def.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 08:51:23 -05:00
John Ferlan
9f2cf5cc18 util: Rename variable in virStorageFileMetadataNew
To prepare for subsequent change to use VIR_AUTOPTR logic rename
the @ret to @def.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 08:51:23 -05:00
John Ferlan
9fbb035e6f storage: Use VIR_STEAL_PTR in storageBackendProbeTarget
Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 08:51:23 -05:00
John Ferlan
5f02df444b tests: Use VIR_AUTOFREE for various storage tests
Let's make use of the auto __cleanup capabilities cleaning up any
now unnecessary goto paths.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 08:51:23 -05:00
John Ferlan
ceb3255cdf test: Use VIR_AUTOFREE for test driver
Let's make use of the auto __cleanup capabilities cleaning up any
now unnecessary goto paths.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 08:51:23 -05:00
John Ferlan
ba045165d4 test: Remove unused @xml from testDomainSnapshotCreateXML
Commit 390c06b67 added @xml, but it was never used.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 08:51:23 -05:00
John Ferlan
0082ee5b5e test: Cleanup testDomainRenameCallback
Rather than have a need for old_dom_name, let's just VIR_FREE
the old name first, then use VIR_STEAL_PTR to handle the swap
from the old name to the new name.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 08:51:23 -05:00
John Ferlan
1450b19269 util: Use VIR_AUTOFREE for virstoragefile
Let's make use of the auto __cleanup capabilities cleaning up any
now unnecessary goto paths.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 08:51:23 -05:00
John Ferlan
5d693534fa util: Use VIR_STEAL_PTR in virstoragefile
Rather than open coding virStorageFileGetRelativeBackingPath
and virStorageFileGetMetadataRecurse, let's make use of the
VIR_STEAL_PTR macro.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 08:51:23 -05:00
John Ferlan
a1c453dc08 conf: Use VIR_AUTOFREE for storage_conf
Let's make use of the auto __cleanup capabilities cleaning up any
now unnecessary goto paths.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 08:51:23 -05:00
John Ferlan
c75e615d3e conf: Remove @name in virStoragePoolDefParseSource
Remove the need for the @name variable by directly assigning
into source->hosts[i].name.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
2019-02-12 08:51:23 -05:00
John Ferlan
e96c47516c storage: Use VIR_AUTOFREE for storage util
Let's make use of the auto __cleanup capabilities cleaning up any
now unnecessary goto paths.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 08:51:23 -05:00
John Ferlan
65fc17d2f6 storage: Fix error retval for getDeviceType
On error from virAsprintf we would erroneously return 0 with
the @*type not being set. Change to a return -1 on error like
we should have been doing.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 08:51:23 -05:00
John Ferlan
b330600a69 util: Fix virStorageBackendSCSINewLun error handling
Commit a523770c3 added @retval return processing for
virStorageBackendUpdateVolInfo in order to allow a -2
to be return; however, upon successful completion
@retval = 0 and if either the virStorageBackendSCSISerial
or the virStoragePoolObjAddVol failed, the method would
return 0, but not add the @vol to the pool. So let's
just reset retval = -1 and continue processing.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 08:51:23 -05:00
John Ferlan
38362460dd storage: Use VIR_AUTOFREE for storage driver
Let's make use of the auto __cleanup capabilities cleaning up any
now unnecessary goto paths.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 08:51:23 -05:00
John Ferlan
5028781621 storage: Invert retval logic in virStorageBackendSCSITriggerRescan
Rather than initialize to 0 and change to -1 on error, let's do the
normal operation of initializing to -1 and set to 0 on success.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 08:51:23 -05:00
John Ferlan
763b76cbf6 src: Fix label logic in virStorageBackendSCSITriggerRescan
Let's initialize @path to NULL, then rather than use two labels
free_path and out labels, let's use the cleanup: label to call
VIR_FREE(path); and VIR_FORCE_CLOSE(fd);

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 08:51:23 -05:00
John Ferlan
9a4199304f storage: Use VIR_AUTOPTR(virCommand)
Let's make use of the auto __cleanup capabilities cleaning up any
now unnecessary goto paths.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 08:51:23 -05:00
John Ferlan
813e775983 storage: Cleanup virStorageBackendLogicalFindPoolSourcesFunc
Rather than have two error paths, let's use a @retval value and
VIR_STEAL_PTR on @vgname and @pvname to unity the exit path through
the error label.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 08:51:23 -05:00
John Ferlan
8a69cbc181 storage: Fix error path in virStorageBackendSheepdogRefreshVol
If the virAsprintf of the vol->key fails, then we would erroneously
return the '0' from the @ret from virStorageBackendSheepdogParseVdiList.
So in this error path case, let's set ret = -1.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 08:51:23 -05:00
John Ferlan
7550480036 storage: Rework logic in virStorageBackendDiskBuildPool
Rework the logic to remove the need for the @ok_to_mklabel boolean.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 08:51:23 -05:00
John Ferlan
1587ba7f62 storage: Use VIR_AUTOPTR(virString)
Let's make use of the auto __cleanup capabilities cleaning up any
now unnecessary goto paths.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 08:51:23 -05:00
John Ferlan
2f92d59c78 conf: Introduce VIR_DEFINE_AUTOPTR_FUNC for virStoragePoolDef
Let's make use of the auto __cleanup capabilities cleaning up any
now unnecessary goto paths.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 08:51:23 -05:00
John Ferlan
d2ddcdc1a2 phyp: Resolve memory leak in phypStorageVolCreateXML
The @spdef would be leaked in the normal path.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 08:51:23 -05:00
John Ferlan
6bf74e3199 conf: Rework virStoragePoolDefParseXML
Rather than having an error path, let's rework the code to allocate
and fill into an @def variable and then steal that into @ret when we
are successful leaving just a cleanup: path.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 08:51:23 -05:00
John Ferlan
1f20da92d8 conf: Introduce VIR_DEFINE_AUTOPTR_FUNC for virStorageVolDef
Let's make use of the auto __cleanup capabilities cleaning up any
now unnecessary goto paths.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 08:51:23 -05:00
John Ferlan
d04fbe7dab conf: Rework virStorageVolDefParseXML
Rather than having an error path, let's rework the code to allocate
and fill into an @def variable and then steal that into @ret when we
are successful leaving just a cleanup: path.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 08:51:23 -05:00
John Ferlan
e687538d3a storage: Use VIR_STEAL_PTR for gluster volume processing
Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 08:51:23 -05:00
John Ferlan
cf46075293 conf: Introduce VIR_DEFINE_AUTOPTR_FUNC for virStoragePoolSource
Let's make use of the auto __cleanup capabilities cleaning up any
now unnecessary goto paths.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 08:51:23 -05:00
John Ferlan
13395548b2 util: Introduce VIR_DEFINE_AUTOPTR_FUNC for virStorageAuthDef
Let's make use of the auto __cleanup capabilities cleaning up any
now unnecessary goto paths.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 08:51:23 -05:00
John Ferlan
6fcc344082 util: Rework virStorageAuthDefCopy
Rather than having an error path, let's rework the code to allocate
and fill into an @authdef variable and then steal that into @ret when
we are successful leaving just a cleanup: path.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 08:51:23 -05:00
John Ferlan
a98d9daf07 conf,util,qemu: Use VIR_STEAL_PTR for authdef processing
Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 08:51:23 -05:00
Ján Tomko
b4a4e8f71a qemu: do not format <usedQMP/> in qemu caps XML
Since commit a7424faff QMP is always used.

Also, commit 932534e8 removed the last use of this apart from:
* parsing/formatting this in the caps cache
* using it as a temporary variable to know when to report an error

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
2019-02-12 14:02:38 +01:00
Ján Tomko
0f87356c51 virsh: allow empty targets in cmdDomFSInfo
Ever since the introduction of the guest-get-fsinfo command
in QEMU commit 46d4c572 qga/qapi-schema.json says that
the 'disks' array can possibly be empty. For example when getting
the target list is unsupported:
https://bugzilla.redhat.com/show_bug.cgi?id=1567041

Pass an empty string instead of NULL to vshTableRowAppend to prevent
a mismatched column number.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 13:50:10 +01:00
Ján Tomko
0e7707d830 virsh: use virBufferTrim in cmdDomFSInfo
Add comma after every string and trim the final one.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 10:14:53 +01:00
Ján Tomko
066d91ec79 virsh: do not report error on zero filesystems in cmdDomFSInfo
Use vshPrintExtra to report this message. It is a human-readable
explanation rather than an error.

Also, it is a very special system that runs with no filesystems.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 10:14:53 +01:00
Ján Tomko
023f0672d4 virsh: introduce 'ret' in cmdDomFSInfo
Failing to print the table is also a reason to return failure
and print the reported error.

Switch to the usual pattern where we fall through the cleanup
label right after setting ret to true instead of infering the
return value from the number of filesystems returned.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 10:14:53 +01:00
Ján Tomko
eb3f5a2c6d virsh: do not access uninitialized memory in cmdDomFSInfo
Initialize 'info' to prevent accessing random access memory.

Introduced by commit 3072ded released in 4.8.0.

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

Signed-off-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 10:14:53 +01:00
Ján Tomko
44993d312d virsh: rename ret to rc in cmdDomFSInfo
Leave the 'ret' variable for the current function's return value.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 10:14:53 +01:00
Ján Tomko
443fc056a0 virsh: introduce ninfos variable in cmdDomFSInfo
Do not use 'ret' throughout the whole function to avoid confusion
and comparison of unsigned 'i' against signed 'ret'.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 10:14:53 +01:00
Ján Tomko
b419ea6a90 vsh-table: allow empty columns
Trivially implement this by deleting the bogus check in
vshTableSafeEncode.

Now it returns an empty string for an empty string instead
of returning NULL without setting an error.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 10:14:53 +01:00
Ján Tomko
865b201479 vshtabletest: indent strings with expected output
Indent them by four spaces from the previous line, instead of starting
at columnn zero.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 10:14:53 +01:00
Michal Privoznik
1620bb0a30 tools: Drop support for pre-2.4.0 wireshark
The wireshark-2.4.0 is almost 2 years old now. Assuming anybody
interested in running latest libvirt doesn't run old wireshark,
it is safe to do this. It also simplifies the code.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 09:22:59 +01:00
Michal Privoznik
dc93997a83 m4: Put wireshark plugin into epan/ directory
Since wirshark-2.5.0 toplevel plugins are no longer loaded. Only
plugins from epan/, wiretap/ or codecs/ subdirs are. Update the
plugin dir we generate. This is safe to do even for older
wiresharks, since they load plugins from there too.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 09:22:59 +01:00
Michal Privoznik
4c22fd717b wireshark: Provide registration code for newer wireshark
As advertised in previous commits, wireshark has changed the way
that plugins register. In fact, it has done so two times since
the last time we've touched our code (wireshark v2.5.0 and
v2.9.0). Use the wireshark script from respective releases to
generate newer registration callbacks and put them into our code.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 09:22:59 +01:00
Michal Privoznik
a87a75e579 tools: Keep wireshark plugin registration code in git
In order to be able to dissect libvirt protocol the wireshark
plugin needs to be registered. So far this plugin registration
code was generated on every build using a script that was copied
over from wireshark's tools/ directory.

This is suboptimal, because the way that plugins register changes
across wireshark releases. Therefore, let's keep the generated
file in the git, put the command line used to generate the file
into a comment and remove the script.

This solution allows us to put different registration mechanism
into one file (under #ifdef-s) and thus compile with wider range
of wireshark releases.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 09:22:59 +01:00
Michal Privoznik
b76f4dec37 tools: Cleanup packet-libvirt.h
Move the majority of the packet-libvirt.h content into
packet-libvirt.c and expose only register functions which are the
only ones that are not static.

The rationale behind is that packet-libvirt.h will be included
from packet.c and therefore the header file needs to be as clean
as possible.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-12 09:22:59 +01:00
Cole Robinson
b79885b7f7 tests: domcaps: Remove dependency on libxl PVUSB support
Mock out libxlCapsHasPVUSB to always return true, so test results
aren't dependent on host libxl version

Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Cole Robinson <crobinso@redhat.com>
2019-02-11 17:40:44 -05:00
Cole Robinson
b99fdb60b2 libxl: Break out libxlCapsHasPVUSB
No functional change, but this will allow us to mock out the function
in the test suite

Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Cole Robinson <crobinso@redhat.com>
2019-02-11 17:40:44 -05:00
Cole Robinson
deb3b59b74 tests: Create a shared library with libxl driver
This allows us to mock functions in the libxl driver, like
is already possible for the qemu driver

Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Cole Robinson <crobinso@redhat.com>
2019-02-11 17:40:44 -05:00
Cole Robinson
49a0bcfdf2 tests: Rename virmocklibxl.c -> libxlmock.c
Every other mock library is named ending in mock.c, move
virmocklibxl.c to follow that pattern

Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Cole Robinson <crobinso@redhat.com>
2019-02-11 17:40:44 -05:00
Cole Robinson
e00771dfc3 docs: storage: owner/group default to libvirtd UID/GID
Commit fafcc818f changed the docs to say that when creating a
pool directory or file volume with no owner/group specified, they
will be inherited from the parent directory. This isn't correct
now and doesn't seem to have ever been correct

In reality default owner/group is whatever UID/GID libvirtd is
running as

Signed-off-by: Cole Robinson <crobinso@redhat.com>
2019-02-08 12:37:06 -05:00
Nikolay Shirokovskiy
d63c82df8b rpc: client: stream: fix multi thread abort/finish
If 2 threads call abort for example then one of them
will hang because client will send 2 abort messages and
server will reply only on first of them, the second will be
ignored. And on server reply client changes the state only
one of abort message to complete, the second will hang forever.
There are other similar issues.

We should complete all messages waiting reply if we got
error or expected abort/finish reply from server. Also if one
thread send finish and another abort one of them will win
the race and server will either abort or finish stream. If
stream is aborted then thread requested finishing should report
error. In order to archive this let's keep stream closing reason
in @closed field. If we receive VIR_NET_OK message for stream
then stream is finished if oldest (closest to queue end) message
in stream queue is finish message and stream is aborted if oldest
message is abort message. Otherwise it is protocol error.

By the way we need to fix case of receiving VIR_NET_CONTINUE
message. Now we take oldest message in queue and check if
this is dummy message. If one thread first sends abort and
second thread then receives data then oldest message is abort
message and second thread won't be notified when data arrives.
Let's find oldest dummy message instead.

Signed-off-by: Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
2019-02-08 17:16:00 +01:00
Nikolay Shirokovskiy
fbcb73866b rpc: client stream: dispose private data on stream dispose
If we call virStreamFinish and virStreamAbort from 2 distinct
threads for example we can have access to freed memory.
Because when virStreamFinish finishes for example virStreamAbort
yet to be finished and it access virNetClientStreamPtr object
in stream->privateData.

Also it does not make sense to clear @driver field. After
stream is finished/aborted it is better to have appropriate
error message instead of "unsupported error".

This commit reverts [1] or virNetClientStreamPtr and
virStreamPtr will never be unrefed due to cyclic dependency.
Before this patch we don't have leaks because all execution
paths we call virStreamFinish or virStreamAbort.

[1] 8b6ffe40 : virNetClientStreamNew: Track origin stream

Signed-off-by: Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
2019-02-08 16:51:45 +01:00
Nikolay Shirokovskiy
d962f56fb6 rpc: client: don't set incomingEOF on errors
This mixing errors and EOF condition in one flag is odd.
Instead let's check st->err.code where appropriate.

Signed-off-by: Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
2019-02-08 16:51:45 +01:00
Nikolay Shirokovskiy
ad063f6192 rpc: client: incapsulate error checks
Checking virNetClientStreamRaiseError without client lock
is racy which is fixed in [1] for example. Thus let's remove such checks
when we are sending message to server. And in other cases
(like virNetClientStreamRecvHole for example) let's move the check
into client stream code.

virNetClientStreamRecvPacket already have stream lock so we could
introduce another error checking function like virNetClientStreamRaiseErrorLocked
but as error is set when both client and stream lock are hold we
can remove locking from virNetClientStreamRaiseError because all
callers hold either client or stream lock.

Also let's split virNetClientStreamRaiseErrorLocked into checking
state function and checking message send status function. They are
same yet.

[1] 1b6a29c21: rpc: fix race on stream abort/finish and server side abort

Signed-off-by: Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
2019-02-08 16:51:45 +01:00
Nikolay Shirokovskiy
8457fd5034 rpc: add mising locking in virNetClientStreamRecvHole
Signed-off-by: Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
2019-02-08 16:51:45 +01:00
Nikolay Shirokovskiy
4deed5f3c7 rpc: fix propagation of errors from server
Stream server error is not propagated if thread does not have the buck.
In case we have the buck we are ok due to the code added in [1].

Let's check for stream error on all paths. Now we don't need
to raise error in virNetClientCallDispatchStream.

Old code reported error only if the first message in wait
queue awaits reply. It is odd as depends on wait queue
situation. For example if we have only TX
message in queue and in one iteration loop both send the
message and receive error then thread sending TX message did
not receive the error. Next if we have RX message (first)
and TX message (second) in queue and in one iteration
loop both send the TX message and receive error then
thread sending TX message received error. In short
it was inconsistent. Let's report error whenever
we received it and for every type of message as it makes
sense to report errors as early as possible.

[1] 16c6e2b41: Fix propagation of RPC errors from streams

Signed-off-by: Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
2019-02-08 16:51:45 +01:00
Nikolay Shirokovskiy
6709479a2f rpc: remove unused virNetClientSendNoReply
Signed-off-by: Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
2019-02-08 16:51:45 +01:00
Nikolay Shirokovskiy
2fd435b785 rpc: use single function to send stream messages
In next patches we'll add stream state checks to this
function that applicable to all call paths. This is handy
place because we hold client lock here.

Signed-off-by: Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
2019-02-08 16:51:45 +01:00
Nikolay Shirokovskiy
a5445a3706 rpc: fix race on stream abort/finish and server side abort
Stream abort/finish can hang because we can receive abort message
from server and yet sent abort/finish message to server. The latter
will not be answered ever because after server sends abort message
it forgets the stream and messages for unknown stream are simply ignored.

We check for stream error at the very beginning of remoteStreamFinish/remoteStreamAbort
but stream error can be set after the check in another thread operating
on stream. Let's check for stream error under client lock similar
to what's done in [1].

[1] 833b901cb: stream: Check for stream EOF

Signed-off-by: Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
2019-02-08 16:51:45 +01:00
Andrea Bolognani
df2b31ffea qemu: Unify style for qemuDomain*()
These functions do mostly the same things, and it would be
preferrable if they did them in mostly the same ways. This
also fixes a few violations to our code style guidelines.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
2019-02-08 16:16:25 +01:00
Andrea Bolognani
0440d5e90f qemu: Move qemuDomainSupportsPCI() to qemu_domain
The function operates on a virDomainDef and is not tied to
device address assignment in any way, so it makes more sense
for it to live along with qemuDomainIs*() and the like.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
2019-02-08 16:16:22 +01:00
Andrea Bolognani
68e26a9ea2 qemu: Make most qemuDomainMachine*() functions static
Ideally we'd make all of them static, but there are a few
cases where we don't have a virDomainDef instance handy and
so they are the only option.

For the few ones we're forced to keep exporting, document
through comments that the alternative is preferred.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
2019-02-08 16:16:20 +01:00
Andrea Bolognani
8a8b14718e qemu: Remove useless ARCH_IS_X86() call
Now that we have added architecture checks to all
qemuDomainIs*() functions, we no longer need to perform the
same checks separately.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
2019-02-08 16:16:18 +01:00
Andrea Bolognani
aa2da99ee8 qemu: Add arch checks to qemuDomainMachine*()
There is very little overlap in the machine types available
on different architectures, so broadly speaking checking the
machine type is usually enough; regardless, it's better to
check the architecture as well.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
2019-02-08 16:16:16 +01:00
Andrea Bolognani
9a5ce5cb29 qemu: Add arch parameter to qemuDomainMachine*()
We want the signatures to be consistent, and also we're
going to start using the additional parameter next.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
2019-02-08 16:16:14 +01:00
Andrea Bolognani
4028d7a46a qemu: Move functions around
Make sure related functions, eg. all qemuDomainIs*(), are
close together instead of being sprinkled throughout both
the header and implementation file, and also that all
qemuDomainMachine*() functions are declared first since
we're going to make a bunch of them static later on.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
2019-02-08 16:16:12 +01:00
Andrea Bolognani
616beb17d4 qemu: Use more specific prefixes
While the chances of the current checks resulting in false
positives are basically zero, it's still nicer to check for
the full prefix instead of the prefix's prefix.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
2019-02-08 16:16:10 +01:00
Andrea Bolognani
629fdca0d0 qemu: Remove redundant condition
No need to check whether we're dealing with a pSeries guest
twice within just a few lines.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
2019-02-08 16:16:05 +01:00
John Ferlan
73b9b8fe36 util: Use a semicolon for all VIR_DEFINE_AUTOPTR_FUNC
For consistency, let's use the semicolon for all definitions.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
2019-02-08 06:57:23 -05:00
Erik Skultety
5846179a2e docs: Update the AMD SEV's spec URL
Luckily, the new URL still points to the same location, the only change
is in the document name where an escaped space (%20) was replaced by an
underscore.

Signed-off-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2019-02-08 12:50:30 +01:00
Peter Krempa
22d7222ec0 qemu: caps: Don't call 'query-events' when we probe events from QMP schema
Avoid calling the command and fix test fallout.

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

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2019-02-08 10:11:20 +01:00
Peter Krempa
398d5766b3 qemu: caps: Probe events from 'query-qmp-schema' rather than 'query-events'
QEMU plans to deprecate 'query-events' as it's non-extensible. Events
are also described by 'query-qmp-schema' so we can use that one instead.

This patch adds detection of events to
virQEMUCapsProbeQMPSchemaCapabilities using the same structure declaring
them for the old approach (virQEMUCapsEvents). This is possible as the
name is the same in the QMP schema and our detector supports that
trivially.

For any complex queries virQEMUCapsQMPSchemaQueries can be used in the
future.

For now we still call 'query-events' and discard the result so that it's
obvious that the tests pass. This will be cleaned up later.

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

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2019-02-08 10:11:20 +01:00
Peter Krempa
850bb78a6e qemu: caps: Always assume QEMU_CAPS_DEVICE_TRAY_MOVED
The event was added by qemu commit 6f382ed226f3 released in v1.1.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2019-02-08 10:11:20 +01:00
Peter Krempa
8c191a9061 qemu: caps: Always assume QEMU_CAPS_DEVICE_DEL_EVENT
DEVICE_DELETED was added in qemu commit 0402a5d65ec00 which was released
in v1.5.0.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2019-02-08 10:11:20 +01:00
Peter Krempa
458a3453da tests: qemuhotplug: Remove leftovers for non-event testing
DO_TEST_ATTACH and DO_TEST_ATTACH_EVENT now do the same thing so we can
remove the latter including the infrastructure.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2019-02-08 10:11:20 +01:00
Peter Krempa
eaaecd9f55 tests: qemuhotplug: Use DEVICE_DELETED event in all hotunplug tests
Currently all supported qemu versions now have support for the
DEVICE_DELETED event. This means that testing the old approach is a
waste of time.

Always add the QEMU_CAPS_DEVICE_DEL_EVENT capability in the hotplug test
and fix existing test cases.

The 'disk-virtio', 'disk-usb', 'disk-scsi', and 'disk-scsi-2' already
had variants that used the event, so the non-event variants will be
removed.

For all other cases the QMP_DEVICE_DELETED macro is used to add the
correct reply.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2019-02-08 10:11:20 +01:00
Peter Krempa
e29ae70ba7 tests: qemuhotplug: Remove unused test macro DO_TEST_DETACH_EVENT
This variant is unused as we create the object including capabilities
with DO_TEST_ATTACH_EVENT, which is then reused.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2019-02-08 10:11:20 +01:00
Peter Krempa
ea34af1f35 qemu: caps: Always assume QEMU_CAPS_SEAMLESS_MIGRATION
The event was added by qemu commit 2fdd16e239c2a2 released in v1.3.0.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2019-02-08 10:11:20 +01:00
Peter Krempa
3b0856c4ba qemu: Clean up usage of qemuDomainUpdateCurrentMemorySize
Remove the uneeded attribute and return value.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2019-02-08 10:11:20 +01:00
Peter Krempa
3f2fa8f303 qemu: caps: Always assume QEMU_CAPS_BALLOON_EVENT
The event was added to qemu by commit 973603a813c5d60 which is contained
in the 1.2.0 release.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2019-02-08 10:11:19 +01:00
Peter Krempa
6d3c96f0d9 qemu: caps: Add lockout for -blockdev if QEMU_CAPS_SCSI_DISK_DEVICE_ID is not present
Avoid regressions by disallowing the BLOCKDEV capability.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2019-02-08 10:11:19 +01:00
Peter Krempa
a1dce96236 qemu: Use the 'device_id' property of SCSI disks to avoid regressing
QEMU accidentally exposed the id of -drive (or same value as disk
serial, if provided) in one of the identifiers visible from the guest.

To avoid regression in case when -blockdev will be used we need to
always specify it ourselves.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2019-02-08 10:11:12 +01:00
Peter Krempa
85a8e364f3 qemu: caps: Introduce capability for 'device_id' property of 'scsi-disk'
The property allows to control the guest-visible content of the vendor
specific designator of the 'Device Identification' page of a SCSI
device's VPD (vital product data).

QEMU was leaking the id string of -drive as the value if the 'serial' of
the disk was not specified. Switching to -blockdev would impose an ABI
change.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2019-02-08 08:48:33 +01:00
Peter Krempa
8440f83529 test: qemucaps: Update caps with scsi 'device_id' property
Based on qemu commit 'v3.1.0-1445-ga61faa3d02'. Will allow checking
for the scsi 'device_id' property.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2019-02-08 08:48:33 +01:00
Peter Krempa
9222b402e5 tests: qemuxml2argv: Add a 'serial' value for a SCSI disk
Upcoming addition of a new field will need to make sure that SCSI disk
serial is tested as well. Add a case to one of the existing tests.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2019-02-08 08:48:33 +01:00
Peter Krempa
1328a830ce qemu: command: Drop formatting of 'media=cdrom' from -drive
For SCSI, IDE, and AHCI cdroms the appropriate device types which select
the correct media are used. In qemu there's one other code path that
looks at -drive media=cdrom in the XEN pv code. Thankfully we don't
support it with qemu (see qemuBuildDiskDeviceStr). All other devices
ignore it as the comment states, thus we can drop that code.

The test fallout is expectedly only in the test added for uncommon cdrom
types.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2019-02-08 08:48:33 +01:00
Peter Krempa
ea13c12940 tests: qemuxml2argv: Add CDROM disks for all untested buses
Add full and empty cdroms on 'usb' and 'sd' bus to have test
coverage. Note that this does not guarantee that qemu will accept them.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2019-02-08 08:48:11 +01:00
Peter Krempa
5d884f3d3c qemu: Forbid cdroms on virtio bus
Attempting to create an empty virtio-blk drive results into:
-device virtio-blk-pci,scsi=off,bus=pci.0,addr=0xc,drive=drive-virtio-disk1,id=virtio-disk1: Device needs media, but drive is empty

Attempting to eject media from virtio-blk based drive results into:
error: internal error: unable to execute QEMU command 'eject': Device 'drive-virtio-disk0' is not removable

Forbid configurations where users would attempt to use cdroms in virtio
bus.

Fix few wrong examples which are not really relevant to the tested code.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2019-02-08 08:41:40 +01:00
Peter Krempa
6b67eeef8c qemu: command: Use correct type for switch in qemuBuildDiskDeviceStr
Cast disk->bus to proper type and add missing values to the enum so it's
more obvious what types are supported.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2019-02-08 08:34:26 +01:00
Peter Krempa
1dcba456fa qemu: caps: Always assume presence of 'ide-hd' and 'ide-cd' devices
The split of ide-disk into the two separate devices was introduced by
qemu commit 1f56e32a7f4b3 released in qemu v0.15.

Note that when compared to the previous commit which made sure that no
disk related tests were touched, in this case it's not as careful.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2019-02-08 08:34:17 +01:00
Peter Krempa
4bf49bc566 qemu: caps: Always assume presence of 'scsi-hd' and 'scsi-cd' device
The split of scsi-disk into the two separate devices was introduced by
qemu commit b443ae67 released in qemu v0.15.

All changes to test files are not really related to disk testing thanks
to previous refactors.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2019-02-08 08:34:17 +01:00
Peter Krempa
12116c018d tests: qemuxml2argv: Remove 'disk-virtio-scsi-ccw' test
It's a subset of 'iothreads-virtio-scsi-ccw'.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2019-02-08 08:34:17 +01:00
Peter Krempa
76709a76ba tests: qemuxml2argv: Modernize virtio-scsi iothread tests
Use DO_TEST_CAPS_LATEST to obtain modern results.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2019-02-08 08:34:04 +01:00
Peter Krempa
253ddf5a75 tests: qemuxml2argv: Use 1.5.3 version for the oldest case of 'disk-cache'
Rather than testing random set of flags add a case also for the oldest
supported qemu.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2019-02-08 08:33:10 +01:00
Peter Krempa
61900c4cda tests: qemu: Merge 'disk-scsi-vscsi' test into 'disk-scsi'
As we support multiple scsi controllers there's no need to have a
special test for this controller.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2019-02-08 08:32:40 +01:00
Peter Krempa
ee39011a09 tests: qemu: Merge 'disk-scsi-mptsas1068' test into 'disk-scsi'
As we support multiple scsi controllers there's no need to have a
special test for this controller.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2019-02-08 08:32:40 +01:00
Peter Krempa
a11e333779 tests: qemu: Merge 'disk-scsi-megasas' test into 'disk-scsi'
As we support multiple scsi controllers there's no need to have a
special test for this controller.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2019-02-08 08:32:40 +01:00
Peter Krempa
7523e60a94 tests: qemuxml2argv: Modernize 'disk-scsi' test
Use DO_TEST_CAPS_LATEST rather than a predetermined set of caps.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2019-02-08 08:32:40 +01:00
Peter Krempa
566ada91d5 tests: qemu: Rename 'disk-scsi-device' to 'disk-scsi'
Drop the 'device' suffix which is quite pointless.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2019-02-08 08:32:40 +01:00
Peter Krempa
43620843fc tests: qemuxml2argv: Move cases from 'disk-shared-locking' into 'disk-shared'
The tests are for the same feature. Move all the cases to 'disk-shared'
case as it's already using DO_TEST_CAPS_LATEST

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2019-02-08 08:32:40 +01:00
Peter Krempa
fea4cdd2d2 tests: qemuxml2argv: Remove the 'after startup XML' testing machinery
A lot of code with no real impact and popularity. Remove all the helpers
now that the only test case is gone.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2019-02-08 08:32:40 +01:00
Peter Krempa
ee498250e7 tests: qemuxml2argv: Remove testing of post startup change to 'cachemode' for shared disks
Testing that the cachemode is properly recorded to the configuration
after startup does not add much value and overcomplicates the xml2argv
test.

Remove the 'disk-shared' test with old capabilities as the test with
real capabilities covers the code sufficiently.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2019-02-08 08:31:34 +01:00
Peter Krempa
98c128fd99 tests: qemuxml2argv: Use real caps when auto-generating SCSI controller type
Using an old strict set of capabilities is not of much use if a code
path would select a more modern controller by accident.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2019-02-08 08:31:15 +01:00
Peter Krempa
3eff4bc2c5 tests: qemuxml: Merge 'ioeventfd' variant of 'virtio-scsi' test into the common file
We don't need separate files for this test. Also modernize it in the
process.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2019-02-08 08:31:15 +01:00
Peter Krempa
7d1fc9f8d6 tests: qemuxml: Merge 'max_sectors' variant of 'virtio-scsi' test into the common file
We don't need separate files for this test. Also modernize it in the
process.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2019-02-08 08:31:15 +01:00
Peter Krempa
74a7d6fb2b tests: qemuxml: Merge 'cmd_per_lun' variant of 'virtio-scsi' test into the common file
We don't need separate files for this test. Also modernize it in the
process.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2019-02-08 08:31:15 +01:00
Peter Krempa
ab5c7dbee3 tests: qemuxml: Merge 'num-queues' variant of 'virtio-scsi' test into the common file
We don't need separate files for this test. Also modernize it in the
process.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2019-02-08 08:31:15 +01:00
Peter Krempa
6d8be31f2a tests: qemu: Remove 'disk-scsi-virtio-scsi' test
Now that we have a specific test for testing the 'virtio-scsi'
controller and other tests which test a combination of scsi and non-scsi
devices this test no longer makes sense.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2019-02-08 08:31:15 +01:00
Peter Krempa
7a22fa7dce tests: qemuxml: Add a common test file for the 'virtio-scsi' controller
Add a file to aggregate testing for 'virtio-scsi' based on the modern
framework.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2019-02-08 08:31:02 +01:00
Peter Krempa
e67b6dcf36 qemu: capabilities: Probe caps for 'ide-hd' instead of 'ide-drive'
Since commit a4cda054e7 we are using 'ide-hd' and 'ide-cd' instead of
'ide-drive'. We also should probe capabilities for 'ide-hd' instead of
'ide-drive'. It is safe to do as 'ide-drive' is the common denominator
of both 'ide-hd' and 'ide-cd' so all the properties were common.

For now the test data are modified by just changing the appropriate type
when probing for caps.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2019-02-08 08:30:38 +01:00
Peter Krempa
7d114e1b72 qemu: capabilities: Probe caps for 'scsi-hd' instead of 'scsi-disk'
Since commit 02e8d0cfdf we are using 'scsi-hd' and 'scsi-cd' instead of
'scsi-disk'. We also should probe capabilities for 'scsi-hd' instead of
'scsi-disk'. It is safe to do as 'scsi-disk' is the common denominator
of both 'scsi-hd' and 'scsi-cd' so all the properties were common.

For now the test data are modified by just changing the appropriate type
when probing for caps.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2019-02-08 08:23:26 +01:00
Peter Krempa
aedd20386d tests: qemucaps: Make fake 'microcodeVersion' depend on filename instead of length
To avoid changes to the filled in microcode in case we change the caps
replies file for any reason make the number depend on the filename.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2019-02-08 08:23:26 +01:00
Jiri Denemark
f15789ecac virsh: Add support for setting post-copy migration bandwidth
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-07 16:25:59 +01:00
Jiri Denemark
12977fba8b qemu: Implement VIR_DOMAIN_MIGRATE_MAX_SPEED_POSTCOPY flag
This flag tells virDomainMigrateSetMaxSpeed and
virDomainMigrateGetMaxSpeed APIs to work on post-copy migration
bandwidth.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-07 16:25:59 +01:00
Jiri Denemark
c830187a01 qemu: Implement VIR_MIGRATE_PARAM_BANDWIDTH_POSTCOPY
This typed parameter for virDomainMigrate3 and virDomainMigrateToURI3
APIs may be used for setting maximum post-copy migration bandwidth.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-07 16:25:59 +01:00
Jiri Denemark
cdc1b1d71b Public API for post-copy migration bandwidth
This patch adds a new VIR_MIGRATE_PARAM_BANDWIDTH_POSTCOPY typed
parameter for virDomainMigrate3 and virDomainMigrateToURI3 for setting
maximum post-copy migration bandwidth.

In case the initial VIR_MIGRATE_PARAM_BANDWIDTH_POSTCOPY value turns out
to be suboptimal a new VIR_DOMAIN_MIGRATE_MAX_SPEED_POSTCOPY flag for
virDomainMigrateSetMaxSpeed and virDomainMigrateGetMaxSpeed may be used
to set/get the maximum post-copy migration bandwidth while migration is
already running.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-07 16:25:59 +01:00
Jiri Denemark
08d44263c8 qemu: Make migration params usable outside migration
So far migration parameters were changed only at the beginning of
migration mostly via an automatic translation from flags and typed
parameters. We need to export a few more functions to support APIs which
may set migration parameters while migration is already running.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-07 16:25:59 +01:00
Jiri Denemark
54e969c538 qemu: Rework qemuDomainMigrateSetMaxSpeed
Let's make the code flow easier to follow and get rid of the ugly endjob
label inside if branch.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-07 16:25:59 +01:00
Jiri Denemark
c160275d9c qemu: Add optional unit to qemuMigrationParamsTPMapItem
Some migration parameters supported by libvirt may use units that differ
from the units used by QEMU for the corresponding parameters. For
example, libvirt defines migration bandwidth in MiB/s while QEMU expects
B/s. Let's add a unit field to qemuMigrationParamsTPMapItem for
automatic conversion when translating between libvirt's migration typed
parameters and QEMU's migration paramteres.

This patch is a preparation for future parameters as the existing
VIR_MIGRATE_PARAM_BANDWIDTH parameter is set using "migrate_set_speed"
QMP command rather than "migrate-set-parameters" for backward
compatibility.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-07 16:25:59 +01:00
Jiri Denemark
9e7a163b13 qemu: Use C99 initializers for qemuMigrationParamsTPMap
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-07 16:25:59 +01:00
Michal Privoznik
988a0e0e38 virinitctl: Provide a stub list of init fifos for non-Linux
The virInitctlFifos list is exported, but lacks definition for
non-Linux and/or non-BSD case.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
2019-02-07 16:17:56 +01:00
Peter Krempa
b9e8a6f7e5 qemu: Use data in qemuBlockJobDataPtr instead of re-generating job name
qemuDomainBlockPivot and qemuDomainBlockJobAbort need the job name for
cancelling or pivoting but were generating it locally instead of
accessing the existing copy in the job data structure.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-07 14:32:32 +01:00
Peter Krempa
a26cc472ff qemu: Remove unused 'cfg' qemuDomainBlockPivot
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-07 14:32:32 +01:00
Peter Krempa
023d69dfc8 qemu: Move shareable disk check for block copy
The writing to an image actually starts when the copy job is initiated,
so checking this at the time of the pivot operation is too late.

Move the check to qemuDomainBlockCopyCommon. Note that modern qemu would
have prevented two writers with qcow2 so the slim possibility of a job
started with libvirtd without this patch missing the check is not really
worth worrying about.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-07 14:32:32 +01:00
Peter Krempa
ef8a87a09d qemu: Always save status XML in qemuDomainBlockJobAbort
For copy and active commit jobs we record the state of the mirror so
that we can recover. The status XML was not saved in case of
qemuDomainBlockPivot due to an oversight.

Save the XML always when invoking qemuDomainBlockJobAbort even if
the job is not currently tracking any state. This will change later and
also this is not a particularly hot code path.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-07 14:32:32 +01:00
Michal Privoznik
94fce25546 lxc: Don't reboot host on virDomainReboot
If the container is really a simple one (init is just bash and
the whole root is passed through) then virDomainReboot and
virDomainShutdown will talk to the actual init within the host.
Therefore, 'virsh shutdown $dom' will result in shutting down the
host. True, at that point the container is shut down too but
looks a bit harsh to me.

The solution is to check if the init inside the container is or
is not the same as the init running on the host.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
2019-02-07 11:36:41 +01:00
Michal Privoznik
64eca3d5e3 virinitctl: Expose fifo paths and allow caller to chose one
So far the virInitctlSetRunLevel() is fully automatic. It finds
the correct fifo to use to talk to the init and it will set the
desired runlevel. Well, callers (so far there is just one) will
need to inspect the fifo a bit just before the runlevel is set.
Therefore, expose the internal list of fifos and also allow
caller to explicitly use one.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
2019-02-07 11:24:09 +01:00
Michal Privoznik
16c123679c lxc: Restore seclabels after the container is killed
Due to a bug the seclabels are restored before any PID in the
container is killed. This should be done afterwards in
virLXCProcessCleanup.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
2019-02-07 11:17:51 +01:00
Michal Privoznik
401030499b vircgroup: Try harder to kill cgroup
Prior to rewrite of cgroup code we only had one backend to try.
After the rewrite the virCgroupBackendGetAll() returns both
backends (for v1 and v2). However, not both have to really be
present on the system which results in killRecursive callback
failing which in turn might mean we won't try the other backend.

At the same time, this function reports no error as it should.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
2019-02-07 11:16:29 +01:00
Michal Privoznik
797bdb3ce8 lxc: Use correct job type for destroying a domain
Not that it would matter because LXC driver doesn't differentiate
the job types so far, but nevertheless the Destroy() should grab
LXC_JOB_DESTROY.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
2019-02-07 11:13:56 +01:00
Jie Wang
6e27a81a17 conf: Remove iothreads restriction in virDomainDefCheckABIStabilityFlags
The number of iothreads is not part of the vm state sent during
migration, nor exposed to the guest ABI, so this restriction is
a mistake in libvirt. Let's remove that bit of code.

Reviewed-by: Cole Robinson <crobinso@redhat.com>
Signed-off-by: Jie Wang <wangjie88@huawei.com>
2019-02-06 17:05:55 -05:00
Nikolay Shirokovskiy
74dfa15abe dosc: schema: fix usb source address device attribute format
Device attribute does not have dotted "portAddr" format. Instead it
has single number format described but "usbAddr" which corresponds
to device parsing code in virDomainHostdevSubsysUSBDefParseXML.

Looks like [1] mistakenly changed device format for hostdev devices.
And [2] copy-n-paste this for hostdev network interfaces.

[1] 31710a53 Modify USB port to be defined as a port path
[2] 3b1c191f conf: parse/format type='hostdev' network interfaces

Signed-off-by: Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-02-06 10:48:48 +03:00
Andrea Bolognani
3d23a434d2 qemu: Refactor virtio-input capabilities checks
The checks and error messages are mostly the same across
all virtio-input devices, so we can avoid having multiple
copies of the same code.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-05 17:50:42 +01:00
Andrea Bolognani
eeafebc51d tests: Unify qemucaps2xml output files
Turns out different versions of QEMU on the same architecture
produce the same output, so we can have a single output file
per architecture instead of duplicating the same data over and
over again.

Spotted-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
2019-02-05 17:15:05 +01:00
Peter Krempa
620d9dd598 qemu: caps: Don't try to ask for CAP_DAC_OVERRIDE if non-root
It will not work. This breaks qemu capabilities probing as a user.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
2019-02-05 08:57:35 +01:00
Marc Hartmayer
41d37d31b3 qemu: Refresh state before starting the VCPUs
For normal starts (no incoming migration) the refresh of the QEMU
state must be done before the VCPUs getting started since otherwise
there might be a race condition between a possible shutdown of the
guest OS and the QEMU monitor queries.

This fixes "qemu: migration: Refresh device information after
transferring state" (93db7eea1b).

Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
2019-02-04 15:51:48 +01:00
Michal Privoznik
86caae3953 qemu: Assume migration with a network disk migration is safe
If a domain has a disk that is type='network' we require specific
cache mode to allow migration with it (either 'directsync' or
'none'). This doesn't make much sense since network disks are
supposed to be safe to migrate by default.

At the same time, we should be checking for the actual source
type, not apparent type set in the domain XML.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
2019-02-04 14:03:42 +01:00
Peter Krempa
3bc3cca7bb qemu: domain: Use 'raw' for 'volume' disks without format
Storage pools might want to specify format of the image when translating
the volume thus we can't add any default format when parsing the XML.

Add a explicit format when starting the VM and format is not present
neither by user specifying it nor by the storage pool translation
function.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-04 13:42:11 +01:00
Peter Krempa
2f78ca803a qemu: domain: Assume 'raw' default storage format also for network storage
Post parse callback adds the 'raw' type only for local files. Remote
files can also have backing store (even local) so we should do this also
for network backed storage.

Note that virStorageFileGetMetadata always considers files with no type
as raw so we will not accidentally traverse the backing chain and allow
unexpected files being labelled with svirt labels.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-04 13:42:11 +01:00
Peter Krempa
6b618d2d5f tests: qemu: Test network disks without format specified explicitly
Modify some existing tests of network-based disks to omit the storage
format specification.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-04 13:42:11 +01:00
Peter Krempa
6db0d03383 qemu: command: Don't skip 'readonly' and throttling info for empty drive
In commit f80eae8c2a I was too agresive in removing properties of
-drive for empty drives. It turns out that qemu actually persists the
state of 'readonly' and the throttling information even for the empty
drive.

Removing 'readonly' thus made qemu open any subsequent images added via
the 'change' command as RW which was forbidden by selinux thanks to the
restrictive sVirt label for readonly media.

Fix this by formating the property again and bump the tests and leave a
note detailing why the rest of the properties needs to be skipped.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2019-02-04 09:49:37 +01:00
Andrea Bolognani
ae3955f486 news: Fix typo
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
2019-02-04 09:23:16 +01:00
Cole Robinson
af36f8a641 Require a semicolon for VIR_ONCE_GLOBAL_INIT calls
Missing semicolon at the end of macros can confuse some analyzers
(like cppcheck <filename>). VIR_ONCE_GLOBAL_INIT is almost
exclusively called without an ending semicolon, but let's
standardize on using one like the other macros.

Add a dummy struct definition at the end of the macro, so
the compiler will require callers to add a semicolon.

Reviewed-by: John Ferlan <jferlan@redhat.com>
Signed-off-by: Cole Robinson <crobinso@redhat.com>
2019-02-03 17:46:29 -05:00
Cole Robinson
8bec5488a6 Require a semicolon for VIR_LOG_INIT calls
Missing semicolon at the end of macros can confuse some analyzers
(like cppcheck <filename>), and we have a mix of semicolon and
non-semicolon usage through the code. Let's standardize on using
a semicolon for VIR_LOG_INIT calls.

Drop the semicolon from the final statement of the macro, so
the compiler will require callers to add a semicolon.

Reviewed-by: John Ferlan <jferlan@redhat.com>
Signed-off-by: Cole Robinson <crobinso@redhat.com>
2019-02-03 17:46:29 -05:00
Cole Robinson
6a4d938dd3 Require a semicolon for VIR_ENUM_IMPL calls
Missing semicolon at the end of macros can confuse some analyzers
(like cppcheck <filename>), and we have a mix of semicolon and
non-semicolon usage through the code. Let's standardize on using
a semicolon for VIR_ENUM_IMPL calls.

Move the verify() statement to the end of the macro and drop
the semicolon, so the compiler will require callers to add a
semicolon.

While we are touching these call sites, standardize on putting
the closing parenth on its own line, as discussed here:
https://www.redhat.com/archives/libvir-list/2019-January/msg00750.html

Reviewed-by: John Ferlan <jferlan@redhat.com>
Signed-off-by: Cole Robinson <crobinso@redhat.com>
2019-02-03 17:46:29 -05:00
Cole Robinson
7662194bf3 Require a semicolon to VIR_ENUM_DECL calls
Missing semicolon at the end of macros can confuse some analyzers
(like cppcheck <filename>), and we have a mix of semicolon and
non-semicolon usage through the code. Let's standardize on using
a semicolon for VIR_ENUM_DECL calls.

Drop the semicolon from the final statement of the macro, so
the compiler will require callers to add a semicolon.

Reviewed-by: John Ferlan <jferlan@redhat.com>
Signed-off-by: Cole Robinson <crobinso@redhat.com>
2019-02-03 17:46:29 -05:00
Laine Stump
7c9dcfed5a util: remove test code accidentally committed to virFirewallDZoneExists
Just before pushing the series containing commit 3bba4825 I had added
a "return true" to the top of virFirewallDZoneExists() to measure the
impact of calling that function once per network during startup. I
found that the effect was minimal, but forgot to remove the "return
true" before pushing. This unfortunately causes a failure to start
networks on systems that have a firewalld version that doesn't support
our libvirt zone file (i.e. pretty much everyone).

This patch removes the unintended line.

Signed-off-by: Laine Stump <laine@laine.org>
2019-02-02 23:25:59 -05:00
Roman Bogorodskiy
1879568744 docs: bhyve: warn about bhyve:commandline risks
Document that using bhyve:commandline is not fully
supported and may cause issues.

Signed-off-by: Roman Bogorodskiy <bogorodskiy@gmail.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2019-02-01 22:08:55 +04:00
Roman Bogorodskiy
2055188363 bhyve: emit warning when using bhyve:commandline
When using custom command line arguments, warn that
this configuration is not fully supported.

Signed-off-by: Roman Bogorodskiy <bogorodskiy@gmail.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2019-02-01 22:08:55 +04:00
Roman Bogorodskiy
d04e064775 bhyve: bhyveDomainDefNamespaceFormatXML cleanup
- Remove ATTRIBUTE_UNUSED for the "buf" argument, it's
   not unused
 - Indent fix

Signed-off-by: Roman Bogorodskiy <bogorodskiy@gmail.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2019-02-01 22:08:55 +04:00
Laine Stump
62adfa6755 docs: update news.xml for firewalld zone changes
Signed-off-by: Laine Stump <laine@laine.org>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2019-02-01 12:57:42 -05:00
Laine Stump
30a6f91686 network: allow configuring firewalld zone for virtual network bridge device
Since we're setting the zone anyway, it will be useful to allow
setting a different (custom) zone for each network. This will be done
by adding a "zone" attribute to the "bridge" element, e.g.:

   ...
   <bridge name='virbr0' zone='myzone'/>
   ...

If a zone is specified in the config and it can't be honored, this
will be an error.

Signed-off-by: Laine Stump <laine@laine.org>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2019-02-01 12:57:13 -05:00
Laine Stump
ae05211a36 network: set firewalld zone of bridges to "libvirt" zone when appropriate
This patch restores broken guest network connectivity after a host
firewalld is switched to using an nftables backend. It does this by
adding libvirt networks' bridge interfaces to the new "libvirt" zone
in firewalld.

After this patch, the bridge interface of any network created by
libvirt (when firewalld is active) will be added to the firewalld
zone called "libvirt" if it exists (regardless of the firewalld
backend setting). This behavior does *not* depend on whether or not
libvirt has installed the libvirt zone file (set with
"--with[out]-firewalld-zone" during the configure phase of the package
build).

If the libvirt zone doesn't exist (either because the package was
configured to not install it, or possibly it was installed, but
firewalld doesn't support rule priorities, resulting in a parse
error), the bridge will remain in firewalld's default zone, which
could be innocuous (in the case that the firewalld backend is
iptables, guest networking will still function properly with the
bridge in the default zone), or it could be disastrous (if the
firewalld backend is nftables, we can be assured that guest networking
will fail). In order to be unobtrusive in the former case, and
informative in the latter, when the libvirt zone doesn't exist we
then check the firewalld version to see if it's new enough to support
the nftables backend, and then if the backend is actually set to
nftables, before logging an error (and failing the net-start
operation, since the network couldn't possibly work anyway).

When the libvirt zone is used, network behavior is *slightly*
different from behavior of previous libvirt. In the past, libvirt
network behavior would be affected by the configuration of firewalld's
default zone (usually "public"), but now it is affected only by the
"libvirt" zone), and thus almost surely warrants a release note for
any distro upgrading to libvirt 5.1 or above. Although it's
unfortunate that we have to deal with a mandatory behavior change, the
architecture of multiple hooks makes it impossible to *not* change
behavior in some way, and the new behavior is arguably better (since
it will now be possible to manage access to the host from virtual
machines vs from public interfaces separately).

Creates-and-Resolves: https://bugzilla.redhat.com/1650320
Resolves: https://bugzilla.redhat.com/1638342
Signed-off-by: Laine Stump <laine@laine.org>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2019-02-01 12:08:37 -05:00
Laine Stump
3b71f2e42d configure: selectively install a firewalld 'libvirt' zone
In the past (when both libvirt and firewalld used iptables), if either
libvirt's rules *OR* firewalld's rules accepted a packet, it would
be accepted. This was because libvirt and firewalld rules were
processed during the same kernel hook, and a single ACCEPT result
would terminate the rule traversal and cause the packet to be
accepted.

But now firewalld can use nftables for its backend, while libvirt's
firewall rules are still using iptables; iptables rules are still
processed, but at a different time during packet processing
(i.e. during a different hook) than the firewalld nftables rules. The
result is that a packet must be accepted by *BOTH* the libvirt
iptables rules *AND* the firewalld nftable rules in order to be
accepted.

This causes pain because

1) libvirt always adds rules to permit DNS and DHCP (and sometimes
TFTP) from guests to the host network's bridge interface. But
libvirt's bridges are in firewalld's "default" zone (which is usually
the zone called "public"). The public zone allows ssh, but doesn't
allow DNS, DHCP, or TFTP. So even though libvirt's rules allow the
DHCP and DNS traffic, the firewalld rules (now processed during a
different hook) dont, thus guests connected to libvirt's bridges can't
acquire an IP address from DHCP, nor can they make DNS queries to the
DNS server libvirt has setup on the host. (This could be solved by
modifying the default firewalld zone to allow DNS and DHCP, but that
would open *all* interfaces in the default zone to those services,
which is most likely not what the host's admin wants.)

2) Even though libvirt adds iptables rules to allow forwarded traffic
to pass the iptables hook, firewalld's higher level "rich rules" don't
yet have the ability to configure the acceptance of forwarded traffic
(traffic that is going somewhere beyond the host), so any traffic that
needs to be forwarded from guests to the network beyond the host is
rejected during the nftables hook by the default zone's "default
reject" policy (which rejects all traffic in the zone not specifically
allowed by the rules in the zone, whether that traffic is destined to
be forwarded or locally received by the host).

libvirt can't send "direct" nftables rules (firewalld only supports
direct/passthrough rules for iptables), so we can't solve this problem
by just sending explicit nftables rules instead of explicit iptables
rules (which, if it could be done, would place libvirt's rules in the
same hook as firewalld's native rules, and thus eliminate the need for
packets to be accepted by both libvirt's and firewalld's own rules).

However, we can take advantage of a quirk in firewalld zones that have
a default policy of "accept" (meaning any packet that doesn't match a
specific rule in the zone will be *accepted*) - this default accept will
also accept forwarded traffic (not just traffic destined for the host).

Of course we don't want to modify firewalld's default zone in that
way, because that would affect the filtering of traffic coming into
the host from other interfaces using that zone. Instead, we will
create a new zone called "libvirt". The libvirt zone will have a
default policy of accept so that forwarded traffic can pass and list
specific services that will be allowed into the host from guests (DNS,
DHCP, SSH, and TFTP).

But the same default accept policy that fixes forwarded traffic also
causes *all* traffic from guest to host to be accepted. To close this
new hole, the libvirt zone can take advantage of a new feature in
firewalld (currently slated for firewalld-0.7.0) - priorities for rich
rules - to add a low priority rule that rejects all local traffic (but
leaves alone all forwarded traffic).

So, our new zone will start with a list of services that are allowed
(dhcp, dns, tftp, and ssh to start, but configurable via any firewalld
management application, or direct editing of the zone file in
/etc/firewalld/zones/libvirt.xml), followed by a low priority
<reject/> rule (to reject all other traffic from guest to host), and
finally with a default policy of accept (to allow forwarded traffic).

This patch only creates the zonefile for the new zone, and implements
a configure.ac option to selectively enable/disable installation of
the new zone. A separate patch contains the necessary code to actually
place bridge interfaces in the libvirt zone.

Why do we need a configure option to disable installation of the new
libvirt zone? It uses a new firewalld attribute that sets the priority
of a rich rule; this feature first appears in firewalld-0.7.0 (unless
it has been backported to am earlier firewalld by a downstream
maintainer). If the file were installed on a system with firewalld
that didn't support rule priorities, firewalld would log an error
every time it restarted, causing confusion and lots of extra bug
reports.

So we add two new configure.ac switches to avoid polluting the system
logs with this error on systems that don't support rule priorities -
"--with-firewalld-zone" and "--without-firewalld-zone". A package
builder can use these to include/exclude the libvirt zone file in the
installation. If firewalld is enabled (--with-firewalld), the default
is --with-firewalld-zone, but it can be disabled during configure
(using --without-firewalld-zone). Targets that are using a firewalld
version too old to support the rule priority setting in the libvirt
zone file can simply add --without-firewalld-zone to their configure
commandline.

These switches only affect whether or not the libvirt zone file is
*installed* in /usr/lib/firewalld/zones, but have no effect on whether
or not libvirt looks for a zone called libvirt and tries to use it.

NB: firewalld zones can only be added to the permanent config of
firewalld, and won't be loaded/enabled until firewalld is restarted,
so at package install/upgrade time we have to restart firewalld. For
rpm-based distros, this is done in the libvirt.spec file by calling
the %firewalld_restart rpm macro, which is a part of the
firewalld-filesystem package. (For distros that don't use rpm
packages, the command "firewalld-cmd --reload" will have the same
effect).

Signed-off-by: Laine Stump <laine@laine.org>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2019-02-01 12:08:37 -05:00
Laine Stump
3bba4825c2 util: new virFirewallD APIs + docs
virFirewallDGetBackend() reports whether firewalld is currently using
an iptables or an nftables backend.

virFirewallDGetVersion() learns the version of the firewalld running
on this system and returns it as 1000000*major + 1000*minor + micro.

virFirewallDGetZones() gets a list of all currently active firewalld
zones.

virFirewallDInterfaceSetZone() sets the firewalld zone of the given
interface.

virFirewallDZoneExists() can be used to learn whether or not a
particular zone is present and active in firewalld.

Signed-off-by: Laine Stump <laine@laine.org>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2019-02-01 12:08:37 -05:00
Laine Stump
d8393b56e2 util: move all firewalld-specific stuff into its own files
In preparation for adding several other firewalld-specific functions,
separate the code that's unique to firewalld from the more-generic
"firewall" file.

Signed-off-by: Laine Stump <laine@laine.org>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2019-02-01 12:08:37 -05:00
Laine Stump
4bf0f390ed configure: change HAVE_FIREWALLD to WITH_FIREWALLD
Support for firewalld is a feature that can be selectively enabled or
disabled (using --with-firewalld/--without-firewalld), not merely
something that must be accounted for in the code if it is present with
no exceptions. It is more consistent with other usage in libvirt to
use WITH_FIREWALLD rather than HAVE_FIREWALLD.

Signed-off-by: Laine Stump <laine@laine.org>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2019-02-01 12:08:37 -05:00
John Ferlan
170f83506e util: Fix build issue with virStorageFileGetNPIVKey
Signed-off-by: John Ferlan <jferlan@redhat.com>
2019-02-01 12:04:43 -05:00
Erik Skultety
f2b4039194 docs: news: Update the release notes with the SEV permission fix
Signed-off-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2019-02-01 17:30:33 +01:00
John Ferlan
850cfd75be storage: Fetch a unique key for vHBA/NPIV LUNs
https://bugzilla.redhat.com/show_bug.cgi?id=1657468

Commit be1bb6c95 changed the way volumes were stored from a forward
linked list to a hash table. In doing so, it required that each vol
object would have 3 unique values as keys into tables - key, name,
and path. Due to how vHBA/NPIV LUNs are created/used this resulted
in a failure to utilize all the LUN's found during processing.

During virStorageBackendSCSINewLun processing fetch the key (or
serial value) for NPIV LUN's using virStorageFileGetNPIVKey which
will formulate a more unique key based on the serial value and
the port for the LUN.

Signed-off-by: John Ferlan <jferlan@redhat.com>
ACKed-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-01 10:39:19 -05:00
John Ferlan
5f9e211c93 util: Introduce virStorageFileGetNPIVKey
The vHBA/NPIV LUNs created via the udev processing of the
VPORT_CREATE command end up using the same serial value
as seen/generated by the /lib/udev/scsi_id as returned
during virStorageFileGetSCSIKey. Therefore, in order to
generate a unique enough key to be used when adding the
LUN as a volume during virStoragePoolObjAddVol a more
unique key needs to be generated for an NPIV volume.

The problem is illustrated by the following example, where
scsi_host5 is a vHBA used with the following LUNs:

$ lsscsi -tg
...
[5:0:4:0]    disk    fc:0x5006016844602198,0x101f00  /dev/sdh   /dev/sg23
[5:0:5:0]    disk    fc:0x5006016044602198,0x102000  /dev/sdi   /dev/sg24
...

Calling virStorageFileGetSCSIKey would return:

/lib/udev/scsi_id --device /dev/sdh --whitelisted --replace-whitespace /dev/sdh
350060160c460219850060160c4602198
/lib/udev/scsi_id --device /dev/sdh --whitelisted --replace-whitespace /dev/sdi
350060160c460219850060160c4602198

Note that althrough /dev/sdh and /dev/sdi are separate LUNs, they
end up with the same serial number used for the vol->key value.
When virStoragePoolFCRefreshThread calls virStoragePoolObjAddVol
the second LUN fails to be added with the following message
getting logged:

    virHashAddOrUpdateEntry:341 : internal error: Duplicate key

To resolve this, virStorageFileGetNPIVKey will use a similar call
sequence as virStorageFileGetSCSIKey, except that it will add the
"--export" option to the call. This results in more detailed output
which needs to be parsed in order to formulate a unique enough key
to be used. In order to be unique enough, the returned value will
concatenate the target port as returned in the "ID_TARGET_PORT"
field from the command to the "ID_SERIAL" value.

Signed-off-by: John Ferlan <jferlan@redhat.com>
ACKed-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-01 10:38:59 -05:00
John Ferlan
8bf89dc837 storage: Rework virStorageBackendSCSISerial
Alter the code to use the virStorageFileGetSCSIKey helper
to fetch the unique key for the SCSI disk. Alter the logic
to follow the former code which would return a duplicate
of @dev when either the virCommandRun succeeded, but returned
an empty string or when WITH_UDEV was not true.

Signed-off-by: John Ferlan <jferlan@redhat.com>
ACKed-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-01 10:30:45 -05:00
John Ferlan
9b86bbccb3 util: Modify virStorageFileGetSCSIKey return
Alter the "real" code to return -2 on virCommandRun failure.
Alter the comments and function header to describe the function
and its returns.

Signed-off-by: John Ferlan <jferlan@redhat.com>
ACKed-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-01 10:30:13 -05:00
Michal Privoznik
f136b83139 qemu: Rework setting process affinity
https://bugzilla.redhat.com/show_bug.cgi?id=1503284

The way we currently start qemu from CPU affinity POV is as
follows:

  1) the child process is set affinity to all online CPUs (unless
  some vcpu pinning was given in the domain XML)

  2) Once qemu is running, cpuset cgroup is configured taking
  memory pinning into account

Problem is that we let qemu allocate its memory just anywhere in
1) and then rely in 2) to be able to move the memory to
configured NUMA nodes. This might not be always possible (e.g.
qemu might lock some parts of its memory) and is very suboptimal
(copying large memory between NUMA nodes takes significant amount
of time).

The solution is to set affinity to one of (in priority order):
  - The CPUs associated with NUMA memory affinity mask
  - The CPUs associated with emulator pinning
  - All online host CPUs

Later (once QEMU has allocated its memory) we then change this
again to (again in priority order):
  - The CPUs associated with emulator pinning
  - The CPUs returned by numad
  - The CPUs associated with vCPU pinning
  - All online host CPUs

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2019-02-01 12:53:46 +01:00
Erik Skultety
a2d3dea9d4 qemu: caps: Use CAP_DAC_OVERRIDE for probing to avoid permission issues
This is mainly about /dev/sev and its default permissions 0600. Of
course, rule of 'tinfoil' would be that we can't trust anything, but the
probing code in QEMU is considered safe from security's perspective + we
can't create an udev rule for this at the moment, because ioctls and
file system permissions aren't cross-checked in kernel and therefore a
user with read permissions could issue a 'privileged' operation on SEV
which is currently only limited to root.

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

Signed-off-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2019-02-01 12:44:28 +01:00
Erik Skultety
17f6a257f1 security: dac: Relabel /dev/sev in the namespace
The default permissions (0600 root:root) are of no use to the qemu
process so we need to change the owner to qemu iff running with
namespaces.

Signed-off-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2019-02-01 12:40:22 +01:00
Erik Skultety
6fd4c8f878 qemu: domain: Add /dev/sev into the domain mount namespace selectively
Instead of exposing /dev/sev to every domain, do it selectively.

Signed-off-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2019-02-01 12:40:20 +01:00
Erik Skultety
a404ac3476 qemu: cgroup: Expose /dev/sev/ only to domains that require SEV
SEV has a limit on number of concurrent guests. From security POV we
should only expose resources (any resources for that matter) to domains
that truly need them.

Signed-off-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2019-02-01 12:40:18 +01:00
Erik Skultety
b644011918 qemu: conf: Remove /dev/sev from the default cgroup device acl list
We should not give domains access to something they don't necessarily
need by default. Remove it from the qemu driver docs too.

Signed-off-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2019-02-01 12:39:41 +01:00
Andrea Bolognani
bca2346641 tests: Update qemucaps2xml for QEMU 4.0.0 on x86_64
Commit fb0d0d6c54 added capabilities data and updated
qemucapabilitiestest but forgot to update qemucaps2xmltest
at the same time.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-01 12:28:32 +01:00
Andrea Bolognani
ad25a68826 news: Update for PCI support on RISC-V
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-01 11:57:55 +01:00
Andrea Bolognani
c5f92bf558 tests: Add test for PCI usage on RISC-V
This shows users can now use PCI for RISC-V guests, as long
as they opt into it by manually assigning addresses.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-01 11:57:52 +01:00
Andrea Bolognani
e266a41f1e qemu: Add PCI support for RISC-V guests
virtio-mmio is still used by default, so if PCI is desired
it's necessary to explicitly opt-in by adding an appropriate

  <address type='pci' domain='0x0000' ... />

element to the corresponding device.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-01 11:57:50 +01:00
Andrea Bolognani
030f963129 tests: Add capabilities data for QEMU 4.0.0 on RISC-V
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-02-01 11:57:33 +01:00
Casey Callendrello
682be11505 network: set mtu as a DHCP option when specified
This adds an additional directive to the dnsmasq configuration file that
notifies clients via dhcp about the link's MTU. Guests can then choose
adjust their link accordingly.

Signed-off-by: Casey Callendrello <cdc@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
2019-01-31 17:45:41 +01:00
Ján Tomko
6dec641394 storagepoolxml2argvtest: run mountopts test conditionally
This test relies on namespace support, which is only compiled in
if we have the 'fs' and 'netfs' backends.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2019-01-31 16:48:25 +01:00
Ján Tomko
55aa7ab182 storagepoolxml2argvtest: introduce DO_TEST_PLATFORM
Instead of repeating the same platform for every test,
set it once, since we do the same tests with the same
input for all platforms, it's just the output that differs.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2019-01-31 16:48:25 +01:00
Ján Tomko
f6b839f7b4 storagepoolxml2argvtest: pass the platform suffix as a string
Instead of a pair of bools.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2019-01-31 16:48:24 +01:00
Erik Skultety
13500ee289 docs: Drop /dev/net/tun from the list of shared devices
This was a left-over that should have been dropped along the change in
qemu.conf.

Signed-off-by: Erik Skultety <eskultet@redhat.com>
2019-01-31 16:07:28 +01:00
John Ferlan
6c87c75a0c tests: Fix storagepoolxml2xmltest execution for XML namespaces
Only run the pool-netfs-ns-mountopts if built WITH_STORAGE_FS and only
run pool-rbd-ns-configopts if built with WITH_STORAGE_RBD since the
namespace support is only enabled if the pool is enabled.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-01-31 08:31:17 -05:00
Daniel P. Berrangé
6bb582bff8 qemu: remove check for 'qemu' binary
The 'qemu' binary used to provide the i386 emulator until it was renamed
to qemu-system-i386 in QEMU 1.0. Since we don't support such old
versions we don't need to check for 'qemu' when probing capabilities.

Reviewed-by: Erik Skultety <eskultet@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2019-01-31 13:28:40 +00:00
Daniel P. Berrangé
4a8d9d4953 storage: change custom namespace URIs to drop '/source' component
The custom namespaces were originally registered against the storage
pool source struct, but during review this was changed to the top level
storage pool struct. The namespace URIs were not updated to match, so
had a redundant '/source' component.

Reviewed-by: John Ferlan <jferlan@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2019-01-31 12:34:05 +00:00
Peter Krempa
73ce3911aa qemu: blockjob: Don't report block job progress at 100% if job isn't ready
Some clients poll virDomainGetBlockJobInfo rather than wait for the
VIR_DOMAIN_BLOCK_JOB_READY event. In some cases qemu can get to 100% and
still not reach the synchronised phase. Initiating a pivot in that case
will fail.

Given that computers are interacting here, the error that the job
can't be finalized yet is not handled very well by those specific
implementations.

Our docs now correctly state to use the event. We already do a similar
output adjustment in case when the progress is not available from qemu
as in that case we'd report 0 out of 0, which some apps also incorrectly
considered as 100% complete.

In this case we subtract 1 from the progress if the ready state is not
signalled by qemu if the progress was at 100% otherwise.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2019-01-31 13:03:01 +01:00
Peter Krempa
52bf9ada8e docs: css: Make docs page wider while still accomodating narrow screens
Bump the width to 70em while keeping a maximum width of 95% to allow for
some border.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2019-01-31 12:03:32 +01:00
Peter Krempa
63cbad4e05 docs: Format bit shift and hex notation for bitwise flag enums
Big number itself does not make much sense in some cases. Format the
bitshift format as well.

Changes our web page docs from:

VIR_MIGRATE_POSTCOPY = 32768 : Setting the VIR_MIGRATE_POSTCOPY...
VIR_MIGRATE_TLS      = 65536 : Setting the VIR_MIGRATE_TLS flag...

to:

VIR_MIGRATE_POSTCOPY = 32768 (0x8000; 1 << 15)  : Setting the VIR_MIGRATE_POSTCOPY...
VIR_MIGRATE_TLS      = 65536 (0x10000; 1 << 16) : Setting the VIR_MIGRATE_TLS flag...

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2019-01-31 12:02:35 +01:00
Daniel P. Berrangé
6a306a6b8f conf: fix enum convertor function for feature capability errors
A copy+paste mistaken meant the wrong enum -> string convertor
function was used for the error when an incorrect feature capability was
used.

Reviewed-by: John Ferlan <jferlan@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2019-01-31 10:54:22 +00:00
Daniel P. Berrangé
8c618e17d1 hyperv: use "is None" not "== None" for PEP-8 compliance
PEP 8 says:

    "Comparisons to singletons like None should always be done
     with 'is' or 'is not', never the equality operators."

There are potentially semantics differences, though in the case of this
libvirt code its merely a style change:

  http://jaredgrubb.blogspot.com/2009/04/python-is-none-vs-none.html

Reviewed-by: John Ferlan <jferlan@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2019-01-31 10:38:43 +00:00
Daniel P. Berrangé
a962af7df3 hyperv: remove unused 'total' variable
Reviewed-by: John Ferlan <jferlan@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2019-01-31 10:38:39 +00:00
Daniel P. Berrangé
a507edef33 qemu: pass virDomainDeviceInfo by reference
The virDomainDeviceInfo parameter is a large struct so it is preferrable
to pass it by reference instead of by value.

Reviewed-by: John Ferlan <jferlan@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2019-01-31 10:38:36 +00:00
Daniel P. Berrangé
72e8c721eb storage: pass struct _virStorageBackendQemuImgInfo by reference
The struct _virStorageBackendQemuImgInfo is quite large so it is
preferrable to pass it by reference instead of by value. This requires
us to stop modifying the "compat" field.

Reviewed-by: John Ferlan <jferlan@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2019-01-31 10:38:33 +00:00
Daniel P. Berrangé
75d4defe8f remote: remove variable whose value is a constant
The 'rv' variable is never changed after being declared, so can be
removed.

Reviewed-by: John Ferlan <jferlan@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2019-01-31 10:38:30 +00:00
Daniel P. Berrangé
df7b679c58 conf: remove pointless check on enum value
'val' is initialized from virDomainCapsFeatureTypeFromString and a
few lines earlier there was already a check for 'val < 0'.

The 'val >= 0' is thus always true. The enum conversion similarly
ensures that the val will be less than VIR_DOMAIN_CAPS_FEATURE_LAST,
so "val < VIR_DOMAIN_CAPS_FEATURE_LAST' is thus always true too.

Reviewed-by: John Ferlan <jferlan@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2019-01-31 10:38:13 +00:00
Peter Krempa
d56afb8e39 qemu: Label backing chain of user-provided target of blockCopy when starting the job
Be more sensible when setting labels of the target of a
virDomainBlockCopy operation. Previously we'd relabel everything in case
it's a copy job even if there's no unlabelled backing chain. Since we
are also not sure whether the backing chain is shared we don't relabel
the chain on completion of the blockjob. This certainly won't play nice
with the image permission relabelling feature.

While this does not fix the case where the image is reused and has
backing chain it certainly sanitizes all the other cases. Later on it
will also allow to do the correct thing in cases where only one layer
was introduced.

The change is necessary as in case when -blockdev will be used we will
need to hotplug the backing chain and thus labeling needs to be setup in
advance and not only at the time of pivot.  To avoid multiple code paths
move the labeling now.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-01-30 17:20:38 +01:00
Peter Krempa
9b197f0e36 qemu: hotplug: Refactor qemuHotplugPrepareDiskAccess to work on virStorageSource
Rather than passing in a virStorageSource which would override the
originally passed disk->src we can now drop passing in a disk completely
as all functions called inside here require a virStorageSource.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-01-30 17:20:38 +01:00
Peter Krempa
083b74cd20 locking: Use virDomainLockImage[Attach|Detach] instead of *Disk
Use the functions designed to deal with single images as the *Disk
functions were just wrappers.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-01-30 17:20:38 +01:00
Peter Krempa
93a1659171 qemu: driver: Remove disk source munging in qemuDomainBlockPivot
Previously there weren't any suitable functions which would allow
setting up host side of a full disk chain so we've opted to replace the
'src' in a virDomainDiskDef by the new image source.

That is now no longer necessary so remove the munging.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-01-30 17:20:38 +01:00
Peter Krempa
c938c35363 security: Remove disk labeling functions and fix callers
Now that we have replacement in the form of the image labeling function
we can drop the unnecessary functions by replacing all callers.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-01-30 17:20:38 +01:00
Peter Krempa
787e4a3dc8 qemu: security: Replace and remove qemuSecurity[Set|Restore]DiskLabel
The same can be achieved by using qemuSecurity[Set|Restore]ImageLabel.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-01-30 17:20:38 +01:00
Peter Krempa
81594afb05 qemu: security: Add 'backingChain' flag to qemuSecurity[Set|Restore]ImageLabel
The flag will control the VIR_SECURITY_DOMAIN_IMAGE_LABEL_BACKING_CHAIN
flag of the security driver image labeling APIs.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-01-30 17:20:38 +01:00
Peter Krempa
43479005ee security: Remove security driver internals for disk labeling
Security labeling of disks consists of labeling of the disk image
itself and it's backing chain. Modify
virSecurityManager[Set|Restore]ImageLabel to take a boolean flag that
will label the full chain rather than the top image itself.

This allows to delete/unify some parts of the code and will also
simplify callers in some cases.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-01-30 17:20:38 +01:00
Peter Krempa
e7d14bf965 qemu: cgroup: Change qemu[Setup|Teardown]DiskCgroup to take virStorageSource
Since the disk is necessary only to get the source modify the functions
to take the source directly and rename them to
qemu[Setup|Teardown]ImageChainCgroup.

Additionally drop a pointless comment containing the old function name.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-01-30 17:20:38 +01:00
Peter Krempa
33b0a3bab8 qemu: domain: Allow overriding disk source in qemuDomainDetermineDiskChain
When we need to detect a chain for a image which will become the new
source for a disk (e.g. after a disk media change or a blockjob) we'd
need to replace disk->src temporarily to do so.

Move the 'disksrc' temporary variable to an argument and adjust callers.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-01-30 17:20:38 +01:00
Peter Krempa
73163a0e86 qemu: domain: Clarify temp variable scope in qemuDomainDetermineDiskChain
The function at first validates the top image of the chain, then
traverses the chain as declared in the XML (if any) and then procedes to
detect the rest of the chain from images. All of the steps have their
own temporary iterator.

Clarify the use scope of the steps by introducing a new temp variable
holding the top level source and adding comments.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-01-30 17:20:37 +01:00
John Ferlan
adb15b5add tests: Add storagepoolxml2argvtest source to EXTRA_DIST
Commit f2f84b4d4 added storagepoolxml2argvtest processing; however,
it didn't follow alter the else to !WITH_STORAGE and add the source
itself to the EXTRA_DIST like the other WITH_STORAGE options for
virstorageutiltest and storagevolxml2argvtest.

Signed-off-by: John Ferlan <jferlan@redhat.com>
ACKed-by: Michal Privoznik <mprivozn@redhat.com>
2019-01-30 10:35:28 -05:00
John Ferlan
406473990c tests: Fix build issue with storagevolxml2xmltest
Commit 7a227688a caused a build failure on mingw. Following
other uses of including ../src/libvirt_driver_storage_impl.la
I moved to under the WITH_STORAGE conditional.

Signed-off-by: John Ferlan <jferlan@redhat.com>
ACKed-by: Michal Privoznik <mprivozn@redhat.com>
2019-01-30 10:35:07 -05:00
John Ferlan
ab6ca81276 rbd: Utilize storage pool namespace to manage config options
Allow for adjustment of RBD configuration options via Storage
Pool XML Namespace adjustments. When namespace arguments are
used to start the pool, add a VIR_WARN to indicate that the
startup was tainted by custom config_opts.

Based off original patch/concept:

https://www.redhat.com/archives/libvir-list/2014-May/msg00940.html

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2019-01-29 19:16:25 -05:00
John Ferlan
ab995c1fe9 storage: Add storage pool namespace options to fs and netfs command lines
If the Storage Pool Namespace XML data exists, format the mount
options on the MOUNT command line and issue a VIR_WARN to indicate
that the storage pool was tainted by custom mount_opts.

When the pool is started, the options will be generated on the
command line along with the options already defined.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2019-01-29 19:16:19 -05:00
John Ferlan
7a227688a8 storage: Add infrastructure to manage XML namespace options
Introduce the virStoragePoolFSMountOptionsDef to be used to
manage the Storage Pool XML Namespace for mount options.

Using a new virStorageBackendNamespaceInit function, set the
virStoragePoolXMLNamespace into the _virStoragePoolOptions when
the storage backend is loaded.

Modify the storagepool.rng to allow for the usage of a different
XML namespace to parse the fs_mount_opts to be included with
the fs and netfs storage pool definitions.

Modify the storagepoolxml2xmltest to utilize a properly modified
XML file to parse and format the namespace for a netfs storage pool.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2019-01-29 19:16:13 -05:00
John Ferlan
fa7a66d079 conf: Introduce virStoragePoolXMLNamespace
Introduce the infrastructure necessary to manage a Storage Pool XML
Namespace. The general concept is similar to virDomainXMLNamespace,
except that for Storage Pools the storage backend specific details
can be stored within the _virStoragePoolOptions unlike the domain
processing code which manages its xmlopt's via the virDomainXMLOption
which is allocated/passed around for each domain.

This patch defines the add the parse, format, free, and href methods
required to process the XML and callout from the Storage Pool Def
parse, format, and free API's to perform the action on the XML data
for/from the backend.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2019-01-29 19:16:13 -05:00
John Ferlan
a3dbaa3647 virsh: Add source-protocol-ver for pool commands
Allow the addition of the <protocol ver='n'/> to the provided XML.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2019-01-29 19:16:13 -05:00
John Ferlan
3d3647e14f storage: Add the nfsvers to the command line
If protocolVer present, add the -o nfsvers=# to the command
line for the NFS Storage Pool

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2019-01-29 19:16:07 -05:00
John Ferlan
801f8cfb37 conf: Add optional NFS Source Pool <protocol ver='n'/> option
Add an optional way to define which NFS Server version will be
used to content the target NFS server.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2019-01-29 19:15:27 -05:00
John Ferlan
f06e94af07 docs: Add news mention of default fs/netfs storage pool mount options
Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2019-01-29 19:15:27 -05:00
John Ferlan
f00cde7f11 storage: Add default mount options for fs/netfs storage pools
https://bugzilla.redhat.com/show_bug.cgi?id=1584663

Modify the command generation to add some default options to the
fs/netfs storage pools based on the OS type. For Linux, it'll be
the "nodev, nosuid, noexec". For FreeBSD, it'll be "nosuid, noexec".
For others, just leave the options alone.

Modify the storagepoolxml2argvtest to handle the fact that the
same input XML could generate different output XML based on whether
Linux, FreeBSD, or other was being built.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2019-01-29 19:15:20 -05:00
John Ferlan
d0ba8d6553 conf: Alter virCapabilitiesFormatGuestXML to take virCapsGuestPtr
Rather than deref off of "caps->guests", let's pass "caps->guests" and
caps->nguests to have the helper use "guests[i]->" instead.

Signed-off-by: John Ferlan <jferlan@redhat.com>
ACKed-by: Michal Privoznik <mprivozn@redhat.com>
2019-01-29 13:24:46 -05:00
John Ferlan
181acfe9a8 conf: Extract guest XML formatting from virCapabilitiesFormatXML
Let's extract out the <guest> code into it's own method/helper.

NB: One minor change between the two is usage of "buf" instead
of "&buf" in the new code since we pass the address of &buf to
the helper.

Signed-off-by: John Ferlan <jferlan@redhat.com>
ACKed-by: Michal Privoznik <mprivozn@redhat.com>
2019-01-29 13:24:41 -05:00
John Ferlan
0d832b873c conf: Alter virCapabilitiesFormatHostXML to take virCapsHostPtr
Rather than deref off of "caps->host.", let's pass "&caps->host"
and make the helper use "host->" instead.

Signed-off-by: John Ferlan <jferlan@redhat.com>
ACKed-by: Michal Privoznik <mprivozn@redhat.com>
2019-01-29 13:24:36 -05:00
John Ferlan
da87aa5963 conf: Extract host XML formatting from virCapabilitiesFormatXML
Let's extract out the <host> code into it's own method/helper.

NB: One minor change between the two is usage of "buf" instead
of "&buf" in the new code since we pass the address of &buf to
the helper.

Signed-off-by: John Ferlan <jferlan@redhat.com>
ACKed-by: Michal Privoznik <mprivozn@redhat.com>
2019-01-29 13:24:14 -05:00
Daniel P. Berrangé
9047b9aec0 Revert "qemu: Forbid pinning vCPUs for TCG domain"
This reverts commit 8b035c84d8.

The MTTCG impl in QEMU does allow pinning vCPUs.

When the guest is running we already check if pinning is
possible in the qemuDomainPinVcpuLive method, so this
check was adding no benefit.

When the guest is not running, we cannot know whether the
subsequent launch will use MTTCG or TCG, so we must allow
the pinning request. If the guest does use TCG on the next
launch it will fail, but this is no worse than if the user
had done a virDomainDefineXML with an XML doc specifying
vCPU pinning.

Reviewed-by: John Ferlan <jferlan@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2019-01-29 17:19:10 +00:00
Daniel P. Berrangé
34f77437da qemu: fix recording of vCPU pids for MTTCG
MTTCG is the new multi-threaded impl of TCG which follows
KVM in having one host OS thread per vCPU. Historically
we have discarded all PIDs reported for TCG guests, but
we must now selectively honour this data.

We don't have anything in the domain XML that indicates
whether a guest is using TCG or MTTCG. While QEMU does
have an option (-accel tcg,thread=single|multi), it is
not desirable to expose this in libvirt. QEMU will
automatically use MTTCG when the host/guest architecture
pairing is known to be safe. Only developers of QEMU TCG
have a strong reason to override this logic.

Thus we use two sanity checks to decide if the vCPU
PID information is usable. First we see if the PID
duplicates the main emulator PID, and second we see
if the PID duplicates any other vCPUs.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2019-01-29 16:31:04 +00:00
Peter Krempa
38757744c2 lib: domain: Emphasise that users should wait for block job READY state via events
The transition to the ready state is best observed by events as it's
ansynchronous and does not hint users to do polling. As currently only
the qemu driver supports block copy and block commit and the ready state
event was introduced by qemu 1.3 we can fully switch to the new
approach.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-01-29 17:11:02 +01:00
Peter Krempa
b7bd97fbe7 lib: Clarify that any block job may block VM save or device detach
The documentation was only referring to a copy job, but in fact any
running blockjob will have the same results.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-01-29 17:11:02 +01:00
Peter Krempa
5ea24bbb54 qemu: Don't reject making domain persistent if block copy is running
Add documentation that the 'VIR_DOMAIN_BLOCK_COPY_TRANSIENT_JOB' flag
is auto-assumed if the block copy job is started while the VM is
transient and remove the restriction to define the domain when copy
is running.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-01-29 17:11:02 +01:00
Daniel P. Berrangé
7431b3eb9a util: move virtual network firwall rules into private chains
The previous commit created new chains to hold the firewall rules. This
commit changes the code that creates rules to place them in the new
private chains instead of the builtin top level chains.

With two networks running, the rules in the filter table now look like

  -N LIBVIRT_FWI
  -N LIBVIRT_FWO
  -N LIBVIRT_FWX
  -N LIBVIRT_INP
  -N LIBVIRT_OUT
  -A INPUT -j LIBVIRT_INP
  -A FORWARD -j LIBVIRT_FWX
  -A FORWARD -j LIBVIRT_FWI
  -A FORWARD -j LIBVIRT_FWO
  -A OUTPUT -j LIBVIRT_OUT
  -A LIBVIRT_FWI -d 192.168.0.0/24 -o virbr0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
  -A LIBVIRT_FWI -o virbr0 -j REJECT --reject-with icmp-port-unreachable
  -A LIBVIRT_FWI -d 192.168.1.0/24 -o virbr1 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
  -A LIBVIRT_FWI -o virbr1 -j REJECT --reject-with icmp-port-unreachable
  -A LIBVIRT_FWO -s 192.168.0.0/24 -i virbr0 -j ACCEPT
  -A LIBVIRT_FWO -i virbr0 -j REJECT --reject-with icmp-port-unreachable
  -A LIBVIRT_FWO -s 192.168.1.0/24 -i virbr1 -j ACCEPT
  -A LIBVIRT_FWO -i virbr1 -j REJECT --reject-with icmp-port-unreachable
  -A LIBVIRT_FWX -i virbr0 -o virbr0 -j ACCEPT
  -A LIBVIRT_FWX -i virbr1 -o virbr1 -j ACCEPT
  -A LIBVIRT_INP -i virbr0 -p udp -m udp --dport 53 -j ACCEPT
  -A LIBVIRT_INP -i virbr0 -p tcp -m tcp --dport 53 -j ACCEPT
  -A LIBVIRT_INP -i virbr0 -p udp -m udp --dport 67 -j ACCEPT
  -A LIBVIRT_INP -i virbr0 -p tcp -m tcp --dport 67 -j ACCEPT
  -A LIBVIRT_INP -i virbr1 -p udp -m udp --dport 53 -j ACCEPT
  -A LIBVIRT_INP -i virbr1 -p tcp -m tcp --dport 53 -j ACCEPT
  -A LIBVIRT_INP -i virbr1 -p udp -m udp --dport 67 -j ACCEPT
  -A LIBVIRT_INP -i virbr1 -p tcp -m tcp --dport 67 -j ACCEPT
  -A LIBVIRT_OUT -o virbr0 -p udp -m udp --dport 68 -j ACCEPT
  -A LIBVIRT_OUT -o virbr1 -p udp -m udp --dport 68 -j ACCEPT

While in the nat table:

  -N LIBVIRT_PRT
  -A POSTROUTING -j LIBVIRT_PRT
  -A LIBVIRT_PRT -s 192.168.0.0/24 -d 224.0.0.0/24 -j RETURN
  -A LIBVIRT_PRT -s 192.168.0.0/24 -d 255.255.255.255/32 -j RETURN
  -A LIBVIRT_PRT -s 192.168.0.0/24 ! -d 192.168.0.0/24 -p tcp -j MASQUERADE --to-ports 1024-65535
  -A LIBVIRT_PRT -s 192.168.0.0/24 ! -d 192.168.0.0/24 -p udp -j MASQUERADE --to-ports 1024-65535
  -A LIBVIRT_PRT -s 192.168.0.0/24 ! -d 192.168.0.0/24 -j MASQUERADE
  -A LIBVIRT_PRT -s 192.168.1.0/24 -d 224.0.0.0/24 -j RETURN
  -A LIBVIRT_PRT -s 192.168.1.0/24 -d 255.255.255.255/32 -j RETURN
  -A LIBVIRT_PRT -s 192.168.1.0/24 ! -d 192.168.1.0/24 -p tcp -j MASQUERADE --to-ports 1024-65535
  -A LIBVIRT_PRT -s 192.168.1.0/24 ! -d 192.168.1.0/24 -p udp -j MASQUERADE --to-ports 1024-65535
  -A LIBVIRT_PRT -s 192.168.1.0/24 ! -d 192.168.1.0/24 -j MASQUERADE

And finally the mangle table:

  -N LIBVIRT_PRT
  -A POSTROUTING -j LIBVIRT_PRT
  -A LIBVIRT_PRT -o virbr0 -p udp -m udp --dport 68 -j CHECKSUM --checksum-fill
  -A LIBVIRT_PRT -o virbr1 -p udp -m udp --dport 68 -j CHECKSUM --checksum-fill

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2019-01-29 13:37:11 +00:00
Daniel P. Berrangé
5f1e6a7d48 util: create private chains for virtual network firewall rules
Historically firewall rules for virtual networks were added straight
into the base chains. This works but has a number of bugs and design
limitations:

  - It is inflexible for admins wanting to add extra rules ahead
    of libvirt's rules, via hook scripts.

  - It is not clear to the admin that the rules were created by
    libvirt

  - Each rule must be deleted by libvirt individually since they
    are all directly in the builtin chains

  - The ordering of rules in the forward chain is incorrect
    when multiple networks are created, allowing traffic to
    mistakenly flow between networks in one direction.

To address all of these problems, libvirt needs to move to creating
rules in its own private chains. In the top level builtin chains,
libvirt will add links to its own private top level chains.

Addressing the traffic ordering bug requires some extra steps. With
everything going into the FORWARD chain there was interleaving of rules
for outbound traffic and inbound traffic for each network:

  -A FORWARD -d 192.168.3.0/24 -o virbr1 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
  -A FORWARD -s 192.168.3.0/24 -i virbr1 -j ACCEPT
  -A FORWARD -i virbr1 -o virbr1 -j ACCEPT
  -A FORWARD -o virbr1 -j REJECT --reject-with icmp-port-unreachable
  -A FORWARD -i virbr1 -j REJECT --reject-with icmp-port-unreachable
  -A FORWARD -d 192.168.2.0/24 -o virbr0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
  -A FORWARD -s 192.168.2.0/24 -i virbr0 -j ACCEPT
  -A FORWARD -i virbr0 -o virbr0 -j ACCEPT
  -A FORWARD -o virbr0 -j REJECT --reject-with icmp-port-unreachable
  -A FORWARD -i virbr0 -j REJECT --reject-with icmp-port-unreachable

The rule allowing outbound traffic from virbr1 would mistakenly
allow packets from virbr1 to virbr0, before the rule denying input
to virbr0 gets a chance to run.

What we really need todo is group the forwarding rules into three
distinct sets:

 * Cross rules - LIBVIRT_FWX

  -A FORWARD -i virbr1 -o virbr1 -j ACCEPT
  -A FORWARD -i virbr0 -o virbr0 -j ACCEPT

 * Incoming rules - LIBVIRT_FWI

  -A FORWARD -d 192.168.3.0/24 -o virbr1 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
  -A FORWARD -o virbr1 -j REJECT --reject-with icmp-port-unreachable
  -A FORWARD -d 192.168.2.0/24 -o virbr0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
  -A FORWARD -o virbr0 -j REJECT --reject-with icmp-port-unreachable

 * Outgoing rules - LIBVIRT_FWO

  -A FORWARD -s 192.168.3.0/24 -i virbr1 -j ACCEPT
  -A FORWARD -i virbr1 -j REJECT --reject-with icmp-port-unreachable
  -A FORWARD -s 192.168.2.0/24 -i virbr0 -j ACCEPT
  -A FORWARD -i virbr0 -j REJECT --reject-with icmp-port-unreachable

There is thus no risk of outgoing rules for one network mistakenly
allowing incoming traffic for another network, as all incoming rules
are evalated first.

With this in mind, we'll thus need three distinct chains linked from
the FORWARD chain, so we end up with:

        INPUT --> LIBVIRT_INP   (filter)

       OUTPUT --> LIBVIRT_OUT   (filter)

      FORWARD +-> LIBVIRT_FWX   (filter)
              +-> LIBVIRT_FWO
              \-> LIBVIRT_FWI

  POSTROUTING --> LIBVIRT_PRT   (nat & mangle)

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2019-01-29 13:35:58 +00:00
Daniel P. Berrangé
b092a4357d util: pass layer into firewall query callback
Some of the query callbacks want to know the firewall layer that was
being used for triggering the query to avoid duplicating that data.

Reviewed-by: Laine Stump <laine@laine.org>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2019-01-29 13:35:58 +00:00
Daniel P. Berrangé
0fc746aa54 network: add platform driver callbacks around firewall reload
Allow the platform driver impls to run logic before and after the
firewall reload process.

Reviewed-by: Laine Stump <laine@laine.org>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2019-01-29 13:35:58 +00:00
Peter Krempa
f04bdf5368 qemu: Don't double-free disk->mirror if block commit initialization fails
disk->mirror would not be cleared while the local pointer was freed in
qemuDomainBlockCommit if qemuDomainObjExitMonitor or qemuBlockJobDiskNew
would return a failure.

Since block job handling is executed in the separate handler which needs
a qemu job, we don't need to pre-set the mirror state prior to starting
the job. Similarly the block copy job does not do that.

Move the setting of the data after starting the job so that we avoid
this problem.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-01-29 13:41:16 +01:00
Peter Krempa
06fa3366c6 qemu: Clear block copy mirror state explicitly
While this should not be necessary as we clear it in the event handler,
let's be sure and clear it prior to starting the job.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-01-29 13:41:16 +01:00
Peter Krempa
c6db273082 qemu: blockjob: Mark job as started only when it's new
Switching a block job to some states (e.g. QEMU_BLOCKJOB_STATE_READY)
might not require a job, thus if it will become ready asynchronously we
should not overwrite the state any more.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-01-29 13:41:16 +01:00
Peter Krempa
8d5df64449 qemu: blockjob: Make sure that internal states are not reported as event
While the callers should make sure that they don't call
qemuBlockJobEmitEvents for any internal state or job, let's add checks
that prevents us from emitting wrong events altogether.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-01-29 13:41:16 +01:00
Peter Krempa
3355edd6f0 lib: Fix docs generated for enum virDomainBlockJobType
Mixing documentation strings trailing the enum value and preceeding the
enum value ends in a big mixup. Fix docs string for
VIR_DOMAIN_BLOCK_JOB_TYPE_UNKNOWN so that it's not squished together
with the next one.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-01-29 13:41:16 +01:00
Michal Privoznik
6dd2a2ae63 virfile: Detect ceph as shared FS
https://bugzilla.redhat.com/show_bug.cgi?id=1665553

Ceph can be mounted just like any other filesystem and in fact is
a shared and cluster filesystem. The filesystem magic constant
was taken from kernel sources as it is not in magic.h yet.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
2019-01-28 14:56:21 +01:00
Michal Privoznik
5772885d28 lib: Use more of VIR_STEAL_PTR()
We have this very handy macro called VIR_STEAL_PTR() which steals
one pointer into the other and sets the other to NULL. The
following coccinelle patch was used to create this commit:

  @ rule1 @
  identifier a, b;
  @@

  - b = a;
    ...
  - a = NULL;
  + VIR_STEAL_PTR(b, a);

Some places were clean up afterwards to make syntax-check happy
(e.g. some curly braces were removed where the body become a one
liner).

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
2019-01-28 14:46:58 +01:00
Roman Bogorodskiy
7c700108d6 news: document bhyve custom commandline support
Signed-off-by: Roman Bogorodskiy <bogorodskiy@gmail.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-01-27 15:07:18 +04:00
Roman Bogorodskiy
0ffe70a929 docs: bhyve: document commandline element
Document the <bhyve:commandline> element which allows
to inject custom command line arguments for bhyve.

Signed-off-by: Roman Bogorodskiy <bogorodskiy@gmail.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-01-27 15:07:11 +04:00
Roman Bogorodskiy
0c8df11071 bhyve: implement support for commandline args
Implement support for passing custom command line arguments
to bhyve using the 'bhyve:commandline' element:

  <bhyve:commandline>
    <bhyve:arg value='-newarg'/>
  </bhyve:commandline>

 * Define virDomainXMLNamespace for the bhyve driver, which
   at this point supports only the 'commandline' element
   described above,
 * Update command generation code to inject these command line
   arguments between driver-generated arguments and the vmname
   positional argument.

Signed-off-by: Roman Bogorodskiy <bogorodskiy@gmail.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-01-27 14:54:52 +04:00
Laine Stump
001495909b docs: add forgotten mentions of forward mode "open"
A couple places in the docs didn't get updated when the forward mode
"open" was added.

Signed-off-by: Laine Stump <laine@laine.org>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2019-01-25 11:04:29 -05:00
Laine Stump
43be65a481 network: remove stale function
networkMigrateStateFiles was added nearly 5 years ago when the network
state directory was moved from /var/lib/libvirt to /var/run/libvirt
just prior to libvirt-1.2.4). It was only required to maintain proper
state information for networks that were active during an upgrade that
didn't involve rebooting the host. At this point the likelyhood of
anyone upgrading their libvirt from pre-1.2.4 directly to 5.0.0 or
later *without rebooting the host* is probably so close to 0 that no
properly informed bookie would take *any* odds on it happening, so it
seems appropriate to remove this pointless code.

Signed-off-by: Laine Stump <laine@laine.org>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2019-01-25 11:01:05 -05:00
Eric Blake
484370dcf1 virjson: add convenience wrapper for appending string to array
Upcoming patches need an array of strings for use in QMP
block-dirty-bitmap-merge.  A convenience wrapper cuts down
on the verbosity of creating the array, similar to the
existing virJSONValueObjectAppendString().

Signed-off-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-01-25 09:21:24 -06:00
Eric Blake
4ea5a41e16 virjson: always raise vir error on append failures
A function that returns -1 for multiple possible failures, but only
raises a libvirt error for some of those failures, can be hard to
use correctly. Yet both of our JSON object/array appenders fall in
that pattern.  True, the silent errors represent coding bugs that
none of the callers should ever trigger, while the noisy errors
represent memory failures that can happen anywhere, so we happened
to never end up failing without an error. But it is better to
either use the _QUIET memory allocation variants, and make callers
decide to report failure; or make all failure paths noisy. This
patch takes the latter approach.

Signed-off-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-01-25 09:21:24 -06:00
Michal Privoznik
2707d4f8bc tools: Document completer callback
Strictly speaking, this should go near vshCompleter typedef
declaration. However, I find it more useful near actual completer
implementations.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-01-25 15:44:36 +01:00
Ján Tomko
49ec5769c9 qemuBuildControllersCommandLine: use i instead of j as the counter
Now that the nested loop is gone.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Cole Robinson <crobinso@redhat.com>
2019-01-25 14:58:43 +01:00
Ján Tomko
a6d3357c8b rename qemuBuildControllerDevCommandLine
Use qemuBuildControllersCommandLine since it builds the command line
for (nearly) all controllers, not just one.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Cole Robinson <crobinso@redhat.com>
2019-01-25 14:58:43 +01:00
Ján Tomko
fc1c16bccd qemuBuildControllersByTypeCommandLine: free devstr in the cleanup
section

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Cole Robinson <crobinso@redhat.com>
2019-01-25 14:58:43 +01:00
Ján Tomko
c7e03df8c0 qemu: format CCID controllers after USB hubs
Since they go on the USB bus, format them after USB hubs.

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

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Cole Robinson <crobinso@redhat.com>
2019-01-25 14:58:35 +01:00
Ján Tomko
421e0eeec7 qemu: Introduce qemuBuildControllersByTypeCommandLine
Now that the inner loop does not require any other variables,
it can be easily separated. Apart from reducing the indentation
level this will allow it to be called from different code paths.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Cole Robinson <crobinso@redhat.com>
2019-01-25 14:54:51 +01:00
Ján Tomko
75ecfd2521 qemuBuildControllerDevStr: remove nusbcontroller argument
Now that it's no longer needed, remove the argument.
This removes the last helper variable in
qemuBuildControllerDevCommandLine.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Cole Robinson <crobinso@redhat.com>
2019-01-25 14:54:51 +01:00
Ján Tomko
8f5e50e003 qemu: separate counting of USB controllers
qemuBuildLegacyUSBControllerCommandLine is the only place where
we need to count the USB controllers.

Count them again instead of keeping track in a variable passed to
qemuBuildControllerDevStr.

This removes the need for another variable in the loop in
qemuBuildControllerDevCommandLine.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Cole Robinson <crobinso@redhat.com>
2019-01-25 14:54:51 +01:00
Ján Tomko
dab3d5d350 qemu: separate counting of legacy USB controllers
Count them in qemuBuildLegacyUSBControllerCommandLine to remove
yet another variable accessed from the loop in
qemuBuildControllerDevCommandLine.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Cole Robinson <crobinso@redhat.com>
2019-01-25 14:54:51 +01:00
Ján Tomko
95049d7054 Add qemuBuildDomainForbidLegacyUSBController
Shorten some long conditions.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Cole Robinson <crobinso@redhat.com>
2019-01-25 14:54:50 +01:00
Ján Tomko
79c7cbaf46 qemu: exit early if USB_CONTROLLER_MODEL_NONE is present
This removes the need to mark it in the 'usbcontroller' variable.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Cole Robinson <crobinso@redhat.com>
2019-01-25 14:54:50 +01:00
Ján Tomko
a98c0a2fef qemu: move out legacy USB controller formatting
Move out the code formatting "-usb" on the QEMU command line.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Cole Robinson <crobinso@redhat.com>
2019-01-25 14:54:50 +01:00
Ján Tomko
c2a8256991 virPortAllocatorSetUsed: ignore port 0
Similar to what commit 86dba8f3 did for virPortAllocatorRelease,
ignore port 0 in virPortAllocatorSetUsed.

For all the reasonable use cases the callers already check that
the port is non-zero, however if the port from the XML overflows
unsigned short and turns into 0, it can be set as used by
virPortAllocatorSetUsed but not released by virPortAllocatorRelease.

Also skip port '0' in virPortAllocatorSetUsed to make this behavior
symmetric.

The serenity was disturbed by commit 5dbda5e9 which started using
virPortAllocatorRelease instead of virPortAllocatorSetUsed (false).

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

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Cole Robinson <crobinso@redhat.com>
2019-01-25 14:50:05 +01:00
Thomas Huth
872b15dea6 docs/governance: Clarify the version number of the LGPL
There is no "GNU Lesser General Public License, version 2",
only version 2.1 and later. In "version 2", the license was
still called "Library" instead of "Lesser". So assume that
version 2.1 is meant here.

Signed-off-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
2019-01-25 14:04:20 +01:00
Thomas Huth
803a73980a tools/virt-xml-validate: Fix GPL information
The tools/virt-xml-validate.in file is licensed under the terms of
the GPL, but then says "You should have received a copy of the
GNU *Lesser* General Public License". Thus scratch the "Lesser" here.

Signed-off-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
2019-01-25 14:04:19 +01:00
Thomas Huth
70d9c1a768 bootstrap.conf: Fix LGPL information
The bootstrap.conf is licensed under the terms of the LGPL, but then
suggests to "See the GNU General Public License for more details".
That should be the "GNU Lesser General Public License" instead, of
course.

Signed-off-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
2019-01-25 14:04:19 +01:00
Cole Robinson
429f5454d5 qemu: command: Make BuildVirtioDevStr more generic
Switch qemuBuildVirtioDevStr to use virDomainDeviceSetData: callers
pass in the virDomainDeviceType and the void * DefPtr. This will
save us from having to repeatedly extend the function argument
list in subsequent patches.

Reviewed-by: Andrea Bolognani <abologna@redhat.com>
Signed-off-by: Cole Robinson <crobinso@redhat.com>
2019-01-24 18:59:38 -05:00
Cole Robinson
4a4c418110 conf: Add virDomainDeviceSetData
This is essentially a wrapper for easily setting the variable
name in virDomainDeviceDef that matches its associated
VIR_DOMAIN_DEVICE_TYPE.

Reviewed-by: Andrea Bolognani <abologna@redhat.com>
Signed-off-by: Cole Robinson <crobinso@redhat.com>
2019-01-24 18:59:38 -05:00
Cole Robinson
028f9a6886 qemu: command: Convert vhost-{vsock,scsi} to qemuBuildVirtioDevStr
Current code essentially duplicates the same logic, but misses
some cases (like vhost-vsock-device).

Reviewed-by: Andrea Bolognani <abologna@redhat.com>
Signed-off-by: Cole Robinson <crobinso@redhat.com>
2019-01-24 18:59:38 -05:00
Cole Robinson
5ac9889a69 qemu: command: Make vhost-scsi device string depend on address
The vhost-scsi device string should depend on the requested
address type, not strictly on the emulated arch. This is the
same logic used by qemuBuildVirtioDevStr, and this particular
path is already tested in the hostdev-scsi-vhost-scsi-ccw tests

Reviewed-by: Andrea Bolognani <abologna@redhat.com>
Signed-off-by: Cole Robinson <crobinso@redhat.com>
2019-01-24 18:59:38 -05:00
Cole Robinson
0ba9786d8a qemu: Move <rng> validation out of qemu_command.c
Move the rng->model == VIRTIO check to parse time. This also
allows us to remove similar checks throughout the qemu driver

Reviewed-by: Andrea Bolognani <abologna@redhat.com>
Signed-off-by: Cole Robinson <crobinso@redhat.com>
2019-01-24 18:59:38 -05:00
Cole Robinson
6427bfc8b3 qemu: Move <memballoon> validation out of qemu_command.c
If we validate that memballoon is NONE|VIRTIO at parse time,
we can drop similar checks elsewhere in the qemu driver

Reviewed-by: Andrea Bolognani <abologna@redhat.com>
Signed-off-by: Cole Robinson <crobinso@redhat.com>
2019-01-24 18:59:38 -05:00
Cole Robinson
ea72bc65df conf: Add virDomainNetIsVirtioModel
This will be extended in the future, so let's simplify things by
centralizing the checks.

Reviewed-by: Andrea Bolognani <abologna@redhat.com>
Signed-off-by: Cole Robinson <crobinso@redhat.com>
2019-01-24 18:59:38 -05:00
Cole Robinson
cf09ef6cda conf: Set net->model earlier
So later code can more easily access def->model

Reviewed-by: Andrea Bolognani <abologna@redhat.com>
Signed-off-by: Cole Robinson <crobinso@redhat.com>
2019-01-24 18:59:38 -05:00
John Ferlan
6bf28f3860 docs: Add more iscsi-direct references to storage pages
Found that it was missing in formatstorage and had a few typos
in the storage driver page.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Cole Robinson <crobinso@redhat.com>
2019-01-24 18:07:33 -05:00
Cheng Lin
d2edbec2bf conf: Add check to avoid a NULL compare for SysfsPath
If the two sysfs_path are both NULL, there may be an incorrect
object returned for virNodeDeviceObjListFindBySysfsPath().

This check exists in old interface virNodeDeviceFindBySysfsPath().
e.g.
virNodeDeviceFindBySysfsPath(virNodeDeviceObjListPtr devs,
                             const char *sysfs_path)
{
    ...
        if ((devs->objs[i]->def->sysfs_path != NULL) &&
            (STREQ(devs->objs[i]->def->sysfs_path, sysfs_path))) {
    ...
}

Reviewed-by: Cole Robinson <crobinso@redhat.com>
Signed-off-by: Cheng Lin <cheng.lin130@zte.com.cn>
2019-01-24 17:31:32 -05:00
Michal Privoznik
ca768886d8 domain_conf: Free egl render node in virDomainGraphicsDefFree
13 bytes in 1 blocks are definitely lost in loss record 44 of 179
    at 0x4C2EE6F: malloc (vg_replace_malloc.c:299)
    by 0x9514A69: strdup (in /lib64/libc-2.27.so)
    by 0x5E60C0B: virStrdup (virstring.c:956)
    by 0x54C856F: virHostGetDRMRenderNode (qemuxml2argvmock.c:190)
    by 0x57CB4E3: qemuProcessGraphicsSetupRenderNode (qemu_process.c:4860)
    by 0x57CB571: qemuProcessSetupGraphics (qemu_process.c:4881)
    by 0x57CE01B: qemuProcessPrepareDomain (qemu_process.c:6040)
    by 0x57D102E: qemuProcessCreatePretendCmd (qemu_process.c:6975)
    by 0x114C1C: testCompareXMLToArgv (qemuxml2argvtest.c:611)
    by 0x134B90: virTestRun (testutils.c:174)
    by 0x123478: mymain (qemuxml2argvtest.c:1697)
    by 0x136BFA: virTestMain (testutils.c:1112)

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
2019-01-24 10:11:52 +01:00
Michal Privoznik
f2476cac74 virpci: Fix memleak in virPCIDeviceIterDevices
This partially reverts 00dc991ca1.

 2,030 (1,456 direct, 574 indirect) bytes in 14 blocks are definitely lost in loss record 77 of 80
    at 0x4C30E96: calloc (vg_replace_malloc.c:711)
    by 0x50F83AA: virAlloc (viralloc.c:143)
    by 0x5178DFA: virPCIDeviceNew (virpci.c:1753)
    by 0x51753E9: virPCIDeviceIterDevices (virpci.c:468)
    by 0x5175EB5: virPCIDeviceGetParent (virpci.c:759)
    by 0x517AB55: virPCIDeviceIsBehindSwitchLackingACS (virpci.c:2476)
    by 0x517AC24: virPCIDeviceIsAssignable (virpci.c:2494)
    by 0x10BF27: testVirPCIDeviceIsAssignable (virpcitest.c:229)
    by 0x10D14C: virTestRun (testutils.c:174)
    by 0x10C535: mymain (virpcitest.c:422)
    by 0x10F1B6: virTestMain (testutils.c:1112)
    by 0x10CF93: main (virpcitest.c:455)

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
2019-01-24 10:11:27 +01:00
Michal Privoznik
6a8c174902 virPCIGetNetName: Initialize @netname to NULL
This is a return argument that is to be compared against NULL on
successful return. However, it is not initialized and therefore
relies on callers setting it to NULL prior calling the function.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
2019-01-24 10:02:31 +01:00
Eric Blake
7b6116fb89 qemu: improve compile-time check of qemuBlockjobState mapping
Asserting the value we set four lines earlier in qemuBlockjobState
doesn't buy us any safety (if the public header adds a value, we end
up skipping that value without the compiler warning us of our gap);
what we really want is to assert that the value auto-assigned by the
compiler matches the actual last value in the public headers (as was
done below for qemuBlockJobType).  Add useful comments while at it.

Signed-off-by: Eric Blake <eblake@redhat.com>
ACKed-by: Peter Krempa <pkrempa@redhat.com>
2019-01-23 16:20:25 -06:00
Jim Fehlig
a3ab6d42d8 apparmor: convert libvirtd profile to a named profile
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
2019-01-23 11:10:15 -07:00
Jim Fehlig
70c2933da2 apparmor: Add support for named profiles
Upstream apparmor is switching to named profiles. In short,

/usr/sbin/dnsmasq {

becomes

profile dnsmasq /usr/sbin/dnsmasq {

Consequently, any profiles that reference profiles in a peer= condition
need to be updated if the referenced profile switches to a named profile.
Apparmor commit 9ab45d81 switched dnsmasq to a named profile. ATM it is
the only named profile switch that has affected libvirt. Add rules to the
libvirtd profile to reference dnsmasq in peer= conditions by profile name.

Signed-off-by: Jim Fehlig <jfehlig@suse.com>
2019-01-23 11:10:15 -07:00
Jim Fehlig
11c8aca938 libxl: Set current memory value after successful balloon
The libxl driver does not set the new memory value in the active domain def
after a successful balloon. This results in the old memory value in
<currentMemory>. E.g.

virsh dumpxml test | grep currentMemory
  <currentMemory unit='KiB'>20971520</currentMemory>
virsh setmem test 16777216 --live
virsh dumpxml test | grep currentMemory
  <currentMemory unit='KiB'>20971520</currentMemory>

Set the new memory value in active domain def after a successful call to
libxl_set_memory_target().

Signed-off-by: Jim Fehlig <jfehlig@suse.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-01-23 10:50:05 -07:00
Peter Krempa
ab5d49d46c qemu: process: Handle all failure values for dimms in qemuProcessHandleAcpiOstInfo
Hanlde all the possible failure codes as per ACPI standard documented in
the function header.

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

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-01-23 10:30:09 +01:00
Peter Krempa
f2f14e3f45 qemu: process: Improve documentation of values handled by qemuProcessHandleAcpiOstInfo
We forgot to document the specific fields for the 0x103 and 0x200
sources which are tied to device removal and device hotplug
respectively.

The value description is based on the ACPI 6.2A standard Table 6-207 and
Table 6-208. At the time of writing of this patch the standard can be
accessed e.g. at:

https://www.uefi.org/sites/default/files/resources/ACPI%206_2_A_Sept29.pdf

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-01-23 10:30:09 +01:00
Radoslaw Biernacki
04983c3c6a util: Fixing invalid error checking from virPCIGetNetname()
The @linkdev is In/Out function parameter as second order
reference pointer so requires first order dereference for
checking NULL which can be the result of virPCIGetNetName().

Fixes: d6ee56d723 (util: change virPCIGetNetName() to not return error if device has no net name)
Signed-off-by: Radoslaw Biernacki <radoslaw.biernacki@linaro.org>
Signed-off-by: dann frazier <dann.frazier@canonical.com>
2019-01-23 10:21:35 +01:00
Radoslaw Biernacki
8fac64db5e util: Fix for NULL dereference
The device xml parser code does not set "model" while parsing the
following XML:

  <interface type='hostdev'>
    <source>
      <address type='pci' domain='0x0002' bus='0x01' slot='0x00' function='0x2'/>
    </source>
  </interface>

The net->model can be NULL and therefore must be compared using
STREQ_NULLABLE instead of plain STREQ.

Fixes: ac47e4a622 (qemu: replace "def->nets[i]" with "net" and "def->sounds[i]" with "sound")
Fixes: c7fc151eec (qemu: assign virtio devices to PCIe slot when appropriate)
Signed-off-by: Radoslaw Biernacki <radoslaw.biernacki@linaro.org>
Signed-off-by: dann frazier <dann.frazier@canonical.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2019-01-23 10:18:36 +01:00
Radoslaw Biernacki
10bca495e0 util: Code simplification
Removing redundant sections of the code

Signed-off-by: Radoslaw Biernacki <radoslaw.biernacki@linaro.org>
Signed-off-by: dann frazier <dann.frazier@canonical.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
2019-01-23 10:17:20 +01:00
Radoslaw Biernacki
6452e2f5e1 util: fixing wrong assumption that PF has to have netdev assigned
libvirt wrongly assumes that VF netdev has to have the
netdev assigned to PF. There is no such requirement in SRIOV standard.
This patch change the virNetDevSwitchdevFeature() function to deal
with SRIOV devices which does not have netdev on PF. Also corrects
one comment about PF netdev assumption.

One example of such devices is ThunderX VNIC.
By applying this change, VF device is used for virNetlinkCommand() as
it is the only netdev assigned to VNIC.

Signed-off-by: Radoslaw Biernacki <radoslaw.biernacki@linaro.org>
Signed-off-by: dann frazier <dann.frazier@canonical.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
2019-01-23 10:06:58 +01:00
Christian Ehrhardt
fb01e1a44d virt-aa-helper: generate rules for gl enabled graphics devices
This adds the virt-aa-helper support for gl enabled graphics devices to
generate rules for the needed rendernode paths.

Example in domain xml:
<graphics type='spice'>
  <gl enable='yes' rendernode='/dev/dri/bar'/>
</graphics>

results in:
  "/dev/dri/bar" rw,

Special cases are:
- multiple devices with rendernodes -> all are added
- non explicit rendernodes -> follow recently added virHostGetDRMRenderNode
- rendernode without opengl (in egl-headless for example) -> still add
  the node

Fixes: https://bugs.launchpad.net/ubuntu/+source/libvirt/+bug/1757085

Reviewed-by: Erik Skultety <eskultet@redhat.com>
Acked-by: Jamie Strandboge <jamie@canonical.com>
Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
2019-01-23 07:54:58 +01:00
Ján Tomko
4fb769f5e0 qemu: error out when vnc vncTLSx509secretUUID is unsupported
Add a capability check to qemuDomainDefValidate and refuse to start
a domain with VNC graphics if the TLS secret was set in qemu.conf
and it's not supported.

Note that qemuDomainSecretGraphicsPrepare does not generate any
secret data if the capability is not present and qemuBuildTLSx509BackendProps
is not called at all.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-01-22 12:18:28 +01:00
Ján Tomko
2e2b0d69a9 qemu: add support for encrypted VNC TLS keys
Use the password stored in the secret driver under
the uuid specified by the vnc_tls_x509_secret_uuid
option in qemu.conf.

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

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-01-22 12:18:28 +01:00
Ján Tomko
2c5dd1ee4c qemu.conf: add vnc_tls_x509_secret_uuid
Add an option that lets the user specify the secret
that unlocks the server TLS key.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-01-22 12:18:28 +01:00
Ján Tomko
0b3fc37e61 qemu_process: fix debug message
Be generic instead of trying to enumerate all the involved
device types.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-01-22 12:18:28 +01:00
Ján Tomko
2c7791a869 qemu: prepare secret for the graphics upfront
Instead of hardcoding the TLS creds alias in
qemuBuildGraphicsVNCCommandLine, store it
in the domain private data.

Given that we only support one VNC graphics
and thus have only one alias per-domain,
this is overengineered, but it will allow us
to prepare the secret upfront when we start
supporting encrypted server TLS keys.

Note that the alias is not formatted anywhere
since we won't need to access it after domain
startup.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-01-22 12:18:28 +01:00
Ján Tomko
ea3c3f8846 qemu: add qemuDomainGraphicsPrivate data with a tlsAlias
Also introduce the necessary callbacks.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-01-22 12:18:28 +01:00
Ján Tomko
b7a02c35af conf: add privateData to virDomainGraphicsDef
Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-01-22 12:18:28 +01:00
Ján Tomko
c2b7a5f23d conf: introduce virDomainGraphicsNew
A helper function for allocating the virDomainGraphicsDef structure.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-01-22 12:18:28 +01:00
Daniel P. Berrangé
388998ac76 rpm spec: remove %{extra_release} from spec
The %{extra_release} field was previously populated by data from the old
autobuild.sh file but is no longer used.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2019-01-22 11:16:08 +00:00
Cole Robinson
fb0d0d6c54 tests: Add capabilities data for QEMU 4.0.0 x86_64
The next release of QEMU is going to be 4.0.0. A bit early, but
this adds capabilities data for x86_64 from current qemu git
15bede554162dda822cd762c689edb6fa32b6e3b

Reviewed-by: Andrea Bolognani <abologna@redhat.com>
Signed-off-by: Cole Robinson <crobinso@redhat.com>
2019-01-21 17:29:10 -05:00
Mark McLoughlin
30c225c673 docs: use JavaScript based PolicyKit .rules files
PolicyKit authentication rules have switched to a JavaScript based
format quite some time ago. See:

http://davidz25.blogspot.com/2012/06/authorization-rules-in-polkit.html

While backwards compat for the old .pkla format is still available, it
makes sense to point people first at the new format.

The SSHPolicyKitSetup wiki page seems pretty stale, so remove the
reference to it.

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Mark McLoughlin <markmc@redhat.com>
2019-01-21 18:45:27 +00:00
Ján Tomko
5de4d410a2 virQEMUDriverConfigLoadSWTPMEntry: use VIR_AUTOFREE
Switch the function to use VIR_AUTOFREE and VIR_AUTOPTR macros
to get rid of the cleanup section.

Requested-by: John Ferlan <jferlan@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
2019-01-21 17:14:29 +01:00
Ján Tomko
784e690ecb virQEMUDriverConfigLoadSecurityEntry: use VIR_AUTOFREE
Switch the function to use VIR_AUTOFREE and VIR_AUTOPTR macros
to get rid of the cleanup section.

Requested-by: John Ferlan <jferlan@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
2019-01-21 17:14:29 +01:00
Ján Tomko
2a33dc41bb virQEMUDriverConfigLoadNVRAMEntry: use VIR_AUTOFREE
Switch the function to use VIR_AUTOFREE and VIR_AUTOPTR macros
to get rid of the cleanup section.

Requested-by: John Ferlan <jferlan@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
2019-01-21 17:14:29 +01:00
Ján Tomko
92e601d08c virQEMUDriverConfigLoadProcessEntry: use VIR_AUTOFREE
Switch the function to use VIR_AUTOFREE and VIR_AUTOPTR macros
to get rid of the cleanup section.

Requested-by: John Ferlan <jferlan@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
2019-01-21 17:14:29 +01:00
Peter Krempa
f80eae8c2a qemu: command: Don't format image properties for empty -drive
If a -drive has no image, using image properties makes qemu whine that
they should not be used.

This patch stops formating cache/readonly/... for empty drives
for the pre-blockdev syntax. Unfortunately those parameters can't be
added later when inserting media, but on the other hand qemu will start
with an empty drive.

Since we already were able to start a VM with such config previously due
to qemu ignoring them I've opted just to skip formatting them.
Additionally with -blockdev support it will work as expected as the
image properties will be formatted when adding the image itself which is
not possible without it.

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

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2019-01-21 17:04:26 +01:00
Peter Krempa
a641e044c1 tests: qemuxml2argv: Add test case for empty CDROM with cache mode
Upcomming change will influence CDROM with cache mode so add a test
case.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2019-01-21 17:04:26 +01:00
Daniel P. Berrangé
635c45a925 rpm spec: don't assume %{fedora} exists as a macro
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2019-01-21 14:05:35 +00:00
Radostin Stoyanov
4797d7412c config-post: Remove duplicated 'undef WITH_CAPNG'
Signed-off-by: Radostin Stoyanov <rstoyanov1@gmail.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
2019-01-21 14:44:47 +01:00
Daniel P. Berrangé
6c6001bddb rpm spec: disable ceph on 32-bit architectures
Ceph in upstream and Fedora has dropped support for building on host
architectures which are 32-bit.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2019-01-21 12:20:14 +00:00
Laine Stump
40136bd316 qemu: fix i6300esb watchdog hotplug on Q35
When commit 361c8dc17 added support for hotplugging the i6300esb
watchdog device (first in libvirt-3.9.0), it accidentally contstructed
the commandline for the device_add command before allocating a PCI
address for the device. With no PCI address specified in the command,
the watchdog would simply be placed at the lowest unused PCI slot.

On a 440fx guest, this doesn't cause a problem, because libvirt's PCI
address allocation algorithm would most likely give the same address
anyway (usually a slot on pci-root), so nobody noticed the omission of
address from the command.

But on a Q35 guest, the lowest unused PCI slot is on pcie-root, which
doesn't support hotplug; libvirt knows enough to assign a PCI address
that is on a pcie-to-pci-bridge (because its slots *do* support
hotplug), but qemu doesn't, so if there is no PCI address in the
command, qemu just tries to plug the new device into pcie-root, and
fails because it doesn't support hotplug, e.g.:

  error: Failed to attach device from watchdog.xml
  error: internal error: unable to execute QEMU command 'device_add':
  Bus 'pcie.0' does not support hotplugging

The solution is simply to build the command string after assigning a
PCI address, not before.

Resolves: https://bugzilla.redhat.com/1666559
Signed-off-by: Laine Stump <laine@laine.org>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-01-18 14:12:02 -05:00
Wang Yechao
01ca4010d8 qemu: Assign device addresses earlier in qemuDomainAttachNetDevice
If code in the @actualType switch needs to have/know which PCI
Address is being used, then we must assign it earlier. In particular
a vhost-user device needs to call qemuDomainSupportsNicdev which
requires an address to be defined.

Signed-off-by: Wang Yechao <wang.yechao255@zte.com.cn>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-01-18 10:11:50 -05:00
Ján Tomko
e6df863294 qemu_conf: rename checkdefaultTLSx509certdir
Use defaultTLSx509certdirPresent for consistencty.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-01-18 12:55:07 +01:00
Ján Tomko
4079f47677 qemu_conf: split out virQEMUDriverConfigLoadDefaultTLSEntry
Split out parts of the config parsing code to make
the parent function easier to read.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-01-18 12:55:07 +01:00
Ján Tomko
cfe99a336d qemu_conf: split out virQEMUDriverConfigLoadVNCEntry
Split out parts of the config parsing code to make
the parent function easier to read.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-01-18 12:55:07 +01:00
Ján Tomko
53680aa379 qemu_conf: split out virQEMUDriverConfigLoadNographicsEntry
Split out parts of the config parsing code to make
the parent function easier to read.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-01-18 12:55:07 +01:00
Ján Tomko
da3dc5a382 qemu_conf: split out virQEMUDriverConfigLoadSPICEEntry
Split out parts of the config parsing code to make
the parent function easier to read.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-01-18 12:55:07 +01:00
Ján Tomko
a0ac0b913e qemu_conf: split out virQEMUDriverConfigLoadSpecificTLS
Split out parts of the config parsing code to make
the parent function easier to read.

This is the only patch that mixes various augeas entry
groups in one function.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-01-18 12:55:07 +01:00
Ján Tomko
de100ceddb qemu_conf: split out virQEMUDriverConfigLoadRemoteDisplayEntry
Split out parts of the config parsing code to make
the parent function easier to read.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-01-18 12:55:07 +01:00
Ján Tomko
1195e10b98 qemu_conf: split out virQEMUDriverConfigLoadSaveEntry
Split out parts of the config parsing code to make
the parent function easier to read.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-01-18 12:55:06 +01:00
Ján Tomko
0ebe4e60e6 qemu_conf: split out virQEMUDriverConfigLoadProcessEntry
Split out parts of the config parsing code to make
the parent function easier to read.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-01-18 12:55:06 +01:00
Ján Tomko
00063c2c95 qemu_conf: split out virQEMUDriverConfigLoadDeviceEntry
Split out parts of the config parsing code to make
the parent function easier to read.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-01-18 12:55:06 +01:00
Ján Tomko
e79e0cacc5 qemu_conf: split out virQEMUDriverConfigLoadRPCEntry
Split out parts of the config parsing code to make
the parent function easier to read.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-01-18 12:55:06 +01:00
Ján Tomko
a780ee8ab5 qemu_conf: split out virQEMUDriverConfigLoadNetworkEntry
Split out parts of the config parsing code to make
the parent function easier to read.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-01-18 12:55:06 +01:00
Ján Tomko
f78c3dde57 qemu_conf: split out virQEMUDriverConfigLoadLogEntry
Split out parts of the config parsing code to make
the parent function easier to read.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-01-18 12:55:06 +01:00
Ján Tomko
627595641d qemu_conf: split out virQEMUDriverConfigLoadNVRAMEntry
Split out parts of the config parsing code to make
the parent function easier to read.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-01-18 12:55:06 +01:00
Ján Tomko
fad7036ad4 qemu_conf: split out virQEMUDriverConfigLoadGlusterDebugEntry
Split out parts of the config parsing code to make
the parent function easier to read.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-01-18 12:55:05 +01:00
Ján Tomko
632dab43b4 qemu_conf: split out virQEMUDriverConfigLoadSecurityEntry
Split out parts of the config parsing code to make
the parent function easier to read.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-01-18 12:55:05 +01:00
Ján Tomko
6427aca725 qemu_conf: split out virQEMUDriverConfigLoadMemoryEntry
Split out parts of the config parsing code to make
the parent function easier to read.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-01-18 12:55:05 +01:00
Ján Tomko
d447293893 qemu_conf: split out virQEMUDriverConfigLoadSWTPMEntry
Split out parts of the config parsing code to make
the parent function easier to read.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-01-18 12:55:05 +01:00
Nikolay Shirokovskiy
d051e7f703 rpc: virNetClientNew: fix socket leak on error path
if virNetClientNew finishes with error before sock is set
to client object then sock does not get unrefed. This is
unexpected by function clients like virNetClientNewUNIX.
Let's make sure sock gets unrefed on any error path.

Next some clients like virNetClientNewLibSSH2 try to unref
sock on virNetClientNew errors. This is not correct even
before this patch because in some cases virNetClientNew
unrefed sock on error path by itself. Let's give up
sock managment to virNetClientNew entirely.

Signed-off-by: Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2019-01-18 14:01:27 +03:00
Peter Krempa
b70fb35d81 qemu: process: Use enum belonging to correct type
GCC was unhappy about comparison between two distinct enum types. Use
the correct value instead.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2019-01-18 08:39:40 +01:00
Peter Krempa
4ab8447af7 qemu: blockjob: Add job name into the data
Currently the job name corresponds to the disk the job belongs to. For
jobs which will not correspond to disks we'll need to track the name
separately.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-01-17 17:12:51 +01:00
Peter Krempa
dfe11a705c qemu: blockjob: Convert qemuBlockJobSyncEndDisk to take job instead of disk
And rename it in accordance with the change.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-01-17 17:12:50 +01:00
Peter Krempa
e5f704c971 qemu: migration: Don't call qemuBlockJobSyncEndDisk when block job has terminated
Now that the data is per-job, we don't really need to bother with
finishing the synchronous job handling if the job is already terminated.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-01-17 17:12:50 +01:00
Peter Krempa
a54acc8570 qemu: Allocate diskPriv->blockjob only when there's a blockjob
Rather than storing the presence of the blockjob in a flag we can bind
together the lifecycle of the job with the lifecycle of the object which
is tracking the data for it.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-01-17 17:12:50 +01:00
Peter Krempa
103a4245ae qemu: blockjob: Pass job into qemuBlockJobUpdateDisk and rename it
Instead of passing in the disk information, pass in the job and name the
function accordingly.

Few callers needed to be modified to have the job pointer handy.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-01-17 17:12:50 +01:00
Peter Krempa
c257352797 qemu: blockjob: Consume new block job state in the processing function
The processing function modifies the job state so it should make sure
that the variable holding the new state is cleared properly and not the
caller. The caller should only deal with the job state and not the
transition that happened.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-01-17 17:12:50 +01:00
Peter Krempa
8ca9fcec24 qemu: blockjob: Remove error propagation from qemuBlockJobUpdateDisk
The job error can be safely accessed in the job structure, so we don't
need to propagate it through qemuBlockJobUpdateDisk.

Drop the propagation and refactor any caller that pased non-NULL error.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-01-17 17:12:50 +01:00
Peter Krempa
10c99feb05 qemu: migration: Extract reporting of disk migration error
The same message is reported in 3 distinct places. Move it out into a
single function.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-01-17 17:12:50 +01:00
Peter Krempa
d1a44634ac qemu: blockjob: Track current state of blockjob
Add a field tracking the current state of job so that it can be queried
later. Until now the job state e.g. that the job is _READY for
finalizing was tracked only for mirror jobs. Add tracking of state for
all jobs.

Similarly to 'qemuBlockJobType' this maps the existing states of the
blockjob from virConnectDomainEventBlockJobStatus to
'qemuBlockJobState' so that we can track some internal states as well.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-01-17 17:12:50 +01:00
Peter Krempa
728830be9b qemu: blockjob: Convert qemuBlockJobSyncBeginDisk to work with the job
Modify qemuBlockJobSyncBeginDisk to operate on qemuBlockt sJobDataPtr and
rename it accordingly.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-01-17 17:12:50 +01:00
Peter Krempa
0ba9afc6b2 qemu: blockjob: Pass in job to qemuBlockJobEventProcessLegacy
Don't split out individual fields, just pass in the job.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-01-17 17:12:50 +01:00
Peter Krempa
79b73251fb qemu: blockjob: Record job type when starting the job
We can properly track the job type when starting the job so that we
don't have to infer it later.

This patch also adds an enum of block job types specific to qemu
(qemuBlockjobType) which mirrors the public block job types
(virDomainBlockJobType) but allows for other types to be added later
which will not be public.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-01-17 17:12:50 +01:00
Peter Krempa
f877ec1020 qemu: blockjob: Add reference to disk into struct qemuBlockJobData
Block jobs can also happen on objects which are not a disk at a given
point (e.g. the frontend was not hotplugged yet) and thus will be
eventually kept separately. Add a reference back to the disk for
blockjobs which do correspond to a disk.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-01-17 17:12:50 +01:00
Peter Krempa
addb82bc5f qemu: blockjob: Drop unnecessary calls to qemuBlockJobSyncEndDisk
If the job wasn't started, we don't need to end the synchronous job. Add
a note and drop the unnecessary calls.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-01-17 17:12:50 +01:00
Peter Krempa
e0c4d4fcf0 qemu: blockjob: Add functions for block job state control
Rather than directly modifying fields in the qemuBlockJobDataPtr
structure add a bunch of fields which allow to do the transitions.

This will help later when adding more complexity to the job handling.

APIs introduced in this patch are:

qemuBlockJobDiskNew - prepare for starting a new blockjob on a disk
qemuBlockJobDiskGetJob - get the block job data structure for a disk

For individual job state manipulation the following APIs are added:
qemuBlockJobStarted - Sets the job as started with qemu. Until that
                      the job can be cancelled without asking qemu.

qemuBlockJobStartupFinalize - finalize job startup. If the job was
                              started in qemu already, just releases
                              reference to the job object. Otherwise
                              clears everything as if the job was never
                              started.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-01-17 17:12:50 +01:00
Peter Krempa
b44f1cd7d7 qemu: migration: Separate startup of disk mirror from migration logic
Extract the disk mirroring startup code from the loop into a separate
function to allow cleaner cleanup paths.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-01-17 17:12:50 +01:00
Peter Krempa
b3e6a2ea3a qemu: blockjob: Clarify that job 'status' field contains new state
The field is used to note the state the job has transitioned to while
handling the blockjob state change event. Rename the field so that it's
obvious that this is the new state and not the general state of the
blockjob.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-01-17 17:12:50 +01:00
Peter Krempa
4479bd4611 qemu: blockjob: Turn struct qemuBlockJobData into a virObject
Reference counting will simplify semantics of the lifecycle of the
object.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-01-17 17:12:50 +01:00
Peter Krempa
466b78acb7 qemu: migration: Simplify cancellation of migration blockjobs
When cancelling job after a reconnect we can now use the disk block job
state rather than having to re-detect it in the migration code.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-01-17 17:12:50 +01:00
Peter Krempa
c1a4fb04f9 qemu: driver: Remove block job status reprobing from qemuDomainBlockPivot
Now that we reprobe the status of blockjobs when reconnecting in
addition to handling job status events, the status reprobing can be
removed as we always track the correct status internally.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-01-17 17:12:50 +01:00
Peter Krempa
9ed9124d0d qemu: process: refresh block jobs on reconnect
Block job state was widely untracked by libvirt across restarts which
was allowed by a stateless block job finishing handler which discarded
disk state and redetected it. This is undesirable since we'll need to
track more information for individual blockjobs due to -blockdev
integration requirements.

In case of legacy blockjobs we can recover whether the job is present at
reconnect time by querying qemu. Adding tracking whether a job is
present will allow simplification of the non-shared-storage cancellation
code.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-01-17 17:12:50 +01:00
Peter Krempa
5918df1e62 qemu: migration: Properly note that non-shared-storage migration uses a blockjob
Internally we do a 'block-copy' to accomodate non-shared storage
migration but the code did not fill in that the block job was active on
the disk when starting the copy job. Since we handle block jobs finishes
regardless of having it registered it's not a problem but soon will
become one.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-01-17 17:12:50 +01:00
Peter Krempa
232ab2f200 qemu: blockjob: Split out handling of completed jobs
qemuBlockJobEventProcessLegacy was getting too big. Remove handling of
completed jobs in a separate function.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-01-17 17:12:50 +01:00
Peter Krempa
246303dc5b qemu: blockjob: Rename qemuBlockJobEventProcess to qemuBlockJobEventProcessLegacy
This will handle blockjob finalizing for the old approach so rename it
accordingly.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-01-17 17:12:50 +01:00
Peter Krempa
2a1248badd qemu: process: Consolidate error paths in qemuProcessHandleBlockJob
'cleanup' label was accessed only from a jump to 'error'. Consolidate
everyting into 'cleanup'.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-01-17 17:12:50 +01:00
Peter Krempa
89a877b312 qemu: Consolidate disk blockjob variables into a structure
Struct qemuDomainDiskPrivate was holding multiple variables connected to
a disk block job. Consolidate them into a new struct qemuBlockJobData.

This will also allow simpler extensions to the block job mechanisms.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-01-17 17:12:50 +01:00
Peter Krempa
f5eadd1d92 qemu: blockjob: Remove header dependency on qemu_domain.h
The blockjob module uses 'qemuDomainAsyncJob' in it's public headers.
As I plan adding a new structure containing job data which will need to
be included in "qemu_domain.h" it's necessary to break the circular
dependency.

Convert 'qemuDomainAsyncJob' type to 'int' as it's an enum.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-01-17 17:12:50 +01:00
Peter Krempa
f2bc59e48e qemu: blockjob: Rename public APIs
All the public APIs of the qemu_blockjob module operate on a 'disk'.
Since I'll be adding APIs which operate on a job later let's rename the
existing ones.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-01-17 17:12:50 +01:00
Peter Krempa
359dc694f7 qemu: blockjob: Unexport qemuBlockJobEventProcess
The function is now only called locally. Some code movement was
necessary to avoid forward declarations.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-01-17 17:12:50 +01:00
Peter Krempa
c3ec4b8d6a qemu: processBlockJobEvent: Use qemuBlockJobUpdate to process block job events
Replace use of qemuBlockJobEventProcess with the general helper. A small
tweak is required to pass in the 'type' and 'status' of the job via the
appropriate private data variables.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-01-17 17:12:50 +01:00
Peter Krempa
b618a45b0f qemu: blockjob: Emit VIR_DOMAIN_EVENT_ID_BLOCK_JOB only for local disks
The event reports the disk path to identify the disk which makes sense
only for local disks. Additionally network backed disks like NBD don't
need to have a path so the callback would return NULL.

Report VIR_DOMAIN_EVENT_ID_BLOCK_JOB only for non-empty local disks.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-01-17 17:12:50 +01:00
Peter Krempa
56557b4898 qemu: blockjob: Extract emitting of libvirt events
Put the emitting of VIR_DOMAIN_EVENT_ID_BLOCK_JOB and
VIR_DOMAIN_EVENT_ID_BLOCK_JOB_2 into a separate function.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-01-17 17:12:50 +01:00
Ján Tomko
926cb125a4 qemu: fill out usage-specific TLS settings after parsing
Instead of copying the default default values upfront
and then wondering whether the user has given us a new default,
leave the per-usage TLS certdirs and secrets empty during
parsing and only fill them afterwards if they weren't provided
by the user.

This means that instead of looking whether the specific certdir
paths match the default default, the Validate function (which
is called in between parsing and setting the defaults) can error
out for missing directories if the value is present, because
it must've come from the user.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-01-17 15:53:20 +01:00
Ján Tomko
5ce02870c4 qemu.conf: fill out TLS verify attributes after parsing
Introduce a set of bool variables with the 'present' suffix
to track whether the value was actually specified.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-01-17 15:53:20 +01:00
Ján Tomko
10ee1270ff qemu: group swtpm entry in augeas file
They are meant to be together.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-01-17 15:53:20 +01:00
Ján Tomko
361f772f6f qemu: fix double space in augeas file
Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
2019-01-17 15:53:20 +01:00
Andrea Bolognani
1b3ea6daaf src: Don't use double-colon rules
According to the GNU Make manual, "double-colon rules are
somewhat obscure and not often very useful". Looking at
the few instances we have in libvirt, that certainly seems
to be the case, so just drop them.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
2019-01-16 10:19:48 +01:00
Ján Tomko
900aae2c77 qemu: remove comments for qemuDomainSecret.*Destroy functions
These all contain the same copy and pasted '@disk' error,
and only repeat the list of arguments.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
2019-01-16 08:34:01 +01:00
Ján Tomko
ca13c64868 maint: Post-release version bump to 5.1.0
Signed-off-by: Ján Tomko <jtomko@redhat.com>
2019-01-16 08:28:49 +01:00
Daniel Veillard
1fb8766421 Release of libvirt-5.0.0
* docs/news.xml: updated for release

Signed-off-by: Daniel Veillard <veillard@redhat.com>
2019-01-15 20:29:40 +01:00
Ján Tomko
0ca65b7b61 virnetdevip: Avoid cast align warning
Commit 7282f455a got rid of the VIR_WARNINGS_NO_CAST_ALIGN macro
when refactoring the code and broke the build with clang.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
2019-01-15 13:00:52 +01:00
Andrea Bolognani
7ea55e04c3 news: Update for 5.0.0 release
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
ACKed-by: Michal Privoznik <mprivozn@redhat.com>
2019-01-15 10:27:32 +01:00
Michal Privoznik
fc3990c7e6 qemu: Temporary disable owner remembering
Turns out, that there are few bugs that are not that trivial to
fix (e.g. around block jobs). Instead of rushing in not
thoroughly tested fixes disable the feature temporarily for the
release.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
ACKed-by: Peter Krempa <pkrempa@redhat.com>
2019-01-15 09:45:22 +01:00
Daniel P. Berrangé
1851233d31 po: refresh translations from zanata
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2019-01-14 18:10:21 +00:00
Laine Stump
85f223a8f2 util: make forgotten changes suggested during review of commit d40b820c
I had intended to make these changes to commit d40b820c before
pushing, but forgot about it during the day between the initial review
and ACK.

Neither change is significant - just returning immediately when
virNetDevGetName() fails (instead of logging a debug message first)
and eliminating a comment that adds to confusion rather than
eliminating it. Still, the changes should be made to be more
consistent with nearly identical code just a few lines up (added in
commit 7282f455)

Signed-off-by: Laine Stump <laine@laine.org>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-01-14 09:43:55 -05:00
Andrea Bolognani
0f17023ac7 news: Move entry for libvirt picking DRI devices
The entry, introduced by commit 3934beb857, ended up
inside a comment instead of the XML document proper, and
as such didn't show up in the generated files.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
2019-01-14 14:32:53 +01:00
994 changed files with 75354 additions and 20169 deletions

1
.gitignore vendored
View File

@@ -190,7 +190,6 @@
/tools/virt-admin
/tools/virt-*-validate
/tools/virt-sanlock-cleanup
/tools/wireshark/src/plugin.c
/tools/wireshark/src/libvirt
/update.log
GPATH

View File

@@ -10,7 +10,7 @@
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# GNU Lesser General Public License for more details.
# You should have received a copy of the GNU Lesser General Public
# License along with this library. If not, see

4
cfg.mk
View File

@@ -120,7 +120,6 @@ useless_free_options = \
--name=virConfFreeValue \
--name=virDomainActualNetDefFree \
--name=virDomainChrDefFree \
--name=virDomainChrSourceDefFree \
--name=virDomainControllerDefFree \
--name=virDomainDefFree \
--name=virDomainDeviceDefFree \
@@ -309,6 +308,7 @@ sc_flags_usage:
{ echo '$(ME): new API should use "unsigned int flags"' 1>&2; \
exit 1; } || :
@prohibit=' flags ATTRIBUTE_UNUSED' \
exclude='virSecurityDomainImageLabelFlags' \
halt='flags should be checked with virCheckFlags' \
$(_sc_search_regexp)
@prohibit='^[^@]*([^d] (int|long long)|[^dg] long) flags[;,)]' \
@@ -1282,7 +1282,7 @@ exclude_file_name_regexp--sc_correct_id_types = \
exclude_file_name_regexp--sc_m4_quote_check = m4/virt-lib.m4
exclude_file_name_regexp--sc_prohibit_include_public_headers_quote = \
^(src/internal\.h$$|tools/wireshark/src/packet-libvirt.h$$)
^(src/internal\.h$$|tools/wireshark/src/packet-libvirt.c$$)
exclude_file_name_regexp--sc_prohibit_include_public_headers_brackets = \
^(tools/|examples/|include/libvirt/(virterror|libvirt(-(admin|qemu|lxc))?)\.h$$)

View File

@@ -69,7 +69,6 @@
# undef WITH_VIRTUALPORT
# undef WITH_SECDRIVER_SELINUX
# undef WITH_SECDRIVER_APPARMOR
# undef WITH_CAPNG
#endif /* LIBVIRT_NSS */
#ifndef __GNUC__

View File

@@ -16,7 +16,7 @@ dnl You should have received a copy of the GNU Lesser General Public
dnl License along with this library. If not, see
dnl <http://www.gnu.org/licenses/>.
AC_INIT([libvirt], [5.0.0], [libvir-list@redhat.com], [], [https://libvirt.org])
AC_INIT([libvirt], [5.1.0], [libvir-list@redhat.com], [], [https://libvirt.org])
AC_CONFIG_SRCDIR([src/libvirt.c])
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_HEADERS([config.h])
@@ -246,6 +246,7 @@ LIBVIRT_ARG_CAPNG
LIBVIRT_ARG_CURL
LIBVIRT_ARG_DBUS
LIBVIRT_ARG_FIREWALLD
LIBVIRT_ARG_FIREWALLD_ZONE
LIBVIRT_ARG_FUSE
LIBVIRT_ARG_GLUSTER
LIBVIRT_ARG_HAL
@@ -286,6 +287,7 @@ LIBVIRT_CHECK_DBUS
LIBVIRT_CHECK_DEVMAPPER
LIBVIRT_CHECK_DLOPEN
LIBVIRT_CHECK_FIREWALLD
LIBVIRT_CHECK_FIREWALLD_ZONE
LIBVIRT_CHECK_FUSE
LIBVIRT_CHECK_GLUSTER
LIBVIRT_CHECK_GNUTLS
@@ -1000,6 +1002,7 @@ LIBVIRT_RESULT_CURL
LIBVIRT_RESULT_DBUS
LIBVIRT_RESULT_DLOPEN
LIBVIRT_RESULT_FIREWALLD
LIBVIRT_RESULT_FIREWALLD_ZONE
LIBVIRT_RESULT_FUSE
LIBVIRT_RESULT_GLUSTER
LIBVIRT_RESULT_GNUTLS

View File

@@ -2117,12 +2117,22 @@ class docBuilder:
self.modulename_file(id.header)))
if id.info is not None:
info = id.info
valhex = ""
if info[0] is not None and info[0] != '':
try:
val = eval(info[0])
valhex = hex(val)
except:
val = info[0]
output.write(" value='%s'" % (val))
if valhex != "":
output.write(" value_hex='%s'" % (valhex))
m = re.match("\(?1<<(\d+)\)?", info[0])
if m:
output.write(" value_bitshift='%s'" % (m.group(1)))
if info[2] is not None and info[2] != '':
output.write(" type='%s'" % info[2])
if info[1] is not None and info[1] != '':

View File

@@ -184,15 +184,29 @@ Default policy will still allow any application to connect to the RO socket.
</p>
<p>
The default policy can be overridden by creating a new policy file in the
local override directory <code>/etc/polkit-1/localauthority/50-local.d/</code>.
Policy files should have a unique name ending with .pkla. Using reverse DNS
naming works well. Information on the options available can be found by
reading the pklocalauthority man page. The two libvirt daemon actions
available are named <code>org.libvirt.unix.manage</code> for full management
access, and <code>org.libvirt.unix.monitor</code> for read-only access.
</p>
<code>/etc/polkit-1/rules.d</code> directory. Information on the options
available can be found by reading the <code>polkit(8)</code> man page. The
two libvirt actions are named <code>org.libvirt.unix.manage</code> for full
management access, and <code>org.libvirt.unix.monitor</code> for read-only
access.
</p>
<p>
As an example, this gives the user <code>fred</code> full management access:
As an example, creating <code>/etc/polkit-1/rules.d/80-libvirt-manage.rules</code>
with the following gives the user <code>fred</code> full management access
when accessing from an active local session:
</p>
<pre>polkit.addRule(function(action, subject) {
if (action.id == "org.libvirt.unix.manage" &amp;&amp;
subject.local &amp;&amp; subject.active &amp;&amp; subject.user == "fred") {
return polkit.Result.YES;
}
});</pre>
<p>
Older versions of PolicyKit used policy files ending with .pkla in the
local override directory <code>/etc/polkit-1/localauthority/50-local.d/</code>.
Compatibility with this older format is provided by <a
href="https://pagure.io/polkit-pkla-compat">polkit-pkla-compat</a>. As an
example, this gives the user <code>fred</code> full management access:
</p>
<pre>[Allow fred libvirt management permissions]
Identity=unix-user:fred
@@ -200,10 +214,6 @@ Action=org.libvirt.unix.manage
ResultAny=yes
ResultInactive=yes
ResultActive=yes</pre>
<p>
Further examples of PolicyKit setup can be found on the
<a href="http://wiki.libvirt.org/page/SSHPolicyKitSetup">wiki page</a>.
</p>
<h2><a id="ACL_server_sasl">SASL pluggable authentication</a></h2>
<p>

View File

@@ -462,5 +462,32 @@ Example:</p>
&lt;/domain&gt;
</pre>
<h3><a id="bhyvecommand">Pass-through of arbitrary bhyve commands</a></h3>
<p><span class="since">Since 5.1.0</span>, it's possible to pass additional command-line
arguments to the bhyve process when starting the domain using the
<code>&lt;bhyve:commandline&gt;</code> element under <code>domain</code>.
To supply an argument, use the element <code>&lt;bhyve:arg&gt;</code> with
the attribute <code>value</code> set to additional argument to be added.
The arg element may be repeated multiple times. To use this XML addition, it is necessary
to issue an XML namespace request (the special <code>xmlns:<i>name</i></code> attribute)
that pulls in <code>http://libvirt.org/schemas/domain/bhyve/1.0</code>;
typically, the namespace is given the name of <code>bhyve</code>.
</p>
<p>Example:</p>
<pre>
&lt;domain type="bhyve" xmlns:bhyve="http://libvirt.org/schemas/domain/bhyve/1.0"&gt;
...
&lt;bhyve:commandline&gt;
&lt;bhyve:arg value='-somebhyvearg'/&gt;
&lt;/bhyve:commandline&gt;
&lt;/domain&gt;
</pre>
<p>Note that these extensions are for testing and development purposes only.
They are <b>unsupported</b>, using them may result in inconsistent state,
and upgrading either bhyve or libvirtd maybe break behavior of a domain that
was relying on a specific commands pass-through.</p>
</body>
</html>

View File

@@ -395,9 +395,8 @@ chmod o+x /path/to/directory
<pre>
/dev/null, /dev/full, /dev/zero,
/dev/random, /dev/urandom,
/dev/ptmx, /dev/kvm, /dev/kqemu,
/dev/rtc, /dev/hpet, /dev/net/tun,
/dev/sev
/dev/ptmx, /dev/kvm,
/dev/rtc, /dev/hpet
</pre>
<p>

View File

@@ -129,6 +129,44 @@ MASQUERADE all -- * * 192.168.122.0/24 !192.168.122.0/24</pre>
</li>
</ul>
<h3><a id="fw-firewalld-and-virtual-network-driver">firewalld and the virtual network driver</a>
</h3>
<p>
If <a href="https://firewalld.org">firewalld</a> is active on
the host, libvirt will attempt to place the bridge interface of
a libvirt virtual network into the firewalld zone named
"libvirt" (thus making all guest->host traffic on that network
subject to the rules of the "libvirt" zone). This is done
because, if firewalld is using its nftables backend (available
since firewalld 0.6.0) the default firewalld zone (which would
be used if libvirt didn't explicitly set the zone) prevents
forwarding traffic from guests through the bridge, as well as
preventing DHCP, DNS, and most other traffic from guests to
host. The zone named "libvirt" is installed into the firewalld
configuration by libvirt (not by firewalld), and allows
forwarded traffic through the bridge as well as DHCP, DNS, TFTP,
and SSH traffic to the host - depending on firewalld's backend
this will be implemented via either iptables or nftables
rules. libvirt's own rules outlined above will *always* be
iptables rules regardless of which backend is in use by
firewalld.
</p>
<p>
NB: It is possible to manually set the firewalld zone for a
network's interface with the "zone" attribute of the network's
"bridge" element.
</p>
<p>
NB: Prior to libvirt 5.1.0, the firewalld "libvirt" zone did not
exist, and prior to firewalld 0.7.0 a feature crucial to making
the "libvirt" zone operate properly (rich rule priority
settings) was not implemented in firewalld. In cases where one
or the other of the two packages is missing the necessary
functionality, it's still possible to have functional guest
networking by setting the firewalld backend to "iptables" (in
firewalld prior to 0.6.0, this was the only backend available).
</p>
<h3><a id="fw-network-filter-driver">The network filter driver</a>
</h3>
<p>This driver provides a fully configurable network filtering capability

View File

@@ -22,7 +22,7 @@
<a id="attributeDomainType"><code>type</code></a>
specifies the hypervisor used for running
the domain. The allowed values are driver specific, but
include "xen", "kvm", "qemu", "lxc" and "kqemu". The
include "xen", "kvm", "qemu" and "lxc". The
second attribute is <code>id</code> which is a unique
integer identifier for the running guest machine. Inactive
machines have no id value.
@@ -2010,6 +2010,7 @@
&lt;tlbflush state='on'/&gt;
&lt;ipi state='on'/&gt;
&lt;evmcs state='on'/&gt;
&lt;msrs unknown='ignore'/&gt;
&lt;/hyperv&gt;
&lt;kvm&gt;
&lt;hidden state='on'/&gt;
@@ -2307,6 +2308,15 @@
defined, the hypervisor default will be used.
<span class="since">Since 4.10.0</span> (QEMU/KVM only)
</dd>
<dt><code>msrs</code></dt>
<dd>Some guests might require ignoring unknown
Model Specific Registers (MSRs) reads and writes. It's possible
to switch this by setting <code>unknown</code> attribute
of <code>msrs</code> to <code>ignore</code>. If the attribute is
not defined, or set to <code>fault</code>, unknown reads and writes
will not be ignored.
<span class="since">Since 5.1.0</span> (bhyve only)
</dd>
</dl>
<h3><a id="elementsTime">Time keeping</a></h3>
@@ -8785,8 +8795,8 @@ qemu-kvm -net nic,model=? /dev/null
different entity using a different key the encrypted guests data will
be incorrectly decrypted, leading to unintelligible data.
For more information see various input parameters and its format see the SEV API spec
<a href="https://support.amd.com/TechDocs/55766_SEV-KM%20API_Specification.pdf"> https://support.amd.com/TechDocs/55766_SEV-KM%20API_Specification.pdf </a>
For more information see various input parameters and its format see the
<a href="https://support.amd.com/TechDocs/55766_SEV-KM_API_Specification.pdf">SEV API spec</a>
<span class="since">Since 4.4.0</span>
</p>
<pre>

View File

@@ -481,7 +481,7 @@
<p>
For more details on SEV feature see:
<a href="https://support.amd.com/TechDocs/55766_SEV-KM%20API_Specification.pdf">
<a href="https://support.amd.com/TechDocs/55766_SEV-KM_API_Specification.pdf">
SEV API spec</a> and <a href="http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2013/12/AMD_Memory_Encryption_Whitepaper_v7-Public.pdf">
SEV White Paper</a>
</p>

View File

@@ -107,13 +107,13 @@
may also be connected to the LAN. When defining
a new network with a <code>&lt;forward&gt;</code> mode of
"nat" or "route" (or an isolated network with
"nat", "route", or "open" (or an isolated network with
no <code>&lt;forward&gt;</code> element), libvirt will
automatically generate a unique name for the bridge device if
none is given, and this name will be permanently stored in the
network configuration so that that the same name will be used
every time the network is started. For these types of networks
(nat, routed, and isolated), a bridge name beginning with the
(nat, route, open, and isolated), a bridge name beginning with the
prefix "virbr" is recommended (and that is what is
auto-generated), but not enforced.
Attribute <code>stp</code> specifies if Spanning Tree Protocol
@@ -152,6 +152,23 @@
<span class="since">Since 1.2.11, requires kernel 3.17 or
newer</span>
</p>
<p>
The optional <code>zone</code> attribute of
the <code>bridge</code> element is used to specify
the <a href="https://firewalld.org">firewalld</a>
zone for the bridge of a network with <code>forward</code>
mode of "nat", "route", "open", or one with
no <code>forward</code> specified. By default, the bridges
of all virtual networks with these forward modes are placed
in the firewalld zone named "libvirt", which permits
incoming DNS, DHCP, TFTP, and SSH to the host from guests on
the network. This behavior can be changed either by
modifying the libvirt zone (using firewalld management
tools), or by placing the network in a different zone (which
will also be managed using firewalld tools).
<span class="since">Since 5.1.0</span>
</p>
</dd>
<dt><code>mtu</code></dt>

View File

@@ -33,7 +33,7 @@
resume in a consistent state; but if the disks are modified
externally in the meantime, this is likely to lead to data
corruption.</dd>
<dt>system checkpoint</dt>
<dt>full system</dt>
<dd>A combination of disk snapshots for all disks as well as VM
memory state, which can be used to resume the guest from where it
left off with symptoms similar to hibernation (that is, TCP
@@ -55,11 +55,12 @@
as <code>virDomainSaveImageGetXMLDesc()</code> to work with
those files.
</p>
<p>System checkpoints are created
by <code>virDomainSnapshotCreateXML()</code> with no flags, and
<p>Full system snapshots are created
by <code>virDomainSnapshotCreateXML()</code> with no flags, while
disk snapshots are created by the same function with
the <code>VIR_DOMAIN_SNAPSHOT_CREATE_DISK_ONLY</code> flag; in
both cases, they are restored by
the <code>VIR_DOMAIN_SNAPSHOT_CREATE_DISK_ONLY</code>
flag. Regardless of the flags provided, restoration of the
snapshot is handled by
the <code>virDomainRevertToSnapshot()</code> function. For
these types of snapshots, libvirt tracks each snapshot as a
separate <code>virDomainSnapshotPtr</code> object, and maintains
@@ -128,13 +129,10 @@
what file name is created in an external snapshot. On output,
this is fully populated to show the state of each disk in the
snapshot, including any properties that were generated by the
hypervisor defaults. For system checkpoints, this field is
ignored on input and omitted on output (a system checkpoint
implies that all disks participate in the snapshot process,
and since the current implementation only does internal system
checkpoints, there are no extra details to add); a future
release may allow the use of <code>disks</code> with a system
checkpoint. This element has a list of <code>disk</code>
hypervisor defaults. For full system snapshots, this field is
ignored on input and omitted on output (a full system snapshot
implies that all disks participate in the snapshot process).
This element has a list of <code>disk</code>
sub-elements, describing anywhere from zero to all of the
disks associated with the domain. <span class="since">Since
0.9.5</span>
@@ -206,11 +204,12 @@
</dd>
<dt><code>state</code></dt>
<dd>The state of the domain at the time this snapshot was taken.
If the snapshot was created as a system checkpoint, then this
is the state of the domain at that time; when the domain is
If a full system snapshot was created, then this
is the state of the domain at that time. When the domain is
reverted to this snapshot, the domain's state will default to
whatever is in this field unless additional flags are passed
to <code>virDomainRevertToSnapshot()</code>. Additionally,
this state, unless overridden
by <code>virDomainRevertToSnapshot()</code> flags to revert to
a running or paused state. Additionally,
this field can be the value "disk-snapshot"
(<span class="since">since 0.9.5</span>) when it represents
only a disk snapshot (no VM memory state), and reverting to this

View File

@@ -19,14 +19,15 @@
a single attribute <code>type</code>, which is one of <code>dir</code>,
<code>fs</code>, <code>netfs</code>, <code>disk</code>,
<code>iscsi</code>, <code>logical</code>, <code>scsi</code>
(all <span class="since">since 0.4.1</span>), <code>mpath</code>
(<span class="since">since 0.7.1</span>), <code>rbd</code>
(<span class="since">since 0.9.13</span>), <code>sheepdog</code>
(<span class="since">since 0.10.0</span>),
<code>gluster</code> (<span class="since">since
1.2.0</span>), <code>zfs</code> (<span class="since">since
1.2.8</span>) or <code>vstorage</code> (<span class="since">since
3.1.0</span>). This corresponds to the
(all <span class="since">since 0.4.1</span>),
<code>mpath</code> (<span class="since">since 0.7.1</span>),
<code>rbd</code> (<span class="since">since 0.9.13</span>),
<code>sheepdog</code> (<span class="since">since 0.10.0</span>),
<code>gluster</code> (<span class="since">since 1.2.0</span>),
<code>zfs</code> (<span class="since">since 1.2.8</span>),
<code>vstorage</code> (<span class="since">since 3.1.0</span>),
or <code>iscsi-direct</code> (<span class="since">since 4.7.0</span>).
This corresponds to the
storage backend drivers listed further along in this document.
</p>
<h3><a id="StoragePoolFirst">General metadata</a></h3>
@@ -121,15 +122,26 @@
&lt;/source&gt;
...</pre>
<pre>
...
&lt;source&gt;
&lt;host name='localhost'/&gt;
&lt;dir path='/var/lib/libvirt/images'/&gt;
&lt;format type='nfs'/&gt;
&lt;protocol ver='3'/&gt;
&lt;/source&gt;
...</pre>
<dl>
<dt><code>device</code></dt>
<dd>Provides the source for pools backed by physical devices
(pool types <code>fs</code>, <code>logical</code>, <code>disk</code>,
<code>iscsi</code>, <code>zfs</code>, <code>vstorage</code>).
<code>iscsi</code>, <code>iscsi-direct</code>, <code>zfs</code>,
<code>vstorage</code>).
May be repeated multiple times depending on backend driver. Contains
a required attribute <code>path</code> which is either the fully
qualified path to the block device node or for <code>iscsi</code>
the iSCSI Qualified Name (IQN).
or <code>iscsi-direct</code> the iSCSI Qualified Name (IQN).
<span class="since">Since 0.4.1</span>
<p>An optional attribute <code>part_separator</code> for each
<code>path</code> may be supplied. Valid values for the attribute
@@ -334,6 +346,7 @@
<dt><code>host</code></dt>
<dd>Provides the source for pools backed by storage from a
remote server (pool types <code>netfs</code>, <code>iscsi</code>,
<code>iscsi-direct</code>,
<code>rbd</code>, <code>sheepdog</code>, <code>gluster</code>). Will be
used in combination with a <code>directory</code>
or <code>device</code> element. Contains an attribute <code>name</code>
@@ -348,11 +361,19 @@
server. See the <a href="storage.html">storage driver page</a> for
any restrictions for specific storage backends.
<span class="since">Since 0.4.1</span></dd>
<dt><code>initiator</code></dt>
<dd>Required by the <code>iscsi-direct</code> pool in order to provide
the iSCSI Qualified Name (IQN) to communicate with the pool's
<code>device</code> target IQN. There is one sub-element
<code>iqn</code> with the <code>name</code> attribute to describe
the IQN for the initiator.
<span class="since">Since 4.7.0</span></dd>
<dt><code>auth</code></dt>
<dd>If present, the <code>auth</code> element provides the
authentication credentials needed to access the source by the
setting of the <code>type</code> attribute (pool
types <code>iscsi</code>, <code>rbd</code>). The <code>type</code>
types <code>iscsi</code>, <code>iscsi-direct</code>, <code>rbd</code>).
The <code>type</code>
must be either "chap" or "ceph". Use "ceph" for
Ceph RBD (Rados Block Device) network sources and use "iscsi" for CHAP
(Challenge-Handshake Authentication Protocol) iSCSI
@@ -386,6 +407,12 @@
LVM metadata type. All drivers are required to have a default
value for this, so it is optional. <span class="since">Since 0.4.1</span></dd>
<dt><code>protocol</code></dt>
<dd>For a <code>netfs</code> Storage Pool provide a mechanism to
define which NFS protocol version number will be used to contact
the server's NFS service. The attribute <code>ver</code> accepts
an unsigned integer as the version number to use.
<span class="since">Since 5.1.0</span></dd>
<dt><code>vendor</code></dt>
<dd>Provides optional information about the vendor of the
storage device. This contains a single
@@ -451,8 +478,8 @@
The <code>owner</code> element contains the numeric user ID.
The <code>group</code> element contains the numeric group ID.
If <code>owner</code> or <code>group</code> aren't specified when
creating a directory, the values are inherited from the parent
directory. The <code>label</code> element contains the MAC (eg SELinux)
creating a directory, the UID and GID of the libvirtd process are used.
The <code>label</code> element contains the MAC (eg SELinux)
label string.
<span class="since">Since 0.4.1</span>
For running directory or filesystem based pools, these fields
@@ -481,6 +508,119 @@
device, measured in bytes. <span class="since">Since 0.4.1</span>
</p>
<h3><a id="StoragePoolNamespaces">Storage Pool Namespaces</a></h3>
<p>
Usage of Storage Pool Namespaces provides a mechanism to provide
pool type specific data in a free form or arbitrary manner via
XML syntax targeted solely for the needs of the specific pool type
which is not otherwise supported in standard XML. For the "fs" and
"netfs" pool types this provides a mechanism to provide additional
mount options on the command line. For the "rbd" pool this provides
a mechanism to override default settings for RBD configuration options.
</p>
<p>
Usage of namespaces comes with no support guarantees. It is intended
for developers testing out a concept prior to requesting an explicitly
supported XML option in libvirt, and thus should never be used in
production.
</p>
<dl>
<dt><code>fs:mount_opts</code></dt>
<dd>Provides an XML namespace mechanism to optionally utilize
specifically named options for the mount command via the "-o"
option for the <code>fs</code> or <code>netfs</code> type storage
pools. In order to designate that the Storage Pool will be using
the mechanism, the <code>pool</code> element must be modified to
provide the XML namespace attribute syntax as follows:
<p>
xmlns:fs='http://libvirt.org/schemas/storagepool/fs/1.0'
</p>
<p>
The <code>fs:mount_opts</code> defines the mount options by
specifying multiple <code>fs:option</code> subelements with
the attribute <code>name</code> specifying the mount option to
be added. The value of the named option is not checked since
it's possible options don't exist on all distributions. It is
expected that proper and valid options will be supplied for the
target host.
</p>
The following XML snippet shows the syntax required in order to
utilize for a netfs pool:
<pre>
&lt;pool type="netfs" xmlns:fs='http://libvirt.org/schemas/storagepool/fs/1.0'&gt;
&lt;name&gt;nfsimages&lt;/name&gt;
...
&lt;source&gt;
...
&lt;/source&gt;
...
&lt;target&gt;
...
&lt;/target&gt;
&lt;fs:mount_opts&gt;
&lt;fs:option name='sync'/&gt;
&lt;fs:option name='lazytime'/&gt;
&lt;/fs:mount_opts&gt;
&lt;/pool&gt;
...</pre>
<span class="since">Since 5.1.0.</span></dd>
<dt><code>rbd:config_opts</code></dt>
<dd>Provides an XML namespace mechanism to optionally utilize
specifically named options for the RBD configuration options
via the rados_conf_set API for the <code>rbd</code> type
storage pools. In order to designate that the Storage Pool
will be using the mechanism, the <code>pool</code> element
must be modified to provide the XML namespace attribute
syntax as follows:
<p>
xmlns:rbd='http://libvirt.org/schemas/storagepool/rbd/1.0'
</p>
<p>
The <code>rbd:config_opts</code> defines the configuration options
by specifying multiple <code>rbd:option</code> subelements with
the attribute <code>name</code> specifying the configuration option
to be added and <code>value</code> specifying the configuration
option value. The name and value for each option is only checked
to be not empty. The name and value provided are not checked since
it's possible options don't exist on all distributions. It is
expected that proper and valid options will be supplied for the
target host.
</p>
The following XML snippet shows the syntax required in order to
utilize
<pre>
&lt;pool type="rbd" xmlns:rbd='http://libvirt.org/schemas/storagepool/rbd/1.0'&gt;
&lt;name&gt;myrbdpool&lt;/name&gt;
...
&lt;source&gt;
...
&lt;/source&gt;
...
&lt;target&gt;
...
&lt;/target&gt;
...
&lt;rbd:config_opts&gt;
&lt;rbd:option name='client_mount_timeout' value='45'/&gt;
&lt;rbd:option name='rados_mon_op_timeout' value='20'/&gt;
&lt;rbd:option name='rados_osd_op_timeout' value='10'/&gt;
&lt;/rbd:config_opts&gt;
&lt;/pool&gt;
</pre>
<span class="since">Since 5.1.0.</span></dd>
</dl>
<h2><a id="StorageVol">Storage volume XML</a></h2>
<p>
A storage volume will generally be either a file or a device
@@ -636,8 +776,8 @@
The <code>owner</code> element contains the numeric user ID.
The <code>group</code> element contains the numeric group ID.
If <code>owner</code> or <code>group</code> aren't specified when
creating a supported volume, the values are inherited from the parent
directory. The <code>label</code> element contains the MAC (eg SELinux)
creating a supported volume, the UID and GID of the libvirtd process
are used. The <code>label</code> element contains the MAC (eg SELinux)
label string.
For existing directory or filesystem based volumes, these fields
will be filled with the values used by the existing file.

View File

@@ -155,7 +155,7 @@
also implicitly stating that they have the legal right to make the
contribution, if doing so on behalf of a broader organization /
company. Most of the project's code is distributed under the GNU
Lesser General Public License, version 2 or later. Details of the
Lesser General Public License, version 2.1 or later. Details of the
exact license under which contributions will be presumed to be
covered are found in the source repositories, or website in question.
</p>

View File

@@ -100,14 +100,15 @@
margin-right: auto;
padding: 0px;
padding-bottom: 1em;
max-width: 60em;
max-width: 95%;
width: 70em;
}
body.index #content,
body.docs #content,
body.hvsupport #content
{
max-width: inherit;
width: inherit;
}
pre {
@@ -537,3 +538,7 @@ dl.mail dt a:hover {
color: rgb(255, 230, 0);
text-decoration: none;
}
td.enumvalue {
white-space: nowrap;
}

View File

@@ -288,6 +288,24 @@
</xsl:choose>
</xsl:template>
<xsl:template name="enumvalue">
<xsl:param name="value" select="@value"/>
<xsl:param name="valuehex" select="@value_hex"/>
<xsl:param name="valuebitshift" select="@value_bitshift"/>
<xsl:value-of select="@value"/>
<xsl:if test="$valuehex != '' or $valuebitshift != ''">
<xsl:text> (</xsl:text>
<xsl:if test="$valuehex != ''">
<xsl:value-of select="@value_hex"/>
</xsl:if>
<xsl:if test="$valuebitshift != ''">
<xsl:text>; 1 &lt;&lt; </xsl:text>
<xsl:value-of select="@value_bitshift"/>
</xsl:if>
<xsl:text>)</xsl:text>
</xsl:if>
</xsl:template>
<xsl:template match="typedef[@type = 'enum']">
<xsl:variable name="name" select="string(@name)"/>
<h3><a name="{$name}"><code><xsl:value-of select="$name"/></code></a></h3>
@@ -306,7 +324,7 @@
<td><xsl:text> = </xsl:text></td>
<xsl:choose>
<xsl:when test="@info != ''">
<td><xsl:value-of select="@value"/></td>
<td class="enumvalue"><xsl:call-template name="enumvalue"/></td>
<td>
<div class="comment">
<xsl:call-template name="dumptext">
@@ -316,7 +334,7 @@
</td>
</xsl:when>
<xsl:otherwise>
<td colspan="2"><xsl:value-of select="@value"/></td>
<td colspan="2" class="enumvalue"><xsl:call-template name="enumvalue"/></td>
</xsl:otherwise>
</xsl:choose>
</tr>

View File

@@ -25,19 +25,6 @@
<section title="New features">
</section>
<section title="Improvements">
<change>
<summary>
Start selecting the first available DRI device for OpenGL operations
</summary>
<description>
If OpenGL support is needed (either with SPICE gl enabled or with
egl-headless), libvirt is now able to pick the first available DRI
device for the job. At the same time, this improvement is also a
bugfix as it prevents permission-related issues with regards to our
mount namespaces and the default DRI render node's permissions which
would normally prevent QEMU from accessing such a device.
</description>
</change>
</section>
<section title="Bug fixes">
</section>
@@ -46,7 +33,312 @@
-->
<libvirt>
<release version="v5.0.0" date="unreleased">
<release version="v5.1.0" date="2019-03-04">
<section title="New features">
<change>
<summary>
bhyve: Add support for additional command-line arguments
</summary>
<description>
The bhyve driver now supports passing additional command-line
arguments to the bhyve process using the new
<code>&lt;bhyve:commandline&gt;</code> element in domain
configuration.
</description>
</change>
<change>
<summary>
network: Support setting a firewalld "zone" for virtual network bridges
</summary>
<description>
All libvirt virtual networks with bridges managed by libvirt
(i.e. those with forward mode of "nat", "route", "open", or
no forward mode) will now be placed in a special firewalld
zone called "libvirt" by default. The zone of any network
bridge can be changed using the <code>zone</code> attribute
of the network's <code>bridge</code> element.
</description>
</change>
<change>
<summary>
bhyve: Support for ignoring unknown MSRs reads and writes
</summary>
<description>
A new &lt;features&gt; element &lt;msrs unknown='ignore'/&gt; was
introduced and the bhyve driver supports it to control unknown
Model Specific Registers (MSRs) reads and writes.
</description>
</change>
<change>
<summary>
qemu: Add support for encrypted VNC TLS keys
</summary>
<description>
Use the password stored in the secret driver under the uuid
specified by the <code>vnc_tls_x509_secret_uuid</code> option
in qemu.conf.
</description>
</change>
<change>
<summary>
Add storage pool namespace options
</summary>
<description>
Allow for adjustment of RBD configuration options via Storage
Pool XML Namespace adjustments.
</description>
</change>
<change>
<summary>
qemu: Add support for setting post-copy migration bandwidth
</summary>
<description>
Users can now limit the bandwidth of post-copy migration, e.g.
via <code>virsh migrate --postcopy-bandwidth</code>.
</description>
</change>
</section>
<section title="Improvements">
<change>
<summary>
Create private chains for virtual network firewall rules
</summary>
<description>
Historically firewall rules for virtual networks were added
straight into the base chains. This works but has a number of
bugs and design limitations. To address them, libvirt now puts
firewall rules into its own chains.
</description>
</change>
<change>
<summary>
Detect CEPH and GPFS as shared FS
</summary>
<description>
When starting a migration libvirt performs some sanity checks
to make sure domain will be able to run on the destination.
One of the requirements is that the disk has to either be
migrated too or be accessible from a network filesystem. CEPH
and GPFS weren't detected as a network filesystem.
</description>
</change>
<change>
<summary>
Advertise network MTU via DHCP when specified
</summary>
<description>
If network MTU is set and the network has DHCP enabled,
advertise the MTU in DHCP transaction too so that clients can
adjust their link accordingly.
</description>
</change>
<change>
<summary>
qemu: Allocate memory at the configured NUMA nodes from start
</summary>
<description>
Libvirt used to just start QEMU, let it allocate memory for
the guest, and then use CGroups to move the memory to
configured NUMA nodes. This is suboptimal as huge chunks of
memory have to be moved. Moreover, this relies on ability to
move memory later which is not always true. A change was made
to set process affinity correctly from the start so that memory
is allocated on the configured nodes from the beginning.
</description>
</change>
<change>
<summary>
Support for newer Wireshark
</summary>
<description>
Adapt libvirt to use the more recent release requiring a
source build configuration of libvirt
<code>--with-wireshark</code> to upgrade to the more recent
version.
</description>
</change>
<change>
<summary>
Batch mode virsh and virt-admin parsing improvements
</summary>
<description>
When parsing a single-argument command_string in batch mode,
virsh and virt-admin now permit newlines in addition to
semicolons for splitting commands, and backslash-newline for
splitting long lines, to be more like shell parsing.
</description>
</change>
</section>
<section title="Bug fixes">
<change>
<summary>
qemu: Use CAP_DAC_OVERRIDE during QEMU capabilities probing
</summary>
<description>
By default, libvirt runs the QEMU process as <code>qemu:qemu</code>
which could cause issues during probing as some features like AMD SEV
might be inaccessible to QEMU because of file system permissions.
Therefore, <code>CAP_DAC_OVERRIDE</code> is granted to overcome these
for the purposes of probing.
</description>
</change>
<change>
<summary>
storage: Add default mount options for fs/netfs storage pools
</summary>
<description>
Altered the command line generation for fs/netfs storage pools to
add some default options. For Linux based systems, the options
added are "nodev, nosuid, noexec". For FreeBSD based systems,
the options added are "nosuid, noexec".
</description>
</change>
<change>
<summary>
qemu: Allow use of PCI for RISC-V guests
</summary>
<description>
This works with QEMU 4.0.0+ only and is opt-in at the moment, since
it requires users to manually assign PCI addresses, but is otherwise
fully functional.
</description>
</change>
<change>
<summary>
network: Fix virtual networks on systems using firewalld+nftables
</summary>
<description>
Because of the transitional state of firewalld's new support
for nftables, not all iptables features required by libvirt
are yet available, so libvirt must continue to use iptables
for its own packet filtering rules even when the firewalld
backend is set to use nftables. However, due to the way
iptables support is implemented in kernels using nftables
(iptables rules are converted to nftables rules and
processed in a separate hook from the native nftables
rules), guest networking was broken on hosts with firewalld
configured to use nftables as the backend. This has been
fixed by putting libvirt-managed bridges in their own
firewalld zone, so that guest traffic can be forwarded
beyond the host and host services can be exposed to guests
on the virtual network without opening up those same
services to the rest of the physical network. This means
that host access from virtual machines is no longer
controlled by the firewalld default zone (usually "public"),
but rather by the new firewalld zone called "libvirt"
(unless configured otherwise using the new zone
attribute of the network bridge element).
</description>
</change>
<change>
<summary>
qemu: Fix i6300esb watchdog hotplug on Q35
</summary>
<description>
Ensure that libvirt allocates a PCI address for the device so
that QEMU did not default to an address that would not allow
for device hotplug.
</description>
</change>
<change>
<summary>
lxc: Don't reboot host on virDomainReboot
</summary>
<description>
If the container is really a simple one (init is just bash and
the whole root is passed through) then virDomainReboot and
virDomainShutdown would reboot or shutdown the host. The
solution is to use different method to reboot or shutdown the
container in that case (e.g. signal).
</description>
</change>
<change>
<summary>
rpc: Various stream fixes
</summary>
<description>
One particular race was fixed, one locking problem and error
reporting from streams was made better.
</description>
</change>
<change>
<summary>
qemu: Fix guestfwd hotplug/hotunplug
</summary>
<description>
Fixed the generation of the guestfwd hotplug/unplug command
sent to QEMU to match the syntax used when creating the
initial command line.
</description>
</change>
<change>
<summary>
qemu: Forbid CDROMs on virtio bus
</summary>
<description>
Attempting to create an empty virtio-blk drive or attempting
to eject it results into an error. Forbid configurations
where users would attempt to use CDROMs in virtio bus.
</description>
</change>
<change>
<summary>
qemu: Use 'raw' for 'volume' disks without format
</summary>
<description>
Storage pools might want to specify format of the image when
translating the volume thus libvirt can't add any default
format when parsing the XML. Add an explicit format when
starting the VM and format is not present neither by user
specifying it nor by the storage pool translation function.
</description>
</change>
<change>
<summary>
qemu: Assume 'raw' default storage format also for network storage
</summary>
<description>
Post parse callback adds the 'raw' type only for local files.
Remote files can also have backing store (even local) so we
should do this also for network backed storage.
</description>
</change>
<change>
<summary>
qemu: Fix block job progress reporting and advocate for READY event
</summary>
<description>
In some cases QEMU can get to 100% and still not reach the
synchronised phase. Initiating a pivot in that case will fail.
Therefore it is strongly advised to wait for
<code>VIR_DOMAIN_BLOCK_JOB_READY</code> event which does not
suffer from this problem.
</description>
</change>
<change>
<summary>
qemu: Don't format image properties for empty drive
</summary>
<description>
If a <code>-drive</code> has no image, then formatting
attributes such as cache, readonly, etc. would cause errors to
be reported from QEMU. This was fixed by not supplying the
attributes for devices without an image.
</description>
</change>
<change>
<summary>
External snapshot metadata redefinition is fixed
</summary>
<description>
Attempting to use VIR_DOMAIN_SNAPSHOT_CREATE_REDEFINE to
reinstate the metadata describing an external snapshot
created earlier for an offline domain no longer fails.
</description>
</change>
</section>
</release>
<release version="v5.0.0" date="2019-01-15">
<section title="New features">
<change>
<summary>
@@ -58,6 +350,16 @@
trunking configuration.
</description>
</change>
<change>
<summary>
qemu: Report whether KVM nesting is available
</summary>
<description>
Running nested KVM guests requires specific configuration steps to
be performed on the host; libvirt will now report in the host
capabilities whether KVM nesting support is available.
</description>
</change>
</section>
<section title="Removed features">
<change>
@@ -79,19 +381,6 @@
qemu: Add support for ARMv6l guests
</summary>
</change>
<change>
<summary>
Remember original owners and SELinux labels of files
</summary>
<description>
When a domain is starting up libvirt changes DAC and
SELinux labels so that domain can access it. However,
it never remembered the original labels and therefore
the file was returned back to <code>root:root</code>.
With this release, the original labels are remembered
and restored properly.
</description>
</change>
<change>
<summary>
Support more NVDIMM configuration options
@@ -112,6 +401,30 @@
sibling Hyperthread.
</description>
</change>
<change>
<summary>
libxl: Handle external domain destroy
</summary>
<description>
Historically, if a domain was destroyed using <code>xl</code>
rather than through libvirt APIs, libvirt would not be aware of
the fact and keep considering it as running. This is no longer the
case.
</description>
</change>
<change>
<summary>
Start selecting the first available DRI device for OpenGL operations
</summary>
<description>
If OpenGL support is needed (either with SPICE gl enabled or with
egl-headless), libvirt is now able to pick the first available DRI
device for the job. At the same time, this improvement is also a
bugfix as it prevents permission-related issues with regards to our
mount namespaces and the default DRI render node's permissions which
would normally prevent QEMU from accessing such a device.
</description>
</change>
<change>
<summary>
qemu: Add support for postcopy-requests migration statistics
@@ -123,6 +436,23 @@
</change>
</section>
<section title="Bug fixes">
<change>
<summary>
lxc: Don't forbid interfaces with type=direct
</summary>
<description>
Such interfaces are supported by lxc and should be allowed.
</description>
</change>
<change>
<summary>
qemu: Fully clean up RNG devices on detach
</summary>
<description>
Some RNG device types, such as those using EGD, might need extra
clean up on the host in addition to removing the guest-side device.
</description>
</change>
</section>
</release>
<release version="v4.10.0" date="2018-12-03">

View File

@@ -279,6 +279,12 @@
</data>
</define>
<define name="zoneName">
<data type="string">
<param name="pattern">[a-zA-Z0-9_\-]+</param>
</data>
</define>
<define name="filePath">
<data type="string">
<param name="pattern">.+</param>

View File

@@ -81,6 +81,9 @@
<optional>
<ref name='launchSecurity'/>
</optional>
<optional>
<ref name='bhyvecmdline'/>
</optional>
</interleave>
</element>
</define>
@@ -2765,7 +2768,7 @@
<ref name="usbAddr"/>
</attribute>
<attribute name="device">
<ref name="usbPort"/>
<ref name="usbAddr"/>
</attribute>
</group>
</choice>
@@ -4709,7 +4712,7 @@
<ref name="usbAddr"/>
</attribute>
<attribute name="device">
<ref name="usbPort"/>
<ref name="usbAddr"/>
</attribute>
</element>
</define>
@@ -4994,6 +4997,9 @@
<ref name="featurestate"/>
</element>
</optional>
<optional>
<ref name="msrs"/>
</optional>
</interleave>
</element>
</optional>
@@ -5242,6 +5248,17 @@
</element>
</define>
<define name="msrs">
<element name="msrs">
<attribute name="unknown">
<choice>
<value>ignore</value>
<value>fault</value>
</choice>
</attribute>
</element>
</define>
<define name="address">
<element name="address">
<choice>
@@ -6127,6 +6144,20 @@
</element>
</define>
<!--
Optional hypervisor extensions in their own namespace:
Bhyve
-->
<define name="bhyvecmdline">
<element name="commandline" ns="http://libvirt.org/schemas/domain/bhyve/1.0">
<zeroOrMore>
<element name="arg">
<attribute name='value'/>
</element>
</zeroOrMore>
</element>
</define>
<!--
Type library
-->

View File

@@ -58,6 +58,12 @@
</attribute>
</optional>
<optional>
<attribute name="zone">
<ref name="zoneName"/>
</attribute>
</optional>
<optional>
<attribute name="stp">
<ref name="virOnOff"/>

View File

@@ -52,6 +52,9 @@
<ref name='sourcefs'/>
<ref name='target'/>
</interleave>
<optional>
<ref name='fs_mount_opts'/>
</optional>
</define>
<define name='poolnetfs'>
@@ -64,6 +67,9 @@
<ref name='sourcenetfs'/>
<ref name='target'/>
</interleave>
<optional>
<ref name='fs_mount_opts'/>
</optional>
</define>
<define name='poollogical'>
@@ -150,6 +156,9 @@
<ref name='sizing'/>
<ref name='sourcerbd'/>
</interleave>
<optional>
<ref name='rbd_config_opts'/>
</optional>
</define>
<define name='poolsheepdog'>
@@ -531,6 +540,13 @@
<ref name='sourceinfohost'/>
<ref name='sourceinfodir'/>
<ref name='sourcefmtnetfs'/>
<optional>
<element name='protocol'>
<attribute name='ver'>
<ref name='unsignedInt'/>
</attribute>
</element>
</optional>
<optional>
<ref name='sourceinfovendor'/>
</optional>
@@ -675,4 +691,41 @@
</data>
</define>
<!--
Optional storage pool extensions in their own namespace:
"fs" or "netfs"
-->
<define name="fs_mount_opts">
<element name="mount_opts" ns="http://libvirt.org/schemas/storagepool/fs/1.0">
<zeroOrMore>
<element name="option">
<attribute name='name'>
<text/>
</attribute>
</element>
</zeroOrMore>
</element>
</define>
<!--
Optional storage pool extensions in their own namespace:
RBD
-->
<define name="rbd_config_opts">
<element name="config_opts" ns="http://libvirt.org/schemas/storagepool/rbd/1.0">
<zeroOrMore>
<element name="option">
<attribute name='name'>
<text/>
</attribute>
<attribute name='value'>
<text/>
</attribute>
</element>
</zeroOrMore>
</element>
</define>
</grammar>

View File

@@ -437,9 +437,9 @@
<h2><a id="StorageBackendISCSIDirect">iSCSI direct pool</a></h2>
<p>
This is a variant of the iSCSI pool. Instead of unsing iscsiadm, it uses
This is a variant of the iSCSI pool. Instead of using iscsiadm, it uses
libiscsi.
It require a host, a path which is the target iqn and an initiator iqn.
It requires a host, a path which is the target IQN, and an initiator IQN.
</p>
<h3>Example pool input</h3>
@@ -457,12 +457,12 @@
<h3>Valid pool format types</h3>
<p>
The iSCSI volume pool does not use the pool format type element.
The iSCSI direct volume pool does not use the pool format type element.
</p>
<h3>Valid volume format types</h3>
<p>
The iSCSI volume pool does not use the volume format type element.
The iSCSI direct volume pool does not use the volume format type element.
</p>
<h2><a id="StorageBackendSCSI">SCSI pool</a></h2>

View File

@@ -59,7 +59,7 @@ typedef enum {
VIR_DOMAIN_SNAPSHOT_CREATE_HALT = (1 << 3), /* Stop running guest
after snapshot */
VIR_DOMAIN_SNAPSHOT_CREATE_DISK_ONLY = (1 << 4), /* disk snapshot, not
system checkpoint */
full system */
VIR_DOMAIN_SNAPSHOT_CREATE_REUSE_EXT = (1 << 5), /* reuse any existing
external files */
VIR_DOMAIN_SNAPSHOT_CREATE_QUIESCE = (1 << 6), /* use guest agent to
@@ -78,6 +78,10 @@ virDomainSnapshotPtr virDomainSnapshotCreateXML(virDomainPtr domain,
const char *xmlDesc,
unsigned int flags);
typedef enum {
VIR_DOMAIN_SNAPSHOT_XML_SECURE = VIR_DOMAIN_XML_SECURE, /* dump security sensitive information too */
} virDomainSnapshotXMLFlags;
/* Dump the XML of a snapshot */
char *virDomainSnapshotGetXMLDesc(virDomainSnapshotPtr snapshot,
unsigned int flags);

View File

@@ -903,6 +903,15 @@ typedef enum {
*/
# define VIR_MIGRATE_PARAM_BANDWIDTH "bandwidth"
/**
* VIR_MIGRATE_PARAM_BANDWIDTH_POSTCOPY:
*
* virDomainMigrate* params field: the maximum bandwidth (in MiB/s) that will
* be used for post-copy phase of a migration as VIR_TYPED_PARAM_ULLONG. If set
* to 0 or omitted, post-copy migration speed will not be limited.
*/
# define VIR_MIGRATE_PARAM_BANDWIDTH_POSTCOPY "bandwidth.postcopy"
/**
* VIR_MIGRATE_PARAM_GRAPHICS_URI:
*
@@ -1062,6 +1071,12 @@ int virDomainMigrateSetCompressionCache(virDomainPtr domain,
unsigned long long cacheSize,
unsigned int flags);
/* Domain migration speed flags. */
typedef enum {
/* Set or get maximum speed of post-copy migration. */
VIR_DOMAIN_MIGRATE_MAX_SPEED_POSTCOPY = (1 << 0),
} virDomainMigrateMaxSpeedFlags;
int virDomainMigrateSetMaxSpeed(virDomainPtr domain,
unsigned long bandwidth,
unsigned int flags);
@@ -1204,6 +1219,7 @@ int virDomainRestoreFlags (virConnectPtr conn,
const char *dxml,
unsigned int flags);
/* See below for virDomainSaveImageXMLFlags */
char * virDomainSaveImageGetXMLDesc (virConnectPtr conn,
const char *file,
unsigned int flags);
@@ -1556,6 +1572,10 @@ typedef enum {
VIR_DOMAIN_XML_MIGRATABLE = (1 << 3), /* dump XML suitable for migration */
} virDomainXMLFlags;
typedef enum {
VIR_DOMAIN_SAVE_IMAGE_XML_SECURE = VIR_DOMAIN_XML_SECURE, /* dump security sensitive information too */
} virDomainSaveImageXMLFlags;
char * virDomainGetXMLDesc (virDomainPtr domain,
unsigned int flags);
@@ -2375,7 +2395,8 @@ int virDomainSetPerfEvents(virDomainPtr dom,
* Describes various possible block jobs.
*/
typedef enum {
VIR_DOMAIN_BLOCK_JOB_TYPE_UNKNOWN = 0, /* Placeholder */
/* Placeholder */
VIR_DOMAIN_BLOCK_JOB_TYPE_UNKNOWN = 0,
/* Block Pull (virDomainBlockPull, or virDomainBlockRebase without
* flags), job ends on completion */

View File

@@ -131,6 +131,7 @@ typedef enum {
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 */
# ifdef VIR_ENUM_SENTINELS
VIR_ERR_DOMAIN_LAST

View File

@@ -82,6 +82,7 @@
%define with_sanlock 0%{!?_without_sanlock:0}
%define with_numad 0%{!?_without_numad:0}
%define with_firewalld 0%{!?_without_firewalld:0}
%define with_firewalld_zone 0%{!?_without_firewalld_zone:0}
%define with_libssh2 0%{!?_without_libssh2:0}
%define with_wireshark 0%{!?_without_wireshark:0}
%define with_libssh 0%{!?_without_libssh:0}
@@ -109,6 +110,12 @@
%define with_storage_zfs 0
%endif
# Ceph dropping support for 32-bit hosts
%if 0%{?fedora} >= 30
%ifarch %{arm} %{ix86}
%define with_storage_rbd 0
%endif
%endif
# RHEL doesn't ship OpenVZ, VBox, PowerHypervisor,
# VMware, libxenserver (xenapi), libxenlight (Xen 4.1 and newer),
@@ -130,6 +137,11 @@
%define with_firewalld 1
%if 0%{?fedora} >= 30 || 0%{?rhel} > 7
%define with_firewalld_zone 0%{!?_without_firewalld_zone:1}
%endif
# fuse is used to provide virtualized /proc for LXC
%if %{with_lxc}
%define with_fuse 0%{!?_without_fuse:1}
@@ -154,11 +166,7 @@
# Enable wireshark plugins for all distros shipping libvirt 1.2.2 or newer
%if 0%{?fedora}
%define with_wireshark 0%{!?_without_wireshark:1}
%endif
%if 0%{?fedora} || 0%{?rhel} > 7
%define wireshark_plugindir %(pkg-config --variable plugindir wireshark)
%else
%define wireshark_plugindir %{_libdir}/wireshark/plugins
%define wireshark_plugindir %(pkg-config --variable plugindir wireshark)/epan
%endif
# Enable libssh transport for new enough distros
@@ -208,7 +216,7 @@
Summary: Library providing a simple virtualization API
Name: libvirt
Version: @VERSION@
Release: 1%{?dist}%{?extra_release}
Release: 1%{?dist}
License: LGPLv2+
URL: https://libvirt.org/
@@ -377,7 +385,7 @@ BuildRequires: numad
%endif
%if %{with_wireshark}
BuildRequires: wireshark-devel >= 2.1.0
BuildRequires: wireshark-devel >= 2.4.0
%endif
%if %{with_libssh}
@@ -389,6 +397,10 @@ BuildRequires: rpcgen
BuildRequires: libtirpc-devel
%endif
%if %{with_firewalld_zone}
BuildRequires: firewalld-filesystem
%endif
Provides: bundled(gnulib)
%description
@@ -919,7 +931,7 @@ Bash completion script stub.
%if %{with_wireshark}
%package wireshark
Summary: Wireshark dissector plugin for libvirt RPC transactions
Requires: wireshark >= 1.12.6-4
Requires: wireshark >= 2.4.0
Requires: %{name}-libs = %{version}-%{release}
%description wireshark
@@ -1087,6 +1099,12 @@ exit 1
%define arg_firewalld --without-firewalld
%endif
%if %{with_firewalld_zone}
%define arg_firewalld_zone --with-firewalld-zone
%else
%define arg_firewalld_zone --without-firewalld-zone
%endif
%if %{with_wireshark}
%define arg_wireshark --with-wireshark-dissector
%else
@@ -1185,6 +1203,7 @@ rm -f po/stamp-po
--with-dtrace \
--with-driver-modules \
%{?arg_firewalld} \
%{?arg_firewalld_zone} \
%{?arg_wireshark} \
--without-pm-utils \
--with-nss-plugin \
@@ -1352,6 +1371,16 @@ if [ -f %{_localstatedir}/lib/rpm-state/libvirt/restart ]; then
fi
rm -rf %{_localstatedir}/lib/rpm-state/libvirt || :
%post daemon-driver-network
%if %{with_firewalld}
%firewalld_reload
%endif
%postun daemon-driver-network
%if %{with_firewalld}
%firewalld_reload
%endif
%post daemon-config-network
if test $1 -eq 1 && test ! -f %{_sysconfdir}/libvirt/qemu/networks/default.xml ; then
# see if the network used by default network creates a conflict,
@@ -1590,6 +1619,10 @@ exit 0
%attr(0755, root, root) %{_libexecdir}/libvirt_leaseshelper
%{_libdir}/%{name}/connection-driver/libvirt_driver_network.so
%if %{with_firewalld_zone}
%{_prefix}/lib/firewalld/zones/libvirt.xml
%endif
%files daemon-driver-nodedev
%{_libdir}/%{name}/connection-driver/libvirt_driver_nodedev.so

45
m4/virt-firewalld-zone.m4 Normal file
View File

@@ -0,0 +1,45 @@
dnl firewalld_zone check - whether or not to install the firewall "libvirt" zone
dnl
dnl Copyright (C) 2019 Red Hat, Inc.
dnl
dnl This library is free software; you can redistribute it and/or
dnl modify it under the terms of the GNU Lesser General Public
dnl License as published by the Free Software Foundation; either
dnl version 2.1 of the License, or (at your option) any later version.
dnl
dnl This library is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
dnl Lesser General Public License for more details.
dnl
dnl You should have received a copy of the GNU Lesser General Public
dnl License along with this library. If not, see
dnl <http://www.gnu.org/licenses/>.
dnl
AC_DEFUN([LIBVIRT_ARG_FIREWALLD_ZONE], [
LIBVIRT_ARG_WITH([FIREWALLD_ZONE], [Whether to install firewalld libvirt zone], [check])
])
AC_DEFUN([LIBVIRT_CHECK_FIREWALLD_ZONE], [
AC_REQUIRE([LIBVIRT_CHECK_FIREWALLD])
AC_MSG_CHECKING([for whether to install firewalld libvirt zone])
if test "x$with_firewalld_zone" = "xcheck" ; then
with_firewalld_zone=$with_firewalld
fi
if test "x$with_firewalld_zone" = "xyes" ; then
if test "x$with_firewalld" != "xyes" ; then
AC_MSG_ERROR([You must have firewalld support enabled to enable firewalld-zone])
fi
AC_DEFINE_UNQUOTED([WITH_FIREWALLD_ZONE], [1], [whether firewalld libvirt zone is installed])
fi
AM_CONDITIONAL([WITH_FIREWALLD_ZONE], [test "x$with_firewalld_zone" != "xno"])
AC_MSG_RESULT($with_firewalld_zone)
])
AC_DEFUN([LIBVIRT_RESULT_FIREWALLD_ZONE], [
LIBVIRT_RESULT([firewalld-zone], [$with_firewalld_zone])
])

View File

@@ -32,10 +32,10 @@ AC_DEFUN([LIBVIRT_CHECK_FIREWALLD], [
if test "x$with_dbus" != "xyes" ; then
AC_MSG_ERROR([You must have dbus enabled for firewalld support])
fi
AC_DEFINE_UNQUOTED([HAVE_FIREWALLD], [1], [whether firewalld support is enabled])
AC_DEFINE_UNQUOTED([WITH_FIREWALLD], [1], [whether firewalld support is enabled])
fi
AM_CONDITIONAL([HAVE_FIREWALLD], [test "x$with_firewalld" != "xno"])
AM_CONDITIONAL([WITH_FIREWALLD], [test "x$with_firewalld" != "xno"])
])
AC_DEFUN([LIBVIRT_RESULT_FIREWALLD], [

View File

@@ -33,6 +33,7 @@ AC_DEFUN([LIBVIRT_STORAGE_CHECK_RBD], [
old_LIBS="$LIBS"
LIBS="$LIBS $LIBRBD_LIBS"
AC_CHECK_FUNCS([rbd_get_features],[],[LIBRBD_FOUND=no])
AC_CHECK_FUNCS([rbd_list2])
LIBS="$old_LIBS"
fi

View File

@@ -18,14 +18,14 @@ dnl <http://www.gnu.org/licenses/>.
dnl
AC_DEFUN([LIBVIRT_ARG_WIRESHARK],[
LIBVIRT_ARG_WITH_FEATURE([WIRESHARK_DISSECTOR], [wireshark], [check], [1.11.3])
LIBVIRT_ARG_WITH_FEATURE([WIRESHARK_DISSECTOR], [wireshark], [check], [2.4.0])
LIBVIRT_ARG_WITH([WS_PLUGINDIR],
[wireshark plugins directory for use when installing
wireshark plugin], [check])
])
AC_DEFUN([LIBVIRT_CHECK_WIRESHARK],[
LIBVIRT_CHECK_PKG([WIRESHARK_DISSECTOR], [wireshark], [1.11.3])
LIBVIRT_CHECK_PKG([WIRESHARK_DISSECTOR], [wireshark], [2.4.0])
dnl Check for system location of wireshark plugins
if test "x$with_wireshark_dissector" != "xno" ; then
@@ -50,6 +50,12 @@ AC_DEFUN([LIBVIRT_CHECK_WIRESHARK],[
dnl time
ws_plugindir='${exec_prefix}'"${ws_plugindir#$ws_exec_prefix}"
fi
dnl Since wireshark 2.5.0 plugins can't live in top level
dnl plugindir but have to be under one of ["epan",
dnl "wiretap", "codecs"] subdir. The first one looks okay.
ws_plugindir="$ws_plugindir/epan"
elif test "x$with_ws_plugindir" = "xno" || test "x$with_ws_plugindir" = "xyes"; then
AC_MSG_ERROR([ws-plugindir must be used only with valid path])
else

View File

@@ -35,7 +35,7 @@
Name: mingw-libvirt
Version: @VERSION@
Release: 1%{?dist}%{?extra_release}
Release: 1%{?dist}
Summary: MinGW Windows libvirt virtualization library
License: LGPLv2+

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: Afrikaans\n"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: Amharic\n"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: Angika\n"

View File

@@ -1,5 +1,5 @@
# Libvirt package strings.
# Copyright (C) 2018 Red Hat, Inc.
# Copyright (C) 2019 Red Hat, Inc.
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: 2018-04-24 04:33+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Arabic (http://www.transifex.com/projects/p/fedora/language/"

View File

@@ -1,5 +1,5 @@
# Libvirt package strings.
# Copyright (C) 2018 Red Hat, Inc.
# Copyright (C) 2019 Red Hat, Inc.
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
@@ -15,7 +15,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+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/"
@@ -1288,12 +1288,6 @@ msgstr "সংৰূপ ফাইল ল'ড কৰিব: %s: %s"
msgid "Can't modify device type '%s'"
msgstr "ডিভাইচ ধৰণ '%s' পৰিবৰ্তন কৰিব নোৱাৰি"
msgid "Can't parse barrier from "
msgstr "ৰ পৰা বাধা বিশ্লেষণ কৰিব নোৱাৰি"
msgid "Can't parse limit from "
msgstr "ৰ পৰা সীমা বিশ্লেষণ কৰিব নোৱাৰি"
msgid "Can't parse prlctl output"
msgstr "prlctl আউটপুট বিশ্লেষণ কৰিব নোৱাৰি"
@@ -1462,10 +1456,6 @@ msgstr "পথত '%s' সন্ধান কৰিব নোৱাৰি"
msgid "Cannot find CPU model with PVR 0x%08x"
msgstr "PVR 0x%08x ৰ সৈতে CPU আৰ্হি পোৱা নাযায়"
#, c-format
msgid "Cannot find UML kernel %s"
msgstr "UML কাৰ্ণেল %s বিচাৰিবলৈ ব্যৰ্থ"
#, c-format
msgid "Cannot find program %d version %d"
msgstr "প্ৰগ্ৰাম %d সংস্কৰণ %d সন্ধান কৰিব নোৱাৰি"
@@ -1950,10 +1940,6 @@ msgid ""
msgstr ""
"ডমেইন %s ৰ বাবে নিকট কলবেক ইতিমধ্যে অন্য সংযোগ %p ৰ সৈতে ৰেজিস্টাৰ কৰা আছে"
#, c-format
msgid "Command %s too long for destination"
msgstr "গন্তব্যৰ ক্ষেত্ৰত আদেশ %s অত্যাধিক দীঘল"
msgid "Commit aborted"
msgstr "Commit বাদ দিয়া হল"
@@ -5631,9 +5617,6 @@ msgstr "গন্তব্যৰ ক্ষেত্ৰত IP %s অত্যা
msgid "IP address lookup for host '%s' failed: %s"
msgstr "হস্ট '%s' ৰ বাবে IP ঠিকনা চোৱাটো ব্যৰ্থ হল: %s"
msgid "IP address not supported for ethernet interface"
msgstr "ইথাৰনেট আন্তঃপৃষ্ঠৰ বাবে IP ঠিকনা সমৰ্থিত নহয়"
msgid ""
"IP parameter must be given since libvirt was not compiled with IP address "
"learning support"
@@ -7053,9 +7036,6 @@ msgstr "টোকা"
msgid "NULL NetworkDef"
msgstr "NULL NetworkDef"
msgid "NULL or empty path"
msgstr "NULL বা পথ ৰিক্ত"
#, c-format
msgid "NULL string parameter '%s'"
msgstr "NULL স্ট্ৰিং প্ৰাচল '%s'"
@@ -7143,10 +7123,6 @@ msgstr "নে'টৱৰ্ক '%s' ইতিমধ্যে চলি আছে
msgid "Network '%s' is still running"
msgstr "নে'টৱৰ্ক '%s' এতিয়াও চলি আছে"
#, c-format
msgid "Network '%s' not found"
msgstr "নে'টৱৰ্ক '%s' পোৱা নাযায়"
msgid "Network config change transaction committed\n"
msgstr "নেটৱৰ্ক সংৰূপ পৰিবৰ্তন লেন দেন commit কৰা হল\n"
@@ -7311,9 +7287,6 @@ msgstr "কোনো বিভাগ বিস্তাৰ উপলব্ধ
msgid "No channel command provided"
msgstr "কোনো চেনেল কমান্ড প্ৰদান কৰা হোৱা নাই"
msgid "No controllers are mounted"
msgstr "কোনো নিয়ন্ত্ৰক মাউণ্ট কৰা হোৱা নাই"
msgid "No data supplied for <initarg> element"
msgstr "<initarg> উপাদানৰ বাবে কোনো তথ্য প্ৰদান কৰা হোৱা নাই"
@@ -8959,12 +8932,6 @@ msgstr "চিস্টেম উপলব্ধ নহয়"
msgid "System lacks NETNS support"
msgstr "প্ৰণালীত NETNS সমৰ্থন নাই"
msgid "TCP client networking type not supported"
msgstr "TCP গ্ৰাহক প্ৰকৃতিৰ নে'টৱৰ্ক সমৰ্থিত নহয়"
msgid "TCP server networking type not supported"
msgstr "TCP সেৱক প্ৰকৃতিৰ নে'টৱৰ্ক সমৰ্থিত নহয়"
#, c-format
msgid "TLS handshake failed %s"
msgstr "TLS হেণ্ডছেইক ব্যৰ্থ হল %s"
@@ -9529,9 +9496,6 @@ msgstr "এই কাৰ্য্য WIN32 প্লেটফৰ্মত সম
msgid "This host is not managed by a vCenter"
msgstr "এই হস্ট এটা vCenter দ্বাৰা ব্যৱস্থাপিত নহয়"
msgid "This type of device cannot be hot unplugged"
msgstr "এই ধৰণৰ ডিভাইচ হট-আনপ্লাগ কৰা সম্ভৱ নহয়।"
msgid "This type of disk cannot be hot unplugged"
msgstr "এই ধৰণৰ ডিস্ক হট আনপ্লাগ কৰিব নোৱাৰি"
@@ -10704,9 +10668,6 @@ msgstr "এই প্লেটফৰ্মত %s ত STP বিলম্ব স
msgid "Unable to set STP on %s on this platform"
msgstr "এই প্লেটফৰ্মত %s ত STP সংহতি কৰিবলে অক্ষম"
msgid "Unable to set VM logfile close-on-exec flag"
msgstr "VM লগ ফাইলৰ close on exec ফ্লেগ %s নিৰ্ধাৰণ কৰোঁতে ব্যৰ্থ"
msgid "Unable to set cloexec flag"
msgstr "cloexec ফ্লেগ সংহতি কৰিবলে অক্ষম"
@@ -10967,10 +10928,6 @@ msgstr "অপ্ৰত্যাশিত ভলিউম পথ বিন্য
msgid "Unhandled event %d for monitor fd %d"
msgstr "মনিটৰ fd %d ৰ বাবে অনিয়ন্ত্ৰিত ঘটনা %d"
#, c-format
msgid "Unix path %s too long for destination"
msgstr "গন্তব্যৰ ক্ষেত্ৰত Unix পথ %s অত্যাধিক দীঘল"
msgid "Unknown"
msgstr "অজ্ঞাত"
@@ -12165,15 +12122,9 @@ msgstr "নেটলিঙ্কৰ বাবে প্লেইচহল্ড
msgid "cannot apply process capabilities %d"
msgstr "প্ৰক্ৰিয়া ক্ষমতাসমূহ %d প্ৰয়োগ কৰিব নোৱাৰি"
msgid "cannot attach device on inactive domain"
msgstr "নিষ্ক্ৰিয় ডোমেইনৰ সৈতে ডিভাইচ সংযুক্ত কৰা নাযাব"
msgid "cannot become session leader"
msgstr "অধিবেশন বিচাৰি পোৱা ন'গ'ল"
msgid "cannot bind socket"
msgstr "অধিবেশন বিচাৰি পোৱা ন'গ'ল"
msgid "cannot block signals"
msgstr "চিগ্নেল ৰোধ কৰিব নোৱাৰি"
@@ -12372,9 +12323,6 @@ msgstr "%d স্নেপশ্বটসমূহৰ সৈতে নিষ্
msgid "cannot delete snapshots of running domain"
msgstr "চলি থকা ডমেইনৰ স্নেপশ্বটসমূহ মচিব নোৱাৰি"
msgid "cannot detach device on inactive domain"
msgstr "নিষ্ক্ৰিয় ডোমেইনৰ সৈতে ডিভাইচ সংযুক্ত কৰা নাযাব"
#, c-format
msgid "cannot determine filesystem for '%s'"
msgstr "'%s' ৰ বাবে ফাইলচিস্টেম নিৰ্ধাৰণ কৰিব নোৱাৰি"
@@ -12590,9 +12538,6 @@ msgstr "প্ৰমাণপত্ৰ অবজেক্ট আৰম্ভ ক
msgid "cannot initialize condition variable"
msgstr "condition মান আৰম্ভ কৰিব নোৱাৰি"
msgid "cannot initialize inotify"
msgstr "ব্ৰিজ সমৰ্থন আৰম্ভ কৰোঁতে ব্যৰ্থ"
msgid ""
"cannot initialize libxenlight context, probably not running in a Xen Dom0, "
"disabling driver"
@@ -12717,9 +12662,6 @@ msgstr "macvtap tap ডিভাইচ %s খুলিবলৈ ব্যৰ্
msgid "cannot open path '%s'"
msgstr "পথ '%s' খোলোঁতে ব্যৰ্থ"
msgid "cannot open socket"
msgstr "ছকেট খুলিব নোৱাৰি"
#, c-format
msgid "cannot open volume '%s'"
msgstr "ভলিউম '%s' খোলোঁতে ব্যৰ্থ"
@@ -12905,10 +12847,6 @@ msgstr "vbd ফাইলৰ নাম বিশ্লষণ কৰোঁতে
msgid "cannot parse vendor id %s"
msgstr "vendor id %s বিশ্লেষণ কৰিব নোৱাৰি"
#, c-format
msgid "cannot parse version %s"
msgstr "%s পঢ়োঁতে ব্যৰ্থ"
#, c-format
msgid "cannot parse video heads '%s'"
msgstr "ভিডিও হেড '%s' বিশ্লেষণ কৰিবলৈ ব্যৰ্থ"
@@ -13011,10 +12949,6 @@ msgstr "হেডাৰ '%s' পঢ়োঁতে ব্যৰ্থ"
msgid "cannot read mount list '%s'"
msgstr "তুলি লোৱাৰ তালিকা '%s' পঢ়োঁতে ব্যৰ্থ"
#, c-format
msgid "cannot read reply %s"
msgstr "%s উত্তৰ পঢ়িবলৈ ব্যৰ্থ"
#, c-format
msgid "cannot receive data from volume %s"
msgstr "ভলিউম %s ৰ পৰা তথ্য প্ৰাপ্ত কৰিব নোৱাৰি"
@@ -13089,10 +13023,6 @@ msgstr "ফাইল '%s' আৰম্ভণি বিচাৰিব নোৱ
msgid "cannot seek to start of '%s'"
msgstr "'%s' ৰ আৰম্ভণিত সন্ধান কৰিব নোৱাৰি"
#, c-format
msgid "cannot send command %s"
msgstr "%s আদেশ পঠিয়াব নোৱাৰি"
#, c-format
msgid "cannot send data to volume %s"
msgstr "তথ্যক ভলিউম %s লে পঠাব নোৱাৰি"
@@ -13100,10 +13030,6 @@ msgstr "তথ্যক ভলিউম %s লে পঠাব নোৱাৰ
msgid "cannot send to netlink socket"
msgstr "netlink ছকেটলৈ পঠিয়াবলৈ ব্যৰ্থ"
#, c-format
msgid "cannot send too long command %s (%d bytes)"
msgstr "বৰ দীঘল আদেশ পঠিয়াব নোৱাৰি %s (%d bytes)"
#, c-format
msgid "cannot set CPU affinity on process %d"
msgstr "%d প্ৰক্ৰিয়াৰ বাবে CPU এফিনিটি নিৰ্ধাৰণ কৰিবলৈ ব্যৰ্থ"
@@ -13126,15 +13052,9 @@ msgstr "'%s' ফাইল ধৰণ নিৰ্ধাৰণ কৰোঁতে
msgid "cannot set file owner '%s'"
msgstr "'%s' ফাইলৰ গৰাকী নিৰ্ধাৰণ কৰোঁতে ব্যৰ্থ"
msgid "cannot set max memory lower than current memory"
msgstr "বৰ্তমান মেমৰিৰ তূলনাত সৰ্বাধিক মেমৰিৰ পৰিমাণ কম হ'ব নোৱাৰে"
msgid "cannot set memory higher than max memory"
msgstr "সৰ্বাধিক মেমৰিতকৈ অধিক পৰিমাণৰ মেমৰি নিৰ্ধাৰণ কৰা নাযাব"
msgid "cannot set memory of an active domain"
msgstr "সক্ৰিয় ডোমেইনৰ মেমৰি নিৰ্ধাৰণ কৰা নাযাব"
#, c-format
msgid "cannot set mode of '%s' to %04o"
msgstr "'%s' ৰ মোড %04o ৰূপে ধাৰ্য কৰা সম্ভৱ নহয়"
@@ -14137,9 +14057,6 @@ msgstr "dir"
msgid "direct migration"
msgstr "সৰাসৰি প্ৰব্ৰজন"
msgid "direct networking type not supported"
msgstr "প্ৰত্যক্ষ নেটৱাৰ্কিং ধৰণ সমৰ্থিত নহয়"
#, c-format
msgid ""
"direct setting of the vlan tag is not allowed for hostdev devices using %s "
@@ -14237,10 +14154,6 @@ msgstr "ডিস্ক event_idx কেৱল virtio বাচৰ বাবে
msgid "disk format %s is not supported"
msgstr "ডিস্ক বিন্যাস %s সমৰ্থিত নহয়"
#, c-format
msgid "disk format '%s' lacks backing file support"
msgstr "ডিস্ক বিন্যাস '%s' ত ফাইল সমৰ্থন বেকিং নাই"
msgid "disk ioeventfd mode supported only for virtio bus"
msgstr "ডিস্ক ioeventfd অৱস্থা কেৱল virtio বাচৰ বাবে সমৰ্থিত"
@@ -15107,17 +15020,6 @@ msgstr "পুল %s ক autostarted হিচাপে চিহ্নিত
msgid "failed to move file to %s "
msgstr "ফাইলক %s লে স্থানান্তৰ কৰিবলে ব্যৰ্থ"
#, c-format
msgid "failed to open %s for reading"
msgstr "পঢ়াৰ বাবে %s খোলোঁতে বিফল"
#, c-format
msgid "failed to open chardev file: %s"
msgstr "chardev ফাইল খোলিবলে ব্যৰ্থ: %s"
msgid "failed to open configuration file for reading"
msgstr "পঢ়াৰ বাবে বিনেস ফাইল খোলোঁতে বিফল"
msgid "failed to open file"
msgstr "ফাইল খোলোঁতে ব্যৰ্থ"
@@ -15199,10 +15101,6 @@ msgstr "libxl হেডাৰ পঢ়িবলে ব্যৰ্থ"
msgid "failed to read metadata length in '%s'"
msgstr "'%s' ত মতাডাতাৰ দৈৰ্ঘ্য পঢ়োঁতে ব্যৰ্থ"
#, c-format
msgid "failed to read pid: %s"
msgstr "পাইপ নিৰ্মাণ কৰোঁতে ব্যৰ্থ: %s"
msgid "failed to read qemu header"
msgstr "qemu হেডাৰ পঢ়োঁতে ব্যৰ্থ"
@@ -15601,10 +15499,6 @@ msgstr "প্ৰদান কৰা uuid XML uuid ৰ সৈতে মিল
msgid "got unexpected RPC call prog %d vers %d proc %d type %d"
msgstr "অপ্ৰত্যাশিত RPC কল prog %d vers %d proc %d type %d প্ৰাপ্ত হল"
#, c-format
msgid "got unknown HTTP error code %d"
msgstr "অজ্ঞাত HTTP ভুলৰ কোড পোৱা গ'ল %d"
msgid "gracefully shutdown a domain"
msgstr "সঠিক পদ্ধতিতে ডোমেইন বন্ধ কৰক"
@@ -15704,9 +15598,6 @@ msgstr "hostdev অবৈধ গোপন ধৰণ '%s'"
msgid "hostdev mode '%s' not supported"
msgstr "hostdev মোড '%s' সমৰ্থিত নহয়"
msgid "hostdev networking type not supported"
msgstr "hostdev নেটৱাৰ্কিং ধৰণ সমৰ্থিত নহয়"
#, c-format
msgid "hostdev subsys type '%s' not supported"
msgstr "hostdev subsys ৰ ধৰণ '%s' সমৰ্থিত নহয়"
@@ -15785,10 +15676,6 @@ msgstr "যদি উপলব্ধ সংযোগ URl ত পাছৱৰ্
msgid "incomplete metadata in '%s'"
msgstr "'%s' ত মেটাডাটা অসম্পূৰ্ণ"
#, c-format
msgid "incomplete reply %s"
msgstr "অসম্পূৰ্ণ উত্তৰ %s"
msgid "incomplete return information"
msgstr "অসম্পূৰ্ণ ঘুৰাই দিয়া তথ্য"
@@ -15871,9 +15758,6 @@ msgstr "আন্তঃপৃষ্ঠ নাম %s বাফাৰত খাপ
msgid "interface name or MAC address"
msgstr "সংযোগমাধ্যমৰ নাম বা MAC ঠিকনা"
msgid "interface script execution not supported by this driver"
msgstr "আন্তঃপৃষ্ঠ স্ক্ৰিপ্ট এক্সিকিউষণ এই ড্ৰাইভাৰ দ্বাৰা সমৰ্থিত নহয়"
msgid "interface stats not implemented on this platform"
msgstr "এই প্লেটফৰ্মত আন্তঃপৃষ্ঠ পৰিসংখ্যা প্ৰণয়ন কৰা হোৱা নাই"
@@ -15891,9 +15775,6 @@ msgstr "অভ্যন্তৰীক ত্ৰুটি: %s"
msgid "internal error: bad options in command: '%s'"
msgstr "অভ্যান্তৰীক ত্ৰুটি: কমান্ড: '%s' ত বেয়া বিকল্পসমূহ"
msgid "internal networking type not supported"
msgstr "অভ্যান্তৰীণ প্ৰকৃতিৰ নে'টৱৰ্ক সমৰ্থিত নহয়"
#, c-format
msgid "internal snapshot for disk %s unsupported for storage type %s"
msgstr "ডিস্ক %s ৰ বাবে অভ্যন্তৰীক স্নেপশ্বট সংৰক্ষণ ধৰণ %s ৰ বাবে অসমৰ্থিত"
@@ -16263,10 +16144,6 @@ msgstr "অবৈধ ন'ড মেমৰি মান"
msgid "invalid path %s not assigned to domain"
msgstr "ডমেইনলে অবৈধ পথ %s ধাৰ্য্য কৰা হোৱা নাই"
#, c-format
msgid "invalid path '%s'"
msgstr "অবৈধ পথ '%s'"
#, c-format
msgid "invalid path, '%s' is not a known interface"
msgstr "পথ বৈধ নহয়, '%s' পৰিচিত সংযোগ মাধ্যম নহয়"
@@ -16488,13 +16365,6 @@ msgstr "libhal_get_all_devices ব্যৰ্থ হল"
msgid "libnl was not available at build time"
msgstr "libnl নিৰ্মাণ সময়ত উপলব্ধ নাছিল"
#, c-format
msgid "library call %s failed, possibly not supported"
msgstr "library call %s বিফল, হয়তো সমৰ্থিত নহয়"
msgid "library call failed, possibly not supported"
msgstr "library call বিফল, হয়তো সমৰ্থিত নহয়"
msgid "libselinux does not support LXC contexts path"
msgstr "libselinux এ LXC পৰিপ্ৰেক্ষতিত পথ সমৰ্থন নকৰে"
@@ -17990,9 +17860,6 @@ msgstr "কোনো internalFlags সমৰ্থন নাই"
msgid "no job is active on the domain"
msgstr "ডোমেইনত কোনো সক্ৰিয় কাৰ্য্য নাই"
msgid "no kernel specified"
msgstr "কোনো কাৰ্ণেল নিৰ্ধাৰণ কৰা হোৱা নাই"
msgid "no large enough free extent"
msgstr "পৰ্যাপ্ত মুক্ত extent নাই"
@@ -18261,9 +18128,6 @@ msgstr "ঠিক আছে"
msgid "online commit not supported with this QEMU binary"
msgstr "এই QEMU বাইনাৰিৰ সৈতে অনলাইন commit সমৰ্থিত নহয়"
msgid "only TCP listen is supported for chr device"
msgstr "কেৰেক্টাৰ ডিভাইচৰ বাবে স্থান বিতৰণ কৰোঁতে ব্যৰ্থ"
msgid "only a single TPM device is supported"
msgstr "কেৱল এটা TPM ডিভাইচ সমৰ্থিত"
@@ -19248,9 +19112,6 @@ msgstr "বন্ধ"
msgid "shutdown"
msgstr "বন্ধ কৰক"
msgid "shutdown operation failed"
msgstr "বন্ধ কৰাৰ কাৰ্য্য বিফল"
msgid "shutting down"
msgstr "বন্ধ কৰা হৈছে"
@@ -19904,12 +19765,6 @@ msgstr "udev_monitor_new_from_netlink এ NULL ঘুৰাই দিলে"
msgid "uid and gid should be mapped both"
msgstr "uid আৰু gid দুয়োটা মেপ কৰিব লাগিব"
msgid "uml state driver is not active"
msgstr "uml state চালক সক্ৰিয় নহয়"
msgid "umlStartup: out of memory"
msgstr "umlStartup: মেমৰি অৱশিষ্ট নাই"
#, c-format
msgid "unable to access device %s\n"
msgstr "ডিভাইচ %s অভিগম কৰিবলে অক্ষম\n"
@@ -20244,14 +20099,6 @@ msgstr "অপ্ৰত্যাশিত QEMU URI পথ '%s', qemu:///session
msgid "unexpected QEMU URI path '%s', try qemu:///system"
msgstr "অপ্ৰত্যাশিত QEMU URI পথ '%s', qemu:///system প্ৰচেষ্টা কৰক"
#, c-format
msgid "unexpected UML URI path '%s', try uml:///session"
msgstr "অপ্ৰত্যাশিত UML URI পথ '%s', uml:///session প্ৰচেষ্টা কৰক"
#, c-format
msgid "unexpected UML URI path '%s', try uml:///system"
msgstr "অপ্ৰত্যাশিত UML URI পথ '%s', uml:///system প্ৰচেষ্টা কৰক"
#, c-format
msgid ""
"unexpected VMware URI path '%s', try vmwareplayer:///session, vmwarews:///"
@@ -21341,10 +21188,6 @@ msgstr "অনুমোদন প্ৰণালী সমৰ্থিত নহ
msgid "unsupported chardev '%s'"
msgstr "অসমৰ্থিত chardev '%s'"
#, c-format
msgid "unsupported chr device type %d"
msgstr "অসমৰ্থিত chr ডিভাইচৰ ধৰণ %d"
#, c-format
msgid "unsupported chr device type '%s'"
msgstr "অসমৰ্থিত chr ডিভাইচ ধৰণ '%s'"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: Asturian\n"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: Baluchi\n"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: Belarusian\n"

View File

@@ -1,5 +1,5 @@
# Libvirt package strings.
# Copyright (C) 2018 Red Hat, Inc.
# Copyright (C) 2019 Red Hat, Inc.
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: 2015-02-26 07:16+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Bulgarian (http://www.transifex.com/projects/p/fedora/"
@@ -778,13 +778,6 @@ msgstr "неуспешно получаване версията на библи
msgid "failed to mark network %s as autostarted"
msgstr "Неуспешно маркиране на мрежата %s като авто-стартирана"
#, c-format
msgid "failed to open %s for reading"
msgstr "грешка при отваряне на конфигурационен файл %s за четене"
msgid "failed to open configuration file for reading"
msgstr "грешка при отваряне на конфигурационния файл за четене"
msgid "failed to open file"
msgstr "неуспешно отваряне на файл"
@@ -844,10 +837,6 @@ msgstr "извличане състоянието на мрежов интерф
msgid "getting time of day"
msgstr "вземане на времето"
#, c-format
msgid "got unknown HTTP error code %d"
msgstr "получен бе непознат HTTP код на грешка %d"
msgid "gracefully shutdown a domain"
msgstr "внимателно изключване на домейн"
@@ -884,14 +873,6 @@ msgstr "невалиден мрежов указател за връзка в"
msgid "invalid network pointer in %s"
msgstr "невалиден мрежов указател за връзка в %s"
#, c-format
msgid "library call %s failed, possibly not supported"
msgstr ""
"неуспешно извикване на библиотечната функция %s, може би не се поддържа"
msgid "library call failed, possibly not supported"
msgstr "неуспешно извикване на библиотечна функция, може би не се поддържа"
msgid "list domains"
msgstr "показване на домейните"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.3.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: 2018-04-24 06:13+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Bengali (http://www.transifex.com/projects/p/fedora/language/"

View File

@@ -1,5 +1,5 @@
# Libvirt package strings.
# Copyright (C) 2018 Red Hat, Inc.
# Copyright (C) 2019 Red Hat, Inc.
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: 2015-02-26 07:10+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Bengali (India) (http://www.transifex.com/projects/p/libvirt/"
@@ -534,10 +534,6 @@ msgstr "চলমান %s হাইপার-ভাইসরের সংস্
msgid "Cannot find CPU model with PVR 0x%08x"
msgstr "CPU মডেল PVR 0x%08x সমেত খুঁজে পাওয়া যাবে না"
#, c-format
msgid "Cannot find UML kernel %s"
msgstr "UML কার্নেল %s অনুসন্ধান করতে ব্যর্থ"
#, c-format
msgid "Cannot find security driver '%s'"
msgstr "নিরাপত্তা ড্রাইভার '%s' খুঁজে পাওয়া যাচ্ছে না"
@@ -671,10 +667,6 @@ msgid ""
msgstr ""
"spicevmc থেকে/এ ডিভাইস ধরন পরিবর্তন ডিফল্ট টার্গেট চ্যানেল নাম পরিবর্তন করবে"
#, c-format
msgid "Command %s too long for destination"
msgstr "গন্তব্যের ক্ষেত্রে কমান্ড %s অত্যাধিক লম্বা"
msgid "Compute baseline CPU for a set of given CPUs."
msgstr "সুনির্দিষ্ট CPU-র সংকলনের জন্য CPU বেস-লাইন গণনা করুন।"
@@ -2400,9 +2392,6 @@ msgstr "N/A"
msgid "NULL NetworkDef"
msgstr "NULL NetworkDef"
msgid "NULL or empty path"
msgstr "NULL অথবা পাথ ফাঁকা"
msgid "NUMA cell number"
msgstr "NUMA সেল সংখ্যা:"
@@ -2468,10 +2457,6 @@ msgstr "নেটওয়ার্ক '%s' পূর্বেই সক্রি
msgid "Network '%s' is still running"
msgstr "নেটওয়ার্ক '%s' এখনো সক্রিয়"
#, c-format
msgid "Network '%s' not found"
msgstr "নেটওয়ার্ক '%s' পাওয়া যায়নি"
#, c-format
msgid "Network config filename '%s' does not match network name '%s'"
msgstr ""
@@ -3056,12 +3041,6 @@ msgstr "সিস্টেম সংক্রান্ত সমস্যা"
msgid "System lacks NETNS support"
msgstr "সিস্টেমের মধ্যে NETNS সমর্থন অনুপস্থিত"
msgid "TCP client networking type not supported"
msgstr "TCP ক্লায়েন্ট প্রকৃতির নেটওয়ার্ক সমর্থিত নয়"
msgid "TCP server networking type not supported"
msgstr "TCP সার্ভার প্রকৃতির নেটওয়ার্ক সমর্থিত নয়"
msgid "Target"
msgstr "টার্গেট"
@@ -3443,9 +3422,6 @@ msgstr "ডোমেইন বর্তমানে সক্রিয় নয়"
msgid "This host is not managed by a vCenter"
msgstr "এই হোস্ট একটি vCenter দ্বারা পরিচালিত নয়"
msgid "This type of device cannot be hot unplugged"
msgstr "এই ধরনের ডিভাইস হট-আনপ্লাগ করা সম্ভব নয়"
msgid "Thread(s) per core:"
msgstr "প্রতি কোরে থ্রেড সংখ্যা:"
@@ -3571,9 +3547,6 @@ msgstr "%s PCI ডিভাইস পুনরায় নির্ধারণ
msgid "Unable to send container continue message"
msgstr "ধারণকারীর উদ্দেশ্যে কর্মে এগিয়ে যাওয়ার বার্তা পাঠাতে ব্যর্থ"
msgid "Unable to set VM logfile close-on-exec flag"
msgstr "VM লগ-ফাইল সংক্রান্ত close-on-exec ফ্ল্যাগ নির্ধারণ করতে ব্যর্থ"
msgid "Unable to set monitor close-on-exec flag"
msgstr "মনিটর সংক্রান্ত close-on-exec ফ্ল্যাগের মান নির্ধারণ করতে ব্যর্থ"
@@ -3614,10 +3587,6 @@ msgstr "অপ্রত্যাশিত ডিস্ক sgio মোড '%d'"
msgid "Unexpected hostdev mode %d"
msgstr "অপ্রত্যাশিত hostdev মোড %d"
#, c-format
msgid "Unix path %s too long for destination"
msgstr "গন্তব্যের ক্ষেত্রে Unix পাথ %s অত্যাধিক লম্বা"
msgid "Unknown"
msgstr "অজানা"
@@ -4054,15 +4023,9 @@ msgstr "কর্মের mutex প্রাপ্ত করতে ব্যর
msgid "cannot acquire state change lock"
msgstr "অবস্থা পরিবর্তনের লক প্রাপ্ত করতে ব্যর্থ"
msgid "cannot attach device on inactive domain"
msgstr "নিষ্ক্রিয় ডোমেইনের সাথে ডিভাইস সংযুক্ত করা যাবে না"
msgid "cannot become session leader"
msgstr "সেশানের অধিকর্তা হতে ব্যর্থ"
msgid "cannot bind socket"
msgstr "সকেট বাইন্ড করতে ব্যর্থ"
msgid "cannot block signals"
msgstr "সিগন্যাল ব্লক করা সম্ভব নয়"
@@ -4145,9 +4108,6 @@ msgstr "পাইপ নির্মাণ করতে ব্যর্থ"
msgid "cannot decode CPU data for %s architecture"
msgstr "%s আর্কিটেকচারের জন্য CPU-র জন্য ডি-কোড করা সম্ভব নয়"
msgid "cannot detach device on inactive domain"
msgstr "নিষ্ক্রিয় ডোমেইন থেকে ডিভাইস বিচ্ছিন্ন করা সম্ভব নয়"
#, c-format
msgid "cannot disable %s"
msgstr "%s নিষ্ক্রিয় করতে ব্যর্থ"
@@ -4270,9 +4230,6 @@ msgstr "vCPU স্থাপনাও ও pCPU-র সময় প্রাপ্
msgid "cannot initialize condition variable"
msgstr "কন্ডিশন ভেরিয়েবল আরম্ভ করতে ব্যর্থ"
msgid "cannot initialize inotify"
msgstr "inotify আরম্ভ করতে ব্যর্থ"
msgid "cannot initialize monitor condition"
msgstr "মনিটর কন্ডিশন আরম্ভ করতে ব্যর্থ"
@@ -4308,9 +4265,6 @@ msgstr "macvtap tap ডিভাইস %s খুলতে ব্যর্থ"
msgid "cannot open path '%s'"
msgstr "পাথ '%s' খুলতে ব্যর্থ"
msgid "cannot open socket"
msgstr "সকেট খুলতে ব্যর্থ: %s"
#, c-format
msgid "cannot open volume '%s'"
msgstr "ভলিউম '%s' খুলতে ব্যর্থ"
@@ -4446,10 +4400,6 @@ msgstr "vbd ফাইলের নাম পার্স করতে ব্য
msgid "cannot parse vendor id %s"
msgstr "বিক্রেতার id %s পার্স করতে ব্যর্থ"
#, c-format
msgid "cannot parse version %s"
msgstr "%s সংস্করণ পার্স করতে ব্যর্থ"
#, c-format
msgid "cannot parse video heads '%s'"
msgstr "ভিডিও হেড '%s' পার্স করতে ব্যর্থ"
@@ -4527,10 +4477,6 @@ msgstr "হেডার '%s' পড়তে ব্যর্থ"
msgid "cannot read mount list '%s'"
msgstr "মাউন্টের তালিকা '%s' পড়তে ব্যর্থ"
#, c-format
msgid "cannot read reply %s"
msgstr "%s-র উত্তর দিতে ব্যর্থ"
msgid "cannot register file watch on stream"
msgstr "স্ট্রিমের মধ্যে ফাইল ওয়াচ নিবন্ধন করা সম্ভব নয়"
@@ -4557,17 +4503,9 @@ msgstr "%s ড্রাইভার লিংক মীমাংসা করত
msgid "cannot seek to beginning of file '%s'"
msgstr "'%s' ফাইলের প্রারম্ভে অনুসন্ধান করতে ব্যর্থ"
#, c-format
msgid "cannot send command %s"
msgstr "কমান্ড %s পাঠাতে ব্যর্থ"
msgid "cannot send to netlink socket"
msgstr "netlink সকেটে পাঠাতে ব্যর্থ"
#, c-format
msgid "cannot send too long command %s (%d bytes)"
msgstr "অত্যাধিক লম্বা কমান্ড %s (%d বাইট) পাঠানো সম্ভব নয়"
#, c-format
msgid "cannot set CPU affinity on process %d"
msgstr "%d প্রসসের জন্য CPU অ্যাফিনিটি নির্ধারণ করতে ব্যর্থ"
@@ -4591,16 +4529,9 @@ msgstr "'%s' ফাইল মোড নির্ধারণ করতে ব্
msgid "cannot set file owner '%s'"
msgstr "'%s' ফাইলের মালিকানা নির্ধারণ করতে ব্যর্থ"
msgid "cannot set max memory lower than current memory"
msgstr ""
"সর্বাধিক মেমরির পরিমাণ বর্তমান মেমরির তূলনায় কম পরিমাণে নির্ধারণ করা যাবে না"
msgid "cannot set memory higher than max memory"
msgstr "সর্বাধিক মেমরির পরিমাণের তূলনায় অধিক পরিমাণে মেমরি নির্ধারণ করা যাবে না"
msgid "cannot set memory of an active domain"
msgstr "সক্রিয় ডোমেইনের মেমরি নির্ধারণ করা যাবে না"
#, c-format
msgid "cannot set mode of '%s' to %04o"
msgstr "'%s'-র মোড %04o রূপে ধার্য করা সম্ভব নয়"
@@ -5356,13 +5287,6 @@ msgstr "নেটওয়ার্ক %s, স্বয়ং প্রারম্ভ
msgid "failed to mark pool %s as autostarted"
msgstr "পুল %s, স্বয়ং প্রারম্ভকারী রূপে চিহ্নিত করতে ব্যর্থ"
#, c-format
msgid "failed to open %s for reading"
msgstr "পড়ার উদ্দেশ্যে %s খুলতে ব্যর্থ"
msgid "failed to open configuration file for reading"
msgstr "পড়ার উদ্দেশ্যে কনফিগারেশন ফাইল খুলতে ব্যর্থ"
msgid "failed to open file"
msgstr "ফাইল খুলতে ব্যর্থ"
@@ -5390,10 +5314,6 @@ msgstr "কনফিগারেশন ফাইল %s পড়তে ব্যর
msgid "failed to read metadata length in '%s'"
msgstr "'%s'-র মধ্যে মিটাডাটার দৈর্ঘ্য পড়তে ব্যর্থ"
#, c-format
msgid "failed to read pid: %s"
msgstr "pid পড়তে ব্যর্থ: %s"
msgid "failed to read qemu header"
msgstr "qemu হেডার পড়তে ব্যর্থ"
@@ -5533,10 +5453,6 @@ msgstr "ডোমেইনের জন্যা নেটওয়ার্ক ই
msgid "getting time of day"
msgstr "দিনের বর্তমান সময় সংগ্রহ"
#, c-format
msgid "got unknown HTTP error code %d"
msgstr "অজানা HTTP ত্রুটির কোড %d প্রাপ্ত"
msgid "gracefully shutdown a domain"
msgstr "সঠিক পদ্ধতিতে ডোমেইন বন্ধ করুন"
@@ -5615,10 +5531,6 @@ msgstr "নিষ্ক্রিয়"
msgid "include security sensitive information in XML dump"
msgstr "XML ডাম্পের মধ্যে নিরাপত্তা সংক্রান্ত সংবেদনশীল তথ্য অন্তর্ভুক্ত করা হবে"
#, c-format
msgid "incomplete reply %s"
msgstr "অসম্পূর্ণ উত্তর %s"
#, c-format
msgid "incomplete save header in '%s'"
msgstr "'%s'-র মধ্যে সংরক্ষণের অসম্পূর্ণ হেডার"
@@ -5664,9 +5576,6 @@ msgstr "ইন্টারফেসের নাম অথবা MAC ঠিক
msgid "internal error"
msgstr "অভ্যন্তরীণ ত্রুটি"
msgid "internal networking type not supported"
msgstr "অভ্যান্তরীণ প্রকৃতির নেটওয়ার্ক সমর্থিত নয়"
#, c-format
msgid "invalid \"trunk='%s'\" in <vlan> - must be yes or no"
msgstr "\"trunk='%s'\" <vlan> এ অবৈধ - অবশ্যই হ্যাঁ বা না হতে হবে"
@@ -6004,13 +5913,6 @@ msgstr "লেবেল ওভার-রাইডের ক্ষেত্রে
msgid "length of metadata out of range"
msgstr "মিটা-ডাটার দৈর্ঘ্য সীমা বহির্ভূত"
#, c-format
msgid "library call %s failed, possibly not supported"
msgstr "লাইব্রেরি কল %s বিফল, সম্ভবত সমর্থিত নয়"
msgid "library call failed, possibly not supported"
msgstr "লাইব্রেরি কল বিফল, সম্ভবত সমর্থিত নয়"
msgid "list devices in a tree"
msgstr "ট্রি রূপে ডিভাইসের তালিকা প্রদর্শন করা হবে"
@@ -6740,9 +6642,6 @@ msgstr "কোনো এক্সটেন্ডেড পার্টিশন
msgid "no job is active on the domain"
msgstr "ডোমেইনের মধ্যে কোনো সক্রিয় কাজ উপস্থিত নেই"
msgid "no kernel specified"
msgstr "কোনো কার্নেল উল্লিখিত হয়নি"
msgid "no large enough free extent"
msgstr "পর্যাপ্ত স্থানবিশিষ্ট ফাঁকা এক্সটেন্ট অনুপস্থিত"
@@ -6854,9 +6753,6 @@ msgstr "VMX বিন্যাসের সংখ্যা অনুমোদি
msgid "offline"
msgstr "অফ-লাইন"
msgid "only TCP listen is supported for chr device"
msgstr "chr ডিভাইসের জন্য শুধুমাত্র TCP listen সমর্থিত"
msgid "only a single TPM device is supported"
msgstr "শুধুমাত্র একটি TPM ডিভাইস সমর্থিত হবে"
@@ -7181,9 +7077,6 @@ msgstr "সময় নির্ধারণকারী সংক্রান্
msgid "shut off"
msgstr "বন্ধ"
msgid "shutdown operation failed"
msgstr "বন্ধ করার কর্ম বিফল"
msgid "size > maximum buffer size"
msgstr "মাপ > বাফারের সর্বাধিক মাপ"
@@ -7504,12 +7397,6 @@ msgstr "পুলের ধরন"
msgid "uid and gid should be mapped both"
msgstr "uid এবং gid এর উভয়ই ম্যাপ করা উচিত"
msgid "uml state driver is not active"
msgstr "uml state ড্রাইভার সক্রিয় নয়"
msgid "umlStartup: out of memory"
msgstr "umlStartup: মেমরি অবশিষ্ট নেই"
#, c-format
msgid "unable to create hugepage path %s"
msgstr "hugepage পাথ %s নির্মাণ করতে ব্যর্থ"
@@ -7625,14 +7512,6 @@ msgstr "অপ্রত্যাশিত QEMU URI পাথ '%s', qemu:///sessi
msgid "unexpected QEMU URI path '%s', try qemu:///system"
msgstr "অপ্রত্যাশিত QEMU URI পাথ '%s', qemu:///system প্রচেষ্টা করুন"
#, c-format
msgid "unexpected UML URI path '%s', try uml:///session"
msgstr "অপ্রত্যাশিত UML URI পাথ '%s', uml:///session প্রচেষ্টা করুন"
#, c-format
msgid "unexpected UML URI path '%s', try uml:///system"
msgstr "অপ্রত্যাশিত UML URI পাথ '%s', uml:///system প্রচেষ্টা করুন"
#, c-format
msgid "unexpected accessmode %d"
msgstr "অপ্রত্যাশিত accessmode %d"
@@ -8445,10 +8324,6 @@ msgstr "অসমর্থিত ঠিকানা ধরন '%s' %s নেট
msgid "unsupported authentication type %d"
msgstr "অনুমোদন প্রণালী সমর্থিত নয় %d"
#, c-format
msgid "unsupported chr device type %d"
msgstr "অসমর্থিত chr ডিভাইসের ধরন %d"
#, c-format
msgid "unsupported clock offset '%s'"
msgstr "ঘড়ির offset '%s' সমর্থিত নয়"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: Tibetan\n"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: Breton\n"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: Bodo\n"

View File

@@ -1,5 +1,5 @@
# Libvirt package strings.
# Copyright (C) 2018 Red Hat, Inc.
# Copyright (C) 2019 Red Hat, Inc.
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+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/"
@@ -480,13 +480,6 @@ msgstr "dohvaćanje hypervisor verzije nije uspjelo"
msgid "failed to get the library version"
msgstr "dohvaćanje verzije biblioteke nije uspjelo"
#, c-format
msgid "failed to open %s for reading"
msgstr "otvaranje %s za čitanje nije uspjelo"
msgid "failed to open configuration file for reading"
msgstr "otvaranje konfiguracijske datoteke za čitanje nije uspjelo"
msgid "failed to open file"
msgstr "otvaranje datoteke nije uspjelo"
@@ -524,10 +517,6 @@ msgstr "zapisivanje konfiguracijske datoteke %s nije uspjelo"
msgid "getting time of day"
msgstr "dohvaćanje vremena dana"
#, c-format
msgid "got unknown HTTP error code %d"
msgstr "dobiven je nepoznat broj HTTP pogreške %d"
msgid "gracefully shutdown a domain"
msgstr "dostojanstveno ugasi domenu"
@@ -554,13 +543,6 @@ msgstr "neispravan pokazivač domene pri"
msgid "invalid domain pointer in %s"
msgstr "neispravan pokazivač domene pri %s"
#, c-format
msgid "library call %s failed, possibly not supported"
msgstr "pozivanje biblioteke %s nije uspjelo, možda nije podržano"
msgid "library call failed, possibly not supported"
msgstr "pozivanje biblioteke nije uspjelo, možda nije podržano"
msgid "list domains"
msgstr "ispiši domene"

View File

@@ -1,5 +1,5 @@
# Libvirt package strings.
# Copyright (C) 2018 Red Hat, Inc.
# Copyright (C) 2019 Red Hat, Inc.
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
@@ -13,7 +13,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+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/"
@@ -553,10 +553,6 @@ msgstr "S'ha iniciat la xarxa %s\n"
msgid "Network %s unmarked as autostarted\n"
msgstr "S'ha desmarcat la xarxa %s com a autoiniciada\n"
#, c-format
msgid "Network '%s' not found"
msgstr "No s'ha trobat la xarxa '%s'"
#, c-format
msgid "Network config filename '%s' does not match network name '%s'"
msgstr ""
@@ -1052,13 +1048,6 @@ msgstr "no s'ha pogut obtenir la versió de la biblioteca"
msgid "failed to mark network %s as autostarted"
msgstr "no s'ha pogut marcar la xarxa %s com a autoiniciada"
#, c-format
msgid "failed to open %s for reading"
msgstr "no s'ha pogut obrir %s per a llegir"
msgid "failed to open configuration file for reading"
msgstr "no s'ha pogut obrir el fitxer de configuració per a llegir"
msgid "failed to open file"
msgstr "no s'ha pogut obrir el fitxer"
@@ -1118,10 +1107,6 @@ msgstr "obté les estadístiques d'una interfície de xarxa referits a un domini
msgid "getting time of day"
msgstr "obtenció de la data i hora"
#, c-format
msgid "got unknown HTTP error code %d"
msgstr "s'ha rebut un codi d'error HTTP %d desconegut"
msgid "gracefully shutdown a domain"
msgstr "apaga un domini"
@@ -1158,13 +1143,6 @@ msgstr "punter de xarxa invàlid a"
msgid "invalid network pointer in %s"
msgstr "punter de xarxa invàlid a %s"
#, c-format
msgid "library call %s failed, possibly not supported"
msgstr "ha fallat la crida %s a la biblioteca, potser no està disponible"
msgid "library call failed, possibly not supported"
msgstr "ha fallat la crida a la biblioteca, potser no està disponible"
msgid "list domains"
msgstr "llista els dominis"

View File

@@ -1,5 +1,5 @@
# Libvirt package strings.
# Copyright (C) 2018 Red Hat, Inc.
# Copyright (C) 2019 Red Hat, Inc.
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
@@ -12,8 +12,8 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"PO-Revision-Date: 2018-11-27 07:08+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: 2018-12-26 03:58+0000\n"
"Last-Translator: Pavel Borecki <pavel.borecki@gmail.com>\n"
"Language-Team: Czech (http://www.transifex.com/projects/p/fedora/language/"
"cs/)\n"
@@ -147,6 +147,14 @@ msgstr "%s: selhal zápis do log souboru: %s"
msgid "%s: initialization failed\n"
msgstr "%s: inicializace selhala\n"
#, c-format
msgid "%s: invalid option -- '%c'\n"
msgstr "%s: neplatná volba -- „%c“\n"
#, c-format
msgid "%s: option '%s%s' doesn't allow an argument\n"
msgstr "%s: volba „%s%s“ neumožňuje argument\n"
#, c-format
msgid "%s: option '%s%s' is ambiguous\n"
msgstr "%s: volba „%s%s“ není jednoznačná\n"
@@ -155,6 +163,14 @@ msgstr "%s: volba „%s%s“ není jednoznačná\n"
msgid "%s: option '%s%s' is ambiguous; possibilities:"
msgstr "%s: volba „%s%s“ není jednoznačná; možnosti:"
#, c-format
msgid "%s: option '%s%s' requires an argument\n"
msgstr "%s: volba „%s%s“ vyžaduje argument\n"
#, c-format
msgid "%s: option requires an argument -- '%c'\n"
msgstr "%s: volba vyžaduje argument -- „%c“\n"
#, c-format
msgid ""
"%s: temporary filename contains shell meta or other unacceptable characters "
@@ -171,10 +187,18 @@ msgstr "%s: nerozpoznaná volba „%s%s“\n"
msgid "%s: warning: %s%c"
msgstr "%s: varování: %s%c"
#, c-format
msgid "'%s' denied access"
msgstr "„%s“ odepřelo přístup"
#, c-format
msgid "'%s' does not exist"
msgstr "'%s' neexistuje"
#, c-format
msgid "'%s' is not a suitable bridge helper"
msgstr "„%s“ není použitelné pomocné pro most"
msgid "(none)"
msgstr "(žádný)"
@@ -204,6 +228,12 @@ msgstr "Alokace"
msgid "Allocation:"
msgstr "Alokace:"
msgid "Argument buffer too small"
msgstr "Vyrovnávací paměť je příliš malá"
msgid "At least one PTY console is required"
msgstr "Je vyžadována alespoň jedna PTY konzole"
msgid "Attach device from an XML <file>."
msgstr "Připojit zařízení z XML <souboru>."
@@ -232,6 +262,9 @@ msgstr "Dostupný:"
msgid "Bad $%s value."
msgstr "Chybná hodnota $%s."
msgid "Bad value for ai_flags"
msgstr "Chybná hodnota pro ai_flags"
msgid "Build a given pool."
msgstr "Sestav dané úložiště."
@@ -296,6 +329,10 @@ msgstr "Nelze alokovat paměť"
msgid "Can't read %s"
msgstr "Nelze číst %s"
#, c-format
msgid "Cannot create %s"
msgstr "Nedaří se vytvořit %s"
msgid "Cannot create /dev/pts"
msgstr "Nelze vytvořit /dev/pts"
@@ -310,6 +347,10 @@ msgstr "Nelze deaktivovat automatický start úložiště"
msgid "Cannot extract running %s hypervisor version\n"
msgstr "Nelze získat verzi běžícího %s hypervizora\n"
#, c-format
msgid "Cannot find security driver '%s'"
msgstr "Nedaří se nalézt ovladač zabezpečení „%s“"
msgid "Cannot open /dev/urandom"
msgstr "Nelze otevřít /dev/urandom"
@@ -351,6 +392,9 @@ msgstr "Kapacita"
msgid "Capacity:"
msgstr "Kapacita:"
msgid "Ceph usage specified, but name is missing"
msgstr "Zadáno použití ceph, ale chybí název"
msgid "Change the current directory."
msgstr "Změnit aktuální pracovní adresář."
@@ -477,6 +521,14 @@ msgstr "Nepodařilo se najít odpovídající zařízení"
msgid "Could not find parent device for '%s'"
msgstr "Nelze najít nadřazené rozhraní pro '%s'"
#, c-format
msgid "Could not find typefile '%s'"
msgstr "Nedaří se nalézt typ souboru „%s“"
#, c-format
msgid "Could not find value for variable '%s'"
msgstr "Nedaří se najít hodnotu pro proměnnou „%s“"
msgid "Could not get name of virtual machine"
msgstr "Nepodařilo se získat jméno virtualního stroje"
@@ -624,6 +676,10 @@ msgstr "Zařízení %s bylo znovu připojeno\n"
msgid "Device %s reset\n"
msgstr "Reset zařízení %s\n"
#, c-format
msgid "Device '%s' is unrecognized, requires build"
msgstr "Zařízení „%s“ není rozpoznáno, vyžaduje sestavení"
msgid "Device attached successfully\n"
msgstr "Zařízení bylo úspěšně připojeno\n"
@@ -633,6 +689,10 @@ msgstr "Zařízení bylo úspěšně odpojeno\n"
msgid "Device is not a fibre channel HBA"
msgstr "Zařízení není fibre channel HBA"
#, c-format
msgid "Device type '%s' is not an integer"
msgstr "Typ zařízení „%s“ není celé kladné číslo"
msgid "Device updated successfully\n"
msgstr "Zařízení aktualizováno\n"
@@ -1019,6 +1079,10 @@ msgstr "Selhalo otevření '%s'"
msgid "Failed to open file '%s'"
msgstr "Selhalo otevření souboru '%s'"
#, c-format
msgid "Failed to open storage volume with path '%s'"
msgstr "Nepodařilo se otevřít svazek úložiště s popisem umístění „%s“"
#, c-format
msgid "Failed to open tty %s"
msgstr "Selhalo otevření tty %s"
@@ -1229,6 +1293,10 @@ msgstr "Rozhraní bylo úspěšně odpojeno\n"
msgid "Interrupted by a signal"
msgstr "Přerušeno signálem"
#, c-format
msgid "Invalid CIDR address: '%s'"
msgstr "neplatná CIDR adresa: „%s“"
msgid "Invalid CPU feature name"
msgstr "Neplatné jméno vlastnosti CPU"
@@ -1242,6 +1310,9 @@ msgstr "Neplatný řetezec výrobce CPU '%s'"
msgid "Invalid argument"
msgstr "Neplatný argument"
msgid "Invalid back reference"
msgstr "Neplatná zpětná reference"
msgid "Invalid base64 data"
msgstr "Neplatná data base64"
@@ -1259,6 +1330,12 @@ msgstr "Neplatné volaní"
msgid "Invalid certificate"
msgstr "Neplatný certifikát"
msgid "Invalid character class name"
msgstr "Neplatný název třídy znaku"
msgid "Invalid content of \\{\\}"
msgstr "Neplatný obsah \\{\\}"
#, c-format
msgid "Invalid floppy device name: %s"
msgstr "Neplatné jméno disketové mechaniky: %s"
@@ -1278,10 +1355,19 @@ msgstr "Neplatné číslo portu: %s"
msgid "Invalid ports: %s"
msgstr "Neplatné porty: %s"
msgid "Invalid preceding regular expression"
msgstr "Neplatný předcházející regulární výraz"
#, c-format
msgid "Invalid prefix or netmask for '%s'"
msgstr "Neplatný prefix nebo maska podsítě pro '%s'"
msgid "Invalid range end"
msgstr "Neplatný konec rozsahu"
msgid "Invalid regular expression"
msgstr "Neplatný regulární výraz"
#, c-format
msgid "Invalid state '%s' in domain snapshot XML"
msgstr "Neplatný stav '%s' v XML definici obrazu domény"
@@ -1313,6 +1399,12 @@ msgstr "Nesmyslná velikost %s"
msgid "Max memory:"
msgstr "Max. paměti:"
msgid "Memory allocation failure"
msgstr "Nezdar při přiřazování paměti"
msgid "Memory exhausted"
msgstr "Došla paměť"
msgid "Memory size:"
msgstr "Velikost paměti:"
@@ -1346,10 +1438,21 @@ msgstr "Chybí jméno modelu CPU"
msgid "Missing address"
msgstr "Chybí adresa"
#, c-format
msgid "Missing backend %d"
msgstr "Chybí podpůrná vrstva %d"
msgid "Missing bridge name"
msgstr "Chybí název síťového mostu"
#, c-format
msgid "Missing feature name for CPU model %s"
msgstr "Chybí jméno vlastnosti pro model CPU %s"
#, c-format
msgid "Model %s too big for destination"
msgstr "Model %s je příliš velký pro cíl"
msgid "Model name contains invalid characters"
msgstr "Jméno modelu obsahuje neplatné znaky"
@@ -1442,6 +1545,18 @@ msgstr "Typ sítě %d není podporován"
msgid "No IP address for host '%s' found: %s"
msgstr "IP adresa pro hosta '%s' nalezena: %s"
msgid "No UNIX caller UID available"
msgstr "Není k dispozici unixový identifikátor spouštějícího uživatele"
msgid "No UNIX process ID available"
msgstr "Není k dispozici žádný unixový identif. procesu"
msgid "No UNIX process start time available"
msgstr "Není k dispozici čas spuštění unixového procesu"
msgid "No address associated with hostname"
msgstr "S názvem stroje není spojená žádná adresa"
#, c-format
msgid "No domain with ID %d"
msgstr "Žádná doména s ID %d"
@@ -1461,6 +1576,12 @@ msgstr "Žádná doména odpovídající uuid '%s'"
msgid "No error message provided"
msgstr "Chybová zpráva nebyla zadána"
msgid "No match"
msgstr "Žádná shoda"
msgid "No previous regular expression"
msgstr "Žádný předchozí regulární výraz"
#, c-format
msgid "No support for %s in command 'attach-disk'"
msgstr "Nepodporovaný %s v příkazu 'attach-disk'"
@@ -1472,9 +1593,15 @@ msgstr "Nepodporovaný %s v příkazu 'attach-interface'"
msgid "No type specified for device address"
msgstr "Nebyl specifikován typ pro adresu zařízení"
msgid "Not enough space left in storage pool"
msgstr "Na fondu úložiště není dostatek místa"
msgid "OS Type:"
msgstr "Druh OS:"
msgid "Only luks encryption is supported for raw files"
msgstr "u raw souborů je podporováno pouze šifrování luks"
msgid "Only vpxmigr:// migration URIs are supported"
msgstr "Pouze migrace typu vpxmigr:// jsou podporovány"
@@ -1541,6 +1668,10 @@ msgstr "Fyzický:"
msgid "Pin domain VCPUs to host physical CPUs."
msgstr "Spřáhnout virtuální CPU domény k fyzickým CPU hostitele."
#, c-format
msgid "Policy kit denied action %s from <anonymous>"
msgstr "Policikyt odepřel akci %s z <anonymous>"
#, c-format
msgid "Pool %s built\n"
msgstr "Úložiště %s sestaveno\n"
@@ -1589,6 +1720,9 @@ msgstr "Úložiště %s spuštěno\n"
msgid "Pool %s unmarked as autostarted\n"
msgstr "Úložiště %s není označeno jako automaticky spouštěné\n"
msgid "Premature end of regular expression"
msgstr "Předčasný konec regulárního výrazu"
msgid "Print the current directory."
msgstr "Zobrazí jméno adresáře, ve kterém se právě nacházíte."
@@ -1597,6 +1731,13 @@ msgid ""
" group of related commands"
msgstr "Vypíše souhrnnou nápovědu nebo nápovědu k určenému příkazu."
msgid "Processing request in progress"
msgstr "Požadavek na zpracování je zpracováván"
#, c-format
msgid "QEMU does not support device assignment mode '%s'"
msgstr "QEMU nepodporuje režim přiřazení zařízení „%s“"
#, c-format
msgid "QueryPerf returned object with unexpected type '%s'"
msgstr "QueryPerf navrátil objekt neočekávaného typu '%s'"
@@ -1610,6 +1751,9 @@ msgstr "Znovu se připojit k hypervizoru"
msgid "Refresh a given pool."
msgstr "Obnov dané úložiště."
msgid "Regular expression too big"
msgstr "Regulární výraz je příliš velký"
msgid "Remove managed save of a domain"
msgstr "uložit stav domény do souboru"
@@ -1751,6 +1895,9 @@ msgstr "Svazek nenalezen"
msgid "Storage volume not found: %s"
msgstr "Svazek nenalezen: %s"
msgid "Success"
msgstr "Úspěch"
msgid "Suspend a running domain."
msgstr "Uspat běžící doménu."
@@ -1774,12 +1921,18 @@ msgstr "Tato funkce není na platformě WIN32 podporována"
msgid "This host is not managed by a vCenter"
msgstr "Tento host není spravován vCenter"
msgid "This type of disk cannot be hot unplugged"
msgstr "Tento typ disku nelze odpojovat za chodu"
msgid "Thread(s) per core:"
msgstr "Vláken na jádro:"
msgid "Total"
msgstr "Celkem"
msgid "Trailing backslash"
msgstr "Končí na zpětné lomítko"
msgid "Try again?"
msgstr "Zkusit znovu?"
@@ -1817,6 +1970,9 @@ msgstr "Nelze se přesunout do kořenového adresáře"
msgid "Unable to create Volume: %s"
msgstr "Nelze vytvořit Svazek: %s"
msgid "Unable to create pipe"
msgstr "Nedaří se vytvořit rouru"
msgid "Unable to generate random uuid."
msgstr "Nelzye vygenerovat náhodné uuid."
@@ -1846,6 +2002,10 @@ msgstr "Nelze otevřít /proc/mounts"
msgid "Unable to open UNIX socket"
msgstr "Nelze otevřít UNIXový socket"
#, c-format
msgid "Unable to open log file %s"
msgstr "Nedaří se otevřít soubor se záznamem událostí %s"
#, c-format
msgid "Unable to parse devaddr parameter '%s'"
msgstr "Nelze parsovat parametr '%s' devaddr"
@@ -1881,6 +2041,9 @@ msgstr "Neznámý model CPU %s"
msgid "Unknown CPU vendor %s"
msgstr "Neznámý výrobce CPU %s"
msgid "Unknown Partition Type, requires build --overwrite"
msgstr "Neznámý typ oddílu, vyžaduje sestavení --overwrite"
#, c-format
msgid "Unknown controller type '%s'"
msgstr "Neznámý typ řadiče '%s'"
@@ -1908,6 +2071,21 @@ msgstr "Neznámý typ zdroje: '%s'"
msgid "Unknown value '%s' for %s"
msgstr "Neznámá hodnota '%s' pro %s"
msgid "Unmatched ( or \\("
msgstr "Neuzavřené ( nebo \\("
msgid "Unmatched ) or \\)"
msgstr "Neuzavřené ) nebo \\)"
msgid "Unmatched [, [^, [:, [., or [="
msgstr "Neuzavřené [, [^, [:, [., nebo [="
msgid "Unmatched \\{"
msgstr "Neuzavřené \\{"
msgid "Unsupported address type for character device"
msgstr "Nepodporovaný typ adresy pro znakové zařízení"
#, c-format
msgid "Unsupported bus type '%s'"
msgstr "Nepodporovaný typ sběrnice '%s'"
@@ -1936,6 +2114,14 @@ msgstr "Nepodporovaný typ diskového zařízení '%s'"
msgid "Unsupported graphics type '%s'"
msgstr "Nepodporovaný typ grafického rozhraní '%s'"
#, c-format
msgid "Unsupported hostdev mode %s"
msgstr "Nepodporovaný režim zařízení hostitele %s"
#, c-format
msgid "Unsupported hostdev type %s"
msgstr "Nepodporovaný typ zařízení hostitele %s"
msgid "Unused"
msgstr "Nepoužito"
@@ -2030,6 +2216,12 @@ msgstr "[--%s] <řetězec>"
msgid "active"
msgstr "aktivní"
msgid "ai_family not supported"
msgstr "ai_family nepodporovaná"
msgid "ai_socktype not supported"
msgstr "ai_socktype není podporovaná"
msgid "attach device from an XML file"
msgstr "připojit zařízení z XML souboru"
@@ -2079,15 +2271,54 @@ msgstr "blokové zařízení"
msgid "bool"
msgstr "bool"
#, c-format
msgid "bridge %s doesn't exist"
msgstr "most %s už existuje"
#, c-format
msgid "bridge '%s' has an invalid netmask or IP address"
msgstr "most „%s“ nemá platnou masku sítě nebo IP adresu"
#, c-format
msgid "bridge name '%s' already in use."
msgstr "název mostu „%s“ už je používán."
msgid "build a pool"
msgstr "sestav úložiště"
msgid "building"
msgstr "sestavuji"
msgid "can't shrink capacity below existing allocation"
msgstr "není možné snížit kapacitu pod existující přiřazení"
msgid "canceled by client"
msgstr "zrušeno klientem"
#, c-format
msgid "cannot change config of '%s' network type"
msgstr "není možné změnit nastavení „%s“ typu sítě"
msgid "cannot change keymap setting on spice graphics"
msgstr "není možné změnit nastavení mapy kláves na spice grafice"
msgid "cannot change keymap setting on vnc graphics"
msgstr "není možné změnit nastavení mapy kláves na vnc grafice"
#, c-format
msgid "cannot change listen socket setting on '%s' graphics"
msgstr "není možné změnit nastavení soketu pro očekávání na grafice „%s“"
#, c-format
msgid "cannot change network interface mac address from %s to %s"
msgstr "není možné změnit mac adresu síťového rozhraní z %s na %s"
msgid "cannot change port settings on spice graphics"
msgstr "není možné změnit nastavení portu na spice grafice"
msgid "cannot change port settings on vnc graphics"
msgstr "není možné změnit nastavení portu na vnc grafice"
msgid "cannot change to root directory"
msgstr "nelze se přesunout do kořenového adresáře"
@@ -2127,6 +2358,10 @@ msgstr "nelze vytvořit cestu '%s'"
msgid "cannot decode CPU data for %s architecture"
msgstr "nelze dešifrovat data CPU pro architekturu %s"
#, c-format
msgid "cannot disable %s"
msgstr "není možné vypnout %s"
#, c-format
msgid "cannot encode CPU data for %s architecture"
msgstr "nelze zašifrovat data CPU pro architekturu %s"
@@ -2147,6 +2382,16 @@ msgstr "nelze inicializovat podmínkovou proměnnou"
msgid "cannot initialize mutex"
msgstr "nelze inicializovat mutex"
#, c-format
msgid "cannot modify network device model from %s to %s"
msgstr "není možné změnit model síťového rozhraní z %s na %s"
msgid "cannot modify network device script attribute"
msgstr "není možné upravit atributy skriptu síťového rozhraní"
msgid "cannot modify virtio network device driver attributes"
msgstr "není možné upravit atributy ovladače síťového rozhraní"
#, c-format
msgid "cannot open %s"
msgstr "nelze otevřít %s"
@@ -2225,6 +2470,14 @@ msgstr "nelze parsovat ram video zařízení '%s'"
msgid "cannot parse vnc port %s"
msgstr "nelze parsovat vnc port %s"
#, c-format
msgid "cannot precreate storage for disk type '%s'"
msgstr "nedaří se předvytvořit úložiště pro disk typu „%s“"
#, c-format
msgid "cannot read beginning of file '%s'"
msgstr "nedaří se číst začátek souboru „%s“"
#, c-format
msgid "cannot read dir '%s'"
msgstr "nelze číst adresář '%s'"
@@ -2241,6 +2494,10 @@ msgstr "nelze smazat konfigurační soubor '%s'"
msgid "cannot remove config for %s"
msgstr "nelze smazat konfiguraci pro %s"
#, c-format
msgid "cannot sync data to file '%s'"
msgstr "nedaří se synchronizovat data do souboru „%s“"
#, c-format
msgid "cannot write config file '%s'"
msgstr "nepodařilo se zapsat konfigurační soubor '%s'"
@@ -2267,6 +2524,9 @@ msgstr "změnit počet virtuálních CPU"
msgid "change the current directory"
msgstr "změnit aktuální pracovní adresář."
msgid "chardev already exists"
msgstr "znakové zařízení už existuje"
msgid "client tried invalid PolicyKit init request"
msgstr "klient se pokusil o neplatný PolicyKit init požadavek"
@@ -2458,15 +2718,37 @@ msgstr "odpojit diskové zařízení"
msgid "detach network interface"
msgstr "odpojit síťové rozhraní"
msgid "detaching serial console is not supported"
msgstr "odpojení sériové konzole není podporováno"
msgid "detailed domain vcpu information"
msgstr "detailní informace o VCPU domény"
msgid "device cannot be detached without a device alias"
msgstr "zařízení není možné odpojit bez jeho alternativního názvu"
#, c-format
msgid "device with '%s' address cannot be detached"
msgstr "zařízení s adresou „%s“ není možné odpojit"
msgid "direct migration"
msgstr "přímá migrace"
msgid "disable autostarting"
msgstr "zakázat automatické spuštění"
#, c-format
msgid "disk '%s' must use snapshot mode '%s'"
msgstr "je třeba, aby disk „%s“ používal režim zachycování stavu „%s“"
#, c-format
msgid "disk '%s' specified twice"
msgstr "disk „%s“ je zadán dvakrát"
#, c-format
msgid "disk device type '%s' cannot be detached"
msgstr "diskové zařízení typu „%s“ nelze odpojovat"
msgid "display available free memory for the NUMA cell."
msgstr "zobrazit dostupnou volnou paměť pro tuto buňku NUMA."
@@ -2527,6 +2809,10 @@ msgstr "XML definice obrazu domény"
msgid "domain state"
msgstr "stav domény"
#, c-format
msgid "don't know how to remove a %s device"
msgstr "není známo jako odebrat zařízení %s"
msgid "driver of disk device"
msgstr "ovladač diskového zařízení"
@@ -2613,6 +2899,9 @@ msgstr "selhalo vytvoření logovacího souboru %s"
msgid "failed to determine host name"
msgstr "nepodařilo se získat hostitelské jméno"
msgid "failed to extract gluster volume name"
msgstr "nepodařilo se získat název gluster svazku"
msgid "failed to generate XML"
msgstr "selhalo generování XML"
@@ -2682,16 +2971,13 @@ msgstr "Nepodařilo se označit úložiště %s jako automaticky spouštěné"
msgid "failed to move file to %s "
msgstr "selhalo přesunutí souboru na %s"
#, c-format
msgid "failed to open %s for reading"
msgstr "nepodařilo se otevřít %s pro čtení"
msgid "failed to open configuration file for reading"
msgstr "nepodařilo se otevřít konfigurační soubor pro čtení"
msgid "failed to open file"
msgstr "nepodařilo se otevřít soubor"
#, c-format
msgid "failed to open ns %s"
msgstr "nepodařilo se otevřít ns %s"
msgid "failed to open the log file. check the log file path"
msgstr "Nepodařilo se otevřít log soubor. Zkontrolujte cestu k log souboru"
@@ -2712,6 +2998,10 @@ msgstr "nepodařilo se načíst konfigurační soubor"
msgid "failed to read configuration file %s"
msgstr "nepodařilo se načíst konfigurační soubor %s"
#, c-format
msgid "failed to remove pool '%s'"
msgstr "nepodařilo se odebrat fond „%s“"
msgid "failed to save content"
msgstr "nepodařilo se uložit obsah"
@@ -2740,6 +3030,10 @@ msgstr "nepodařilo se zapsat konfigurační soubor: %s"
msgid "failed to write the log file"
msgstr "nezdařil se zápis do log souboru"
#, c-format
msgid "failed writing to file '%s'"
msgstr "nepodařilo se zapsat do souboru „%s“"
msgid "file"
msgstr "soubor"
@@ -2777,25 +3071,39 @@ msgstr "soubor obsahující XML popis svazku"
msgid "filter has no name"
msgstr "filtr nemá jméno"
#, c-format
msgid "filters not supported on interfaces of type %s"
msgstr "filtry nepodporované na zařízení typu %s"
msgid "for hardware virtualization"
msgstr "pro hardwarovou virtualizaci"
msgid "force device update"
msgstr "vynutit aktualizaci zařízení"
msgid "format features only available with qcow2"
msgstr "funkce formátování jsou k dispozici pouze s qcow2"
msgid "found lease without ip-address"
msgstr "nalezena zápůjčka bez IP adresy"
msgid "get device block stats for a domain"
msgstr "získat stav bloku zařízení domény"
msgid "get network interface stats for a domain"
msgstr "získat stav síťového rozhraní pro doménu"
#, c-format
msgid "got unknown HTTP error code %d"
msgstr "obdržel jsem neznámý chybový kód HTTP %d"
msgid "gracefully shutdown a domain"
msgstr "elegantně vypnout doménu"
#, c-format
msgid "guest failed to start: %s"
msgstr "hosta se nepodařilo spustit: %s"
#, c-format
msgid "host usb device %03d.%03d not found"
msgstr "usb zařízení hostitele %03d.%03d nenalezeno"
msgid "hypervisor connection URI"
msgstr "URI spojení hypervizoru"
@@ -2811,6 +3119,14 @@ msgstr "nepřístupný"
msgid "inactive"
msgstr "neaktivní"
#, c-format
msgid "input device on bus '%s' cannot be detached"
msgstr "vstupní zařízení na sběrnici „%s“ není možné odpojit"
#, c-format
msgid "input device on bus '%s' cannot be hot plugged."
msgstr "vstupní zařízení na sběrnici „%s“ není možné připojovat za chodu."
msgid "interface has no name"
msgstr "rozhraní nemá jméno"
@@ -2836,6 +3152,10 @@ msgstr "vnitřní chyba"
msgid "internal use only"
msgstr "pouze pro vnitřní použití"
#, c-format
msgid "invalid %s: '%s'"
msgstr "neplatné %s: „%s“"
#, c-format
msgid "invalid '=' after option --%s"
msgstr "neplatné '=' po volbě --%s"
@@ -3016,13 +3336,6 @@ msgstr "libhal_ctx_set_dbus_connection selhalo"
msgid "libhal_get_all_devices failed"
msgstr "libhal_get_all_devices selhalo"
#, c-format
msgid "library call %s failed, possibly not supported"
msgstr "volání knihovny %s selhalo, pravděpodobně není podporováno"
msgid "library call failed, possibly not supported"
msgstr "volání knihovny selhalo, pravděpodobně není podporováno"
msgid "list devices in a tree"
msgstr "zobrazit zařízení jako stromovou strukturu"
@@ -3074,6 +3387,10 @@ msgstr "vypsat svazky"
msgid "live migration"
msgstr "živá migrace"
#, c-format
msgid "malformed disk path: %s"
msgstr "nesprávně formulovaný popis umístění disku: %s"
msgid "malformed uuid element"
msgstr "nesmyslný uuid element"
@@ -3115,12 +3432,18 @@ msgstr "chybí informace o zařízení"
msgid "missing devices information for %s"
msgstr "chybí informace o zařízení pro %s"
msgid "missing domain in snapshot"
msgstr "v zachyceném stavu chybí doména"
msgid "missing domain state"
msgstr "chýbí stav domény"
msgid "missing domain type attribute"
msgstr "chýbí atribut typu domény"
msgid "missing encryption description"
msgstr "chybí popis šifrování"
msgid "missing graphics device type"
msgstr "chybí typ grafického rozhraní"
@@ -3136,6 +3459,9 @@ msgstr "chybí jméno zdroje disku"
msgid "missing name for host"
msgstr "chybí jméno hostitele"
msgid "missing network device feature name"
msgstr "chybí název funkce síťového rozhraní"
msgid "missing operating system information"
msgstr "chybí informace o operačním systému"
@@ -3183,6 +3509,9 @@ msgstr "chybí cílové informace pro zařízení %s"
msgid "missing timer name"
msgstr "chybí název časovače"
msgid "missing tmpfs size, set the size option"
msgstr "chybí velikost tmpfs, nastavte volbu velikosti"
msgid "missing vendor"
msgstr "chybí výrobce"
@@ -3218,6 +3547,18 @@ msgstr "síť %s již existuje"
msgid "network '%s' already exists with uuid %s"
msgstr "síť '%s' je již existuje s uuid %s"
#, c-format
msgid "network '%s' does not have a bridge name."
msgstr "síť „%s“"
#, c-format
msgid "network '%s' has an invalid netmask or IP address in route definition"
msgstr "síť „%s“ nemá v definici trasy platnou masku sítě nebo IP adresu"
#, c-format
msgid "network '%s' has no bridge name defined"
msgstr "síť „%s“ nemá definován název mostu"
#, c-format
msgid "network '%s' is already defined with uuid %s"
msgstr "síť '%s' je již definována s uuid %s"
@@ -3247,6 +3588,9 @@ msgstr "název sítě"
msgid "network name or uuid"
msgstr "název nebo UUID sítě"
msgid "network state driver is not active"
msgstr "ovladač stavu sítě není aktivní"
msgid "network uuid"
msgstr "UUID sítě"
@@ -3331,6 +3675,10 @@ msgstr "nebylo nalezeno uživatelské jméno klienta"
msgid "no config file for %s"
msgstr "žádný konfigurační soubor pro %s"
#, c-format
msgid "no disk named '%s'"
msgstr "žádný disk nazvaný „%s“"
msgid "no domain config"
msgstr "žádná konfigurace domény"
@@ -3360,6 +3708,10 @@ msgstr "nebylo zadáno síťové rozhraní pro '%s'"
msgid "no network with matching name '%s'"
msgstr "žádná síť odpovídající jménu '%s'"
#, c-format
msgid "no removable media size supplied for '%s'"
msgstr "nebyla zadána velikost vyjímatelného média pro „%s“"
#, c-format
msgid "no server with matching name '%s' found"
msgstr "nenalezen žádný server odpovídající jménu '%s'"
@@ -3399,6 +3751,9 @@ msgstr "počet virtuálních CPU"
msgid "offline"
msgstr "offline"
msgid "only one hotpluggable entity can be selected"
msgstr "vybrat je možné jen jednu entitu připojitelnou za chodu"
msgid "operation failed"
msgstr "selhala operace"
@@ -3436,6 +3791,12 @@ msgstr "úložiště '%s' je již existuje s uuid %s"
msgid "pool '%s' is already defined with uuid %s"
msgstr "úložiště '%s' je již definováno s uuid %s"
msgid "pool does not support pool deletion"
msgstr "fond nepodporuje mazání fondu"
msgid "pool has no config file"
msgstr "fond nemá soubor s nastaveními"
msgid "pool information in XML"
msgstr "informace o úložišti v XML"
@@ -3511,6 +3872,9 @@ msgstr "uložit stav domény do souboru"
msgid "script used to bridge network interface"
msgstr "skript použitý k přemostění síťového rozhraní"
msgid "scripts are not supported on LXC network interfaces"
msgstr "na LXC síťových rozhraních nejsou skripty podporované"
msgid "secret UUID"
msgstr "tajné UUID"
@@ -3557,6 +3921,14 @@ msgstr "spustit (dříve definované) neaktivní úložiště"
msgid "storage pool '%s' is already active"
msgstr "úložiště '%s' je již aktivní"
#, c-format
msgid "storage pool '%s' is not active"
msgstr "fond úložiště „%s“ není aktivní"
#, c-format
msgid "storage pool '%s' is still active"
msgstr "fond úložiště „%s“ je pořád aktivní"
msgid "storage pool information"
msgstr "informace o úložišti"
@@ -3606,6 +3978,9 @@ msgstr "tcp"
msgid "template '%s' does not exist"
msgstr "template '%s' neexistuje"
msgid "terminated abnormally"
msgstr "ukončeno nenormálně"
msgid "testOpen: supply a path or use test:///default"
msgstr "testOpen: zadejte cestu nebo test:///default"
@@ -3640,6 +4015,10 @@ msgstr "typ zdroje (block|soubor)"
msgid "udev_monitor_new_from_netlink returned NULL"
msgstr "udev_monitor_new_from_netlink vrátil NULL"
#, c-format
msgid "unable to change config on '%s' graphics type"
msgstr "není možné změnit nastavení na grafice typu „%s“"
#, c-format
msgid "unable to close %s"
msgstr "nelze zavřít %s"
@@ -3648,6 +4027,13 @@ msgstr "nelze zavřít %s"
msgid "unable to create rundir %s: %s"
msgstr "nelze vytvořit rundir %s: %s"
msgid "unable to create volume XML"
msgstr "nedaří se vytvořit XML pro svazek"
#, c-format
msgid "unable to find disk by target: %s"
msgstr "nedaří se nalézt disk podle cíle: %s"
msgid "unable to generate uuid"
msgstr "nelze vygenerovat uuid"
@@ -3737,6 +4123,10 @@ msgstr "neočekávaný typ domény %d"
msgid "unexpected encryption format"
msgstr "neočekávaný formát šifrování"
#, c-format
msgid "unexpected exit status %d"
msgstr "neočekávaný návratový stav %d"
#, c-format
msgid "unexpected filesystem type %d"
msgstr "neočekávaný typ systému souborů %d"
@@ -3781,6 +4171,10 @@ msgstr "neočekávaný mód smbios %d"
msgid "unexpected sound model %d"
msgstr "neočekávaný model zvukového zařízení %d"
#, c-format
msgid "unexpected storage mode for '%s'"
msgstr "neočekávaný režim úložiště pro „%s“"
#, c-format
msgid "unexpected sysinfo type model %d"
msgstr "neočekávaný model sysinfo type %d"
@@ -3830,6 +4224,10 @@ msgstr "neznámý typ autentizace '%s'"
msgid "unknown boot device '%s'"
msgstr "neznámé bootovací zařízení '%s'"
#, c-format
msgid "unknown capability type '%s'"
msgstr "neznámý typ kapacity „%s“"
#, c-format
msgid "unknown character device type: %s"
msgstr "neznámé znakové zařízení typu: %s"
@@ -3920,6 +4318,10 @@ msgstr "neznámý typ rozhraní '%s'"
msgid "unknown memory balloon model '%s'"
msgstr "neznámý model ballon memory '%s'"
#, c-format
msgid "unknown network device feature '%s'"
msgstr "neznámá funkce síťového zařízení „%s“"
msgid "unknown option"
msgstr "neznámá volba"
@@ -3955,6 +4357,10 @@ msgstr "neznámý typ vlastnosti úložiště '%s' pro '%s'"
msgid "unknown storage pool type %s"
msgstr "neznámý typ úložiště %s"
#, c-format
msgid "unknown storage vol type %d"
msgstr "neznámý typ svazku úložiště %d"
#, c-format
msgid "unknown sysinfo type '%s'"
msgstr "neznámý typ sysinfo '%s'"
@@ -4001,6 +4407,9 @@ msgstr "neznámá akce watchdogu '%s'"
msgid "unknown watchdog model '%s'"
msgstr "neznámý model watchdogu '%s'"
msgid "unplug of device was rejected by the guest"
msgstr "odpojení zařízení bylo odmítnuto hostem"
msgid "unsupported configuration"
msgstr "nepodporovaná konfigurace"
@@ -4064,6 +4473,9 @@ msgstr "usb produkt potřebuje id"
msgid "usb vendor needs id"
msgstr "výrobce usb potřebuje id"
msgid "vCPU '0' can't be modified"
msgstr "virt. procesor „0“ není možné upravit"
#, c-format
msgid "vCenter IP address %s too big for destination"
msgstr "IP adresa %s vCenter je příliš veliká pro cíl"
@@ -4077,6 +4489,14 @@ msgstr "hodnota managerid je mimo rozsah"
msgid "value of typeidversion out of range"
msgstr "hodnota typeidversion je mimo rozsah"
#, c-format
msgid "vcpu '%zd' can't be hotunplugged"
msgstr "virt. procesor „%zd“ není možné odpojit za chodu"
#, c-format
msgid "vcpu '%zd' is already in requested state"
msgstr "virt. procesor „%zd“ se už nachází v požadovaném stavu"
msgid "vcpu number"
msgstr "počet VCPU"
@@ -4102,6 +4522,14 @@ msgstr "vnc display"
msgid "vol information in XML"
msgstr "informace o svazku v XML"
#, c-format
msgid "volume '%s' is still in use."
msgstr "svazek „%s“ je pořád používán."
#, c-format
msgid "volume name '%s' cannot contain '/'"
msgstr "název svazku „%s“ nemůže obsahovat „/“"
msgid "volume name or path"
msgstr "jméno svazku nebo cesta k němu"

View File

@@ -1,5 +1,5 @@
# Libvirt package strings.
# Copyright (C) 2018 Red Hat, Inc.
# Copyright (C) 2019 Red Hat, Inc.
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: 2018-04-24 05:01+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Welsh (http://www.transifex.com/projects/p/fedora/language/"

View File

@@ -1,5 +1,5 @@
# Libvirt package strings.
# Copyright (C) 2018 Red Hat, Inc.
# Copyright (C) 2019 Red Hat, Inc.
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+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/"
@@ -629,13 +629,6 @@ msgstr "kunne ikke hente biblioteksversion"
msgid "failed to mark network %s as autostarted"
msgstr "Kunne ikke markere netværk %s som automatisk startet"
#, c-format
msgid "failed to open %s for reading"
msgstr "kunne ikke åbne %s for læsning"
msgid "failed to open configuration file for reading"
msgstr "kunne ikke åbne konfigurationsfilen for læsning"
msgid "failed to open file"
msgstr "kunne ikke åbne fil"
@@ -683,10 +676,6 @@ msgstr "fil som indeholder XML-netværksbeskrivelse"
msgid "getting time of day"
msgstr "henter tid på døgnet"
#, c-format
msgid "got unknown HTTP error code %d"
msgstr "fik ukendt HTTP-fejlkode %d"
msgid "gracefully shutdown a domain"
msgstr "luk et domæne pænt ned"
@@ -723,13 +712,6 @@ msgstr "ugyldig netværkspeger i"
msgid "invalid network pointer in %s"
msgstr "ugyldig netværkspeger i %s"
#, c-format
msgid "library call %s failed, possibly not supported"
msgstr "bibliotekskald %s mislykkedes, understøttes nok ikke"
msgid "library call failed, possibly not supported"
msgstr "bibliotekskald mislykkedes, understøttes nok ikke"
msgid "list domains"
msgstr "vis domæner"

View File

@@ -1,5 +1,5 @@
# Libvirt package strings.
# Copyright (C) 2018 Red Hat, Inc.
# Copyright (C) 2019 Red Hat, Inc.
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
@@ -21,7 +21,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: 2016-04-01 11:32+0000\n"
"Last-Translator: Florian H. <postfuerflo@gmail.com>\n"
"Language-Team: German (http://www.transifex.com/projects/p/libvirt/language/"
@@ -1247,12 +1247,6 @@ msgstr "Kann Konfigurations-Datei nicht laden: %s: %s"
msgid "Can't modify device type '%s'"
msgstr "Kann Einheiten-Typ '%s' nicht verändern"
msgid "Can't parse barrier from "
msgstr "Kann barrier from nicht analysieren"
msgid "Can't parse limit from "
msgstr "Kann limit from nicht analysieren"
msgid "Can't parse prlctl output"
msgstr "Kann prictl Ausgabe nicht analysieren"
@@ -1423,10 +1417,6 @@ msgstr "Kann '%s' im Pfad nicht finden"
msgid "Cannot find CPU model with PVR 0x%08x"
msgstr "Kann CPU-Modell mit PVR 0x%08x nicht finden"
#, c-format
msgid "Cannot find UML kernel %s"
msgstr "Kann UML-Kernel %s nicht finden"
#, c-format
msgid "Cannot find program %d version %d"
msgstr "Kann Program %d Version %d nicht finden"
@@ -1906,10 +1896,6 @@ msgstr ""
"Close Callback für Domain %s ist bereits mit einem anderen Anschluss %p "
"registriert"
#, c-format
msgid "Command %s too long for destination"
msgstr "Befehl %s zu lang für Ziel"
msgid "Commit aborted"
msgstr "Übergabe abgebrochen"
@@ -5644,9 +5630,6 @@ msgstr "IP %s zu groß für Ziel"
msgid "IP address lookup for host '%s' failed: %s"
msgstr "IP-Adressabfrage für Host »%s« ist fehlgeschlagen: %s"
msgid "IP address not supported for ethernet interface"
msgstr "IP-Adresse nicht für Ethernet-Schnittstelle unterstützt"
msgid ""
"IP parameter must be given since libvirt was not compiled with IP address "
"learning support"
@@ -7025,9 +7008,6 @@ msgstr "BEACHTE"
msgid "NULL NetworkDef"
msgstr "NULL NetworkDef"
msgid "NULL or empty path"
msgstr "NULL oder leerer Pfad"
#, c-format
msgid "NULL string parameter '%s'"
msgstr "NULL String Parameter '%s'"
@@ -7119,10 +7099,6 @@ msgstr "Netzwerk '%s' bereits gestartet"
msgid "Network '%s' is still running"
msgstr "Netzwerk '%s' läuft immer noch"
#, c-format
msgid "Network '%s' not found"
msgstr "Netzwerk '%s' nicht gefunden"
msgid "Network config change transaction committed\n"
msgstr "Netzwerk Konfig-Änderungs Transaktion übergeben\n"
@@ -7282,9 +7258,6 @@ msgstr "Kein Kategorie-Bereich verfügbar"
msgid "No channel command provided"
msgstr "Kein Kanal-Befehl zur Verfügung gestellt"
msgid "No controllers are mounted"
msgstr "Keine Controller angeschlossen"
msgid "No data supplied for <initarg> element"
msgstr "Keine Daten für <initarg> Element angegeben"
@@ -8951,12 +8924,6 @@ msgstr "System ist nicht verfügbar"
msgid "System lacks NETNS support"
msgstr "System fehlt NETNS-Unterstützung"
msgid "TCP client networking type not supported"
msgstr "TCP-Client Netzwerktyp nicht unterstützt"
msgid "TCP server networking type not supported"
msgstr "TCP-Server Netzwerktyp nicht unterstützt"
#, c-format
msgid "TLS handshake failed %s"
msgstr "TLS-Handshake fehlgeschlagen %s"
@@ -9511,9 +9478,6 @@ msgstr "Diese Funktion ist auf Win32-Plattform nicht unterstützt"
msgid "This host is not managed by a vCenter"
msgstr "Dieser Host wird nicht von einem vCenter verwaltet"
msgid "This type of device cannot be hot unplugged"
msgstr "Dieser Gerätetyp kann nicht \"gehotunplugged\" werden"
msgid "This type of disk cannot be hot unplugged"
msgstr "Diese Type von Disk kann nicht 'hot unplugged' werden"
@@ -10668,9 +10632,6 @@ msgstr "Kann STP Verzögerung auf %s auf dieser Plattform nicht setzen"
msgid "Unable to set STP on %s on this platform"
msgstr "Kann STP auf %s auf dieser Plattform nicht setzen"
msgid "Unable to set VM logfile close-on-exec flag"
msgstr "Kann das close-on-exec-Flag der VM-Log-Datei nicht setzen"
msgid "Unable to set cloexec flag"
msgstr "Kann cloexec Flag nicht setzen"
@@ -10928,10 +10889,6 @@ msgstr "Unerwartetes Datenträger-Pfad Format: %s"
msgid "Unhandled event %d for monitor fd %d"
msgstr "Nicht bearbeitetes Ereignis %d für Monitor fd %d"
#, c-format
msgid "Unix path %s too long for destination"
msgstr "Unix-Pfad %s zu lang für Ziel"
msgid "Unknown"
msgstr "Unbekannt"
@@ -12117,15 +12074,9 @@ msgstr "Kann Platzhalter nlhandle für netlink nicht zuweisen"
msgid "cannot apply process capabilities %d"
msgstr "Kann nicht Prozess-Fähigkeiten %d anwenden"
msgid "cannot attach device on inactive domain"
msgstr "Kann Gerät nicht bei aktiver Domain anhängen"
msgid "cannot become session leader"
msgstr "Kann nicht Session-Leader werden"
msgid "cannot bind socket"
msgstr "Kann Socket nicht binden"
msgid "cannot block signals"
msgstr "Kann Signale nicht blockieren"
@@ -12324,9 +12275,6 @@ msgstr "Inktive Domain mit %d Snapshots kann nicht gelöscht werden"
msgid "cannot delete snapshots of running domain"
msgstr "Snapshots der laufenden Domain können nicht gelöscht werden"
msgid "cannot detach device on inactive domain"
msgstr "Kann Gerät bei inaktiver Domain nicht abhängen"
#, c-format
msgid "cannot determine filesystem for '%s'"
msgstr "Dateisystem für »%s« kann nicht bestimmt werden"
@@ -12533,9 +12481,6 @@ msgstr "Kann Zertifikat-Object %s nicht initialsieren"
msgid "cannot initialize condition variable"
msgstr "Bedingungsvariable kann nicht initialisiert werden"
msgid "cannot initialize inotify"
msgstr "Kann inotify nicht initialisieren"
msgid "cannot initialize monitor condition"
msgstr "Kann Monitor-Kondition nicht initialisieren"
@@ -12654,9 +12599,6 @@ msgstr "Konnte macvtap-Gerät %s nicht öffnen"
msgid "cannot open path '%s'"
msgstr "Kann Pfad '%s' nicht öffnen"
msgid "cannot open socket"
msgstr "Kann Socket nicht öffnen"
#, c-format
msgid "cannot open volume '%s'"
msgstr "Kann Datenträger '%s' nicht öffnen"
@@ -12844,10 +12786,6 @@ msgstr "vbd Dateiname kann nicht analysiert werden, fehlender Treibertyp"
msgid "cannot parse vendor id %s"
msgstr "Hersteller-ID %s kann nicht geparst werden"
#, c-format
msgid "cannot parse version %s"
msgstr "Kann Version %s nicht parsen"
#, c-format
msgid "cannot parse video heads '%s'"
msgstr "Video-Köpfe '%s' können nicht geparst werden"
@@ -12951,10 +12889,6 @@ msgstr "Kann Header '%s' nicht lesen"
msgid "cannot read mount list '%s'"
msgstr "Kann Einhängeliste '%s' nicht lesen"
#, c-format
msgid "cannot read reply %s"
msgstr "Kann Antwort %s nicht lesen"
#, c-format
msgid "cannot receive data from volume %s"
msgstr "Kann keine Daten von Datenträger %s empfangen"
@@ -13032,10 +12966,6 @@ msgstr "Kann nicht bis zum Anfang der Datei '%s' suchen"
msgid "cannot seek to start of '%s'"
msgstr "Kann nicht bis zum Beginn von '%s' suchen"
#, c-format
msgid "cannot send command %s"
msgstr "Kann Befehl %s nicht senden"
#, c-format
msgid "cannot send data to volume %s"
msgstr "Kann nicht Daten auf Datenträger %s senden"
@@ -13043,10 +12973,6 @@ msgstr "Kann nicht Daten auf Datenträger %s senden"
msgid "cannot send to netlink socket"
msgstr "Kann nicht an netlink-Socket senden"
#, c-format
msgid "cannot send too long command %s (%d bytes)"
msgstr "Kann zu lange Befehle %s (%d Bytes) nicht senden"
#, c-format
msgid "cannot set CPU affinity on process %d"
msgstr "Kann CPU-Affinität für Prozeß %d nicht setzen"
@@ -13069,17 +12995,10 @@ msgstr "Kann Datei-Modus '%s' nicht setzen"
msgid "cannot set file owner '%s'"
msgstr "Kann Datei-Eigentümer '%s' nicht setzen"
msgid "cannot set max memory lower than current memory"
msgstr ""
"Kann maximalen Speicher nicht niedriger als den derzeitigen Speicher setzen"
msgid "cannot set memory higher than max memory"
msgstr ""
"Kann Arbeitsspeicher nicht größer setzen, als maximaler Arbeitsspeicher"
msgid "cannot set memory of an active domain"
msgstr "Kann Speicher einer aktiven Domain nicht setzen"
#, c-format
msgid "cannot set mode of '%s' to %04o"
msgstr "Kann Modus von '%s' nicht auf %04o setzen"
@@ -14083,9 +14002,6 @@ msgstr "dir"
msgid "direct migration"
msgstr "Direkte Migration"
msgid "direct networking type not supported"
msgstr "Direkter Netzwerktyp nicht unterstützt"
#, c-format
msgid ""
"direct setting of the vlan tag is not allowed for hostdev devices using %s "
@@ -15001,17 +14917,6 @@ msgstr "Markierung des Pools %s als automatisch zu starten gescheitert"
msgid "failed to move file to %s "
msgstr "Konnte Datei nicht auf %s verschieben"
#, c-format
msgid "failed to open %s for reading"
msgstr "Öffnen von %s zu Lesezwecken schlug fehl"
#, c-format
msgid "failed to open chardev file: %s"
msgstr "chardev-Datei konnte nicht geöffnet werden: %s"
msgid "failed to open configuration file for reading"
msgstr "Öffnen der Konfiguration zu Lesezwecken schlug fehl"
msgid "failed to open file"
msgstr "Öffnen der Datei fehlgeschlagen"
@@ -15087,10 +14992,6 @@ msgstr "Fehler beim Lesen des libxl Header"
msgid "failed to read metadata length in '%s'"
msgstr "Konnte Metadaten-Länge in '%s' nicht lesen"
#, c-format
msgid "failed to read pid: %s"
msgstr "Fehler beim Lesen der PID: %s"
msgid "failed to read qemu header"
msgstr "Konnte qemu-Header nicht lesen"
@@ -15499,10 +15400,6 @@ msgstr "Angegebene UUID stimmt nicht mit XML-UUID überein"
msgid "got unexpected RPC call prog %d vers %d proc %d type %d"
msgstr "Erhielt unerwarteten RPC-Aufruf prog %d vers %d proc %d type %d"
#, c-format
msgid "got unknown HTTP error code %d"
msgstr "unbekannter HTTP-Fehlercode %d aufgetreten"
msgid "gracefully shutdown a domain"
msgstr "Kontrolliertes Stillegen einer Domain"
@@ -15596,9 +15493,6 @@ msgstr "hostdev %s nicht gefunden"
msgid "hostdev mode '%s' not supported"
msgstr "hostdev-Modus '%s' nicht unterstützt"
msgid "hostdev networking type not supported"
msgstr "hostdev Netzwerktyp nicht unterstützt"
#, c-format
msgid "hostdev subsys type '%s' not supported"
msgstr "hostdev-Subsys-Modus '%s' nicht unterstützt"
@@ -15672,10 +15566,6 @@ msgstr "Vertrauliche sicherheitsrelevante Informationen in XML-Dump einbinden"
msgid "includes the password into the connection URI if available"
msgstr "Enthält das Passwort in das Verbindungs-URI, wenn verfügbar"
#, c-format
msgid "incomplete reply %s"
msgstr "Unvollständige Antwort %s"
msgid "incomplete return information"
msgstr "Unvollständige Zurück Information"
@@ -15750,11 +15640,6 @@ msgstr "Schnittstellenname %s passt nicht in Puffer "
msgid "interface name or MAC address"
msgstr "Schnittstellen-Name oder -MAC-Adresse"
msgid "interface script execution not supported by this driver"
msgstr ""
"Ausführung des Schnittstellen-Skripts wird nicht von diesem Treiber "
"unterstützt"
msgid "interface stats not implemented on this platform"
msgstr "Schnittstellen-Statistiken nicht auf dieser Plattform implementiert"
@@ -15772,9 +15657,6 @@ msgstr "Interner Fehler: %s"
msgid "internal error: bad options in command: '%s'"
msgstr "Interner Fehler: Falsche Optionen mit Befehl: '%s'"
msgid "internal networking type not supported"
msgstr "Interner Netzwerktyp nicht unterstützt"
#, c-format
msgid "internal snapshot for disk %s unsupported for storage type %s"
msgstr "Interner Snapshot für Disk %s nicht für Speicher-Typ %s unterstützt"
@@ -16108,10 +15990,6 @@ msgstr "Ungültiger Knoten Speicher Wert"
msgid "invalid path %s not assigned to domain"
msgstr "Ungültiger Pfad %s keiner Domain zugeordnet"
#, c-format
msgid "invalid path '%s'"
msgstr "Ungültiger Pfad '%s'"
#, c-format
msgid "invalid path, '%s' is not a known interface"
msgstr "Ungültiger Pfad, '%s' ist keine bekannte Schnittstelle"
@@ -16311,13 +16189,6 @@ msgstr "libhal_get_all_devices fehlgeschlagen"
msgid "libnl was not available at build time"
msgstr "libnl war nicht beim Compilieren nicht verfügbar"
#, c-format
msgid "library call %s failed, possibly not supported"
msgstr "Bibliotheksaufruf %s schlug fehl, möglicherweise nicht unterstützt"
msgid "library call failed, possibly not supported"
msgstr "Bibliotheksaufruf schlug fehl, möglicherweise nicht unterstützt"
msgid "libselinux does not support LXC contexts path"
msgstr "libselinux unterstützt nicht den LXC Kontext-Pfad"
@@ -17768,9 +17639,6 @@ msgstr "Keine internalFlags Unterstützung"
msgid "no job is active on the domain"
msgstr "Kein Job aktiv auf der Domain"
msgid "no kernel specified"
msgstr "Kein Kernel angegeben"
msgid "no large enough free extent"
msgstr "Kein Extent mit ausreichender Größe"
@@ -18044,9 +17912,6 @@ msgstr "ok"
msgid "online commit not supported with this QEMU binary"
msgstr "Online Übergabe wird von dieser QEMU-Programmdatei nicht unterstützt"
msgid "only TCP listen is supported for chr device"
msgstr "Lediglich TCP listen wird für das chr-Gerät unterstützt"
msgid "only a single TPM device is supported"
msgstr "Nur eine einzelne TPM-Einheit ist unterstützt"
@@ -19033,9 +18898,6 @@ msgstr "ausschalten"
msgid "shutdown"
msgstr "Herunterfahren"
msgid "shutdown operation failed"
msgstr "Herunterfahren-Operation gescheitert"
msgid "shutting down"
msgstr "Herunterfahren"
@@ -19684,12 +19546,6 @@ msgstr "udev_monitor_new_from_netlink gab NULL zurück"
msgid "uid and gid should be mapped both"
msgstr "uid und gid sollten beide zugeordnet werden"
msgid "uml state driver is not active"
msgstr "UML-Status-Treiber nicht aktiv"
msgid "umlStartup: out of memory"
msgstr "umlStartup: kein Speicher verfügbar"
#, c-format
msgid "unable to access device %s\n"
msgstr "kann auf Datei %s nicht zugreifen\n"
@@ -20018,14 +19874,6 @@ msgstr "Unerwarteter QEMU URI-Pfad '%s', versuche qemu:///session"
msgid "unexpected QEMU URI path '%s', try qemu:///system"
msgstr "Unerwarteter QEMU URI-Pfad '%s', versuche qemu:///system"
#, c-format
msgid "unexpected UML URI path '%s', try uml:///session"
msgstr "Nicht erwarteter UML URI-Pfad '%s', versuche uml:///session"
#, c-format
msgid "unexpected UML URI path '%s', try uml:///system"
msgstr "Nicht erwarteter UML URI-Pfad '%s', versuche uml:///system"
#, c-format
msgid "unexpected accessmode %d"
msgstr "Unerwarteter Zugriffsmodus %d"
@@ -20987,10 +20835,6 @@ msgstr "Nicht unterstützter Authentifikationstyps %d"
msgid "unsupported chardev '%s'"
msgstr "Nicht unterstütztes Zeichengerät »%s«"
#, c-format
msgid "unsupported chr device type %d"
msgstr "Nicht unterstützter chr-Gerätetyp %d"
#, c-format
msgid "unsupported chr device type '%s'"
msgstr "Nicht unterstützter chr Einheits-Typ '%s'"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: German (Switzerland)\n"

View File

@@ -1,5 +1,5 @@
# Libvirt package strings.
# Copyright (C) 2018 Red Hat, Inc.
# Copyright (C) 2019 Red Hat, Inc.
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+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/"

View File

@@ -1,5 +1,5 @@
# Libvirt package strings.
# Copyright (C) 2018 Red Hat, Inc.
# Copyright (C) 2019 Red Hat, Inc.
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+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/"
@@ -1259,12 +1259,6 @@ msgstr "Can't load config file: %s: %s"
msgid "Can't modify device type '%s'"
msgstr "Can't modify device type '%s'"
msgid "Can't parse barrier from "
msgstr "Can't parse barrier from "
msgid "Can't parse limit from "
msgstr "Can't parse limit from "
msgid "Can't parse prlctl output"
msgstr "Can't parse prlctl output"
@@ -1428,10 +1422,6 @@ msgstr "Cannot find '%s' in path"
msgid "Cannot find CPU model with PVR 0x%08x"
msgstr "Cannot find CPU model with PVR 0x%08x"
#, c-format
msgid "Cannot find UML kernel %s"
msgstr "Cannot find UML kernel %s"
#, c-format
msgid "Cannot find program %d version %d"
msgstr "Cannot find program %d version %d"
@@ -1897,10 +1887,6 @@ msgid ""
msgstr ""
"Close callback for domain %s already registered with another connection %p"
#, c-format
msgid "Command %s too long for destination"
msgstr "Command %s too long for destination"
msgid "Commit aborted"
msgstr "Commit aborted"
@@ -5537,9 +5523,6 @@ msgstr "IP %s too big for destination"
msgid "IP address lookup for host '%s' failed: %s"
msgstr "IP address lookup for host '%s' failed: %s"
msgid "IP address not supported for ethernet interface"
msgstr "IP address not supported for ethernet interface"
msgid ""
"IP parameter must be given since libvirt was not compiled with IP address "
"learning support"
@@ -6905,9 +6888,6 @@ msgstr "NOTE"
msgid "NULL NetworkDef"
msgstr "NULL NetworkDef"
msgid "NULL or empty path"
msgstr "NULL or empty path"
#, c-format
msgid "NULL string parameter '%s'"
msgstr "NULL string parameter '%s'"
@@ -6995,10 +6975,6 @@ msgstr "Network '%s' is already running"
msgid "Network '%s' is still running"
msgstr "Network '%s' is still running"
#, c-format
msgid "Network '%s' not found"
msgstr "Network '%s' not found"
msgid "Network config change transaction committed\n"
msgstr "Network config change transaction committed\n"
@@ -7153,9 +7129,6 @@ msgstr "No category range available"
msgid "No channel command provided"
msgstr "No channel command provided"
msgid "No controllers are mounted"
msgstr "No controllers are mounted"
msgid "No data supplied for <initarg> element"
msgstr "No data supplied for <initarg> element"
@@ -8784,12 +8757,6 @@ msgstr "System is not available"
msgid "System lacks NETNS support"
msgstr "System lacks NETNS support"
msgid "TCP client networking type not supported"
msgstr "TCP client networking type not supported"
msgid "TCP server networking type not supported"
msgstr "TCP server networking type not supported"
#, c-format
msgid "TLS handshake failed %s"
msgstr "TLS handshake failed %s"
@@ -9324,9 +9291,6 @@ msgstr "This function is not supported on WIN32 platform"
msgid "This host is not managed by a vCenter"
msgstr "This host is not managed by a vCentre"
msgid "This type of device cannot be hot unplugged"
msgstr "This type of device cannot be hot unplugged"
msgid "This type of disk cannot be hot unplugged"
msgstr "This type of disk cannot be hot unplugged"
@@ -10476,9 +10440,6 @@ msgstr "Unable to set STP delay on %s on this platform"
msgid "Unable to set STP on %s on this platform"
msgstr "Unable to set STP on %s on this platform"
msgid "Unable to set VM logfile close-on-exec flag"
msgstr "Unable to set VM logfile close-on-exec flag"
msgid "Unable to set cloexec flag"
msgstr "Unable to set cloexec flag"
@@ -10730,10 +10691,6 @@ msgstr "Unexpected volume path format: %s"
msgid "Unhandled event %d for monitor fd %d"
msgstr "Unhandled event %d for monitor fd %d"
#, c-format
msgid "Unix path %s too long for destination"
msgstr "Unix path %s too long for destination"
msgid "Unknown"
msgstr "Unknown"
@@ -11883,15 +11840,9 @@ msgstr "cannot allocate placeholder nlhandle for netlink"
msgid "cannot apply process capabilities %d"
msgstr "cannot apply process capabilities %d"
msgid "cannot attach device on inactive domain"
msgstr "cannot attach device on inactive domain"
msgid "cannot become session leader"
msgstr "cannot become session leader"
msgid "cannot bind socket"
msgstr "cannot bind socket"
msgid "cannot block signals"
msgstr "cannot block signals"
@@ -12088,9 +12039,6 @@ msgstr "cannot delete inactive domain with %d snapshots"
msgid "cannot delete snapshots of running domain"
msgstr "cannot delete snapshots of running domain"
msgid "cannot detach device on inactive domain"
msgstr "cannot detach device on inactive domain"
#, c-format
msgid "cannot determine filesystem for '%s'"
msgstr "cannot determine filesystem for '%s'"
@@ -12296,9 +12244,6 @@ msgstr "cannot initialise cert object: %s"
msgid "cannot initialize condition variable"
msgstr "cannot initialise condition variable"
msgid "cannot initialize inotify"
msgstr "cannot initialise inotify"
msgid ""
"cannot initialize libxenlight context, probably not running in a Xen Dom0, "
"disabling driver"
@@ -12427,9 +12372,6 @@ msgstr "cannot open macvtap tap device %s"
msgid "cannot open path '%s'"
msgstr "cannot open path '%s'"
msgid "cannot open socket"
msgstr "cannot open socket"
#, c-format
msgid "cannot open volume '%s'"
msgstr "cannot open volume '%s'"
@@ -12614,10 +12556,6 @@ msgstr "cannot parse vbd filename, missing driver type"
msgid "cannot parse vendor id %s"
msgstr "cannot parse vendor id %s"
#, c-format
msgid "cannot parse version %s"
msgstr "cannot parse version %s"
#, c-format
msgid "cannot parse video heads '%s'"
msgstr "cannot parse video heads '%s'"
@@ -12720,10 +12658,6 @@ msgstr "cannot read header '%s'"
msgid "cannot read mount list '%s'"
msgstr "cannot read mount list '%s'"
#, c-format
msgid "cannot read reply %s"
msgstr "cannot read reply %s"
#, c-format
msgid "cannot receive data from volume %s"
msgstr "cannot receive data from volume %s"
@@ -12799,10 +12733,6 @@ msgstr "cannot seek to beginning of file '%s'"
msgid "cannot seek to start of '%s'"
msgstr "cannot seek to start of '%s'"
#, c-format
msgid "cannot send command %s"
msgstr "cannot send command %s"
#, c-format
msgid "cannot send data to volume %s"
msgstr "cannot send data to volume %s"
@@ -12810,10 +12740,6 @@ msgstr "cannot send data to volume %s"
msgid "cannot send to netlink socket"
msgstr "cannot send to netlink socket"
#, c-format
msgid "cannot send too long command %s (%d bytes)"
msgstr "cannot send too long command %s (%d bytes)"
#, c-format
msgid "cannot set CPU affinity on process %d"
msgstr "cannot set CPU affinity on process %d"
@@ -12836,15 +12762,9 @@ msgstr "cannot set file mode '%s'"
msgid "cannot set file owner '%s'"
msgstr "cannot set file owner '%s'"
msgid "cannot set max memory lower than current memory"
msgstr "cannot set max memory lower than current memory"
msgid "cannot set memory higher than max memory"
msgstr "cannot set memory higher than max memory"
msgid "cannot set memory of an active domain"
msgstr "cannot set memory of an active domain"
#, c-format
msgid "cannot set mode of '%s' to %04o"
msgstr "cannot set mode of '%s' to %04o"
@@ -13817,9 +13737,6 @@ msgstr "dir"
msgid "direct migration"
msgstr "direct migration"
msgid "direct networking type not supported"
msgstr "direct networking type not supported"
#, c-format
msgid ""
"direct setting of the vlan tag is not allowed for hostdev devices using %s "
@@ -14748,17 +14665,6 @@ msgstr "failed to mark pool %s as autostarted"
msgid "failed to move file to %s "
msgstr "failed to move file to %s "
#, c-format
msgid "failed to open %s for reading"
msgstr "failed to open %s for reading"
#, c-format
msgid "failed to open chardev file: %s"
msgstr "failed to open chardev file: %s"
msgid "failed to open configuration file for reading"
msgstr "failed to open configuration file for reading"
msgid "failed to open file"
msgstr "failed to open file"
@@ -14840,10 +14746,6 @@ msgstr "failed to read libxl header"
msgid "failed to read metadata length in '%s'"
msgstr "failed to read metadata length in '%s'"
#, c-format
msgid "failed to read pid: %s"
msgstr "failed to read pid: %s"
msgid "failed to read qemu header"
msgstr "failed to read qemu header"
@@ -15237,10 +15139,6 @@ msgstr "given uuid does not match XML uuid"
msgid "got unexpected RPC call prog %d vers %d proc %d type %d"
msgstr "got unexpected RPC call prog %d vers %d proc %d type %d"
#, c-format
msgid "got unknown HTTP error code %d"
msgstr "got unknown HTTP error code %d"
msgid "gracefully shutdown a domain"
msgstr "gracefully shutdown a domain"
@@ -15336,9 +15234,6 @@ msgstr "hostdev %s not found"
msgid "hostdev mode '%s' not supported"
msgstr "hostdev mode '%s' not supported"
msgid "hostdev networking type not supported"
msgstr "hostdev networking type not supported"
#, c-format
msgid "hostdev subsys type '%s' not supported"
msgstr "hostdev subsys type '%s' not supported"
@@ -15414,10 +15309,6 @@ msgstr "includes the password into the connection URI if available"
msgid "incomplete metadata in '%s'"
msgstr "incomplete metadata in '%s'"
#, c-format
msgid "incomplete reply %s"
msgstr "incomplete reply %s"
msgid "incomplete return information"
msgstr "incomplete return information"
@@ -15492,9 +15383,6 @@ msgstr "interface name %s does not fit into buffer "
msgid "interface name or MAC address"
msgstr "interface name or MAC address"
msgid "interface script execution not supported by this driver"
msgstr "interface script execution not supported by this driver"
msgid "interface stats not implemented on this platform"
msgstr "interface stats not implemented on this platform"
@@ -15512,9 +15400,6 @@ msgstr "internal error: %s"
msgid "internal error: bad options in command: '%s'"
msgstr "internal error: bad options in command: '%s'"
msgid "internal networking type not supported"
msgstr "internal networking type not supported"
#, c-format
msgid "internal snapshot for disk %s unsupported for storage type %s"
msgstr "internal snapshot for disk %s unsupported for storage type %s"
@@ -15852,10 +15737,6 @@ msgstr "invalid node memory value"
msgid "invalid path %s not assigned to domain"
msgstr "invalid path %s not assigned to domain"
#, c-format
msgid "invalid path '%s'"
msgstr "invalid path '%s'"
#, c-format
msgid "invalid path, '%s' is not a known interface"
msgstr "invalid path, '%s' is not a known interface"
@@ -16058,13 +15939,6 @@ msgstr "libhal_get_all_devices failed"
msgid "libnl was not available at build time"
msgstr "libnl was not available at build time"
#, c-format
msgid "library call %s failed, possibly not supported"
msgstr "library call %s failed, possibly not supported"
msgid "library call failed, possibly not supported"
msgstr "library call failed, possibly not supported"
msgid "libselinux does not support LXC contexts path"
msgstr "libselinux does not support LXC contexts path"
@@ -17493,9 +17367,6 @@ msgstr "no internalFlags support"
msgid "no job is active on the domain"
msgstr "no job is active on the domain"
msgid "no kernel specified"
msgstr "no kernel specified"
msgid "no large enough free extent"
msgstr "no large enough free extent"
@@ -17760,9 +17631,6 @@ msgstr "ok"
msgid "online commit not supported with this QEMU binary"
msgstr "online commit not supported with this QEMU binary"
msgid "only TCP listen is supported for chr device"
msgstr "only TCP listen is supported for chr device"
msgid "only a single TPM device is supported"
msgstr "only a single TPM device is supported"
@@ -18722,9 +18590,6 @@ msgstr "shut off"
msgid "shutdown"
msgstr "shutdown"
msgid "shutdown operation failed"
msgstr "shutdown operation failed"
msgid "shutting down"
msgstr "shutting down"
@@ -19356,12 +19221,6 @@ msgstr "udev_monitor_new_from_netlink returned NULL"
msgid "uid and gid should be mapped both"
msgstr "uid and gid should be mapped both"
msgid "uml state driver is not active"
msgstr "uml state driver is not active"
msgid "umlStartup: out of memory"
msgstr "umlStartup: out of memory"
#, c-format
msgid "unable to access device %s\n"
msgstr "unable to access device %s\n"
@@ -19687,14 +19546,6 @@ msgstr "unexpected QEMU URI path '%s', try qemu:///session"
msgid "unexpected QEMU URI path '%s', try qemu:///system"
msgstr "unexpected QEMU URI path '%s', try qemu:///system"
#, c-format
msgid "unexpected UML URI path '%s', try uml:///session"
msgstr "unexpected UML URI path '%s', try uml:///session"
#, c-format
msgid "unexpected UML URI path '%s', try uml:///system"
msgstr "unexpected UML URI path '%s', try uml:///system"
#, c-format
msgid "unexpected accessmode %d"
msgstr "unexpected accessmode %d"
@@ -20653,10 +20504,6 @@ msgstr "unsupported authentication type %d"
msgid "unsupported chardev '%s'"
msgstr "unsupported chardev '%s'"
#, c-format
msgid "unsupported chr device type %d"
msgstr "unsupported chr device type %d"
#, c-format
msgid "unsupported chr device type '%s'"
msgstr "unsupported chr device type '%s'"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: Esperanto\n"

View File

@@ -1,5 +1,5 @@
# Libvirt package strings.
# Copyright (C) 2018 Red Hat, Inc.
# Copyright (C) 2019 Red Hat, Inc.
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
@@ -26,7 +26,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: 2018-03-10 04:16+0000\n"
"Last-Translator: Javier Blanco <javi.deb@gmail.com>\n"
"Language-Team: Spanish (http://www.transifex.com/projects/p/libvirt/language/"
@@ -1187,12 +1187,6 @@ msgstr "No se puede cargar el archivo config: %s: %s"
msgid "Can't modify device type '%s'"
msgstr "No se puede modificar tipo de dispositivo '%s'"
msgid "Can't parse barrier from "
msgstr "No se pudo leer barrera de"
msgid "Can't parse limit from "
msgstr "No se pudo leer límite de"
msgid "Can't parse prlctl output"
msgstr "No se puede leer salida prlctl"
@@ -1367,10 +1361,6 @@ msgstr "No se encontró '%s' en ruta"
msgid "Cannot find CPU model with PVR 0x%08x"
msgstr "No se puede encontrar el modelo de CPU con PVR 0x%08x"
#, c-format
msgid "Cannot find UML kernel %s"
msgstr "No es posible encontrar un kernel %s UML"
#, c-format
msgid "Cannot find program %d version %d"
msgstr "No se puede hallar la versión %d del programa %d"
@@ -1850,10 +1840,6 @@ msgid ""
"Close callback for domain %s already registered with another connection %p"
msgstr "Close callback para dominio %s ya está registrada con otra conexión %p"
#, c-format
msgid "Command %s too long for destination"
msgstr "El comando %s es demasiado extenso para el destino"
msgid "Commit aborted"
msgstr "Envío interrumpido"
@@ -5599,9 +5585,6 @@ msgstr "La IP %s es demasiado extensa para el destino"
msgid "IP address lookup for host '%s' failed: %s"
msgstr "Falló la búsqueda de una dirección IP para el equipo '%s': %s"
msgid "IP address not supported for ethernet interface"
msgstr "La dirección IP no tiene soporte para interfaz Ethernet"
msgid ""
"IP parameter must be given since libvirt was not compiled with IP address "
"learning support"
@@ -6946,9 +6929,6 @@ msgstr "NOTA"
msgid "NULL NetworkDef"
msgstr "NULL NetworkDef"
msgid "NULL or empty path"
msgstr "ruta vacía o NULL"
#, c-format
msgid "NULL string parameter '%s'"
msgstr "Parámetro de cadena NULL '%s'"
@@ -7042,10 +7022,6 @@ msgstr "La red '%s' ya se encuentra en ejecución"
msgid "Network '%s' is still running"
msgstr "La red '%s' aún está ejecutándose"
#, c-format
msgid "Network '%s' not found"
msgstr "No se encuentra la red '%s'"
msgid "Network config change transaction committed\n"
msgstr ""
"Transacción de cambio de configuración de red enviada\n"
@@ -7209,9 +7185,6 @@ msgstr "No hay rango de categorías disponible"
msgid "No channel command provided"
msgstr "No se proporcionó comando channel "
msgid "No controllers are mounted"
msgstr "No hay controladores montados"
msgid "No data supplied for <initarg> element"
msgstr "No hay datos provistos para elemento <initarg> "
@@ -8869,12 +8842,6 @@ msgstr "Sistema no está disponible"
msgid "System lacks NETNS support"
msgstr "El sistema adolece de soporte NETNS"
msgid "TCP client networking type not supported"
msgstr "no hay soporte para clientes de red tipo TCP"
msgid "TCP server networking type not supported"
msgstr "tipo de servidor de red TCP no soportado"
#, c-format
msgid "TLS handshake failed %s"
msgstr "Falló el protocolo de enlace TLS %s"
@@ -9457,9 +9424,6 @@ msgstr "Esta función no tiene soporte en plataforma WIN32"
msgid "This host is not managed by a vCenter"
msgstr "Este equipo no está siendo administrado por un vCenter"
msgid "This type of device cannot be hot unplugged"
msgstr "Este tipo de dispositivo no puede ser desconectado automáticamente"
msgid "This type of disk cannot be hot unplugged"
msgstr "Este tipo de disco no puede ser desconectado automáticamente"
@@ -10595,10 +10559,6 @@ msgstr "No se puede establecer demora STP en %s en esta plataforma"
msgid "Unable to set STP on %s on this platform"
msgstr "No se puede establecer STP en %s en esta plataforma "
msgid "Unable to set VM logfile close-on-exec flag"
msgstr ""
"No es posible establecer marca de archivo de registro de MV close-on-exec"
msgid "Unable to set cloexec flag"
msgstr "No se pudo establecer indicador cloexec"
@@ -10855,10 +10815,6 @@ msgstr "Formato de ruta de volumen inesperado: %s"
msgid "Unhandled event %d for monitor fd %d"
msgstr "Evento complejo %d para monitor fd %d"
#, c-format
msgid "Unix path %s too long for destination"
msgstr "La ruta unix %s es demasiado extensa para el destino"
msgid "Unknown"
msgstr "Desconocido"
@@ -12038,15 +11994,9 @@ msgstr "No se puede asignar marcador de sitio nlhandle para netlink"
msgid "cannot apply process capabilities %d"
msgstr "No se pueden aplicar las capacidades del proceso %d"
msgid "cannot attach device on inactive domain"
msgstr "no es posible adjuntar un dispositivo a un dominio inactivo"
msgid "cannot become session leader"
msgstr "no es posible convertirse en líder de sesión"
msgid "cannot bind socket"
msgstr "no es posible asociar socket"
msgid "cannot block signals"
msgstr "no es posible bloquear señales"
@@ -12249,9 +12199,6 @@ msgstr "No se puede borrar dominio inactivo con instantáneas %d"
msgid "cannot delete snapshots of running domain"
msgstr "no es posible eliminar capturas instantáneas del dominio en ejecución"
msgid "cannot detach device on inactive domain"
msgstr "no es posible desconectar el disco en un dominio inactivo"
#, c-format
msgid "cannot determine filesystem for '%s'"
msgstr "no es posible determinar el sistema de archivos de '%s'"
@@ -12465,9 +12412,6 @@ msgstr "No se puede inicializar objeto de certificado:%s"
msgid "cannot initialize condition variable"
msgstr "No es posible inicializar la variable de condición"
msgid "cannot initialize inotify"
msgstr "no es posible iniciar inotify"
msgid "cannot initialize monitor condition"
msgstr "no es posible inicializar condición de monitor"
@@ -12591,9 +12535,6 @@ msgstr "no es posible abrir el dispositivo Tap macvtap %s"
msgid "cannot open path '%s'"
msgstr "no es posible abrir la ruta '%s'"
msgid "cannot open socket"
msgstr "no fue posible abrir socket"
#, c-format
msgid "cannot open volume '%s'"
msgstr "no e posible abrir el volumen '%s'"
@@ -12782,10 +12723,6 @@ msgstr "no es posible analizar nombre de archivo"
msgid "cannot parse vendor id %s"
msgstr "No es posible analizar el ID del proveedor %s"
#, c-format
msgid "cannot parse version %s"
msgstr "no es posible analizar versión %s"
#, c-format
msgid "cannot parse video heads '%s'"
msgstr "No es posible analizar cabezales de vídeo '%s'"
@@ -12891,10 +12828,6 @@ msgstr "no es posible leer el encabezadio '%s'"
msgid "cannot read mount list '%s'"
msgstr "no es posible leer la lista de montaje '%s'"
#, c-format
msgid "cannot read reply %s"
msgstr "no es posible leer la respuestas %s"
#, c-format
msgid "cannot receive data from volume %s"
msgstr "No se pueden recibir datos desde el volumen %s "
@@ -12973,10 +12906,6 @@ msgstr "no es posible buscar en el principio del archivo '%s'"
msgid "cannot seek to start of '%s'"
msgstr "No se puede tratar de iniciar de '%s'"
#, c-format
msgid "cannot send command %s"
msgstr "no es posible enviar el comando %s"
#, c-format
msgid "cannot send data to volume %s"
msgstr "No se pueden enviar datos a 'volume %s"
@@ -12984,10 +12913,6 @@ msgstr "No se pueden enviar datos a 'volume %s"
msgid "cannot send to netlink socket"
msgstr "no es posible enviar hacia el socket netlink"
#, c-format
msgid "cannot send too long command %s (%d bytes)"
msgstr "no es posible enviar comando %s tan extenso (%d bytes)"
#, c-format
msgid "cannot set CPU affinity on process %d"
msgstr "No es posible definir afinidad de CPU en el proceso %d"
@@ -13010,18 +12935,10 @@ msgstr "no es posible definir el modo de archivo '%s'"
msgid "cannot set file owner '%s'"
msgstr "no es posible establecer el dueño del archivo '%s'"
msgid "cannot set max memory lower than current memory"
msgstr ""
"No es posible establecer que la memoria máxima sea menor que la memoria "
"actual"
msgid "cannot set memory higher than max memory"
msgstr ""
"No es posible establecer que la memoria sea mayor que la memoria máxima"
msgid "cannot set memory of an active domain"
msgstr "no es posible establecer la memoria de un dominio activo"
#, c-format
msgid "cannot set mode of '%s' to %04o"
msgstr "no es posible definir el modo de '%s' a %04o"
@@ -14016,9 +13933,6 @@ msgstr "dir"
msgid "direct migration"
msgstr "migración directa"
msgid "direct networking type not supported"
msgstr "no existe soporte para tipo de entorno de red directa"
#, c-format
msgid ""
"direct setting of the vlan tag is not allowed for hostdev devices using %s "
@@ -14947,17 +14861,6 @@ msgstr "Falló al marcar el grupo %s como iniciable automáticamente"
msgid "failed to move file to %s "
msgstr "No se pudo desplazar archivo a %s"
#, c-format
msgid "failed to open %s for reading"
msgstr "Falló al abrir %s para lectura"
#, c-format
msgid "failed to open chardev file: %s"
msgstr "falló al abrir el archivo de dispositivo de caracteres: %s"
msgid "failed to open configuration file for reading"
msgstr "Falló al abrir el archivo de configuración para lectura"
msgid "failed to open file"
msgstr "Falló al abrir el archivo"
@@ -15034,10 +14937,6 @@ msgstr "Falló al leer encabezado libxl"
msgid "failed to read metadata length in '%s'"
msgstr "Falló al leer la longitud de los metadatos en '%s'"
#, c-format
msgid "failed to read pid: %s"
msgstr "Falló al leer pid: %s"
msgid "failed to read qemu header"
msgstr "Falló al leer el encabezado QEMU"
@@ -15444,10 +15343,6 @@ msgstr "UUID dado no coincide"
msgid "got unexpected RPC call prog %d vers %d proc %d type %d"
msgstr "Se obtuvo llamada RPC inesperada prog %d vers %d proc %d tipo %d"
#, c-format
msgid "got unknown HTTP error code %d"
msgstr "se ha obtenido un código de error HTTP %d desconocido"
msgid "gracefully shutdown a domain"
msgstr "apagar un dominio de manera adecuada"
@@ -15544,9 +15439,6 @@ msgstr "No se encontró hostdev %s"
msgid "hostdev mode '%s' not supported"
msgstr "el modo '%s' de dispositivo de host no está soportado"
msgid "hostdev networking type not supported"
msgstr "tipo de conexión hostdev no tiene soporte"
#, c-format
msgid "hostdev subsys type '%s' not supported"
msgstr "el tipo '%s' de subsistema de dispositivo de host no está soportado"
@@ -15619,10 +15511,6 @@ msgstr "incluye información de seguridad importante en la descarga XML"
msgid "includes the password into the connection URI if available"
msgstr "Incluye la contraseña en la conexión URI si está disponible"
#, c-format
msgid "incomplete reply %s"
msgstr "respuesta %s incompleta"
msgid "incomplete return information"
msgstr "información de retorno incompleta"
@@ -15698,10 +15586,6 @@ msgstr "la interfaz denominada %s no cabe en el búfer"
msgid "interface name or MAC address"
msgstr "nombre de interfaz o dirección MAC"
msgid "interface script execution not supported by this driver"
msgstr ""
"Ejecución de script de interfaz no está soportada por este controlador"
msgid "interface stats not implemented on this platform"
msgstr "Interfaz de estadísticas no se implementó en esta plataforma"
@@ -15719,9 +15603,6 @@ msgstr "Error interno: %s"
msgid "internal error: bad options in command: '%s'"
msgstr "Error interno: opciones erradas en comando: '%s'"
msgid "internal networking type not supported"
msgstr "tipo interno de red no soportado"
#, c-format
msgid "internal snapshot for disk %s unsupported for storage type %s"
msgstr ""
@@ -16060,10 +15941,6 @@ msgstr "Valor de memoria de nodo inválido"
msgid "invalid path %s not assigned to domain"
msgstr "ruta inválida '%s' no asignada al dominio"
#, c-format
msgid "invalid path '%s'"
msgstr "Ruta inválida '%s'"
#, c-format
msgid "invalid path, '%s' is not a known interface"
msgstr "ruta inválida, '%s' no es una interfaz conocida"
@@ -16264,13 +16141,6 @@ msgstr "falló libhal_get_all_devices"
msgid "libnl was not available at build time"
msgstr "libnl no estaba disponible en el momento de la contrucción"
#, c-format
msgid "library call %s failed, possibly not supported"
msgstr "Falló el llamado a la biblioteca %s, posiblemente no tenga soporte"
msgid "library call failed, possibly not supported"
msgstr "Falló el llamado a la biblioteca, posiblemente no tenga soporte"
msgid "libselinux does not support LXC contexts path"
msgstr "libselinux no soporta ruta de contextos LXC"
@@ -17737,9 +17607,6 @@ msgstr "No hay soporte de internalFlags"
msgid "no job is active on the domain"
msgstr "no existe ningún trabajo activo en el dominio"
msgid "no kernel specified"
msgstr "no se ha especificado un kernel"
msgid "no large enough free extent"
msgstr "el espacio libre no es lo suficientemente extenso"
@@ -18019,9 +17886,6 @@ msgstr "ok"
msgid "online commit not supported with this QEMU binary"
msgstr "El envío en línea no tiene soporte con el binario QEMU"
msgid "only TCP listen is supported for chr device"
msgstr "para dispositivos de caracteres solo hay soporte de tipo TCP listen"
msgid "only a single TPM device is supported"
msgstr "solo se admite un dispositivo TPM individual "
@@ -19001,9 +18865,6 @@ msgstr "apagado"
msgid "shutdown"
msgstr "Apagado"
msgid "shutdown operation failed"
msgstr "Falló la operación de desconexión"
msgid "shutting down"
msgstr "Apagando"
@@ -19651,12 +19512,6 @@ msgstr "udev_monitor_new_from_netlink devolvió el valor NULL"
msgid "uid and gid should be mapped both"
msgstr "Tanto UID como GID se deben mapear"
msgid "uml state driver is not active"
msgstr "el estado de controlador uml es no activo"
msgid "umlStartup: out of memory"
msgstr "umlStartup: fuera de memoria"
#, c-format
msgid "unable to access device %s\n"
msgstr "No se pudo acceder a dispositivo %s\n"
@@ -19984,14 +19839,6 @@ msgstr "ruta QEMU URI '%s' inesperada, intente qemu:///session"
msgid "unexpected QEMU URI path '%s', try qemu:///system"
msgstr "ruta QEMU URI '%s' inesperada, intente qemu:///system "
#, c-format
msgid "unexpected UML URI path '%s', try uml:///session"
msgstr "ruta UML URI '%s' inesperado, intente uml:///session "
#, c-format
msgid "unexpected UML URI path '%s', try uml:///system"
msgstr "ruta UML URI '%s' inesperado, intente uml:///system "
#, c-format
msgid "unexpected accessmode %d"
msgstr "modo de acceso %d no esperado"
@@ -20951,10 +20798,6 @@ msgstr "tipo de autenticación %d no soportado"
msgid "unsupported chardev '%s'"
msgstr "chardev sin soporte '%s'"
#, c-format
msgid "unsupported chr device type %d"
msgstr "tipo de dispositivo de caracteres %d no soportado"
#, c-format
msgid "unsupported chr device type '%s'"
msgstr "unsupported chr device type '%s'"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.3.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: 2018-04-24 06:15+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Estonian (http://www.transifex.com/projects/p/fedora/language/"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.3.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: 2018-04-24 06:19+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Basque (Spain) (http://www.transifex.com/projects/p/fedora/"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: Persian\n"

View File

@@ -1,5 +1,5 @@
# Libvirt package strings.
# Copyright (C) 2018 Red Hat, Inc.
# Copyright (C) 2019 Red Hat, Inc.
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: 2017-03-26 10:24+0000\n"
"Last-Translator: Jiri Grönroos <jiri.gronroos@iki.fi>\n"
"Language-Team: Finnish (http://www.transifex.com/projects/p/fedora/language/"
@@ -854,13 +854,6 @@ msgstr "kirjastoversion saanti epäonnistui"
msgid "failed to mark network %s as autostarted"
msgstr "verkon %s merkitseminen automaattisesti käynnistyväksi epäonnistui"
#, c-format
msgid "failed to open %s for reading"
msgstr "tiedoston %s avaaminen luettavaksi epäonnistui"
msgid "failed to open configuration file for reading"
msgstr "asetustiedoston avaaminen luettavaksi epäonnistui"
msgid "failed to open file"
msgstr "ei voitu avata tiedostoa"
@@ -914,10 +907,6 @@ msgstr "hae toimialueen verkkoliitäntätilastot"
msgid "getting time of day"
msgstr "haetaan kellonaika"
#, c-format
msgid "got unknown HTTP error code %d"
msgstr "saatiin tuntematon HTTP-virhekoodi %d"
msgid "gracefully shutdown a domain"
msgstr "sammuta toimialue siististi"
@@ -954,13 +943,6 @@ msgstr "virheellinen verkko-osoitin kohteessa"
msgid "invalid network pointer in %s"
msgstr "virheellinen verkko-osoitin kohteessa %s"
#, c-format
msgid "library call %s failed, possibly not supported"
msgstr "kirjastokutsu %s epäonnistui, sitä ei ehkä tueta"
msgid "library call failed, possibly not supported"
msgstr "kirjastokutsu epäonnistui, sitä ei ehkä tueta"
msgid "list domains"
msgstr "luetteloi toimialueet"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: Filipino\n"

View File

@@ -1,5 +1,5 @@
# Libvirt package strings.
# Copyright (C) 2018 Red Hat, Inc.
# Copyright (C) 2019 Red Hat, Inc.
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
@@ -23,7 +23,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: 2015-02-26 09:47+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: French <trans-fr@lists.fedoraproject.org>\n"
@@ -2624,13 +2624,6 @@ msgstr "impossible de marquer le réseau %s en démarrage automatique"
msgid "failed to mark pool %s as autostarted"
msgstr "impossible de démarrer automatiquement le pool %s"
#, c-format
msgid "failed to open %s for reading"
msgstr "impossible d'ouvrir %s en lecture"
msgid "failed to open configuration file for reading"
msgstr "impossible d'ouvrir le fichier pour la lecture de la configuration"
msgid "failed to open file"
msgstr "impossible d'ouvrir le fichier"
@@ -2715,10 +2708,6 @@ msgstr "obtenir les statistiques d'une interface réseau pour un domaine"
msgid "getting time of day"
msgstr "récupération de l'heure du jour"
#, c-format
msgid "got unknown HTTP error code %d"
msgstr "réception d'un code d'erreur HTTP %d inconnu"
msgid "gracefully shutdown a domain"
msgstr "arrêter un domaine proprement"
@@ -2895,13 +2884,6 @@ msgstr ""
"les remplacements d'étiquettes nécessitent que le réétiquetage soit activé "
"au niveau du domaine"
#, c-format
msgid "library call %s failed, possibly not supported"
msgstr "échec de l'appel de la bibliothèque %s, elle n'est peut être pas gérée"
msgid "library call failed, possibly not supported"
msgstr "échec de l'appel de la bibliothèque, elle n'est peut être pas gérée"
msgid "list devices in a tree"
msgstr "énumérer les périphériques en arbre"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: Friulian\n"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: Irish\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.3.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: 2018-04-24 06:22+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Galician (http://www.transifex.com/projects/p/fedora/language/"

View File

@@ -1,5 +1,5 @@
# Libvirt package strings.
# Copyright (C) 2018 Red Hat, Inc.
# Copyright (C) 2019 Red Hat, Inc.
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
@@ -14,7 +14,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: 2015-02-23 06:16+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Gujarati (http://www.transifex.com/projects/p/libvirt/"
@@ -1271,12 +1271,6 @@ msgstr "રૂપરેખાંકન ફાઇલને લાવી શકા
msgid "Can't modify device type '%s'"
msgstr "ઉપકરણ પ્રકાર '%s' ને બદલી શકાતુ નથી"
msgid "Can't parse barrier from "
msgstr "તેમાંથી બેરિઅર પદચ્છેદન કરી શકાતુ નથી"
msgid "Can't parse limit from "
msgstr "તેમાંથી મર્યાદાનુ પદચ્છેદન કરી શકાતુ નથી "
msgid "Can't parse prlctl output"
msgstr "prlctl આઉટપુટનું પદચ્છેદન કરી શકાતુ નથી"
@@ -1445,10 +1439,6 @@ msgstr "પાથમાં '%s' ને શોધી શકાતુ નથી"
msgid "Cannot find CPU model with PVR 0x%08x"
msgstr "PVR 0x%08x સાથે CPU મોડલને શોધી શકાતુ નથી"
#, c-format
msgid "Cannot find UML kernel %s"
msgstr "UML કર્નલ %s ને શોધી શકાતુ નથી"
#, c-format
msgid "Cannot find program %d version %d"
msgstr "કાર્યક્રમ %d આવૃત્તિ %d ને શોધી શકાતુ નથી"
@@ -1915,10 +1905,6 @@ msgid ""
"Close callback for domain %s already registered with another connection %p"
msgstr "ડોમેઇન %s માટે બંધ કોલબેક બીજા જોડાણ %p સાથે પહેલેથી રજીસ્ટર થયેલ છે"
#, c-format
msgid "Command %s too long for destination"
msgstr "આદેશ %s એ લક્ષ્ય માટે ઘણું લાંબુ છે"
msgid "Commit aborted"
msgstr "મોકલવાનું અટકાવેલ છે"
@@ -5595,9 +5581,6 @@ msgstr "IP સરનામું"
msgid "IP address lookup for host '%s' failed: %s"
msgstr "યજમાન '%s' માટે IP સરનામાંને જોવાનુ નિષ્ફળ: %s"
msgid "IP address not supported for ethernet interface"
msgstr "IP સરનામું ઇથરનેટ ઇન્ટરફેસ માટે આધારભૂત નથી"
msgid ""
"IP parameter must be given since libvirt was not compiled with IP address "
"learning support"
@@ -6979,9 +6962,6 @@ msgstr "NOTE"
msgid "NULL NetworkDef"
msgstr "NULL NetworkDef"
msgid "NULL or empty path"
msgstr "NULL અથવા ખાલી પાથ"
#, c-format
msgid "NULL string parameter '%s'"
msgstr "NULL શબ્દમાળા પરિમાણ '%s'"
@@ -7069,10 +7049,6 @@ msgstr "નેટવર્ક '%s' પહેલાથી જ ચાલી રહ
msgid "Network '%s' is still running"
msgstr "નેટવર્ક '%s' હજુ પણ ચાલી રહ્યું છે"
#, c-format
msgid "Network '%s' not found"
msgstr "નેટવર્ક '%s' શોધાયુ નહિં"
msgid "Network Events"
msgstr "નેટવર્ક ઘટના"
@@ -7221,9 +7197,6 @@ msgstr "વર્ગ સીમા ઉપલબ્ધ નથી"
msgid "No channel command provided"
msgstr "ચેનલ આદેશ પૂરો પાડેલ નથી"
msgid "No controllers are mounted"
msgstr "નિયંત્રણો માઉન્ટ થયેલ નથી"
msgid "No data supplied for <initarg> element"
msgstr "<initarg> ઘટક માટે પૂરી પાડેલ માહિતી નથી"
@@ -8847,12 +8820,6 @@ msgstr "સિસ્ટમ ઉપલ્બધ નથી"
msgid "System lacks NETNS support"
msgstr "સિસ્ટમને NETNS આધાર ઓછો છે"
msgid "TCP client networking type not supported"
msgstr "TCP ક્લાઇન્ટ નેટવર્કીંગ પ્રકાર આધારભૂત નથી"
msgid "TCP server networking type not supported"
msgstr "TCP સર્વર નેટવર્કીંગ પ્રકાર આધારભૂત નથી"
#, c-format
msgid "TLS handshake failed %s"
msgstr "TLS હેન્ડશેક નિષ્ફળ %s"
@@ -9382,9 +9349,6 @@ msgstr "આ વિધેય WIN32 પ્લેટફોર્મ પર આધ
msgid "This host is not managed by a vCenter"
msgstr "આ યજમાન vCenter દ્દારા સંચાલિત થયેલ નથી"
msgid "This type of device cannot be hot unplugged"
msgstr "ઉપકરણનો આ પ્રકાર ને હોટપ્લગ કરી શકાતુ નથી"
msgid "This type of disk cannot be hot unplugged"
msgstr "ડિસ્કનાનાં આ પ્રકાર ને હોટપ્લગ કરી શકાતુ નથી"
@@ -10581,9 +10545,6 @@ msgstr "આ પ્લેટફોર્મ પર %s પર STP વિલંબ
msgid "Unable to set STP on %s on this platform"
msgstr "આ પ્લેટફોર્મ પર %s પર STP ને સુયોજિત કરવાનું અસમર્થ"
msgid "Unable to set VM logfile close-on-exec flag"
msgstr "VM લોગફાઇલ close-on-exec flag ને સુયોજિત કરવામાં નિષ્ફળ"
msgid "Unable to set cloexec flag"
msgstr "cloexec ફ્લેગ સુયોજિત કરવાનું અસમર્થ"
@@ -10850,10 +10811,6 @@ msgstr "અનિચ્છનીય વોલ્યુમ પાથ બંધા
msgid "Unhandled event %d for monitor fd %d"
msgstr "મોનિટર fd %d માટે અસંચાલિત થયેલ ઘટના %d"
#, c-format
msgid "Unix path %s too long for destination"
msgstr "Unix પાથ %s એ લક્ષ્ય માટે ઘણું લાંબુ છે"
msgid "Unknown"
msgstr "અજ્ઞાત"
@@ -12041,15 +11998,9 @@ msgstr "નેટલીંક માટે પ્લેસહોલ્ડર nlh
msgid "cannot apply process capabilities %d"
msgstr "પ્રક્રિયા ક્ષમતાઓ %d લાગુ કરી શકાતી નથી"
msgid "cannot attach device on inactive domain"
msgstr "અસક્રિય ડોમેઈન પર ઉપકરણ જોડાઇ શકાતુ નથી"
msgid "cannot become session leader"
msgstr "સત્ર લીડર બનાવી શકાતુ નથી"
msgid "cannot bind socket"
msgstr "સોકેટને બાંધી શકાતુ નથી"
msgid "cannot block signals"
msgstr "સંકેતોને બ્લોક કરી શકાતા નથી"
@@ -12248,9 +12199,6 @@ msgstr "%d સ્નેપશોટ સાથે અસક્રિય ડોમ
msgid "cannot delete snapshots of running domain"
msgstr "ચાલી રહેલ ડોમેઇનનાં સ્નેપશોટ કાઢી શકાતુ નથી"
msgid "cannot detach device on inactive domain"
msgstr "અસક્રિય ડોમેઈન પર ઉપકરણને અલગ કરી શકાતુ નથી"
#, c-format
msgid "cannot determine filesystem for '%s'"
msgstr "'%s' માટે ફાઇલસિસ્ટમને નક્કી કરી શકાતુ નથી"
@@ -12482,9 +12430,6 @@ msgstr "પ્રમાણપત્ર ઑબ્જેક્ટને પ્ર
msgid "cannot initialize condition variable"
msgstr "શરત ચલની શરૂઆત કરી શકાતી નથી"
msgid "cannot initialize inotify"
msgstr "inotify ને શરૂ કરી શકાતુ નથી"
msgid ""
"cannot initialize libxenlight context, probably not running in a Xen Dom0, "
"disabling driver"
@@ -12614,9 +12559,6 @@ msgstr "પાથ '%s' ખોલી શકાતો નથી"
msgid "cannot open path '%s' in '%s'"
msgstr "'%s' માં પાથ '%s' ને ખોલી શકાતુ નથી"
msgid "cannot open socket"
msgstr "સોકેટ ખોલી શકાતી નથી"
#, c-format
msgid "cannot open volume '%s'"
msgstr "વોલ્યુમ '%s' ને ખોલી શકાતુ નથી"
@@ -12810,10 +12752,6 @@ msgstr "vbd ફાઈલનામ પદચ્છેદન કરી શકત
msgid "cannot parse vendor id %s"
msgstr "વિક્રેતા id %s નું પદચ્છેદન કરી શકાતુ નથી"
#, c-format
msgid "cannot parse version %s"
msgstr "આવૃત્તિ %s નું પદચ્છેદન કરી શકાતુ નથી"
#, c-format
msgid "cannot parse video heads '%s'"
msgstr "વિડિયો heads '%s' નું પદચ્છેદન કરી શકાતુ નથી"
@@ -12916,10 +12854,6 @@ msgstr "'%s' હેડરને વાંચી શકાતુ નથી"
msgid "cannot read mount list '%s'"
msgstr "માઉન્ટ યાદી '%s' ને વાંચી શકાતી નથી"
#, c-format
msgid "cannot read reply %s"
msgstr "જવાબ %s ને વાંચી શકાતુ નથી"
#, c-format
msgid "cannot receive data from volume %s"
msgstr "વોલ્યુમ %s માંથી માહિતીને મેળવી શકાતી નથી"
@@ -12995,10 +12929,6 @@ msgstr "ફાઇલ '%s' ને શરૂઆતમાં શોધી શકા
msgid "cannot seek to start of '%s'"
msgstr "'%s' ફાઇલની અંતમાં શોધી શકાતુ નથી"
#, c-format
msgid "cannot send command %s"
msgstr "આદેશ %s ને મોકલી શકાતો નથી"
#, c-format
msgid "cannot send data to volume %s"
msgstr "વોલ્યુમ %s માં માહિતીને મોકલી શકાતી નથી"
@@ -13006,10 +12936,6 @@ msgstr "વોલ્યુમ %s માં માહિતીને મોકલ
msgid "cannot send to netlink socket"
msgstr "નેટલીંક સોકેટને મોકલી શકાતુ નથી"
#, c-format
msgid "cannot send too long command %s (%d bytes)"
msgstr "ઘણો લાંબો આદેશ%s (%d બાઇટો) મોકલી શકાતો નથી"
#, c-format
msgid "cannot set CPU affinity on process %d"
msgstr "પ્રક્રિયા %d પર CPU સંબંધ સુયોજિત કરી શકાતુ નથી"
@@ -13032,15 +12958,9 @@ msgstr "ફાઇલ સ્થિતિ '%s' ને સુયોજિત કર
msgid "cannot set file owner '%s'"
msgstr "ફાઇલ માલિક '%s' સુયોજિત કરી શકાતુ નથી"
msgid "cannot set max memory lower than current memory"
msgstr "હાલની મેમરી કરતા નીચી મહત્તમ મેમરીને સુયોજિત કરી શકાતી નથી"
msgid "cannot set memory higher than max memory"
msgstr "મહત્તમ મેમરી કરતી ઊંચી મેમરીને સુયોજિત કરી શકાતી નથી"
msgid "cannot set memory of an active domain"
msgstr "સક્રિય ડોમેઈનની મેમરી સુયોજિત કરી શકાતીનથી"
#, c-format
msgid "cannot set mode of '%s' to %04o"
msgstr "'%s' ની સ્થિતિને %04o માટે સુયોજિત કરી શકાતી નથી"
@@ -14031,9 +13951,6 @@ msgstr "ડિરેક્ટરી"
msgid "direct migration"
msgstr "સીધુ સ્થળાંતર"
msgid "direct networking type not supported"
msgstr "સીધુ નેટવર્કીંગ પ્રકાર આધારભૂત નથી"
#, c-format
msgid ""
"direct setting of the vlan tag is not allowed for hostdev devices using %s "
@@ -14965,17 +14882,6 @@ msgstr "Pool %s ને આપોઆપ શરૂથયેલ તરીકે ચ
msgid "failed to move file to %s "
msgstr "%s માં ફાઇલને ખસેડવામાં નિષ્ફળતા "
#, c-format
msgid "failed to open %s for reading"
msgstr "%s ને વાંચવા માટે ખોલવામાં નિષ્ફળ"
#, c-format
msgid "failed to open chardev file: %s"
msgstr "chardev ફાઇલને ખોલવામાં નિષ્ફળતા: %s"
msgid "failed to open configuration file for reading"
msgstr "રૂપરેખાંકન ફાઈલને વાંચવા માટે ખોલવામાં નિષ્ફળ"
msgid "failed to open file"
msgstr "ફાઈલ ખોલવામાં નિષ્ફળ"
@@ -15061,10 +14967,6 @@ msgstr "libxl હેડરને વાંચવામાં નિષ્ફળ
msgid "failed to read metadata length in '%s'"
msgstr "'%s' માં મેટાડેટાને વાંચવામાં નિષ્ફળ"
#, c-format
msgid "failed to read pid: %s"
msgstr "pid ને વાંચવામાં નિષ્ફળ: %s"
msgid "failed to read qemu header"
msgstr "qemu હેડર વાંચવામાં નિષ્ફળ"
@@ -15465,10 +15367,6 @@ msgstr "આપેલ uuid એ XML uuid સાથે બંધબેસતુ ન
msgid "got unexpected RPC call prog %d vers %d proc %d type %d"
msgstr "અનિચ્છનીય RPC કોલ prog %d vers %d proc %d type %d મળ્યો"
#, c-format
msgid "got unknown HTTP error code %d"
msgstr "અજ્ઞાત HTTP ભૂલ કોડ %d મળ્યો"
msgid "gracefully shutdown a domain"
msgstr "સારી રીતે ડોમેઈન બંધ કરો"
@@ -15571,9 +15469,6 @@ msgstr "hostdev %s મળ્યુ નથી"
msgid "hostdev mode '%s' not supported"
msgstr "hostdev સ્થિતિ '%s' આધારભૂત નથી"
msgid "hostdev networking type not supported"
msgstr "hostdev નેટવર્કીંગ પ્રકાર આધારભૂત નથી"
#, c-format
msgid "hostdev subsys type '%s' not supported"
msgstr "hostdev subsys પ્રકાર '%s' આધારભૂત નથી"
@@ -15648,10 +15543,6 @@ msgstr "જોડાણ URI માં પાસવર્ડને સમાવ
msgid "incomplete metadata in '%s'"
msgstr "'%s' માં અપૂર્ણ મેટાડેટા"
#, c-format
msgid "incomplete reply %s"
msgstr "અપૂરતો જવાબ %s"
msgid "incomplete return information"
msgstr "અપૂરતી પરત જાણકારી"
@@ -15732,9 +15623,6 @@ msgstr "ઇન્ટરફેસ નામ %s બફરમાં બંધબે
msgid "interface name or MAC address"
msgstr "ઇન્ટરફેસ નામ અથવા MAC સરનામું"
msgid "interface script execution not supported by this driver"
msgstr "ઇન્ટરફેસ સ્ક્રિપ્ટ એક્સિક્યૂશન ડ્રાઇવર દ્દારા આધારભૂત નથી"
msgid "interface stats not implemented on this platform"
msgstr "ઇન્ટરફેસ સ્થિતિ આ પ્લેટફોર્મ પર અમલીકરણ થયેલ નથી"
@@ -15752,9 +15640,6 @@ msgstr "આંતરિક ભૂલ: %s"
msgid "internal error: bad options in command: '%s'"
msgstr "આંતરિક ભૂલ: આદેશમાં ખરાબ વિકલ્પો: '%s'"
msgid "internal networking type not supported"
msgstr "આંતરિક નેટવર્કીંગ પ્રકાર આધારભૂત નથી"
#, c-format
msgid "internal snapshot for disk %s unsupported for storage type %s"
msgstr "ડિસ્ક %s માટે આંતરિક સ્નેપશોટ સંગ્રહ પ્રકાર %s માટે બિનઆધારભૂત છે"
@@ -16097,10 +15982,6 @@ msgstr "અયોગ્ય નોડ મેમરી કિંમત"
msgid "invalid path %s not assigned to domain"
msgstr "અયોગ્ય પાથ %s એ ડોમેઇનમાં સોંપેલ નથી "
#, c-format
msgid "invalid path '%s'"
msgstr "અયોગ્ય પાથ '%s'"
#, c-format
msgid "invalid path, '%s' is not a known interface"
msgstr "અયોગ્ય પાથ, '%s' એ જાણીતો ઇન્ટરફેસ નથી"
@@ -16307,13 +16188,6 @@ msgstr "libhal_get_all_devices નિષ્ફળ"
msgid "libnl was not available at build time"
msgstr "libnl બિલ્ડ સમયે ઉપલબ્ધ ન હતુ"
#, c-format
msgid "library call %s failed, possibly not supported"
msgstr "લાઈબ્રેરી કોલ %s નિષ્ફળ, કદાચ આધારભૂત નથી"
msgid "library call failed, possibly not supported"
msgstr "લાઈબ્રેરી બોલાવવાનું નિષ્ફળ, કદાચ આધારભૂત નથી"
msgid "libselinux does not support LXC contexts path"
msgstr "libselinux LXC સંદર્ભ પાથને આધાર આપતુ નથી"
@@ -17755,9 +17629,6 @@ msgstr "internalFlags આધાર નથી"
msgid "no job is active on the domain"
msgstr "ડોમેઇન પર જોબ સક્રિય નથી"
msgid "no kernel specified"
msgstr "કર્નલ સ્પષ્ટ થયેલ નથી"
msgid "no large enough free extent"
msgstr "વિશાળ પૂરતા મુક્ત વિસ્તાર નથી"
@@ -18040,9 +17911,6 @@ msgstr "બરાબર"
msgid "online commit not supported with this QEMU binary"
msgstr "ઓનલાઇન સોંપવાનુ આ QEMU બાઇનરી સાથે આધારભૂત નથી"
msgid "only TCP listen is supported for chr device"
msgstr "અક્ષર ઉપકરણ માટે ફક્ત સાંભળેલ TCP એ આધારભૂત નથી"
msgid "only a single TPM device is supported"
msgstr "ફક્ત એક TPM ઉપકરણ આધારભૂત છે"
@@ -19030,9 +18898,6 @@ msgstr "બંધ કરો"
msgid "shutdown"
msgstr "બંધ કરો"
msgid "shutdown operation failed"
msgstr "બંધ કરવાની પ્રક્રિયા નિષ્ફળ"
msgid "shutting down"
msgstr "બંધ કરી રહ્યા છે"
@@ -19659,12 +19524,6 @@ msgstr "udev_monitor_new_from_netlink ને NULL પરત મળેલ છે"
msgid "uid and gid should be mapped both"
msgstr "uid અને gid બંનેનુ માપાંકન થવુ જોઇએ"
msgid "uml state driver is not active"
msgstr "uml સ્ટેટ ડ્રાઇવર સક્રિય નથી"
msgid "umlStartup: out of memory"
msgstr "umlStartup: મેમરીની બહાર"
#, c-format
msgid "unable to access device %s\n"
msgstr "ઉપકરણ %s ને વાપરવાનું અસમર્થ\n"
@@ -20005,14 +19864,6 @@ msgstr "અનિચ્છનીય QEMU URI પાથ '%s', qemu:///session ન
msgid "unexpected QEMU URI path '%s', try qemu:///system"
msgstr "અનિચ્છનીય QEMU URI પાશ '%s', qemu:///system નો પ્રયત્ન કરો"
#, c-format
msgid "unexpected UML URI path '%s', try uml:///session"
msgstr "અનિચ્છનીય UML URI પાથ '%s', uml:///session નો પ્રયત્ન કરો"
#, c-format
msgid "unexpected UML URI path '%s', try uml:///system"
msgstr "અનિચ્છનીય UML URI પાથ '%s', uml:///system નો પ્રયત્ન કરો"
#, c-format
msgid ""
"unexpected VMware URI path '%s', try vmwareplayer:///session, vmwarews:///"
@@ -21034,10 +20885,6 @@ msgstr "બિનઆધારિત સત્તાધિકરણ પ્રક
msgid "unsupported chardev '%s'"
msgstr "બિનઆધારભૂત chardev '%s'"
#, c-format
msgid "unsupported chr device type %d"
msgstr "બિનઆધારિત અક્ષર ઉપકરણ પ્રકાર %d"
#, c-format
msgid "unsupported chr device type '%s'"
msgstr "બિનઆધારભૂત chr ઉપકરણ પ્રકાર '%s'"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.3.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: 2018-04-24 06:25+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Hebrew (http://www.transifex.com/projects/p/fedora/language/"

View File

@@ -1,5 +1,5 @@
# Libvirt package strings.
# Copyright (C) 2018 Red Hat, Inc.
# Copyright (C) 2019 Red Hat, Inc.
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
@@ -19,7 +19,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: 2015-02-23 12:39+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Hindi (http://www.transifex.com/projects/p/fedora/language/"
@@ -860,10 +860,6 @@ msgstr "%s नहीं ढूंढ़ सकता है - संभवतः
msgid "Cannot find CPU model with PVR 0x%08x"
msgstr "पीवीआर 0x%08x के साथ सीपीयू मॉडल नहीं खोज सके"
#, c-format
msgid "Cannot find UML kernel %s"
msgstr "UML कर्नेल %s नहीं ढूंढ़ सकता है"
#, c-format
msgid "Cannot find security driver '%s'"
msgstr "सुरक्षा ड्राइवर '%s' नहीं मिला "
@@ -1100,10 +1096,6 @@ msgstr "संतति:"
msgid "Client socket identity not available"
msgstr "क्लाइंट सॉकेट पहचान उपलब्ध नहीं"
#, c-format
msgid "Command %s too long for destination"
msgstr "कमांड %s गंतव्य के लिए काफी बड़ा है"
msgid "Completed with no error"
msgstr "कोई त्रुटि के साथ पूरा हो गया"
@@ -4081,9 +4073,6 @@ msgstr "नोट"
msgid "NULL NetworkDef"
msgstr "NULL NetworkDef"
msgid "NULL or empty path"
msgstr "रिक्त या खाली पथ"
#, c-format
msgid "NULL string parameter '%s'"
msgstr "NULL स्ट्रिंग पैरामीटर '%s'"
@@ -4156,10 +4145,6 @@ msgstr "संजाल '%s' पहले से चल रहा है"
msgid "Network '%s' is still running"
msgstr "संजाल '%s' अभी भी चल रहा है"
#, c-format
msgid "Network '%s' not found"
msgstr "संजाल '%s' नहीं मिला"
#, c-format
msgid "Network config filename '%s' does not match network name '%s'"
msgstr "संजाल विन्यास फाइलनाम '%s' संजाल नाम '%s' के साथ मेल नहीं खाता है"
@@ -5063,12 +5048,6 @@ msgstr "सिस्टम उपलब्ध नहीं है "
msgid "System lacks NETNS support"
msgstr "तंत्र में NETNS समर्थन की कमी है"
msgid "TCP client networking type not supported"
msgstr "TCP क्लाइंट संजालन प्रकार समर्थित नहीं"
msgid "TCP server networking type not supported"
msgstr "TCP सर्वर संजालन प्रकार समर्थित नहीं है"
#, c-format
msgid "TLS handshake failed %s"
msgstr "TLS हैंडशेक विफल: %s"
@@ -5492,9 +5471,6 @@ msgstr ""
msgid "This host is not managed by a vCenter"
msgstr "यह होस्ट vCenter द्वारा प्रबंधित नहीं है"
msgid "This type of device cannot be hot unplugged"
msgstr "युक्ति प्रकार को हॉट प्लग नहीं किया जा सकता है"
msgid "This type of disk cannot be hot unplugged"
msgstr "इस प्रकार की डिस्क को हॉट प्लग नहीं किया जा सकता है"
@@ -6026,9 +6002,6 @@ msgstr "आरंभिक पीआईडी​​ %llu को SIGTERM भे
msgid "Unable to send container continue message"
msgstr "कंटेनर जारी संदेश भेजने में असमर्थ"
msgid "Unable to set VM logfile close-on-exec flag"
msgstr "VM लॉगफाइल को close-on-exec फ्लैग सेट करने में असमर्थ"
msgid "Unable to set cloexec flag"
msgstr "cloexec फ्लैग सेट करने में असमर्थ"
@@ -6184,10 +6157,6 @@ msgstr "अनपेक्षित मात्रा पथ प्रारू
msgid "Unhandled event %d for monitor fd %d"
msgstr "Unhandled इवेंट %d मॉनिटर fd %d"
#, c-format
msgid "Unix path %s too long for destination"
msgstr "यूनिक्स पथ %s गंतव्य के लिए काफी बड़ा है"
msgid "Unknown"
msgstr "अज्ञात"
@@ -6896,15 +6865,9 @@ msgstr "स्थिति परिवर्तन लॉक पा नही
msgid "cannot acquire state change lock due to max_queued limit"
msgstr "स्थिति परिवर्तन लॉक पा नहीं सकता है max_queued सीमा के कारण"
msgid "cannot attach device on inactive domain"
msgstr "निष्क्रिय डोमेन पर युक्ति संलग्न नहीं कर सकता है"
msgid "cannot become session leader"
msgstr "सत्र नेता नहीं बन सकता है"
msgid "cannot bind socket"
msgstr "सॉकेट बाइंड नहीं कर सकता है"
msgid "cannot block signals"
msgstr "संकेत रोक नहीं सकता है"
@@ -7048,9 +7011,6 @@ msgstr "CPU डाटा को %s ऑर्किटेक्चर के ल
msgid "cannot delete inactive domain with %d snapshots"
msgstr "निष्क्रिय डोमेन को नष्ट नहीं कर सकते %d स्नैपशॉट के साथ"
msgid "cannot detach device on inactive domain"
msgstr "निष्क्रिय डोमेन पर युक्ति अलग नहीं कर सकता है"
#, c-format
msgid "cannot disable %s"
msgstr "%s निष्क्रिय नहीं कर सकता है"
@@ -7220,9 +7180,6 @@ msgstr "cert ऑब्जेक्ट को प्रारंभ नहीं
msgid "cannot initialize condition variable"
msgstr "स्थिति चर आरंभीकृत नहीं कर सकता है"
msgid "cannot initialize inotify"
msgstr "inotify आरंभ नहीं कर सकता है"
msgid "cannot initialize monitor condition"
msgstr "मॉनिटर स्थिति आरंभीकृत नहीं कर सकता है"
@@ -7284,9 +7241,6 @@ msgstr "macvtap टैप युक्ति %s खोल नहीं सकत
msgid "cannot open path '%s'"
msgstr "पथ '%s' खोल नहीं सकता है"
msgid "cannot open socket"
msgstr "सॉकेट खोल नहीं सकता है"
#, c-format
msgid "cannot open volume '%s'"
msgstr "वॉल्यूम '%s' खोल नहीं सकता है"
@@ -7443,10 +7397,6 @@ msgstr "vbd फाइलनाम विश्लेषित नहीं क
msgid "cannot parse vendor id %s"
msgstr "विक्रेता आईडी %s नहीं पढ़ सकता है"
#, c-format
msgid "cannot parse version %s"
msgstr "संस्करण %s का विश्लेषण नहीं कर सकता है"
#, c-format
msgid "cannot parse video heads '%s'"
msgstr "वीडियो हेड '%s' विश्लेषित नहीं कर सकता है"
@@ -7534,10 +7484,6 @@ msgstr "हेडर '%s' नहीं पढ़ सकता है"
msgid "cannot read mount list '%s'"
msgstr "आरोह सूची '%s' नहीं पढ़ सकता है"
#, c-format
msgid "cannot read reply %s"
msgstr "जवाब %s पढ़ नहीं सकता है"
msgid "cannot register file watch on stream"
msgstr "फाइल प्रेक्षण स्ट्रीम पर सेट नहीं कर सकता है"
@@ -7587,17 +7533,9 @@ msgstr "'%s' की तलाश नहीं कर सकते"
msgid "cannot seek to beginning of file '%s'"
msgstr "फाइल '%s' के शुरू तक नहीं पहुंच सकता है"
#, c-format
msgid "cannot send command %s"
msgstr "कमांड %s नहीं भेज सकता है"
msgid "cannot send to netlink socket"
msgstr "नेटलिंक सॉकेट भेज नहीं सकता है"
#, c-format
msgid "cannot send too long command %s (%d bytes)"
msgstr "काफी लंबा कमांड %s (%d bytes) नहीं भेज सकता है"
#, c-format
msgid "cannot set CPU affinity on process %d"
msgstr "CPU एफीनिटी को प्रक्रिया %d पर सेट नहीं कर सकता है"
@@ -7620,15 +7558,9 @@ msgstr "फाइल मोड '%s' सेट नहीं कर सकता
msgid "cannot set file owner '%s'"
msgstr "फाइल स्वामी '%s' सेट नहीं कर सकता है"
msgid "cannot set max memory lower than current memory"
msgstr "मौजूदा स्मृति के साथ अधिकतम स्मृति नहीं सेट कर सकता है"
msgid "cannot set memory higher than max memory"
msgstr "अधिकतम स्मृति से अधिक स्मृति सेट नहीं कर सकता है"
msgid "cannot set memory of an active domain"
msgstr "एक सक्रिय डोमेन की स्मृति सेट नहीं कर सकता है"
#, c-format
msgid "cannot set mode of '%s' to %04o"
msgstr "'%s' मोड को %04o में सेट नहीं कर सकता है"
@@ -8223,9 +8155,6 @@ msgstr "डिर."
msgid "direct migration"
msgstr "सीधा उत्प्रवासन"
msgid "direct networking type not supported"
msgstr "प्रत्यक्ष नेटवर्किंग प्रकार समर्थित नहीं है"
msgid "directory to switch to (default: home or else root)"
msgstr "निर्देशिका जिसमें स्विच करना है (default: home or else root)"
@@ -8836,17 +8765,6 @@ msgstr "%s संजाल को स्वतः आरंभन चिह्
msgid "failed to mark pool %s as autostarted"
msgstr "पुल %s को ऑटोस्टार्ट चिह्नित करने में विफल"
#, c-format
msgid "failed to open %s for reading"
msgstr "%s को पढ़ने के लिये खोलने में विफल"
#, c-format
msgid "failed to open chardev file: %s"
msgstr "chardev फ़ाइल खोलने में विफल: %s"
msgid "failed to open configuration file for reading"
msgstr "पढ़ने के लिये विन्यास खोलने में विफल"
msgid "failed to open file"
msgstr "फाइल खोलने में विफल"
@@ -8883,10 +8801,6 @@ msgstr "libxl हेडर पढ़ने में विफल"
msgid "failed to read metadata length in '%s'"
msgstr "'%s' में मेटाडेटा लंबाई पढ़ने में विफल"
#, c-format
msgid "failed to read pid: %s"
msgstr "pid पढ़ने में विफल: %s"
msgid "failed to read qemu header"
msgstr "qemu हेडर पढ़ने में विफल"
@@ -9090,10 +9004,6 @@ msgstr "दिए गए uuid से XML uuid से मेल नहीं ख
msgid "got unexpected RPC call prog %d vers %d proc %d type %d"
msgstr "अप्रत्याशित RPC काल prog %d vers %d proc %d type %d सर्वर से पाया"
#, c-format
msgid "got unknown HTTP error code %d"
msgstr "अज्ञात HTTP त्रुटि कोड %d पाया"
msgid "gracefully shutdown a domain"
msgstr "एक डोमेन उदाहरता पूर्वक बंद करें"
@@ -9213,10 +9123,6 @@ msgstr "निष्क्रिय"
msgid "include security sensitive information in XML dump"
msgstr "XML डंप में सुरक्षा संवेदनशील सूचना शामिल करें"
#, c-format
msgid "incomplete reply %s"
msgstr "अपूर्ण जवाब %s"
msgid "incomplete return information"
msgstr "अपूर्ण वापसी सूचना"
@@ -9280,9 +9186,6 @@ msgstr "स प्लैटफॉर्म पर अंतरफलक stats
msgid "internal error"
msgstr "आंतरिक त्रुटि"
msgid "internal networking type not supported"
msgstr "आंतरिक संजालन प्रकार समर्थित नहीं"
#, c-format
msgid "internal snapshot for disk %s unsupported for storage type %s"
msgstr "भंडारण प्रकार %s के लिए आंतरिक स्नैपशॉट डिस्क %s के लिए असमर्थित"
@@ -9565,10 +9468,6 @@ msgstr "%s में अवैध नोड युक्ति संकेत
msgid "invalid path %s not assigned to domain"
msgstr "अमान्य पथ %s डोमेन को असाइन नहीं किया गया"
#, c-format
msgid "invalid path '%s'"
msgstr "अवैध पथ %s"
#, c-format
msgid "invalid path, '%s' is not a known interface"
msgstr "अवैध पथ, '%s' एक ज्ञात अंतरफलक नहीं है"
@@ -9689,13 +9588,6 @@ msgstr "libhal_ctx_set_dbus_connection असफल"
msgid "libhal_get_all_devices failed"
msgstr "libhal_get_all_devices असफल"
#, c-format
msgid "library call %s failed, possibly not supported"
msgstr "लाइब्रेरी कॉल %s विफल रहा, संभवतः समर्थित नहीं"
msgid "library call failed, possibly not supported"
msgstr "लाइब्रेरी कॉल विफल रहा, संभवतः समर्थित नहीं"
#, c-format
msgid "libvirt was built without the '%s' driver"
msgstr "libvirt '%s' ड्राईवर के बिना बना है "
@@ -10613,9 +10505,6 @@ msgstr "कोई विस्तारित विभाजन नहीं
msgid "no job is active on the domain"
msgstr "डोमेन पर कोई कार्य सक्रिय नहीं"
msgid "no kernel specified"
msgstr "कोई कर्नेल निर्दिष्ट नहीं"
msgid "no large enough free extent"
msgstr "कोई पर्याप्त बड़ा मुक्त विस्तार"
@@ -10775,9 +10664,6 @@ msgstr "ठीक"
msgid "online commit not supported with this QEMU binary"
msgstr "इस QEMU द्विपदीय के साथ ऑनलाइन कमिट समर्थित नहीं है"
msgid "only TCP listen is supported for chr device"
msgstr "chr युक्ति के लिए केवल TCP श्रोता समर्थित है"
msgid "only a single TPM device is supported"
msgstr "केवल एक TPM युक्ति समर्थित है"
@@ -11280,9 +11166,6 @@ msgstr "बंद करें"
msgid "shutdown"
msgstr "शटडाउन"
msgid "shutdown operation failed"
msgstr "शटडाउन ऑपरेशन विफल"
msgid "shutting down"
msgstr "बंद कर रहा है"
@@ -11736,12 +11619,6 @@ msgstr "udev_monitor_new_from_netlink नल लौटाया"
msgid "uid and gid should be mapped both"
msgstr "यूआईडी और जीआईडी ​​दोनों मैप किया जाना चाहिए"
msgid "uml state driver is not active"
msgstr "uml स्थिति ड्राइवर सक्रिय नहीं है"
msgid "umlStartup: out of memory"
msgstr "umlStartup: स्मृति कम"
#, c-format
msgid "unable to access device %s\n"
msgstr "उपकरण %s का उपयोग करने में असमर्थ \n"
@@ -11920,14 +11797,6 @@ msgstr "अप्रत्याशित QEMU URI पथ '%s', qemu:///session
msgid "unexpected QEMU URI path '%s', try qemu:///system"
msgstr "अप्रत्याशित QEMU URI पथ '%s', qemu:///system आजमाएँ"
#, c-format
msgid "unexpected UML URI path '%s', try uml:///session"
msgstr "अप्रत्याशित UML URI path '%s', try uml:///session"
#, c-format
msgid "unexpected UML URI path '%s', try uml:///system"
msgstr "अप्रत्याशित UML URI path '%s', try uml:///system"
#, c-format
msgid "unexpected accessmode %d"
msgstr "अप्रत्याशित डिस्क कैश मोड %d"
@@ -12773,10 +12642,6 @@ msgstr "असमर्थित सत्यापन प्रकार %d"
msgid "unsupported chardev '%s'"
msgstr "असमर्थित chardev '%s'"
#, c-format
msgid "unsupported chr device type %d"
msgstr "असमर्थित चार युक्ति प्रकार %d"
#, c-format
msgid "unsupported clock offset '%s'"
msgstr "अप्रत्याशित क्लॉक ऑफसेट '%s'"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: Croatian\n"

View File

@@ -1,5 +1,5 @@
# Libvirt package strings.
# Copyright (C) 2018 Red Hat, Inc.
# Copyright (C) 2019 Red Hat, Inc.
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: 2015-02-27 04:56+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Hungarian (http://www.transifex.com/projects/p/fedora/"
@@ -633,13 +633,6 @@ msgstr "nem sikerült lekérdezni a programkönyvtár verzióját"
msgid "failed to mark network %s as autostarted"
msgstr "Nem sikerült megjelölni a(z) %s hálózatot automatikus indításra"
#, c-format
msgid "failed to open %s for reading"
msgstr "nem sikerült olvasásra megnyitni ezt: %s"
msgid "failed to open configuration file for reading"
msgstr "nem sikerült olvasásra megnyitni a beállítási fájlt"
msgid "failed to open file"
msgstr "a fájl megnyitása nem sikerült"
@@ -688,10 +681,6 @@ msgstr "egy XML-hálózatleírást tartalmazó fájl"
msgid "getting time of day"
msgstr "aktuális idő beolvasása"
#, c-format
msgid "got unknown HTTP error code %d"
msgstr "ismeretlen HTTP-hibakód érkezett: %d"
msgid "gracefully shutdown a domain"
msgstr "egy tartomány elegáns leállítása"
@@ -728,13 +717,6 @@ msgstr "érvénytelen hálózati mutató ebben:"
msgid "invalid network pointer in %s"
msgstr "érvénytelen hálózati mutató ebben: %s"
#, c-format
msgid "library call %s failed, possibly not supported"
msgstr "%s könyvtári hívás nem sikerült, valószínűleg nincs támogatva"
msgid "library call failed, possibly not supported"
msgstr "könyvtári hívás nem sikerült, valószínűleg nincs támogatva"
msgid "list domains"
msgstr "tartományok listázása"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: Interlingua\n"

View File

@@ -1,5 +1,5 @@
# Libvirt package strings.
# Copyright (C) 2018 Red Hat, Inc.
# Copyright (C) 2019 Red Hat, Inc.
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: 2015-02-27 05:03+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Indonesian (http://www.transifex.com/projects/p/libvirt/"
@@ -473,13 +473,6 @@ msgstr "gagal mendapatkan versi hypervisor"
msgid "failed to get the library version"
msgstr "gagal mendapatkan versi pustaka"
#, c-format
msgid "failed to open %s for reading"
msgstr "gagal membuka berkas %s"
msgid "failed to open configuration file for reading"
msgstr "gagal membuka berkas konfigurasi"
msgid "failed to open file"
msgstr "gagal membuka berkas"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: Iloko\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.3.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: 2018-04-24 06:27+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Icelandic (http://www.transifex.com/projects/p/fedora/"

View File

@@ -1,5 +1,5 @@
# Libvirt package strings.
# Copyright (C) 2018 Red Hat, Inc.
# Copyright (C) 2019 Red Hat, Inc.
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
@@ -12,7 +12,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: 2015-02-27 05:14+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Italian (http://www.transifex.com/projects/p/libvirt/language/"
@@ -308,10 +308,6 @@ msgstr ""
msgid "Cannot extract running %s hypervisor version\n"
msgstr "Impossibile estrarre la versione dell'hypervisor %s in esecuzione\n"
#, c-format
msgid "Cannot find UML kernel %s"
msgstr "Impossibile trovare il kernel UNL %s"
msgid "Cannot find suitable CPU model for given data"
msgstr "Impossibile trovare una CPU che soddisfa i dati richiesti"
@@ -1753,9 +1749,6 @@ msgstr "Interfacce multiple connesse al bridge"
msgid "NOTE"
msgstr "NOTE"
msgid "NULL or empty path"
msgstr "percorso vuoto o NULL"
msgid "NUMA cell number"
msgstr "Numero cella NUMA"
@@ -1807,10 +1800,6 @@ msgstr "La rete '%s' è già in esecuzione"
msgid "Network '%s' is still running"
msgstr "La rete '%s' è ancora in esecuzione"
#, c-format
msgid "Network '%s' not found"
msgstr "Rete '%s' non trovata"
#, c-format
msgid "Network config filename '%s' does not match network name '%s'"
msgstr ""
@@ -2346,9 +2335,6 @@ msgstr "Il certificato usa un algoritmo non sicuro"
msgid "This host is not managed by a vCenter"
msgstr "Questo host non è gestito da un vCenter"
msgid "This type of device cannot be hot unplugged"
msgstr "Questo tipo di dispositivo non può essere scollegato a caldo"
msgid "This type of disk cannot be hot unplugged"
msgstr "Questo tipo di disco non può essere scollegato a caldo"
@@ -2529,9 +2515,6 @@ msgstr "Impossibile impostare il monitor in modalità non-blocking"
msgid "Unable to send container continue message"
msgstr "impossibile inviare il messaggio di continua contenitore"
msgid "Unable to set VM logfile close-on-exec flag"
msgstr "Impossibile impostare il flag close-on-exec del file di log della VM"
msgid "Unable to set interface parameters"
msgstr "Impossibile impostare i parametri dell'interfaccia"
@@ -2844,15 +2827,9 @@ msgstr "cancellato dal client"
msgid "cannot acquire job mutex"
msgstr "impossibile ottenere job mutex"
msgid "cannot attach device on inactive domain"
msgstr "impossibile collegare il dispositivo ad un dominio inattivo"
msgid "cannot become session leader"
msgstr "impossibile diventare leader della sessione"
msgid "cannot bind socket"
msgstr "impossibile legare il socket"
msgid "cannot block signals"
msgstr "impossibile bloccare segnali"
@@ -2923,9 +2900,6 @@ msgstr "impossibile creare la directory '%s' per l'istantanea"
msgid "cannot decode CPU data for %s architecture"
msgstr "impossibile decodificare i dati della CPU per l'architettura %s"
msgid "cannot detach device on inactive domain"
msgstr "impossibile scollegare il dispositivo su un dominio inattivo"
#, c-format
msgid "cannot disable %s"
msgstr "impossibile disabilitare %s"
@@ -3024,9 +2998,6 @@ msgstr "impossibile ottenere la posizione di vCPU e l'ora pCPU"
msgid "cannot initialize condition variable"
msgstr "impossibile inizializzare la variabile condition"
msgid "cannot initialize inotify"
msgstr "impossibile inizializzare inotify"
msgid "cannot initialize monitor condition"
msgstr "impossibile inizializzare la condizione del monitor"
@@ -3052,9 +3023,6 @@ msgstr "impossibile aprire '%s'"
msgid "cannot open path '%s'"
msgstr "Impossibile aprire il percorso '%s'"
msgid "cannot open socket"
msgstr "impossibile aprire il socket"
#, c-format
msgid "cannot open volume '%s'"
msgstr "impossibile aprire il volume '%s'"
@@ -3169,10 +3137,6 @@ msgstr "impossibile analizzare il filename vbd, tipo di driver mancante"
msgid "cannot parse vendor id %s"
msgstr "impossibile analizzare l'id produttore %s"
#, c-format
msgid "cannot parse version %s"
msgstr "impossibile analizzare la versione %s"
#, c-format
msgid "cannot parse video heads '%s'"
msgstr "impossibile analizzare le testine video '%s'"
@@ -3235,10 +3199,6 @@ msgstr "impossibile leggere l'header '%s'"
msgid "cannot read mount list '%s'"
msgstr "impossibile leggere la lista di mount '%s'"
#, c-format
msgid "cannot read reply %s"
msgstr "impossibile leggere la risposta %s"
#, c-format
msgid "cannot remove config %s"
msgstr "impossibile rimuovere la configurazione %s"
@@ -3270,14 +3230,6 @@ msgstr ""
msgid "cannot seek to beginning of file '%s'"
msgstr "impossibile determinare l'inizio del file '%s'"
#, c-format
msgid "cannot send command %s"
msgstr "impossibile inviare il comando %s"
#, c-format
msgid "cannot send too long command %s (%d bytes)"
msgstr "impossibile inviare il comando troppo lungo %s (%d byte)"
msgid "cannot set autostart for transient domain"
msgstr "impossibile impostare l'autostart di un dominio transitorio"
@@ -3296,16 +3248,9 @@ msgstr "impossibile impostare la modalità del file '%s'"
msgid "cannot set file owner '%s'"
msgstr "impossibile impostare il proprietario del file '%s'"
msgid "cannot set max memory lower than current memory"
msgstr ""
"impossibile impostare la memoria massima al di sotto della memoria corrente"
msgid "cannot set memory higher than max memory"
msgstr "impossibile impostare la memoria al di sopra della memoria massima"
msgid "cannot set memory of an active domain"
msgstr "impossibile impostare la memoria di un dominio attivo"
#, c-format
msgid "cannot set security props %d (%s)"
msgstr "impossibile impostare le proposizioni di sicurezza %d (%s)"
@@ -3858,13 +3803,6 @@ msgstr "Impossibile contrassegnare la rete %s come auto avviante"
msgid "failed to mark pool %s as autostarted"
msgstr "Impossibile contrassegnare il pool %s come auto avviante"
#, c-format
msgid "failed to open %s for reading"
msgstr "impossibile aprire in lettura %s"
msgid "failed to open configuration file for reading"
msgstr "impossibile aprire in lettura il file di configurazione"
msgid "failed to open file"
msgstr "impossibile aprire un file"
@@ -3893,10 +3831,6 @@ msgstr "errore di lettura del file di configurazione %s"
msgid "failed to read metadata length in '%s'"
msgstr "impossibile leggere la lunghezza dei metadata in '%s'"
#, c-format
msgid "failed to read pid: %s"
msgstr "impossibile leggere il pid: %s"
msgid "failed to read qemu header"
msgstr "impossibile leggere l'intestazione qemu"
@@ -4003,10 +3937,6 @@ msgstr "ottieni statistiche interfaccia di rete per un dominio"
msgid "getting time of day"
msgstr "acquisizione ora del giorno in corso"
#, c-format
msgid "got unknown HTTP error code %d"
msgstr "ricevuto un codice d'errore HTTP sconosciuto %d"
msgid "gracefully shutdown a domain"
msgstr "arrestare un dominio (graceful shutdown)"
@@ -4330,13 +4260,6 @@ msgstr "libhal_ctx_set_dbus_connection fallita"
msgid "libhal_get_all_devices failed"
msgstr "libhal_get_all_devices fallita"
#, c-format
msgid "library call %s failed, possibly not supported"
msgstr "errore chiamata %s della libreria, forse non risulta supportata"
msgid "library call failed, possibly not supported"
msgstr "errore chiamata della libreria, forse non risulta supportata"
#, c-format
msgid "libvirt was built without the '%s' driver"
msgstr "libvirt è stato compilato senza il driver '%s'"
@@ -4831,9 +4754,6 @@ msgstr "nessun errore"
msgid "no job is active on the domain"
msgstr "nessun lavoro è attivo sul dominio"
msgid "no kernel specified"
msgstr "nessun kernel specificato"
msgid "no large enough free extent"
msgstr "non ci sono extent liberi abbastanza grandi"
@@ -4932,9 +4852,6 @@ msgstr "nwfilter è in uso"
msgid "offline"
msgstr "scollegato"
msgid "only TCP listen is supported for chr device"
msgstr "è supportato solo l'ascolto TCP per i dispositivi chr"
msgid "only a single memory balloon device is supported"
msgstr "è supportato solo un singolo dispositivo balloon della memoria"
@@ -5168,9 +5085,6 @@ msgstr "mostrare/impostare i parametri dello scheduler"
msgid "shut off"
msgstr "terminato"
msgid "shutdown operation failed"
msgstr "operazione di interruzione fallita"
msgid "size > maximum buffer size"
msgstr "dimensione > dimensione buffer massima"
@@ -5974,10 +5888,6 @@ msgstr "tipo di autenticazione %d non supportato"
msgid "unsupported chardev '%s'"
msgstr "chardev '%s' non supportato"
#, c-format
msgid "unsupported chr device type %d"
msgstr "tipo di dispositivo chr non supportato %d"
#, c-format
msgid "unsupported clock offset '%s'"
msgstr "offset '%s' dell'orologio non supportato"

View File

@@ -1,5 +1,5 @@
# Libvirt package strings.
# Copyright (C) 2018 Red Hat, Inc.
# Copyright (C) 2019 Red Hat, Inc.
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
@@ -19,7 +19,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: 2015-02-23 06:48+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Japanese (http://www.transifex.com/projects/p/libvirt/"
@@ -1310,12 +1310,6 @@ msgstr "設定ファイルを読み込みできません: %s: %s"
msgid "Can't modify device type '%s'"
msgstr "デバイス形式 '%s' を変更できません"
msgid "Can't parse barrier from "
msgstr "以下から barrier を構文解析できません "
msgid "Can't parse limit from "
msgstr "以下から limit を構文解析できません "
msgid "Can't parse prlctl output"
msgstr "prlctl 出力を構文解析できません"
@@ -1481,10 +1475,6 @@ msgstr "パスに '%s' を見つけられません"
msgid "Cannot find CPU model with PVR 0x%08x"
msgstr "PVR 0x%08x を持つ CPU モデルを見つけられませんでした"
#, c-format
msgid "Cannot find UML kernel %s"
msgstr "UML カーネル %s を見つけられません"
#, c-format
msgid "Cannot find program %d version %d"
msgstr "プログラム %d バージョン %d を見つけることができません"
@@ -1956,10 +1946,6 @@ msgid ""
msgstr ""
"ドメイン %s のクローズコールバックはすでに他の接続 %p で登録されています"
#, c-format
msgid "Command %s too long for destination"
msgstr "コマンド %s が宛先にとって長すぎます"
msgid "Commit aborted"
msgstr "コミットが中断されました"
@@ -5698,9 +5684,6 @@ msgstr "IP %s が宛先に対して大きすぎます"
msgid "IP address lookup for host '%s' failed: %s"
msgstr "ホスト '%s' の IP アドレスの検索に失敗しました: %s"
msgid "IP address not supported for ethernet interface"
msgstr "IP アドレスはイーサネットインターフェースに対してサポートされません"
msgid ""
"IP parameter must be given since libvirt was not compiled with IP address "
"learning support"
@@ -7080,9 +7063,6 @@ msgstr "注記"
msgid "NULL NetworkDef"
msgstr "空の NetworkDef"
msgid "NULL or empty path"
msgstr "NULL または空のパス"
#, c-format
msgid "NULL string parameter '%s'"
msgstr "NULL 文字列パラメーター '%s'"
@@ -7177,10 +7157,6 @@ msgstr "ネットワーク '%s' はすでに実行中です"
msgid "Network '%s' is still running"
msgstr "ネットワーク '%s' はまだ実行中です"
#, c-format
msgid "Network '%s' not found"
msgstr "ネットワーク '%s' が見つかりません"
msgid "Network config change transaction committed\n"
msgstr "ネットワーク設定変更トランザクションがコミットされました\n"
@@ -7337,9 +7313,6 @@ msgstr "利用可能なカテゴリー範囲がありません"
msgid "No channel command provided"
msgstr "チャネルコマンドが指定されていません"
msgid "No controllers are mounted"
msgstr "コントローラーがマウントされていません"
msgid "No data supplied for <initarg> element"
msgstr "<initarg> 要素にデータがありません"
@@ -9011,12 +8984,6 @@ msgstr "システムが利用可能ではありません"
msgid "System lacks NETNS support"
msgstr "システムに NETNS サポートが欠けています"
msgid "TCP client networking type not supported"
msgstr "TCP クライアントネットワーク形式はサポートされません"
msgid "TCP server networking type not supported"
msgstr "TCP サーバーネットワークタイプはサポートされていません"
#, c-format
msgid "TLS handshake failed %s"
msgstr "TLS ハンドシェイクに失敗しました %s"
@@ -9561,9 +9528,6 @@ msgstr "この関数は WIN32 プラットフォームにおいてサポート
msgid "This host is not managed by a vCenter"
msgstr "このホストは vCenter により管理されていません"
msgid "This type of device cannot be hot unplugged"
msgstr "この形式のデバイスはホットプラグで抜けません"
msgid "This type of disk cannot be hot unplugged"
msgstr "この形式のディスクはホットプラグで抜けません"
@@ -10722,9 +10686,6 @@ msgstr "このプラットフォームにおいて %s における STP 遅延を
msgid "Unable to set STP on %s on this platform"
msgstr "このプラットフォームにおいて %s における STP を設定できません"
msgid "Unable to set VM logfile close-on-exec flag"
msgstr "VM ログファイルの close-on-exec フラグをセットできません"
msgid "Unable to set cloexec flag"
msgstr "cloexec フラグを設定できません"
@@ -10983,10 +10944,6 @@ msgstr ""
"処理できないイベント %d がモニターファイルディスクリプター %d に対してありま"
"した"
#, c-format
msgid "Unix path %s too long for destination"
msgstr "Unix パス %s が宛先にとって長すぎます"
msgid "Unknown"
msgstr "不明"
@@ -12167,15 +12124,9 @@ msgstr "ネットリンクに対してプレースホルダー nlhandle を割
msgid "cannot apply process capabilities %d"
msgstr "プロセスのケイパビリティ %d を適用できません"
msgid "cannot attach device on inactive domain"
msgstr "停止状態のドメインでデバイスを添付できません"
msgid "cannot become session leader"
msgstr "セッションのリーダーになれません"
msgid "cannot bind socket"
msgstr "ソケットをバインドできません"
msgid "cannot block signals"
msgstr "信号をブロックできません"
@@ -12379,9 +12330,6 @@ msgstr "%d 個のスナップショットを持つ停止状態のドメインを
msgid "cannot delete snapshots of running domain"
msgstr "実行中のドメインのスナップショットを削除できません"
msgid "cannot detach device on inactive domain"
msgstr "停止状態のドメインではデバイスを外せません"
#, c-format
msgid "cannot determine filesystem for '%s'"
msgstr "'%s' のファイルシステムがわかりませんでした"
@@ -12590,9 +12538,6 @@ msgstr "証明書オブジェクトを初期化できません: %s"
msgid "cannot initialize condition variable"
msgstr "条件変数を初期化出来ません"
msgid "cannot initialize inotify"
msgstr "inotify を初期化できません"
msgid "cannot initialize monitor condition"
msgstr "モニター条件を初期化できません"
@@ -12710,9 +12655,6 @@ msgstr "macvtap タップデバイス %s を開けません"
msgid "cannot open path '%s'"
msgstr "パス '%s' を開けません"
msgid "cannot open socket"
msgstr "ソケットを開けません"
#, c-format
msgid "cannot open volume '%s'"
msgstr "ボリューム '%s' を開けません"
@@ -12910,10 +12852,6 @@ msgstr "vbd のファイル名を構文解析できません、ドライバー
msgid "cannot parse vendor id %s"
msgstr "vendor id %s を構文解析できません"
#, c-format
msgid "cannot parse version %s"
msgstr "version %s を構文解析できません"
#, c-format
msgid "cannot parse video heads '%s'"
msgstr "video heads '%s' を構文解析できません"
@@ -13016,10 +12954,6 @@ msgstr "ヘッダー'%s' を読み込めません"
msgid "cannot read mount list '%s'"
msgstr "マウント一覧 %s を読み込めません"
#, c-format
msgid "cannot read reply %s"
msgstr "応答 %s を読み込めません"
#, c-format
msgid "cannot receive data from volume %s"
msgstr "ボリューム %s からデータを受信できませんでした"
@@ -13095,10 +13029,6 @@ msgstr "ファイル '%s' の最初をシークできません"
msgid "cannot seek to start of '%s'"
msgstr "'%s' の先頭にシークできませんでした"
#, c-format
msgid "cannot send command %s"
msgstr "コマンド %s を送信できません"
#, c-format
msgid "cannot send data to volume %s"
msgstr "ボリューム %s にデータを送信できませんでした"
@@ -13106,10 +13036,6 @@ msgstr "ボリューム %s にデータを送信できませんでした"
msgid "cannot send to netlink socket"
msgstr "netlink ソケットに送信できません"
#, c-format
msgid "cannot send too long command %s (%d bytes)"
msgstr "長すぎるコマンド %s を送信できません (%d バイト)"
#, c-format
msgid "cannot set CPU affinity on process %d"
msgstr "プロセス %d において CPU アフィニティを設定できません"
@@ -13132,15 +13058,9 @@ msgstr "ファイルモード'%s' をセットできません"
msgid "cannot set file owner '%s'"
msgstr "ファイルオーナー '%s' をセットできません"
msgid "cannot set max memory lower than current memory"
msgstr "最大メモリーはカレントメモリー以下に設定できません"
msgid "cannot set memory higher than max memory"
msgstr "メモリーは最大メモリー以上にセットできません"
msgid "cannot set memory of an active domain"
msgstr "動作中のドメインのメモリーを設定できません"
#, c-format
msgid "cannot set mode of '%s' to %04o"
msgstr "'%s' のモードを %04o に設定できません"
@@ -14127,9 +14047,6 @@ msgstr "ディレクトリー"
msgid "direct migration"
msgstr "ダイレクト・マイグレーション"
msgid "direct networking type not supported"
msgstr "直接ネットワーク形式はサポートされません"
#, c-format
msgid ""
"direct setting of the vlan tag is not allowed for hostdev devices using %s "
@@ -15104,17 +15021,6 @@ msgstr "プール %s を自動起動としてマークするのに失敗しま
msgid "failed to move file to %s "
msgstr "ファイルを %s に移動できませんでした"
#, c-format
msgid "failed to open %s for reading"
msgstr "読み込みのため %s を開くのに失敗しました"
#, c-format
msgid "failed to open chardev file: %s"
msgstr "キャラクターデバイスを開けません: %s"
msgid "failed to open configuration file for reading"
msgstr "読み込みのため設定ファイルを開くのに失敗しました"
msgid "failed to open file"
msgstr "ファイルを開くのに失敗しました"
@@ -15200,10 +15106,6 @@ msgstr "libxl ヘッダーの読み込みに失敗しました"
msgid "failed to read metadata length in '%s'"
msgstr "'%s' にあるメタ情報の長さの読み込みに失敗しました"
#, c-format
msgid "failed to read pid: %s"
msgstr "pid の読み込みに失敗: %s"
msgid "failed to read qemu header"
msgstr "qemu ヘッダーの読み込みに失敗しました"
@@ -15615,10 +15517,6 @@ msgstr ""
"予期しない RPC コールのプログラム %d バージョン %d プロセス %d 種類 %d があり"
"ました"
#, c-format
msgid "got unknown HTTP error code %d"
msgstr "不明な HTTP エラーコード %d を取得しました"
msgid "gracefully shutdown a domain"
msgstr "ドメインの穏やかな停止"
@@ -15725,9 +15623,6 @@ msgstr "ホストデバイス %s がありませんでした"
msgid "hostdev mode '%s' not supported"
msgstr "hostdev モード '%s' はサポートされません"
msgid "hostdev networking type not supported"
msgstr "hostdev ネットワーク形式はサポートされません"
#, c-format
msgid "hostdev subsys type '%s' not supported"
msgstr "hostdev subsys モード '%s' はサポートされません"
@@ -15804,10 +15699,6 @@ msgstr "利用可能ならば、接続 URI の中にパスワードを含めま
msgid "incomplete metadata in '%s'"
msgstr "'%s' にあるメタデータが不完全です"
#, c-format
msgid "incomplete reply %s"
msgstr "不完全な応答 %s"
msgid "incomplete return information"
msgstr "不完全な返り情報"
@@ -15885,9 +15776,6 @@ msgstr "インターフェース名 %s がバッファーの中に収まりま
msgid "interface name or MAC address"
msgstr "インターフェイス名または MAC アドレス"
msgid "interface script execution not supported by this driver"
msgstr "インターフェーススクリプト実行はこのドライバーによりサポートされません"
msgid "interface stats not implemented on this platform"
msgstr "インターフェースの統計はこのプラットフォームにおいてサポートされません"
@@ -15905,9 +15793,6 @@ msgstr "内部エラー: %s"
msgid "internal error: bad options in command: '%s'"
msgstr "内部エラー: コマンドに不正なオプションがあります: '%s'"
msgid "internal networking type not supported"
msgstr "内部ネットワーク形式はサポートされません"
#, c-format
msgid "internal snapshot for disk %s unsupported for storage type %s"
msgstr ""
@@ -16248,10 +16133,6 @@ msgstr "無効な node memory 値"
msgid "invalid path %s not assigned to domain"
msgstr "無効なパス %s はドメインに割り当てられていません"
#, c-format
msgid "invalid path '%s'"
msgstr "無効なパス '%s'"
#, c-format
msgid "invalid path, '%s' is not a known interface"
msgstr "無効なパス、'%s' は不明なインターフェイスです"
@@ -16457,14 +16338,6 @@ msgstr "libhal_get_all_devices に失敗しました"
msgid "libnl was not available at build time"
msgstr "libnl がビルド時に利用可能ではありませんでした"
#, c-format
msgid "library call %s failed, possibly not supported"
msgstr ""
"ライブラリー呼出し %s が失敗しました、サポートされていない可能性があります"
msgid "library call failed, possibly not supported"
msgstr "ライブラリー呼出しが失敗しました、サポートされていない可能性があります"
msgid "libselinux does not support LXC contexts path"
msgstr "libselinux は LXC コンテキストパスをサポートしていません"
@@ -17944,9 +17817,6 @@ msgstr "internalFlags サポートがありません"
msgid "no job is active on the domain"
msgstr "ドメインにおいてアクティブなジョブはありません"
msgid "no kernel specified"
msgstr "カーネルの指定がありません"
msgid "no large enough free extent"
msgstr "空き拡張に十分な領域がありません"
@@ -18220,9 +18090,6 @@ msgstr "ok"
msgid "online commit not supported with this QEMU binary"
msgstr "オンラインコミットはこの QEMU バイナリーでサポートされません"
msgid "only TCP listen is supported for chr device"
msgstr "TCP リッスンのみが文字デバイス用にサポートされています"
msgid "only a single TPM device is supported"
msgstr "一つの TPM デバイスのみがサポートされます"
@@ -19177,9 +19044,6 @@ msgstr "シャットオフ"
msgid "shutdown"
msgstr "シャットダウン"
msgid "shutdown operation failed"
msgstr "シャットダウン操作は失敗しました"
msgid "shutting down"
msgstr "シャットダウン中"
@@ -19833,12 +19697,6 @@ msgstr "udev_monitor_new_from_netlink が NULL を返しました"
msgid "uid and gid should be mapped both"
msgstr "UID と GID をどちらも対応付ける必要があります"
msgid "uml state driver is not active"
msgstr "uml 状態ドライバーはアクティブではありません"
msgid "umlStartup: out of memory"
msgstr "umlStartup: メモリー不足"
#, c-format
msgid "unable to access device %s\n"
msgstr "デバイス %s にアクセスできません\n"
@@ -20173,14 +20031,6 @@ msgstr "予期しない QEMU URI パス '%s'、qemu:///session を試して下
msgid "unexpected QEMU URI path '%s', try qemu:///system"
msgstr "予期しない QEMU URI パス '%s'、qemu:///system を試して下さい"
#, c-format
msgid "unexpected UML URI path '%s', try uml:///session"
msgstr "予期しない UML URI パス '%s'、uml:///session を試して下さい"
#, c-format
msgid "unexpected UML URI path '%s', try uml:///system"
msgstr "予期しない UML URI パス '%s'、uml:///system を試して下さい"
#, c-format
msgid ""
"unexpected VMware URI path '%s', try vmwareplayer:///session, vmwarews:///"
@@ -21175,10 +21025,6 @@ msgstr "サポートのない認証タイプ %d です"
msgid "unsupported chardev '%s'"
msgstr "サポートされないキャラクターデバイス '%s' です"
#, c-format
msgid "unsupported chr device type %d"
msgstr "サポートのない文字デバイスタイプ %d"
#, c-format
msgid "unsupported chr device type '%s'"
msgstr "サポートされないキャラクターデバイス形式 '%s' です"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.3.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: 2018-04-24 06:29+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Georgian (http://www.transifex.com/projects/p/fedora/language/"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: Kazakh\n"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: Khmer\n"

View File

@@ -1,5 +1,5 @@
# Libvirt package strings.
# Copyright (C) 2018 Red Hat, Inc.
# Copyright (C) 2019 Red Hat, Inc.
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
@@ -16,7 +16,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: 2015-02-27 07:08+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Kannada (http://www.transifex.com/projects/p/libvirt/language/"
@@ -1224,12 +1224,6 @@ msgstr "ಸಂರಚನೆ ಲೋಡ್ ಅನ್ನು ನಿರ್ಧರಿಸ
msgid "Can't modify device type '%s'"
msgstr "ಸಾಧನದ ಬಗೆ '%s' ಅನ್ನು ಮಾರ್ಪಡಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ"
msgid "Can't parse barrier from "
msgstr "ಇಲ್ಲಿಂದ ತಡೆಯನ್ನು ಪಾರ್ಸ್ ಮಾಡಲಾಗಿಲ್ಲ"
msgid "Can't parse limit from "
msgstr "ಇಲ್ಲಿಂದ ಮಿತಿಯನ್ನು ಪಾರ್ಸ್ ಮಾಡಲಾಗಿಲ್ಲ"
msgid "Can't parse prlctl output"
msgstr "prlctl ಔಟ್‌ಪುಟ್ ಅನ್ನು ಪಾರ್ಸ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ"
@@ -1393,10 +1387,6 @@ msgstr "ಮಾರ್ಗದಲ್ಲಿ '%s' ಕಂಡುಬಂದಿಲ್ಲ"
msgid "Cannot find CPU model with PVR 0x%08x"
msgstr "PVR 0x%08x ಅನ್ನು ಹೊಂದಿರುವ CPU ಕಂಡುಬಂದಿಲ್ಲ"
#, c-format
msgid "Cannot find UML kernel %s"
msgstr "UML ಕರ್ನಲ್ %s ಕಂಡುಬರಲಿಲ್ಲ"
#, c-format
msgid "Cannot find program %d version %d"
msgstr "ಪ್ರೊಗ್ರಾಮ್ %d ಆವೃತ್ತಿ %d ಯು ಲಭ್ಯವಿಲ್ಲ"
@@ -1869,10 +1859,6 @@ msgid ""
msgstr ""
"%s ಡೊಮೇನ್‌ಗಾಗಿ ಮುಚ್ಚುವ ಕಾಲ್‌ಬ್ಯಾಕ್‌ %p ಇನ್ನೊಂದು ಸಂಪರ್ಕದೊಂದಿಗೆ ಈಗಾಗಲೆ ನೋಂದಾಯಿಸಲಾಗಿದೆ"
#, c-format
msgid "Command %s too long for destination"
msgstr "ಆದೇಶ %s ಗುರಿಗೆ ಬಹಳ ಉದ್ದವಾಗಿದೆ"
msgid "Commit aborted"
msgstr "ಸಲ್ಲಿಕೆಯನ್ನು ವಿಫಲಗೊಳಿಸಲಾಗಿದೆ"
@@ -5549,9 +5535,6 @@ msgstr "IP %s ಗುರಿಗೆ ಬಹಳ ದೊಡ್ಡದಾಗಿದೆ"
msgid "IP address lookup for host '%s' failed: %s"
msgstr "'%s' ಆತಿಥೇಯಕ್ಕಾಗಿ IP ವಿಳಾಸವನ್ನು ನೋಡುವಿಕೆಯು ವಿಫಲಗೊಂಡಿದೆ: %s"
msgid "IP address not supported for ethernet interface"
msgstr "ಎತರ್ನೆಟ್ ಸಂಪರ್ಕಸಾಧನಕ್ಕಾಗಿ IP ವಿಳಾಸವು ಬೆಂಬಲಿತವಾಗಿಲ್ಲ"
msgid ""
"IP parameter must be given since libvirt was not compiled with IP address "
"learning support"
@@ -6883,9 +6866,6 @@ msgstr "NOTE"
msgid "NULL NetworkDef"
msgstr "NULL NetworkDef"
msgid "NULL or empty path"
msgstr "NULL ಅಥವ ಖಾಲಿ ಮಾರ್ಗ"
#, c-format
msgid "NULL string parameter '%s'"
msgstr "NULL ವಾಕ್ಯಾಂಶ ನಿಯತಾಂಕ '%s'"
@@ -6974,10 +6954,6 @@ msgstr "'%s' ಜಾಲಬಂಧವು ಈಗಾಗಲೆ ಚಾಲನೆಯಲ
msgid "Network '%s' is still running"
msgstr "'%s' ಜಾಲಬಂಧವು ಇನ್ನೂ ಚಾಲಿತಗೊಳ್ಳುತ್ತಿದೆ"
#, c-format
msgid "Network '%s' not found"
msgstr "'%s' ಜಾಲಬಂಧವು ಕಂಡು ಬಂದಿಲ್ಲ"
msgid "Network config change transaction committed\n"
msgstr "ಜಾಲಬಂಧ ಸಂರಚನೆ ಬದಲಾವಣೆ ವ್ಯವಹಾರವನ್ನು ಸಲ್ಲಿಸಲಾಗಿದೆ\n"
@@ -7132,9 +7108,6 @@ msgstr "ಯಾವುದೆ ವರ್ಗದ ವ್ಯಾಪ್ತಿಯು ಲಭ
msgid "No channel command provided"
msgstr "ಯಾವುದೆ ಚಾನಲ್ ಆದೇಶವನ್ನು ಒದಗಿಸಲಾಗಿಲ್ಲ"
msgid "No controllers are mounted"
msgstr "ಯಾವುದೆ ನಿಯಂತ್ರಕಗಳನ್ನು ಏರಿಸಲಾಗಿಲ್ಲ"
msgid "No data supplied for <initarg> element"
msgstr "<initarg> ಘಟಕಕ್ಕಾಗಿ ಯಾವುದೆ ದತ್ತಾಂಶವನ್ನು ಒದಗಿಸಲಾಗಿಲ್ಲ"
@@ -8758,12 +8731,6 @@ msgstr "ವ್ಯವಸ್ಥೆಯು ಲಭ್ಯವಿಲ್ಲ"
msgid "System lacks NETNS support"
msgstr "ವ್ಯವಸ್ತೆಯಲ್ಲಿ NETNS ಬೆಂಬಲದ ಕೊರತೆಯಿದೆ"
msgid "TCP client networking type not supported"
msgstr "TCP ಕ್ಲೈಂಟ್ ಜಾಲಬಂಧದ ಬಗೆಯು ಬೆಂಬಲಿತವಾಗಿಲ್ಲ"
msgid "TCP server networking type not supported"
msgstr "TCP ಪೂರೈಕೆಗಣಕ ಜಾಲಬಂಧದ ಬಗೆಯು ಬೆಂಬಲಿತವಾಗಿಲ್ಲ"
#, c-format
msgid "TLS handshake failed %s"
msgstr "TLS ಹ್ಯಾಂಡ್‌ಶೇಕ್‌ ವಿಫಲಗೊಂಡಿದೆ %s"
@@ -9299,9 +9266,6 @@ msgstr "ಈ ಕಾರ್ಯಕ್ಕೆ WIN32 ಪ್ಲಾಟ್‌ಫಾರ್
msgid "This host is not managed by a vCenter"
msgstr "ಆತಿಥೇಯವನ್ನು vCenter ಇಂದ ನೋಡಿಕೊಳ್ಳಲಾಗುತ್ತಿಲ್ಲ"
msgid "This type of device cannot be hot unplugged"
msgstr "ಈ ಬಗೆಯ ಸಾಧನಗಳನ್ನು ಕಳಚಿಹಾಕಲು(ಅನ್‌ಪ್ಲಗ್) ಸಾಧ್ಯವಿಲ್ಲ"
msgid "This type of disk cannot be hot unplugged"
msgstr "ಈ ಬಗೆಯ ಡಿಸ್ಕ್ ಅನ್ನು ಕಳಚಿಹಾಕಲು(ಅನ್‌ಪ್ಲಗ್) ಸಾಧ್ಯವಿಲ್ಲ"
@@ -10436,9 +10400,6 @@ msgstr "ಈ ಪ್ಲಾಟ್‌ಫಾರ್ಮಿನಲ್ಲಿನ %s ನಲ
msgid "Unable to set STP on %s on this platform"
msgstr "ಈ ಪ್ಲಾಟ್‌ಫಾರ್ಮಿನಲ್ಲಿನ %s ನಲ್ಲಿ STP ಯನ್ನು ಹೊಂದಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ"
msgid "Unable to set VM logfile close-on-exec flag"
msgstr "VM ದಾಖಲೆಕಡತ close-on-exec ಗುರುತನ್ನು ಬದಲಾಯಿಸಲಾಗಿಲ್ಲ"
msgid "Unable to set cloexec flag"
msgstr "cloexec ಫ್ಲಾಗ್‌ ಅನ್ನು ಹೊಂದಿಸಲಾಗಿಲ್ಲ"
@@ -10693,10 +10654,6 @@ msgstr "ಪರಿಮಾಣ ಮಾರ್ಗದ ವಿನ್ಯಾಸವು ಅನ
msgid "Unhandled event %d for monitor fd %d"
msgstr "ನಿಭಾಯಿಸಲಾಗದ ಘಟನೆ %d, ಮೇಲ್ವಿಚಾರಕ fd %d ಗಾಗಿ"
#, c-format
msgid "Unix path %s too long for destination"
msgstr "ಯುನಿಕ್ಸ್ ಮಾರ್ಗ %s ಗುರಿಗೆ ಬಹಳ ಉದ್ದವಾಗಿದೆ"
msgid "Unknown"
msgstr "ಅಜ್ಞಾತ"
@@ -11857,15 +11814,9 @@ msgstr "ನೆಟ್‌ಲಿಂಕ್‌ಗಾಗಿ ಪ್ಲೇಸ್‌ಹ
msgid "cannot apply process capabilities %d"
msgstr "ಪ್ರಕ್ರಿಯೆ ಸಾಮರ್ಥ್ಯಗಳನ್ನು ಅನ್ವಯಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ: %d"
msgid "cannot attach device on inactive domain"
msgstr "ಒಂದು ನಿಷ್ಕ್ರಿಯ ಡೊಮೇನ್‌ಗೆ ಒಂದು ಸಾಧನವನ್ನು ಜೋಡಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ"
msgid "cannot become session leader"
msgstr "ಅಧಿವೇಶನದ ಮುಂದಾಳುವಾಗಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ"
msgid "cannot bind socket"
msgstr "ಸಾಕೆಟ್‌ಗೆ ಬೈಂಡ್ ಮಾಡಲು ಆಗಿಲ್ಲ"
msgid "cannot block signals"
msgstr "ಸಂಕೇತಗಳನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿಲ್ಲ"
@@ -12061,9 +12012,6 @@ msgstr "%d ಸ್ನ್ಯಾಪ್‌ಶಾಟ್‌ಗಳೊಂದಿಗೆ
msgid "cannot delete snapshots of running domain"
msgstr "ಚಾಲನೆಯಲ್ಲಿರುವ ಡೊಮೇನ್‌ನ ಸ್ನ್ಯಾಪ್‌ಶಾಟ್‌ಗಳನ್ನು ಅಳಿಸಲಾಗಿಲ್ಲ"
msgid "cannot detach device on inactive domain"
msgstr "ಒಂದು ನಿಷ್ಕ್ರಿಯ ಡೊಮೇನ್‌ನಲ್ಲಿನ ಸಾಧನವನ್ನು ಕಳಚಿಹಾಕಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ"
#, c-format
msgid "cannot determine filesystem for '%s'"
msgstr "'%s' ಇದಕ್ಕಾಗಿನ ಕಡತವ್ಯವಸ್ಥೆಯನ್ನು ನಿರ್ಧರಿಸಲಾಗುವುದಿಲ್ಲ"
@@ -12265,9 +12213,6 @@ msgstr "cert ವಸ್ತುವನ್ನು ಆರಂಭಿಸಲು ಸಾಧ
msgid "cannot initialize condition variable"
msgstr "ನಿಬಂಧನಾ ವೇರಿಯೇಬಲ್‌ ಅನ್ನು ಆರಂಭಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ"
msgid "cannot initialize inotify"
msgstr "inotify ಅನ್ನು ಆರಂಭಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ"
msgid "cannot initialize monitor condition"
msgstr "ಮೇಲ್ವಿಚಾರಕ ನಿಬಂಧನೆಯನ್ನು ಆರಂಭಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ"
@@ -12385,9 +12330,6 @@ msgstr "macvtap ಟ್ಯಾಪ್ ಸಾಧನ %s ಅನ್ನು ತೆರೆ
msgid "cannot open path '%s'"
msgstr "ಮಾರ್ಗ '%s' ಅನ್ನು ತೆರೆಯುಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ"
msgid "cannot open socket"
msgstr "ಸಾಕೆಟ್ ಅನ್ನು ತೆರೆಯಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ"
#, c-format
msgid "cannot open volume '%s'"
msgstr "ಪರಿಮಾಣ '%s' ಅನ್ನು ತೆರೆಯಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ"
@@ -12573,10 +12515,6 @@ msgstr "vbd ಕಡತದಹೆಸರಿನ ಶಬ್ಧ ಲಕ್ಷಣ ಹೇ
msgid "cannot parse vendor id %s"
msgstr "ಮಾರಾಟಗಾರನ id ಯನ್ನು ಪಾರ್ಸ್ ಮಾಡಲಾಗಿಲ್ಲ: %s"
#, c-format
msgid "cannot parse version %s"
msgstr "%s ಆವೃತ್ತಿಯನ್ನು ಪಾರ್ಸ್ ಮಾಡಲಾಗಿಲ್ಲ"
#, c-format
msgid "cannot parse video heads '%s'"
msgstr "ವೀಡಿಯೊ ಹೆಡ್‌ಗಳನ್ನು '%s' ಅನ್ನು ಪಾರ್ಸ್ ಮಾಡಲಾಗಿಲ್ಲ"
@@ -12679,10 +12617,6 @@ msgstr "ಹೆಡರ್ '%s' ಅನ್ನು ಓದಲಾಗಿಲ್ಲ"
msgid "cannot read mount list '%s'"
msgstr "ಅರೋಹಣಾ ಪಟ್ಟಿ '%s' ಅನ್ನು ಓದಲಾಗಿಲ್ಲ"
#, c-format
msgid "cannot read reply %s"
msgstr "%s ಪ್ರತ್ಯುತ್ತರವನ್ನು ಓದಲಾಗಿಲ್ಲ"
#, c-format
msgid "cannot receive data from volume %s"
msgstr "ಪರಿಮಾಣ %s ದಿಂದ ದತ್ತಾಂಶವನ್ನು ಸ್ವೀಕರಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ"
@@ -12758,10 +12692,6 @@ msgstr "'%s' ಕಡತದ ಆರಂಭವನ್ನು ಕೋರಲು ಸಾಧ
msgid "cannot seek to start of '%s'"
msgstr "'%s' ನ ಆರಂಭವನ್ನು ಕೋರಲಾಗಿಲ್ಲ"
#, c-format
msgid "cannot send command %s"
msgstr "ಆದೇಶ %s ಅನ್ನು ಕಳುಹಿಸಲಾಗಿಲ್ಲ"
#, c-format
msgid "cannot send data to volume %s"
msgstr "ದತ್ತಾಂಶವನ್ನು %s ಪರಿಮಾಣದೊಂದಿಗೆ ಕಳುಹಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ"
@@ -12769,10 +12699,6 @@ msgstr "ದತ್ತಾಂಶವನ್ನು %s ಪರಿಮಾಣದೊಂದ
msgid "cannot send to netlink socket"
msgstr "ನೆಟ್‌ಲಿಂಕ್ ಸಾಕೆಟ್ ಅನ್ನು ಕಳುಹಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ"
#, c-format
msgid "cannot send too long command %s (%d bytes)"
msgstr "ಬಹಳ ಉದ್ದನೆಯ ಆದೇಶ %s ಅನ್ನು ಕಳುಹಿಸಲಾಗಿಲ್ಲ (%d ಬೈಟ್‌ಗಳು)"
#, c-format
msgid "cannot set CPU affinity on process %d"
msgstr "%d ಎಂಬ ಪ್ರಕ್ರಿಯೆಗೆ CPU ಸಂಬಂಧವನ್ನು ಹೊಂದಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ"
@@ -12795,15 +12721,9 @@ msgstr "ಕಡತದ ಕ್ರಮ '%s' ಅನ್ನು ಹೊಂದಿಸಲು
msgid "cannot set file owner '%s'"
msgstr "ಕಡತದ ಮಾಲಿಕ '%s' ಅನ್ನು ಹೊಂದಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ"
msgid "cannot set max memory lower than current memory"
msgstr "ಗರಿಷ್ಟ ಮೆಮರಿಯನ್ನು ಪ್ರಸಕ್ತ ಮೆಮೊರಿಗಿಂತ ಕಡಿಮೆಗೆ ಹೊಂದಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ"
msgid "cannot set memory higher than max memory"
msgstr "ಗರಿಷ್ಟ ಮೆಮೊರಿಗಿಂತ ಹೆಚ್ಚಿನ ಮೆಮೊರಿಯನ್ನು ಹೊಂದಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ"
msgid "cannot set memory of an active domain"
msgstr "ಸಕ್ರಿಯ ಡೊಮೇನ್‌ಗಾಗಿ ಮೆಮೊರಿಯನ್ನು ಹೊಂದಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ"
#, c-format
msgid "cannot set mode of '%s' to %04o"
msgstr "'%s' ದ ಕ್ರಮವನ್ನು %04o ಹೊಂದಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ"
@@ -13779,9 +13699,6 @@ msgstr "dir"
msgid "direct migration"
msgstr "ನೇರ ವರ್ಗಾವಣೆ"
msgid "direct networking type not supported"
msgstr "ನೇರ ಜಾಲಬಂಧದ ಬಗೆಗೆ ಬೆಂಬಲವಿಲ್ಲ"
#, c-format
msgid ""
"direct setting of the vlan tag is not allowed for hostdev devices using %s "
@@ -14690,17 +14607,6 @@ msgstr ""
msgid "failed to move file to %s "
msgstr "%s ಗೆ ಕಡತವನ್ನು ಸ್ಥಳಾಂತರಿಸಲು ವಿಫಲಗೊಂಡಿದೆ "
#, c-format
msgid "failed to open %s for reading"
msgstr "%s ಅನ್ನು ಓದಲು ತೆರೆಯುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ"
#, c-format
msgid "failed to open chardev file: %s"
msgstr "chardev ಕಡತವನ್ನು ತೆರೆಯುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ: %s"
msgid "failed to open configuration file for reading"
msgstr "ಓದಲು ಸಂರಚನಾ ಕಡತವನ್ನು ತೆರೆಯಲು ವಿಫಲಗೊಂಡಿದೆ"
msgid "failed to open file"
msgstr "ಕಡತವನ್ನು ತೆಗೆಯುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ"
@@ -14771,10 +14677,6 @@ msgstr "libxl ಹೆಡರ್ ಅನ್ನು ಓದುವಲ್ಲಿ ವಿಫ
msgid "failed to read metadata length in '%s'"
msgstr "'%s' ನಲ್ಲಿನ ಮೆಟಾಡಾಟಾ ಗಾತ್ರವನ್ನು ಓದುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ"
#, c-format
msgid "failed to read pid: %s"
msgstr "pid ಅನ್ನು ಓದುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ: %s"
msgid "failed to read qemu header"
msgstr "qemu ಹೆಡರ್ ಅನ್ನು ಓದುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ"
@@ -15176,10 +15078,6 @@ msgstr "ಒದಗಿಸಲಾದ uuid ಯು XML uuid ಗೆ ಹೊಂದಿಕ
msgid "got unexpected RPC call prog %d vers %d proc %d type %d"
msgstr "prog %d vers %d proc %d type %d ಇಂದ ಅನಿರೀಕ್ಷಿತವಾದ RPC ಕರೆ ಬಂದಿದೆ"
#, c-format
msgid "got unknown HTTP error code %d"
msgstr "ಅಜ್ಞಾತ HTTP ದೋಷ ಸಂಜ್ಞೆ %d ಉಂಟಾಗಿದೆ"
msgid "gracefully shutdown a domain"
msgstr "ಸುಲಲಿತವಾಗಿ ಒಂದು ಡೊಮೇನ್‌ ಅನ್ನು ಸ್ಥಗಿತಗೊಳಿಸಲಾಗುತ್ತಿದೆ"
@@ -15274,9 +15172,6 @@ msgstr "hostdev %s ಕಂಡುಬಂದಿಲ್ಲ"
msgid "hostdev mode '%s' not supported"
msgstr "hostdev mode '%s' ಗೆ ಬೆಂಬಲವಿಲ್ಲ"
msgid "hostdev networking type not supported"
msgstr "hostdev ಜಾಲಬಂಧದ ಬಗೆಗೆ ಬೆಂಬಲವಿಲ್ಲ"
#, c-format
msgid "hostdev subsys type '%s' not supported"
msgstr "hostdev subsys ಬಗೆ '%s' ಗೆ ಬೆಂಬಲವಿಲ್ಲ"
@@ -15349,10 +15244,6 @@ msgstr "XML ಬಿಸುಡಲ್ಲಿ ಸುರಕ್ಷತಾ ಸಂವೇದ
msgid "includes the password into the connection URI if available"
msgstr "ಲಭ್ಯವಿದ್ದಲ್ಲಿ ಸಂಪರ್ಕ URI ಗೆ ಗುಪ್ತಪದವನ್ನು ಸೇರಿಸುತ್ತದೆ"
#, c-format
msgid "incomplete reply %s"
msgstr "'%s' ನಲ್ಲಿ ಅಪೂರ್ಣವಾದ ಪ್ರತ್ಯುತ್ತರ"
msgid "incomplete return information"
msgstr "ಮರಳಿಕೆಯ ಮಾಹಿತಿಯು ಅಪೂರ್ಣವಾಗಿದೆ"
@@ -15428,9 +15319,6 @@ msgstr "%s ಸಂಪರ್ಕಸಾಧನದ ಹೆಸರು ಬಫರಿಗೆ
msgid "interface name or MAC address"
msgstr "ಸಂಪರ್ಕಸಾಧನದ ಹೆಸರು ಅಥವ MAC ವಿಳಾಸ"
msgid "interface script execution not supported by this driver"
msgstr "ಸಂಪರ್ಕಸಾಧನ ಸ್ಕ್ರಿಪ್ಟಿನ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯನ್ನು ಈ ಚಾಲಕದಿಂದ ಬೆಂಬಲಿಸಲಾಗುವುದಿಲ್ಲ"
msgid "interface stats not implemented on this platform"
msgstr "ಈ ಪ್ಲಾಟ್‌ಫಾರ್ಮಿನಲ್ಲಿ ಸಂಪರ್ಕಸಾಧನ ಅಂಕಿ ಅಂಶಗಳನ್ನು ಅನ್ವಯಿಸಲಾಗಿಲ್ಲ"
@@ -15448,9 +15336,6 @@ msgstr "ಆಂತರಿಕ ದೋಷ: %s"
msgid "internal error: bad options in command: '%s'"
msgstr "ಆಂತರಿಕ ದೋಷ: ಆದೇಶದಲ್ಲಿ ತಪ್ಪು ಆಯ್ಕೆಗಳು: '%s'"
msgid "internal networking type not supported"
msgstr "ಆಂತರಿಕ ಬಗೆಯ ಜಾಲಬಂಧವು ಬೆಂಬಲಿತವಾಗಿಲ್ಲ"
#, c-format
msgid "internal snapshot for disk %s unsupported for storage type %s"
msgstr "%s ಡಿಸ್ಕಿಗಾಗಿ ಆಂತರಿಕ ಸ್ನ್ಯಾಪ್‌ಶಾಟ್‌ %s ಎಂಬ ಶೇಖರಣಾ ಬಗೆಗೆ ಬೆಂಬಲಿತವಾಗಿಲ್ಲ"
@@ -15784,10 +15669,6 @@ msgstr "ಅಮಾನ್ಯವಾದ ನೋಡ್ ಮೆಮೊರಿ ಮೌಲ್
msgid "invalid path %s not assigned to domain"
msgstr "ಡೊಮೇನ್‌ಗೆ ಅಮಾನ್ಯವಾದ ಮಾರ್ಗ %s ಅನ್ನು ನಿಯೋಜಿಸಲಾಗಿದೆ"
#, c-format
msgid "invalid path '%s'"
msgstr "ಅಮಾನ್ಯವಾದ ಮಾರ್ಗ '%s'"
#, c-format
msgid "invalid path, '%s' is not a known interface"
msgstr "ಅಮಾನ್ಯವಾದ ಮಾರ್ಗ, '%s' ವು ಒಂದು ಗೊತ್ತಿರುವ ಸಂಪರ್ಕಸಾಧನವಾಗಿಲ್ಲ"
@@ -15986,13 +15867,6 @@ msgstr "libhal_get_all_devices ವಿಫಲಗೊಂಡಿದೆ"
msgid "libnl was not available at build time"
msgstr "ನಿರ್ಮಾಣದ ಸಮಯದಲ್ಲಿ libnl ಲಭ್ಯವಿಲ್ಲ"
#, c-format
msgid "library call %s failed, possibly not supported"
msgstr "ಲೈಬ್ರರಿ ಕರೆ %s ಯು ವಿಫಲಗೊಂಡಿದೆ, ಬಹುಷಃ ಬೆಂಬಲಿತವಾಗಿರದೆ ಇರಬಹುದು"
msgid "library call failed, possibly not supported"
msgstr "ಲೈಬ್ರರಿ ಕರೆಯು ವಿಫಲಗೊಂಡಿದೆ, ಬಹುಷಃ ಬೆಂಬಲಿತವಾಗಿರದೆ ಇರಬಹುದು"
msgid "libselinux does not support LXC contexts path"
msgstr "LXC ಸನ್ನಿವೇಶ ಮಾರ್ಗಗಳನ್ನು libselinux ಬೆಂಬಲಿಸುವುದಿಲ್ಲ"
@@ -17431,9 +17305,6 @@ msgstr "ಯಾವುದೆ internalFlags ಬೆಂಬಲವಿಲ್ಲ"
msgid "no job is active on the domain"
msgstr "ಡೊಮೇನ್‌ನಲ್ಲಿ ಯಾವುದೆ ಕೆಲಸ ಸಕ್ರಿಯವಾಗಿಲ್ಲ"
msgid "no kernel specified"
msgstr "ಯಾವುದೆ ಕರ್ನಲ್ ಅನ್ನು ಸೂಚಿಸಲಾಗಿಲ್ಲ"
msgid "no large enough free extent"
msgstr "ಸಾಕಷ್ಟು ದೊಡ್ಡದಾಗಿರುವ ಯಾವುದೆ ಖಾಲಿ ವ್ಯಾಪ್ತಿಯು ಇಲ್ಲ"
@@ -17696,9 +17567,6 @@ msgstr "ಸರಿ"
msgid "online commit not supported with this QEMU binary"
msgstr "ಈ QEMU ಬೈನರಿಯೊಂದಿಗೆ ಆನ್‌ಲೈನ್ ಸಲ್ಲಿಕೆಗೆ ಬೆಂಬಲವಿಲ್ಲ"
msgid "only TCP listen is supported for chr device"
msgstr "char ಸಾಧನಕ್ಕಾಗಿ TCP ಆಲಿಸುವಿಕೆಯನ್ನು ಮಾತ್ರ ಬೆಂಬಲಿಸಲಾಗುತ್ತದೆ"
msgid "only a single TPM device is supported"
msgstr "ಕೇವಲ ಒಂದು TPM ಸಾಧನಕ್ಕೆ ಮಾತ್ರ ಬೆಂಬಲವಿದೆ"
@@ -18645,9 +18513,6 @@ msgstr "ಮುಚ್ಚಲಾಗಿದೆ"
msgid "shutdown"
msgstr "ಮುಚ್ಚಲಾಗುತ್ತಿದೆ"
msgid "shutdown operation failed"
msgstr "ಮುಚ್ಚುವ ಕಾರ್ಯಾಚರಣೆಯು ವಿಫಲಗೊಂಡಿದೆ"
msgid "shutting down"
msgstr "ಸ್ಥಗಿತಗೊಳಿಸಲಾಗುತ್ತಿದೆ"
@@ -19281,12 +19146,6 @@ msgstr "udev_monitor_new_from_netlink ಎನ್ನುವುದು NULL ಅನ್
msgid "uid and gid should be mapped both"
msgstr "uid ಮತ್ತು gid ಯ ಎರಡೂ ಸಹ ಮ್ಯಾಪ್ ಆಗಿರಬೇಕು"
msgid "uml state driver is not active"
msgstr "uml ಸ್ಥಿತಿ ಚಾಲಕವು ಸಕ್ರಿಯವಾಗಿಲ್ಲ"
msgid "umlStartup: out of memory"
msgstr "umlStartup: ಸಾಕಷ್ಟು ಮೆಮೊರಿ ಇಲ್ಲ"
#, c-format
msgid "unable to access device %s\n"
msgstr "%s ಸಾಧನವನ್ನು ನಿಲುಕಿಸಿಕೊಳ್ಳಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ\n"
@@ -19611,14 +19470,6 @@ msgstr "ಅನಿರೀಕ್ಷಿತವಾದ QEMU URI ಮಾರ್ಗ '%s', q
msgid "unexpected QEMU URI path '%s', try qemu:///system"
msgstr "ಅನಿರೀಕ್ಷಿತವಾದ QEMU URI ಮಾರ್ಗ '%s', qemu:///system ಅನ್ನು ಪ್ರಯತ್ನಿಸಿ"
#, c-format
msgid "unexpected UML URI path '%s', try uml:///session"
msgstr "ಅನಿರೀಕ್ಷಿತವಾದ UML URI ಮಾರ್ಗ '%s', uml:///session ಅನ್ನು ಪ್ರಯತ್ನಿಸಿ"
#, c-format
msgid "unexpected UML URI path '%s', try uml:///system"
msgstr "ಅನಿರೀಕ್ಷಿತವಾದ UML URI ಮಾರ್ಗ '%s', uml:///system ಅನ್ನು ಪ್ರಯತ್ನಿಸಿ"
#, c-format
msgid "unexpected accessmode %d"
msgstr "ಅನಿರೀಕ್ಷಿತ ನಿಲುಕಣಾ ಕ್ರಮ %d"
@@ -20572,10 +20423,6 @@ msgstr "%d, ಬೆಂಬಲವಿಲ್ಲದ ದೃಢೀಕರಣದ ಬಗೆ
msgid "unsupported chardev '%s'"
msgstr "ಬೆಂಬಲವಿಲ್ಲದ chardev '%s'"
#, c-format
msgid "unsupported chr device type %d"
msgstr "ಬೆಂಬಲವಿಲ್ಲದ chr ಸಾಧನದ ಬಗೆ %d"
#, c-format
msgid "unsupported chr device type '%s'"
msgstr "ಬೆಂಬಲವಿಲ್ಲದ chr ಸಾಧನದ ಬಗೆ '%s'"

View File

@@ -1,5 +1,5 @@
# Libvirt package strings.
# Copyright (C) 2018 Red Hat, Inc.
# Copyright (C) 2019 Red Hat, Inc.
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
@@ -15,7 +15,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: 2015-02-27 07:48+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Korean (http://www.transifex.com/projects/p/libvirt/language/"
@@ -808,10 +808,6 @@ msgstr "경로에서 '%s'을 찾을 수 없음"
msgid "Cannot find CPU model with PVR 0x%08x"
msgstr "PVR 0x%08x로 CPU 모델을 찾을 수 없음"
#, c-format
msgid "Cannot find UML kernel %s"
msgstr "UML 커널 %s를 찾을 수 없음"
#, c-format
msgid "Cannot find security driver '%s'"
msgstr "보안 드라이버 '%s'를 찾을 수 없음"
@@ -1088,10 +1084,6 @@ msgid ""
"name"
msgstr "spicevmc에서/로 장치 이름을 변경하면 기본값 대상 채널 이름이 변경됨 "
#, c-format
msgid "Command %s too long for destination"
msgstr "명령 %s가 목적지에 대해 너무 긺"
msgid "Completed with no error"
msgstr "오류 없이 완료되었습니다 "
@@ -3964,9 +3956,6 @@ msgstr "알림 "
msgid "NULL NetworkDef"
msgstr "NULL NetworkDef"
msgid "NULL or empty path"
msgstr "NULL 또는 비어있는 경로"
#, c-format
msgid "NULL string parameter '%s'"
msgstr "NULL 문자열 매개 변수 '%s'"
@@ -4047,10 +4036,6 @@ msgstr "도메인 '%s'가 이미 실행중입니다"
msgid "Network '%s' is still running"
msgstr "네트워크 '%s'가 여전히 실행중입니다"
#, c-format
msgid "Network '%s' not found"
msgstr "네트워크 '%s'를 찾을 수 없음"
#, c-format
msgid "Network config filename '%s' does not match network name '%s'"
msgstr ""
@@ -4874,12 +4859,6 @@ msgstr "시스템이 사용 불가능합니다 "
msgid "System lacks NETNS support"
msgstr "시스템에 NETNS 지원이 없습니다"
msgid "TCP client networking type not supported"
msgstr "지원되지 않는 TCP 클라이언트 네트워킹 유형"
msgid "TCP server networking type not supported"
msgstr "지원되지 않는 TCP 서버 네트워킹 유형"
msgid "Target"
msgstr "대상"
@@ -5279,9 +5258,6 @@ msgstr "'%s'에서 '%s'로 서버가 리디렉션되었습니다 "
msgid "This host is not managed by a vCenter"
msgstr "이 호스트는 vCenter에 의해 관리되지 않습니다"
msgid "This type of device cannot be hot unplugged"
msgstr "이런 유형의 장치는 핫 언플러그될 수 없습니다"
msgid "Thread(s) per core:"
msgstr "코어당 스레드:"
@@ -5676,9 +5652,6 @@ msgstr "역할 '%s'의 SELinux 문맥을 설정할 수 없음"
msgid "Unable to set SELinux context user '%s'"
msgstr "사용자 '%s'의 SELinux 문맥을 설정할 수 없음"
msgid "Unable to set VM logfile close-on-exec flag"
msgstr "VM 로그파일의 close-on-exec 플래그를 설정할 수 없음"
msgid "Unable to set monitor close-on-exec flag"
msgstr "모니터의 close-on-exec 플래그를 설정할 수 없음"
@@ -5751,10 +5724,6 @@ msgstr "디스크 리소스의 예상치 않은 매개 변수 "
msgid "Unexpected volume path format: %s"
msgstr "예상치 못한 볼륨 경로 형식: %s"
#, c-format
msgid "Unix path %s too long for destination"
msgstr "유닉스 경로 %s가 목적지에 대해 너무 긺"
msgid "Unknown"
msgstr "알려지지 않음"
@@ -6327,15 +6296,9 @@ msgstr "상태 변경 락(lock)을 얻을 수 없음"
msgid "cannot allocate nlhandle for netlink"
msgstr "netlink의 nlhandle을 할당할 수 없음"
msgid "cannot attach device on inactive domain"
msgstr "비실행중인 도메인에 장치를 부착할 수 없음"
msgid "cannot become session leader"
msgstr "세션 리더가 되는 데 실패"
msgid "cannot bind socket"
msgstr "소켓을 바인드할 수 없음"
msgid "cannot block signals"
msgstr "시그널을 블럭할 수 없음"
@@ -6429,9 +6392,6 @@ msgstr "파이프를 생성할 수 없음"
msgid "cannot decode CPU data for %s architecture"
msgstr "%s 아키텍쳐에 대한 CPU 데이터를 복호화 할 수 없음"
msgid "cannot detach device on inactive domain"
msgstr "작동중이 아닌 도메인에서 장치를 탈착할 수 없음"
#, c-format
msgid "cannot disable %s"
msgstr "%s를 비활성화 할 수 없음"
@@ -6567,9 +6527,6 @@ msgstr "임시 도메인의 스냅샷 이후 중지할 수 없음 "
msgid "cannot initialize condition variable"
msgstr "상태 변수를 초기화할 수 없습니다"
msgid "cannot initialize inotify"
msgstr "inotify를 초기화할 수 없음"
msgid "cannot initialize monitor condition"
msgstr "모니터 조건을 초기화할 수 없음"
@@ -6605,9 +6562,6 @@ msgstr " %s macvtap 탭 장치를 열 수 없습니다"
msgid "cannot open path '%s'"
msgstr "'%s' 경로를 열 수 없음"
msgid "cannot open socket"
msgstr "소켓을 열수 없음"
#, c-format
msgid "cannot open volume '%s'"
msgstr "볼륨 '%s'를 열 수 없음"
@@ -6752,10 +6706,6 @@ msgstr "vbd 파일명을 구문 분석할 수 없음, 드라이버 유형 부재
msgid "cannot parse vendor id %s"
msgstr "벤더 id %s를 구문분석 할 수 없음"
#, c-format
msgid "cannot parse version %s"
msgstr "버전 번호 %s를 구문 분석할 수 없음"
#, c-format
msgid "cannot parse video heads '%s'"
msgstr "비디오 헤드 '%s'를 구문분석 할 수 없음"
@@ -6840,10 +6790,6 @@ msgstr "헤더 '%s'를 읽을 수 없음"
msgid "cannot read mount list '%s'"
msgstr "'%s' 마운트 목록을 읽을 수 없음"
#, c-format
msgid "cannot read reply %s"
msgstr "응답 %s를 읽을 수 없음"
#, c-format
msgid "cannot receive data from volume %s"
msgstr "볼륨 %s에서 데이터를 수신할 수 없음 "
@@ -6874,10 +6820,6 @@ msgstr "드라이버 링크 %s를 결정할 수 없음"
msgid "cannot seek to beginning of file '%s'"
msgstr "파일 '%s'의 시작 부분으로 이동할 수 없습니다"
#, c-format
msgid "cannot send command %s"
msgstr "명령 '%s'를 보낼 수 없음"
#, c-format
msgid "cannot send data to volume %s"
msgstr "볼륨 %s으로 데이터를 전송할 수 없음 "
@@ -6885,10 +6827,6 @@ msgstr "볼륨 %s으로 데이터를 전송할 수 없음 "
msgid "cannot send to netlink socket"
msgstr "넷링크 소켓에 송신할 수 없습니다"
#, c-format
msgid "cannot send too long command %s (%d bytes)"
msgstr "%s 명령어가 너무 길어서 보낼 수 없습니다 (%d 바이트)"
#, c-format
msgid "cannot set CPU affinity on process %d"
msgstr "프로세스 %d의 CPU 친화도를 지정할 수 없습니다."
@@ -6911,15 +6849,9 @@ msgstr "설정 모드 '%s'를 설정할 수 없음"
msgid "cannot set file owner '%s'"
msgstr "파일 소유자 '%s'를 설정할 수 없음"
msgid "cannot set max memory lower than current memory"
msgstr "최대 메모리를 현재 메모리보다 적게 설정할 수 없음"
msgid "cannot set memory higher than max memory"
msgstr "최대 메모리보다 더 높게 메모리를 설정할 수 없음"
msgid "cannot set memory of an active domain"
msgstr "동작중인 도메인의 메모리를 설정할 수 없음"
#, c-format
msgid "cannot set mode of '%s' to %04o"
msgstr "'%s'의 모드를 %04o로 설정할 수 없음"
@@ -7957,13 +7889,6 @@ msgstr "자동 시작으로 %s 풀을 표시하기 실패"
msgid "failed to move file to %s "
msgstr "파일을 %s로 이동하는데 실패 "
#, c-format
msgid "failed to open %s for reading"
msgstr "읽기 용 %s 열기 실패"
msgid "failed to open configuration file for reading"
msgstr "읽기 용 설정 파일 열기 실패"
msgid "failed to open file"
msgstr "파일 열기 실패"
@@ -8013,10 +7938,6 @@ msgstr "libxl 헤더를 읽는데 실패"
msgid "failed to read metadata length in '%s'"
msgstr "'%s'에서 메타데이터 길이를 읽는 데 실패"
#, c-format
msgid "failed to read pid: %s"
msgstr "pid 읽기 실패: %s"
msgid "failed to read qemu header"
msgstr "qemu 헤더를 읽는 것을 실패"
@@ -8223,10 +8144,6 @@ msgstr "도메인의 네트워크 인터페이스 상태 보기"
msgid "getting time of day"
msgstr "시간 읽어오는 중"
#, c-format
msgid "got unknown HTTP error code %d"
msgstr "알려지지 않은 HTTP 오류 코드 %d가 있음"
msgid "gracefully shutdown a domain"
msgstr "도메인을 종료"
@@ -8272,9 +8189,6 @@ msgstr "호스트 인증 모드에는 세 개의 인증서가 필요합니다"
msgid "hostdev mode '%s' not supported"
msgstr "hostdev 모드 '%s'가 지원되지 않음"
msgid "hostdev networking type not supported"
msgstr "hostdev 네트워크 유형이 지원되지 않음"
#, c-format
msgid "hostdev subsys type '%s' not supported"
msgstr "hostdev subsys 유형 '%s'가 지원되지 않음"
@@ -8327,10 +8241,6 @@ msgstr "비활성화"
msgid "include security sensitive information in XML dump"
msgstr "XML 덤프에 보안상 중요한 정보를 포함합니다"
#, c-format
msgid "incomplete reply %s"
msgstr "완전하지 않은 응답 %s"
#, c-format
msgid "incomplete save header in '%s'"
msgstr " '%s' 내의 불완전한 응답 헤더"
@@ -8386,9 +8296,6 @@ msgstr "인터페이스 이름 또는 MAC 주소"
msgid "internal error"
msgstr "내부 오류"
msgid "internal networking type not supported"
msgstr "내부 네트워킹 유형을 지원하지 않음"
#, c-format
msgid "invalid \"trunk='%s'\" in <vlan> - must be yes or no"
msgstr "<vlan>에서 잘못된 \"trunk='%s'\" - yes 또는 no이어야 합니다 "
@@ -8697,10 +8604,6 @@ msgstr "%s내에 잘못된 노드 장치 포인터"
msgid "invalid node memory value"
msgstr "잘못된 노드 메모리 값"
#, c-format
msgid "invalid path '%s'"
msgstr "잘못된 경로 '%s'"
#, c-format
msgid "invalid path, '%s' is not a known interface"
msgstr "잘못된 경로, '%s'는 알려진 인터페이스가 이닙니다"
@@ -8836,13 +8739,6 @@ msgstr "libhal_ctx_set_dbus_connection 실패 "
msgid "libhal_get_all_devices failed"
msgstr "libhal_get_all_devices 실패"
#, c-format
msgid "library call %s failed, possibly not supported"
msgstr "라이브러리가 지원되지 않아 %s 라이브러리 호출 실패"
msgid "library call failed, possibly not supported"
msgstr "라이브러리가 지원되지 않아 라이브러리 호출 실패"
#, c-format
msgid "libvirt was built without the '%s' driver"
msgstr "libvirt가 '%s' 드라이버 없이 빌드되었습니다 "
@@ -9701,9 +9597,6 @@ msgstr "확장 파티션을 찾지 못했으며, 기본 파티션도 사용할
msgid "no job is active on the domain"
msgstr "도메인에 작동중인 잡이 없습니다"
msgid "no kernel specified"
msgstr "커널이 지정되지 않았습니다"
msgid "no large enough free extent"
msgstr "충분히 큰 확장 공간을 가지고 있지 않습니다"
@@ -9843,9 +9736,6 @@ msgstr "오프라인 마이그레이션은 소스 호스트에 의해 지원되
msgid "ok"
msgstr "ok"
msgid "only TCP listen is supported for chr device"
msgstr "문자 장치에 대해 TCP listen만을 지원"
msgid "only a single TPM device is supported"
msgstr "단일 TPM 장치만 지원됨"
@@ -10321,9 +10211,6 @@ msgstr "종료"
msgid "shutdown"
msgstr "종료"
msgid "shutdown operation failed"
msgstr "시스템 종료 동작이 실패했습니다"
msgid "shutting down"
msgstr "종료 중"
@@ -10749,12 +10636,6 @@ msgstr "udev 스캔 장치가 %d를 반환함 "
msgid "uid and gid should be mapped both"
msgstr "uid와 gid 모두 매핑해야 합니다"
msgid "uml state driver is not active"
msgstr "uml 상태 드라이버가 작동중이 아닙니다"
msgid "umlStartup: out of memory"
msgstr "umlStartup: 메모리가 부족"
#, c-format
msgid "unable to access device %s\n"
msgstr "장치 %s에 액세스할 수 없음\n"
@@ -11004,14 +10885,6 @@ msgstr "예기치 못한 QEMU URI 경로 '%s', qemu:///session을 시도"
msgid "unexpected QEMU URI path '%s', try qemu:///system"
msgstr "예기치 못한 QEMU URI 경로 '%s', qemu:///system을 시도"
#, c-format
msgid "unexpected UML URI path '%s', try uml:///session"
msgstr "예기치 못한 UML URI 경로 '%s', uml:///session을 시도"
#, c-format
msgid "unexpected UML URI path '%s', try uml:///system"
msgstr "예기치 못한 UML URI 경로 '%s', uml:///system을 시도하십시오"
#, c-format
msgid "unexpected accessmode %d"
msgstr "예기치 못한 액세스 모드 %d"
@@ -11892,10 +11765,6 @@ msgstr "지원되지 않는 인증 유형 %d"
msgid "unsupported chardev '%s'"
msgstr "지원되지 않는 문자 장치 '%s'"
#, c-format
msgid "unsupported chr device type %d"
msgstr "지원되지 않는 문자 장치 유형 %d"
#, c-format
msgid "unsupported chr device type '%s'"
msgstr "지원되지 않는 문자 장치 유형 '%s'"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: Cornish\n"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: Cornish (Common Orthography)\n"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: Cornish (Unified Orthography)\n"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: Cornish (United Kingdom)\n"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: Kyrgyz\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.3.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: 2018-04-24 06:31+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Lithuanian (http://www.transifex.com/projects/p/fedora/"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.3.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: 2018-04-24 06:34+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Latvian (http://www.transifex.com/projects/p/fedora/language/"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: Maithili\n"

View File

@@ -1,5 +1,5 @@
# Libvirt package strings.
# Copyright (C) 2018 Red Hat, Inc.
# Copyright (C) 2019 Red Hat, Inc.
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: 2015-02-27 08:02+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Macedonian (http://www.transifex.com/projects/p/fedora/"
@@ -737,13 +737,6 @@ msgstr "не успеав да ја добијам верзијата на би
msgid "failed to mark network %s as autostarted"
msgstr "не успеав да ја означам мрежата %s како автом. стартувана"
#, c-format
msgid "failed to open %s for reading"
msgstr "не успеав да ја отворам %s за читање"
msgid "failed to open configuration file for reading"
msgstr "не успеав да ја отворам конфиг. датотека за читање"
msgid "failed to open file"
msgstr "не успеав да ја отворам датотеката"
@@ -797,10 +790,6 @@ msgstr "XML-датотеката со описот на мрежата"
msgid "getting time of day"
msgstr "преземам време во денот"
#, c-format
msgid "got unknown HTTP error code %d"
msgstr "добив непознат код за HTTP-грешка %d"
msgid "gracefully shutdown a domain"
msgstr "го гаси доменот по мирен пат"
@@ -837,13 +826,6 @@ msgstr "невалиден покажувач кон мрежа во"
msgid "invalid network pointer in %s"
msgstr "невалиден покажувач кон мрежа во %s"
#, c-format
msgid "library call %s failed, possibly not supported"
msgstr "повикот %s кон библиотеката не успеа, можеби не е поддржан"
msgid "library call failed, possibly not supported"
msgstr "повикот кон библиотеката не успеа, можеби не е поддржан"
msgid "list domains"
msgstr "дава листа на домените"

View File

@@ -1,5 +1,5 @@
# Libvirt package strings.
# Copyright (C) 2018 Red Hat, Inc.
# Copyright (C) 2019 Red Hat, Inc.
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
@@ -24,7 +24,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: 2015-02-27 10:04+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Malayalam (http://www.transifex.com/projects/p/libvirt/"
@@ -1211,12 +1211,6 @@ msgstr "ക്രമീകരണ ഫയല്‍ ലഭ്യമാക്കു
msgid "Can't modify device type '%s'"
msgstr "ഡിവൈസ് തരം '%s'-ല്‍ മാറ്റം വരുത്തുവാന്‍ സാധ്യമല്ല"
msgid "Can't parse barrier from "
msgstr "ഇവിടെ നിന്നും ബാറിയര്‍ പാഴ്സ് ചെയ്യുവാന്‍ സാധ്യമല്ല"
msgid "Can't parse limit from "
msgstr "ഇവിടെ നിന്ന് പരിധി പാര്‍സ് ചെയ്യാന്‍ കഴിഞ്ഞില്ല "
msgid "Can't parse prlctl output"
msgstr "prlctl ഔട്ട്പുട്ട് പാര്‍സ് ചെയ്യാന്‍ കഴിഞ്ഞില്ല"
@@ -1380,10 +1374,6 @@ msgstr "പാഥില്‍ '%s' കണ്ടുപിടിയ്ക്കു
msgid "Cannot find CPU model with PVR 0x%08x"
msgstr "PVR 0x%08x ഉള്ള സിപിയു മോഡല്‍ കണ്ടുപിടിയ്ക്കുവാനായില്ല"
#, c-format
msgid "Cannot find UML kernel %s"
msgstr "UML കേര്‍ണല്‍ %s കണ്ടുപിടിക്കുവാന്‍ സാധ്യമല്ല"
#, c-format
msgid "Cannot find program %d version %d"
msgstr "പ്രോഗ്രാം %d പതിപ്പു് %d കണ്ടുപിടിയ്ക്കുവാന്‍ സാധ്യമല്ല"
@@ -1847,10 +1837,6 @@ msgid ""
msgstr ""
"ഡൊമെയിന്‍ %s-നുള്ള ക്ലോസ്ബാക്ക് നിലവില്‍ മറ്റൊരു കണക്ഷന്‍ %p-നൊപ്പം രജിസ്ടര്‍ ചെയ്തിരിയ്ക്കുന്നു"
#, c-format
msgid "Command %s too long for destination"
msgstr "കമാന്‍ഡ് %s വളരെ വലുതാണു്"
msgid "Commit aborted"
msgstr "കമ്മിറ്റ് നിര്‍ത്തി"
@@ -5494,9 +5480,6 @@ msgstr "ഐപി %s വളരെ വലുതാണു്"
msgid "IP address lookup for host '%s' failed: %s"
msgstr "'%s' ഹോസ്റ്റിനുള്ള ഐപി വിലാസം തെരച്ചില്‍ പരാജയപ്പെട്ടു: %s"
msgid "IP address not supported for ethernet interface"
msgstr "ഇഥര്‍നെറ്റ് ഇന്റര്‍ഫെയിസിനുള്ള ഐപി വിലാസം പിന്തുണയ്ക്കുന്നില്ല"
msgid ""
"IP parameter must be given since libvirt was not compiled with IP address "
"learning support"
@@ -6835,9 +6818,6 @@ msgstr "NOTE"
msgid "NULL NetworkDef"
msgstr "കാലി NetworkDef"
msgid "NULL or empty path"
msgstr "NULL അല്ലെങ്കില്‍ ശൂന്യമായ പാഥ്"
#, c-format
msgid "NULL string parameter '%s'"
msgstr "NULL സ്ട്രിങ് പരാമീറ്റര്‍ '%s'"
@@ -6928,10 +6908,6 @@ msgstr "നെറ്റ്‌വര്‍ക്ക് '%s' നിലിവില
msgid "Network '%s' is still running"
msgstr "നെറ്റ്‌വര്‍ക്ക് '%s' ഇപ്പോഴും പ്രവര്‍ത്തിക്കുന്നു"
#, c-format
msgid "Network '%s' not found"
msgstr "നെറ്റ്‌വര്‍ക്ക് '%s' ലഭ്യമല്ല"
msgid "Network config change transaction committed\n"
msgstr "ശ്രംഖല ക്രമീകരണങ്ങള്‍ മാറ്റുന്ന കാര്യം കമ്മിറ്റ് ചെയ്തു\n"
@@ -7078,9 +7054,6 @@ msgstr "വിഭാഗത്തിനുള്ള ഒരു പരിധിയ
msgid "No channel command provided"
msgstr "ചാനല്‍ കമാന്‍ഡ് നല്‍കിയിട്ടില്ല"
msgid "No controllers are mounted"
msgstr "ഒരു കണ്ട്രോളറുകളും മൌണ്ട് ചെയ്തിട്ടില്ല"
msgid "No data supplied for <initarg> element"
msgstr "<initarg> എലമെന്റിനു് ഡേറ്റാ നല്‍കിയിട്ടില്ല"
@@ -8697,12 +8670,6 @@ msgstr "സിസ്റ്റം ലഭ്യമല്ല"
msgid "System lacks NETNS support"
msgstr "സിസ്റ്റമിനു് NETNS പിന്തുണ ലഭ്യമല്ല"
msgid "TCP client networking type not supported"
msgstr "TCP ക്ലൈന്റ് നെറ്റ്‌വര്‍ക്കിങ് രീതി പിന്തുണയ്ക്കുന്നില്ല"
msgid "TCP server networking type not supported"
msgstr "TCP സര്‍വര്‍ നെറ്റ്‌വര്‍ക്കിങ് രീതി പിന്തുണയ്ക്കുന്നില്ല"
#, c-format
msgid "TLS handshake failed %s"
msgstr "ടിഎല്‍എസ് ഹാന്‍ഡ്ഷെയിക്ക് %s-ല്‍ പരാജയപ്പെട്ടു"
@@ -9230,9 +9197,6 @@ msgstr "WIN32 പ്ലാറ്റ്ഫോമില്‍ ഈ ഫംഗ്ഷ
msgid "This host is not managed by a vCenter"
msgstr "ഒരു vCenter-നു് ഈ ഹോസ്റ്റ് കൈകാര്യം ചെയ്യുവാന്‍ സാധ്യമല്ല"
msgid "This type of device cannot be hot unplugged"
msgstr "ഈ തരത്തിലുള്ള ഡിവൈസ് ഹോട്ട് അണ്‍പ്ലഗ്ഗ് ചെയ്യുവാന്‍ സാധ്യമല്ല"
msgid "This type of disk cannot be hot unplugged"
msgstr "ഈ തരത്തിലുള്ള ഡിസ്ക് ഹോട്ട് അണ്‍പ്ലഗ്ഗ് ചെയ്യുവാന്‍ സാധ്യമല്ല"
@@ -10374,9 +10338,6 @@ msgstr "ഈ പ്ലാറ്റ്ഫോമിലെ %s ല്‍ എസ്‌
msgid "Unable to set STP on %s on this platform"
msgstr "ഈ പ്ലാറ്റ്ഫോമിലെ %s ല്‍ എസ്‌ടിപി എത്രയെന്നു് പറയാന്‍ സാധിച്ചില്ല"
msgid "Unable to set VM logfile close-on-exec flag"
msgstr "വിഎം ലോഗ്ഫയല്‍ close-on-exec ഫ്ലാഗ് സജ്ജമാക്കുവാന്‍ സാധ്യമല്ല"
msgid "Unable to set cloexec flag"
msgstr "cloexec ഫ്ലാഗ് സജ്ജമാക്കുവാന്‍ സാധ്യമല്ല"
@@ -10631,10 +10592,6 @@ msgstr "അപ്രതീക്ഷിതമായ വോള്യം പാഥ
msgid "Unhandled event %d for monitor fd %d"
msgstr "മോണിറ്റര്‍ fd %d ക്ക് ഹാന്റില്‍ ചെയ്യാത്ത ഇവന്റ് %d"
#, c-format
msgid "Unix path %s too long for destination"
msgstr "യൂണിക്സ് പാഥ് %s വളരെ വലുതാണു്"
msgid "Unknown"
msgstr "അപരിചിതം"
@@ -11782,15 +11739,9 @@ msgstr "നെറ്റ്ലിങ്കിനു് വേണ്ടി nlhandl
msgid "cannot apply process capabilities %d"
msgstr "പ്രക്രിയ വിശേഷതകള്‍ %d ലഭ്യമാക്കുവാന്‍ സാധ്യമല്ല"
msgid "cannot attach device on inactive domain"
msgstr "നിര്‍ജ്ജീവമായ ഡൊമെയിനില്‍ ഡിവൈസ് കൂട്ടിച്ചേര്‍ക്കുന്നതിനു് സാധ്യമായില്ല"
msgid "cannot become session leader"
msgstr "സെഷന്‍ ലീഡര്‍ ആകുവാന്‍ സാധ്യമല്ല"
msgid "cannot bind socket"
msgstr "സോക്കറ്റ് ബൈന്‍ഡ് ചെയ്യുവാന്‍ സാധ്യമല്ല"
msgid "cannot block signals"
msgstr "സിഗ്നലുകള്‍ ബ്ലോക്ക് ചെയ്യുവാന്‍ സാധ്യമല്ല"
@@ -11985,9 +11936,6 @@ msgstr "%d സ്നാപ്പ്ഷോട്ടുകളുള്ള നി
msgid "cannot delete snapshots of running domain"
msgstr "പ്രവര്‍ത്തനത്തിലുള്ള ഡൊമെയിനുള്ള സ്നാപ്പ്ഷോട്ടുകള്‍ വെട്ടി നീക്കുവാന്‍ സാധ്യമല്ല"
msgid "cannot detach device on inactive domain"
msgstr "സജീവമല്ലാത്ത ഡൊമെയിനില്‍ ഡിവൈസ് വേര്‍പെടുത്തുവാന്‍ സാധ്യമല്ല"
#, c-format
msgid "cannot determine filesystem for '%s'"
msgstr "%s-നുള്ള ഫയല്‍സിസ്റ്റം കണ്ടുപിടിക്കുവാന്‍ സാധ്യമല്ല"
@@ -12191,9 +12139,6 @@ msgstr "സര്‍ട്ട് വസ്തു ആരംഭിയ്ക്ക
msgid "cannot initialize condition variable"
msgstr "കണ്ടീഷന്‍ വേരിയബിള്‍ ആരംഭിക്കുവാന്‍ സാധ്യമായില്ല"
msgid "cannot initialize inotify"
msgstr "inotify ആരംഭിക്കുവാന്‍ സാധ്യമല്ല"
msgid "cannot initialize monitor condition"
msgstr "കണ്ടീഷന്‍ മോണിറ്റര്‍ ആരംഭിക്കുവാന്‍ സാധ്യമായില്ല"
@@ -12311,9 +12256,6 @@ msgstr "%s എന്ന macvtap ഉപകരണം തുറക്കുവാ
msgid "cannot open path '%s'"
msgstr "പാഥ് '%s' തുറക്കുവാന്‍ സാധ്യമല്ല"
msgid "cannot open socket"
msgstr "സോക്കറ്റ് തുറക്കുവാന്‍ സാധ്യമല്ല"
#, c-format
msgid "cannot open volume '%s'"
msgstr "വോള്യം '%s' തുറക്കുവാന്‍ സാധ്യമല്ല"
@@ -12500,10 +12442,6 @@ msgstr "vbd ഫയല്‍ നെയിം പാഴ്സ് ചെയ്യ
msgid "cannot parse vendor id %s"
msgstr "വെന്‍ഡര്‍ id %s പാഴ്സ് ചെയ്യുവാന്‍ സാധ്യമല്ല"
#, c-format
msgid "cannot parse version %s"
msgstr "%s പതിപ്പു് പാഴ്സ് ചെയ്യുവാന്‍ സാധ്യമല്ല"
#, c-format
msgid "cannot parse video heads '%s'"
msgstr "വീഡിയോ heads '%s' പാഴ്സ് ചെയ്യുവാന്‍ സാധ്യമല്ല"
@@ -12608,10 +12546,6 @@ msgstr "ഹെഡര്‍ '%s' ലഭ്യമാക്കുവാന്‍
msgid "cannot read mount list '%s'"
msgstr "മൌണ്ട് പട്ടിക '%s' ലഭ്യമാക്കുവാന്‍ സാധ്യമല്ല"
#, c-format
msgid "cannot read reply %s"
msgstr "%s മറുപടി ലഭ്യമാക്കുവാന്‍ സാധ്യമല്ല"
#, c-format
msgid "cannot receive data from volume %s"
msgstr "%s വോള്യത്തില്‍ നിന്നും ഡാറ്റ ലഭിക്കാന്‍ സാധ്യമല്ല"
@@ -12687,10 +12621,6 @@ msgstr "'%s' ഫയലിന്റെ ആരംഭം വരെ seek ചെയ
msgid "cannot seek to start of '%s'"
msgstr "'%s' ന്റെ തുടക്കത്തിലേക്കു് മാറാന്‍ സാധ്യമല്ല"
#, c-format
msgid "cannot send command %s"
msgstr "%s കമാന്‍ഡ് അയയ്ക്കുവാന്‍ സാധ്യമല്ല"
#, c-format
msgid "cannot send data to volume %s"
msgstr "%s വോള്യത്തിലേക്ക് ഡാറ്റ അയയ്ക്കാന്‍ സാധ്യമല്ല."
@@ -12698,10 +12628,6 @@ msgstr "%s വോള്യത്തിലേക്ക് ഡാറ്റ അയ
msgid "cannot send to netlink socket"
msgstr "നെറ്റ്ലിങ്ക് സോക്കറ്റിലേയ്ക്കു് അയയ്ക്കാന്‍ സാധ്യമല്ല"
#, c-format
msgid "cannot send too long command %s (%d bytes)"
msgstr "വളരെ വലിയ കമാന്‍ഡ് %s അയയ്ക്കുവാന്‍ സാധ്യമല്ല (%d ബൈറ്റുകള്‍)"
#, c-format
msgid "cannot set CPU affinity on process %d"
msgstr "%d പ്രൊസസ്സിനു് സിപിയു അഫിനിറ്റി സെറ്റ് ചെയ്യാന്‍ കഴിയില്ല"
@@ -12724,16 +12650,9 @@ msgstr "ഫയല്‍ മോഡ് '%s' സജ്ജമാക്കുവാ
msgid "cannot set file owner '%s'"
msgstr "ഫയല്‍ ഉടമസ്ഥന്‍ '%s' സജ്ജമാക്കുവാന്‍ സാധ്യമല്ല"
msgid "cannot set max memory lower than current memory"
msgstr ""
"നിലവിലുള്ള മെമ്മറിയേക്കാള്‍ നല്‍കിയിരിക്കുന്ന ഏറ്റവും കുറഞ്ഞ മെമ്മറി സജ്ജമാക്കുവാന്‍ സാധ്യമല്ല"
msgid "cannot set memory higher than max memory"
msgstr "നല്‍കിയിരിക്കുന്ന ഏറ്റവും കൂടുതല്‍ മെമ്മറിയേക്കാള്‍ സജ്ജമാക്കുവാന്‍ സാധ്യമല്ല"
msgid "cannot set memory of an active domain"
msgstr "സജീവമായ ഒരു ഡൊമെയിനിനു് മെമ്മറി സജ്ജമാക്കുവാന്‍ സാധ്യമല്ല"
#, c-format
msgid "cannot set mode of '%s' to %04o"
msgstr "'%s'-ന്റെ മോഡ് %04o-ലേക്കു് സജ്ജമാക്കുവാന്‍ സാധ്യമല്ല"
@@ -13702,9 +13621,6 @@ msgstr "ഡറക്ടറി"
msgid "direct migration"
msgstr "നേരിട്ടുള്ള മൈഗ്രേഷന്‍"
msgid "direct networking type not supported"
msgstr "നേരിട്ടുള്ള നെറ്റ്‌വര്‍ക്കിങ് തരം പിന്തുണയ്ക്കുന്നില്ല"
#, c-format
msgid ""
"direct setting of the vlan tag is not allowed for hostdev devices using %s "
@@ -14603,17 +14519,6 @@ msgstr "പൂള്‍ %s സ്വയം ആരംഭിക്കുന്ന
msgid "failed to move file to %s "
msgstr "ഫയല്‍ %s -ലേക്കു് നീക്കുവാന്‍ സാധ്യമല്ല"
#, c-format
msgid "failed to open %s for reading"
msgstr "വായിക്കുന്നതിനായി %s തുറക്കുന്നതില്‍ പരാജയം"
#, c-format
msgid "failed to open chardev file: %s"
msgstr "chardev ഫയല്‍ തുറക്കുന്നതില്‍ പരാജയപ്പെട്ടു: %s"
msgid "failed to open configuration file for reading"
msgstr "വായിക്കുന്നതിനായി കോണ്‍ഫിഗറേഷന്‍ ഫയല്‍ തുറക്കുന്നതില്‍ പരാജയം"
msgid "failed to open file"
msgstr "ഫയല്‍ തുറക്കുന്നതില്‍ പരാജയം"
@@ -14688,10 +14593,6 @@ msgstr "libxl തലക്കെട്ട് ലഭ്യമാക്കുന
msgid "failed to read metadata length in '%s'"
msgstr "'%s'-ലുള്ള മെറ്റാഡേറ്റായുടെ വ്യാസം ലഭ്യമാക്കുന്നതില്‍ പരാജയം"
#, c-format
msgid "failed to read pid: %s"
msgstr "pid ലഭ്യമാക്കുന്നതില്‍ പരാജയം: %s"
msgid "failed to read qemu header"
msgstr "qemu ഹെഡര്‍ ലഭ്യമാക്കുന്നതില്‍ പരാജയപ്പെട്ടു"
@@ -15090,10 +14991,6 @@ msgstr "നല്‍കിയിരിയ്ക്കന്ന യുയുഐ
msgid "got unexpected RPC call prog %d vers %d proc %d type %d"
msgstr "അപ്രതീക്ഷിതമായ ആപിസി കോള്‍ പ്രോഗ്രാം %d പതിപ്പു് %d പ്രക്രിയ %d തരം %d ലഭിച്ചു"
#, c-format
msgid "got unknown HTTP error code %d"
msgstr "അപരിചിതമായ HTTP പിശക് കോഡ് %d ലഭിച്ചു"
msgid "gracefully shutdown a domain"
msgstr "ഒരു ഡൊമെയിന്‍ അടച്ചു പൂട്ടുക"
@@ -15185,9 +15082,6 @@ msgstr "hostdev %s ലഭ്യമായില്ല"
msgid "hostdev mode '%s' not supported"
msgstr "hostdev മോഡ് '%s' പിന്തുണയ്ക്കുന്നില്ല"
msgid "hostdev networking type not supported"
msgstr "hostdev നെറ്റ്‌വര്‍ക്കിങ് തരം പിന്തുണയ്ക്കുന്നില്ല"
#, c-format
msgid "hostdev subsys type '%s' not supported"
msgstr "hostdev subsys രീതി '%s' പിന്തുണയ്ക്കുന്നില്ല"
@@ -15260,10 +15154,6 @@ msgstr "XML ഡംപില്‍ സുരക്ഷയ്ക്കുള്ള
msgid "includes the password into the connection URI if available"
msgstr "പാസ്വേര്‍ഡ് ഉണ്ടെങ്കില്‍ കണക്ഷന്‍ URI യ്ക്ക് കൊടുക്കുക"
#, c-format
msgid "incomplete reply %s"
msgstr "അപൂര്‍ണ്ണമായ മറുപടി %s"
msgid "incomplete return information"
msgstr "അപൂര്‍ണ്ണമായ മറുപടി"
@@ -15338,9 +15228,6 @@ msgstr "%s എന്ന ഇന്റര്‍ഫേസ് പേര് ബഫറ
msgid "interface name or MAC address"
msgstr "ഇന്റര്‍ഫെയിസ് പേര് അല്ലെങ്കില്‍ MAC വിലാസം"
msgid "interface script execution not supported by this driver"
msgstr "ഈ ഡ്രൈവര്‍ ഇന്റര്‍ഫെയിസ് സ്ക്രിപ്റ്റ് നടപ്പിലാക്കല്‍ പിന്തുണയ്ക്കുന്നില്ല"
msgid "interface stats not implemented on this platform"
msgstr "ഈ പ്ലാറ്റ്ഫോമില്‍ ഇന്റര്‍ഫെയിസ് സ്റ്റാറ്റ്സ് ലഭ്യമല്ല"
@@ -15358,9 +15245,6 @@ msgstr "ആന്തരിക പിശക: %s"
msgid "internal error: bad options in command: '%s'"
msgstr "ആന്തരിക പിശക്: കമാന്‍ഡില്‍ തെറ്റായ ഐച്ഛികങ്ങള്‍: '%s'"
msgid "internal networking type not supported"
msgstr "ആന്തരിക നെറ്റ്‌വര്‍ക്കിങ് രീതി പിന്തുണയ്ക്കുന്നില്ല"
#, c-format
msgid "internal snapshot for disk %s unsupported for storage type %s"
msgstr "%s ഡിസ്കിനു് അകമേയുള്ള സ്നാപ്പ്ഷോട്ടിനു് %s സംഭരണ ശൈലിയില്‍ പിന്തുണ ലഭ്യമല്ല"
@@ -15693,10 +15577,6 @@ msgstr "തെറ്റായ നോഡ് മെമ്മറി മൂല്ല
msgid "invalid path %s not assigned to domain"
msgstr "ഡൊമെയിനു് തെറ്റായ പാഥ് %s നല്‍കിയിട്ടില്ല"
#, c-format
msgid "invalid path '%s'"
msgstr "തെറ്റായ പാഥ് '%s'"
#, c-format
msgid "invalid path, '%s' is not a known interface"
msgstr "തെറ്റായ പാഥ്, '%s' ലഭ്യമായ ഒരു സംയോജകഘടമകല്ല"
@@ -15895,13 +15775,6 @@ msgstr "libhal_get_all_devices പരാജയപ്പെട്ടു"
msgid "libnl was not available at build time"
msgstr "ബില്‍ഡ് സമയത്തു് libnl ലഭ്യമായിരുന്നില്ല"
#, c-format
msgid "library call %s failed, possibly not supported"
msgstr "ലൈബ്രറി കോള്‍ %s പരാജയപ്പെട്ടിരിക്കുന്നു, പിന്തുണ ലഭ്യമല്ല"
msgid "library call failed, possibly not supported"
msgstr "ലൈബ്രറി കോള്‍ പരാജയപ്പെട്ടിരിക്കുന്നു, പിന്തുണ ലഭ്യമല്ല"
msgid "libselinux does not support LXC contexts path"
msgstr "libselinux എല്‍എക്സ്‌സി കോണ്ടെക്സ്റ്റ് പാഥ് പിന്തുണയ്ക്കുന്നില്ല"
@@ -17319,9 +17192,6 @@ msgstr "internalFlags-ക്കുള്ള പിന്തുണ ലഭ്യ
msgid "no job is active on the domain"
msgstr "ഡൊമെയിനില്‍ ഒരു ജോലിയും സജീവമല്ല"
msgid "no kernel specified"
msgstr "കേര്‍ണല്‍ വ്യക്തമാക്കിയിട്ടില്ല"
msgid "no large enough free extent"
msgstr "മതിയായ വലിയ ഉപയോഗത്തിലില്ലാത്ത എക്സ്റ്റെന്‍ഡുകള്‍ ലഭ്യമല്ല"
@@ -17585,9 +17455,6 @@ msgstr "ശരി"
msgid "online commit not supported with this QEMU binary"
msgstr "ഓണ്‍ലൈന്‍ കമ്മിറ്റ് ഈ QEMU ബൈനറി പിന്തുണയ്ക്കുന്നില്ല"
msgid "only TCP listen is supported for chr device"
msgstr "ടിസിപി മാത്രം chr ഡിവൈസില്‍ പിന്തുണയ്ക്കുന്നുള്ളൂ"
msgid "only a single TPM device is supported"
msgstr "ഒറ്റ ടിപിഎം ഡിവൈസ് മാത്രമേ പിന്തുണയ്ക്കുന്നുള്ളൂ"
@@ -18534,9 +18401,6 @@ msgstr "അടച്ചു പൂട്ടുക"
msgid "shutdown"
msgstr "നിര്‍ത്തി വയ്ക്കുക"
msgid "shutdown operation failed"
msgstr "അടച്ചുപൂട്ടുന്ന പ്രക്രിയ പരാജയപ്പെട്ടു"
msgid "shutting down"
msgstr "അടച്ചു പൂട്ടുന്നു"
@@ -19158,12 +19022,6 @@ msgstr "udev_monitor_new_from_netlink NULL എന്നു മറുപടി
msgid "uid and gid should be mapped both"
msgstr "uid, gid രണ്ടും മാപ്പ് ചെയ്യണം"
msgid "uml state driver is not active"
msgstr "uml സ്റ്റേറ്റ് ഡ്രൈവര്‍ സജീവമല്ല"
msgid "umlStartup: out of memory"
msgstr "umlStartup: മെമ്മറി ലഭ്യമല്ല"
#, c-format
msgid "unable to access device %s\n"
msgstr "ഉപകരണം %s-ലേക്ക് എഴുതുവാന്‍ സാധ്യമല്ല\n"
@@ -19486,14 +19344,6 @@ msgstr "അപ്രതീക്ഷിതമായ QEMU URI പാഥ് '%s', q
msgid "unexpected QEMU URI path '%s', try qemu:///system"
msgstr "അപ്രതീക്ഷിതമായ QEMU URI പാഥ് '%s', qemu:///system വീണ്ടും ശ്രമിക്കുക"
#, c-format
msgid "unexpected UML URI path '%s', try uml:///session"
msgstr "അപ്രതീക്ഷിതമായ UML URI പാഥ് '%s', uml:///session ശ്രമിക്കുക"
#, c-format
msgid "unexpected UML URI path '%s', try uml:///system"
msgstr "അപ്രതീക്ഷിതമായ UML URI പാഥ് '%s', uml:///system ശ്രമിക്കുക"
#, c-format
msgid "unexpected accessmode %d"
msgstr "അപ്രതീക്ഷിതമായ accessmode %d"
@@ -20448,10 +20298,6 @@ msgstr "പിന്തുണയില്ലാത്ത ഓഥന്റിക
msgid "unsupported chardev '%s'"
msgstr "പിന്തുണയ്ക്കാത്ത chardev '%s'"
#, c-format
msgid "unsupported chr device type %d"
msgstr "പിന്തുണയില്ലാത്ത chr ഡിവൈസ് രീതി %d"
#, c-format
msgid "unsupported chr device type '%s'"
msgstr "പിന്തുണയ്ക്കാത്ത chr ഡിവൈസ് തരം '%s'"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: Mongolian\n"

View File

@@ -1,5 +1,5 @@
# Libvirt package strings.
# Copyright (C) 2018 Red Hat, Inc.
# Copyright (C) 2019 Red Hat, Inc.
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
@@ -13,7 +13,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: 2015-02-27 01:03+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Marathi (http://www.transifex.com/projects/p/libvirt/language/"
@@ -1468,12 +1468,6 @@ msgstr "संरचना फाइल: %s: %s लोड करणे अशक
msgid "Can't modify device type '%s'"
msgstr "साधन प्रकार '%s' संपादित करणे अशक्य"
msgid "Can't parse barrier from "
msgstr "बॅरिअर पासून वाचणे अशक्य "
msgid "Can't parse limit from "
msgstr "पासून लिमिट वाचणे अशक्य "
msgid "Can't parse prlctl output"
msgstr "prlctl आउटपुट वाचणे अशक्य"
@@ -1661,10 +1655,6 @@ msgstr "मार्गमध्ये '%s' शोधणे अशक्य"
msgid "Cannot find CPU model with PVR 0x%08x"
msgstr "PVR 0x%08xसह CPU प्रतिकृती शोधणे अशक्य"
#, c-format
msgid "Cannot find UML kernel %s"
msgstr "UML कर्नल %s शोधणे अशक्य"
#, c-format
msgid "Cannot find program %d version %d"
msgstr "प्रोग्राम %d आवृत्ती %d शोधणे अशक्य"
@@ -2226,10 +2216,6 @@ msgid ""
"Close callback for domain %s already registered with another connection %p"
msgstr "इतर जोडणी %2$p सह नोंदणीत डोमेन %1$s करिता कॉलबॅक बंद करा"
#, c-format
msgid "Command %s too long for destination"
msgstr "आदेश %s लक्ष्यकरिता खूप मोठे आहे"
msgid "Commit aborted"
msgstr "कमिट रद्द केले"
@@ -6156,9 +6142,6 @@ msgstr "IP पत्ता"
msgid "IP address lookup for host '%s' failed: %s"
msgstr "यजमान '%s' करिता IP पत्ता शोधणे अशक्य: %s"
msgid "IP address not supported for ethernet interface"
msgstr "IP पत्ता इथरनेट इंटरफेसकरिता समर्थीत नाही"
msgid ""
"IP parameter must be given since libvirt was not compiled with IP address "
"learning support"
@@ -7671,9 +7654,6 @@ msgstr "टिप"
msgid "NULL NetworkDef"
msgstr "NULL NetworkDef"
msgid "NULL or empty path"
msgstr "NULL किंवा रिकामे मार्ग"
#, c-format
msgid "NULL string parameter '%s'"
msgstr "NULL स्ट्रिंग घटक '%s'"
@@ -7781,10 +7761,6 @@ msgstr "जाळं '%s' आधिपासूनच कार्यरत आ
msgid "Network '%s' is still running"
msgstr "जाळं '%s' अजूनही कार्यरत आहे"
#, c-format
msgid "Network '%s' not found"
msgstr "नेटवर्क '%s' आढळले नाही"
msgid "Network Events"
msgstr "नेटवर्क इव्हेंट्स"
@@ -7948,9 +7924,6 @@ msgstr "विभाग व्याप्ति अनुपलब्ध"
msgid "No channel command provided"
msgstr "channel आहेश पुरवले नाही"
msgid "No controllers are mounted"
msgstr "कुठलेही कंट्रोलर्स माऊंटेड नाही"
#, c-format
msgid "No current block job for %s"
msgstr "%s करिता सध्या ब्लॉक जॉब नाही"
@@ -9734,12 +9707,6 @@ msgstr "प्रणाली अनुपलब्ध"
msgid "System lacks NETNS support"
msgstr "प्रणालीकडे NETNS समर्थन नाही"
msgid "TCP client networking type not supported"
msgstr "TCP क्लाएंट नेटवर्कींग प्रकार समर्थीत नाही"
msgid "TCP server networking type not supported"
msgstr "TCP सर्व्हर नेटवर्कींग प्रकार समर्थीत नाही"
#, c-format
msgid "TLS handshake failed %s"
msgstr "TLS हँडशैक अपयशी %s"
@@ -10321,9 +10288,6 @@ msgstr "हे यजमान vCenter तर्फे व्यवस्था
msgid "This snapshot has children, please delete theses snapshots before"
msgstr "या स्नॅपशॉटकडे चिल्डरन आहे, कृपया या स्नॅपशॉट्सना नष्ट करा"
msgid "This type of device cannot be hot unplugged"
msgstr "या प्रकारचे उपकरण अनप्लग करणे शक्य नाही"
msgid "This type of disk cannot be hot unplugged"
msgstr "ह्या प्रकारच्या डिस्कला हॉट प्लग अशक्य करणे अशक्य"
@@ -11780,9 +11744,6 @@ msgstr "ह्या प्लॅटफॉर्मवर %s वरील STP
msgid "Unable to set STP on %s on this platform"
msgstr "ह्या प्लॅटफॉर्मवर %s वरील STP ठरवणे अशक्य"
msgid "Unable to set VM logfile close-on-exec flag"
msgstr "VM लॉगफाइल close-on-exec फ्लॅग करिता सेट करणे अशक्य"
msgid "Unable to set cloexec flag"
msgstr "cloexec फ्लॅग ठरवणे अशक्य"
@@ -12081,10 +12042,6 @@ msgstr "अनपेक्षीत वॉल्युम मार्ग रू
msgid "Unhandled event %d for monitor fd %d"
msgstr "मॉनिटर fd %2$d करिता न हाताळलेले इव्हेंट %1$d"
#, c-format
msgid "Unix path %s too long for destination"
msgstr "Unix मार्ग %s लक्ष्यकरिता खूप मोठे आहे"
msgid "Unknown"
msgstr "अपरिचीत"
@@ -13433,15 +13390,9 @@ msgstr "netlink करिता प्लेसहोल्डर nlhandle व
msgid "cannot apply process capabilities %d"
msgstr "क्षमता %d चे विश्लेषण लागू करणे अशक्य"
msgid "cannot attach device on inactive domain"
msgstr "निष्क्रीय क्षेत्र वरील साधन जुळवू शकत नाही"
msgid "cannot become session leader"
msgstr "सत्र प्रतिनिधी बनणे शक्य नाही"
msgid "cannot bind socket"
msgstr "सॉकेट बांधणी अशक्य"
msgid "cannot block signals"
msgstr "संकेत ब्लॉक करणे अशक्य"
@@ -13646,9 +13597,6 @@ msgstr "चिल्डरनसह स्नॅपशॉटचा मेटा
msgid "cannot delete snapshots of running domain"
msgstr "सुरू असलेल्या डोमेनकरिता स्नॅपशॉट नष्ट करणे अशक्य"
msgid "cannot detach device on inactive domain"
msgstr "निष्क्रीय क्षेत्र वरील साधन अलग करू शकत नाही"
#, c-format
msgid "cannot determine filesystem for '%s'"
msgstr "'%s' करिता फाइलप्रणाली ओळखणे अशक्य"
@@ -13899,9 +13847,6 @@ msgstr "cert ऑब्जेक्ट सुरू करणे अशक्य:
msgid "cannot initialize condition variable"
msgstr "अटी वरियेबल प्रारंभ करणे अशक्य"
msgid "cannot initialize inotify"
msgstr "inotify प्रारंभ करण्यास अशक्य"
msgid ""
"cannot initialize libxenlight context, probably not running in a Xen Dom0, "
"disabling driver"
@@ -14034,9 +13979,6 @@ msgstr "मार्ग '%s' उघडणे अशक्य"
msgid "cannot open path '%s' in '%s'"
msgstr "मार्ग '%s' उघडणे अशक्य, '%s' अंतर्गत"
msgid "cannot open socket"
msgstr "सॉकेट उघडण्यास अशक्य"
#, c-format
msgid "cannot open volume '%s'"
msgstr "खंड '%s' उघडणे अशक्य"
@@ -14236,10 +14178,6 @@ msgstr "vbd फाइलनाव विश्लेषित करणे अ
msgid "cannot parse vendor id %s"
msgstr "विक्रेता id %s वाचण्यास अशक्य"
#, c-format
msgid "cannot parse version %s"
msgstr "आवृत्ती %s वाचणे अशक्य"
#, c-format
msgid "cannot parse video heads '%s'"
msgstr "चलचित्र हेड्स् '%s' वाचण्यास अपयशी"
@@ -14342,10 +14280,6 @@ msgstr "शिर्ष ओळ '%s' वाचणे अशक्य"
msgid "cannot read mount list '%s'"
msgstr "माऊंट यादी '%s' वाचणे अशक्य"
#, c-format
msgid "cannot read reply %s"
msgstr "प्रतिसाद %s वाचणे अशक्य"
#, c-format
msgid "cannot receive data from volume %s"
msgstr "खंड '%s' पासून डाटा प्राप्त करणे अशक्य"
@@ -14432,10 +14366,6 @@ msgstr "फाइल '%s' ची सुरूवात वाचण्यास
msgid "cannot seek to start of '%s'"
msgstr "'%s' ची सुरूवात सीक करणे अशक्य"
#, c-format
msgid "cannot send command %s"
msgstr "आदेश %s पाठवणे अशक्य"
#, c-format
msgid "cannot send data to volume %s"
msgstr "खंड '%s' करिता डाटा पाठवणे अशक्य"
@@ -14443,10 +14373,6 @@ msgstr "खंड '%s' करिता डाटा पाठवणे अशक
msgid "cannot send to netlink socket"
msgstr "netlink सॉकेट पाठवणे अशक्य"
#, c-format
msgid "cannot send too long command %s (%d bytes)"
msgstr "खूप लांब आदेश %s पाठवणे अशक्य (%d बाईटस्)"
#, c-format
msgid "cannot set CPU affinity on process %d"
msgstr "प्रोसेस %d वरील CPU एफिनीटी सेट करणे अशक्य"
@@ -14469,15 +14395,9 @@ msgstr "फाइल पद्धत '%s' सेट करणे अशक्य
msgid "cannot set file owner '%s'"
msgstr "फाइल मालक '%s' सेट करणे अशक्य"
msgid "cannot set max memory lower than current memory"
msgstr "वर्तमान स्मृतीपेक्षा कमाल स्मृती सेट करणे अशक्य"
msgid "cannot set memory higher than max memory"
msgstr "कमाल स्मृती पेक्षा जास्त स्मृती सेट करणे अशक्य"
msgid "cannot set memory of an active domain"
msgstr "सक्रीय क्षेत्राची स्मृती सेट करणे अशक्य"
#, c-format
msgid "cannot set mode of '%s' to %04o"
msgstr "'%s' चे मोड %04o करिता सेट करणे अशक्य"
@@ -15545,9 +15465,6 @@ msgstr "प्रत्यक्ष firewall बॅकएंडकरिता
msgid "direct migration"
msgstr "प्रत्यक्ष स्थानांतरन"
msgid "direct networking type not supported"
msgstr "डाइरेक्ट नेटवर्किंग प्रकार समर्थीत नाही"
#, c-format
msgid ""
"direct setting of the vlan tag is not allowed for hostdev devices using %s "
@@ -15659,10 +15576,6 @@ msgstr "डिस्क event_idx मोड फक्त virtio बसकरि
msgid "disk format %s is not supported"
msgstr "डिस्क रूपण %s समर्थीत नाही"
#, c-format
msgid "disk format '%s' lacks backing file support"
msgstr "डिस्क रूपण '%s' फाइल समर्थन बॅकिंग नाही"
msgid "disk ioeventfd mode supported only for virtio bus"
msgstr "डिस्क ioeventfd मोड फक्त virtio बसकरिता समर्थीत आहे"
@@ -16714,17 +16627,6 @@ msgstr "संग्रह %s स्वयंप्रारंभ नुरू
msgid "failed to move file to %s "
msgstr "फाइलला %s करिता स्थनांतरीत करण्यास अपयशी"
#, c-format
msgid "failed to open %s for reading"
msgstr "%s वाचण्यासाठी उघडण्यास अपयशी"
#, c-format
msgid "failed to open chardev file: %s"
msgstr "chardev फाइल: %s उघडणे अशक्य"
msgid "failed to open configuration file for reading"
msgstr "संयोजना फाइल वाचण्यासाठी उघडण्यास अपयशी"
msgid "failed to open file"
msgstr "फाइल उघडण्यास अपयशी"
@@ -16859,10 +16761,6 @@ msgstr "libxl शीर्षक वाचण्यास अपयशी"
msgid "failed to read metadata length in '%s'"
msgstr "'%s' अंतर्गत मेटाडेटा लांबी वाचण्यास अपयशी"
#, c-format
msgid "failed to read pid: %s"
msgstr "pid वाचण्यास अपयशी: %s"
msgid "failed to read qemu header"
msgstr "qemu शिर्षक वाचू शकले नाही"
@@ -17347,10 +17245,6 @@ msgstr "gmtime_r अपयशी"
msgid "got unexpected RPC call prog %d vers %d proc %d type %d"
msgstr "अनपेक्षित RPC कॉल prog %d vers %d proc %d type %d प्राप्त"
#, c-format
msgid "got unknown HTTP error code %d"
msgstr "अपरिचीत HTTP चूक संकेत %d मिळाला"
msgid "gracefully shutdown a domain"
msgstr "डोमेन चांगल्याप्रकारे शटडाउन करा"
@@ -17479,9 +17373,6 @@ msgstr "hostdev मोड '%s' समर्थीत नाही"
msgid "hostdev mode 'capabilities' is not supported in %s"
msgstr "hostdev मोड 'capabilities' %s अंतर्गत समर्थीत नाही"
msgid "hostdev networking type not supported"
msgstr "hostdev नेटवर्किंग प्रकार समर्थीत नाही"
#, c-format
msgid "hostdev subsys type '%s' not supported"
msgstr "hostdev subsys प्रकार '%s' समर्थीत नाही"
@@ -17607,10 +17498,6 @@ msgstr "या QEMU बाइनरिसह येणारे RDMA माइ
msgid "incomplete metadata in '%s'"
msgstr "'%s' अंतर्गत अपूर्ण मेटाडाटा"
#, c-format
msgid "incomplete reply %s"
msgstr "अपूर्ण प्रतिसाद %s"
msgid "incomplete return information"
msgstr "अपूर्ण रिटर्न माहिती"
@@ -17711,9 +17598,6 @@ msgstr "इंटरफेस नाव %s बफरमध्ये घट्ट
msgid "interface name or MAC address"
msgstr "MAC पत्ता करिता संवाद नाव"
msgid "interface script execution not supported by this driver"
msgstr "इंटरफेस स्क्रिप्ट एक्जिक्युशन ह्या ड्राइव्हरतर्फे समर्थीत नाही"
msgid "interface stats not implemented on this platform"
msgstr "इंटरफेस आकडेवारि ह्या प्लॅटफॉर्मवर लागू केली नाही"
@@ -17743,9 +17627,6 @@ msgstr ""
"बाहेरील सक्रीयय स्नॅपशॉट्स, '%s' प्रोटोकॉलचा वापर करणाऱ्या 'network' डिस्क्सवरील "
"समर्थीत नाही"
msgid "internal networking type not supported"
msgstr "आंतरीक नेटवर्कींग प्रकार समर्थीत नाही"
#, c-format
msgid "internal snapshot for disk %s unsupported for storage type %s"
msgstr "डिस्क %s करिता आंतरिक स्नॅपशॉट स्टोरेज प्रकार %s करिता असमर्थीत"
@@ -18159,10 +18040,6 @@ msgstr "अवैध क्रमांक '%s', '%s' अंतर्गत"
msgid "invalid path %s not assigned to domain"
msgstr "ह्या डोमेनकरिता अवैध मार्ग %s चे वाटप अशक्य"
#, c-format
msgid "invalid path '%s'"
msgstr "अवैध मार्ग '%s'"
#, c-format
msgid "invalid path, '%s' is not a known interface"
msgstr "अवैध मार्ग, '%s' परिचीत संवाद नाही"
@@ -18407,13 +18284,6 @@ msgstr "libhal_get_all_devices अपयशी"
msgid "libnl was not available at build time"
msgstr "बिल्ड टाइमवेळी libnl अनुपलब्ध"
#, c-format
msgid "library call %s failed, possibly not supported"
msgstr "लायब्ररी कॉल %s अपयशी, बहुदा समर्थित नसावा"
msgid "library call failed, possibly not supported"
msgstr "लायब्ररी कॉल अपयशी, बहुदा समर्थित नसावा"
msgid "libselinux does not support LXC contexts path"
msgstr "libselinux LXC संदर्भ मार्गकरिता समर्थन पुरवत नाही"
@@ -18473,14 +18343,6 @@ msgstr "libxenlight डिस्क '%s' जोडणी अशक्य कर
msgid "libxenlight failed to detach network device"
msgstr "libxenlight नेटवर्क साधन जोडणी खंडीत करण्यास अपयशी"
#, c-format
msgid ""
"libxenlight failed to detach pci device %.4x:%.2x:"
"%.2x.%.1x"
msgstr ""
"libxenlight अपयशी pci साधन %.4x:%.2x:%.2x.%.1x "
"जोडणी खंडीत करण्यास अपयशी"
#, c-format
msgid "libxenlight failed to parse UUID '%s'"
msgstr "libxenlight UUID '%s' वाचण्यास अपयशी"
@@ -20125,9 +19987,6 @@ msgstr "internalFlags समर्थन नाही"
msgid "no job is active on the domain"
msgstr "क्षेत्रावर कुठलेही जॉब सक्रिय नाही"
msgid "no kernel specified"
msgstr "कर्नल निश्चित केले नाही"
msgid "no large enough free extent"
msgstr "मोकळी जागा पुरेशी नाही"
@@ -20436,9 +20295,6 @@ msgstr "ठिक आहे"
msgid "online commit not supported with this QEMU binary"
msgstr "QEMU बाइनरीसह ऑनलाइन कमीट समर्थीत नाही"
msgid "only TCP listen is supported for chr device"
msgstr "char साधन करिता फक्त TCP सक्रीयता समर्थीत आहे"
msgid "only a single TPM device is supported"
msgstr "फक्त एक TPM साधन समर्थीत आहे"
@@ -21624,9 +21480,6 @@ msgstr "पूर्णपणे बंद करा"
msgid "shutdown mode: acpi|agent|initctl|signal|paravirt"
msgstr "शटडाउन मोड: acpi|agent|initctl|signal|paravirt"
msgid "shutdown operation failed"
msgstr "शटडाऊन कार्यपद्धती अपयशी"
msgid "shutting down"
msgstr "पूर्णपणे बंद करत आहे"
@@ -22394,12 +22247,6 @@ msgstr "udev_monitor_new_from_netlink ने NULL पुरवले"
msgid "uid and gid should be mapped both"
msgstr "uid व gid दोन्ही मॅप्ड पाहिजे"
msgid "uml state driver is not active"
msgstr "uml स्तर ड्राइव्हर सक्रीय नाही"
msgid "umlStartup: out of memory"
msgstr "umlStartup: अतिरीक्त स्मृती आढळली नाही"
#, c-format
msgid "unable to access device %s\n"
msgstr "साधन %s करिता प्रवेश अशक्य\n"
@@ -22786,14 +22633,6 @@ msgstr "अनपेक्षीत QEMU URI मार्ग '%s', qemu:///sessi
msgid "unexpected QEMU URI path '%s', try qemu:///system"
msgstr "अनपेक्षीत QEMU URI मार्ग'%s', qemu:///system वापरून पहा"
#, c-format
msgid "unexpected UML URI path '%s', try uml:///session"
msgstr "अनपेक्षीत UML URI मार्ग '%s', uml:///session वापरून पहा"
#, c-format
msgid "unexpected UML URI path '%s', try uml:///system"
msgstr "अनपेक्षीत UML URI मार्ग '%s', uml:///system वापरून पहा"
#, c-format
msgid ""
"unexpected VMware URI path '%s', try vmwareplayer:///session, vmwarews:///"
@@ -23944,10 +23783,6 @@ msgstr "असमर्थीत अधिप्रमाणन प्रका
msgid "unsupported chardev '%s'"
msgstr "असमर्थीत chardev '%s'"
#, c-format
msgid "unsupported chr device type %d"
msgstr "असमर्थीत chr साधन प्रकार %d"
#, c-format
msgid "unsupported chr device type '%s'"
msgstr "असमर्थीत chr साधन प्रकार '%s'"
@@ -24281,9 +24116,6 @@ msgstr "vhost-net ने इंटरफेसकरिता विनंती
msgid "vhost-user type '%s' not supported"
msgstr "vhost-user प्रकार '%s' समर्थीत नाही"
msgid "vhostuser networking type not supported"
msgstr "vhostuser नेटवर्किंग प्रकार समर्थीत नाही"
msgid "virDirCreate is not implemented for WIN32"
msgstr "WIN32 करिता virDirCreate लागू केले नाही"

View File

@@ -1,5 +1,5 @@
# Libvirt package strings.
# Copyright (C) 2018 Red Hat, Inc.
# Copyright (C) 2019 Red Hat, Inc.
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: 2015-02-27 02:47+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Malay (http://www.transifex.com/projects/p/fedora/language/"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: Burmese\n"

View File

@@ -1,5 +1,5 @@
# Libvirt package strings.
# Copyright (C) 2018 Red Hat, Inc.
# Copyright (C) 2019 Red Hat, Inc.
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: 2015-02-24 05:43+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Norwegian Bokmål (http://www.transifex.com/projects/p/fedora/"
@@ -295,13 +295,6 @@ msgstr "forventer et navn"
msgid "expecting a value"
msgstr "forventer en verdi"
#, c-format
msgid "failed to open %s for reading"
msgstr "feil ved åpning av %s for lesing"
msgid "failed to open configuration file for reading"
msgstr "feil ved åpning av konfigurasjonfil for lesing"
msgid "failed to open file"
msgstr "kunne ikke åpne fil"
@@ -325,20 +318,9 @@ msgstr "kunne ikke skrive til konfigurasjonsfilen: %s"
msgid "getting time of day"
msgstr "henter tid på døgnet"
#, c-format
msgid "got unknown HTTP error code %d"
msgstr "fikk ukjent HTTP-feilkode %d"
msgid "internal error"
msgstr "intern feil"
#, c-format
msgid "library call %s failed, possibly not supported"
msgstr "bibliotekskall %s feilet, muligens ikke støttet"
msgid "library call failed, possibly not supported"
msgstr "bibliotekskall feilet, muligens ikke støttet"
msgid "list domains"
msgstr "vis domener"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: Low German\n"

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2019-01-14 16:56+0000\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: Nepali\n"

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