Skip to content

Commit a237086

Browse files
committed
NC | Online Upgrade | RPM spec changes
Signed-off-by: Romy <[email protected]>
1 parent fc266c3 commit a237086

File tree

2 files changed

+55
-13
lines changed

2 files changed

+55
-13
lines changed

Diff for: src/deploy/RPM_build/noobaa.spec

+25-13
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
%define noobaatar %{name}-%{version}-%{revision}.tar.gz
1717
%define buildroot %{_tmppath}/%{name}-%{version}-%{release}
18+
%global noobaa_core_version_path .noobaa-core-%{noobaaver}
1819

1920
Name: noobaa-core
2021
Version: %{noobaaver}
@@ -39,6 +40,10 @@ Recommends: jemalloc
3940
%description
4041
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.
4142

43+
%pre
44+
# Get the current installed version of the package
45+
current_version=$(rpm -q --qf '%{VERSION}-%{RELEASE}' noobaa 2>/dev/null || echo "")
46+
4247
%prep
4348
%setup -n noobaa -q
4449

@@ -69,38 +74,45 @@ GYP_DEFINES="BUILD_S3SELECT=%{BUILD_S3SELECT} BUILD_S3SELECT_PARQUET=%{BUILD_S3S
6974
rm -rf $RPM_BUILD_ROOT
7075

7176
mkdir -p $RPM_BUILD_ROOT/usr/local/
72-
cp -R %{_builddir}/noobaa $RPM_BUILD_ROOT/usr/local/noobaa-core
73-
mv %{_builddir}/node/* $RPM_BUILD_ROOT/usr/local/noobaa-core/node
77+
cp -R %{_builddir}/noobaa $RPM_BUILD_ROOT/usr/local/%{noobaa_core_version_path}
78+
mv %{_builddir}/node/* $RPM_BUILD_ROOT/usr/local/%{noobaa_core_version_path}/node
7479

75-
mkdir -p $RPM_BUILD_ROOT/usr/local/noobaa-core/bin
76-
ln -s /usr/local/noobaa-core/node/bin/node $RPM_BUILD_ROOT/usr/local/noobaa-core/bin/node
77-
ln -s /usr/local/noobaa-core/node/bin/npm $RPM_BUILD_ROOT/usr/local/noobaa-core/bin/npm
78-
ln -s /usr/local/noobaa-core/node/bin/npx $RPM_BUILD_ROOT/usr/local/noobaa-core/bin/npx
80+
mkdir -p $RPM_BUILD_ROOT/usr/local/%{noobaa_core_version_path}/bin
81+
ln -s /usr/local/%{noobaa_core_version_path}/node/bin/node $RPM_BUILD_ROOT/usr/local/%{noobaa_core_version_path}/bin/node
82+
ln -s /usr/local/%{noobaa_core_version_path}/node/bin/npm $RPM_BUILD_ROOT/usr/local/%{noobaa_core_version_path}/bin/npm
83+
ln -s /usr/local/%{noobaa_core_version_path}/node/bin/npx $RPM_BUILD_ROOT/usr/local/%{noobaa_core_version_path}/bin/npx
7984

8085
mkdir -p $RPM_BUILD_ROOT/usr/local/bin/
81-
chmod +x $RPM_BUILD_ROOT/usr/local/noobaa-core/src/deploy/noobaa-cli
82-
cp $RPM_BUILD_ROOT/usr/local/noobaa-core/src/deploy/noobaa-cli $RPM_BUILD_ROOT/usr/local/bin/noobaa-cli
86+
chmod +x $RPM_BUILD_ROOT/usr/local/%{noobaa_core_version_path}/src/deploy/noobaa-cli
87+
cp $RPM_BUILD_ROOT/usr/local/%{noobaa_core_version_path}/src/deploy/noobaa-cli $RPM_BUILD_ROOT/usr/local/bin/.noobaa-cli-%{noobaaver}
8388

8489
mkdir -p $RPM_BUILD_ROOT%{_unitdir}/
85-
mv $RPM_BUILD_ROOT/usr/local/noobaa-core/src/deploy/noobaa.service $RPM_BUILD_ROOT%{_unitdir}/noobaa.service
90+
mv $RPM_BUILD_ROOT/usr/local/%{noobaa_core_version_path}/src/deploy/noobaa.service $RPM_BUILD_ROOT%{_unitdir}/noobaa.service
8691
mkdir -p $RPM_BUILD_ROOT/etc/noobaa.conf.d/
8792

8893
mkdir -p $RPM_BUILD_ROOT/etc/rsyslog.d/
89-
mv $RPM_BUILD_ROOT/usr/local/noobaa-core/src/deploy/standalone/noobaa_syslog.conf $RPM_BUILD_ROOT/etc/rsyslog.d/noobaa_syslog.conf
94+
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
9095

9196
mkdir -p $RPM_BUILD_ROOT/etc/logrotate.d
92-
mv $RPM_BUILD_ROOT/usr/local/noobaa-core/src/deploy/standalone/noobaa-logrotate $RPM_BUILD_ROOT/etc/logrotate.d/noobaa-logrotate
97+
mv $RPM_BUILD_ROOT/usr/local/%{noobaa_core_version_path}/src/deploy/standalone/noobaa-logrotate $RPM_BUILD_ROOT/etc/logrotate.d/noobaa-logrotate
9398

9499
%files
95-
/usr/local/noobaa-core
100+
/usr/local/%{noobaa_core_version_path}
96101
%{_unitdir}/noobaa.service
97102
%config(noreplace) /etc/logrotate.d/noobaa-logrotate
98103
%config(noreplace) /etc/rsyslog.d/noobaa_syslog.conf
99104
/etc/noobaa.conf.d/
100-
/usr/local/bin/noobaa-cli
105+
/usr/local/bin/.noobaa-cli-%{noobaaver}
101106
%doc
102107

103108
%post
109+
if [ -n "$current_version" ]; then
110+
mv $RPM_BUILD_ROOT/usr/local/noobaa-core $RPM_BUILD_ROOT/usr/local/.noobaa-core-%{current_version}
111+
mv $RPM_BUILD_ROOT/usr/local/bin/noobaa-cli $RPM_BUILD_ROOT/usr/local/bin/.noobaa-cli-%{current_version}
112+
fi
113+
mv $RPM_BUILD_ROOT/usr/local/%{noobaa_core_version_path} $RPM_BUILD_ROOT/usr/local/noobaa-core
114+
mv $RPM_BUILD_ROOT/usr/local/bin/.noobaa-cli-%{noobaaver} $RPM_BUILD_ROOT/usr/local/bin/noobaa-cli
115+
104116
state=$(systemctl show -p ActiveState --value rsyslog)
105117
if [ "${state}" == "active" ]; then
106118
service rsyslog restart

Diff for: src/test/unit_tests/test_rpm_install.js

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
/* Copyright (C) 2016 NooBaa */
2+
'use strict';
3+
4+
const mocha = require('mocha');
5+
const os_utils = require('../../util/os_utils');
6+
7+
mocha.describe('rpm install tests', function() {
8+
mocha.it(async () => {
9+
const make_rpm_command = `sudo make rpm BUILD_S3SELECT=0`;
10+
await exec(make_rpm_command);
11+
const get_noobaa_rpm_path_command = `noobaa_pkg=$(ls ./build/rpm/ | grep noobaa | grep .x86_64.rpm)`;
12+
await exec(get_noobaa_rpm_path_command);
13+
const install_boost_deps = `sudo apt-get update && sudo apt-get install -y libboost-system-dev libboost-thread-dev`;
14+
await exec(install_boost_deps);
15+
const install_rpm_command = `rpm -i "./build/rpm/$noobaa_pkg"`;
16+
await exec(install_rpm_command);
17+
});
18+
});
19+
20+
async function exec(command) {
21+
try {
22+
const res = await os_utils.exec(command, {
23+
return_stdout: true
24+
});
25+
return res;
26+
} catch (err) {
27+
console.error('test_rpm_install.error', err);
28+
throw err;
29+
}
30+
}

0 commit comments

Comments
 (0)