Skip to content

Add prohibit-start to Qube Settings GUI. #414

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Mar 19, 2025

Conversation

alimirjamali
Copy link
Contributor

No description provided.

@alimirjamali alimirjamali force-pushed the prohibit-start-setting branch from f3d7fe6 to 7cd4d32 Compare March 13, 2025 00:18
Copy link

codecov bot commented Mar 13, 2025

Codecov Report

Attention: Patch coverage is 78.94737% with 4 lines in your changes missing coverage. Please review.

Project coverage is 68.90%. Comparing base (6c369df) to head (69f6810).
Report is 4 commits behind head on main.

Files with missing lines Patch % Lines
qubesmanager/settings.py 78.94% 4 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #414      +/-   ##
==========================================
+ Coverage   68.80%   68.90%   +0.10%     
==========================================
  Files          17       17              
  Lines        3808     3827      +19     
==========================================
+ Hits         2620     2637      +17     
- Misses       1188     1190       +2     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@qubesos-bot
Copy link

qubesos-bot commented Mar 14, 2025

OpenQA test summary

Complete test suite and dependencies: https://openqa.qubes-os.org/tests/overview?distri=qubesos&version=4.3&build=2025031903-4.3&flavor=pull-requests

Test run included the following:

New failures, excluding unstable

Compared to: https://openqa.qubes-os.org/tests/overview?distri=qubesos&version=4.3&build=2025021804-4.3&flavor=update

  • system_tests_basic_vm_qrexec_gui

  • system_tests_kde_gui_interactive

    • gui_keyboard_layout: wait_serial (wait serial expected)
      # wait_serial expected: "echo -e '[Layout]\nLayoutList=us,de' | sud...

    • gui_keyboard_layout: Failed (test died)
      # Test died: command 'test "$(cd ~user;ls e1*)" = "$(qvm-run -p wor...

  • system_tests_audio

  • system_tests_qwt_win10_seamless@hw13

    • windows_clipboard_and_filecopy: unnamed test (unknown)
    • windows_clipboard_and_filecopy: Failed (test died)
      # Test died: no candidate needle with tag(s) 'windows-Explorer-empt...
  • system_tests_qwt_win11@hw13

    • windows_install: wait_serial (wait serial expected)
      # wait_serial expected: qr/dcWzE-\d+-/...

    • windows_install: Failed (test died + timed out)
      # Test died: command 'script -e -c 'bash -x /usr/bin/qvm-create-win...

  • system_tests_basic_vm_qrexec_gui_xfs

Failed tests

15 failures
  • system_tests_basic_vm_qrexec_gui

  • system_tests_kde_gui_interactive

    • gui_keyboard_layout: wait_serial (wait serial expected)
      # wait_serial expected: "echo -e '[Layout]\nLayoutList=us,de' | sud...

    • gui_keyboard_layout: Failed (test died)
      # Test died: command 'test "$(cd ~user;ls e1*)" = "$(qvm-run -p wor...

  • system_tests_audio

  • system_tests_qwt_win10_seamless@hw13

    • windows_clipboard_and_filecopy: unnamed test (unknown)
    • windows_clipboard_and_filecopy: Failed (test died)
      # Test died: no candidate needle with tag(s) 'windows-Explorer-empt...
  • system_tests_qwt_win11@hw13

    • windows_install: wait_serial (wait serial expected)
      # wait_serial expected: qr/dcWzE-\d+-/...

    • windows_install: Failed (test died + timed out)
      # Test died: command 'script -e -c 'bash -x /usr/bin/qvm-create-win...

  • system_tests_basic_vm_qrexec_gui_xfs

Fixed failures

Compared to: https://openqa.qubes-os.org/tests/129058#dependencies

12 fixed
  • system_tests_qrexec

  • system_tests_kde_gui_interactive

    • clipboard_and_web: unnamed test (unknown)
    • clipboard_and_web: Failed (test died)
      # Test died: no candidate needle with tag(s) 'clipboard-paste-notif...
  • system_tests_whonix@hw7

    • whonixcheck: fail (unknown)
      Whonixcheck for sys-whonix failed...

    • whonixcheck: unnamed test (unknown)

  • system_tests_basic_vm_qrexec_gui_btrfs

    • TC_03_QvmRevertTemplateChanges: test_000_revert_linux (error)
      subprocess.CalledProcessError: Command '['sha1sum', '/var/lib/qubes...
  • system_tests_suspend@hw1

    • suspend: unnamed test (unknown)
    • suspend: Failed (test died)
      # Test died: no candidate needle with tag(s) 'SUSPEND-FAILED' match...
  • system_tests_whonix

    • whonixcheck: fail (unknown)
      Whonixcheck for sys-whonix failed...

    • whonixcheck: unnamed test (unknown)

  • system_tests_suspend

    • suspend: unnamed test (unknown)
    • suspend: Failed (test died)
      # Test died: no candidate needle with tag(s) 'SUSPEND-FAILED' match...

Unstable tests

Performance Tests

Performance degradation:

30 performance degradations
  • debian-12-xfce_exec-data-simplex: 70.77 :small_red_triangle_up: ( previous job: 48.93, degradation: 144.63%)
  • debian-12-xfce_exec-data-duplex: 70.96 :small_red_triangle_up: ( previous job: 50.76, degradation: 139.80%)
  • debian-12-xfce_exec-data-duplex-root: 91.24 :small_red_triangle_up: ( previous job: 64.91, degradation: 140.56%)
  • debian-12-xfce_socket-data-duplex: 167.31 :small_red_triangle_up: ( previous job: 81.49, degradation: 205.32%)
  • fedora-41-xfce_exec-data-simplex: 74.10 :small_red_triangle_up: ( previous job: 49.65, degradation: 149.25%)
  • fedora-41-xfce_exec-data-duplex: 64.19 :small_red_triangle_up: ( previous job: 49.08, degradation: 130.78%)
  • fedora-41-xfce_exec-data-duplex-root: 110.53 :small_red_triangle_up: ( previous job: 81.65, degradation: 135.36%)
  • fedora-41-xfce_socket-data-duplex: 149.71 :small_red_triangle_up: ( previous job: 78.62, degradation: 190.41%)
  • whonix-gateway-17_exec-data-simplex: 79.33 :small_red_triangle_up: ( previous job: 48.76, degradation: 162.69%)
  • whonix-gateway-17_exec-data-duplex: 74.80 :small_red_triangle_up: ( previous job: 48.55, degradation: 154.05%)
  • whonix-gateway-17_exec-data-duplex-root: 96.68 :small_red_triangle_up: ( previous job: 70.13, degradation: 137.87%)
  • whonix-gateway-17_socket-data-duplex: 163.39 :small_red_triangle_up: ( previous job: 82.74, degradation: 197.47%)
  • whonix-workstation-17_exec-data-simplex: 66.39 :small_red_triangle_up: ( previous job: 47.01, degradation: 141.21%)
  • whonix-workstation-17_exec-data-duplex: 75.22 :small_red_triangle_up: ( previous job: 49.48, degradation: 152.04%)
  • whonix-workstation-17_exec-data-duplex-root: 100.27 :small_red_triangle_up: ( previous job: 79.93, degradation: 125.45%)
  • whonix-workstation-17_socket-data-duplex: 163.56 :small_red_triangle_up: ( previous job: 81.71, degradation: 200.17%)
  • dom0_root_seq1m_q8t1_read 3:read_bandwidth_kb: 185269.00 :small_red_triangle_up: ( previous job: 486352.00, degradation: 38.09%)
  • dom0_root_seq1m_q8t1_write 3:write_bandwidth_kb: 58558.00 :small_red_triangle_up: ( previous job: 276742.00, degradation: 21.16%)
  • dom0_root_seq1m_q1t1_read 3:read_bandwidth_kb: 102665.00 :small_red_triangle_up: ( previous job: 423495.00, degradation: 24.24%)
  • dom0_root_seq1m_q1t1_write 3:write_bandwidth_kb: 67266.00 :small_red_triangle_up: ( previous job: 185030.00, degradation: 36.35%)
  • dom0_root_rnd4k_q32t1_read 3:read_bandwidth_kb: 12164.00 :small_red_triangle_up: ( previous job: 100699.00, degradation: 12.08%)
  • dom0_varlibqubes_rnd4k_q1t1_write 3:write_bandwidth_kb: 2860.00 :small_red_triangle_up: ( previous job: 3868.00, degradation: 73.94%)
  • fedora-41-xfce_private_seq1m_q8t1_write 3:write_bandwidth_kb: 102603.00 :small_red_triangle_up: ( previous job: 116848.00, degradation: 87.81%)
  • fedora-41-xfce_private_rnd4k_q32t1_write 3:write_bandwidth_kb: 2312.00 :small_red_triangle_up: ( previous job: 3885.00, degradation: 59.51%)
  • fedora-41-xfce_private_rnd4k_q1t1_write 3:write_bandwidth_kb: 1449.00 :small_red_triangle_up: ( previous job: 1613.00, degradation: 89.83%)
  • fedora-41-xfce_volatile_seq1m_q8t1_read 3:read_bandwidth_kb: 292653.00 :small_red_triangle_up: ( previous job: 392725.00, degradation: 74.52%)
  • fedora-41-xfce_volatile_seq1m_q8t1_write 3:write_bandwidth_kb: 85481.00 :small_red_triangle_up: ( previous job: 139933.00, degradation: 61.09%)
  • fedora-41-xfce_volatile_seq1m_q1t1_write 3:write_bandwidth_kb: 28721.00 :small_red_triangle_up: ( previous job: 78093.00, degradation: 36.78%)
  • fedora-41-xfce_volatile_rnd4k_q32t1_write 3:write_bandwidth_kb: 2475.00 :small_red_triangle_up: ( previous job: 3959.00, degradation: 62.52%)
  • fedora-41-xfce_volatile_rnd4k_q1t1_write 3:write_bandwidth_kb: 1553.00 :small_red_triangle_up: ( previous job: 2693.00, degradation: 57.67%)

Remaining performance tests:

42 tests
  • debian-12-xfce_exec: 7.32 :small_red_triangle_up: ( previous job: 7.15, degradation: 102.35%)
  • debian-12-xfce_exec-root: 30.47 :small_red_triangle_up: ( previous job: 27.97, degradation: 108.95%)
  • debian-12-xfce_socket: 8.53 :small_red_triangle_up: ( previous job: 8.33, degradation: 102.43%)
  • debian-12-xfce_socket-root: 8.64 :small_red_triangle_up: ( previous job: 8.20, degradation: 105.33%)
  • fedora-41-xfce_exec: 9.12 🟢 ( previous job: 9.13, improvement: 99.85%)
  • fedora-41-xfce_exec-root: 63.37 :small_red_triangle_up: ( previous job: 61.17, degradation: 103.59%)
  • fedora-41-xfce_socket: 8.31 🟢 ( previous job: 8.66, improvement: 95.99%)
  • fedora-41-xfce_socket-root: 7.91 🟢 ( previous job: 8.61, improvement: 91.91%)
  • whonix-gateway-17_exec: 7.68 🟢 ( previous job: 7.87, improvement: 97.57%)
  • whonix-gateway-17_exec-root: 40.22 :small_red_triangle_up: ( previous job: 38.36, degradation: 104.84%)
  • whonix-gateway-17_socket: 7.70 :small_red_triangle_up: ( previous job: 7.54, degradation: 102.04%)
  • whonix-gateway-17_socket-root: 9.01 :small_red_triangle_up: ( previous job: 8.27, degradation: 108.89%)
  • whonix-workstation-17_exec: 7.77 🟢 ( previous job: 8.23, improvement: 94.44%)
  • whonix-workstation-17_exec-root: 54.59 :small_red_triangle_up: ( previous job: 52.56, degradation: 103.86%)
  • whonix-workstation-17_socket: 8.70 :small_red_triangle_up: ( previous job: 8.21, degradation: 106.01%)
  • whonix-workstation-17_socket-root: 8.23 :small_red_triangle_up: ( previous job: 8.20, degradation: 100.41%)
  • dom0_root_rnd4k_q32t1_write 3:write_bandwidth_kb: 5500.00 :green_circle: ( previous job: 3277.00, improvement: 167.84%)
  • dom0_root_rnd4k_q1t1_read 3:read_bandwidth_kb: 11887.00 :green_circle: ( previous job: 10163.00, improvement: 116.96%)
  • dom0_root_rnd4k_q1t1_write 3:write_bandwidth_kb: 3251.00 :green_circle: ( previous job: 282.00, improvement: 1152.84%)
  • dom0_varlibqubes_seq1m_q8t1_read 3:read_bandwidth_kb: 444688.00 :small_red_triangle_up: ( previous job: 475329.00, degradation: 93.55%)
  • dom0_varlibqubes_seq1m_q8t1_write 3:write_bandwidth_kb: 206634.00 :green_circle: ( previous job: 95209.00, improvement: 217.03%)
  • dom0_varlibqubes_seq1m_q1t1_read 3:read_bandwidth_kb: 437636.00 :green_circle: ( previous job: 433474.00, improvement: 100.96%)
  • dom0_varlibqubes_seq1m_q1t1_write 3:write_bandwidth_kb: 181740.00 :green_circle: ( previous job: 164133.00, improvement: 110.73%)
  • dom0_varlibqubes_rnd4k_q32t1_read 3:read_bandwidth_kb: 107161.00 :green_circle: ( previous job: 99808.00, improvement: 107.37%)
  • dom0_varlibqubes_rnd4k_q32t1_write 3:write_bandwidth_kb: 9260.00 :green_circle: ( previous job: 8767.00, improvement: 105.62%)
  • dom0_varlibqubes_rnd4k_q1t1_read 3:read_bandwidth_kb: 7584.00 :green_circle: ( previous job: 7053.00, improvement: 107.53%)
  • fedora-41-xfce_root_seq1m_q8t1_read 3:read_bandwidth_kb: 364722.00 :small_red_triangle_up: ( previous job: 396586.00, degradation: 91.97%)
  • fedora-41-xfce_root_seq1m_q8t1_write 3:write_bandwidth_kb: 233587.00 :green_circle: ( previous job: 99783.00, improvement: 234.09%)
  • fedora-41-xfce_root_seq1m_q1t1_read 3:read_bandwidth_kb: 310229.00 :small_red_triangle_up: ( previous job: 343795.00, degradation: 90.24%)
  • fedora-41-xfce_root_seq1m_q1t1_write 3:write_bandwidth_kb: 43722.00 :small_red_triangle_up: ( previous job: 44770.00, degradation: 97.66%)
  • fedora-41-xfce_root_rnd4k_q32t1_read 3:read_bandwidth_kb: 85574.00 :small_red_triangle_up: ( previous job: 86742.00, degradation: 98.65%)
  • fedora-41-xfce_root_rnd4k_q32t1_write 3:write_bandwidth_kb: 3569.00 :small_red_triangle_up: ( previous job: 3785.00, degradation: 94.29%)
  • fedora-41-xfce_root_rnd4k_q1t1_read 3:read_bandwidth_kb: 8131.00 :small_red_triangle_up: ( previous job: 8623.00, degradation: 94.29%)
  • fedora-41-xfce_root_rnd4k_q1t1_write 3:write_bandwidth_kb: 1136.00 :green_circle: ( previous job: 1126.00, improvement: 100.89%)
  • fedora-41-xfce_private_seq1m_q8t1_read 3:read_bandwidth_kb: 370652.00 :small_red_triangle_up: ( previous job: 401907.00, degradation: 92.22%)
  • fedora-41-xfce_private_seq1m_q1t1_read 3:read_bandwidth_kb: 323036.00 :small_red_triangle_up: ( previous job: 357875.00, degradation: 90.27%)
  • fedora-41-xfce_private_seq1m_q1t1_write 3:write_bandwidth_kb: 82336.00 :green_circle: ( previous job: 41375.00, improvement: 199.00%)
  • fedora-41-xfce_private_rnd4k_q32t1_read 3:read_bandwidth_kb: 93940.00 :green_circle: ( previous job: 87999.00, improvement: 106.75%)
  • fedora-41-xfce_private_rnd4k_q1t1_read 3:read_bandwidth_kb: 8780.00 :green_circle: ( previous job: 8744.00, improvement: 100.41%)
  • fedora-41-xfce_volatile_seq1m_q1t1_read 3:read_bandwidth_kb: 293883.00 :small_red_triangle_up: ( previous job: 294875.00, degradation: 99.66%)
  • fedora-41-xfce_volatile_rnd4k_q32t1_read 3:read_bandwidth_kb: 83839.00 :green_circle: ( previous job: 71108.00, improvement: 117.90%)
  • fedora-41-xfce_volatile_rnd4k_q1t1_read 3:read_bandwidth_kb: 8861.00 :green_circle: ( previous job: 8408.00, improvement: 105.39%)

@marmarek
Copy link
Member

This behaves funny regarding empty value. First, when enabling the checkbox but not entering anything, the error message is "Error while saving changes: Feature not set for domain sys-whonix: prohibit-start". It isn't exactly clear that it's about empty value.
But it's also interesting the other way around: when it's set with some rationale, and then you remove the rationale, the checkbox automatically uncheck and the entry box disappears. Pretty annoying if you try to just change the rationale...

@alimirjamali
Copy link
Contributor Author

This behaves funny regarding empty value. First, when enabling the checkbox but not entering anything, the error message is "Error while saving changes: Feature not set for domain sys-whonix: prohibit-start". It isn't exactly clear that it's about empty value. But it's also interesting the other way around: when it's set with some rationale, and then you remove the rationale, the checkbox automatically uncheck and the entry box disappears. Pretty annoying if you try to just change the rationale...

Yes. I believe that I have to make it better. I believe once the rationale TextEntry box is shown, it should remain visible regardless of the status of the checkbox. And the logic has to be improved as well.

@marmarek
Copy link
Member

Hiding it when checkbox gets unchecked is probably okay too (and probably should keep the value until dialog is closed). It the checkbox shouldn't automatically uncheck when rationale is cleared...

Copy link
Member

@marmarta marmarta left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So, on testing, I think there is a bit of UX roughness here: namely, a user can click prohibit start and forget to provide reason, plus, the reason entry box is a bit awkward. My proposal:

  • provide a default reason
  • move the text box next to the checkbox, to avoid moving things around when the checkbox is clicked
  • if the text box is empty and visible, it should scream in some way - maybe a red border? - and ok/apply probably shouldn't be clickable

@alimirjamali
Copy link
Contributor Author

  • provide a default reason
  • move the text box next to the checkbox, to avoid moving things around when the checkbox is clicked
  • if the text box is empty and visible, it should scream in some way - maybe a red border? - and ok/apply probably shouldn't be clickable
  • A default reason is added.
  • The checkbox and textbox were in a QHBoxLayout. I am not sure why I switched to QVBoxLayout. Switched back to VBox.
  • Red border was a little bit troublesome. I made the placeholder text red instead. It looks good IMO (see video).
prohibit_start.mp4

Copy link
Member

@marmarta marmarta left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I love it!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants