| 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 |
| |