blob: b3e4566d7998f993c772af92d3fc66e514ca4ee4 [file] [log] [blame]
#
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#
# RPM spec file for the Go version of Traffic Monitor (tm).
#
%define debug_package %{nil}
Name: traffic_monitor
Version: %{traffic_control_version}
Release: %{build_number}
Summary: Monitor the caches
Packager: david_neuman2 at Cable dot Comcast dot com
Vendor: Apache Software Foundation
Group: Applications/Communications
License: Apache License, Version 2.0
URL: https://github.com/apache/trafficcontrol
Source: %{_sourcedir}/traffic_monitor-%{traffic_control_version}.tgz
%description
Installs traffic_monitor
%prep
%setup
%build
# copy traffic_monitor binary
godir=src/github.com/apache/trafficcontrol/traffic_monitor
( mkdir -p "$godir" && \
cd "$godir" && \
cp -r "$TC_DIR"/traffic_monitor/* .
) || { echo "Could not copy go program at $(pwd): $!"; exit 1; }
%install
mkdir -p "${RPM_BUILD_ROOT}"/opt/traffic_monitor
mkdir -p "${RPM_BUILD_ROOT}"/opt/traffic_monitor/bin
mkdir -p "${RPM_BUILD_ROOT}"/opt/traffic_monitor/conf
mkdir -p "${RPM_BUILD_ROOT}"/opt/traffic_monitor/backup
mkdir -p "${RPM_BUILD_ROOT}"/opt/traffic_monitor/static
mkdir -p "${RPM_BUILD_ROOT}"/opt/traffic_monitor/var/run
mkdir -p "${RPM_BUILD_ROOT}"/opt/traffic_monitor/var/log
mkdir -p "${RPM_BUILD_ROOT}"/etc/init.d
mkdir -p "${RPM_BUILD_ROOT}"/etc/logrotate.d
src=src/github.com/apache/trafficcontrol/traffic_monitor
cp -p "$src"/traffic_monitor "${RPM_BUILD_ROOT}"/opt/traffic_monitor/bin/traffic_monitor
cp "$src"/static/index.html "${RPM_BUILD_ROOT}"/opt/traffic_monitor/static/index.html
cp "$src"/static/script.js "${RPM_BUILD_ROOT}"/opt/traffic_monitor/static/script.js
cp "$src"/static/style.css "${RPM_BUILD_ROOT}"/opt/traffic_monitor/static/style.css
cp "$src"/conf/traffic_ops.cfg "${RPM_BUILD_ROOT}"/opt/traffic_monitor/conf/traffic_ops.cfg
cp "$src"/conf/traffic_monitor.cfg "${RPM_BUILD_ROOT}"/opt/traffic_monitor/conf/traffic_monitor.cfg
cp "$src"/build/traffic_monitor.init "${RPM_BUILD_ROOT}"/etc/init.d/traffic_monitor
cp "$src"/build/traffic_monitor.logrotate "${RPM_BUILD_ROOT}"/etc/logrotate.d/traffic_monitor
%pre
/usr/bin/getent group traffic_monitor >/dev/null
if [ $? -ne 0 ]; then
/usr/sbin/groupadd -g 423 traffic_monitor
fi
/usr/bin/getent passwd traffic_monitor >/dev/null
if [ $? -ne 0 ]; then
/usr/sbin/useradd -g traffic_monitor -u 423 -d /opt/traffic_monitor -M traffic_monitor
fi
/usr/bin/passwd -l traffic_monitor >/dev/null
/usr/bin/chage -E -1 -I -1 -m 0 -M 99999 -W 7 traffic_monitor
if [ -e /etc/init.d/traffic_monitor ]; then
/sbin/service traffic_monitor stop
fi
#don't install over the top of java TM. This is a workaround since yum doesn't respect the Conflicts tag.
if [[ $(rpm -q traffic_monitor --qf "%{VERSION}-%{RELEASE}") < 1.9.0 ]]
then
echo -e "\n****************\n"
echo "A java version of traffic_monitor is installed. Please backup/remove that version before installing the golang version of traffic_monitor."
echo -e "\n****************\n"
exit 1
fi
%post
/sbin/chkconfig --add traffic_monitor
/sbin/chkconfig traffic_monitor on
%files
%license LICENSE
%defattr(644, traffic_monitor, traffic_monitor, 755)
%config(noreplace) %attr(600, traffic_monitor, traffic_monitor) /opt/traffic_monitor/conf/traffic_monitor.cfg
%config(noreplace) %attr(600, traffic_monitor, traffic_monitor) /opt/traffic_monitor/conf/traffic_ops.cfg
%config(noreplace) %attr(644, root, root) /etc/logrotate.d/traffic_monitor
%dir /opt/traffic_monitor
%dir /opt/traffic_monitor/bin
%dir /opt/traffic_monitor/conf
%dir /opt/traffic_monitor/backup
%dir /opt/traffic_monitor/static
%dir /opt/traffic_monitor/var
%dir /opt/traffic_monitor/var/log
%dir /opt/traffic_monitor/var/run
%attr(600, traffic_monitor, traffic_monitor) /opt/traffic_monitor/static/index.html
%attr(600, traffic_monitor, traffic_monitor) /opt/traffic_monitor/static/script.js
%attr(600, traffic_monitor, traffic_monitor) /opt/traffic_monitor/static/style.css
%attr(755, traffic_monitor, traffic_monitor) /opt/traffic_monitor/bin/traffic_monitor
%attr(755, traffic_monitor, traffic_monitor) /etc/init.d/traffic_monitor
%preun
# args for hooks: https://www.ibm.com/developerworks/library/l-rpm2/
# if $1 = 0, this is an uninstallation, if $1 = 1, this is an upgrade (don't do anything)
if [ "$1" = "0" ]; then
/sbin/chkconfig traffic_monitor off
/etc/init.d/traffic_monitor stop
/sbin/chkconfig --del traffic_monitor
fi