onos.spec
1.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
Name: onos
Version: @ONOS_RPM_VERSION
Release: 1
Summary: Open Networking Operating System (ONOS)
Vendor: ONOS Project
Packager: ONOS Project
Group: Applications/Engineering
License: Apache 2.0
Requires: jre >= 1:8
URL: http://www.onosproject.org
Source0: %{name}-@ONOS_RPM_VERSION.tar.gz
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-buildroot
%description
Open Network Operating System (ONOS) is an open source SDN controller.
%prep
%setup -q
%install
mkdir -p %{buildroot}
cp -R * %{buildroot}
%clean
rm -rf %{buildroot}
%files
%defattr(-,root,root,-)
/etc/init/onos.conf
/opt/onos/
%post
ONOS_USER=sdn
# Check to see if user exists, and if not, create a service account
getent passwd $ONOS_USER >/dev/null 2&>1 || ( useradd -M $ONOS_USER && usermod -L $ONOS_USER )
# Create ONOS options file
[ ! -f /opt/onos/options ] && cat << EOF > /opt/onos/options
export ONOS_OPTS=server
export ONOS_USER="$ONOS_USER"
EOF
# Change permissions for onos directory
[ -d /opt/onos ] && chown -R $ONOS_USER.$ONOS_USER /opt/onos
echo ONOS successfully installed at /opt/onos
%preun
# Check if onos is running; if it is, stop onos
[ -z "$(status onos 2>/dev/null | grep start)" ] && echo "onos is not running." || (
stop onos
# Wait for onos to stop up to 5 seconds
for i in $(seq 1 5); do
[ -z "$(ps -ef | grep karaf.jar | grep -v grep)" ] && break
sleep 1
done
[ -z "$(ps -ef | grep karaf.jar | grep -v grep)" ] && echo 'Stopped onos service' || echo 'Failed to stop onos'
)
%postun
#TODO this should be less brute-force
rm -rf /opt/onos
%changelog
# TODO