From b3322615821d893df7de0a387b4ff61be4509fdd Mon Sep 17 00:00:00 2001 From: SchoolGuy Date: Tue, 22 Feb 2022 11:53:03 +0100 Subject: [PATCH 01/16] Enable more frequent updates of dhcpd.conf --- cobbler/api.py | 11 +++++++++-- cobbler/cobbler_collections/collection.py | 2 ++ tests/api/sync_test.py | 9 +++++++-- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/cobbler/api.py b/cobbler/api.py index b016664473..c462ac66ef 100644 --- a/cobbler/api.py +++ b/cobbler/api.py @@ -1382,8 +1382,15 @@ def sync_systems(self, systems: List[str], verbose: bool = False): :param systems: List of specified systems that needs to be synced :param verbose: If the action should be just logged as needed or (if True) as much verbose as possible. """ - self.log("sync_systems") - if not (systems and isinstance(systems, list) and all(isinstance(sys_name, str) for sys_name in systems)): + self.logger.info("sync_systems") + if not ( + systems + and isinstance(systems, list) + and all(isinstance(sys_name, str) for sys_name in systems) + ): + if len(systems) < 1: + self.logger.debug("sync_systems needs at least one system to do something. Bailing out early.") + return raise TypeError('Systems must be a list of one or more strings.') sync_obj = self.get_sync(verbose=verbose) sync_obj.run_sync_systems(systems) diff --git a/cobbler/cobbler_collections/collection.py b/cobbler/cobbler_collections/collection.py index a076ef7aa8..cb1462c54d 100644 --- a/cobbler/cobbler_collections/collection.py +++ b/cobbler/cobbler_collections/collection.py @@ -406,11 +406,13 @@ def add(self, ref, save: bool = False, with_copy: bool = False, with_triggers: b if ref.virt_type == "openvz": ref.netboot_enabled = False self.lite_sync.add_single_system(ref.name) + self.api.sync_systems(systems=[ref.name]) elif isinstance(ref, profile.Profile): # we don't need openvz containers to be network bootable if ref.virt_type == "openvz": ref.enable_menu = False self.lite_sync.add_single_profile(ref.name) + self.api.sync_systems(systems=ref.get_children()) elif isinstance(ref, distro.Distro): self.lite_sync.add_single_distro(ref.name) elif isinstance(ref, image.Image): diff --git a/tests/api/sync_test.py b/tests/api/sync_test.py index 73ccf9be3c..d7c1f630ea 100644 --- a/tests/api/sync_test.py +++ b/tests/api/sync_test.py @@ -107,7 +107,9 @@ def test_get_sync(mocker): (None, ["t1.systems.de"], does_not_raise()), (True, ["t1.systems.de"], does_not_raise()), (False, ["t1.systems.de"], does_not_raise()), + (False, [], does_not_raise()), (False, [42], pytest.raises(TypeError)), + (False, None, pytest.raises(TypeError)), (False, "t1.systems.de", pytest.raises(TypeError)) ]) def test_sync_systems(input_systems, input_verbose, expected_exception, mocker): @@ -121,8 +123,11 @@ def test_sync_systems(input_systems, input_verbose, expected_exception, mocker): test_api.sync_systems(input_systems, input_verbose) # Assert - stub.run_sync_systems.assert_called_once() - stub.run_sync_systems.assert_called_with(input_systems) + if len(input_systems) > 0: + stub.run_sync_systems.assert_called_once() + stub.run_sync_systems.assert_called_with(input_systems) + else: + assert stub.run_sync_systems.call_count == 0 def test_image_rename(): From f47e3c30f138ee5005040d5d5bb3db4350c49118 Mon Sep 17 00:00:00 2001 From: SchoolGuy Date: Tue, 22 Feb 2022 11:53:36 +0100 Subject: [PATCH 02/16] Typo fixes --- cobbler/items/system.py | 2 +- cobbler/manager.py | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/cobbler/items/system.py b/cobbler/items/system.py index 55b73514ab..86b72cad60 100644 --- a/cobbler/items/system.py +++ b/cobbler/items/system.py @@ -1432,7 +1432,7 @@ def enable_ipxe(self) -> bool: @enable_ipxe.setter def enable_ipxe(self, enable_ipxe: bool): """ - Sets whether or not the system will use iPXE for booting. + Sets whether the system will use iPXE for booting. :param enable_ipxe: If ipxe should be enabled or not. :raises TypeError: In case enable_ipxe is not a boolean. diff --git a/cobbler/manager.py b/cobbler/manager.py index 4b2f30ff15..574668e8bb 100644 --- a/cobbler/manager.py +++ b/cobbler/manager.py @@ -30,7 +30,7 @@ class ManagerModule: These are typically but not necessarily used to manage systemd services. Enabling can be done via settings ``manage_*`` (e.g. ``manage_dhcp``) and ``restart_*`` (e.g. ``restart_dhcp``). - Different modules could manage the same functionality like dhcp can be managed via isc.py or dnsmasq.py + Different modules could manage the same functionality as dhcp can be managed via isc.py or dnsmasq.py (compare with ``/etc/cobbler/modules.py``). """ @@ -63,7 +63,7 @@ def write_configs(self): E.g. dhcp manager would write ``/etc/dhcpd.conf`` here """ - def restart_service(self): + def restart_service(self) -> int: """ Write module specific config files. E.g. dhcp manager would write ``/etc/dhcpd.conf`` here @@ -71,10 +71,10 @@ def restart_service(self): def regen_ethers(self): """ - ISC/BIND doesn't use this. It is there for compability reasons with other managers. + ISC/BIND doesn't use this. It is there for compatibility reasons with other managers. """ - def sync(self): + def sync(self) -> int: """ This syncs the manager's server (systemd service) with it's new config files. Basically this restarts the service to apply the changes. From 2a5c8b9af8ca4210ff51d85a3a0a86e93bd00f61 Mon Sep 17 00:00:00 2001 From: SchoolGuy Date: Tue, 22 Feb 2022 11:54:40 +0100 Subject: [PATCH 03/16] System-Tests: Add for ipxe update --- .../tests/basic-system-ipxe-dhcpd-conf-update | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100755 system-tests/tests/basic-system-ipxe-dhcpd-conf-update diff --git a/system-tests/tests/basic-system-ipxe-dhcpd-conf-update b/system-tests/tests/basic-system-ipxe-dhcpd-conf-update new file mode 100755 index 0000000000..86fdb7c00a --- /dev/null +++ b/system-tests/tests/basic-system-ipxe-dhcpd-conf-update @@ -0,0 +1,20 @@ +#!/usr/bin/env bash +# Check that Cobbler can add and remove systems + +source ${SYSTESTS_PRELUDE} && prepare + +set -x -e -o pipefail + +# Arrange +cobbler distro add --name fake --arch x86_64 --kernel ${fake_kernel} \ + --initrd ${fake_initramfs} +cobbler profile add --name fake --distro fake +cobbler system add --name testbed --profile fake --mac "aa:bb:cc:dd:ee:ff" + +# Act +cobbler system edit --name testbed --netboot-enabled 1 --enable-ipxe 1 + +# Assert +# We assume that the existence of a single http URL is a successful iPXE group creation. +# See dhcp.template for reference how we generate this. +grep 'filename "http://' /etc/dhcpd.conf From 458efd9a5001386cf63dfba0777d7bb0b8f93775 Mon Sep 17 00:00:00 2001 From: Enno Gotthold Date: Thu, 3 Mar 2022 10:15:35 +0100 Subject: [PATCH 04/16] System-Tests: Execute the system-tests again --- system-tests/scripts/run-tests | 1 + 1 file changed, 1 insertion(+) diff --git a/system-tests/scripts/run-tests b/system-tests/scripts/run-tests index 68c35845c5..0512f0df7b 100755 --- a/system-tests/scripts/run-tests +++ b/system-tests/scripts/run-tests @@ -38,6 +38,7 @@ for test in $(list_selected_tests); do test_dir=${SYSTESTS_TMP}/${test} printf ' %s... ' ${test} mkdir -p ${test_dir} + ${topdir}/tests/${test} >${test_dir}/_output 2>&1 if [ ${?} -eq 0 ]; then echo ok else From cd2f9863f364ab241e89071f333ac9f4e6d16db6 Mon Sep 17 00:00:00 2001 From: Enno Gotthold Date: Thu, 3 Mar 2022 14:34:10 +0100 Subject: [PATCH 05/16] System-Tests: Fix bootstrap --- system-tests/scripts/bootstrap | 3 +++ 1 file changed, 3 insertions(+) diff --git a/system-tests/scripts/bootstrap b/system-tests/scripts/bootstrap index 6212826b03..0e757a6529 100755 --- a/system-tests/scripts/bootstrap +++ b/system-tests/scripts/bootstrap @@ -16,8 +16,11 @@ cat >/etc/cobbler/settings.d/system-tests.settings <<-EOF server: ${server} next_server_v4: ${server} manage_dhcp: true + manage_dhcp_v4: true manage_dhcp_v6: false power_management_default_type: 'ipmilan' EOF +supervisorctl restart cobblerd + cobbler mkloaders From 670a09531d575fc733efb747a453ef9e53eb7b57 Mon Sep 17 00:00:00 2001 From: Enno Gotthold Date: Thu, 3 Mar 2022 14:34:24 +0100 Subject: [PATCH 06/16] Docker: Fix development dhcpd.conf --- docker/develop/supervisord/conf.d/dhcpd.conf | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docker/develop/supervisord/conf.d/dhcpd.conf b/docker/develop/supervisord/conf.d/dhcpd.conf index d65073133d..3a3c54e76a 100644 --- a/docker/develop/supervisord/conf.d/dhcpd.conf +++ b/docker/develop/supervisord/conf.d/dhcpd.conf @@ -1,3 +1,5 @@ [program:dhcpd] -command=/usr/lib/dhcp/dhcpd -4 start +command=/usr/sbin/dhcpd -4 -f -cf /etc/dhcpd.conf -lf /var/lib/dhcp/db/dhcpd.leases -user dhcpd -group nogroup pxe +autostart=false +autorestart=false redirect_stderr=true From ab86f6434b5267dcff9adb999c29052d3a8b74c8 Mon Sep 17 00:00:00 2001 From: Enno Gotthold Date: Thu, 3 Mar 2022 14:34:39 +0100 Subject: [PATCH 07/16] Fix isc service restart command --- cobbler/modules/managers/isc.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/cobbler/modules/managers/isc.py b/cobbler/modules/managers/isc.py index e37b473908..eebb527918 100644 --- a/cobbler/modules/managers/isc.py +++ b/cobbler/modules/managers/isc.py @@ -20,7 +20,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA """ - +import shutil import time from cobbler import utils @@ -371,7 +371,8 @@ def restart_dhcp(self, service_name: str) -> int: :param service_name: The name of the DHCP service. """ - return_code_service_restart = utils.subprocess_call("{} -t -q".format(service_name), shell=False) + dhcpd_path = shutil.which(service_name) + return_code_service_restart = utils.subprocess_call([dhcpd_path, "-t", "-q"], shell=False) if return_code_service_restart != 0: self.logger.error("Testing config - {} -t failed".format(service_name)) return_code_service_restart = utils.service_restart(service_name) From 411964a5655e44f63c209b964e522151eb51828c Mon Sep 17 00:00:00 2001 From: Enno Gotthold Date: Thu, 3 Mar 2022 14:34:51 +0100 Subject: [PATCH 08/16] Docker: Fix development setup --- docker/develop/scripts/setup-supervisor.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docker/develop/scripts/setup-supervisor.sh b/docker/develop/scripts/setup-supervisor.sh index 70fde5b679..8b3f490efc 100755 --- a/docker/develop/scripts/setup-supervisor.sh +++ b/docker/develop/scripts/setup-supervisor.sh @@ -18,5 +18,11 @@ sleep 5 echo "Load openLDAP database" ldapadd -Y EXTERNAL -H ldapi:/// -f /code/docker/develop/openldap/test.ldif +echo "Create DHCPD leases file" +touch /var/lib/dhcp/db/dhcpd.leases + echo "Show Cobbler version" cobbler version + +echo "Execute system-test-env" +make system-test-env From 55bdc09bf41c6a9a242bac07ce3315ece02c65cb Mon Sep 17 00:00:00 2001 From: Enno Gotthold Date: Thu, 3 Mar 2022 14:35:10 +0100 Subject: [PATCH 09/16] Enrich service restart error message --- cobbler/utils.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/cobbler/utils.py b/cobbler/utils.py index 525da3d284..0ed6b97051 100644 --- a/cobbler/utils.py +++ b/cobbler/utils.py @@ -255,12 +255,18 @@ def service_restart(service_name: str): if is_supervisord(): with ServerProxy('http://localhost:9001/RPC2') as server: try: - if server.supervisor.getProcessInfo(service_name).get("state") in (10, 20): + process_state = server.supervisor.getProcessInfo(service_name).get("state") + if process_state in (10, 20): server.supervisor.stopProcess(service_name) if server.supervisor.startProcess(service_name): # returns a boolean return 0 except xmlrpc.client.Fault as clientFault: - logger.error('Restarting service "%s" failed', service_name, exc_info=clientFault) + logger.error( + 'Restarting service "%s" failed (supervisord process state was "%s")', + service_name, + process_state, + exc_info=clientFault + ) return 1 elif is_systemd(): restart_command = "systemctl restart %s" % service_name From 2d8a3fdd2c0526542c00cb2ad5328b14859a82b5 Mon Sep 17 00:00:00 2001 From: Enno Gotthold Date: Thu, 3 Mar 2022 14:57:22 +0100 Subject: [PATCH 10/16] CI: Add --cap-add=NET_ADMIN flag for docker --- .github/workflows/testing.yml | 2 +- docker/debs/build-and-install-debs.sh | 2 +- docker/rpms/build-and-install-rpms.sh | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml index 1a7c4971f1..2425b291e0 100644 --- a/.github/workflows/testing.yml +++ b/.github/workflows/testing.yml @@ -20,7 +20,7 @@ jobs: - name: Pull Docker Test Container run: docker pull registry.opensuse.org/home/schoolguy/branches/opensuse/templates/images/tumbleweed/containers/opensuse/cobbler-github-ci:latest - name: Run previously built Docker Container - run: docker run -t -d -v $PWD:/code --name cobbler registry.opensuse.org/home/schoolguy/branches/opensuse/templates/images/tumbleweed/containers/opensuse/cobbler-github-ci:latest + run: docker run --cap-add=NET_ADMIN -t -d -v $PWD:/code --name cobbler registry.opensuse.org/home/schoolguy/branches/opensuse/templates/images/tumbleweed/containers/opensuse/cobbler-github-ci:latest - name: Setup Cobbler in the Container shell: 'script -q -e -c "bash {0}"' run: | diff --git a/docker/debs/build-and-install-debs.sh b/docker/debs/build-and-install-debs.sh index aa4d0b3cdc..ab9d7a15f2 100755 --- a/docker/debs/build-and-install-debs.sh +++ b/docker/debs/build-and-install-debs.sh @@ -38,7 +38,7 @@ $EXECUTOR run -ti -v "$PWD/deb-build:/usr/src/cobbler/deb-build" -v "$PWD/tmp:/v # Launch container and install cobbler echo "==> Start container ..." -$EXECUTOR run -t -d --name cobbler -v "$PWD/deb-build:/usr/src/cobbler/deb-build" "$IMAGE" /bin/bash +$EXECUTOR run --cap-add=NET_ADMIN -t -d --name cobbler -v "$PWD/deb-build:/usr/src/cobbler/deb-build" "$IMAGE" /bin/bash echo "==> Install fresh packages ..." $EXECUTOR exec -it cobbler bash -c 'dpkg -i deb-build/DEBS/all/cobbler*.deb' diff --git a/docker/rpms/build-and-install-rpms.sh b/docker/rpms/build-and-install-rpms.sh index d6e7cd54a9..bc650f28e2 100755 --- a/docker/rpms/build-and-install-rpms.sh +++ b/docker/rpms/build-and-install-rpms.sh @@ -39,7 +39,7 @@ $EXECUTOR run -t -v "$PWD/rpm-build:/usr/src/cobbler/rpm-build" "$IMAGE" # Launch container and install cobbler echo "==> Start container ..." -$EXECUTOR run -t -d --name cobbler \ +$EXECUTOR run --cap-add=NET_ADMIN -t -d --name cobbler \ -v "$PWD/rpm-build:/usr/src/cobbler/rpm-build" \ -v "$PWD/system-tests:/usr/src/cobbler/system-tests" \ "$IMAGE" /bin/bash From 15b4685af4373e8dc3d4705a21203baa7e989266 Mon Sep 17 00:00:00 2001 From: Enno Gotthold Date: Fri, 4 Mar 2022 08:49:20 +0100 Subject: [PATCH 11/16] Tests: Adjust for setting from system-tests --- tests/actions/buildiso_test.py | 4 ++-- tests/modules/managers/isc_test.py | 2 +- tests/utils_test.py | 7 +++---- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/tests/actions/buildiso_test.py b/tests/actions/buildiso_test.py index d1dc660c29..0421bc31fe 100644 --- a/tests/actions/buildiso_test.py +++ b/tests/actions/buildiso_test.py @@ -279,7 +279,7 @@ def test_generate_system( # TODO: Make tests more sophisticated assert ( result - == " append initrd=testdistro.img install=http://127.0.0.1:80/cblr/links/testdistro autoyast=default.ks" + == " append initrd=testdistro.img install=http://192.168.1.1:80/cblr/links/testdistro autoyast=default.ks" ) def test_generate_profile( @@ -309,5 +309,5 @@ def test_generate_profile( # TODO: Make tests more sophisticated assert ( result - == " append initrd=testdistro.img install=http://127.0.0.1:80/cblr/links/testdistro autoyast=default.ks" + == " append initrd=testdistro.img install=http://192.168.1.1:80/cblr/links/testdistro autoyast=default.ks" ) diff --git a/tests/modules/managers/isc_test.py b/tests/modules/managers/isc_test.py index 1322ed70ca..6a1989489f 100644 --- a/tests/modules/managers/isc_test.py +++ b/tests/modules/managers/isc_test.py @@ -147,7 +147,7 @@ def test_manager_restart_dhcp(mocker, api_isc_mock): # Assert assert mocked_subprocess.call_count == 1 - mocked_subprocess.assert_called_with("dhcpd -t -q", shell=False) + mocked_subprocess.assert_called_with(["/usr/sbin/dhcpd", "-t", "-q"], shell=False) assert mocked_service_restart.call_count == 1 mocked_service_restart.assert_called_with("dhcpd") assert result == 0 diff --git a/tests/utils_test.py b/tests/utils_test.py index d9db1ff2bd..1de611fde9 100644 --- a/tests/utils_test.py +++ b/tests/utils_test.py @@ -265,7 +265,7 @@ def test_grab_tree(): # Assert assert isinstance(result, list) - assert result[-1].server == "127.0.0.1" + assert result[-1].server == "192.168.1.1" def test_blender(): @@ -739,7 +739,7 @@ def test_local_get_cobbler_api_url(): result = utils.local_get_cobbler_api_url() # Assert - assert result == "http://127.0.0.1:80/cobbler_api" + assert result == "http://192.168.1.1:80/cobbler_api" def test_local_get_cobbler_xmlrpc_url(): @@ -956,8 +956,7 @@ def test_service_restart_supervisord(mocker): result = utils.service_restart("dhcpd") # Assert - # Currently we check for 1 because dhcpd is not running. - assert result == 1 + assert result == 0 def test_service_restart_systemctl(mocker): From 160d5c29ae0b0ae3f9970bb50d4761a39c8a084a Mon Sep 17 00:00:00 2001 From: Enno Gotthold Date: Fri, 4 Mar 2022 10:04:15 +0100 Subject: [PATCH 12/16] Docker: Don't autostart broken slapd --- docker/debs/Debian_10/supervisord/conf.d/slapd.conf | 1 + docker/debs/Debian_11/supervisord/conf.d/slapd.conf | 1 + docker/rpms/Fedora_34/supervisord/conf.d/slapd.conf | 1 + docker/rpms/opensuse_leap/supervisord/conf.d/slapd.conf | 1 + docker/rpms/opensuse_tumbleweed/supervisord/conf.d/slapd.conf | 1 + 5 files changed, 5 insertions(+) diff --git a/docker/debs/Debian_10/supervisord/conf.d/slapd.conf b/docker/debs/Debian_10/supervisord/conf.d/slapd.conf index 099eadde39..fe8f7b98ec 100644 --- a/docker/debs/Debian_10/supervisord/conf.d/slapd.conf +++ b/docker/debs/Debian_10/supervisord/conf.d/slapd.conf @@ -1,3 +1,4 @@ [program:slapd] command=/usr/sbin/slapd -u ldap -h "ldap:/// ldaps:/// ldapi:///" -f /test_dir/tests/test_data/slapd.conf redirect_stderr=true +autostart=false diff --git a/docker/debs/Debian_11/supervisord/conf.d/slapd.conf b/docker/debs/Debian_11/supervisord/conf.d/slapd.conf index 099eadde39..fe8f7b98ec 100644 --- a/docker/debs/Debian_11/supervisord/conf.d/slapd.conf +++ b/docker/debs/Debian_11/supervisord/conf.d/slapd.conf @@ -1,3 +1,4 @@ [program:slapd] command=/usr/sbin/slapd -u ldap -h "ldap:/// ldaps:/// ldapi:///" -f /test_dir/tests/test_data/slapd.conf redirect_stderr=true +autostart=false diff --git a/docker/rpms/Fedora_34/supervisord/conf.d/slapd.conf b/docker/rpms/Fedora_34/supervisord/conf.d/slapd.conf index 099eadde39..fe8f7b98ec 100644 --- a/docker/rpms/Fedora_34/supervisord/conf.d/slapd.conf +++ b/docker/rpms/Fedora_34/supervisord/conf.d/slapd.conf @@ -1,3 +1,4 @@ [program:slapd] command=/usr/sbin/slapd -u ldap -h "ldap:/// ldaps:/// ldapi:///" -f /test_dir/tests/test_data/slapd.conf redirect_stderr=true +autostart=false diff --git a/docker/rpms/opensuse_leap/supervisord/conf.d/slapd.conf b/docker/rpms/opensuse_leap/supervisord/conf.d/slapd.conf index 8b5c87fc96..08b2de3dde 100644 --- a/docker/rpms/opensuse_leap/supervisord/conf.d/slapd.conf +++ b/docker/rpms/opensuse_leap/supervisord/conf.d/slapd.conf @@ -1,3 +1,4 @@ [program:slapd] command=/usr/lib/openldap/start redirect_stderr=true +autostart=false diff --git a/docker/rpms/opensuse_tumbleweed/supervisord/conf.d/slapd.conf b/docker/rpms/opensuse_tumbleweed/supervisord/conf.d/slapd.conf index 8b5c87fc96..08b2de3dde 100644 --- a/docker/rpms/opensuse_tumbleweed/supervisord/conf.d/slapd.conf +++ b/docker/rpms/opensuse_tumbleweed/supervisord/conf.d/slapd.conf @@ -1,3 +1,4 @@ [program:slapd] command=/usr/lib/openldap/start redirect_stderr=true +autostart=false From d67f952e9005cd4ba4cf00365a440ad20028e93a Mon Sep 17 00:00:00 2001 From: Enno Gotthold Date: Fri, 4 Mar 2022 10:04:42 +0100 Subject: [PATCH 13/16] Docker: Hide supervisord warning about root --- docker/debs/Debian_10/supervisord/supervisord.conf | 1 + docker/debs/Debian_11/supervisord/supervisord.conf | 1 + docker/rpms/Fedora_34/supervisord/supervisord.conf | 1 + docker/rpms/opensuse_leap/supervisord/supervisord.conf | 1 + docker/rpms/opensuse_tumbleweed/supervisord/supervisord.conf | 1 + 5 files changed, 5 insertions(+) diff --git a/docker/debs/Debian_10/supervisord/supervisord.conf b/docker/debs/Debian_10/supervisord/supervisord.conf index 81f933173e..18eaa732cb 100644 --- a/docker/debs/Debian_10/supervisord/supervisord.conf +++ b/docker/debs/Debian_10/supervisord/supervisord.conf @@ -1,6 +1,7 @@ [supervisord] loglevel=debug logfile=/var/log/supervisor/supervisor.log +user=root [rpcinterface:supervisor] supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface diff --git a/docker/debs/Debian_11/supervisord/supervisord.conf b/docker/debs/Debian_11/supervisord/supervisord.conf index 81f933173e..18eaa732cb 100644 --- a/docker/debs/Debian_11/supervisord/supervisord.conf +++ b/docker/debs/Debian_11/supervisord/supervisord.conf @@ -1,6 +1,7 @@ [supervisord] loglevel=debug logfile=/var/log/supervisor/supervisor.log +user=root [rpcinterface:supervisor] supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface diff --git a/docker/rpms/Fedora_34/supervisord/supervisord.conf b/docker/rpms/Fedora_34/supervisord/supervisord.conf index 81f933173e..18eaa732cb 100644 --- a/docker/rpms/Fedora_34/supervisord/supervisord.conf +++ b/docker/rpms/Fedora_34/supervisord/supervisord.conf @@ -1,6 +1,7 @@ [supervisord] loglevel=debug logfile=/var/log/supervisor/supervisor.log +user=root [rpcinterface:supervisor] supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface diff --git a/docker/rpms/opensuse_leap/supervisord/supervisord.conf b/docker/rpms/opensuse_leap/supervisord/supervisord.conf index 81f933173e..18eaa732cb 100644 --- a/docker/rpms/opensuse_leap/supervisord/supervisord.conf +++ b/docker/rpms/opensuse_leap/supervisord/supervisord.conf @@ -1,6 +1,7 @@ [supervisord] loglevel=debug logfile=/var/log/supervisor/supervisor.log +user=root [rpcinterface:supervisor] supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface diff --git a/docker/rpms/opensuse_tumbleweed/supervisord/supervisord.conf b/docker/rpms/opensuse_tumbleweed/supervisord/supervisord.conf index 81f933173e..18eaa732cb 100644 --- a/docker/rpms/opensuse_tumbleweed/supervisord/supervisord.conf +++ b/docker/rpms/opensuse_tumbleweed/supervisord/supervisord.conf @@ -1,6 +1,7 @@ [supervisord] loglevel=debug logfile=/var/log/supervisor/supervisor.log +user=root [rpcinterface:supervisor] supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface From b8285ba6586298faaa6106fbe34ba16ceb9877b4 Mon Sep 17 00:00:00 2001 From: Enno Gotthold Date: Fri, 4 Mar 2022 10:23:59 +0100 Subject: [PATCH 14/16] System-Tests: Adjust dhcpd conf location check --- system-tests/tests/basic-system-ipxe-dhcpd-conf-update | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/system-tests/tests/basic-system-ipxe-dhcpd-conf-update b/system-tests/tests/basic-system-ipxe-dhcpd-conf-update index 86fdb7c00a..1618be24c2 100755 --- a/system-tests/tests/basic-system-ipxe-dhcpd-conf-update +++ b/system-tests/tests/basic-system-ipxe-dhcpd-conf-update @@ -17,4 +17,5 @@ cobbler system edit --name testbed --netboot-enabled 1 --enable-ipxe 1 # Assert # We assume that the existence of a single http URL is a successful iPXE group creation. # See dhcp.template for reference how we generate this. -grep 'filename "http://' /etc/dhcpd.conf +dhcpd_conf=$(_dir /etc/dhcpd.conf /etc/dhcp/dhcpd.conf) +grep 'filename "http://' $dhcpd_conf From 6d74940e1bf337f9ebc4fafba4fbf6cf024bde26 Mon Sep 17 00:00:00 2001 From: Enno Gotthold Date: Fri, 4 Mar 2022 10:24:37 +0100 Subject: [PATCH 15/16] System-Tests: Readd TEST_NAME to the tests --- system-tests/scripts/run-tests | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system-tests/scripts/run-tests b/system-tests/scripts/run-tests index 0512f0df7b..dfcb9a5324 100755 --- a/system-tests/scripts/run-tests +++ b/system-tests/scripts/run-tests @@ -38,7 +38,7 @@ for test in $(list_selected_tests); do test_dir=${SYSTESTS_TMP}/${test} printf ' %s... ' ${test} mkdir -p ${test_dir} - ${topdir}/tests/${test} >${test_dir}/_output 2>&1 + env TEST_NAME=${test} ${topdir}/tests/${test} >${test_dir}/_output 2>&1 if [ ${?} -eq 0 ]; then echo ok else From b5c7f72d189e86473612100b241819abd7e1754b Mon Sep 17 00:00:00 2001 From: Enno Gotthold Date: Fri, 4 Mar 2022 10:43:32 +0100 Subject: [PATCH 16/16] Docker: Add sleep to wait for supervisor Co-authored-by: Nico Krapp --- docker/debs/build-and-install-debs.sh | 2 ++ docker/rpms/build-and-install-rpms.sh | 2 ++ 2 files changed, 4 insertions(+) diff --git a/docker/debs/build-and-install-debs.sh b/docker/debs/build-and-install-debs.sh index ab9d7a15f2..dd47308077 100755 --- a/docker/debs/build-and-install-debs.sh +++ b/docker/debs/build-and-install-debs.sh @@ -65,6 +65,8 @@ fi if $RUN_SYSTEM_TESTS then + echo "==> Wait 15 sec. because supervisord gets two unkown SIGHUPs" + $EXECUTOR exec -t cobbler bash -c 'sleep 15' echo "==> Preparing the container for system tests..." $EXECUTOR exec --privileged -t cobbler make system-test-env echo "==> Running system tests ..." diff --git a/docker/rpms/build-and-install-rpms.sh b/docker/rpms/build-and-install-rpms.sh index bc650f28e2..ac2c70a847 100755 --- a/docker/rpms/build-and-install-rpms.sh +++ b/docker/rpms/build-and-install-rpms.sh @@ -79,6 +79,8 @@ fi if $RUN_SYSTEM_TESTS then + echo "==> Wait 15 sec. because supervisord gets two unkown sighups" + $EXECUTOR exec -t cobbler bash -c 'sleep 15' echo "==> Preparing the container for system tests..." $EXECUTOR exec --privileged -t cobbler make system-test-env echo "==> Running system tests ..."