Commit Graph

724 Commits

Author SHA1 Message Date
Daniel P. Berrangé
3bdca9273c po: refresh translations from zanata
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2019-07-30 12:43:31 +01:00
Eric Blake
689beaa47c backup: Implement virsh support for checkpoints
Introduce a bunch of new virsh commands for managing checkpoints in
isolation. More commands are needed for performing incremental
backups, but these commands were easy to implement by modeling heavily
after virsh-snapshot.c. There is no need for checkpoint-revert or
checkpoint-current since those snapshot APIs have no checkpoint
counterpart.  Similarly, it is not necessary to change which
checkpoint is current when redefining from XML, since until we
integrate checkpoints with snapshots, there is only a linear chain
(and you can deduce the current checkpoint by instead using
'checkpoint-list --leaves').  Other aspects of checkpoint-list are
also a bit simpler than the snapshot counterpart, in part because we
don't have to cater to back-compat to older API.

Upcoming patches will test these interfaces once the test driver
supports checkpoints.

Signed-off-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2019-07-26 16:48:58 -05:00
Eric Blake
1a4df34a0f backup: Parse and output checkpoint XML
Add a new file checkpoint_conf.c that performs the translation to and
from new XML describing a checkpoint. The code shares a common base
class with snapshots, since a checkpoint similarly represents the
domain state at a moment in time. Add some basic testing of round trip
XML handling through the new code.

Of note - this code intentionally differs from snapshots in that XML
schema validation is unconditional, rather than based on a public API
flag.  We have many existing interfaces that still need to add a flag
for opt-in schema validation, but those interfaces have existing
clients that may not have been producing strictly-compliant XML, or we
may still uncover bugs where our RNG grammar is inconsistent with our
code (where omitting the opt-in flag allows existing apps to keep
working while waiting for an RNG patch).  But since checkpoints are
brand-new, it's easier to ensure the code matches the schema by always
using the schema.  If needed, a later patch could extend the API and
add a flag to turn on to request schema validation, rather than having
it forced (possibly just the validation of the <domain> sub-element
during REDEFINE) - but if a user encounters XML that looks like it
should be good but fails to validate with our RNG schema, they would
either have to upgrade to a new libvirt that adds the new flag, or
upgrade to a new libvirt that fixes the RNG schema, which implies
adding such a flag won't help much.

Also, the redefine flag requires the <domain> sub-element to be
present, rather than catering to historical back-compat to older
versions.

Signed-off-by: Eric Blake <eblake@redhat.com>
2019-07-26 16:48:58 -05:00
Eric Blake
0d44788fc3 backup: Introduce virDomainCheckpoint APIs
Introduce a bunch of new public APIs related to backup checkpoints.
Checkpoints are modeled heavily after virDomainSnapshotPtr (both
represent a point in time of the guest), although a snapshot exists
with the intent of rolling back to that state, while a checkpoint
exists to make it possible to create an incremental backup at a later
time.  We may have a future hypervisor that can completely manage
checkpoints without libvirt metadata, but the first two planned
hypervisors (qemu and test) both always use libvirt for tracking
metadata relations between checkpoints, so for now, I've deferred
the counterpart of virDomainSnapshotHasMetadata for a separate
API addition at a later date if there is ever a need for it.

Note that until we allow snapshots and checkpoints to exist
simultaneously on the same domain (although the actual prevention of
this will be in a separate patch for the sake of an easier revert down
the road), that it is not possible to branch out to create more than
one checkpoint child to a given parent, although it may become
possible later when we revert to a snapshot that coincides with a
checkpoint.  This also means that for now, the decision of which
checkpoint becomes the parent of a newly created one is the only
checkpoint with no child (so while there are APIs for dealing with a
current snapshot, we do not need those for checkpoints).  We may end
up exposing a notion of a current checkpoint later, but it's easier to
add stuff when proven needed than to blindly support it now and wish
we hadn't exposed it.

The following map shows the API relations to snapshots, with new APIs
on the right:

Operate on a domain object to create/redefine a child:
virDomainSnapshotCreateXML          virDomainCheckpointCreateXML

Operate on a child object for lifetime management:
virDomainSnapshotDelete             virDomainCheckpointDelete
virDomainSnapshotFree               virDomainCheckpointFree
virDomainSnapshotRef                virDomainCheckpointRef

Operate on a child object to learn more about it:
virDomainSnapshotGetXMLDesc         virDomainCheckpointGetXMLDesc
virDomainSnapshotGetConnect         virDomainCheckpointGetConnect
virDomainSnapshotGetDomain          virDomainCheckpointGetDomain
virDomainSnapshotGetName            virDomainCheckpiontGetName
virDomainSnapshotGetParent          virDomainCheckpiontGetParent
virDomainSnapshotHasMetadata        (deferred for later)
virDomainSnapshotIsCurrent          (no counterpart, see note above)

Operate on a domain object to list all children:
virDomainSnapshotNum                (no counterparts, these are the old
virDomainSnapshotListNames           racy interfaces)
virDomainSnapshotListAllSnapshots   virDomainListAllCheckpoints

Operate on a child object to list descendents:
virDomainSnapshotNumChildren        (no counterparts, these are the old
virDomainSnapshotListChildrenNames   racy interfaces)
virDomainSnapshotListAllChildren    virDomainCheckpointListAllChildren

Operate on a domain to locate a particular child:
virDomainSnapshotLookupByName       virDomainCheckpointLookupByName
virDomainSnapshotCurrent            (no counterpart, see note above)
virDomainHasCurrentSnapshot         (no counterpart, old racy interface)

Operate on a snapshot to roll back to earlier state:
virDomainSnapshotRevert             (no counterpart, instead checkpoints
                                     are used in incremental backups via
				     XML to virDomainBackupBegin)

Signed-off-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2019-07-26 16:48:58 -05:00
Peter Krempa
dd94cc2e71 po: Drop src/xenconfig/xen_sxpr.c from POTFILES
Commit 2f1c909991 forgot this change.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
2019-07-09 11:32:19 +02:00
Peter Krempa
c7a8ccc040 util: Drop virsexpr module
There are no users any more.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-07-09 10:27:20 +02:00
Daniel P. Berrangé
e0c44300c4 Refresh translations from Zanata
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2019-07-01 19:02:08 +01:00
Daniel P. Berrangé
5a148ce846 remote: delete the avahi mDNS support
Libvirtd has long had integration with avahi for advertising libvirtd
using mDNS when TCP/TLS listening is enabled. For a long time the
virt-manager application had support for auto-detecting libvirtds
on the local network using mDNS, but this was removed last year

  commit fc8f8d5d7e3ba80a0771df19cf20e84a05ed2422
  Author: Cole Robinson <crobinso@redhat.com>
  Date:   Sat Oct 6 20:55:31 2018 -0400

    connect: Drop avahi support

    Libvirtd can advertise itself over avahi. The feature is disabled by
    default though and in practice I hear of no one actually using it
    and frankly I don't think it's all that useful

    The 'Open Connection' wizard has a disproportionate amount of code
    devoted to this feature, but I don't think it's useful or worth
    maintaining, so let's drop it

I've never heard of any other applications having support for using
mDNS to detect libvirtd instances. Though it is theoretically possible
something exists out there, it is clearly going to be a niche use case
in the virt ecosystem as a whole.

By removing avahi integration we can cut down the dependency chain for
the basic libvirtd install and reduce our code maint burden.

Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2019-06-21 12:59:42 +01:00
Peter Krempa
e8b505c956 qemu: Move qemuParseKeywords(Free) to the monitor code
The only user is now in qemu_monitor_json.c to re-parse the command line
format into keyvalue pairs for use in QMP command construction.

Move and rename the functions.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2019-06-20 12:15:05 +02: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
Michal Privoznik
29682196d8 Drop UML driver
The driver is unmaintained, untested and severely broken for
quite some time now. Since nobody even reported any issue with it
let us drop it.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2018-12-17 17:52:46 +01:00
Daniel P. Berrangé
72d48f1891 Refresh translations from zanata
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2018-11-28 17:25:02 +00:00
Daniel P. Berrangé
7bda210e6d po: refresh translations from zanata
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2018-07-31 12:34:06 +01:00
Daniel P. Berrangé
3f4db69c2f po: don't install gmo files when --disable-nls is given
With --disable-nls is given we turn off use of gettext in the source
code, but mistakenly still installed the gmo files.

Reported-by: Olaf Hering <olaf@aepfle.de>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2018-06-05 17:36:42 +01:00
Daniel P. Berrangé
45f9905a3f po: delete bogus translations from various languages
For unknown reasons about 21 languages had the same 212 msgid entries
copied into the msgstr field without having any translation applied.
This bogus non-translated data has now been purged from Zanata.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2018-04-30 10:40:58 +01:00
Daniel P. Berrangé
fd4581ad1e Refresh translations to drop unused strings
Refresh transaltion po files to drop msgid/msgstr entries that are no
longer required due to deletion/refactoring of source code.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2018-04-30 10:40:58 +01:00
Daniel P. Berrangé
655df05500 po: attempt to fix srcdir != builddir builds
The .pot, .po and .gmo files are slightly unusual in that we generate
them in the srcdir when building form git. This is because they'll be
bundled in the tar archive, so a build-from-tar will see them in srcdir.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2018-04-19 14:52:51 +01:00
Daniel P. Berrangé
2b6ea81717 po: minimize language zu
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2018-04-19 11:20:00 +01:00
Daniel P. Berrangé
69ab5ce502 po: minimize language zh_TW
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2018-04-19 11:19:51 +01:00
Daniel P. Berrangé
c88abc93ad po: minimize language zh_HK
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2018-04-19 11:19:48 +01:00
Daniel P. Berrangé
7a8a84ecd1 po: minimize language zh_CN
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2018-04-19 11:19:37 +01:00
Daniel P. Berrangé
6e9b2d3982 po: minimize language yo
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2018-04-19 11:19:34 +01:00
Daniel P. Berrangé
dfe326b239 po: minimize language wba
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2018-04-19 11:19:31 +01:00
Daniel P. Berrangé
1d60d9d5ad po: minimize language vi
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2018-04-19 11:19:29 +01:00
Daniel P. Berrangé
70235923e9 po: minimize language ur
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2018-04-19 11:19:26 +01:00
Daniel P. Berrangé
da441e30b3 po: minimize language uk
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2018-04-19 11:19:24 +01:00
Daniel P. Berrangé
e2133c66c2 po: minimize language tw
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2018-04-19 11:19:21 +01:00
Daniel P. Berrangé
5f5f354cab po: minimize language tr
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2018-04-19 11:19:19 +01:00
Daniel P. Berrangé
35c9ddd2c4 po: minimize language th
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2018-04-19 11:19:16 +01:00
Daniel P. Berrangé
d0f61dce3d po: minimize language tg
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2018-04-19 11:19:14 +01:00
Daniel P. Berrangé
04261e683b po: minimize language te
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2018-04-19 11:19:12 +01:00
Daniel P. Berrangé
3ae2d1afdf po: minimize language ta
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2018-04-19 11:19:09 +01:00
Daniel P. Berrangé
e4863d547d po: minimize language sv
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2018-04-19 11:19:06 +01:00
Daniel P. Berrangé
5fce08ce18 po: minimize language sr
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2018-04-19 11:19:04 +01:00
Daniel P. Berrangé
0819df40d0 po: minimize language sr@latin
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2018-04-19 11:19:01 +01:00
Daniel P. Berrangé
6ff59ecd42 po: minimize language sq
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2018-04-19 11:18:59 +01:00
Daniel P. Berrangé
32bfe14efd po: minimize language sl
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2018-04-19 11:18:56 +01:00
Daniel P. Berrangé
6b6078fb59 po: minimize language sk
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2018-04-19 11:18:54 +01:00
Daniel P. Berrangé
9e31e2c523 po: minimize language si
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2018-04-19 11:18:51 +01:00
Daniel P. Berrangé
e37bb513bb po: minimize language ru
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2018-04-19 11:18:47 +01:00
Daniel P. Berrangé
395d8779a2 po: minimize language ro
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2018-04-19 11:18:45 +01:00
Daniel P. Berrangé
e30b355a28 po: minimize language pt
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2018-04-19 11:18:42 +01:00
Daniel P. Berrangé
b8213f9667 po: minimize language pt_BR
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2018-04-19 11:18:39 +01:00
Daniel P. Berrangé
14578e7913 po: minimize language pl
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2018-04-19 11:18:36 +01:00
Daniel P. Berrangé
0c9c5dc259 po: minimize language pa
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2018-04-19 11:18:33 +01:00
Daniel P. Berrangé
5fea85aacc po: minimize language or
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2018-04-19 11:18:30 +01:00
Daniel P. Berrangé
827a75d022 po: minimize language nso
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2018-04-19 11:18:27 +01:00
Daniel P. Berrangé
393c4dbe9d po: minimize language nn
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2018-04-19 11:18:24 +01:00
Daniel P. Berrangé
ffca88e48c po: minimize language nl
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2018-04-19 11:18:21 +01:00
Daniel P. Berrangé
2dc3ff5269 po: minimize language ne
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2018-04-19 11:18:19 +01:00