From 192b396f310d903fa801c536c103a243542ba48e Mon Sep 17 00:00:00 2001 From: Romy <35330373+romayalon@users.noreply.github.com> Date: Thu, 7 Nov 2024 17:49:54 +0200 Subject: [PATCH 01/10] NC | Online Upgrade | RPM spec changes Signed-off-by: Romy <35330373+romayalon@users.noreply.github.com> --- .github/workflows/nc-rpm-tests.yml | 17 ++++++++++ Makefile | 39 ++++++++++++++--------- src/deploy/RPM_build/noobaa.spec | 38 ++++++++++++++-------- src/test/unit_tests/test_rpm_install.js | 42 +++++++++++++++++++++++++ 4 files changed, 109 insertions(+), 27 deletions(-) create mode 100644 .github/workflows/nc-rpm-tests.yml create mode 100644 src/test/unit_tests/test_rpm_install.js diff --git a/.github/workflows/nc-rpm-tests.yml b/.github/workflows/nc-rpm-tests.yml new file mode 100644 index 0000000000..610ede15ee --- /dev/null +++ b/.github/workflows/nc-rpm-tests.yml @@ -0,0 +1,17 @@ +name: Non Containerized RPM Tests +on: [push, pull_request] + +jobs: + run-nc-rpm-tests: + runs-on: ubuntu-latest + timeout-minutes: 90 + concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + steps: + - name: checkout + uses: actions/checkout@v4 + + - name: Run Non Containerized RPM Test + run: | + make run-nc-rpm-tests diff --git a/Makefile b/Makefile index 32d4cf022f..ea28d811b4 100644 --- a/Makefile +++ b/Makefile @@ -40,6 +40,7 @@ endif GIT_COMMIT?="$(shell git rev-parse HEAD | head -c 7)" NAME_POSTFIX?="$(shell ${CONTAINER_ENGINE} ps -a | wc -l | xargs)" +CONTAINER_NAME := noobaa_$(GIT_COMMIT)_$(NAME_POSTFIX) UNAME_S?=$(shell uname -s) ifeq ($(UNAME_S),Linux) @@ -207,7 +208,7 @@ test: tester @$(call run_mongo) @$(call run_blob_mock) @echo "\033[1;34mRunning tests\033[0m" - $(CONTAINER_ENGINE) run $(CPUSET) --network noobaa-net --name noobaa_$(GIT_COMMIT)_$(NAME_POSTFIX) --env "SUPPRESS_LOGS=$(SUPPRESS_LOGS)" --env "DB_TYPE=mongodb" --env "MONGODB_URL=mongodb://noobaa:noobaa@coretest-mongo-$(GIT_COMMIT)-$(NAME_POSTFIX)" --env "BLOB_HOST=blob-mock-$(GIT_COMMIT)-$(NAME_POSTFIX)" $(TESTER_TAG) + $(CONTAINER_ENGINE) run $(CPUSET) --network noobaa-net --name $(CONTAINER_NAME) --env "SUPPRESS_LOGS=$(SUPPRESS_LOGS)" --env "DB_TYPE=mongodb" --env "MONGODB_URL=mongodb://noobaa:noobaa@coretest-mongo-$(GIT_COMMIT)-$(NAME_POSTFIX)" --env "BLOB_HOST=blob-mock-$(GIT_COMMIT)-$(NAME_POSTFIX)" $(TESTER_TAG) @$(call stop_noobaa) @$(call stop_blob_mock) @$(call stop_mongo) @@ -219,7 +220,7 @@ root-perm-test: tester @$(call create_docker_network) @$(call run_mongo) @echo "\033[1;34mRunning root permission tests\033[0m" - $(CONTAINER_ENGINE) run $(CPUSET) --network noobaa-net --privileged --user root --name noobaa_$(GIT_COMMIT)_$(NAME_POSTFIX) --env "SUPPRESS_LOGS=$(SUPPRESS_LOGS)" --env "DB_TYPE=mongodb" --env "MONGODB_URL=mongodb://noobaa:noobaa@coretest-mongo-$(GIT_COMMIT)-$(NAME_POSTFIX)" $(TESTER_TAG) ./src/test/unit_tests/run_npm_test_on_test_container.sh -s sudo_index.js + $(CONTAINER_ENGINE) run $(CPUSET) --network noobaa-net --privileged --user root --name $(CONTAINER_NAME) --env "SUPPRESS_LOGS=$(SUPPRESS_LOGS)" --env "DB_TYPE=mongodb" --env "MONGODB_URL=mongodb://noobaa:noobaa@coretest-mongo-$(GIT_COMMIT)-$(NAME_POSTFIX)" $(TESTER_TAG) ./src/test/unit_tests/run_npm_test_on_test_container.sh -s sudo_index.js @$(call stop_noobaa) @$(call stop_mongo) @$(call remove_docker_network) @@ -231,7 +232,7 @@ run-single-test: tester @$(call run_mongo) @$(call run_blob_mock) @echo "\033[1;34mRunning tests\033[0m" - $(CONTAINER_ENGINE) run $(CPUSET) --network noobaa-net --name noobaa_$(GIT_COMMIT)_$(NAME_POSTFIX) --env "SUPPRESS_LOGS=$(SUPPRESS_LOGS)" --env "DB_TYPE=mongodb" --env "MONGODB_URL=mongodb://noobaa:noobaa@coretest-mongo-$(GIT_COMMIT)-$(NAME_POSTFIX)" --env "BLOB_HOST=blob-mock-$(GIT_COMMIT)-$(NAME_POSTFIX)" $(TESTER_TAG) ./src/test/unit_tests/run_npm_test_on_test_container.sh -s $(testname) + $(CONTAINER_ENGINE) run $(CPUSET) --network noobaa-net --name $(CONTAINER_NAME) --env "SUPPRESS_LOGS=$(SUPPRESS_LOGS)" --env "DB_TYPE=mongodb" --env "MONGODB_URL=mongodb://noobaa:noobaa@coretest-mongo-$(GIT_COMMIT)-$(NAME_POSTFIX)" --env "BLOB_HOST=blob-mock-$(GIT_COMMIT)-$(NAME_POSTFIX)" $(TESTER_TAG) ./src/test/unit_tests/run_npm_test_on_test_container.sh -s $(testname) @$(call stop_noobaa) @$(call stop_blob_mock) @$(call stop_mongo) @@ -241,18 +242,28 @@ run-single-test: tester run-nc-tests: tester @$(call create_docker_network) @echo "\033[1;34mRunning nc tests\033[0m" - $(CONTAINER_ENGINE) run $(CPUSET) --network noobaa-net --privileged --user root --name noobaa_$(GIT_COMMIT)_$(NAME_POSTFIX) --env "NC_CORETEST=true" $(TESTER_TAG) ./src/test/unit_tests/run_npm_test_on_test_container.sh -s nc_index.js + $(CONTAINER_ENGINE) run $(CPUSET) --network noobaa-net --privileged --user root --name $(CONTAINER_NAME) --env "NC_CORETEST=true" $(TESTER_TAG) ./src/test/unit_tests/run_npm_test_on_test_container.sh -s nc_index.js @$(call stop_noobaa) @$(call remove_docker_network) .PHONY: run-nc-tests +run-nc-rpm-tests: tester + @$(call create_docker_network) + @echo "\033[1;34mRunning nc tests\033[0m" + $(CONTAINER_ENGINE) run $(CPUSET) -d --network noobaa-net --privileged --user root --name $(CONTAINER_NAME) --env "NC_CORETEST=true" $(TESTER_TAG) + $(CONTAINER_ENGINE) exec $(CONTAINER_NAME) ./src/test/unit_tests/run_npm_test_on_test_container.sh -s test_rpm_install.js + @$(call stop_noobaa) + @$(call remove_docker_network) +.PHONY: run-nc-rpm-tests + + run-single-test-postgres: tester @echo "\033[1;34mRunning single test with Postgres.\033[0m" @$(call create_docker_network) @$(call run_postgres) @$(call run_blob_mock) @echo "\033[1;34mRunning tests\033[0m" - $(CONTAINER_ENGINE) run $(CPUSET) --network noobaa-net --name noobaa_$(GIT_COMMIT)_$(NAME_POSTFIX) --env "SUPPRESS_LOGS=$(SUPPRESS_LOGS)" --env "POSTGRES_HOST=coretest-postgres-$(GIT_COMMIT)-$(NAME_POSTFIX)" --env "POSTGRES_USER=noobaa" --env "DB_TYPE=postgres" --env "PG_ENABLE_QUERY_LOG=true" --env "PG_EXPLAIN_QUERIES=true" --env "BLOB_HOST=blob-mock-$(GIT_COMMIT)-$(NAME_POSTFIX)" $(TESTER_TAG) ./src/test/unit_tests/run_npm_test_on_test_container.sh -s $(testname) + $(CONTAINER_ENGINE) run $(CPUSET) --network noobaa-net --name $(CONTAINER_NAME) --env "SUPPRESS_LOGS=$(SUPPRESS_LOGS)" --env "POSTGRES_HOST=coretest-postgres-$(GIT_COMMIT)-$(NAME_POSTFIX)" --env "POSTGRES_USER=noobaa" --env "DB_TYPE=postgres" --env "PG_ENABLE_QUERY_LOG=true" --env "PG_EXPLAIN_QUERIES=true" --env "BLOB_HOST=blob-mock-$(GIT_COMMIT)-$(NAME_POSTFIX)" $(TESTER_TAG) ./src/test/unit_tests/run_npm_test_on_test_container.sh -s $(testname) @$(call stop_noobaa) @$(call stop_postgres) @$(call stop_blob_mock) @@ -265,7 +276,7 @@ test-postgres: tester @$(call run_postgres) @$(call run_blob_mock) @echo "\033[1;34mRunning tests\033[0m" - $(CONTAINER_ENGINE) run $(CPUSET) --network noobaa-net --name noobaa_$(GIT_COMMIT)_$(NAME_POSTFIX) --env "SUPPRESS_LOGS=$(SUPPRESS_LOGS)" --env "POSTGRES_HOST=coretest-postgres-$(GIT_COMMIT)-$(NAME_POSTFIX)" --env "BLOB_HOST=blob-mock-$(GIT_COMMIT)-$(NAME_POSTFIX)" --env "POSTGRES_USER=noobaa" --env "DB_TYPE=postgres" $(TESTER_TAG) + $(CONTAINER_ENGINE) run $(CPUSET) --network noobaa-net --name $(CONTAINER_NAME) --env "SUPPRESS_LOGS=$(SUPPRESS_LOGS)" --env "POSTGRES_HOST=coretest-postgres-$(GIT_COMMIT)-$(NAME_POSTFIX)" --env "BLOB_HOST=blob-mock-$(GIT_COMMIT)-$(NAME_POSTFIX)" --env "POSTGRES_USER=noobaa" --env "DB_TYPE=postgres" $(TESTER_TAG) @$(call stop_noobaa) @$(call stop_postgres) @$(call stop_blob_mock) @@ -279,7 +290,7 @@ test-external-postgres: build-ssl-postgres @$(call run_blob_mock) @$(call create_ssl_certs) @echo "\033[1;34mRunning tests on SSL PG(15)\033[0m" - $(CONTAINER_ENGINE) run $(CPUSET) --network noobaa-net --name noobaa_$(GIT_COMMIT)_$(NAME_POSTFIX) --env "SUPPRESS_LOGS=$(SUPPRESS_LOGS)" \ + $(CONTAINER_ENGINE) run $(CPUSET) --network noobaa-net --name $(CONTAINER_NAME) --env "SUPPRESS_LOGS=$(SUPPRESS_LOGS)" \ --env "POSTGRES_HOST=ssl-pg-$(GIT_COMMIT)-$(NAME_POSTFIX)" --env "POSTGRES_USER=postgres" --env "POSTGRES_DBNAME=coretest" \ --env "NODE_EXTRA_CA_CERTS=/tmp/ca.crt" --env "POSTGRES_SSL_REQUIRED=true" --env "DB_TYPE=postgres" --env "BLOB_HOST=blob-mock-$(GIT_COMMIT)-$(NAME_POSTFIX)" \ -v $(PWD)/logs:/logs -v $(PWD)/certs:/etc/external-db-secret -v $(PWD)/certs/ca.crt:/tmp/ca.crt $(TESTER_TAG) @@ -297,7 +308,7 @@ test-cephs3: tester @$(call create_docker_network) @$(call run_postgres) @echo "\033[1;34mRunning tests\033[0m" - $(CONTAINER_ENGINE) run $(CPUSET) --network noobaa-net --name noobaa_$(GIT_COMMIT)_$(NAME_POSTFIX) --env "SUPPRESS_LOGS=$(SUPPRESS_LOGS)" --env "POSTGRES_HOST=coretest-postgres-$(GIT_COMMIT)-$(NAME_POSTFIX)" --env "POSTGRES_USER=noobaa" --env "DB_TYPE=postgres" --env "POSTGRES_DBNAME=coretest" -v $(PWD)/logs:/logs $(TESTER_TAG) "./src/test/system_tests/ceph_s3_tests/run_ceph_test_on_test_container.sh" + $(CONTAINER_ENGINE) run $(CPUSET) --network noobaa-net --name $(CONTAINER_NAME) --env "SUPPRESS_LOGS=$(SUPPRESS_LOGS)" --env "POSTGRES_HOST=coretest-postgres-$(GIT_COMMIT)-$(NAME_POSTFIX)" --env "POSTGRES_USER=noobaa" --env "DB_TYPE=postgres" --env "POSTGRES_DBNAME=coretest" -v $(PWD)/logs:/logs $(TESTER_TAG) "./src/test/system_tests/ceph_s3_tests/run_ceph_test_on_test_container.sh" @$(call stop_noobaa) @$(call stop_postgres) @$(call remove_docker_network) @@ -305,7 +316,7 @@ test-cephs3: tester test-nsfs-cephs3: tester @echo "\033[1;34mRunning Ceph S3 tests on NSFS Standalone platform\033[0m" - $(CONTAINER_ENGINE) run $(CPUSET) --privileged --user root --name noobaa_$(GIT_COMMIT)_$(NAME_POSTFIX) --env "SUPPRESS_LOGS=$(SUPPRESS_LOGS)" -v $(PWD)/logs:/logs $(TESTER_TAG) "./src/test/system_tests/ceph_s3_tests/run_ceph_nsfs_test_on_test_container.sh" + $(CONTAINER_ENGINE) run $(CPUSET) --privileged --user root --name $(CONTAINER_NAME) --env "SUPPRESS_LOGS=$(SUPPRESS_LOGS)" -v $(PWD)/logs:/logs $(TESTER_TAG) "./src/test/system_tests/ceph_s3_tests/run_ceph_nsfs_test_on_test_container.sh" .PHONY: test-nsfs-cephs3 test-sanity: tester @@ -313,7 +324,7 @@ test-sanity: tester @$(call create_docker_network) @$(call run_postgres) @echo "\033[1;34mRunning sanity tests\033[0m" - $(CONTAINER_ENGINE) run $(CPUSET) --network noobaa-net --name noobaa_$(GIT_COMMIT)_$(NAME_POSTFIX) --env "SUPPRESS_LOGS=$(SUPPRESS_LOGS)" --env "POSTGRES_HOST=coretest-postgres-$(GIT_COMMIT)-$(NAME_POSTFIX)" --env "POSTGRES_USER=noobaa" --env "DB_TYPE=postgres" --env "POSTGRES_DBNAME=coretest" -v $(PWD)/logs:/logs $(TESTER_TAG) "./src/test/system_tests/run_sanity_test_on_test_container.sh" + $(CONTAINER_ENGINE) run $(CPUSET) --network noobaa-net --name $(CONTAINER_NAME) --env "SUPPRESS_LOGS=$(SUPPRESS_LOGS)" --env "POSTGRES_HOST=coretest-postgres-$(GIT_COMMIT)-$(NAME_POSTFIX)" --env "POSTGRES_USER=noobaa" --env "DB_TYPE=postgres" --env "POSTGRES_DBNAME=coretest" -v $(PWD)/logs:/logs $(TESTER_TAG) "./src/test/system_tests/run_sanity_test_on_test_container.sh" @$(call stop_noobaa) @$(call stop_postgres) @$(call remove_docker_network) @@ -325,7 +336,7 @@ test-external-pg-sanity: build-ssl-postgres @$(call run_external_postgres) @$(call create_ssl_certs) @echo "\033[1;34mRunning sanity tests on SSL PG(15)\033[0m" - $(CONTAINER_ENGINE) run $(CPUSET) --network noobaa-net --name noobaa_$(GIT_COMMIT)_$(NAME_POSTFIX) --env "SUPPRESS_LOGS=$(SUPPRESS_LOGS)" \ + $(CONTAINER_ENGINE) run $(CPUSET) --network noobaa-net --name $(CONTAINER_NAME) --env "SUPPRESS_LOGS=$(SUPPRESS_LOGS)" \ --env "POSTGRES_HOST=ssl-pg-$(GIT_COMMIT)-$(NAME_POSTFIX)" --env "POSTGRES_USER=postgres" --env "POSTGRES_DBNAME=postgres" \ --env "NODE_EXTRA_CA_CERTS=/tmp/ca.crt" --env "POSTGRES_SSL_REQUIRED=true" --env "DB_TYPE=postgres" \ -v $(PWD)/logs:/logs -v $(PWD)/certs:/etc/external-db-secret -v $(PWD)/certs/ca.crt:/tmp/ca.crt $(TESTER_TAG) \ @@ -352,9 +363,9 @@ clean: define stop_noobaa @echo "\033[1;34mStopping/removing test container\033[0m" - $(CONTAINER_ENGINE) network disconnect noobaa-net noobaa_$(GIT_COMMIT)_$(NAME_POSTFIX) - $(CONTAINER_ENGINE) stop noobaa_$(GIT_COMMIT)_$(NAME_POSTFIX) - $(CONTAINER_ENGINE) rm noobaa_$(GIT_COMMIT)_$(NAME_POSTFIX) + $(CONTAINER_ENGINE) network disconnect noobaa-net $(CONTAINER_NAME) + $(CONTAINER_ENGINE) stop $(CONTAINER_NAME) + $(CONTAINER_ENGINE) rm $(CONTAINER_NAME) @echo "\033[1;32mRemoving test container done.\033[0m" endef diff --git a/src/deploy/RPM_build/noobaa.spec b/src/deploy/RPM_build/noobaa.spec index de14ea63d7..ac2008a7b1 100644 --- a/src/deploy/RPM_build/noobaa.spec +++ b/src/deploy/RPM_build/noobaa.spec @@ -15,6 +15,7 @@ %define noobaatar %{name}-%{version}-%{revision}.tar.gz %define buildroot %{_tmppath}/%{name}-%{version}-%{release} +%global noobaa_core_version_path .noobaa-core-%{noobaaver} Name: noobaa-core Version: %{noobaaver} @@ -39,6 +40,10 @@ Recommends: jemalloc %description NooBaa is a data service for cloud environments, providing S3 object-store interface with flexible tiering, mirroring, and spread placement policies, over any storage resource that allows GET/PUT including S3, GCS, Azure Blob, Filesystems, etc. +%pre +# Get the current installed version of the package +current_version=$(rpm -q --qf '%{VERSION}-%{RELEASE}' noobaa 2>/dev/null || echo "") + %prep %setup -n noobaa -q @@ -69,38 +74,45 @@ GYP_DEFINES="BUILD_S3SELECT=%{BUILD_S3SELECT} BUILD_S3SELECT_PARQUET=%{BUILD_S3S rm -rf $RPM_BUILD_ROOT mkdir -p $RPM_BUILD_ROOT/usr/local/ -cp -R %{_builddir}/noobaa $RPM_BUILD_ROOT/usr/local/noobaa-core -mv %{_builddir}/node/* $RPM_BUILD_ROOT/usr/local/noobaa-core/node +cp -R %{_builddir}/noobaa $RPM_BUILD_ROOT/usr/local/%{noobaa_core_version_path} +mv %{_builddir}/node/* $RPM_BUILD_ROOT/usr/local/%{noobaa_core_version_path}/node -mkdir -p $RPM_BUILD_ROOT/usr/local/noobaa-core/bin -ln -s /usr/local/noobaa-core/node/bin/node $RPM_BUILD_ROOT/usr/local/noobaa-core/bin/node -ln -s /usr/local/noobaa-core/node/bin/npm $RPM_BUILD_ROOT/usr/local/noobaa-core/bin/npm -ln -s /usr/local/noobaa-core/node/bin/npx $RPM_BUILD_ROOT/usr/local/noobaa-core/bin/npx +mkdir -p $RPM_BUILD_ROOT/usr/local/%{noobaa_core_version_path}/bin +ln -s /usr/local/noobaa-core/node/bin/node $RPM_BUILD_ROOT/usr/local/%{noobaa_core_version_path}/bin/node +ln -s /usr/local/noobaa-core/node/bin/npm $RPM_BUILD_ROOT/usr/local/%{noobaa_core_version_path}/bin/npm +ln -s /usr/local/noobaa-core/node/bin/npx $RPM_BUILD_ROOT/usr/local/%{noobaa_core_version_path}/bin/npx mkdir -p $RPM_BUILD_ROOT/usr/local/bin/ -chmod +x $RPM_BUILD_ROOT/usr/local/noobaa-core/src/deploy/noobaa-cli -cp $RPM_BUILD_ROOT/usr/local/noobaa-core/src/deploy/noobaa-cli $RPM_BUILD_ROOT/usr/local/bin/noobaa-cli +chmod +x $RPM_BUILD_ROOT/usr/local/%{noobaa_core_version_path}/src/deploy/noobaa-cli +cp $RPM_BUILD_ROOT/usr/local/%{noobaa_core_version_path}/src/deploy/noobaa-cli $RPM_BUILD_ROOT/usr/local/bin/.noobaa-cli-%{noobaaver} mkdir -p $RPM_BUILD_ROOT%{_unitdir}/ -mv $RPM_BUILD_ROOT/usr/local/noobaa-core/src/deploy/noobaa.service $RPM_BUILD_ROOT%{_unitdir}/noobaa.service +mv $RPM_BUILD_ROOT/usr/local/%{noobaa_core_version_path}/src/deploy/noobaa.service $RPM_BUILD_ROOT%{_unitdir}/noobaa.service mkdir -p $RPM_BUILD_ROOT/etc/noobaa.conf.d/ mkdir -p $RPM_BUILD_ROOT/etc/rsyslog.d/ -mv $RPM_BUILD_ROOT/usr/local/noobaa-core/src/deploy/standalone/noobaa_syslog.conf $RPM_BUILD_ROOT/etc/rsyslog.d/noobaa_syslog.conf +mv $RPM_BUILD_ROOT/usr/local/%{noobaa_core_version_path}/src/deploy/standalone/noobaa_syslog.conf $RPM_BUILD_ROOT/etc/rsyslog.d/noobaa_syslog.conf mkdir -p $RPM_BUILD_ROOT/etc/logrotate.d -mv $RPM_BUILD_ROOT/usr/local/noobaa-core/src/deploy/standalone/noobaa-logrotate $RPM_BUILD_ROOT/etc/logrotate.d/noobaa-logrotate +mv $RPM_BUILD_ROOT/usr/local/%{noobaa_core_version_path}/src/deploy/standalone/noobaa-logrotate $RPM_BUILD_ROOT/etc/logrotate.d/noobaa-logrotate %files -/usr/local/noobaa-core +/usr/local/%{noobaa_core_version_path} %{_unitdir}/noobaa.service %config(noreplace) /etc/logrotate.d/noobaa-logrotate %config(noreplace) /etc/rsyslog.d/noobaa_syslog.conf /etc/noobaa.conf.d/ -/usr/local/bin/noobaa-cli +/usr/local/bin/.noobaa-cli-%{noobaaver} %doc %post +if [ -n "$current_version" ]; then + mv $RPM_BUILD_ROOT/usr/local/noobaa-core $RPM_BUILD_ROOT/usr/local/.noobaa-core-%{current_version} + mv $RPM_BUILD_ROOT/usr/local/bin/noobaa-cli $RPM_BUILD_ROOT/usr/local/bin/.noobaa-cli-%{current_version} +fi +mv $RPM_BUILD_ROOT/usr/local/%{noobaa_core_version_path} $RPM_BUILD_ROOT/usr/local/noobaa-core +mv $RPM_BUILD_ROOT/usr/local/bin/.noobaa-cli-%{noobaaver} $RPM_BUILD_ROOT/usr/local/bin/noobaa-cli + state=$(systemctl show -p ActiveState --value rsyslog) if [ "${state}" == "active" ]; then service rsyslog restart diff --git a/src/test/unit_tests/test_rpm_install.js b/src/test/unit_tests/test_rpm_install.js new file mode 100644 index 0000000000..d87776323b --- /dev/null +++ b/src/test/unit_tests/test_rpm_install.js @@ -0,0 +1,42 @@ +/* Copyright (C) 2016 NooBaa */ +'use strict'; + +const mocha = require('mocha'); +const os_utils = require('../../util/os_utils'); + +mocha.describe('rpm install tests', function() { + mocha.it('rpm build & install', async () => { + const make_rpm_command = 'make rpm BUILD_S3SELECT=0'; + await exec(make_rpm_command); + const get_noobaa_rpm_path_command = 'noobaa_pkg=$(ls ./build/rpm/ | grep noobaa | grep .x86_64.rpm)'; + await exec(get_noobaa_rpm_path_command); + const install_wget = 'dnf install wget'; + await exec(install_wget); + const downlod_boost_system = 'wget https://rpmfind.net/linux/centos-stream/9-stream/AppStream/x86_64/os/Packages/boost-system-1.75.0-8.el9.x86_64.rpm'; + await exec(downlod_boost_system); + const downlod_boost_thread = 'wget https://rpmfind.net/linux/centos-stream/9-stream/AppStream/x86_64/os/Packages/boost-thread-1.75.0-8.el9.x86_64.rpm'; + await exec(downlod_boost_thread); + const install_boost_system_rpm = 'rpm -i boost-system-1.75.0-8.el9.x86_64.rpm'; + await exec(install_boost_system_rpm); + const install_boost_thread_rpm = 'rpm -i boost-thread-1.75.0-8.el9.x86_64.rpm'; + await exec(install_boost_thread_rpm); + const install_rpm_command = 'rpm -i "./build/rpm/$noobaa_pkg"'; + await exec(install_rpm_command); + }); +}); + +/** + * exec executes a command within a shell + * @param {String} command + */ +async function exec(command) { + try { + const res = await os_utils.exec(command, { + return_stdout: true + }); + return res; + } catch (err) { + console.error('test_rpm_install.error', err); + throw err; + } +} From 2e8e35b5e17f0f61f3a4352fc86e59486d1eb9b9 Mon Sep 17 00:00:00 2001 From: Romy <35330373+romayalon@users.noreply.github.com> Date: Tue, 12 Nov 2024 17:11:07 +0200 Subject: [PATCH 02/10] add prints and cd Signed-off-by: Romy <35330373+romayalon@users.noreply.github.com> --- src/test/unit_tests/test_rpm_install.js | 29 +++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/src/test/unit_tests/test_rpm_install.js b/src/test/unit_tests/test_rpm_install.js index d87776323b..0341667fdd 100644 --- a/src/test/unit_tests/test_rpm_install.js +++ b/src/test/unit_tests/test_rpm_install.js @@ -6,22 +6,43 @@ const os_utils = require('../../util/os_utils'); mocha.describe('rpm install tests', function() { mocha.it('rpm build & install', async () => { - const make_rpm_command = 'make rpm BUILD_S3SELECT=0'; - await exec(make_rpm_command); - const get_noobaa_rpm_path_command = 'noobaa_pkg=$(ls ./build/rpm/ | grep noobaa | grep .x86_64.rpm)'; - await exec(get_noobaa_rpm_path_command); + console.log('installing pre-requisites'); + const install_wget = 'dnf install wget'; await exec(install_wget); + console.log('installed wget'); + const downlod_boost_system = 'wget https://rpmfind.net/linux/centos-stream/9-stream/AppStream/x86_64/os/Packages/boost-system-1.75.0-8.el9.x86_64.rpm'; await exec(downlod_boost_system); + console.log('downloaded boost system RPM'); const downlod_boost_thread = 'wget https://rpmfind.net/linux/centos-stream/9-stream/AppStream/x86_64/os/Packages/boost-thread-1.75.0-8.el9.x86_64.rpm'; await exec(downlod_boost_thread); + console.log('downloaded boost thread RPM'); + const install_boost_system_rpm = 'rpm -i boost-system-1.75.0-8.el9.x86_64.rpm'; await exec(install_boost_system_rpm); + console.log('installed boost system RPM'); + const install_boost_thread_rpm = 'rpm -i boost-thread-1.75.0-8.el9.x86_64.rpm'; await exec(install_boost_thread_rpm); + console.log('installed boost thread RPM'); + + const cd_cwd_command = 'cd ' + process.cwd(); + await exec(cd_cwd_command); + console.log('cd process.cwd()', process.cwd()); + + const make_rpm_command = 'make rpm BUILD_S3SELECT=0'; + await exec(make_rpm_command); + console.log('finished make rpm'); + + const get_noobaa_rpm_path_command = 'noobaa_pkg=$(ls ./build/rpm/ | grep noobaa | grep .x86_64.rpm)'; + await exec(get_noobaa_rpm_path_command); + console.log('got noobaa rpm path'); + const install_rpm_command = 'rpm -i "./build/rpm/$noobaa_pkg"'; await exec(install_rpm_command); + console.log('installed noobaa rpm'); + }); }); From 7fad1567ca7d457f7bc5a24fc483afcb66b12e4a Mon Sep 17 00:00:00 2001 From: Romy <35330373+romayalon@users.noreply.github.com> Date: Wed, 13 Nov 2024 09:12:22 +0200 Subject: [PATCH 03/10] remove pre-requisites from centos machine Signed-off-by: Romy <35330373+romayalon@users.noreply.github.com> --- src/test/unit_tests/test_rpm_install.js | 40 ++++++++++++------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/src/test/unit_tests/test_rpm_install.js b/src/test/unit_tests/test_rpm_install.js index 0341667fdd..46a47304bc 100644 --- a/src/test/unit_tests/test_rpm_install.js +++ b/src/test/unit_tests/test_rpm_install.js @@ -6,26 +6,26 @@ const os_utils = require('../../util/os_utils'); mocha.describe('rpm install tests', function() { mocha.it('rpm build & install', async () => { - console.log('installing pre-requisites'); - - const install_wget = 'dnf install wget'; - await exec(install_wget); - console.log('installed wget'); - - const downlod_boost_system = 'wget https://rpmfind.net/linux/centos-stream/9-stream/AppStream/x86_64/os/Packages/boost-system-1.75.0-8.el9.x86_64.rpm'; - await exec(downlod_boost_system); - console.log('downloaded boost system RPM'); - const downlod_boost_thread = 'wget https://rpmfind.net/linux/centos-stream/9-stream/AppStream/x86_64/os/Packages/boost-thread-1.75.0-8.el9.x86_64.rpm'; - await exec(downlod_boost_thread); - console.log('downloaded boost thread RPM'); - - const install_boost_system_rpm = 'rpm -i boost-system-1.75.0-8.el9.x86_64.rpm'; - await exec(install_boost_system_rpm); - console.log('installed boost system RPM'); - - const install_boost_thread_rpm = 'rpm -i boost-thread-1.75.0-8.el9.x86_64.rpm'; - await exec(install_boost_thread_rpm); - console.log('installed boost thread RPM'); + // console.log('installing pre-requisites'); + + // const install_wget = 'dnf install wget'; + // await exec(install_wget); + // console.log('installed wget'); + + // const downlod_boost_system = 'wget https://rpmfind.net/linux/centos-stream/9-stream/AppStream/x86_64/os/Packages/boost-system-1.75.0-8.el9.x86_64.rpm'; + // await exec(downlod_boost_system); + // console.log('downloaded boost system RPM'); + // const downlod_boost_thread = 'wget https://rpmfind.net/linux/centos-stream/9-stream/AppStream/x86_64/os/Packages/boost-thread-1.75.0-8.el9.x86_64.rpm'; + // await exec(downlod_boost_thread); + // console.log('downloaded boost thread RPM'); + + // const install_boost_system_rpm = 'rpm -i boost-system-1.75.0-8.el9.x86_64.rpm'; + // await exec(install_boost_system_rpm); + // console.log('installed boost system RPM'); + + // const install_boost_thread_rpm = 'rpm -i boost-thread-1.75.0-8.el9.x86_64.rpm'; + // await exec(install_boost_thread_rpm); + // console.log('installed boost thread RPM'); const cd_cwd_command = 'cd ' + process.cwd(); await exec(cd_cwd_command); From e2e435a290885ac6eec0e364fc6cd5177e5a6e37 Mon Sep 17 00:00:00 2001 From: Romy <35330373+romayalon@users.noreply.github.com> Date: Wed, 18 Dec 2024 15:25:04 +0200 Subject: [PATCH 04/10] fix tests Signed-off-by: Romy <35330373+romayalon@users.noreply.github.com> --- src/test/unit_tests/test_rpm_install.js | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/test/unit_tests/test_rpm_install.js b/src/test/unit_tests/test_rpm_install.js index 46a47304bc..9e2db97c94 100644 --- a/src/test/unit_tests/test_rpm_install.js +++ b/src/test/unit_tests/test_rpm_install.js @@ -27,19 +27,17 @@ mocha.describe('rpm install tests', function() { // await exec(install_boost_thread_rpm); // console.log('installed boost thread RPM'); - const cd_cwd_command = 'cd ' + process.cwd(); - await exec(cd_cwd_command); - console.log('cd process.cwd()', process.cwd()); + console.log(' process.cwd()', process.cwd()); - const make_rpm_command = 'make rpm BUILD_S3SELECT=0'; + const make_rpm_command = `make -C ${process.cwd()} rpm BUILD_S3SELECT=0`; await exec(make_rpm_command); console.log('finished make rpm'); - const get_noobaa_rpm_path_command = 'noobaa_pkg=$(ls ./build/rpm/ | grep noobaa | grep .x86_64.rpm)'; + const get_noobaa_rpm_path_command = `noobaa_pkg=$(ls ${process.cwd()}/build/rpm/ | grep noobaa | grep .x86_64.rpm)`; await exec(get_noobaa_rpm_path_command); console.log('got noobaa rpm path'); - const install_rpm_command = 'rpm -i "./build/rpm/$noobaa_pkg"'; + const install_rpm_command = `rpm -i "${process.cwd()}/build/rpm/$noobaa_pkg"`; await exec(install_rpm_command); console.log('installed noobaa rpm'); From e93b811d33f2f71f434cb666465df039eec294f5 Mon Sep 17 00:00:00 2001 From: Romy <35330373+romayalon@users.noreply.github.com> Date: Wed, 18 Dec 2024 15:25:32 +0200 Subject: [PATCH 05/10] discard noobaa-cli versioning impl Signed-off-by: Romy <35330373+romayalon@users.noreply.github.com> --- src/deploy/RPM_build/noobaa.spec | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/deploy/RPM_build/noobaa.spec b/src/deploy/RPM_build/noobaa.spec index ac2008a7b1..059d0d21d5 100644 --- a/src/deploy/RPM_build/noobaa.spec +++ b/src/deploy/RPM_build/noobaa.spec @@ -84,7 +84,7 @@ ln -s /usr/local/noobaa-core/node/bin/npx $RPM_BUILD_ROOT/usr/local/%{noobaa_cor mkdir -p $RPM_BUILD_ROOT/usr/local/bin/ chmod +x $RPM_BUILD_ROOT/usr/local/%{noobaa_core_version_path}/src/deploy/noobaa-cli -cp $RPM_BUILD_ROOT/usr/local/%{noobaa_core_version_path}/src/deploy/noobaa-cli $RPM_BUILD_ROOT/usr/local/bin/.noobaa-cli-%{noobaaver} +cp $RPM_BUILD_ROOT/usr/local/%{noobaa_core_version_path}/src/deploy/noobaa-cli $RPM_BUILD_ROOT/usr/local/bin/noobaa-cli mkdir -p $RPM_BUILD_ROOT%{_unitdir}/ mv $RPM_BUILD_ROOT/usr/local/%{noobaa_core_version_path}/src/deploy/noobaa.service $RPM_BUILD_ROOT%{_unitdir}/noobaa.service @@ -102,16 +102,14 @@ mv $RPM_BUILD_ROOT/usr/local/%{noobaa_core_version_path}/src/deploy/standalone/n %config(noreplace) /etc/logrotate.d/noobaa-logrotate %config(noreplace) /etc/rsyslog.d/noobaa_syslog.conf /etc/noobaa.conf.d/ -/usr/local/bin/.noobaa-cli-%{noobaaver} +/usr/local/bin/noobaa-cli %doc %post if [ -n "$current_version" ]; then mv $RPM_BUILD_ROOT/usr/local/noobaa-core $RPM_BUILD_ROOT/usr/local/.noobaa-core-%{current_version} - mv $RPM_BUILD_ROOT/usr/local/bin/noobaa-cli $RPM_BUILD_ROOT/usr/local/bin/.noobaa-cli-%{current_version} fi mv $RPM_BUILD_ROOT/usr/local/%{noobaa_core_version_path} $RPM_BUILD_ROOT/usr/local/noobaa-core -mv $RPM_BUILD_ROOT/usr/local/bin/.noobaa-cli-%{noobaaver} $RPM_BUILD_ROOT/usr/local/bin/noobaa-cli state=$(systemctl show -p ActiveState --value rsyslog) if [ "${state}" == "active" ]; then From 2f8ac39b0393da9dfc26bd926f7ae337c491bf85 Mon Sep 17 00:00:00 2001 From: Romy <35330373+romayalon@users.noreply.github.com> Date: Wed, 18 Dec 2024 15:58:15 +0200 Subject: [PATCH 06/10] test make rpm from outside - temp Signed-off-by: Romy <35330373+romayalon@users.noreply.github.com> --- .github/workflows/nc-rpm-tests.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/nc-rpm-tests.yml b/.github/workflows/nc-rpm-tests.yml index 610ede15ee..f0e2817d27 100644 --- a/.github/workflows/nc-rpm-tests.yml +++ b/.github/workflows/nc-rpm-tests.yml @@ -14,4 +14,6 @@ jobs: - name: Run Non Containerized RPM Test run: | - make run-nc-rpm-tests + make rpm BUILD_S3SELECT=0 + noobaa_pkg=$(ls build/rpm/ | grep noobaa | grep .x86_64.rpm) + rpm -i $noobaa_pkg From a25e5fb33d8dde801a4c3252c1cb98d98da87971 Mon Sep 17 00:00:00 2001 From: Romy <35330373+romayalon@users.noreply.github.com> Date: Wed, 18 Dec 2024 16:33:49 +0200 Subject: [PATCH 07/10] fix location Signed-off-by: Romy <35330373+romayalon@users.noreply.github.com> --- .github/workflows/nc-rpm-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/nc-rpm-tests.yml b/.github/workflows/nc-rpm-tests.yml index f0e2817d27..c416aa94f3 100644 --- a/.github/workflows/nc-rpm-tests.yml +++ b/.github/workflows/nc-rpm-tests.yml @@ -16,4 +16,4 @@ jobs: run: | make rpm BUILD_S3SELECT=0 noobaa_pkg=$(ls build/rpm/ | grep noobaa | grep .x86_64.rpm) - rpm -i $noobaa_pkg + rpm -i build/rpm/$noobaa_pkg From a6a04bcd16a55bd098f2fc4185fcc0eff9013088 Mon Sep 17 00:00:00 2001 From: Romy <35330373+romayalon@users.noreply.github.com> Date: Wed, 18 Dec 2024 17:07:26 +0200 Subject: [PATCH 08/10] install pre-requisits Signed-off-by: Romy <35330373+romayalon@users.noreply.github.com> --- .github/workflows/nc-rpm-tests.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/nc-rpm-tests.yml b/.github/workflows/nc-rpm-tests.yml index c416aa94f3..8670ef7521 100644 --- a/.github/workflows/nc-rpm-tests.yml +++ b/.github/workflows/nc-rpm-tests.yml @@ -14,6 +14,12 @@ jobs: - name: Run Non Containerized RPM Test run: | + sudo apt-get -y install wget + wget https://rpmfind.net/linux/centos-stream/9-stream/AppStream/x86_64/os/Packages/boost-system-1.75.0-8.el9.x86_64.rpm + wget https://rpmfind.net/linux/centos-stream/9-stream/AppStream/x86_64/os/Packages/boost-thread-1.75.0-8.el9.x86_64.rpm + rpm -i boost-system-1.75.0-8.el9.x86_64.rpm + rpm -i boost-thread-1.75.0-8.el9.x86_64.rpm + make rpm BUILD_S3SELECT=0 noobaa_pkg=$(ls build/rpm/ | grep noobaa | grep .x86_64.rpm) rpm -i build/rpm/$noobaa_pkg From fc55681450b465fdf2b655f4890c724ed9f47b58 Mon Sep 17 00:00:00 2001 From: Romy <35330373+romayalon@users.noreply.github.com> Date: Wed, 18 Dec 2024 17:28:34 +0200 Subject: [PATCH 09/10] install libboost via apt-get Signed-off-by: Romy <35330373+romayalon@users.noreply.github.com> --- .github/workflows/nc-rpm-tests.yml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.github/workflows/nc-rpm-tests.yml b/.github/workflows/nc-rpm-tests.yml index 8670ef7521..eb20c47c3e 100644 --- a/.github/workflows/nc-rpm-tests.yml +++ b/.github/workflows/nc-rpm-tests.yml @@ -14,11 +14,8 @@ jobs: - name: Run Non Containerized RPM Test run: | - sudo apt-get -y install wget - wget https://rpmfind.net/linux/centos-stream/9-stream/AppStream/x86_64/os/Packages/boost-system-1.75.0-8.el9.x86_64.rpm - wget https://rpmfind.net/linux/centos-stream/9-stream/AppStream/x86_64/os/Packages/boost-thread-1.75.0-8.el9.x86_64.rpm - rpm -i boost-system-1.75.0-8.el9.x86_64.rpm - rpm -i boost-thread-1.75.0-8.el9.x86_64.rpm + sudo apt-get update + sudo apt-get install -y libboost-thread-dev libboost-system-dev make rpm BUILD_S3SELECT=0 noobaa_pkg=$(ls build/rpm/ | grep noobaa | grep .x86_64.rpm) From a9ca5b6ce3ef117c27881faaa61a745f5b7f84bf Mon Sep 17 00:00:00 2001 From: Romy <35330373+romayalon@users.noreply.github.com> Date: Mon, 30 Dec 2024 11:13:48 +0200 Subject: [PATCH 10/10] add prints Signed-off-by: Romy <35330373+romayalon@users.noreply.github.com> --- src/deploy/RPM_build/noobaa.spec | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/deploy/RPM_build/noobaa.spec b/src/deploy/RPM_build/noobaa.spec index 059d0d21d5..56cbb2f26a 100644 --- a/src/deploy/RPM_build/noobaa.spec +++ b/src/deploy/RPM_build/noobaa.spec @@ -43,6 +43,10 @@ NooBaa is a data service for cloud environments, providing S3 object-store inter %pre # Get the current installed version of the package current_version=$(rpm -q --qf '%{VERSION}-%{RELEASE}' noobaa 2>/dev/null || echo "") +echo "ROMY current_version $current_version" +echo "ROMY current_version .noobaa-core-$current_version" + +echo "ROMY new_version $noobaa_core_version_path" %prep %setup -n noobaa -q