Marek Marczykowski-Górecki
7d1cbd6934
tests: handle per-template tests in BackupTestsMixin
2016-08-09 05:14:09 +02:00
Marek Marczykowski-Górecki
fba6eac07f
qubes/tests: do not undefine libvirt domain twice
...
Do not access vm.libvirt_domain after it being already removed - this
will redefine it again in libvirt, just to undefine it in a moment.
On the other hand, few lines below there is fallback libvirt cleanup, in
case of proper one not working.
2016-08-09 05:14:09 +02:00
Marek Marczykowski-Górecki
6d45b97357
tests: workaround 'int' name being shadowed by module name
...
qubes.tests.int shadows 'int' type in qubes.tests module.
QubesOS/qubes-issues#2241
2016-08-09 05:14:09 +02:00
Marek Marczykowski-Górecki
3f6c96ee39
qubes/vm: fix handling autostart set/reset
...
1. Service symlink must have ".service" extension
2. Disable service on property reset to default
2016-08-09 05:14:09 +02:00
Marek Marczykowski-Górecki
5b4e30524a
qubes/vm: remove duplicated check for duplicate name on rename
2016-08-09 03:02:04 +02:00
Marek Marczykowski-Górecki
73d61bb378
qubes/events: fix event handlers ordering
...
Since "qubes: fix event framework", handlers from extensions looks the
same as from the VM class itself, so it isn't possible to order them
correctly. Specification says:
For each class first are called bound handlers (specified in class
definition), then handlers from extensions. Aside from above,
remaining order is undefined.
So, restore this property, which is later correctly used to order
handlers.
2016-08-09 02:58:14 +02:00
Marek Marczykowski-Górecki
5177f5e12b
qubes/core2migration: fix vm.template handling
...
VM constructor can't be given just template QID, it must be TemplateVM
object.
2016-08-09 02:57:23 +02:00
Marek Marczykowski-Górecki
067cfb7cd6
Send approximate physical screen dimensions to the VM
...
When properly set, applications will have a chance to automatically
detect HiDPI and act accordingly. This is the case for Fedora 23
template and GNOME apps (maybe even all built on top of GTK).
But for privacy reasons, don't provide real values, only some
approximate one. Give enough information to distinguish DPI above 150,
200 and 300. This is some compromise between privacy and HiDPI support.
QubesOS/qubes-issues#1951
This commit is migrated from gui-daemon repository
(dec462795d14a336bf27cc46948bbd592c307401).
2016-08-08 04:03:00 +02:00
Marek Marczykowski-Górecki
6bd127beb3
qubes/core2migration: fix handling templates
2016-08-08 04:00:37 +02:00
Marek Marczykowski-Górecki
5ab860a18c
qubes: don't fail VM removal if already undefined in libvirt
...
This may happen when it was manually undefined for some reason. Or
during tests cleanup (tearDown).
2016-08-08 00:15:46 +02:00
Marek Marczykowski-Górecki
53562799cd
Fix typo in libvirt auto reconnection
2016-08-08 00:13:26 +02:00
Marek Marczykowski-Górecki
4e022382a5
Merge remote-tracking branch 'origin/master' into core3-devel
2016-08-08 00:11:46 +02:00
Marek Marczykowski-Górecki
1604aee8d4
Merge remote-tracking branch 'qubesos/pr/42' into core3-devel
...
* qubesos/pr/42:
Make pylint happy ♥
2016-08-04 17:46:16 +02:00
Bahtiar `kalkin-` Gadimov
4477ea9678
Make pylint happy ♥
2016-08-04 17:38:39 +02:00
Wojtek Porczyk
288ff85731
Merge remote-tracking branch 'origin/pull/48/head' into core3-devel
2016-08-03 18:25:02 +02:00
Bahtiar `kalkin-` Gadimov
ea34c0ed56
Fix volume_exists in qubes_lvm
2016-08-03 02:57:46 +02:00
Bahtiar `kalkin-` Gadimov
02c8fc999c
ThinPool.import() skips not saveable volumes
2016-08-03 02:57:46 +02:00
Bahtiar `kalkin-` Gadimov
9190fdeb79
Fix lvm pylint disable=import-error
2016-08-03 02:57:45 +02:00
Bahtiar `kalkin-` Gadimov
064629b63a
Fix qubes.lvm _reset
2016-08-03 02:57:44 +02:00
Bahtiar `kalkin-` Gadimov
9d30bb132a
Fix umask
2016-08-03 02:57:44 +02:00
Bahtiar `kalkin-` Gadimov
824c359319
Fix ThinPool revision handling
2016-08-03 02:57:43 +02:00
Bahtiar `kalkin-` Gadimov
f3072e7dd0
qubes-create adds default lvm pool if it exists
2016-08-03 02:57:42 +02:00
Bahtiar `kalkin-` Gadimov
3ae6530cd8
Add lvm thin pool storage implementation
2016-08-03 02:57:42 +02:00
Bahtiar `kalkin-` Gadimov
7d11a7afbd
Add lvm tests
2016-08-03 02:57:41 +02:00
Bahtiar `kalkin-` Gadimov
f90d86fe13
Add qubes.utils.random_string()
2016-08-03 02:57:40 +02:00
Bahtiar `kalkin-` Gadimov
c559ffdeab
VMCollection reword vm already exists exception
2016-08-03 02:57:39 +02:00
Bahtiar `kalkin-` Gadimov
0dd1875fb6
Add vm.shutdown(wait)
2016-08-01 15:09:28 +02:00
Bahtiar `kalkin-` Gadimov
8972254e22
Add qvm-check
2016-07-21 23:40:24 +02:00
Wojtek Porczyk
ecb626d64b
qubes/vm/qubesvm: Simplify error message
2016-07-21 19:40:45 +02:00
Wojtek Porczyk
f915115cfb
Merge remote-tracking branch 'woju/pull/25/head' into core3-devel
2016-07-21 19:38:58 +02:00
Wojtek Porczyk
c5f44f9b07
Merge remote-tracking branch 'woju/pull/24/head' into core3-devel
2016-07-21 19:36:55 +02:00
Wojtek Porczyk
8e08dae447
Merge remote-tracking branch 'origin/pull/43/head' into core3-devel
2016-07-21 19:33:21 +02:00
Wojtek Porczyk
36e5bcd766
Merge remote-tracking branch 'origin/pull/39/head' into core3-devel
2016-07-21 16:43:25 +02:00
Bahtiar `kalkin-` Gadimov
d3f8fc96e4
Fix pci device attachment to QubesVM
2016-07-21 12:22:53 +02:00
Bahtiar `kalkin-` Gadimov
c18537439f
Make pylint really happy ♥♥♥
2016-07-21 12:21:56 +02:00
Bahtiar `kalkin-` Gadimov
c5307f3f47
qvm-ls hide stacktrace if qubes.xml is missing
2016-07-21 12:20:09 +02:00
Bahtiar `kalkin-` Gadimov
190f045c07
Fix qvm-prefs
2016-07-21 12:10:00 +02:00
Bahtiar `kalkin-` Gadimov
778cda0daa
qvm-pool show pools without volumes
...
- Only empty `DomainPools` are skipped
2016-07-14 17:26:28 +02:00
Bahtiar `kalkin-` Gadimov
71161bfb93
Add mock libvirt objects
2016-07-13 23:28:02 +02:00
Bahtiar `kalkin-` Gadimov
d380fb4aba
qubes.tests.app make pylint happy ♥
2016-07-13 23:08:59 +02:00
Bahtiar `kalkin-` Gadimov
23e52775b6
qubes.tests.init make pylint happy ♥
2016-07-13 23:08:58 +02:00
Bahtiar `kalkin-` Gadimov
d8a90a77c2
Make pylint really happy ♥♥♥
2016-07-13 22:35:58 +02:00
Bahtiar `kalkin-` Gadimov
bcf1cfcb1f
Add qvm-clone(1)
2016-07-13 22:35:58 +02:00
Bahtiar `kalkin-` Gadimov
1467f1ede5
Storage add clone support
2016-07-13 22:35:57 +02:00
Bahtiar `kalkin-` Gadimov
496434d865
qvm-create uses new api
...
- `-p` is now used for `--pool` instead of `--property`
- Documented pool usage
2016-07-13 22:34:37 +02:00
Bahtiar `kalkin-` Gadimov
61feb0ced7
Migrate backup to new storage api
2016-07-13 22:34:37 +02:00
Bahtiar `kalkin-` Gadimov
bb8b58b04c
qubes.backup fix verify_files
2016-07-13 22:34:36 +02:00
Bahtiar `kalkin-` Gadimov
53ff88cd15
qvm-block add revert command
2016-07-13 22:34:36 +02:00
Bahtiar `kalkin-` Gadimov
9acd46bddb
qvm-block show if old revisions are available
2016-07-13 22:34:35 +02:00
Bahtiar `kalkin-` Gadimov
e07c4cc8e8
qvm-block use new storage API
2016-07-13 22:34:35 +02:00
Bahtiar `kalkin-` Gadimov
95fed1eb71
qubes.linux.kernel use new storage api
2016-07-13 22:34:34 +02:00
Bahtiar `kalkin-` Gadimov
f60ccb235d
qubes.storage.domain use new storage API
2016-07-13 22:34:34 +02:00
Bahtiar `kalkin-` Gadimov
d1c606b952
qubes.storage.file use new storage API
2016-07-13 22:34:33 +02:00
Bahtiar `kalkin-` Gadimov
1f735669bc
Migrate qubes.vm modules to new API
2016-07-13 22:34:33 +02:00
Bahtiar `kalkin-` Gadimov
ca9797bb6b
qubes.tests.int.basic use new storage API
2016-07-13 22:34:32 +02:00
Bahtiar `kalkin-` Gadimov
1cbabc79ff
qubes.vm.QubesVM use new storage api
2016-07-13 22:34:32 +02:00
Bahtiar `kalkin-` Gadimov
7e1563c88d
Add handling for old volume config
2016-07-13 22:34:31 +02:00
Bahtiar `kalkin-` Gadimov
1bccb146d8
Add qubes.storage.isodate() helper function
2016-07-13 22:34:31 +02:00
Bahtiar `kalkin-` Gadimov
7841e3f6c0
qubes.storage rework api
2016-07-13 22:34:30 +02:00
Bahtiar `kalkin-` Gadimov
3952cef556
QubesVM serialize bool values from XML
2016-07-13 22:21:32 +02:00
Bahtiar `kalkin-` Gadimov
4cc7b8d2a8
Fix qubes.tests.storage
2016-07-13 22:21:31 +02:00
Bahtiar `kalkin-` Gadimov
bba9b38e8e
Avoid libvirt access in qubes.vm.qubesvm.QubesVM
2016-07-13 22:21:30 +02:00
Bahtiar `kalkin-` Gadimov
774cbd499e
Add TestVM.is_halted() to fix failing tests
2016-07-13 21:57:12 +02:00
Bahtiar `kalkin-` Gadimov
6fad722554
Make pylint really happy ♥♥♥
2016-07-13 21:13:29 +02:00
Bahtiar `kalkin-` Gadimov
3b93fd612e
Make pylint really happy ♥♥♥
2016-07-13 20:58:45 +02:00
Bahtiar `kalkin-` Gadimov
de5487bf14
Dumb down qvm-remove
...
- Move `vm.is_halted()` check in to VMCollection.__delitem__()
- `vm.remove_from_disk()` will raise exception if is called on a running vm
2016-07-13 18:24:29 +02:00
Bahtiar `kalkin-` Gadimov
5115eef413
qvm-shutdown make pylint happy ♥
2016-07-13 18:09:32 +02:00
Bahtiar `kalkin-` Gadimov
63a1edc274
Fix qvm-remove undefines domain in libvirt
...
- Return error if domain is not halted
- Undefine the domain in libvirt, to avoid: "Domain already exists with uuid…"
2016-07-05 13:39:47 +02:00
Bahtiar `kalkin-` Gadimov
a66df9c82e
Fix bugs in qvm-shutdown --all
...
- Exit the program if all domains are halted
- Changed log.notice to log.info
- Replace map with dictionary comprehensions (pylint)
2016-07-05 13:32:59 +02:00
Wojtek Porczyk
c899d1f960
qubes/tests: Show errors while loading external tests
...
Now failure to load external tests shows in which entry point the error
happened and a useful traceback. The traceback extends from the "try"
statement down to the actual error line, but it does not include the
frames above, ie. from the invocation to the load_tests routine. This is
a limitation of Python itself and usually not a problem.
2016-07-04 16:51:35 +02:00
Wojtek Porczyk
1ff1ca37a1
Merge remote-tracking branch 'woju/pull/21/head' into core3-devel
...
Conflicts:
qubes/storage/__init__.py
2016-07-02 11:54:56 +02:00
Wojtek Porczyk
d28ab908cc
Network and storage fixes
2016-06-29 16:42:35 +02:00
Wojtek Porczyk
b53c572f1d
Merge remote-tracking branch 'woju/pull/23/head' into core3-devel
2016-06-28 15:19:57 +02:00
Wojtek Porczyk
c9accc258c
Merge remote-tracking branch 'woju/pull/15/head' into core3-devel
...
Conflicts:
qubes/storage/__init__.py
qubes/storage/file.py
qubes/vm/qubesvm.py
2016-06-28 15:15:00 +02:00
Bahtiar `kalkin-` Gadimov
e26932a81a
Fix bug in FilesPool.target_dir()
2016-06-23 14:23:34 +02:00
Bahtiar `kalkin-` Gadimov
7081bd433a
Make pylint happy
2016-06-23 14:23:34 +02:00
Bahtiar `kalkin-` Gadimov
0ab27d7426
qubes.vm.__init__ Remove unneeded time import
2016-06-23 14:23:33 +02:00
Bahtiar `kalkin-` Gadimov
b584d1a4bb
Remove QubesVM.is_netvm() and is_disposablevm()
2016-06-23 14:23:33 +02:00
Bahtiar `kalkin-` Gadimov
4a0b7585d1
Remove QubesVM.is_proxyvm()
2016-06-23 14:23:32 +02:00
Bahtiar `kalkin-` Gadimov
b0a7d0c283
Remove QubesVM.is_appvm()
2016-06-23 14:23:32 +02:00
Bahtiar `kalkin-` Gadimov
e08ca1ff57
Remove QubesVM.is_template()
2016-06-23 14:23:31 +02:00
Bahtiar `kalkin-` Gadimov
ba3b191702
QubesVM add docstrings & fix pylint errors
2016-06-23 14:23:31 +02:00
Bahtiar `kalkin-` Gadimov
a2668d81e3
QubesVM remove resize functions
2016-06-23 14:23:30 +02:00
Bahtiar `kalkin-` Gadimov
9132690eef
Add QubesVM.is_halted()
2016-06-23 14:23:24 +02:00
Bahtiar `kalkin-` Gadimov
4db84c42a6
Fix qubes.storage.file _remove_if_exists
2016-06-23 13:17:00 +02:00
Bahtiar `kalkin-` Gadimov
12745a4860
Qubes.add_pool() returns the added pool
2016-06-23 13:17:00 +02:00
Bahtiar `kalkin-` Gadimov
8fc3772017
Add Volume.__str__()
2016-06-23 13:16:59 +02:00
Bahtiar `kalkin-` Gadimov
3dd77719c1
Pool.create source_volume argument is optional
2016-06-23 13:16:59 +02:00
Bahtiar `kalkin-` Gadimov
b260c2cdd9
Fix pylint warnings
2016-06-23 13:16:10 +02:00
Bahtiar `kalkin-` Gadimov
bb2e6a2ad3
Add QubesVM.attached_volumes()
2016-06-23 13:16:09 +02:00
Bahtiar `kalkin-` Gadimov
b9ddc00741
Add qvm-block
2016-06-23 13:16:08 +02:00
Bahtiar `kalkin-` Gadimov
c487b5fe9b
Fix PoolsAction
2016-06-23 13:16:07 +02:00
Bahtiar `kalkin-` Gadimov
90c882610e
Storage attach volumes from other pools
...
- Already attached volumes are ignored
2016-06-23 13:16:07 +02:00
Bahtiar `kalkin-` Gadimov
c4a506206c
Fix VmNameGroup formatting
2016-06-23 13:16:06 +02:00
Bahtiar `kalkin-` Gadimov
2f0df26606
Add subparser handling to parse_qubes_app
2016-06-23 13:16:06 +02:00
Bahtiar `kalkin-` Gadimov
4f0b17cb52
Add qubes.tools.RunningVmNameAction
2016-06-23 13:16:05 +02:00
Bahtiar `kalkin-` Gadimov
b5eb377490
Add VolumeAction for parsing POOL_NAME:VOLUME_ID
2016-06-23 13:16:05 +02:00
Bahtiar `kalkin-` Gadimov
0ac40ddd4f
Volume.__repr__ returns POOL_NAME:VOLUME_ID
2016-06-23 13:16:04 +02:00
Bahtiar `kalkin-` Gadimov
09727b1cbd
Add Volume.internal field
...
- Linux kernel volumes are always internal volumes
2016-06-23 13:16:03 +02:00
Bahtiar `kalkin-` Gadimov
07800a0e67
Add Volume.eq, neq and hash
2016-06-23 13:16:03 +02:00
Bahtiar `kalkin-` Gadimov
f08ce2cb79
A Pool should always have a volumes property
...
NOTE: FilesPool need some way to dynamically discover volumes
2016-06-23 13:15:54 +02:00
Bahtiar `kalkin-` Gadimov
88198fb7ac
Storage verification is part of the pool interface
...
- LinuxKernel pool add verify method
- FilePool implent verification
2016-06-23 13:11:59 +02:00
Bahtiar `kalkin-` Gadimov
87ae5a3b65
Fix qvm-start
2016-06-21 17:44:35 +02:00
Bahtiar `kalkin-` Gadimov
d56f02598a
Replace QubesVM.verify_files() with Storage.verify_files()
2016-06-21 14:58:12 +02:00
Bahtiar `kalkin-` Gadimov
296fa17322
QubesVM remove obsolete *_img methods
2016-06-21 14:58:12 +02:00
Bahtiar `kalkin-` Gadimov
e7732f8ad0
Storage.verify fires domain-verify-files event
2016-06-21 14:58:11 +02:00
Bahtiar `kalkin-` Gadimov
457c915d03
qvm-create fix access to volume paths
2016-06-21 14:58:11 +02:00
Bahtiar `kalkin-` Gadimov
732d2b33f4
Add LinuxKernel.is_outdated()
2016-06-21 14:58:10 +02:00
Bahtiar `kalkin-` Gadimov
3b441ebaad
Add Storage.outdated_volumes and Pool.is_outdated
2016-06-21 14:58:10 +02:00
Bahtiar `kalkin-` Gadimov
0a471e719b
qubes.backup fix access to volume paths
2016-06-21 14:58:09 +02:00
Bahtiar `kalkin-` Gadimov
db608f6e01
Pool add str, eq & neq
2016-06-21 12:53:31 +02:00
Bahtiar `kalkin-` Gadimov
803efa76ff
Merge FilePool._resize_loop_device() with resize()
2016-06-21 12:48:57 +02:00
Bahtiar `kalkin-` Gadimov
72df863bb9
Fix qubes.storage.file pylint warnings
2016-06-21 12:47:47 +02:00
Bahtiar `kalkin-` Gadimov
20282c17fe
Volume add docstrings
2016-06-21 12:44:21 +02:00
Bahtiar `kalkin-` Gadimov
b830cb5544
Volume add eq, neq & hash methods
2016-06-21 12:39:47 +02:00
Wojtek Porczyk
66f46d8a25
Fix test error after bdfb85ac
(refactor storage)
2016-06-21 10:10:45 +02:00
Wojtek Porczyk
d6ad8d34a6
Merge remote-tracking branch 'marmarek/patch-1' into core3-devel
2016-06-16 21:46:53 +02:00
Marek Marczykowski-Górecki
dcdb62721b
tests: mark TC_01_FileVolumes.test_003_read_volume with expected failure
2016-06-16 21:23:18 +02:00
Marek Marczykowski-Górecki
4e797663e9
tests: make storage tests working outside of dom0
2016-06-16 21:14:35 +02:00
Marek Marczykowski-Górecki
2ff6aa456e
Provide fake CPUs count and total memory in offline mode
2016-06-16 21:08:44 +02:00
Marek Marczykowski-Górecki
5eea473725
core2migration: add a skeleton for dispvm_netvm migration
...
QubesOS/qubes-issues#2075
2016-06-16 17:25:45 +02:00
Bahtiar `kalkin-` Gadimov
29633f43f8
qubes.vm.templatevm Add LICENSE & docstring
2016-06-16 17:11:49 +02:00
Marek Marczykowski-Górecki
9cdf994360
Minor fixes
2016-06-16 17:06:42 +02:00
Marek Marczykowski-Górecki
98effef606
backup: add option to use default kernel for restored VMs
2016-06-16 17:06:42 +02:00
Marek Marczykowski-Górecki
91404cc647
backup: collect files to backup once
2016-06-16 17:06:41 +02:00
Marek Marczykowski-Górecki
2dacb3a542
backup: drop/resolve minor "TODO" comments
2016-06-16 17:06:41 +02:00
Bahtiar `kalkin-` Gadimov
91ee455a37
NetVMMixin add docstrings & fix pylint errors
2016-06-16 17:06:19 +02:00
Marek Marczykowski-Górecki
c9a55cc198
tests: use offline mode
...
QubesOS/qubes-issues#2008
2016-06-16 17:04:16 +02:00
Bahtiar `kalkin-` Gadimov
b77c36b224
Remove NetVMMixin.vif()
2016-06-16 17:01:34 +02:00
Bahtiar `kalkin-` Gadimov
7ccba17a38
qubes.vm.__init__ Replace TODOs with SEE: #1815
2016-06-16 17:01:34 +02:00
Bahtiar `kalkin-` Gadimov
ec9550c7cc
qubes.vm.__init__ Remove debug xml file creation
2016-06-16 17:01:34 +02:00
Bahtiar `kalkin-` Gadimov
94d9fd040f
qubes.vm.__init__ Add docstrings
2016-06-16 17:01:34 +02:00
Bahtiar `kalkin-` Gadimov
77d54b55ad
qubes.vm.__init__ Fix pylint warnings
2016-06-16 17:01:34 +02:00
Bahtiar `kalkin-` Gadimov
f318871279
qubes.vm.__init__ Remove uses_custom_config bits
2016-06-16 17:01:34 +02:00
Bahtiar `kalkin-` Gadimov
b5fe49f422
qubes.vm.__init__ Remove unneeded imports
2016-06-16 17:01:34 +02:00
Bahtiar `kalkin-` Gadimov
93e68a6796
qubes.vm.dispvm Fix XXX, add docstring & LICENSE
2016-06-16 17:01:33 +02:00
Bahtiar `kalkin-` Gadimov
d25c44ca71
qubes.vm.appvm Fix XXX, add docstrings & LICENSE
2016-06-16 17:01:33 +02:00
Bahtiar `kalkin-` Gadimov
0cd667a1f5
qubes.vm.adminvm fix XXX and add docstrings
2016-06-16 17:01:33 +02:00
Bahtiar `kalkin-` Gadimov
e5906df0c7
AdminVM remove get_private_img_sz
2016-06-16 16:59:27 +02:00
Bahtiar `kalkin-` Gadimov
9f3385296b
qubes.storage.file fix pylint warnings
2016-06-16 16:59:27 +02:00
Bahtiar `kalkin-` Gadimov
38dc74587d
Rewrote file rename_target_dir
2016-06-16 16:59:27 +02:00
Bahtiar `kalkin-` Gadimov
a4577c0dce
Rename Storage.create_on_disk to Storage.create
2016-06-16 16:59:27 +02:00
Bahtiar `kalkin-` Gadimov
930fe417a8
Remove storage size and usage methods from QubesVM
2016-06-16 16:59:26 +02:00
Wojtek Porczyk
e47043ebd7
More pylint fixes
2016-06-16 13:29:16 +02:00
Wojtek Porczyk
3cb5f031a9
Fix storage initialisation
2016-06-16 13:29:15 +02:00
Wojtek Porczyk
1f302fb776
Fix "pylint fixes" wrt dir_path
2016-06-16 13:29:15 +02:00
Wojtek Porczyk
677a3e51f4
Move libvirt XML network device to jinja
2016-06-16 13:29:15 +02:00
Wojtek Porczyk
ba20254888
Rewrite PCI attaching/detaching from xl to libvirt
...
The only remaining part is querying vm-side BDF. That can't be done
in libvirt.
2016-06-16 13:29:15 +02:00
Wojtek Porczyk
63b6674fbd
fix qvm-ls display of cpu_time
...
QubesOS/qubes-core-admin#27
2016-06-13 19:10:01 +02:00
Wojtek Porczyk
6a10daf7be
Merge branch 'master' into core3-devel
...
Remains to be fixed:
88cb62fc
d2640b51
958c2926
2016-06-13 19:03:46 +02:00
Wojtek Porczyk
6ade5736d7
pylint fixes
2016-06-10 21:27:29 +02:00
Wojtek Porczyk
6895f34a7f
qubes/vm/qubesvm: change type of exception
2016-06-10 21:27:29 +02:00
Wojtek Porczyk
3b08e85a2d
qubes/tests/init: Fix VMCollection reference
2016-06-10 21:27:29 +02:00
Wojtek Porczyk
5a76d0b03b
qubes/vm/dispvm: Add methods for creating and destroying
...
fixes QubesOS/qubes-issues#866
2016-06-02 19:55:42 +02:00
Wojtek Porczyk
a719e0d93d
qubes/vm/qubesvm: allow looking up by UUID
...
Also, allow lookup using VM from other app.
QubesOS/qubes-issues#866
2016-06-02 17:18:33 +02:00
Wojtek Porczyk
476b681749
qubes/vm/qubesvm: return self from methods modifying state
...
This is helpful when writing oneliners.
QubesOS/qubes-issues#866
2016-06-02 17:17:05 +02:00
Wojtek Porczyk
27d0e11872
qubes/tests/vm: fix tests
2016-06-02 15:46:01 +02:00
Wojtek Porczyk
a615a45ecd
Merge remote-tracking branch 'woju/pull/13/head' into core3-devel
2016-06-02 13:24:15 +02:00
Marek Marczykowski-Górecki
7e0af81ecc
qubes/vm: fix PCI device detach
2016-06-02 13:22:48 +02:00
Marek Marczykowski-Górecki
485e75091b
tests: fix checking rename
2016-06-02 13:22:43 +02:00
Marek Marczykowski-Górecki
077dec8d2e
tests: fix rename test
2016-06-02 13:22:40 +02:00
Marek Marczykowski-Górecki
bb2e1f2870
qubes/vm: handle VM toplevel directory in QubesVM object not Storage
...
This directory is not only for disk images (in fact disk images may be
elsewhere depending on choosen volume pool), so it would be cleaner to
handle (create/remove) it directly in QubesVM class.
2016-06-02 13:22:07 +02:00
Marek Marczykowski-Górecki
ed6e69b77e
qubes/vm: minor
2016-06-02 13:14:19 +02:00
Marek Marczykowski-Górecki
2d8d78bebe
qubes/vm/standalonevm: set volume_config
...
Otherwise VM wouldn't have any hard disk...
2016-06-02 13:14:02 +02:00
Marek Marczykowski-Górecki
5b5f290c23
qubes/vm: fix setting autostart property
...
This is actually workaround for systemd bug reported here:
https://bugzilla.redhat.com/show_bug.cgi?id=1181922
qubesos/qubes-issues#925
This is migration of 9bfcb72722
commit to
core3.
2016-06-02 13:13:21 +02:00
Marek Marczykowski-Górecki
b37bf55f5e
qubes/vm: fix handling rename
...
Libvirt VM config is no longer named after VM.
2016-06-02 13:10:56 +02:00
Marek Marczykowski-Górecki
5e2b617c6f
qubes/vm: fix parameters for some even handlers
2016-06-02 13:10:43 +02:00
Marek Marczykowski-Górecki
2bb73ab0a1
qubes/vm: add validators for many properties
2016-06-02 13:10:28 +02:00
Marek Marczykowski-Górecki
36644f3710
qubes/vm: initialize vm.volumes in one place
...
Move it to QubesVM, instead of each class separately.
2016-06-02 13:10:02 +02:00
Marek Marczykowski-Górecki
28591fa6be
tests: remove/skip some tests
...
1. It is unclear yet whether dispvm_netvm will be implemented in core3, but
probably not.
2. Remove tests for setting memory/cpu above host resouces - rejecting
those values at property set time would break backup restore on some
machines (when migrating from bigger to smaller system).
2016-06-02 13:09:39 +02:00
Marek Marczykowski-Górecki
bf0966bfcf
tests: fix get_label mockup to return meaningful values
...
Reject invalid argument.
2016-06-02 13:08:48 +02:00
Marek Marczykowski-Górecki
98115eb541
tests/backup: fix to core3 API - there is no verbose= argument
2016-06-02 13:08:03 +02:00
Marek Marczykowski-Górecki
0a21300872
qubes/storage: unify _remove_if_exists argument type
...
In some places full volume object was called, in others - just file
path. Since this function is also used in some volume init/teardown, use
path everywhere.
2016-06-02 13:07:35 +02:00
Marek Marczykowski-Górecki
574834ac68
qubes/core2migration: rework load order
...
To successfully load all the data, proceed in order:
- set app.default_kernel
- load all templates
- set app.default_template
- load other VMs
- update network dependencies between VMs
- set other global properties
2016-06-02 12:44:31 +02:00
Marek Marczykowski-Górecki
554a99610f
qubes/core2migration: use app.load_initial_values
...
Reduce code duplication.
2016-06-02 12:43:25 +02:00
Marek Marczykowski-Górecki
692f75353e
qubes/app: split initialising empty Qubes object from saving it
...
It may be useful to create fresh Qubes() object but not save it yet
before setting other things. One such case is migration from core2.
2016-06-02 12:42:37 +02:00
Marek Marczykowski-Górecki
2909d252d6
backup: get_fisk_usage is now in storage.file
2016-06-02 12:41:59 +02:00
Marek Marczykowski-Górecki
ff78b26f66
qubes: implement offline mode
...
Apparently the most important (the only?) property required in offline
mode is "is_running". So let's patch it to return False and make sure
any other libvirt usage would result in failure.
Or maybe better simply returh False in vm.is_running, when libvirt
connection fails? But then it would not be possible to use offline mode
and have (some, probably unrelated) libvirtd running at the same time.
Fixes QubesOS/qubes-issues#2008
2016-06-02 12:41:26 +02:00
Marek Marczykowski-Górecki
b119b2c36b
storage/file: simplify search for origin volume of snapshot/read-only
...
Check directly vm.template, throwing AttributeError when not found.
There may be some value in converting it to more descriptive error, but
since that's mostly for internal users (not user facing actions) don't
bother for now.
QubesOS/qubes-issues#1842
2016-06-02 12:38:07 +02:00
Marek Marczykowski-Górecki
07b72ef3fd
tests: fix after moving VMCollection to qubes.app
2016-06-02 12:37:30 +02:00
Marek Marczykowski-Górecki
c965024287
qubes/vm: Implement Disposable VM
...
Implement DispVM as a VM based on AppVM.
QubesOS/qubes-issues#866
2016-06-02 12:37:19 +02:00
Marek Marczykowski-Górecki
54c70766a4
qubes/storage: allow snapshots of snapshots
...
It may make sense to create 'snapshot' volume out of already 'snapshot',
not only 'origin'. In pracice it will exactly the same as 'snapshot
connected directly to 'origin'.
QubesOS/qubes-issues#866
2016-06-02 12:37:00 +02:00
Marek Marczykowski-Górecki
48176d51f1
qubes/storage: minor error message fix
2016-06-02 12:29:39 +02:00
Marek Marczykowski-Górecki
d80f34888d
qubes/storage: fix getting origin pool
...
volume_config parameter is about target volume, not origin.
QubesOS/qubes-issues#1842
2016-06-02 12:29:30 +02:00
Marek Marczykowski-Górecki
b24ab45d00
qubes/vm: fix network attach/detach
2016-06-02 12:28:53 +02:00
Marek Marczykowski-Górecki
3b407eb79e
qubes/app: do not enable domain events when loading XML
...
Event should be enabled only after all the domains are loaded (and
domain-load event if fired).
QubesOS/qubes-issues#1816
2016-06-02 12:28:14 +02:00
Bahtiar `kalkin-` Gadimov
17790c32bb
Fix DomainPool missing a continue
2016-06-01 17:28:55 +02:00
Bahtiar `kalkin-` Gadimov
90928dc4a0
qubes-pool skip DomainPools without volumes
2016-05-30 13:31:58 +02:00
Bahtiar `kalkin-` Gadimov
c8363cfc95
qvm-pool simplify options parsing
2016-05-30 13:31:57 +02:00
Bahtiar `kalkin-` Gadimov
27305dd85d
qvm-pool actions remove access to app
2016-05-30 13:31:56 +02:00
Bahtiar `kalkin-` Gadimov
ed1a6977c0
Qubes.add_pool() add name parameter
2016-05-30 13:31:55 +02:00
Bahtiar `kalkin-` Gadimov
d703f2f44b
Add qvm-pool and manpage for it
...
- Use full import paths in qvm-pool
- Add, Remove, Info and List options set `Namespace.command`. This fixes a crash
when `-o dir_path=/mnt/foo` is specified after `-a foo xen`.
- Remove `_List`
- Remove 'added pool' and 'removed pool' messages. Unix tools are quiet
- qvm-pool call app.save()
- Rename create_parser in get_parser
- Rename local_parser variables to just parser
- qvm-pool uses print_table
2016-05-30 13:31:54 +02:00
Bahtiar `kalkin-` Gadimov
9ef9575d4e
Fix typo in "No driver FOO for pool BAR" message
2016-05-30 13:31:54 +02:00
Bahtiar `kalkin-` Gadimov
357e8125eb
Add qubes.tools.PoolsAction
2016-05-30 13:31:53 +02:00
Bahtiar `kalkin-` Gadimov
0319df25e5
Add print_table function to qubes.tools
...
- print_table uses the `column` tool with the ASCII Unit Separator to print a
pretty table
2016-05-30 13:31:51 +02:00
Bahtiar `kalkin-` Gadimov
35974a5dbf
DomainPool check the untrusted data from qubes-db
2016-05-25 17:39:34 +02:00
Wojtek Porczyk
0484be518c
Merge remote-tracking branch 'woju/pull/12/head' into core3-devel
...
Conflicts:
doc/manpages/qvm-kill.rst
2016-05-25 11:01:19 +02:00
Bahtiar `kalkin-` Gadimov
3f5a92772a
A QubesVM always has an empty DomainPool
...
- A DomainPool is initialized by QubesVM after Storage initialization on a
`domain-load` event
2016-05-22 22:09:56 +02:00
Bahtiar `kalkin-` Gadimov
ddf040ae64
Do not serialize the domain pool config
2016-05-22 22:09:55 +02:00
Bahtiar `kalkin-` Gadimov
baaac858bc
Add DomainPool
...
- All domain pool volumes are removable volumes
- DomainVolume uses device name as vid
2016-05-22 22:09:54 +02:00
Bahtiar `kalkin-` Gadimov
e30f894df9
Add Volume.removable field
2016-05-22 21:42:27 +02:00
Bahtiar `kalkin-` Gadimov
116ba64e51
Storage.remove() catch IO/OSError and log it
2016-05-21 01:35:32 +02:00
Bahtiar `kalkin-` Gadimov
c5810758c5
FilePool fix origin volume removale
2016-05-21 01:35:31 +02:00
Bahtiar `kalkin-` Gadimov
8959e5a77e
Implement qvm-remove
...
- Remove old qvm-remove
- Remove a log line from Storage, because it prints confusing lines, like:
Removing volume kernel: /var/lib/qubes/vm-kernels/4.1.13-6/modules.img
2016-05-21 01:35:30 +02:00
Bahtiar `kalkin-` Gadimov
91f72dc56c
Rework argument checking when generating manpages
...
Add the ability to handle commands having subcommands, like `qvm-block`
Split the ArgumentCheckVisitor in an OptionsCheckVisitor &
SubCommandCheckVisitor. The OptionsCheckVisitor checks options given
in a section named 'Options' (case insensitive), while the
SubCommandCheckVisitor dispatches on a section named 'Commands' (case
insensitive).
This also fixes finding the undocumented command arguments. The previous
solution with depart_document did not work. NodeVisitor does not dispatch to
depart_document() even if it's mentioned in the documentation.
2016-05-21 01:25:14 +02:00
Bahtiar `kalkin-` Gadimov
e580131465
Add AliasedSubParsersAction
2016-05-21 01:25:13 +02:00
Bahtiar `kalkin-` Gadimov
910276e898
Rename want_vm_* in vmname_nargs
2016-05-21 01:24:17 +02:00
Bahtiar `kalkin-` Gadimov
d4c74d210f
Implement vmname parsing
2016-05-21 01:24:16 +02:00
Bahtiar `kalkin-` Gadimov
3549a9d4ec
Add VmNameGroup
2016-05-21 01:24:14 +02:00
Bahtiar `kalkin-` Gadimov
7fe827d858
Add VmNameAction
2016-05-21 01:24:13 +02:00
Bahtiar `kalkin-` Gadimov
c22d9e88c9
Add QubesAction
2016-05-21 01:24:12 +02:00
Wojtek Porczyk
e757444c35
qubes/tools/qvm-features: add tool for managing qvm-features
...
QubesOS/qubes-issues#1637
2016-05-19 03:02:24 +02:00
Bahtiar `kalkin-` Gadimov
a65b0edcd4
Add QubesArgumentParser.print_error()
2016-05-19 03:02:24 +02:00
Wojtek Porczyk
786884ad7a
qubes: fix netvm properties and tests
...
fixes QubesOS/qubes-issues#1816
2016-05-19 03:02:23 +02:00
Wojtek Porczyk
d728f4b9ff
qubes/app: reconnect to libvirtd after crash
...
Sometimes libvirt crashes. After that the connection (and all
vm.libvirt_domain-s) were unusable.
fixes QubesOS/qubes-issues#990
2016-05-05 17:33:00 +02:00
Wojtek Porczyk
e3aae7bc17
qubes: Minor fixes
...
Fix mock TestApp object and argument parsing in qvm-run.
2016-05-05 16:58:43 +02:00
Wojtek Porczyk
c76790fbde
qubes/tests/vm/qubesvm: fix test for vm.internal
...
On flipping .internal vm (re)creates appmenus. They need label.
2016-05-05 14:38:04 +02:00
Wojtek Porczyk
63c09a090c
qubes: Combat import cycles
...
This commit eliminates import statements happening in the middle of the
file (between two classes definition). The cycles are still there. The
only magic module is qubes itself.
2016-05-05 14:33:09 +02:00
Wojtek Porczyk
f8270a07bb
qubes: add filename= argument to Qubes.save()
...
fixes QubesOS/qubes-issues#1846
2016-05-05 00:40:45 +02:00
Bahtiar `kalkin-` Gadimov
1d5b89f0d5
LinuxKernel keep track of own volumes
...
This is squashed woju/qubes-core-admin#8 by @kalkin
- LinuxKernel.volumes() lists all available kernels
- LinuxKernel use kernel version as vid
- LinuxKernel add docstrings
- Linux.kernel use os.listdir instead of os.walk
- LinuxKernel dynamically list available kernels
2016-05-04 17:21:05 +02:00
Bahtiar `kalkin-` Gadimov
7200e6153b
Rename default storage driver from xen to file
...
- Rename XenPool ⇒ FilePool
- Rename XenVolume ⇒ FileVolume
2016-04-30 20:42:46 +02:00
Bahtiar `kalkin-` Gadimov
b2c1017488
Fix missing parameter in Pool.__init__()
2016-04-30 20:42:00 +02:00
Wojtek Porczyk
7f2f4a4e75
Fix GUI extension
2016-04-27 15:27:01 +02:00
Bahtiar `kalkin-` Gadimov
04a3e80311
SizeMixIn first assert than call super()
2016-04-25 07:17:21 +02:00
Bahtiar `kalkin-` Gadimov
29f4be0f10
If vm doesnt support volume_config raise TypeError
2016-04-25 07:17:21 +02:00
Bahtiar `kalkin-` Gadimov
37ca33b0d1
Add docstring to xen volumes implementations
2016-04-25 07:17:21 +02:00
Bahtiar `kalkin-` Gadimov
8f060a8746
Fix Pool and Volume __init__
2016-04-25 07:17:20 +02:00
Bahtiar `kalkin-` Gadimov
591134833b
Replace Volume.__str__ with enhanced __repr__
2016-04-25 07:17:20 +02:00
Bahtiar `kalkin-` Gadimov
04536c5950
Don't exec app.save() after add_pool & remove_pool
2016-04-25 07:17:20 +02:00
Bahtiar `kalkin-` Gadimov
d7ff4b9057
Move volume xml config from QubesVM to Volume
2016-04-25 07:17:20 +02:00
Bahtiar `kalkin-` Gadimov
2e28849c90
Move pool xml config from Qubes to Pool
2016-04-25 07:17:20 +02:00
Bahtiar `kalkin-` Gadimov
49b4951389
Storage move rename() logic to XenPool
...
- Fix config renaming
2016-04-25 07:17:20 +02:00
Bahtiar `kalkin-` Gadimov
e3ae6cdc1b
BackupTestsMixin.create_backup_vms uses volumes
...
Instead of using root_img to access the path it uses now the proper volumes
2016-04-25 07:17:20 +02:00
Bahtiar `kalkin-` Gadimov
d7fd66070a
Fix revert template changes test
2016-04-25 07:17:19 +02:00
Bahtiar `kalkin-` Gadimov
8cc31e86a7
qvm-create handle --pool argument
2016-04-25 07:17:19 +02:00
Bahtiar `kalkin-` Gadimov
2c2a778a1d
Serialize volume_config from qubes.xml
2016-04-25 07:17:19 +02:00
Bahtiar `kalkin-` Gadimov
fe6a35155e
Move kernel file checks to LinuxKernel pool
2016-04-25 07:17:19 +02:00
Bahtiar `kalkin-` Gadimov
ef485ca32a
Add linux-kernel to defaults['pool_config']
2016-04-25 07:17:19 +02:00
Bahtiar `kalkin-` Gadimov
62c81044c5
Add XenPool.setup/destroy
2016-04-25 07:17:18 +02:00
Bahtiar `kalkin-` Gadimov
97d04791b7
After add/remove_pool execute Pool.setup/destroy
2016-04-25 07:17:18 +02:00
Bahtiar `kalkin-` Gadimov
9674d03088
Add pool LinuxKernel
2016-04-25 07:17:18 +02:00
Bahtiar `kalkin-` Gadimov
d1a0542c85
Add XenPool.remove()
2016-04-25 07:17:18 +02:00
Bahtiar `kalkin-` Gadimov
a37fc2464a
Add XenPool.config()
2016-04-25 07:17:18 +02:00
Bahtiar `kalkin-` Gadimov
971c4ae91d
Add XenPool.driver field
2016-04-25 07:17:18 +02:00
Bahtiar `kalkin-` Gadimov
5f7cb41a21
Move Storage.clone_disk_files logic to XenPool
...
- Add XenVolume to identify volumes which can be cloned even if they are not in
the same pool
2016-04-25 07:17:17 +02:00
Bahtiar `kalkin-` Gadimov
973c83cedd
Move most resize logic to XenPool
2016-04-25 07:17:17 +02:00
Bahtiar `kalkin-` Gadimov
bdfb85ac19
Refactor Storage, Pool and XenPool
...
- Remove all *_dev_config methods
- Checks if a storage image exists moved to XenPool
- Storage.remove wraps Pool.remove()
- Stop volumes on domain sutdown/kill
- Warn when using deprecated methods
2016-04-25 07:17:17 +02:00
Bahtiar `kalkin-` Gadimov
3c66d4b54c
Fix storage_xen test
2016-04-25 07:17:17 +02:00
Bahtiar `kalkin-` Gadimov
79ac3d3770
Fix storage test and simplify TestVM
2016-04-25 07:17:17 +02:00
Bahtiar `kalkin-` Gadimov
88238c80f3
Add XenPool._reset_volume
2016-04-25 07:17:17 +02:00