Commit Graph

201 Commits

Author SHA1 Message Date
Marek Marczykowski-Górecki
3edbc85282
Add DeviceAlreadyAttached exception 2017-05-20 16:40:33 +02:00
Marek Marczykowski-Górecki
d1387a93b3
rpm: fix dependencies for python2-qubesadmin package
In Fedora it's python-daemon, not python2-daemon.
2017-05-20 03:44:40 +02:00
Marek Marczykowski-Górecki
d7671e4856
debian: initial packaging 2017-05-20 03:15:23 +02:00
Marek Marczykowski-Górecki
38abd81ea8
tools: add qvm-run --service
Make it convenient wrapper around qrexec-client{-vm}, which would start
a VM, wait for user session etc.
2017-05-20 03:15:23 +02:00
Marek Marczykowski-Górecki
f5e102177c
Add vm.is_networked() 2017-05-19 18:41:08 +02:00
Marek Marczykowski-Górecki
938fc9348f
Add 'wait' argument to vm.run_service()
It is supported only from dom0, but it's still useful to have, to save
on simultaneous vchan connections (only waiting for MSG_DATA_EXIT_CODE).
This is especially important for Windows VMs, as qrexec-agent there have
pretty low limit on simultaneous connections (about 20).

Make qvm-run use it.
2017-05-19 18:41:07 +02:00
Marek Marczykowski-Górecki
bbd0beb830
Fix qvm-start-gui autostart script 2017-05-19 17:30:11 +02:00
Marek Marczykowski-Górecki
8686ef423a
tools/qvm-run: exit the shell after executing requested command
Since we use qubes.VMShell service now and send requested command on its
stdin, we need to terminate that shell after requested command -
otherwise the service will not terminate automatically waiting for
further input (next commands).
2017-05-18 09:54:26 +02:00
Marek Marczykowski-Górecki
d0bcd3ead2
vm: add TemplateVM.appvms property - list of VMs based on it 2017-05-18 09:51:58 +02:00
Marek Marczykowski-Górecki
024ac6a810
tools/qvm-run: fix waiting for session
Register SIGCHLD signal handler later - do not stop data processing when
qubes.WaitForSession service exits.
2017-05-18 09:50:50 +02:00
Marek Marczykowski-Górecki
7f5fc6ac3d
tools: fix handling single optional VM name 2017-05-18 09:50:25 +02:00
Marek Marczykowski-Górecki
ee81902979
features: fix serialization
qubesd_call expect "bytes" type. Additionally serialize false value as
empty string (which is treated by python as false value), because
otherwise would be serialized to (non-empty) string, which is true value
in python.
2017-05-18 09:48:18 +02:00
Marek Marczykowski-Górecki
3217d8af6f
travis: enable deploy script, switch to 4.0 repos
Enable master-staging -> master update
Use new "Build Stages" Travis-CI feature, to deploy only after _all_
tests complete.
2017-05-17 13:42:13 +02:00
Marek Marczykowski-Górecki
116c45071f
Make pylint happy 2017-05-17 13:20:59 +02:00
Marek Marczykowski-Górecki
45cbbf5e1d
tools/qvm-run: use print instead of logging
Do not color qvm-run diagnostic messages, but also avoid ANSI control
sequences in logs. While at it, do not print 'Running ...' message when
--pass-io is used.
2017-05-17 11:14:00 +02:00
Marek Marczykowski-Górecki
2d7ca9f95e
tools/qvm-run: wait for user session unless qvm-run --no-gui is used
Avoid race condition with X server startup, especially important for
qvm-run --autostart.
2017-05-17 11:07:48 +02:00
Marek Marczykowski-Górecki
210876bd8f
tools/qvm-run: use subproces.DEVNULL instead of manually opened /dev/null 2017-05-17 11:06:56 +02:00
Marek Marczykowski-Górecki
f386d45695
vm: fix run_service error reporting
qubesadmin.exc.QubesVMError (in contrast to qubesa.exc.QubesVMError)
does not take VM instance as first argument.
2017-05-17 01:32:27 +02:00
Marek Marczykowski-Górecki
88b559d985
Invalidate domains cache when received an event affecting it
When events handling is enabled, use it for cache invalidation too.
2017-05-13 14:55:26 +02:00
Marek Marczykowski-Górecki
57b87da9d1
tools/qvm-start-gui: fix cat-induced typo
<^-^>
2017-05-12 19:43:59 +02:00
Marek Marczykowski-Górecki
cfc9ff2ce5
Rename Mgmt API to Admin API: methods names
QubesOS/qubes-issues#853
2017-05-12 19:36:03 +02:00
Marek Marczykowski-Górecki
cf0cf57e7c
Install actual scripts stubs
Since core-admin no longer install them, this package finally can
provide them without conflicts.
2017-05-12 00:16:26 +02:00
Marek Marczykowski-Górecki
6c47765884
Update documentation link in readme 2017-05-12 00:13:01 +02:00
Marek Marczykowski-Górecki
f4d6ac2880
Include tools also on python 3.4
This result only in small limitation in qvm-start-gui tool, but allow
to use the tools from Debian jessie based VM (python 3.4.2).
2017-05-11 23:57:48 +02:00
Marek Marczykowski-Górecki
4ceff0f8c0
Rename qubesmgmt to qubesadmin module
QubesOS/qubes-issues#853
2017-05-11 23:40:03 +02:00
Marek Marczykowski-Górecki
78c28a70e9
Add missing docstrings 2017-05-11 21:13:57 +02:00
Marek Marczykowski-Górecki
1b7a58b84b
rpm: plug man pages building into rpm 2017-05-11 21:13:57 +02:00
Marek Marczykowski-Górecki
54d992f727
doc: import man pages
Most of them are moved from core-admin repository, even if tool is not
implemented yet. Some are generated using skel-manpage.py script.
This way we have complete man pages list, and sphinx will properly
warn/error about inconsistencies.
2017-05-11 21:13:57 +02:00
Marek Marczykowski-Górecki
39a888df4d
tools: minor fixes for documentation building 2017-05-11 21:13:57 +02:00
Marek Marczykowski-Górecki
d3439694c8
tools: fix get_parser_for_command 2017-05-11 21:13:56 +02:00
Marek Marczykowski-Górecki
70e04eddf8
doc: Sphinx config skeleton
Some parts (especially in qubesmgmt/dochelpers.py) copied from
core-admin repo.
2017-05-11 21:13:56 +02:00
Marek Marczykowski-Górecki
812e28c97f
tools: qvm-firewall
The tool and tests.

Use '-' for empty fields in the table, to work also with old 'column'
program version, which doesn't support empty table fields.
2017-05-01 02:34:23 +02:00
Marek Marczykowski-Górecki
0d49ba2710
firewall: add firewall API
To keep API compatibility with core-admin, most data structures are
copied from there.
2017-05-01 02:21:07 +02:00
Marek Marczykowski-Górecki
206f1a7c5b
tests: make tests not fail with substituted sys.stdout
At best lets skip tests in such a case.
2017-04-30 22:54:20 +02:00
Marek Marczykowski-Górecki
09acf4729b
tests: import assertNotRaises() from core-admin 2017-04-30 22:53:43 +02:00
Marek Marczykowski-Górecki
d5bf5a1d75
tools: qvm-device
The tool and tests.
2017-04-30 15:31:41 +02:00
Marek Marczykowski-Górecki
6f46faba6c
README: add note about python version compatibility 2017-04-30 15:21:04 +02:00
Marek Marczykowski-Górecki
cdb9205eef
tests: make Std{err,out}Buffer context managers stackable
Allow use StdoutBuffer context manager inside another similar context
manager. This allows running the tests by a test runner which collect
the output using similar trick.
2017-04-30 15:21:04 +02:00
Marek Marczykowski-Górecki
54dcec2cf5
devices: add devices API wrappers 2017-04-30 15:21:04 +02:00
Marek Marczykowski-Górecki
14ba770c1a
base: handle default method destination
Will ease vm.qubesd_call usage.
2017-04-29 02:27:40 +02:00
Marek Marczykowski-Górecki
9aa2427513
tools: fix license header for qvm-ls 2017-04-29 01:18:38 +02:00
Marek Marczykowski-Górecki
8ce10168ef
tools: qvm-clone
The tool and tests.
2017-04-29 01:18:37 +02:00
Marek Marczykowski-Górecki
1db4e3abea
tests: add QubesLocal/QubesRemote tests
Lets also test basic communication primitives. `mock` python module
makes it _much_ easier, so lets use it also on python2 - requiring
backported version installed.
2017-04-29 01:18:37 +02:00
Marek Marczykowski-Górecki
786bb7d94f
tests: add clone_vm tests
Also put non-VMCollection related tests into separate class.
2017-04-29 01:18:37 +02:00
Marek Marczykowski-Górecki
cb87cfa824
app: add clone_vm function
This differ from main core-admin API, because Admin API do not expose
separate `create_on_disk()`/`clone_disk_files()` functions. When this is
a single operation, `add_new_vm()` cannot be repurposed to clone VM.
2017-04-29 01:18:36 +02:00
Marek Marczykowski-Górecki
2efe8405b7
app: fix QubesRemote.run_service
When no localcmd is given, it should only affect last argument(s) of
qrexec-client-vm call, not the whole command.
2017-04-29 01:18:36 +02:00
Marek Marczykowski-Górecki
b8a8394d2d
app: fix FD leak 2017-04-29 01:18:36 +02:00
Marek Marczykowski-Górecki
6e84422062
tools: minor fix for qvm-check 2017-04-29 01:18:36 +02:00
Marek Marczykowski-Górecki
b61844ae5d
tools: add qvm-create
The tool and tests.
2017-04-29 01:18:35 +02:00
Marek Marczykowski-Górecki
04593b273d
app: add get_label, get_vm_class and add_new_vm methods 2017-04-29 01:18:35 +02:00