Marek Marczykowski-Górecki
2c115bb648
mgmt: allow functions to return None if no data is to be returned
...
Don't force `return ''` everywhere.
QubesOS/qubes-issues#2622
2017-03-17 12:49:28 +01:00
Marek Marczykowski-Górecki
f7eabf8eb0
tools/qubesd: do not close connection before sending response
...
eof_received callback should return True, if connection should not be
automatically closed just after returning from it.
2017-03-16 20:04:01 +01:00
Wojtek Porczyk
4a247b1b1b
Merge remote-tracking branch 'origin/pull/90/head' into core3-devel
2017-03-02 13:19:57 +01:00
Wojtek Porczyk
c2a0d34ade
pylint: do not interpret asyncio.ensure_future compat hack
2017-03-01 18:30:49 +01:00
Wojtek Porczyk
865ab10a0c
qubesd+mgmt: convert mgmt functions to coroutines
...
QubesOS/qubes-issues#2622
2017-03-01 17:31:37 +01:00
Marek Marczykowski-Górecki
2169075807
qubesd: fix response message header
...
Type is not 16 bit big-endian. Encode it as 8bit code and \x00 as
delimiter explicitly.
QubesOS/qubes-issues#853
2017-02-27 21:43:14 +01:00
Marek Marczykowski-Górecki
f4616fc366
qubesd: make qubesd socket qubes-group owned
...
QubesOS/qubes-issues#853
2017-02-27 21:42:06 +01:00
Marek Marczykowski-Górecki
33416f2549
qmemman: update for py3k
...
This just make the code compatible with py3k, but nothing more.
Converting to asyncio is probably the next step.
2017-02-27 02:37:49 +01:00
Wojtek Porczyk
be53db4db9
qubes/events: they accept only keyword arguments
...
Positional arguments are hereby deprecated, with immediate effect.
QubesOS/qubes-issues#2622
2017-02-21 14:46:42 +01:00
Wojtek Porczyk
48f10a79c9
qubes/tools/qubesd: add response header
...
QubesOS/qubes-issues#2622
2017-02-21 14:46:42 +01:00
Wojtek Porczyk
25d81b8ab6
Merge remote-tracking branch 'origin/pull/88/head' into core3-devel
2017-02-15 12:17:41 +01:00
Marek Marczykowski-Górecki
e50b17a6b3
tools/qvm-features: make pylint happy
...
reduce number of return statements.
2017-02-15 00:01:33 +01:00
Marek Marczykowski-Górecki
0c43329188
tools/qvm-features: fix handling empty list of features
2017-02-15 00:01:33 +01:00
Marek Marczykowski-Górecki
98edc9779c
tools/qvm-features: fix domain argument handling
...
It's args.domains[0], not args.vm.
2017-02-15 00:01:33 +01:00
Wojtek Porczyk
e8a5bc9b36
qubesd: improve exception handling
...
QubesOS/qubes-issues#2622
2017-02-10 23:25:45 +01:00
Wojtek Porczyk
249d8c08e2
qubes/tools/qubesd-query: low-level interrogation tool
2017-02-10 23:25:45 +01:00
Wojtek Porczyk
c12fc744a2
qubes/mgmt: move mgmt api to separate module
...
QubesOS/qubes-issues#2622
2017-02-09 23:29:05 +01:00
Wojtek Porczyk
5d455ac3c4
misc pylint fixes related to qubesd
2017-02-08 15:37:39 +01:00
Wojtek Porczyk
0be3b1fbb1
qubes/tools/qubesd: initial version
2017-02-07 17:07:53 +01:00
Wojtek Porczyk
d74567d65f
qubes: port core to python3
...
fixes QubesOS/qubes-issues#2074
2017-01-20 16:42:51 +01:00
Wojtek Porczyk
25912f5787
qubes/tools: add qvm-tags
...
QubesOS/qubes-issues#865
2016-12-02 14:17:09 +01:00
Marek Marczykowski-Górecki
210cb65d1c
qubes/tools: drop requirement of qubes-prefs --force-root
...
None of properties set there do any "dangerous thing" for filesystem
permissions (at least for now), so do not require it. This is mostly to
keep compatibility with %post rpm scripts (kernel-qubes-vm at least).
QubesOS/qubes-issues#2412
2016-11-26 04:08:59 +01:00
Marek Marczykowski-Górecki
02a0713665
qubes/tools: better handle qvm-template-postprocess called as root
...
This tool by design is called as root, so try to:
- switch to normal user if possible
- fix file permissions afterwards - if not
QubesOS/qubes-issues#2412
2016-11-26 04:08:58 +01:00
Marek Marczykowski-Górecki
e85b0663f6
tools: fire 'template-postinstall' event for extensions
...
Allow extensions to finish template setup. This include retrieving
appmenus, settings defaults etc.
QubesOS/qubes-issues#2412
2016-11-26 04:08:58 +01:00
Marek Marczykowski-Górecki
c4e85a81fb
qubes/app: automatically enable offline mode when running in chroot
...
Do not spray --offline-mode over every installer-related script.
QubesOS/qubes-issues#2412
2016-11-26 04:08:50 +01:00
Marek Marczykowski-Górecki
d8a1216daf
Fix qubes-create in offline mode
...
QubesOS/qubes-issues#2412
2016-11-26 04:08:09 +01:00
Marek Marczykowski-Górecki
5e15db4176
qubes/tools: accept qvm-start --no-guid
...
Lets keep compatibility with older scripts.
QubesOS/qubes-issues#2412
2016-11-26 04:08:08 +01:00
Marek Marczykowski-Górecki
badc58837a
Add qvm-template-postprocess tool
...
This is intended to call to finish template installation/removal.
Template RPM package is basically container for root.img, nothing more.
Other parts needs to be generated after root.img extraction. Previously
it was open coded in rpm post-install script, but lets keep it as qvm
tool to ease supporting multiple version in template builder
QubesOS/qubes-issues#2412
2016-11-26 04:08:08 +01:00
Marek Marczykowski-Górecki
cc440c62f6
qubes/tools: accept properties with '-'
...
'-' is invalid character in python identifier, so all the properties
have '_'. But in previous versions qvm-* tools accepted names with '-',
so lets not break this.
QubesOS/qubes-issues#2412
2016-11-26 04:08:07 +01:00
Marek Marczykowski-Górecki
880566a387
qubes/tools: do not reject --set/--get in *-prefs tools
...
Those options are no longer needed, but lets not reject them to preserve
compatibility with older scripts
QubesOS/qubes-issues#2412
2016-11-26 04:08:07 +01:00
Marek Marczykowski-Górecki
b59463e8e8
qvm-block: fix listing non-internal volumes
...
In case of LVM (at least), "internal" flag is initialized only when
listing volume attached to given VM, but not when listing them from the
pool. This looks like a limitation (bug?) of pool driver, it looks like
much nicer fix is to handle the flag in qvm-block tool (which list VMs
volumes anyway), than in LVM storage pool driver (which would need to
keep second copy of volumes list - just like file driver).
QubesOS/qubes-issues#2256
2016-11-04 14:18:56 +01:00
Marek Marczykowski-Górecki
0471453773
storage/lvm: call lvm
directly, don't use qubes-lvm wrapper
...
The wrapper doesn't do anything else than translating command
parameters, but it's load time is significant (because of python imports
mostly). Since we can't use python lvm API from non-root user anyway,
lets drop the wrapper and call `lvm` directly (or through sudo when
necessary).
This makes VM startup much faster - storage preparation is down from
over 10s to about 3s.
QubesOS/qubes-issues#2256
2016-11-04 14:18:55 +01:00
Wojtek Porczyk
526f2c3751
Merge remote-tracking branch 'marmarek/core3-backup' into core3-devel
2016-10-14 15:29:37 +02:00
Wojtek Porczyk
d7d926edaa
Fix manpage generation
2016-10-04 11:32:04 +02:00
Marek Marczykowski-Górecki
533804ebdc
Make pylint happy ♥
2016-09-21 16:39:06 +02:00
Marek Marczykowski-Górecki
96a4bb650b
qubes/tools: qvm-backup and qvm-backup-restore tools
...
Fixes QubesOS/qubes-issues#1213
Fixes QubesOS/qubes-issues#1214
2016-09-21 16:02:50 +02:00
Marek Marczykowski-Górecki
d4f29bb8b7
qubes: add qvm-firewall tool
...
Fixes QubesOS/qubes-issues#1815
2016-09-19 20:36:32 +02:00
Marek Marczykowski-Górecki
141128e768
qubes/tools: fix 'column' input formating
...
Include '\n' at the last line too. Otherwise the tool (depending on
version) will complain about truncated line ('line too long').
2016-09-13 01:22:24 +02:00
Marek Marczykowski-Górecki
16db68b053
Merge branch 'core3-devices' into core3-devel
...
* core3-devices:
Fix core2migration and tests for new devices API
tests: more qubes.devices tests
qubes/ext/pci: implement pci-no-strict-reset/BDF feature
qubes/tools: allow calling qvm-device as qvm-devclass (like qvm-pci)
qubes: make pylint happy
qubes/tools: add qvm-device tool (and tests)
tests: load qubes.tests.tools.qvm_ls
tests: PCI devices tests
tests: add context manager to catch stdout
qubes/ext/pci: move PCI devices handling to an extension
qubes/devices: use more detailed exceptions than just KeyError
qubes/devices: allow non-persistent attach
qubes/storage: misc fixes for VM-exposed block devices handling
qubes: new devices API
Fixes QubesOS/qubes-issues#2257
2016-09-04 21:32:01 +02:00
Marek Marczykowski-Górecki
ae72e294cd
Merge remote-tracking branch 'qubesos/pr/52' into core3-devel
...
* qubesos/pr/52:
qvm-block extend Fix help message
Fix a few typo bugs in qubes.storage.lvm
qvm-block extends volumes to NEW_SIZE
Make pylint happy ♥ qubes.storage.lvm
Fix ThinVolume _size access
qvm-block extend use qubes.utils.parse_size
Make pylint happy ♥ qubes_lvm
Fix lvm size/usage
Add ThinPool.resize()
Document qubes-block extend command in the manpage
Fix file storage resize
qvm-block add extend sub command
qvm-block refactor attach/detach sub_parser init
2016-09-04 21:21:43 +02:00
Marek Marczykowski-Górecki
dc3dd1f5e9
Merge remote-tracking branch 'qubesos/pr/53' into core3-devel
...
* qubesos/pr/53:
Fix qvm-block lists internal volumes on non default pools
2016-09-04 21:11:27 +02:00
Marek Marczykowski-Górecki
6cb624daf3
Merge remote-tracking branch 'qubesos/pr/51' into core3-devel
...
* qubesos/pr/51:
Make pylint happy ♥ qubes.storage.lvm
Fix lvm AppVM startup from lvm
qubes.storage.lvm.qubes_lvm use debug not info
Fix qvm-create lvm based AppVM
qvm-block & qvm-pool add better Exception handling
Remove unexpected property
qvm-start --debug don't catch exceptions
2016-09-04 21:02:19 +02:00
Bahtiar `kalkin-` Gadimov
5f586a99d4
qvm-block extend Fix help message
2016-09-04 21:01:16 +02:00
Marek Marczykowski-Górecki
c15dc0a392
tools/qvm_block: add missing column header
...
QubesOS/qubes-issues#2256
2016-09-04 20:59:37 +02:00
Marek Marczykowski-Górecki
4d327fbc95
qubes/tools: allow calling qvm-device as qvm-devclass (like qvm-pci)
...
Tool can be symlinked to `qvm-class` for particular device class (for
example `qvm-pci`) - then device class can be omitted.
QubesOS/qubes-issues#2257
2016-09-03 20:41:05 +02:00
Marek Marczykowski-Górecki
e8d011b83f
qubes/tools: add qvm-device tool (and tests)
...
Add a tool to manipulate various devices.
QubesOS/qubes-issues#2257
2016-09-03 20:41:05 +02:00
Marek Marczykowski-Górecki
4bfb523974
tests: add context manager to catch stdout
...
This will avoid code duplication in tools tests.
2016-09-03 20:41:03 +02:00
Bahtiar `kalkin-` Gadimov
dcfc47fefe
qvm-block extends volumes to NEW_SIZE
2016-09-02 19:57:13 +02:00
Bahtiar `kalkin-` Gadimov
1cf701ff60
qvm-block extend use qubes.utils.parse_size
2016-09-02 19:21:04 +02:00
Bahtiar `kalkin-` Gadimov
818ed20248
Make pylint happy ♥ qubes_lvm
2016-09-02 19:17:00 +02:00
Bahtiar `kalkin-` Gadimov
bbcf16410c
Fix qvm-block lists internal volumes on non default pools
2016-08-29 17:39:49 +02:00
Bahtiar `kalkin-` Gadimov
0561dfce60
Add ThinPool.resize()
2016-08-29 00:13:50 +02:00
Bahtiar `kalkin-` Gadimov
4733e836ce
qvm-block add extend sub command
2016-08-29 00:09:55 +02:00
Bahtiar `kalkin-` Gadimov
4c65a9c69a
qvm-block refactor attach/detach sub_parser init
2016-08-29 00:09:53 +02:00
Bahtiar `kalkin-` Gadimov
c0f1a6b4e8
qvm-block & qvm-pool add better Exception handling
2016-08-29 00:05:18 +02:00
Bahtiar `kalkin-` Gadimov
8037182dcd
qvm-start --debug don't catch exceptions
2016-08-29 00:05:17 +02:00
Marek Marczykowski-Górecki
a5e575618c
qubes-lvm: drop sudo from lvm calls
...
The script is already running as root
QubesOS/qubes-issues#2256
2016-08-18 11:52:26 +02:00
Marek Marczykowski-Górecki
6bdc82b3a6
qubes-lvm: do not import 'qubes' module
...
This script should run as fast as possible, so avoid importing large
module. In fact the only used thing was argparse wrapper, so switch to
the standard one and drop aliases.
QubesOS/qubes-issues#2256
2016-08-18 11:52:26 +02:00
Marek Marczykowski-Górecki
de5d420331
qubes-lvm: drop unused lvm_image_changed function
...
It tries to parse (untrusted) volume content, so remove it to not use it
accidentally.
QubesOS/qubes-issues#2256
2016-08-18 11:43:01 +02:00
Marek Marczykowski-Górecki
da6faf83bf
qubes/tools: allow unpause multiple domains at once
...
There is no reason to not allow it.
2016-08-09 05:14:13 +02:00
Marek Marczykowski-Górecki
a1e2888e96
qubes/tools: fix messages in qvm-check
2016-08-09 05:14:13 +02:00
Marek Marczykowski-Górecki
d2393f91e8
qubes/tools: adjust qvm-check for core3 API
2016-08-09 05:14:12 +02:00
Marek Marczykowski-Górecki
4d5a314e77
qubes/tools: add hidden --offline-mode options
...
It is useful on some cases to prevent talking to hypervisor.
Warning - it may have sense only when action do not access any runtime
VM status. For example running the domain will fail, but changing its
properties should work.
2016-08-09 05:14:12 +02:00
Marek Marczykowski-Górecki
f17f80ee9d
qubes/tools: add qvm-template-commit
...
This tool is called from /etc/xen/scripts/block-origin script at VM
shutdown.
2016-08-09 05:14:11 +02:00
Marek Marczykowski-Górecki
4e022382a5
Merge remote-tracking branch 'origin/master' into core3-devel
2016-08-08 00:11:46 +02:00
Bahtiar `kalkin-` Gadimov
4477ea9678
Make pylint happy ♥
2016-08-04 17:38:39 +02:00
Bahtiar `kalkin-` Gadimov
ea34c0ed56
Fix volume_exists in qubes_lvm
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
3ae6530cd8
Add lvm thin pool storage implementation
2016-08-03 02:57:42 +02:00
Bahtiar `kalkin-` Gadimov
8972254e22
Add qvm-check
2016-07-21 23:40:24 +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
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
bcf1cfcb1f
Add qvm-clone(1)
2016-07-13 22:35:58 +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
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
5115eef413
qvm-shutdown make pylint happy ♥
2016-07-13 18:09:32 +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
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
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
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
87ae5a3b65
Fix qvm-start
2016-06-21 17:44:35 +02:00
Bahtiar `kalkin-` Gadimov
457c915d03
qvm-create fix access to volume paths
2016-06-21 14:58:11 +02:00
Bahtiar `kalkin-` Gadimov
930fe417a8
Remove storage size and usage methods from QubesVM
2016-06-16 16:59:26 +02:00
Wojtek Porczyk
6ade5736d7
pylint fixes
2016-06-10 21:27:29 +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