Commit Graph

645 Commits

Author SHA1 Message Date
Jean-Philippe Ouellet
1e3a60e286 Add Ctrl+F as keyboard shortcut to focus search box 2016-12-18 09:40:34 -05:00
Jean-Philippe Ouellet
d2d29c6865 Re-write to avoid leaking fd if flock(2) fails 2016-11-26 21:00:01 -05:00
Jean-Philippe Ouellet
4c4def2876 Avoid potential deadlock
Could happen if exception thrown in open/write while holding flock.
2016-11-26 20:59:49 -05:00
Jean-Philippe Ouellet
a0bb943af9 Implement "Copy Dom0 clipboard" tray menu item
Ctrl+Shift+C would be preferable, but is quite difficult to do safely,
and this method seems like a reasonable security/UX compromise.

Discussed in:
- https://groups.google.com/forum/#!topic/qubes-devel/4_x7Su21i9o
- https://github.com/QubesOS/qubes-issues/issues/2438#issuecomment-261704575

Fixes https://github.com/QubesOS/qubes-issues/issues/2450
2016-11-26 20:59:24 -05:00
Marek Marczykowski-Górecki
c7c86d12a7
Merge remote-tracking branch 'qubesos/pr/14'
* qubesos/pr/14:
  Make inter-appviewer lock permissions consistent
2016-11-27 02:19:52 +01:00
Jean-Philippe Ouellet
f6e00adebe Make inter-appviewer lock permissions consistent
Currently in gui-daemon/xside.c (only other holder of the lock):
    g->inter_appviewer_lock_fd = open("/var/run/qubes/appviewer.lock",
        O_RDWR | O_CREAT, 0666);
    ...
    /* ignore possible errors */
    fchmod(g->inter_appviewer_lock_fd, 0666);
2016-11-26 14:42:31 -05:00
Jean-Philippe Ouellet
4c08f75399
Implement searching for VMs in qubes-manager 2016-11-23 02:49:13 -05:00
Marek Marczykowski-Górecki
88eedc1a43
Merge remote-tracking branch 'qubesos/pr/11'
* qubesos/pr/11:
  Use more idiomatic python in VM filtering
2016-11-23 01:06:59 +01:00
Marek Marczykowski-Górecki
cf0fbcd908
Merge remote-tracking branch 'qubesos/pr/10'
* qubesos/pr/10:
  Require typing name of VM to remove

Fixes QubesOS/qubes-issues#1329
2016-11-23 01:06:39 +01:00
Jean-Philippe Ouellet
99a9f52297
Use more idiomatic python in VM filtering 2016-11-22 03:38:37 -05:00
Jean-Philippe Ouellet
86d5825464
Require typing name of VM to remove
It is too easy to accidentally delete the wrong VM if you use lots
of short-term (but longer than disposable) VMs and have built
muscle memory of just clicking "Ok" in the deletion confirmation box.

This patch requires you to type the full name of the VM, inspired by
repo deletion confirmation on GitHub.
2016-11-22 00:41:32 -05:00
Jean-Philippe Ouellet
a604a3fce2
Refactor "Logs" menu population 2016-11-21 23:37:51 -05:00
Rusty Bird
11be5d65fa
Gray out "Restart VM" for dispVMs 2016-11-21 14:39:25 +00:00
Marek Marczykowski-Górecki
f34328836e
Fix unicode handling in command to run
Thanks @igilik for the patch!

Fixes QubesOS/qubes-issues#2040
2016-10-03 00:11:59 +02:00
Marek Marczykowski-Górecki
d4131b8092
Merge remote-tracking branch 'qubesos/pr/7'
* qubesos/pr/7:
  fix TypeError
2016-07-08 01:07:33 +02:00
Markus Bach
baf5c90dbe fix TypeError
fixes QubesOS/qubes-issues#2156
2016-07-07 18:16:16 +02:00
Marek Marczykowski-Górecki
f7b558c55e
formatting 2016-07-01 03:09:27 +02:00
Marek Marczykowski-Górecki
816659b893
Merge remote-tracking branch 'qubesos/pr/6'
* qubesos/pr/6:
  Implemented 'Restart' button QubesOS/qubes-issues#1499
2016-06-24 22:48:15 +02:00
Marek Marczykowski-Górecki
4e5b990f02
Check for qubes-windows-tools presence before starting installation
Prevents confusing error message.

Fixes QubesOS/qubes-issues#1977
2016-06-21 02:07:22 +02:00
Marek Marczykowski-Górecki
49c209d077
firewall: Warn earlier and improve message on empty service name for TCP/UDP
Fixes QubesOS/qubes-issues#2093
2016-06-21 02:05:21 +02:00
Marek Marczykowski-Górecki
00caebda95
wrap long lines 2016-06-21 02:03:32 +02:00
Ivan Konov
7cd1afbb3c Implemented 'Restart' button
QubesOS/qubes-issues#1499
2016-06-05 22:19:18 +03:00
Marek Marczykowski-Górecki
eac2df7e18
Do not allow setting dom0 as any system VM
Fixes QubesOS/qubes-issues#1379
2015-12-17 22:49:45 +01:00
Marek Marczykowski-Górecki
1021d718a7
Disable "add/remote app shortcuts" action for dom0
Fixes QubesOS/qubes-issues#1367
2015-12-13 01:22:03 +01:00
Marek Marczykowski-Górecki
0f2e999230
Do not allow setting dom0 as default netvm
Fixes QubesOS/qubes-issues#1379
2015-12-13 01:21:41 +01:00
Marek Marczykowski-Górecki
dc6fa673bc
Fix 'qubes.InstallUpdatesGUI' call
There is no 'verbose' parameter

QubesOS/qubes-issues#1249
2015-11-29 04:07:48 +01:00
Marek Marczykowski-Górecki
f5b1a34894
Prevent scarry error at startup (pyinotify ERROR ... ENOENT)
If the clipboard file doesn't exist (and it doesn't at system startup),
pyinotify will output an error to stderr. This situation is already
handled by also monitoring the directory itself for CREATE event. But
prevent error message.
2015-11-27 01:33:42 +01:00
Marek Marczykowski-Górecki
0a5a5253b0
Use 'qubes.InstallUpdatesGUI' RPC service instead of hardcoded script
It should be up to the VM what software is used for installing updates.

Fixes QubesOS/qubes-issues#1249
2015-11-13 05:42:24 +01:00
Brennan Novak
3d1cd783ec exception popup message now shows exc_type sometimes
fixes: QubesOS/qubes-issues#1394
2015-11-09 23:25:08 +01:00
Brennan Novak
e1685a18f1 trimed exception popup message text quite a bit. Fixes QubesOS/qubes-issues#1394 2015-11-09 18:54:29 +01:00
Marek Marczykowski-Górecki
c1552af281
Prevent SEGV when background thread raise an exception
non-GUI thread can't open new window in PyQt. So as a band aid print the
message to stderr in such case.

And while at it, fix filename in error message (it was clobbered later
while constructing stack trace).

QubesOS/qubes-issues#1266
2015-10-29 18:04:38 +01:00
Marek Marczykowski-Górecki
6563f3078f
Fix "block attached" icon
This was broken since 8a91c90 "Fix block attach/detach", which changed
rows_with_blk list to contain VM qid, not name. One place was left not
updated.

Additionally document VmRowInTable.update parameters, as some of them
may be not obvious (blk_visible=None).

Fixes QubesOS/qubes-issues#1291
2015-10-10 20:09:47 +02:00
qubesuser
16cb2e301b don't call verify_files() before start() 2015-10-02 13:11:13 +02:00
Marek Marczykowski-Górecki
b001f26ee1
Create custom 'About' dialog, with 'release notes' viewer (#1259)
Fixes QubesOS/qubes-issues#1259
2015-10-01 22:34:49 +02:00
Marek Marczykowski-Górecki
dfd355fe71
Give the user chance to read final meesages after installing updates (#982)
xterm closes itself immediatelly when the specified command ends, so
wait for user reaction to give a chance to read the message (potentially
some error info). Also add some more meaningful window title.

QubesOS/qubes-issues#982
2015-09-27 00:21:48 +02:00
Marek Marczykowski-Górecki
3ba1a990df
Call yum/apt in xterm to update template (#982)
Since GUI updaters are broken, workaround this by starting terminal
update in xterm. Not an ideal option, but the proper solution seems to
be much more complicated:
https://phabricator.whonix.org/T373
QubesOS/qubes-issues#1197
QubesOS/qubes-issues#982
2015-09-24 01:27:32 +02:00
Marek Marczykowski-Górecki
1d02420f86
global settings: VMs 'updates check' status now can be also retrieved
qubesos/qubes-issues#892
2015-08-05 01:24:52 +02:00
Marek Marczykowski-Górecki
d2a4dd810b
Remove unused imports 2015-07-23 07:34:30 +02:00
Marek Marczykowski-Górecki
0724e37e3c
Use DBUS instead of pid file to prevent multiple simultaneous instances
The pid file solution was racy. Since we register DBUS name anyway, we
can use it for this purpose.
2015-07-23 07:32:55 +02:00
Marek Marczykowski-Górecki
e2fa049032 Fix block devices menu update (NameError) 2015-05-28 02:00:23 +02:00
Michal Rostecki
43bc59bfa6 Checking whether the "default NetVM" exists
The "default NetVM" is usually the first created ProxyVM which is
set by qubes-core during its creation. [1] If there is no ProxyVM,
there is no "default NetVM". Therefore, creating an AppVM and
launching its settings dialog raised AttributeError, because
get_default_netvm method returned None.

This can be reproduced by installing QubesOS without creating VMs
by installer.

[1] https://github.com/QubesOS/qubes-core-admin/blob/master/core/qubes.py#L355

Fixes qubesos/qubes-issues#1008
2015-05-24 11:23:57 +02:00
Marek Marczykowski-Górecki
b82a88c4a8 Fix VM clone name prompt dialog (#989)
Fixes qubesos/qubes-issues#989
2015-05-13 04:09:10 +02:00
Marek Marczykowski-Górecki
14c7a9250c Fix logic about VM "running" state
Qubes manager used different logic what it considers as "running VM",
than qubes core.
Here it was "running or starting/stopping", while qubes core uses the
same as libvirt (isActive()), which effectively means "not halted" -
which includes also "paused" and "suspended". This creates a lot
confusion in which action should be available when.

The actual detected bug was about resuming paused VM. There was assert
"not vm.is_running()", while the paused VM _is_ running in terms of
qubes core.

Fixes qubesos/qubes-issues#981
2015-05-04 01:29:20 +02:00
Marek Marczykowski-Górecki
f6941bd3d3 Use separate QubesVmCollection instance when running a task in background (#986)
QubesVmCollection is not thread safe. If for example update_table() will
be called during some long-running task (like creating or removing VM),
it will try to reload qubes.xml (so get read lock first), but the thread
already holds a lock on this file. This would result in "Lock already
taken" exception.

Fixes qubesos/qubes-issues#986
2015-05-04 01:25:55 +02:00
Marek Marczykowski-Górecki
351225a4b3 Fix resuming VMs (#981)
Fixes qubesos/qubes-issues#981
2015-05-03 20:28:45 +02:00
Marek Marczykowski-Górecki
1faa0ac37e mainwindow: code style (part 3), no functional change
Organize imports.
2015-05-03 19:03:26 +02:00
Marek Marczykowski-Górecki
4a136507e9 mainwindow: code style (part 2), no functional change
Rename variables to match PEP8, use is/is not None instead of ==/!=,
initialize instance variables in __init__, fix methods overloads.
2015-05-03 19:03:26 +02:00
Marek Marczykowski-Górecki
a4a022e2c0 mainwindow: code style (part 1), no functional change
Wrap long lines, whitespace fixes
2015-05-03 19:03:25 +02:00
Noah Vesely
7395797182 Added SMTPS and ODMR
Added SMTPS and On-Demand Mail Relay (used by Fetchmail, xODMR). Both of these are in the Fedora 20 /etc/services.
2015-04-25 13:26:42 -04:00
Marek Marczykowski-Górecki
8a91c90cf8 Fix block attach/detach 2015-04-14 23:11:12 +02:00
Marek Marczykowski-Górecki
dd93b1237f settings: add "dispvm_netvm" property in advanced tab 2015-04-06 00:59:15 +02:00
Marek Marczykowski-Górecki
4e5f63be24 settings: mark template as read-only when the VM is running 2015-04-05 21:53:09 +02:00
Marek Marczykowski-Górecki
6b7b07acb8 backup: allow backup templates, even when installed by rpm 2015-03-31 05:44:37 +02:00
Marek Marczykowski-Górecki
5e925b23d4 backup+restore: remove an option to attach disk from a VM to dom0
This is (intentionally) not possible in R3. The user can choose to
backup directly to the VM, encrypting the backup in dom0 first.
2015-03-31 05:40:53 +02:00
Marek Marczykowski-Górecki
f65dcdbf10 Watch for domain start/stop events and refresh VM connection info
QubesVm object caches some domain state (domain ID in libvirt object,
Qubes DB connection socket), which can become out of date in
case of start/stop events. Currently it needs manual trigger to refresh
itself.
2015-03-30 04:59:08 +02:00
Marek Marczykowski-Górecki
10ec6014b0 Update to follow core-admin change: rename write_iptables_xenstore_entry 2015-03-28 22:59:13 +01:00
Marek Marczykowski-Górecki
80b3afdab4 Revert "Add 'Requested MEM' column (aka prefmem) (#788)"
This reverts commit 227597cf93.

QubesWatch no longer supports xenstore, so there is no simple way to
get this column updated. This is conscious decision in process of making
R3 Xen-independent.

Conflicts:
        qubesmanager/main.py
2015-03-28 22:57:03 +01:00
Wojtek Porczyk
be94c87f61 table: sort dom0 first no matter sort order
It seems that when sort is reversed, dom0 gets sorted last. This is expected
and hard to counter. Will remain for now.
2015-03-10 21:05:48 +01:00
Matt McCutchen
aefe0dde43 Show an icon for VMs whose TemplateVM is running.
https://groups.google.com/d/topic/qubes-users/woHD9RaHvF8/discussion
2015-02-09 21:15:54 +01:00
Marek Marczykowski-Górecki
0d9bb27229 Update CPU measurement call for the new API 2015-02-09 05:05:03 +01:00
Marek Marczykowski-Górecki
6329c6e07e Disable meminfo watch - not implemented in R3 2015-02-06 08:26:53 +01:00
Marek Marczykowski-Górecki
3c555c9b53 block: update the code for new block API 2014-12-12 05:13:57 +01:00
Marek Marczykowski-Górecki
97620f76a7 settings: hide "add all" widget from devices tab
It is very dangerous - adding all the devices to some VM will make the
system unusable once such VM is started.
2014-11-01 19:57:17 +01:00
Marek Marczykowski-Górecki
c8a8a56c73 settings: prevent changing VM name and label while the VM is running
Those changes will take effect after VM restart (at least for VM windows
borders), so to not confuse the user with partly updated colors, simply
block the change while the VM is running. The same applies to VM name.
2014-10-28 04:55:14 +01:00
Victor Lopez
473b822e0c Linux VM specific: force minimum init mem to allow scaling up memory
Check init_mem and max_mem_size in a single function (merging the
previous two) taking into account the minimum init memory that allows
the requested maximum memory.

Explanation:
Linux kernel needs space for memory-related structures created at boot.
If init_mem is just 400MB, then max_mem can't balloon above 4.3GB (at
which poing it yields "add_memory() failed: -17" messages and apps
crash), regardless of the max_mem_size value.

Base of Marek's findings and my tests on a 16GB PC, using several
processes like:
   stress -m 1 --vm-bytes 1g --vm-hang 100

result in the following points:
init_mem  ==> actual max memory
400             4300
700             7554
800             8635
1024            11051
1200            12954
1300            14038
1500            14045 <== probably capped on my 16GB system

The actual ratio of max_mem_size/init_mem is surprisingly constant at
10.79

If less init memory is set than that ratio allows, then the set
max_mem_size is unreachable and the VM becomes unstable (app crashes)

Based on qubes-devel discussion titled "Qubes Dom0 init memory against
Xen best practices?" at:
https://groups.google.com/d/msg/qubes-devel/VRqkFj1IOtA/UgMgnwfxVSIJ
2014-10-06 04:00:20 +02:00
Marek Marczykowski-Górecki
470e1c0879 backups/restore: always allow an option to manually unmount storage device 2014-09-26 15:01:37 +02:00
Marek Marczykowski-Górecki
1ff9ce8a46 backups/restore: add support for 'verify-only' option 2014-09-17 23:07:32 +02:00
Marek Marczykowski-Górecki
c2ae785c5d backups/restore: fix handling of unicode messages, improve indentation 2014-09-17 23:06:41 +02:00
Marek Marczykowski-Górecki
1cadc1e943 Merge remote-tracking branch 'woju/master' 2014-09-09 22:01:54 +02:00
Marek Marczykowski-Górecki
c992fc0f48 settings: fix drive path setting (#897) 2014-09-09 21:59:54 +02:00
Wojciech Zygmunt Porczyk
24759d2762 settings.py: do not attempt to remove service when none selected
Thanks to Andrew B (kyboren at gmail dot com) for bug report.
2014-09-04 21:59:05 +02:00
Wojciech Zygmunt Porczyk
fdaaa780a4 use new padlocks from theme 2014-07-10 16:50:29 +02:00
Wojciech Zygmunt Porczyk
060b16900a use new icon from qubes-artwork 2014-07-09 18:21:56 +02:00
Marek Marczykowski-Górecki
159eea7ac8 block: fix attaching r/o devices (cdrom for example) 2014-07-08 02:06:35 +02:00
Marek Marczykowski-Górecki
61ef08eb47 settings: cast all QString to str
QString does not have "startswith" method.
2014-07-05 14:57:47 +02:00
Marek Marczykowski-Górecki
edb40bbfb6 Notify about dom0 updates (#824)
Tray notifications from cron job (outside of session) didn't worked well.
2014-06-10 01:15:26 +02:00
Marek Marczykowski-Górecki
ca6cc8e01f create-vm: Handle the case when no HVM-template exists 2014-06-07 04:40:24 +02:00
Marek Marczykowski-Górecki
aca43a46da Filter out 'dom0' from selectable netvm list
This is workaround until #757 will be done.
2014-06-07 04:07:26 +02:00
Andrew B
ba0cced495 Implemented NetVM selection via drop-down in AppVM creation dialog. 2014-06-07 04:02:45 +02:00
Wojciech Zygmunt Porczyk
e9f1bb3880 *.py: Use full paths when calling subprocess.Popen().
Also removed unneeded imports of subprocess.
2014-05-22 15:07:35 +02:00
Wojciech Zygmunt Porczyk
fe954632c0 regexp fixes and validation (#829) 2014-05-19 15:41:37 +02:00
Wojciech Zygmunt Porczyk
e834b33d42 Merge remote-tracking branch 'marmarek/master' 2014-05-19 13:54:02 +02:00
Hansi
44fe1cc845 small update to add "autostart" checkbox to the basic settings dialog 2014-05-17 21:43:29 +02:00
Wojciech Zygmunt Porczyk
f882042994 settings.py: launch lspci by full path (/usr/sbin/lspci) 2014-05-16 19:16:16 +02:00
Marek Marczykowski-Górecki
2221dcee36 Do not crash when no notification service present 2014-05-15 23:49:02 +02:00
Marek Marczykowski-Górecki
c2038ec20b backups: open file selection dialog at the end for unmounting the disk (#831) 2014-05-15 03:06:51 +02:00
Marek Marczykowski-Górecki
f096f0050a updates: call 'yum clean expire-cache' as root (#843)
In Fedora 20 sudo cannot be called from qrexec call (no tty available),
so run it in separate call as root.
Also add "-P" option to qubes-update-check call: for SysV systems it
should be ignored and service started as normal user (which is just
fine), but on systemd systems, the call would be redirected to
systemctl, which refuse normal user service actions. "-P" flag acquires
root privileges using PolicyKit.
2014-05-12 15:34:24 +02:00
Marek Marczykowski-Górecki
4d54815ce3 Simplify '\n' handling in tray notifies
Do not request the caller to encode them properly for current
notification service, but fix the encoding in notify function.
2014-05-12 15:33:18 +02:00
Marek Marczykowski-Górecki
d78e5b7b40 Workaround KDE notification, which ignores '\n' (#844) 2014-05-05 02:15:37 +02:00
Marek Marczykowski-Górecki
04c0f4472a log_dialog: display only last 1MB of log, force it plain text 2014-05-05 02:15:01 +02:00
Marek Marczykowski-Górecki
b4dcf0ceb4 backups: fix get_disk_usage usage
It isn't member of QubesVm anymore
2014-05-05 02:14:24 +02:00
Wojciech Zygmunt Porczyk
52f12abd36 qubesmanager/main.py: always display icons in menus
This commit is part of #721 fix.
2014-04-30 15:03:09 +02:00
Marek Marczykowski-Górecki
978af55bbb Minor error message handling fix 2014-04-24 12:58:38 +02:00
Marek Marczykowski-Górecki
59b98f7b51 Add updates section to global settings (#800) 2014-04-11 07:07:31 +02:00
Marek Marczykowski-Górecki
a84ebe56e8 Disable increment size hints
Window size is fixed (calculated based on VMs count etc) so it isn't
useful. Without correctly calculated base size hint it can cause wrong
manager window size. It actually happens on fc20 in dom0.
2014-04-02 03:29:57 +02:00
Marek Marczykowski-Górecki
a09f558b4b settings: add seamless_gui_mode settings (#810) 2014-04-01 01:13:34 +02:00
Marek Marczykowski-Górecki
ad99db9ca9 Add "Block devices" menu to context menu of tray icon (#781) 2014-03-31 18:38:17 +02:00
Marek Marczykowski-Górecki
aec32da2f1 Create "global" objects in main(), not VmManagerWindow
To have them outside of VmManagerWindow instance - possibly passed
through to other objects.
2014-03-31 18:36:00 +02:00
Marek Marczykowski-Górecki
9669c9f069 backups: save backup settings (#792) 2014-03-31 05:23:07 +02:00
Marek Marczykowski-Górecki
227597cf93 Add 'Requested MEM' column (aka prefmem) (#788) 2014-03-31 03:44:01 +02:00
Marek Marczykowski-Górecki
55d5bf0262 Split QubesBlockDevicesManager and table widgets into separate files
The main.py was ridiculously large - almost half of all Qubes Manager
code in one file.
2014-03-31 01:17:27 +02:00
Marek Marczykowski-Górecki
41bf7b448e firewall: add an option to temporary allow full network access (#760)
Add rule "*" with expire time set.
2014-03-28 06:41:35 +01:00
Marek Marczykowski-Górecki
3b3846eeb5 firewall: simplify rules handling code
Use directly rule provided by qubes core, not intermediate class
QubesFirewallRuleItem. This also will improve compatibility - if no
firewall changes made (but still "OK" clicked instead of "Cancel")
really the same settings are saved, even if rules contains some not
supported by Qubes Manager attributes.
2014-03-28 05:15:52 +01:00
Marek Marczykowski-Górecki
f79a1ed42e Clear startup errors when VM finally is running (#799) 2014-03-24 03:45:55 +01:00
Marek Marczykowski-Górecki
4f77108c5f settings: add an option to resize root.img (#699) 2014-03-21 18:40:23 +01:00
Marek Marczykowski-Górecki
9cc18228a0 Tell the KDE that clipboard notify uses HTML (#797)
Apparently KDE parses HTML tags in tray notifications only when some of
them appears on the first line of the message. So add some there.
This doesn't affect Xfce, which always parses HTML tags.
2014-03-11 02:10:11 +01:00
Marek Marczykowski-Górecki
ef90176747 Add VM name to block attach/detach notify (#797) 2014-03-10 05:21:22 +01:00
Marek Marczykowski-Górecki
e17e69dff3 Add Last backup date column (#798) 2014-03-10 04:28:30 +01:00
Marek Marczykowski-Górecki
55a965e5bd Add IP and included in backups columns (#735, #798) 2014-03-10 04:27:52 +01:00
Marek Marczykowski-Górecki
3016c06d91 backups: use backup_cancel() to interrupt backup/restore operation (#793) 2014-03-08 03:58:59 +01:00
Marek Marczykowski-Górecki
538b358df0 Add "HVM Template" VM type to create VM dialog (#758) 2014-03-08 01:38:22 +01:00
Marek Marczykowski-Górecki
2883c76740 Remove unused code in New VM dialog 2014-02-23 15:07:53 +01:00
Marek Marczykowski-Górecki
b536df4a79 Add option to start HVM with Qubes Tools installation iso attached (#744) 2014-02-23 01:32:50 +01:00
Marek Marczykowski-Górecki
0381a54156 Remove VM files when clone failed 2014-02-23 00:49:28 +01:00
Marek Marczykowski-Górecki
c0718a484d First remove VM from qubes.xml (#765)
So it will be removed regardless whether removing the files failed or
not.
2014-02-23 00:49:07 +01:00
Marek Marczykowski-Górecki
cc1ce3961d Rollback changes when VM creation failed
Do not only remove files, also remove VM from qubes.xml.
2014-02-23 00:46:33 +01:00
Marek Marczykowski-Górecki
3d67863727 appmenus: rely on core to recreate appmenus
Do not call all the steps manually.
2014-02-23 00:44:51 +01:00
Marek Marczykowski-Górecki
3ea49b5192 Remove trailing semicolons 2014-02-23 00:44:08 +01:00
Marek Marczykowski-Górecki
17107a7012 settings: add 'drive' setting to advanced tab (#712) 2014-02-20 01:05:38 +01:00
Marek Marczykowski-Górecki
8e0a441dfe settings: do not assume that kernel is the last setting 2014-02-20 01:05:38 +01:00
Marek Marczykowski-Górecki
95e9680e96 Whitespace fixes 2014-02-20 01:05:37 +01:00
Marek Marczykowski-Górecki
b109f8ce7c backups: fix in VM path dialog handling 2014-02-20 01:05:37 +01:00
Marek Marczykowski-Górecki
7f6700bbe5 Fix global settings save 2014-02-16 21:56:55 +01:00
Marek Marczykowski-Górecki
ede9d362a7 Merge branch 'appicons' 2014-02-07 05:55:29 +01:00
Marek Marczykowski-Górecki
53433bc47d backups: fix unicode handling in passphrase and backup path
Convert from QString to unicode, not str object.
2014-02-05 06:54:22 +01:00
Marek Marczykowski-Górecki
89280d0283 backups: start dom0 file browser with '/' as default
Do not suggest home directory as right place for backups. If the user
chosen some block device, it will be used as default.
2014-02-05 06:54:11 +01:00
Marek Marczykowski-Górecki
4f7d3451b2 backups: remove "skip dom0" option (#791)
User always can choose (or not) dom0 on the VMs selection page.
2014-02-05 04:31:37 +01:00
Marek Marczykowski-Górecki
0454524d93 Update audio-input availability after VM startup
The pulseaudio agent register itself when it connects to the VM, so
after VM reports "Running" state.
2014-01-23 16:41:01 +01:00
Marek Marczykowski-Górecki
926f61b86c backups: clarify messages after finishing the backup process 2014-01-22 01:36:52 +01:00
Marek Marczykowski-Górecki
9b3fcc0855 Stabilize sorting order
In case of equal value in column, resolve order using QID. This ensures
preserving rows order across reload, data update etc.
2014-01-22 01:23:10 +01:00
Marek Marczykowski-Górecki
3c15702286 Merge remote-tracking branch 'woju/master' into appicons 2014-01-16 04:57:57 +01:00
Marek Marczykowski-Górecki
11aff876a5 backups: restore default SIGCHLD handler for the backup time
The same as for restore.
2014-01-15 06:00:02 +01:00
Marek Marczykowski-Górecki
f7db4725a2 backups: minor fixes 2014-01-15 05:59:45 +01:00
Marek Marczykowski-Górecki
5527609c92 backups: update backup_do parameters. 2014-01-15 05:59:16 +01:00
Marek Marczykowski-Górecki
89f7c30a7e backups/restore: improve handling "Back" button
Do not reset entered data, but recheck selected VMs dependencies.
2014-01-13 05:22:52 +01:00
Marek Marczykowski-Górecki
7757e343e1 backups/restore: implement selecting the backup even in VM
Using new qubes.SelectFile RPC service, qubes manager can show the file
select dialog from within VM.
The user still can enter the path (or command) manually.
2014-01-13 05:20:54 +01:00
Marek Marczykowski-Górecki
07068be8ed backups: improve handling of dom0 devices
Do not use blk_manager if the device is already in dom0, try to detach
device only when it was mounted (otherwise it was detached already in
error handling code).
2014-01-13 05:19:43 +01:00
Marek Marczykowski-Górecki
9214fb1488 backups: update imports 2014-01-13 05:19:06 +01:00
Marek Marczykowski-Górecki
745b5d479f backups: update for simplified restore API calls 2014-01-13 05:18:03 +01:00
Marek Marczykowski-Górecki
c5ed749c22 backups: make released block device visible to the block manager
Devices used as part of other device (e.g. LUKS) are marked as
unavailable. So after releasing the device it need to be discovered
again. Unfortunately udev event isn't triggered on such occasion (only
"remove" event for device-mapper dev). This patch triggers this event
manually.
2014-01-13 05:09:07 +01:00
Marek Marczykowski-Górecki
02ac37c316 backups: default path on block device only on backup, not restore
On restore the user must point which backup want to use.
2014-01-12 05:43:15 +01:00
Marek Marczykowski-Górecki
26d4f67963 backups: detach block device when finished or error occurred 2014-01-12 05:42:19 +01:00
Marek Marczykowski-Górecki
5f7113e11e backups: allow only one of "block device" and "VM"
Block device can be pointed only when source VM is "dom0".
2014-01-12 05:20:48 +01:00
Marek Marczykowski-Górecki
d8a6e4a4b1 backups: simplify getting dom0 object 2014-01-12 05:18:56 +01:00
Marek Marczykowski-Górecki
92a6a85a4b backups: kill self.backup_location variable
This is copy of dir_line_edit content and its easy to desynchronize its
value, so just use the later directly.
2014-01-11 22:57:34 +01:00
Wojciech Porczyk
d4228bc741
appmenus: appicons recreation upon appmenu change 2014-01-11 00:08:48 +01:00
Marek Marczykowski-Górecki
004893d8de backups: enable back error reporting
The final error message wasn't shown (only the fact that backup failed).
2014-01-10 03:40:11 +01:00
Marek Marczykowski-Górecki
1e7eaf3776 backups: disable SIGCHLD handler for the time of running backup
Otherwise some syscalls would return EINTR. This is much easier (and
more readable!) solution than wrapping each syscall with try:except and
some loop.
2014-01-10 03:38:38 +01:00
Marek Marczykowski-Górecki
0b0297f129 backups: default file select state to previously selected directory 2014-01-10 03:37:28 +01:00
Marek Marczykowski-Górecki
589f2e7eb7 backups: allow to enter custom backup location (restore)
If "dom0" chosen, verify if the location exists.
2013-12-29 04:59:59 +01:00
Marek Marczykowski-Górecki
e1e60f692c backups: allow to select backup in old format (directory instead of file)
New backup is store in one file, but old one in a whole directory. While
selecting old backup, the user need to point 'qubes.xml' file.
2013-12-29 04:56:27 +01:00
Marek Marczykowski-Górecki
386c155dd5 Fix clone action 2013-12-14 02:55:41 +01:00
Marek Marczykowski-Górecki
f604f8a1dd appmenus select: fix listing HVM "Start" entry
Do list entries even if no exec line recognised.
2013-12-14 02:38:35 +01:00
Marek Marczykowski-Górecki
4fdfe44b11 Force refresh on manager show (#759)
But still collecting all the data takes some time...
2013-12-03 00:36:48 +01:00
Marek Marczykowski-Górecki
f587ac2d43 Adjust for new QubesVmCollection.save() implementation
Watch for MOVED_TO events in /var/lib/qubes directory to reload
qubes.xml.
2013-12-02 04:03:05 +01:00
Marek Marczykowski-Górecki
568ce68ca5 backups: improve error reporting during restore 2013-11-29 03:33:17 +01:00
Marek Marczykowski-Górecki
668bb1fdf6 backups: deal with multithread restore process
Only GUI thread can interact with GUI widgets, so queue the requests and
process from GUI thread. This applies to backup progress reports.
2013-11-29 03:26:51 +01:00
Marek Marczykowski-Górecki
9c2db2f87c backups: updates in backup progress information and cancel code 2013-11-28 04:07:39 +01:00
Marek Marczykowski-Górecki
21d72cdc6c backups: UI improvements
Prompt for retype the backup password, more thoroughly test if the user
entered all required informations, use "dom0" instead of "None" for local
backup indication.
2013-11-28 03:52:02 +01:00
Marek Marczykowski-Górecki
ced6fc672b backups: Update for new API - backup code moved to qubes.backup module
Also some improvements/fixes for handling new backup format
2013-11-28 03:50:17 +01:00
Marek Marczykowski-Górecki
6ad6e7c661 Whitespace fixes. 2013-11-28 03:45:22 +01:00
Marek Marczykowski-Górecki
fa9d29075b Merge remote-tracking branch 'oliv/master' into new-backups 2013-11-25 05:05:43 +01:00
Marek Marczykowski-Górecki
77cc22824b Use Standalone/AppVM icon for HVM
Instead of separate HVM icon.
2013-11-22 16:39:19 +01:00
Marek Marczykowski-Górecki
80066c3f72 One more update for the new API 2013-11-21 04:21:47 +01:00
Marek Marczykowski-Górecki
c40beed213 Add warning about potential license issues with template HVM 2013-11-21 04:19:41 +01:00
Marek Marczykowski-Górecki
0d41abad90 Add support for template-based HVM 2013-11-21 04:19:30 +01:00
Marek Marczykowski-Górecki
9c1e2f496c List only compatible templates 2013-11-21 04:17:59 +01:00
Marek Marczykowski-Górecki
4a7f3caee9 Update VM adding code for new API
No longer separate functions for each VM type.
2013-11-21 04:16:26 +01:00
Marek Marczykowski-Górecki
c11c42e2f7 Show the correct icon for HVM
Not standalone/template one.
2013-11-21 02:25:27 +01:00
Marek Marczykowski-Górecki
a2350481b9 Fix 'dont-use-shm' flagfile path in global settings window. 2013-11-09 00:24:45 +01:00
Marek Marczykowski-Górecki
8d38a948e5 settings: indentation fix 2013-10-29 13:41:46 +01:00
Marek Marczykowski-Górecki
56d7807fec settings: gray out maxmem when qmemman is disabled
'Max memory' setting only makes sense for dynamic memory management.
2013-10-29 13:40:49 +01:00
Marek Marczykowski-Górecki
6e3e475bc2 Add tooltip with application command line in appmenu select window (#747)
Otherwise some entries are undistinguishable.
2013-10-19 06:14:58 +02:00
Marek Marczykowski-Górecki
0f28fc7855 Preserve VM selection during table update 2013-10-18 04:20:19 +02:00
Marek Marczykowski-Górecki
b1ad497579 Update log filenames - now qrexec and guid have VM name instead of XID 2013-10-18 03:40:21 +02:00
Marek Marczykowski-Górecki
dcec8b566f Remove some debugging code 2013-10-18 03:37:22 +02:00
Marek Marczykowski-Górecki
fa61fceddd Fix watching clipboard change when the file initially doesn't exists (#749)
When the file doesn't exists, adding a watch fails. So monitor directory
for IN_CREATE event and when file is created - add the modify watch.
This watch will miss the first update (rather: create), so fire it
in IN_CREATE handler.
2013-10-18 03:33:56 +02:00
Marek Marczykowski-Górecki
19b9ffefda Catch the exception on device attach/detach
Take care to release lock before anything else, otherwise GUI will
be frozen...
2013-10-02 01:10:58 +02:00
Olivier MEDOC
baa3c6362c backup: implemented backup functions using the new backup model 2013-09-28 12:33:56 +02:00
Olivier MEDOC
e8cec85874 backup: implemented restore functions using the new backup model 2013-09-27 09:19:38 +02:00
Marek Marczykowski
da0d0c29b8 Get current release from /etc/qubes-release for about window 2013-04-25 16:09:03 +02:00
Marek Marczykowski
0f175b5c92 Fix showing inactive VMs
Previously if Qubes Manager was started with inactive VMs hidden,
toggling "show inactive VMs" option wasn't enough to show them. This is
because we set RowHidden to False only when both show_inactive and
show_internal are set.
This commit fixes the issue.
2013-04-13 04:14:00 +02:00
Marek Marczykowski
3994038d76 Store various VM state in one dict, not random attributes
Storing some Qubes Manager specific properties in QubesVm object isn't
completely right, but if do so, try to keep them in one dict, not bunch
of attributes. Index this dict with named "enum" (implemented as class)
entries.
2013-04-13 04:10:13 +02:00
Marek Marczykowski
009782189c Update button: expire cache before checking for updates 2013-04-13 03:13:37 +02:00
Marek Marczykowski
47669aac4e Replace direct xl calls with proper QubesVM methods 2013-04-13 03:12:58 +02:00
Marek Marczykowski
e0a15c12d4 Replace dbus-python with QtDBus
dbus-python seems to be not thread safe. After "881ee76 Merge qclipd
into qubes-manager" this occasionally triggers SEGV.
QtDBus seems to be somehow less robust:
 - doesn't automatically convert methods arguments to proper types based
 on introspection data
 - property access isn't working so must call
 org.freedesktop.DBus.Properties methods manually

But besides those problems seems to work stable.
2013-04-13 02:54:24 +02:00
Marek Marczykowski
11bfea1118 Update function names for appmenus handling 2013-04-12 01:31:33 +02:00
Marek Marczykowski
59dcefefe1 The Underscores Revolution: qubes-clipboard filename 2013-03-19 13:22:31 +01:00
Marek Marczykowski
bc485d2928 Update imports to match new qubes global settings layout 2013-03-16 21:07:53 +01:00
Marek Marczykowski
ff15208e8f Do not import qubes_guid_path (not used anywhere) 2013-03-16 20:53:47 +01:00
Marek Marczykowski
881ee76709 Merge qclipd into qubes-manager
Have all gui-notification code in one place.

TODO: Change python-dbus to QtDBus, which should better support threads
(current version occasionally gets SEGV...).
2013-03-12 15:56:40 +01:00
Olivier Medoc
cff51fdabd mainui: Changed the showhide algorithm to handle internal VMs
Additionnally, the windows resizing algorithm has been changed to use the count of displayed internal VMs.
2013-03-09 00:07:48 +01:00
Olivier Medoc
268c9a9d94 mainui: implemented show/hide internal VMs 2013-03-09 00:07:48 +01:00
Olivier Medoc
70e0a2b97a mainui: Added show/hide internal VMs in the view menu 2013-03-09 00:07:47 +01:00
Olivier Medoc
dded0ba510 mainui: hide the Internal column by default 2013-03-09 00:07:47 +01:00
Olivier Medoc
effe24b20e mainui: added the Internal column to show if the VM is internal 2013-03-09 00:07:47 +01:00
Marek Marczykowski
987bdfc50d Fix signal handling in backup window
The same issue as in multiselect widget.
2013-03-01 20:45:33 +01:00
Marek Marczykowski
7681864d81 Fix multiselect widget signal handling.
Apparently list isn't allowed type of argument.
Documentation says:
"It is possible to pass any Python object as a signal argument by specifying
PyQt_PyObject as the type of the argument in the signature."
"While this would normally be used for passing objects like lists and
dictionaries as signal arguments, it can be used for any Python type."

So do it.
2013-02-28 02:15:06 +01:00
Marek Marczykowski
d48ed3ca57 Use local time in shutdown monitor
vm.get_start_time() is in local time, so compare it also with local time, not
the UTC one.
2013-02-23 16:18:43 +01:00
Marek Marczykowski
4d9e30784e settings apply: fix error message 2013-02-23 06:46:56 +01:00