Commit Graph

601 Commits

Author SHA1 Message Date
Marek Marczykowski-Górecki
861d7c5413
settings: fix settings applications list
Fix qvm-appmenus usage, do nothing when no change was made.
2017-07-30 18:55:32 +02:00
Marta Marczykowska-Górecka
693e1340ed
'rename VM' button in VM Settings
rename VM button in VM settings: it asks for a new name, and then clones
VM under the new name and deletes old one. Renaming VM closes VM settings
window without saving any other changes.
Changed max size of VM name field to 32 characters.
2017-07-29 13:28:53 +02:00
Marta Marczykowska-Górecka
2dda433fd3
'refresh available apps' button in VM Setting
added a button in VM Settings, Applications tab to refresh the list of
available apps
2017-07-29 13:28:53 +02:00
Marek Marczykowski-Górecki
9de507f95d
Change 'hvm' property to 'virt_mode'
QubesOS/qubes-issues#2912
2017-07-18 04:24:32 +02:00
Marek Marczykowski-Górecki
402f1db80d
firewall: check for 'qubes-firewall' feature instead of being ProxyVM
This enable better detection whether firewall settings will really be
respected.

Fixes QubesOS/qubes-issues#2003
2017-07-16 10:50:07 +02:00
Marek Marczykowski-Górecki
576299afea
settings: fix getting available appmenus list 2017-07-16 10:40:59 +02:00
Wojtek Porczyk
96fc9c192c fixes from @marmarek's review 2017-07-14 02:19:24 +02:00
Wojtek Porczyk
1861ff386d settings: devices 2017-07-12 15:12:44 +02:00
Wojtek Porczyk
c32391a030 settings: services 2017-07-12 15:12:44 +02:00
Wojtek Porczyk
e78ede26f1 adminapi storage 2017-07-12 15:12:43 +02:00
Wojtek Porczyk
092d38e09a settings: misc removed 2017-07-12 15:12:43 +02:00
Wojtek Porczyk
cd2d3d7c0e settings: firewall and network 2017-07-12 15:05:05 +02:00
Wojtek Porczyk
ac06eee39b settings: dir_path, config_path 2017-07-12 15:05:05 +02:00
Wojtek Porczyk
cae10193e7 qubesmanager/settings: imports 2017-07-12 15:05:05 +02:00
Wojtek Porczyk
37d501c42b rewrite firewall 2017-07-12 15:05:05 +02:00
Wojtek Porczyk
43f2f6b881 rewrite creating new qube 2017-07-12 15:05:05 +02:00
Wojtek Porczyk
eefa6c31c2 appmenus fix 2017-07-12 15:05:05 +02:00
Wojtek Porczyk
6462ae88b7 qubesmanager/utils 2017-07-12 15:05:05 +02:00
Wojtek Porczyk
ea28980717 settings: debug mode 2017-07-12 15:05:05 +02:00
Wojtek Porczyk
f6a5c02adb qubesmanager/settings: make it work on qubesadmin, part 0 2017-07-12 15:04:55 +02:00
Wojtek Porczyk
2c3df7bd67 spring cleaning part 5: more python3 fixes 2017-07-12 14:54:14 +02:00
Wojtek Porczyk
f5d83d31dd spring cleaning part 4
remove old imports
2017-07-12 14:54:13 +02:00
Wojtek Porczyk
64913fd968 spring cleaning part 3
some unnecessary leftovers
2017-07-12 14:54:12 +02:00
Wojtek Porczyk
a023fb708e spring cleaning part 2
setup.py
2017-07-12 14:54:12 +02:00
Marta Marczykowska-Górecka
fb3dc6ecf7
update qubesmanager to compile under python3.
note: qvm-net.py has changed location to a weird one.
2017-06-25 17:53:23 +02:00
Marta Marczykowska-Górecka
5daa35a301
update globalsettingsdlg for new API 2017-06-25 17:31:10 +02:00
Marek Marczykowski-Górecki
2a381227f2
Merge remote-tracking branch 'qubesos/pr/34'
* qubesos/pr/34:
  Show size of current inter-VM clipboard in Ctrl-Shift-C notification message
  Show size of current inter-VM clipboard in Ctrl-Shift-C notification message
2017-05-31 12:59:21 +02:00
itinerarium
c2a340698e
Show size of current inter-VM clipboard in Ctrl-Shift-C notification message
Fix copy/paste error

QubesOS/qubes-issues#2825
2017-05-28 12:12:25 -04:00
itinerarium
9c284ebedb
Show size of current inter-VM clipboard in Ctrl-Shift-C notification message
QubesOS/qubes-issues#2825
2017-05-28 11:49:34 -04:00
M. Vefa Bicakci
2ba6df43fc
Remove left-over debugging print-outs 2017-05-26 02:02:25 -04:00
M. Vefa Bicakci
a2d0b128b7
Make sure that new value of uses_default_kernel persists
Prior to this commit, whenever the user selected the default kernel in
a VM's "Advanced Settings" dialog in Qubes Manager, the
"uses_default_kernel" flag would not be saved as expected. Instead of
the intent to use the default kernel version for the VM in the future,
the VM would be stuck with the specific kernel version and not any new
future default kernel versions.

This issue occurs because the "kernel" property setter for the QubesVm
class resets the "uses_default_kernel" member variable to False, and
Qubes Manager sets the "uses_default_kernel" property before setting the
"kernel" property.

Resolve this issue by making sure that the "uses_default_kernel"
member variable of the VM in question is set after the "kernel" member
variable.
2017-05-26 02:02:25 -04:00
M. Vefa Bicakci
d551bdc3fa
Do not abort VM restarts due to inconsistent info
Prior to this commit, there have been occasional issues with the usage
of the Qubes Manager's VM restart button where the restart procedure
is interrupted due to an exception thrown after the VM in question is
shut down. The exception has the following backtrace:

  ----
  line: assert not vm.is_running()
  func: start_vm
  line no.: 1198
  file: /usr/lib64/python2.7/site-packages/qubesmanager/main.py
  ----
  line: self.caller.start_vm(vm)
  func: check_if_vm_has_shutdown
  line no.: 308
  file: /usr/lib64/python2.7/site-packages/qubesmanager/main.py

Upon investigation, the root cause of the issue appears to be
inconsistent information provided by Xen regarding a recently-shut-down
VM's start-up timestamp and its state (i.e., running or shut down).

In some cases Xen would report that the VM is running whereas the
start-up timestamp would be returned as None, due to unknown reasons.
This inconsistency would then cause the code modified by this commit to
call the Qubes Manager's "start_vm" method, which would attempt to
assert that a VM is shut down, which would raise the aforementioned
exception.

This commit aims to resolve this issue by checking whether the VM has
fully shut down according to Xen and by calling "start_vm" only if the
VM has fully shut down.

This commit also slightly refactors the affected code.

Fixes: QubesOS/qubes-issues#2438
2017-05-13 14:30:37 -04:00
Marek Marczykowski-Górecki
23fc7df23c
settings: save qubes.xml after saving firewall rules
Saving (and also applying) firewall rules may modify VM's "services",
which are stored in qubes.xml. This is the case for "Allow connection to
Updates Proxy" - which also enables/disables 'yum-proxy-setup' service.
Without this commit, such change was ignored.

Fixes QubesOS/qubes-issues#2770
2017-04-24 01:59:00 +02:00
Christopher Laprise
edd62efd78
Progress bar can match light or dark palette 2017-03-21 10:57:32 -04:00
Christopher Laprise
2d3cf6cdb2
Run InstallUpdatesGUI service as root 2017-03-12 23:43:41 -04:00
Marek Marczykowski-Górecki
16a556c0a1
Merge remote-tracking branch 'qubesos/pr/27'
* qubesos/pr/27:
  Add more missing unicode()s around .tr()s
2017-02-20 04:07:13 +01:00
Jean-Philippe Ouellet
2f72aaf05f
Add more missing unicode()s around .tr()s
Fixes https://github.com/QubesOS/qubes-issues/issues/2637
2017-02-19 21:49:03 -05:00
Marek Marczykowski-Górecki
3a011da65d
Add missing unicode() wrapper before .format() on QString
self.tr return QString, which do not support python's str.format().

Fixes QubesOS/qubes-issues#2637
2017-02-19 22:51:09 +01:00
Jean-Philippe Ouellet
3e84b9e2ae
Use app instead of self for .tr() outside QObject
Fixes https://github.com/QubesOS/qubes-issues/issues/2637
2017-02-19 15:49:28 -05:00
Marek Marczykowski-Górecki
ed8f889c92
Merge remote-tracking branch 'qubesos/pr/25'
* qubesos/pr/25:
  Restrict VM search field to valid VM names
  Revert "Fix for UnicodeEncodeError in search"
2017-02-14 21:45:52 +01:00
Jean-Philippe Ouellet
6b3ef1dab2
Restrict VM search field to valid VM names
Properly fixes https://github.com/QubesOS/qubes-issues/issues/2562

This regex is starting to get duplicated in too many places...
Maybe it belongs in core somewhere?
2017-02-13 04:41:18 -05:00
Jean-Philippe Ouellet
b2bcc00e1d
Revert "Fix for UnicodeEncodeError in search"
This reverts commit 4a3240bf1a.

VM names never contain any unicode characters, so this fix only
propagates the possibility of an encoding error to further down
the line, rather than removing it.

A proper fix would involve filtering the input to the search box
as we do with creating & renaming VMs.
2017-02-13 04:34:54 -05:00
Marek Marczykowski-Górecki
d073b3582d
i18n: wrap self.tf in unicode() where 'format' function is used
Qstring (returned by self.tr) does not have 'format' method.

Fixes QubesOS/qubes-issues#2599
2017-02-06 04:20:13 +01:00
Marek Marczykowski-Górecki
4946d7b8d0
Merge branch 'i18n'
* i18n:
  i18n: update translations
  i18n: add configuration for transifex client
  i18n: add 'en' translation file as a source template
  Translated some strings to test the process
  i18n: add skeleton translation file for spanish
  i18n: wrap strings with self.tr
  i18n: add basic support for translations
2017-02-03 17:29:08 +01:00
Marek Marczykowski-Górecki
cab53b21aa
Merge remote-tracking branch 'qubesos/pr/24'
* qubesos/pr/24:
  Turn on NetVM view in Manager by default. CPU column off.
2017-01-29 13:27:10 +01:00
unman
d9ef229049
Turn on NetVM view in Manager by default. CPU column off. 2017-01-29 01:25:17 +00:00
unman
4b31b206ef
Move network diagram to System menu in Manager 2017-01-28 03:15:58 +00:00
unman
a72003f44b
Add extended information and Network diagram to Manager 2017-01-26 20:36:39 +00:00
Marek Marczykowski-Górecki
7c602bf7d2
i18n: wrap strings with self.tr
Allow translations to handle strings defined in code.

Fixes QubesOS/qubes-issues#2599
2017-01-22 13:22:26 +01:00
Marek Marczykowski-Górecki
cf8b99c763
i18n: add basic support for translations
Handle translations of GUI elements defined in .ui files.
See README.md for details.

Fixes QubesOS/qubes-issues#2599
2017-01-22 13:22:16 +01:00
Marek Marczykowski-Górecki
e1e55c6bea
Merge remote-tracking branch 'qubesos/pr/22'
* qubesos/pr/22:
  Fix for UnicodeEncodeError in search
2017-01-10 02:48:14 +01:00
Marek Marczykowski-Górecki
684abd4a1b
Merge remote-tracking branch 'qubesos/pr/21'
* qubesos/pr/21:
  Sort items in Backup selection dialog
2017-01-10 02:48:01 +01:00
yaqu
4a3240bf1a Fix for UnicodeEncodeError in search
Entering non-ascii characters (e.g. "ą") in search
causes an UnicodeEncodeError. This is a quick fix.

Fixes QubesOS/qubes-issues#2562
2017-01-09 23:31:49 +01:00
unman
0f1e7bb352
Sort items in Backup selection dialog 2017-01-05 02:58:03 +00:00
Marek Marczykowski-Górecki
c214c65589
Merge remote-tracking branch 'qubesos/pr/20'
* qubesos/pr/20:
  Select search box contents on focus
2016-12-20 03:01:02 +01:00
Jean-Philippe Ouellet
9fa8ca5520 Select search box contents on focus
Attempt #2
2016-12-18 18:11:45 -05:00
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