Go to file
Marek Marczykowski-Górecki 9acce13a35
tools: fix qvm-run --pass-io --localcmd=... vmname command
qubes.VMShell service, used by qvm-run, expects the command on the first
input line. Previously, when --localcmd was used, the command wasn't
written anywhere and the local command was connected directly to
qubes.VMShell service. And the first line of its output was interpreted
as a command.

Fix this by starting the local command separately, after sending the
command to qubes.VMShell service.

While at it, unify handling shell command and service calls in the process.
vm.run_service(..., localcmd= ) isn't that useful in general case,
because for qubes.VMShell the caller first need to send the command
before starting local process. Since the qvm-run tool needs to implement
manual starting localcmd anyway, don't use localcmd= run_service's
argument at all to unify calling methods.

There is slight behavior change: previously localcmd was started only
after establishing service connection (for example only if qrexec policy
allows), now it is started in all the cases.

Fixes QubesOS/qubes-issues#4040
2018-12-08 00:44:02 +01:00
ci Move pylint config to canonical place 2018-09-18 16:47:58 +02:00
debian version 4.0.22 2018-10-29 05:45:34 +01:00
doc qvm-ls: add filtering by domain power state 2018-10-10 20:06:35 +02:00
etc Fix qvm-start-gui autostart script 2017-05-19 17:30:11 +02:00
qubesadmin tools: fix qvm-run --pass-io --localcmd=... vmname command 2018-12-08 00:44:02 +01:00
rpm_spec rpm: fix building on fc29 2018-10-07 02:47:35 +02:00
test-packages Rename qubesmgmt to qubesadmin module 2017-05-11 23:40:03 +02:00
.gitignore .gitignore: add doc/_build/ 2018-05-03 01:03:27 +02:00
.pylintrc Move pylint config to canonical place 2018-09-18 16:47:58 +02:00
.travis.yml Move pylint config to canonical place 2018-09-18 16:47:58 +02:00
LICENSE Initial commit 2017-03-01 23:48:53 +01:00
Makefile Add 'make clean' target, use it for Debian build 2018-04-13 01:12:06 +02:00
Makefile.builder debian: initial packaging 2017-05-20 03:15:23 +02:00
README.md Update documentation link in readme 2017-05-12 00:13:01 +02:00
run-tests Rename qubesmgmt to qubesadmin module 2017-05-11 23:40:03 +02:00
setup.py replace console entry points with just importing the module 2017-11-10 16:31:45 +01:00
version version 4.0.22 2018-10-29 05:45:34 +01:00

This is client side implementation of Qubes Admin API. See https://www.qubes-os.org/doc/admin-api/ for protocol specification.

Compatibility

Most of the API modules are compatible with Python >= 2.7. Very few parts require Python >= 3.4:

  • tools (qvm-*)
  • qubesadmin.events module (for asyncio module)

Parts not compatible with Python < 3.4, are not installed in such environment.