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

NC | Online Upgrade | RPM spec changes and github action for RPM install test #8516

Open
wants to merge 10 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions .github/workflows/nc-rpm-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
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: |
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)
rpm -i build/rpm/$noobaa_pkg
39 changes: 25 additions & 14 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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)
Expand All @@ -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)
Expand All @@ -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)
Expand All @@ -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)
Expand All @@ -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)
Expand All @@ -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)
Expand All @@ -297,23 +308,23 @@ 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)
.PHONY: test-cephs3

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
@echo "\033[1;34mRunning tests with Postgres.\033[0m"
@$(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)
Expand All @@ -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) \
Expand All @@ -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

Expand Down
38 changes: 26 additions & 12 deletions src/deploy/RPM_build/noobaa.spec
Original file line number Diff line number Diff line change
Expand Up @@ -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}
Expand All @@ -39,6 +40,14 @@ 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 "")
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

Expand Down Expand Up @@ -69,30 +78,30 @@ 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

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
Expand All @@ -101,6 +110,11 @@ mv $RPM_BUILD_ROOT/usr/local/noobaa-core/src/deploy/standalone/noobaa-logrotate
%doc

%post
if [ -n "$current_version" ]; then
mv $RPM_BUILD_ROOT/usr/local/noobaa-core $RPM_BUILD_ROOT/usr/local/.noobaa-core-%{current_version}
fi
mv $RPM_BUILD_ROOT/usr/local/%{noobaa_core_version_path} $RPM_BUILD_ROOT/usr/local/noobaa-core

state=$(systemctl show -p ActiveState --value rsyslog)
if [ "${state}" == "active" ]; then
service rsyslog restart
Expand Down
61 changes: 61 additions & 0 deletions src/test/unit_tests/test_rpm_install.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
/* 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 () => {
// 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(' process.cwd()', process.cwd());

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 ${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 "${process.cwd()}/build/rpm/$noobaa_pkg"`;
await exec(install_rpm_command);
console.log('installed noobaa rpm');

});
});

/**
* 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;
}
}