WillyPillow
40e7304f17
qvm-template: Make pylint happy.
2020-08-01 02:56:59 +08:00
WillyPillow
3d0a39523b
qvm-template: Reorder functions.
2020-08-01 02:40:27 +08:00
WillyPillow
233e411c2f
qvm-template: Switch to namedtuples and other slight cleanup.
2020-08-01 02:24:29 +08:00
WillyPillow
3ada7af0eb
qvm-template: {reinstall,{up,down}grade}: Better handling and checks for existing version.
2020-07-31 01:27:40 +08:00
WillyPillow
90e4f65bea
qvm-template*: Add option to specify pool to store created VM.
2020-07-29 20:55:56 +08:00
WillyPillow
ef59a658f4
qvm-template: Make pylint happy by changing "license" to "licence".
2020-07-29 20:55:02 +08:00
WillyPillow
f960ed4726
qvm-template: Add --refresh option and allow DNF cache to be used.
2020-07-29 20:55:02 +08:00
WillyPillow
8aa9ab9e89
qvm-template: Remove downloaded file if the download is interrupted.
2020-07-29 20:55:02 +08:00
WillyPillow
88ee572cac
qvm-template: Incorporate additional metadata in qubes.TemplateSearch.
2020-07-29 20:55:02 +08:00
WillyPillow
421dd74dd2
Check number of fields for qubes.TemplateSearch output.
2020-07-29 20:55:02 +08:00
WillyPillow
5e76bdb5f1
Revamp "qvm-template search" and finish TODOs.
2020-07-29 20:55:02 +08:00
WillyPillow
37a72ecebf
Print error messages if qubes.TemplateSearch fails.
2020-07-29 20:55:02 +08:00
WillyPillow
e6392ba4ec
Add lock-file functionality for qvm-template install.
2020-07-29 20:55:02 +08:00
WillyPillow
c573faa9c0
Initial implementation for "qvm-template search".
2020-07-29 20:55:02 +08:00
WillyPillow
d656554822
Initial implementation for "qvm-template info".
2020-07-29 20:55:02 +08:00
WillyPillow
51324da24d
Allow <package-spec>-like arguments for the list operation.
2020-07-29 20:55:02 +08:00
WillyPillow
41323d004f
Support for {reinstall,downgrade,upgrade} operations.
...
Requires QubesOS/qubes-issues#5946 to be resolved.
2020-07-29 20:55:02 +08:00
WillyPillow
faef52e61a
Fix pylint warnings.
2020-07-29 20:55:02 +08:00
WillyPillow
8a4b5e683a
Add suffix for unverified RPMs.
2020-07-29 20:55:02 +08:00
WillyPillow
addb677506
Check for newlines in qrexec arguments & improve error handling.
2020-07-29 20:55:02 +08:00
WillyPillow
73eb4cd08c
Use tqdm for progress bar.
2020-07-29 20:55:02 +08:00
WillyPillow
3d42c988f0
Various cleanup and improvements.
...
- `qvm-template list`: show template state
- `qvm-template list`: only call qubes.TemplateSearch once
- `qvm-template list`: use `qubesadmin.tools.print_table()` instead of own implementation
- `qvm-template download`: custom progress bar
- Use `run_service` instead of own implementation
- Remove some erroneous/redundant lines
2020-07-29 20:55:02 +08:00
WillyPillow
0e8e8d98de
Better way of detecting VM.
2020-07-29 20:55:02 +08:00
WillyPillow
b634c7c785
Initial commit of qvm-template.
...
Refer to <https://gist.github.com/WillyPillow/61ee5f48b7c5b7cc90c9fd2ec5c1b20d >
for previous revisions.
2020-07-29 20:55:02 +08:00
WillyPillow
bab8e699d7
Change "whitelist" to "menu-items" in qvm-features for clarity.
2020-07-29 20:55:02 +08:00
WillyPillow
e8ba117c26
Allow virt_mode other than pv.
2020-07-29 20:55:02 +08:00
WillyPillow
eda68cce6d
Verify values of boolean flags in template config.
2020-07-29 20:55:02 +08:00
WillyPillow
6c7360f25c
Separate whitelist entries with spaces instead of newlines.
2020-07-29 20:55:02 +08:00
WillyPillow
9d9ee6a4b7
Initial support for qvm-template.
2020-07-29 20:55:02 +08:00
Paweł Marczewski
624e4e32fb
Add qubes-guivm-session utility
...
To be used in an xsession file (/usr/share/xsessions).
2020-07-29 12:11:03 +02:00
Paweł Marczewski
c6be7ca5cc
qvm-start-daemon: allow --watch without --all
...
Allow specifying VM names to look for.
2020-07-29 11:35:32 +02:00
Paweł Marczewski
cb7f191bd2
qvm-start-daemon: convert to async/await syntax
2020-07-29 11:27:19 +02:00
Marek Marczykowski-Górecki
4da218c332
Merge remote-tracking branch 'origin/pr/149'
...
* origin/pr/149:
Add admin.vm.volume.Clear call (QubesOS/qubes-issues#5946 )
2020-07-16 04:05:38 +02:00
Marek Marczykowski-Górecki
b99e45f081
Merge remote-tracking branch 'origin/pr/146'
...
* origin/pr/146:
Added dynamic X keyboard event monitoring to qvm_start_daemon.py
Fixes QubesOS/qubes-issues#1396
Fixes QubesOS/qubes-issues#4294
2020-07-15 15:34:07 +02:00
Marta Marczykowska-Górecka
1446a6d7ee
Added dynamic X keyboard event monitoring to qvm_start_daemon.py
...
Update keyboard_layout property whenever guivm's layout changes, instead of
only at the start.
requires QubesOS/qubes-core-admin#350
references QubesOS/qubes-issues#1396
references QubesOS/qubes-issues#4294
2020-07-15 14:04:25 +02:00
Marek Marczykowski-Górecki
6f335800b0
Wrap too long line
2020-07-15 14:01:29 +02:00
Marek Marczykowski-Górecki
470514d0dc
Merge remote-tracking branch 'origin/pr/144'
...
* origin/pr/144:
Clean up the guid-conf file on domain stop
Generate qubes-guid options based on features
2020-07-15 14:00:31 +02:00
WillyPillow
455542ac7f
Add admin.vm.volume.Clear call ( QubesOS/qubes-issues#5946 )
2020-07-14 01:48:19 +08:00
Paweł Marczewski
7616a8913a
Clean up the guid-conf file on domain stop
2020-06-29 12:20:23 +02:00
Paweł Marczewski
3540f04a42
Generate qubes-guid options based on features
...
Allow configuring options per VM or globally per GuiVM. The
qvm-start-daemon program reads the options from VM features, and
generates a configuration file for qubes-guid.
Requires QubesOS/qubes-gui-daemon#47 (customizing the configuration
file).
2020-06-29 12:01:09 +02:00
Frédéric Pierret (fepitre)
f89c4cad56
qvm-start-daemon: common_guid_args is now a staticmethod
2020-06-26 12:18:59 +02:00
Frédéric Pierret (fepitre)
92e87b122e
Handle KDE with specific arg/desktop file
2020-06-24 10:51:39 +02:00
Marek Marczykowski-Górecki
ae39c75867
Merge remote-tracking branch 'origin/pr/140'
...
* origin/pr/140:
use function to determine pacat domid
connect to PA in stubdom if audio-model enabled run pacat in low latency mode by default
2020-06-20 05:01:59 +02:00
Marek Marczykowski-Górecki
9d6b7257c4
tools/qvm-start-daemon: reduce required permissions to sys-gui itself
...
Do not require permission to list sys-gui itself just to get keyboard
layout. Listing itself is not sensitive (sys-gui knows it exists), but
it will make other tools request its properties, which may not be
desirable.
2020-06-16 15:58:57 +02:00
Dmitry Fedorov
d99045f05e
use function to determine pacat domid
2020-05-31 21:11:33 +03:00
Dmitry Fedorov
ec90829695
connect to PA in stubdom if audio-model enabled
...
run pacat in low latency mode by default
2020-05-29 12:07:38 +03:00
Marek Marczykowski-Górecki
b1453953f9
Merge remote-tracking branch 'origin/pr/139'
...
* origin/pr/139:
Added a safeguard for invalid firewall rules
2020-05-27 04:18:20 +02:00
Marek Marczykowski-Górecki
c081ed8c82
Enable caching in qvm-ls and qvm-prefs
...
Both tools issue a large number of Admin API calls and greatly benefit
from a cache filled with a single per-vm Admin API call
(admin.vm.property.GetAll). In case of qvm-ls, this also saves multiple
admin.vm.CurrentState calls (power state is given in the admin.vm.List
response too).
QubesOS/qubes-issues#3293
2020-05-22 19:28:51 +02:00
Marta Marczykowska-Górecka
d2f4a4533a
Added a safeguard for invalid firewall rules
...
Firewall rule cannot be missing value in declaration
(e.g. 'dsthost=' is not a valid rule).
fixes QubesOS/qubes-issues#5772
2020-05-16 12:18:13 +02:00
Marek Marczykowski-Górecki
83b1fc6c58
tools/qvm-volume import: do not retrieve old size anymore
...
Since admin.vm.volume.ImportWithSize method is used now, there is no
need to retrieve old size anymore (to decide whether to resize or not).
2020-05-10 03:57:28 +02:00
Marek Marczykowski-Górecki
65dcee424a
Make pylint happy
...
New pylint reports (duplicated?) warning signature-differs in addition
to arguments-differ. Ignore this one too.
2020-05-10 03:21:40 +02:00
Marek Marczykowski-Górecki
4971faa462
Merge remote-tracking branch 'origin/pr/118'
...
* origin/pr/118:
qvm-start-daemon: adjust pacat pid file path
qvm-start-daemon: check if layout is parsed
qvm-start-daemon: allow multiple options in keyboard layout
qvm-start-daemon: improve parsing args for setting keyboard layout
qvm-start-daemon: set keyboard-layout only for the first set layout
gui: set keyboard layout when starting daemon
daemon: start it for dom0 unconditionnaly
qvm-start-daemon: ensure separate task between GUI/AUDIO
qvm-start-daemon: allow starting only if service enabled
Fix and improvements from Marek's comments
Change qvm-start-gui to qvm-start-daemon for handling audio too
Support for AudioVM
2020-04-09 05:24:26 +02:00
Rusty Bird
f9ee7f5816
collections.Callable -> collections.abc.Callable
...
"Deprecated since version 3.3, will be removed in version 3.10"
- https://docs.python.org/3/library/collections.html
2020-04-07 21:30:54 +00:00
Frédéric Pierret (fepitre)
e87559b318
qvm-start-daemon: adjust pacat pid file path
2020-04-07 23:12:09 +02:00
Frédéric Pierret (fepitre)
e39f280405
qvm-start-daemon: check if layout is parsed
2020-03-28 17:33:04 +01:00
Frédéric Pierret (fepitre)
2e72f75611
qvm-start-daemon: allow multiple options in keyboard layout
2020-03-28 17:33:03 +01:00
Frédéric Pierret (fepitre)
023d94a0b3
qvm-start-daemon: improve parsing args for setting keyboard layout
2020-03-28 17:33:03 +01:00
Frédéric Pierret (fepitre)
c13097d458
qvm-start-daemon: set keyboard-layout only for the first set layout
2020-03-28 17:33:03 +01:00
Frédéric Pierret (fepitre)
c58e5b8eb8
gui: set keyboard layout when starting daemon
2020-03-28 17:33:03 +01:00
Frédéric Pierret (fepitre)
526c862b5d
daemon: start it for dom0 unconditionnaly
2020-03-28 17:33:03 +01:00
Frédéric Pierret (fepitre)
49957971ff
qvm-start-daemon: ensure separate task between GUI/AUDIO
2020-03-28 17:33:03 +01:00
Frédéric Pierret (fepitre)
05e479cf92
qvm-start-daemon: allow starting only if service enabled
2020-03-28 17:33:03 +01:00
Frédéric Pierret (fepitre)
f7fa577c47
Fix and improvements from Marek's comments
2020-03-28 17:33:03 +01:00
Frédéric Pierret (fepitre)
0e049e682a
Change qvm-start-gui to qvm-start-daemon for handling audio too
2020-03-28 17:33:02 +01:00
Frédéric Pierret (fepitre)
6d9e5bbf07
Support for AudioVM
2020-03-28 17:33:02 +01:00
Marek Marczykowski-Górecki
c43407d28d
Merge remote-tracking branch 'origin/pr/135'
...
* origin/pr/135:
Added an option to qvm-firewall to reset all rules
2020-03-10 03:11:26 +01:00
Marta Marczykowska-Górecka
97ab1d7adf
Added an option to qvm-firewall to reset all rules
...
Rules will be reset to a single 'accept' line, which is something
that the GUI tools like. It's an easy way to get out of CLI firewall
modifications if someone wants to go back to using GUI for them.
fixes QubesOS/qubes-issues#4710
2020-02-24 14:58:53 +01:00
Marek Marczykowski-Górecki
0120e32340
Merge remote-tracking branch 'origin/pr/130'
...
* origin/pr/130:
Added explicit 'force' option to qvm-shutdown
Added force shutdown option to vm.shutdown
2020-02-07 04:35:22 +01:00
Marek Marczykowski-Górecki
9b70e54719
Merge remote-tracking branch 'origin/pr/134'
...
* origin/pr/134:
qvm-kill: make error message more clear
qvm-kill: ignore already off domains
2020-01-31 15:01:26 +01:00
Pawel Marczewski
bcb91594b2
qvm-kill: make error message more clear
...
See QubesOS/qubes-issues#5607 .
2020-01-31 11:26:57 +01:00
Pawel Marczewski
b8d1884cb1
qvm-kill: ignore already off domains
...
See QubesOS/qubes-issues#5607 .
2020-01-31 11:26:54 +01:00
Marta Marczykowska-Górecka
5c94c72ecd
Added explicit 'force' option to qvm-shutdown
2020-01-29 19:51:04 +01:00
Marta Marczykowska-Górecka
2be77f58b3
Added force shutdown option to vm.shutdown
...
Furthermore makes qvm-shutdown --all use that option to force
shutdown and avoid unnecessary errors.
requires https://github.com/QubesOS/qubes-core-admin/pull/312
fixes QubesOS/qubes-issues#5591
fixes QubesOS/qubes-issues#4572
2020-01-29 19:35:29 +01:00
Pawel Marczewski
ff9b81cc3e
qvm-run: use qubes.VMExec, if available
...
See QubesOS/qubes-issues#4850 .
2020-01-24 18:40:11 +01:00
Marek Marczykowski-Górecki
47188a38e5
Merge remote-tracking branch 'origin/pr/128'
...
* origin/pr/128:
Import data using ImportWithSize call, not manual resizing
Fixes QubesOS/qubes-issues#5239
2020-01-24 01:49:04 +01:00
Pawel Marczewski
9cf05e5180
Import data using ImportWithSize call, not manual resizing
...
See the API call in QubesOS/qubes-core-admin#309 .
2020-01-23 10:29:50 +01:00
Pawel Marczewski
bf78aebf7c
qvm-remove: improve error message
...
The code assumes that QubesVMInUseError is thrown for a failed
dependency check, but there are also other reasons. We need to
handle the case when dependency list is empty, and also display
the original message.
See also QubesOS/qubes-core-admin#308 for which this was needed.
2020-01-21 15:54:18 +01:00
Marek Marczykowski-Górecki
204c33afd1
Merge remote-tracking branch 'origin/pr/127'
...
* origin/pr/127:
qvm-shutdown: report errors, don't crash on DispVMs
2020-01-17 05:06:18 +01:00
Marek Marczykowski-Górecki
31db7ecbc0
Merge remote-tracking branch 'origin/pr/124'
...
* origin/pr/124:
Add missing docstrings
Add a test for vm.get_mem()
Update tests to mock admin.vm.CurrentState
qvm-ls: display memory as integer number
Use admin.vm.CurrentState method for power state and memory
Fixes QubesOS/qubes-issues#5166
2020-01-17 04:54:33 +01:00
Pawel Marczewski
405464a67e
qvm-shutdown: report errors, don't crash on DispVMs
...
qvm-shutdown with the --wait option checks if the machine
state is 'Halted', but a disposable VM is usually deleted by
the time of the final check, resulting in a non-zero exit code.
This change handles properly disposable VMs, and makes sure
we always output an error message when finishing with a non-zero
exit code.
Fixes QubesOS/qubes-issues#5245 .
2020-01-16 12:38:10 +01:00
Pawel Marczewski
0659e372ee
qvm-ls: display memory as integer number
2020-01-15 17:32:24 +01:00
Pawel Marczewski
b112ef250d
qvm-ls: don't exclude dom0 when using --all
...
Fixes QubesOS/qubes-issues#5248 .
2020-01-15 14:16:45 +01:00
Frédéric Pierret (fepitre)
6b5e695f15
prefs: handle 'none' value for guivm
2019-11-10 10:12:58 +01:00
Marek Marczykowski-Górecki
6e76d1c928
Merge remote-tracking branch 'origin/pr/111'
...
* origin/pr/111:
Add tests for --tree option of qvm-ls
Sort domains in network tree list
network tree manpage entry added
added feature to list domains as network tree
2019-11-09 15:26:59 +01:00
Rot127
e5d4cd1e2c
Sort domains in network tree list
2019-11-08 00:15:27 +01:00
Saswat Padhi
28321ddac1
Preserve backward compatibility
2019-11-04 00:57:21 -08:00
Saswat Padhi
5da0216b94
Fixed a bug and removed unused import
2019-11-03 05:02:21 -08:00
Saswat Padhi
434d8c60bd
Improvements to qvm-pool argument parser
...
This change introduces a complete rewrite of the argument parser for the `qvm-pool` tool.
As suggested by @marmarek in qubes-issues#5407, the goal is to be consistent with other tools such as `qvm-device`, `qvm-volume` etc.
(resolves QubesOS/qubes-issues#5407 )
2019-11-03 04:06:43 -08:00
Rot127
566aefd352
added feature to list domains as network tree
2019-11-01 17:16:43 +01:00
Frédéric Pierret (fepitre)
03bc15dd38
app: switch get_local_name method to property
2019-10-20 21:19:16 +02:00
Frédéric Pierret (fepitre)
411e2884cc
qvm-start-gui: simplify log info for start_gui function
2019-10-20 16:07:27 +02:00
Frédéric Pierret (fepitre)
e63510b4cf
guivm: use getattr instead of try/except and direct property access
2019-10-20 15:43:34 +02:00
Frédéric Pierret (fepitre)
6b4a99f83f
qvm-start-gui: handle GuiVM
2019-10-20 15:37:57 +02:00
Frédéric Pierret (fepitre)
a5102d752f
Make PEP8 happier
2019-10-20 13:31:40 +02:00
Marek Marczykowski-Górecki
2d736f5aa8
Make pylint happy
2019-10-05 21:57:48 +02:00
Marek Marczykowski-Górecki
e8c48ff7c8
tools/qvm-start-gui: avoid starting a VM just to send it monitor layout
...
If the VM is powered off shortly after startup, it may happen that
qubes.SetMonitorLayout would start it again. Avoid this by using
autostart=False argument to run_service() function.
Note that there is a vm.is_running() check at the beginning of the
function already, but if it happens while the VM is cleaned up, it may
still report that it's running, but at the time of run_service() call it
is not.
2019-09-26 19:21:13 +02:00
Marek Marczykowski-Górecki
556cec4e3f
Merge remote-tracking branch 'origin/pr/104'
...
* origin/pr/104:
dochelpers: make PEP8 happier
dochelpers: handle legacy sphinx library
Fix Sphinx 2 new API for Fedora 31+
2019-09-21 03:34:27 +02:00
Marek Marczykowski-Górecki
14f77860bf
backup/restore: add option to use uncommon compression filter anyway
...
Previous commit introduced protection against uncommon (potentially
malicious) compression filters. This breaks restoring backups made with
a custom compression filter. Add an option to override this check, by
naming compression filter to use explicitly.
2019-09-10 15:24:15 +02:00
Frédéric Pierret (fepitre)
3ddeb2046a
dochelpers: make PEP8 happier
2019-09-06 16:29:56 +02:00
Frédéric Pierret (fepitre)
6df676c259
dochelpers: handle legacy sphinx library
2019-09-06 16:29:52 +02:00