Commit Graph

3981 Commits

Author SHA1 Message Date
Marek Marczykowski-Górecki
ed88b5a9a3 backup: use vm.run_service instead of vm.run
This should be the only way used to call services.
2016-04-07 13:21:00 +02:00
Marek Marczykowski-Górecki
e8f21929ad backup: by default include all the VMs with vm.include_in_backups
If there is a need for more robust default, it should be handled at that
property.
2016-04-07 13:21:00 +02:00
Marek Marczykowski-Górecki
a3051b956b backup: docstrings, don't expose internal attributes
processes_to_kill_on_cancel shouldn't be initialized by user, so move
below applying user settings.
2016-04-07 13:21:00 +02:00
Marek Marczykowski-Górecki
b4227f7581 backup: use simple classes instead of hashes, use events for appmenus
This makes typo errors much easier to find (also using pylint or so).
While at it, also removed explicit appmenus backup, as it should be
provided by appmenus extension.
2016-04-07 13:21:00 +02:00
Marek Marczykowski-Górecki
c01f43a5d3 backup: unify handling of template and non-template VMs
Handle them the same way - individual files, not the whole directory for
templates.
Also don't backup obsolete 'kernels' subdir - it isn't supported in
core3.
2016-04-07 13:21:00 +02:00
Marek Marczykowski-Górecki
d9cf64a41d backup: minor code structure changes
- initialize internal objects object in constructor
- use 'with'
2016-04-07 13:21:00 +02:00
Marek Marczykowski-Górecki
78dbadab57 backup: minor: compile regex once 2016-04-07 13:21:00 +02:00
Marek Marczykowski-Górecki
e9b8b6428c backup: remove duplicated get_disk_usage function 2016-04-07 13:21:00 +02:00
Marek Marczykowski-Górecki
c08f5986a9 backup: use constants for queue control strings 2016-04-07 13:21:00 +02:00
Marek Marczykowski-Górecki
ad1f1738fa qubes: make 'store' property public (R/O)
It makes sense to see from what Qubes object was loaded.
2016-04-07 13:21:00 +02:00
Marek Marczykowski-Górecki
c55ca8004a tests: port backupcompatibility to core3 API 2016-04-07 13:21:00 +02:00
Marek Marczykowski-Górecki
8c5d42a095 backup: add support for restoring pre-core3 backups 2016-04-07 13:21:00 +02:00
Marek Marczykowski-Górecki
304d2b10bc backup: fix handline "None" kernel 2016-04-07 13:21:00 +02:00
Marek Marczykowski-Górecki
412bcfa88b backup: fix hadling netvm property 2016-04-07 13:20:59 +02:00
Marek Marczykowski-Górecki
d72d8f8445 backup: code inspection annotations 2016-04-07 13:20:59 +02:00
Marek Marczykowski-Górecki
3fb0754398 backup: formatting 2016-04-07 13:20:59 +02:00
Marek Marczykowski-Górecki
697a26c8da backup: update license header
Use link instead of address, as recommended by FSF.
2016-04-07 13:20:59 +02:00
Marek Marczykowski-Górecki
e04ea7512c backup: minor code style
- Don't use catch-all except statement.
- Use str.format instead of "%" operator.
- Use static methods where applicable.
- Remove unused local variables.
- Don't shadow variables from outer scope
2016-04-07 13:20:59 +02:00
Marek Marczykowski-Górecki
44eed25511 tests/backup: report failure when error was expected but none detected 2016-04-07 13:20:59 +02:00
Marek Marczykowski-Górecki
e5af64f2bf backup: fix restore summary table 2016-04-07 13:20:59 +02:00
Marek Marczykowski-Górecki
595dfdc0a9 backup: add additional verification of backup header
Ensure only alphanumeric characters are used.
2016-04-07 13:20:59 +02:00
Marek Marczykowski-Górecki
3342f637f4 backup: convert logging to proper python logging API
QubesOS/qubes-issues#1213
QubesOS/qubes-issues#1214
2016-04-07 13:20:59 +02:00
Marek Marczykowski-Górecki
019678bf4d tests: fix backup test to not break default template...
By default AppVM is template based. This means vm.root_img points at
default template's root image. Change this to StandaloneVM to have
independent root.img.
2016-04-07 13:06:25 +02:00
Marek Marczykowski-Górecki
e557fe9989 backup: restructude the code into classes
Introduce two main classes Backup and BackupRestore for storing the
state of the desired operation. Then a simple interface to adjust
parameters.

(Almost) no functional change.

QubesOS/qubes-issues#1213
QubesOS/qubes-issues#1214
2016-04-07 13:06:14 +02:00
Marek Marczykowski-Górecki
fd1f8def6a tests: do not store dom0 home backup inside of dom0 home itself 2016-04-07 13:05:30 +02:00
Marek Marczykowski-Górecki
e0686e1e02 backup: initial conversion to core3 API 2016-04-07 13:05:25 +02:00
Marek Marczykowski-Górecki
45d6ab3862 qubes/vm: store libvirt config in libvirt.xml, fix rename handling 2016-04-07 13:03:46 +02:00
Marek Marczykowski-Górecki
12df07edd0 tests: invalid property should not be saved to qubes.xml 2016-04-07 13:03:42 +02:00
Marek Marczykowski-Górecki
de86a3c1a4 tools/qvm_prefs: reject invalid properties instead of ignoring silently 2016-04-07 13:03:39 +02:00
Marek Marczykowski-Górecki
c07981da88 tests: allow real prefix notation for selecting tests 2016-04-07 13:03:35 +02:00
Marek Marczykowski-Górecki
7f5feac98b qubes/vm: fixes for features handling
Properly handle 'None' value, there is no difference between empty
string (<x></x>) and no content at all (<x/>).
2016-04-07 13:03:30 +02:00
Marek Marczykowski-Górecki
06c315c94b qubes: fix/update event names
Fix few typos, then rename:
 - recreate-appmenus -> domain-restore: there may be more to do than
 only appmenus
2016-04-07 12:59:39 +02:00
Marek Marczykowski-Górecki
7cbe2dbd38 qubes/vm: add passio_stderr argument to vm.run_service
This allows getting error messages from service call, to provide more
meaningful error messages.
2016-04-07 12:58:05 +02:00
Marek Marczykowski-Górecki
1cd6acd875 core/events: allow handlers return some value 2016-04-07 12:58:01 +02:00
Marek Marczykowski-Górecki
6052143735 tests: qvm-prefs
QubesOS/qubes-issues#1248
2016-04-07 12:57:57 +02:00
Marek Marczykowski-Górecki
e319639146 qubes/vm: add StandaloneVM class 2016-04-07 12:57:52 +02:00
Marek Marczykowski-Górecki
43435405e7 tests: update checking 'None' VM representation 2016-04-07 12:57:47 +02:00
Marek Marczykowski-Górecki
c17f86e659 qubes: fix handling DEFAULT special value for VMProperty 2016-04-07 12:03:40 +02:00
Wojtek Porczyk
267a78e4e0 Fix resetting attribute to default when it's already default
Based on marmarek's
  WIP fix resetting attribute to default when it's already default
2016-04-06 18:09:57 +02:00
Bahtiar `kalkin-` Gadimov
b1978abce5 Use entry_points for pool driver discovery
- Add qubes.storage entry point to setup.py
- Removed the old pool driver class loading logic
- Reworked pool tests
2016-04-06 10:11:19 +02:00
Wojtek Porczyk
42666e0ec5 Throw meaningful exception when qubes.xml is missing
Based on kalkin-'s Rais QubesException if qubes xml config is missing
2016-04-05 16:33:49 +02:00
Bahtiar `kalkin-` Gadimov
156ecf4163 Add missing import in qubes/__init__.py
This was: Fix qubes-create command
2016-04-05 16:25:51 +02:00
Bahtiar `kalkin-` Gadimov
49ec29a235 Fix bug in Qubes.get_vm_class() 2016-04-05 16:24:30 +02:00
o
01bc257265 cleanup whitespace mess 2016-04-04 15:57:42 +02:00
o
b04d1ce005 new qvm-top utility
Display cpu and mem similar to qvm-ls but ordered by cpu time. Also a
one line summary switch which includes the top n cpu consuming vms and
total memory consumption. Intended usage is to e.g. embed in a window
manager widget.
2016-04-04 15:51:09 +02:00
o
958c292607 fix qvm-ls display of cpu_time
qhost.measure_cpu_usage expects the qvm_collection as parameter. Also
the number of vcpus of dom0 seems to be 0, leading to a div by 0. A more
complete fix would probably involve e.g. a new num_cores property which
would contain number of vcpu for vhosts and number of actual cores for
dom0.

For now this is a partial solution.
2016-04-04 15:30:22 +02:00
Marek Marczykowski-Górecki
04750ddef3
Merge remote-tracking branch 'qubesos/pr/26'
* qubesos/pr/26:
  Clarify descriptions of qvm-backup-restore options
  Fix typos
2016-04-02 01:30:20 +02:00
Axon
5b2df611e6
Clarify descriptions of qvm-backup-restore options 2016-04-01 19:07:16 +00:00
Axon
6901fde56a
Fix typos
Most of these typos were corrected in the qubes-doc repo as part of a
larger typo fixing sweet, but those changes were reverted when the pages
were regerenated from source.
2016-04-01 19:06:26 +00:00
Marek Marczykowski-Górecki
046149e0f4
core: fix vm.run_service 'wait' argument handling
1. wait=False isn't supportet together with localcmd (explicit, or
   implicit via 'input') - qrexec-client refuses such combination
2. When using localcmd, qrexec-client exists as soon as the local command
   terminates, not necessary remote. This may not be desired effect when
   used with wait=True (the default), so do not use localcmd in such a
   case

Found while debugging tests for qubes.USBAttach/qubes.USBDetach - with
wait=True broken, there were a lot of race conditions.

Related to QubesOS/qubes-issues#531
2016-04-01 02:53:04 +02:00