Skip to content
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

Add os-release ID_LIKE to features #504

Merged
merged 1 commit into from
Jun 12, 2024
Merged

Conversation

ben-grande
Copy link
Contributor

Very useful to apply configuration based on the base distribution that the OS was created upon, instead of adding an extensive list of supported distributions of Debian.

distro_like=$(awk -F '=' '/^ID_LIKE=/{ print $2 }' /etc/os-release)
qvm-features-request os-distribution-like="${distro_like}"

version=$(awk -F '[="]' '/^VERSION_ID=/{ print $3 }' /etc/os-release)
Copy link
Member

Choose a reason for hiding this comment

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

This needs a bit more care - VERSION_ID value sometimes it quoted but sometimes not

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Last commits deals with this now.

version=${version#\"}
version=${version%\"}
distro_like=$(awk -F '=' '/^ID_LIKE=/{ print $2 }' /etc/os-release)
qvm-features-request os-distribution-like="${distro_like}"
Copy link
Member

Choose a reason for hiding this comment

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

This needs also the backend side, see QubesOS/qubes-core-admin#578 and later QubesOS/qubes-core-admin#585.

What is the "extensive list of supported distributions of Debian" what you can find on Qubes?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

This needs also the backend side, see QubesOS/qubes-core-admin#578 and later QubesOS/qubes-core-admin#585.

Will take care of this soon.

What is the "extensive list of supported distributions of Debian" what you can find on Qubes?

That I can find on Qubes by default is only kali and whonix. That someone can install from a 3rd party template, that is higher.

@ben-grande
Copy link
Contributor Author

I didn't think grep, awk, sed, cut, head where a good use of resources. Got some code from pfetch that uses built-in file reading and string replacement. Also deals with quotes.

Copy link

codecov bot commented Jun 7, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 70.57%. Comparing base (aa6b2b8) to head (c33b577).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #504   +/-   ##
=======================================
  Coverage   70.57%   70.57%           
=======================================
  Files           3        3           
  Lines         469      469           
=======================================
  Hits          331      331           
  Misses        138      138           

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

ben-grande added a commit to ben-grande/qubes-core-admin that referenced this pull request Jun 10, 2024
@qubesos-bot
Copy link

qubesos-bot commented Jun 10, 2024

OpenQA test summary

Complete test suite and dependencies: https://openqa.qubes-os.org/tests/overview?distri=qubesos&version=4.3&build=2024061011-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=2024052808-4.3&flavor=update

  • system_tests_basic_vm_qrexec_gui

    • TC_06_AppVM_whonix-gateway-17: test_010_os_metadata (failure)
      self.assertEqual(tpl.features.get(... AssertionError: None != 'debian'

    • TC_06_AppVM_whonix-workstation-17: test_010_os_metadata (failure)
      self.assertEqual(tpl.features.get(... AssertionError: None != 'debian'

  • system_tests_extra

    • TC_00_QVCTest_fedora-40-xfce: test_020_webcam (failure + cleanup)
      AssertionError: 'qubes-video-companion webcam' exited early (0): b'...
  • system_tests_dispvm

    • TC_20_DispVM_fedora-40-xfce: test_100_open_in_dispvm (failure)
      AssertionError: './open-file test.txt' failed with ./open-file test...
  • system_tests_basic_vm_qrexec_gui_zfs

    • TC_06_AppVM_whonix-gateway-17-pool: test_010_os_metadata (failure)
      self.assertEqual(tpl.features.get(... AssertionError: None != 'debian'

    • TC_06_AppVM_whonix-workstation-17-pool: test_010_os_metadata (failure)
      self.assertEqual(tpl.features.get(... AssertionError: None != 'debian'

  • system_tests_basic_vm_qrexec_gui_btrfs

    • TC_06_AppVM_whonix-gateway-17-pool: test_010_os_metadata (failure)
      self.assertEqual(tpl.features.get(... AssertionError: None != 'debian'

    • TC_06_AppVM_whonix-workstation-17-pool: test_010_os_metadata (failure)
      self.assertEqual(tpl.features.get(... AssertionError: None != 'debian'

  • system_tests_basic_vm_qrexec_gui_ext4

    • TC_06_AppVM_whonix-gateway-17-pool: test_010_os_metadata (failure)
      self.assertEqual(tpl.features.get(... AssertionError: None != 'debian'

    • TC_06_AppVM_whonix-workstation-17-pool: test_010_os_metadata (failure)
      self.assertEqual(tpl.features.get(... AssertionError: None != 'debian'

  • system_tests_basic_vm_qrexec_gui_xfs

    • TC_06_AppVM_whonix-gateway-17-pool: test_010_os_metadata (failure)
      self.assertEqual(tpl.features.get(... AssertionError: None != 'debian'

    • TC_06_AppVM_whonix-workstation-17-pool: test_010_os_metadata (failure)
      self.assertEqual(tpl.features.get(... AssertionError: None != 'debian'

  • system_tests_basic_vm_qrexec_gui@hw1

    • TC_06_AppVM_whonix-gateway-17: test_010_os_metadata (failure)
      self.assertEqual(tpl.features.get(... AssertionError: None != 'debian'

    • TC_06_AppVM_whonix-workstation-17: test_010_os_metadata (failure)
      self.assertEqual(tpl.features.get(... AssertionError: None != 'debian'

  • system_tests_guivm_vnc_gui_interactive

    • guivm_startup: Failed (test died)
      # Test died: unexpected end of data at /usr/lib/os-autoinst/console...

Failed tests

22 failures
  • system_tests_basic_vm_qrexec_gui

    • TC_06_AppVM_whonix-gateway-17: test_010_os_metadata (failure)
      self.assertEqual(tpl.features.get(... AssertionError: None != 'debian'

    • TC_06_AppVM_whonix-workstation-17: test_010_os_metadata (failure)
      self.assertEqual(tpl.features.get(... AssertionError: None != 'debian'

  • system_tests_pvgrub_salt_storage

    • TC_41_HVMGrub_fedora-40-xfce: test_000_standalone_vm (error)
      qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...

    • TC_41_HVMGrub_fedora-40-xfce: test_010_template_based_vm (error)
      qubes.exc.QubesVMError: Cannot connect to qrexec agent for 120 seco...

  • system_tests_splitgpg

  • system_tests_extra

    • TC_00_QVCTest_debian-12-xfce: test_020_webcam (failure + cleanup)
      AssertionError: 'qubes-video-companion webcam' exited early (0): b'...

    • TC_00_QVCTest_fedora-40-xfce: test_020_webcam (failure + cleanup)
      AssertionError: 'qubes-video-companion webcam' exited early (0): b'...

    • TC_00_QVCTest_whonix-workstation-17: test_020_webcam (failure + cleanup)
      AssertionError: 'qubes-video-companion webcam' exited early (0): b'...

  • system_tests_usbproxy

  • system_tests_dispvm

    • TC_20_DispVM_fedora-40-xfce: test_100_open_in_dispvm (failure)
      AssertionError: './open-file test.txt' failed with ./open-file test...
  • system_tests_basic_vm_qrexec_gui_zfs

    • TC_06_AppVM_whonix-gateway-17-pool: test_010_os_metadata (failure)
      self.assertEqual(tpl.features.get(... AssertionError: None != 'debian'

    • TC_06_AppVM_whonix-workstation-17-pool: test_010_os_metadata (failure)
      self.assertEqual(tpl.features.get(... AssertionError: None != 'debian'

  • system_tests_basic_vm_qrexec_gui_btrfs

    • TC_06_AppVM_whonix-gateway-17-pool: test_010_os_metadata (failure)
      self.assertEqual(tpl.features.get(... AssertionError: None != 'debian'

    • TC_06_AppVM_whonix-workstation-17-pool: test_010_os_metadata (failure)
      self.assertEqual(tpl.features.get(... AssertionError: None != 'debian'

  • system_tests_basic_vm_qrexec_gui_ext4

    • TC_06_AppVM_whonix-gateway-17-pool: test_010_os_metadata (failure)
      self.assertEqual(tpl.features.get(... AssertionError: None != 'debian'

    • TC_06_AppVM_whonix-workstation-17-pool: test_010_os_metadata (failure)
      self.assertEqual(tpl.features.get(... AssertionError: None != 'debian'

    • TC_20_AudioVM_Pulse_whonix-workstation-17-pool: test_220_audio_play_pulseaudio (failure)
      AssertionError: too short audio, expected 10s, got 9.05988662131519...

  • system_tests_basic_vm_qrexec_gui_xfs

    • TC_06_AppVM_whonix-gateway-17-pool: test_010_os_metadata (failure)
      self.assertEqual(tpl.features.get(... AssertionError: None != 'debian'

    • TC_06_AppVM_whonix-workstation-17-pool: test_010_os_metadata (failure)
      self.assertEqual(tpl.features.get(... AssertionError: None != 'debian'

  • system_tests_basic_vm_qrexec_gui@hw1

    • TC_06_AppVM_whonix-gateway-17: test_010_os_metadata (failure)
      self.assertEqual(tpl.features.get(... AssertionError: None != 'debian'

    • TC_06_AppVM_whonix-workstation-17: test_010_os_metadata (failure)
      self.assertEqual(tpl.features.get(... AssertionError: None != 'debian'

  • system_tests_guivm_vnc_gui_interactive

    • guivm_startup: Failed (test died)
      # Test died: unexpected end of data at /usr/lib/os-autoinst/console...

Fixed failures

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

37 fixed
  • system_tests_basic_vm_qrexec_gui

  • system_tests_pvgrub_salt_storage

    • StorageFile: test_001_non_volatile (error)
      subprocess.CalledProcessError: Command '/usr/lib/qubes/destroy-snap...
  • system_tests_extra

    • TC_00_QVCTest_whonix-workstation-17: test_010_screenshare (failure)
      self.assertNotEqual(vm.run('test -e /dev/vid... AssertionError: 0 == 0
  • system_tests_guivm_gui_interactive

    • update_guivm: Failed (test died)
      # Test died: command '(set -o pipefail; qubesctl --all --show-outpu...
  • system_tests_network_updates

    • TC_00_Dom0Upgrade_whonix-gateway-17: test_006_update_flag_clear (failure)
      Error: Failed to download metadata for repo 'test': Cannot download...

    • TC_10_QvmTemplate_debian-12-xfce: test_010_template_install (failure)
      AssertionError: qvm-template failed: Downloading 'qubes-template-de...

    • TC_10_QvmTemplate_fedora-40-xfce: test_010_template_install (failure)
      AssertionError: qvm-template failed: Downloading 'qubes-template-de...

    • TC_10_QvmTemplate_whonix-gateway-17: test_010_template_install (failure)
      AssertionError: qvm-template failed: Downloading 'qubes-template-de...

    • TC_11_QvmTemplateMgmtVM_debian-12-xfce: test_010_template_install (failure)
      AssertionError: qvm-template failed: Downloading 'qubes-template-de...

    • TC_11_QvmTemplateMgmtVM_fedora-40-xfce: test_010_template_install (failure)
      AssertionError: qvm-template failed: Downloading 'qubes-template-de...

    • TC_11_QvmTemplateMgmtVM_whonix-gateway-17: test_010_template_install (failure)
      AssertionError: qvm-template failed: Downloading 'qubes-template-de...

  • system_tests_basic_vm_qrexec_gui_zfs

  • system_tests_basic_vm_qrexec_gui_btrfs

  • system_tests_basic_vm_qrexec_gui_ext4

  • system_tests_basic_vm_qrexec_gui_xfs

  • system_tests_basic_vm_qrexec_gui@hw1

Unstable tests

Very useful to apply configuration based on the base distribution that
the OS was created upon, instead of adding an extensive list of
supported distributions of Debian.
@marmarek marmarek merged commit 817259c into QubesOS:main Jun 12, 2024
4 checks passed
@ben-grande ben-grande deleted the report-id-like branch June 12, 2024 06:08
marmarek pushed a commit to QubesOS/qubes-core-admin that referenced this pull request Jun 25, 2024
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.

3 participants