toolbox-0.0.99.3-0.5.git660b6970e998.el9
- Make sosreport work by setting the HOST environment variable - Related: #2000051 Signed-off-by: Jindrich Novy <jnovy@redhat.com>
This commit is contained in:
		
							parent
							
								
									38f416cd16
								
							
						
					
					
						commit
						b9680ab712
					
				| @ -1,6 +0,0 @@ | |||||||
| --- !Policy |  | ||||||
| product_versions: |  | ||||||
|   - rhel-9 |  | ||||||
| decision_context: osci_compose_gate |  | ||||||
| rules: |  | ||||||
|   - !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional} |  | ||||||
| @ -1,12 +0,0 @@ | |||||||
| --- |  | ||||||
| # Sigh; RHEL8 doesn't have BATS |  | ||||||
| - name: bats | fetch and unpack tarball |  | ||||||
|   unarchive: |  | ||||||
|     src: https://github.com/bats-core/bats-core/archive/v1.4.1.tar.gz |  | ||||||
|     dest: /root |  | ||||||
|     remote_src: true |  | ||||||
| 
 |  | ||||||
| - name: bats | install |  | ||||||
|   command: ./install.sh /usr/local |  | ||||||
|   args: |  | ||||||
|     chdir: /root/bats-core-1.4.1 |  | ||||||
| @ -1,7 +0,0 @@ | |||||||
| --- |  | ||||||
| - name: create nonroot user |  | ||||||
|   user: |  | ||||||
|     name: testuser |  | ||||||
|     shell: /bin/bash |  | ||||||
| - name: enable linger |  | ||||||
|   command: loginctl enable-linger testuser |  | ||||||
| @ -1,72 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| # |  | ||||||
| # Run bats tests for a given $TEST_PACKAGE, e.g. buildah, podman |  | ||||||
| # |  | ||||||
| # This is invoked by the 'run_bats_tests' role; we assume that |  | ||||||
| # the package foo has a foo-tests subpackage which provides the |  | ||||||
| # directory /usr/share/foo/test/system, containing one or more .bats |  | ||||||
| # test files. |  | ||||||
| # |  | ||||||
| 
 |  | ||||||
| export PATH=/usr/local/bin:/usr/sbin:/usr/bin |  | ||||||
| 
 |  | ||||||
| FULL_LOG=/tmp/test.debug.log |  | ||||||
| BATS_LOG=/tmp/test.bats.log |  | ||||||
| rm -f $FULL_LOG $BATS_LOG |  | ||||||
| touch $FULL_LOG $BATS_LOG |  | ||||||
| 
 |  | ||||||
| exec &> $FULL_LOG |  | ||||||
| 
 |  | ||||||
| # Log program versions |  | ||||||
| echo "Packages:" |  | ||||||
| rpm -q ${TEST_PACKAGE} ${TEST_PACKAGE}-tests |  | ||||||
| 
 |  | ||||||
| echo "------------------------------" |  | ||||||
| printenv | sort |  | ||||||
| 
 |  | ||||||
| testdir=/usr/share/${TEST_PACKAGE}/test/system |  | ||||||
| 
 |  | ||||||
| if ! cd $testdir; then |  | ||||||
|     echo "FAIL ${TEST_NAME} : cd $testdir"      >> /tmp/test.log |  | ||||||
|     exit 0 |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| if [ -e /tmp/helper.sh ]; then |  | ||||||
|     echo "------------------------------" |  | ||||||
|     echo ". /tmp/helper.sh" |  | ||||||
|     . /tmp/helper.sh |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| if [ "$(type -t setup)" = "function" ]; then |  | ||||||
|     echo "------------------------------" |  | ||||||
|     echo "\$ setup" |  | ||||||
|     setup |  | ||||||
|     if [ $? -ne 0 ]; then |  | ||||||
|         echo "FAIL ${TEST_NAME} : setup"       >> /tmp/test.log |  | ||||||
|         exit 0 |  | ||||||
|     fi |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| echo "------------------------------" |  | ||||||
| echo "\$ bats ." |  | ||||||
| bats . &> $BATS_LOG |  | ||||||
| rc=$? |  | ||||||
| 
 |  | ||||||
| echo "------------------------------" |  | ||||||
| echo "bats completed with status $rc" |  | ||||||
| 
 |  | ||||||
| status=PASS |  | ||||||
| if [ $rc -ne 0 ]; then |  | ||||||
|     status=FAIL |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| echo "${status} ${TEST_NAME}" >> /tmp/test.log |  | ||||||
| 
 |  | ||||||
| if [ "$(type -t teardown)" = "function" ]; then |  | ||||||
|     echo "------------------------------" |  | ||||||
|     echo "\$ teardown" |  | ||||||
|     teardown |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| # FIXME: for CI purposes, always exit 0. This allows subsequent tests. |  | ||||||
| exit 0 |  | ||||||
| @ -1,37 +0,0 @@ | |||||||
| --- |  | ||||||
| # Create empty results file, world-writable |  | ||||||
| - name: initialize test.log file |  | ||||||
|   copy: dest=/tmp/test.log content='' force=yes mode=0666 |  | ||||||
| 
 |  | ||||||
| - name: execute tests |  | ||||||
|   include: run_one_test.yml |  | ||||||
|   with_items: "{{ tests }}" |  | ||||||
|   loop_control: |  | ||||||
|     loop_var: test |  | ||||||
| 
 |  | ||||||
| - name: pull test.log results |  | ||||||
|   fetch: |  | ||||||
|     src: "/tmp/test.log" |  | ||||||
|     dest: "{{ artifacts }}/test.log" |  | ||||||
|     flat: yes |  | ||||||
| 
 |  | ||||||
| # Copied from standard-test-basic |  | ||||||
| - name: check results |  | ||||||
|   shell: grep "^FAIL" /tmp/test.log |  | ||||||
|   register: test_fails |  | ||||||
|   # Never fail at this step. Just store result of tests. |  | ||||||
|   failed_when: False |  | ||||||
| 
 |  | ||||||
| - name: preserve results |  | ||||||
|   set_fact: |  | ||||||
|     role_result_failed: "{{ (test_fails.stdout|d|length > 0) or (test_fails.stderr|d|length > 0) }}" |  | ||||||
|     role_result_msg: "{{ test_fails.stdout|d('tests failed.') }}" |  | ||||||
| 
 |  | ||||||
| - name: display results |  | ||||||
|   vars: |  | ||||||
|     msg: | |  | ||||||
|        Tests failed: {{ role_result_failed|d('Undefined') }} |  | ||||||
|        Tests msg: {{ role_result_msg|d('None') }} |  | ||||||
|   debug: |  | ||||||
|     msg: "{{ msg.split('\n') }}" |  | ||||||
|   failed_when: "role_result_failed|bool" |  | ||||||
| @ -1,52 +0,0 @@ | |||||||
| --- |  | ||||||
| - name: "{{ test.name }} | install test packages" |  | ||||||
|   dnf: name="{{ test.package }}-tests" state=installed |  | ||||||
| 
 |  | ||||||
| - name: "{{ test.name }} | define helper variables" |  | ||||||
|   set_fact: |  | ||||||
|     test_name_oneword: "{{ test.name | replace(' ','-') }}" |  | ||||||
| 
 |  | ||||||
| # UGH. This is necessary because our caller sets some environment variables |  | ||||||
| # and we need to set a few more based on other caller variables; then we |  | ||||||
| # need to combine the two dicts when running the test. This seems to be |  | ||||||
| # the only way to do it in ansible. |  | ||||||
| - name: "{{ test.name }} | define local environment" |  | ||||||
|   set_fact: |  | ||||||
|     local_environment: |  | ||||||
|       TEST_NAME:    "{{ test.name }}" |  | ||||||
|       TEST_PACKAGE: "{{ test.package }}" |  | ||||||
|       TEST_ENV:     "{{ test.environment }}" |  | ||||||
| 
 |  | ||||||
| - name: "{{ test.name }} | setup/teardown helper | see if exists" |  | ||||||
|   local_action: stat path={{ role_path }}/files/helper.{{ test_name_oneword }}.sh |  | ||||||
|   register: helper |  | ||||||
| 
 |  | ||||||
| - name: "{{ test.name }} | setup/teardown helper | install" |  | ||||||
|   copy: src=helper.{{ test_name_oneword }}.sh dest=/tmp/helper.sh |  | ||||||
|   when: helper.stat.exists |  | ||||||
| 
 |  | ||||||
| - name: "{{ test.name }} | run test" |  | ||||||
|   script: ./run_bats_tests.sh |  | ||||||
|   args: |  | ||||||
|     chdir: /usr/share/{{ test.package }}/test/system |  | ||||||
|   become: "{{ true if test.become is defined else false }}" |  | ||||||
|   become_user: testuser |  | ||||||
|   environment: "{{ local_environment | combine(test.environment) }}" |  | ||||||
| 
 |  | ||||||
| - name: "{{ test.name }} | pull logs" |  | ||||||
|   fetch: |  | ||||||
|     src: "/tmp/test.{{ item }}.log" |  | ||||||
|     dest: "{{ artifacts }}/test.{{ test_name_oneword }}.{{ item }}.log" |  | ||||||
|     flat: yes |  | ||||||
|   with_items: |  | ||||||
|     - bats |  | ||||||
|     - debug |  | ||||||
| 
 |  | ||||||
| - name: "{{ test.name }} | remove remote logs and helpers" |  | ||||||
|   file: |  | ||||||
|     dest=/tmp/{{ item }} |  | ||||||
|     state=absent |  | ||||||
|   with_items: |  | ||||||
|     - test.bats.log |  | ||||||
|     - test.debug.log |  | ||||||
|     - helper.sh |  | ||||||
| @ -1,15 +0,0 @@ | |||||||
| --- |  | ||||||
| - hosts: localhost |  | ||||||
|   tags:  classic |  | ||||||
|   vars: |  | ||||||
|   - artifacts: ./artifacts |  | ||||||
|   roles: |  | ||||||
|   - role: bats_installed |  | ||||||
|   - role: nonroot_user |  | ||||||
|   - role: run_bats_tests |  | ||||||
|     tests: |  | ||||||
|     - name:    toolbox |  | ||||||
|       package: toolbox |  | ||||||
|       environment: |  | ||||||
|         PODMAN: /usr/bin/podman |  | ||||||
|       become:  true |  | ||||||
| @ -0,0 +1,26 @@ | |||||||
|  | From 786c5065c73703ef46e13905a4672f1b4918310a Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Debarshi Ray <rishi@fedoraproject.org> | ||||||
|  | Date: Wed, 18 Aug 2021 17:55:21 +0200 | ||||||
|  | Subject: [PATCH] cmd/run: Make sosreport work by setting the HOST environment | ||||||
|  |  variable | ||||||
|  | 
 | ||||||
|  | https://bugzilla.redhat.com/show_bug.cgi?id=1940037 | ||||||
|  | ---
 | ||||||
|  |  src/cmd/run.go | 1 + | ||||||
|  |  1 file changed, 1 insertion(+) | ||||||
|  | 
 | ||||||
|  | diff --git a/src/cmd/run.go b/src/cmd/run.go
 | ||||||
|  | index e8e96932415e..188f0f2394df 100644
 | ||||||
|  | --- a/src/cmd/run.go
 | ||||||
|  | +++ b/src/cmd/run.go
 | ||||||
|  | @@ -443,6 +443,7 @@ func constructExecArgs(container string,
 | ||||||
|  |  	execArgs = append(execArgs, detachKeys...) | ||||||
|  |   | ||||||
|  |  	execArgs = append(execArgs, []string{ | ||||||
|  | +		"--env", "HOST=/run/host",
 | ||||||
|  |  		"--interactive", | ||||||
|  |  		"--tty", | ||||||
|  |  		"--user", currentUser.Username, | ||||||
|  | -- 
 | ||||||
|  | 2.31.1 | ||||||
|  | 
 | ||||||
							
								
								
									
										17
									
								
								toolbox.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								toolbox.conf
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,17 @@ | |||||||
|  | [general] | ||||||
|  | # Create a toolbox container for a different operating system distro than the | ||||||
|  | # host. Cannot be used with 'image'. | ||||||
|  | ## distro = "fedora" | ||||||
|  | 
 | ||||||
|  | # Create a toolbox container for a different operating system release than the | ||||||
|  | # host. Cannot be used with 'image'. | ||||||
|  | ## release = "33" | ||||||
|  | 
 | ||||||
|  | # Change the name of the image used to create the toolbox container. This is | ||||||
|  | # useful for creating containers from custom-built images. Cannot be used with | ||||||
|  | # 'distro' or 'release'. | ||||||
|  | # | ||||||
|  | # If the name does not contain a registry, the local image storage will be | ||||||
|  | # consulted, and if it's not present there then it will be pulled from a | ||||||
|  | # suitable remote registry. | ||||||
|  | image = "registry.redhat.io/rhel8/support-tools:latest" | ||||||
							
								
								
									
										12
									
								
								toolbox.spec
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								toolbox.spec
									
									
									
									
									
								
							| @ -9,7 +9,7 @@ Version:       0.0.99.3 | |||||||
| %global goipath github.com/containers/%{name} | %global goipath github.com/containers/%{name} | ||||||
| %gometa | %gometa | ||||||
| 
 | 
 | ||||||
| Release:       0.4.git660b6970e998%{?dist} | Release:       0.5.git660b6970e998%{?dist} | ||||||
| Summary:       Unprivileged development environment | Summary:       Unprivileged development environment | ||||||
| 
 | 
 | ||||||
| License:       ASL 2.0 | License:       ASL 2.0 | ||||||
| @ -20,10 +20,12 @@ URL:           https://github.com/containers/%{name} | |||||||
| # $ cd src | # $ cd src | ||||||
| # $ go mod vendor | # $ go mod vendor | ||||||
| Source0:       %{name}-%{version}-vendored.tar.xz | Source0:       %{name}-%{version}-vendored.tar.xz | ||||||
|  | Source1:       %{name}.conf | ||||||
| 
 | 
 | ||||||
| # RHEL specific | # RHEL specific | ||||||
| Patch100:      toolbox-Make-the-build-flags-match-RHEL-s-gobuild.patch | Patch100:      toolbox-Make-the-build-flags-match-RHEL-s-gobuild.patch | ||||||
| Patch101:      toolbox-Make-the-build-flags-match-RHEL-s-gobuild-for-PPC64.patch | Patch101:      toolbox-Make-the-build-flags-match-RHEL-s-gobuild-for-PPC64.patch | ||||||
|  | Patch102:      toolbox-cmd-run-Make-sosreport-work-by-setting-the-HOST-envi.patch | ||||||
| 
 | 
 | ||||||
| # https://bugzilla.redhat.com/show_bug.cgi?id=1905383 | # https://bugzilla.redhat.com/show_bug.cgi?id=1905383 | ||||||
| ExcludeArch:   %{ix86} | ExcludeArch:   %{ix86} | ||||||
| @ -34,6 +36,7 @@ BuildRequires: meson | |||||||
| BuildRequires: pkgconfig(bash-completion) | BuildRequires: pkgconfig(bash-completion) | ||||||
| BuildRequires: systemd | BuildRequires: systemd | ||||||
| 
 | 
 | ||||||
|  | Requires:      containers-common | ||||||
| Requires:      podman >= 1.4.0 | Requires:      podman >= 1.4.0 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| @ -61,6 +64,8 @@ The %{name}-tests package contains system tests for %{name}. | |||||||
| %patch101 -p1 | %patch101 -p1 | ||||||
| %endif | %endif | ||||||
| 
 | 
 | ||||||
|  | %patch102 -p1 | ||||||
|  | 
 | ||||||
| # %%gomkdir is absent from RHEL 8. | # %%gomkdir is absent from RHEL 8. | ||||||
| GOBUILDDIR="$(pwd)/_build" | GOBUILDDIR="$(pwd)/_build" | ||||||
| GOSOURCEDIR="$(pwd)" | GOSOURCEDIR="$(pwd)" | ||||||
| @ -88,6 +93,7 @@ ln -s src/vendor vendor | |||||||
| 
 | 
 | ||||||
| %install | %install | ||||||
| %meson_install | %meson_install | ||||||
|  | install -m0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/containers/%{name}.conf | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| %files | %files | ||||||
| @ -106,6 +112,10 @@ ln -s src/vendor vendor | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| %changelog | %changelog | ||||||
|  | * Fri Sep 03 2021 Jindrich Novy <jnovy@redhat.com> - 0.0.99.3-0.5.git660b6970e998 | ||||||
|  | - Make sosreport work by setting the HOST environment variable | ||||||
|  | - Related: #2000051 | ||||||
|  | 
 | ||||||
| * Mon Aug 30 2021 Oliver Gutiérrez <ogutierrez@redhat.com> - 0.0.99.3-0.4.git660b6970e998 | * Mon Aug 30 2021 Oliver Gutiérrez <ogutierrez@redhat.com> - 0.0.99.3-0.4.git660b6970e998 | ||||||
| - Fixed gating tests bats version | - Fixed gating tests bats version | ||||||
|   Related: rhbz#1977343 |   Related: rhbz#1977343 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user