Files
rpm-packaging/openstack/masakari-monitors/masakari-monitors.spec.j2
Dirk Mueller ead0013454 Default to secure http
Most servers meanwhile default to secure http, so prefering
to link those over plain http (better default, and saves
one redirect)

Change-Id: I0a7f31e000f8c0aedaae5e42d9b522aca4d8a814
2018-08-20 10:04:27 +02:00

272 lines
11 KiB
Django/Jinja

{% set pypi_name = 'masakari-monitors' %}
{% set source = fetch_source('https://tarballs.openstack.org/masakari-monitors/masakari-monitors-master.tar.gz') %}
{% set upstream_version = upstream_version() %}
{% set rpm_release = '1' %}
%global sname {{ pypi_name }}
%global python_pkg python-%{sname}
Name: {{ py2name('masakari-monitors') }}
Version: {{ py2rpmversion() }}
Release: {{ py2rpmrelease() }}
Summary: Monitors for Virtual Machine High Availability (VMHA) service in OpenStack
License: {{ license('Apache-2.0') }}
Group: Development/Libraries
URL: https://launchpad.net/masakari-monitors
# basename filter prevents OBS from downloading the source itself which would
# fetch from a stale cache hashed by non-changing URL.
Source0: {{ source|basename }}
Source1: masakari-hostmonitor.service
Source2: masakari-instancemonitor.service
Source3: masakari-processmonitor.service
Source4: masakari-monitors.tmpfiles
Source5: masakari-introspectiveinstancemonitor.service
BuildRequires: openstack-macros
BuildRequires: {{ py2pkg('ddt') }}
BuildRequires: {{ py2pkg('eventlet') }}
BuildRequires: {{ py2pkg('keystoneauth1') }}
BuildRequires: {{ py2pkg('keystonemiddleware') }}
BuildRequires: {{ py2pkg('libvirt-python') }}
BuildRequires: {{ py2pkg('python-masakariclient') }}
BuildRequires: {{ py2pkg('microversion_parse') }}
BuildRequires: {{ py2pkg('python-novaclient') }}
BuildRequires: {{ py2pkg('python-openstackclient') }}
BuildRequires: {{ py2pkg('openstacksdk') }}
BuildRequires: {{ py2pkg('oslo.concurrency') }}
BuildRequires: {{ py2pkg('oslo.config') }}
BuildRequires: {{ py2pkg('oslo.db') }}
BuildRequires: {{ py2pkg('oslo.i18n') }}
BuildRequires: {{ py2pkg('oslo.log') }}
BuildRequires: {{ py2pkg('oslo.middleware') }}
BuildRequires: {{ py2pkg('oslo.policy') }}
BuildRequires: {{ py2pkg('oslo.privsep') }}
BuildRequires: {{ py2pkg('oslo.service') }}
BuildRequires: {{ py2pkg('oslo.versionedobjects') }}
BuildRequires: {{ py2pkg('oslotest') }}
BuildRequires: {{ py2pkg('python-subunit') }}
BuildRequires: {{ py2pkg('reno') }}
BuildRequires: {{ py2pkg('requests-mock') }}
BuildRequires: {{ py2pkg('taskflow') }}
BuildRequires: {{ py2pkg('testrepository') }}
BuildRequires: {{ py2pkg('testresources') }}
BuildRequires: {{ py2pkg('testscenarios') }}
BuildRequires: {{ py2pkg('testtools') }}
Requires: python-masakari-monitors = %{version}-%{release}
BuildArch: noarch
%if 0%{?suse_version}
BuildRequires: systemd-rpm-macros
%else
BuildRequires: systemd
%endif
%description
Monitors for the Masakari service for Virtual Machine
High Availability (VMHA) service in OpenStack.
System package - %{name}
Python package - %{python_pkg}
%package doc
Summary: Documentation for OpenStack Masakari Service
BuildRequires: git
BuildRequires: {{ py2pkg('Tempest') }}
BuildRequires: {{ py2pkg('Sphinx') }}
BuildRequires: {{ py2pkg('WSME') }}
BuildRequires: {{ py2pkg('jsonschema') }}
BuildRequires: {{ py2pkg('networkx') }}
BuildRequires: {{ py2pkg('oslosphinx') }}
BuildRequires: {{ py2pkg('paramiko') }}
BuildRequires: {{ py2pkg('pecan') }}
BuildRequires: {{ py2pkg('pep8') }}
BuildRequires: {{ py2pkg('sphinxcontrib-httpdomain') }}
BuildRequires: {{ py2pkg('sphinxcontrib-pecanwsme') }}
BuildRequires: {{ py2pkg('yaql') }}
%description doc
Monitors for the Masakari service for Virtual Machine
High Availability (VMHA) service in OpenStack.
This package contains the documentation.
%package -n %{python_pkg}
Summary: masakari-monitors Python libraries
Requires: {{ py2pkg('Babel') }}
Requires: {{ py2pkg('iso8601') }}
Requires: {{ py2pkg('jsonschema') }}
Requires: {{ py2pkg('keystoneauth1') }}
Requires: {{ py2pkg('keystonemiddleware') }}
Requires: {{ py2pkg('python-masakariclient') }}
Requires: {{ py2pkg('microversion_parse') }}
Requires: {{ py2pkg('python-novaclient') }}
Requires: {{ py2pkg('openstacksdk') }}
Requires: {{ py2pkg('oslo.config') }}
Requires: {{ py2pkg('oslo.db') }}
Requires: {{ py2pkg('oslo.i18n') }}
Requires: {{ py2pkg('oslo.log') }}
Requires: {{ py2pkg('oslo.messaging') }}
Requires: {{ py2pkg('oslo.middleware') }}
Requires: {{ py2pkg('oslo.policy') }}
Requires: {{ py2pkg('oslo.privsep') }}
Requires: {{ py2pkg('oslo.service') }}
Requires: {{ py2pkg('oslo.utils') }}
Requires: {{ py2pkg('oslo.versionedobjects') }}
Requires: {{ py2pkg('pbr') }}
Requires: {{ py2pkg('setuptools') }}
Requires: {{ py2pkg('six') }}
Requires: {{ py2pkg('stevedore') }}
Requires: {{ py2pkg('taskflow') }}
%description -n python-%{sname}
Masakari is a service providing high availability for VMs in OpenStack.
This package contains the Python libraries for the monitoring components.
%package -n openstack-masakari-hostmonitor
Summary: Host monitoring component of OpenStack Masakari service
Requires: %{name} = %{version}
%description -n openstack-masakari-hostmonitor
This component of the Masakari service for VM HA in OpenStack is
responsible for monitoring the health of nova-compute hypervisors.
%package -n openstack-masakari-instancemonitor
Summary: Instance monitoring component of OpenStack Masakari service
Requires: %{name} = %{version}
%description -n openstack-masakari-instancemonitor
This component of the Masakari service for VM HA in OpenStack is
responsible for monitoring the health of individual VM instances.
%package -n openstack-masakari-introspectiveinstancemonitor
Summary: Instance monitoring component of OpenStack Masakari service
Requires: %{name} = %{version}
%description -n openstack-masakari-introspectiveinstancemonitor
This component of the Masakari service for VM HA in OpenStack is
responsible for monitoring the health of individual VM instances.
%package -n openstack-masakari-processmonitor
Summary: Process monitoring component of OpenStack Masakari service
Requires: %{name} = %{version}
%description -n openstack-masakari-processmonitor
This component of the Masakari service for VM HA in OpenStack is
responsible for monitoring the health of processes which need to stay
running in order for the compute plane to be functional and highly
available.
%prep
%autosetup -n %{sname}-{{upstream_version}}
%py_req_cleanup
%build
%{py2_build}
export PYTHONPATH="."
# from tox.ini's testenv:genconfig
oslo-config-generator --config-file etc/masakarimonitors/masakarimonitors-config-generator.conf
%{__python2} setup.py build_sphinx
# remove the sphinx-build leftovers
rm -rf doc/build/html/.{doctrees,buildinfo}
%install
%{py2_install}
mkdir -p %{buildroot}%{_sysconfdir}/masakarimonitors/
mkdir -p %{buildroot}%{_localstatedir}/log/masakari-monitors
# These are broken (hard-coded references to /usr/local/lib/python2.7)
# and provide nothing which can't be handled better by systemd,
# so we'll use systemd services instead.
rm %{buildroot}%{_bindir}/masakari-{host,process}monitor.sh*
#systemd unitfiles
install -p -D -m 644 %SOURCE1 %{buildroot}%{_unitdir}/openstack-masakari-hostmonitor.service
install -p -D -m 644 %SOURCE2 %{buildroot}%{_unitdir}/openstack-masakari-instancemonitor.service
install -p -D -m 644 %SOURCE3 %{buildroot}%{_unitdir}/openstack-masakari-processmonitor.service
install -p -D -m 644 %SOURCE5 %{buildroot}%{_unitdir}/openstack-masakari-introspectiveinstancemonitor.service
install -p -D -m 644 %SOURCE4 %{buildroot}/%{_tmpfilesdir}/masakari-monitors.conf
install -p -D -m 640 etc/masakarimonitors/masakarimonitors.conf.sample %{buildroot}%{_sysconfdir}/masakarimonitors/masakarimonitors.conf
install -p -D -m 640 etc/masakarimonitors/hostmonitor.conf.sample %{buildroot}%{_sysconfdir}/masakarimonitors/hostmonitor.conf
install -p -D -m 640 etc/masakarimonitors/processmonitor.conf.sample %{buildroot}%{_sysconfdir}/masakarimonitors/processmonitor.conf
install -p -D -m 640 etc/masakarimonitors/process_list.yaml.sample %{buildroot}%{_sysconfdir}/masakarimonitors/process_list.yaml
install -p -D -m 640 etc/masakarimonitors/proc.list.sample %{buildroot}%{_sysconfdir}/masakarimonitors/proc.list
chmod +x %{buildroot}%{_bindir}/masakari-*
%pre
%openstack_pre_user_group_create masakari masakari
%post
%tmpfiles_create %{_tmpfilesdir}/masakari-monitors.conf
%check
# TESTS do not work atm
exit 0
testr init
testr run
%post -n openstack-masakari-hostmonitor
%systemd_post openstack-masakari-hostmonitor.service
%preun -n openstack-masakari-hostmonitor
%systemd_preun openstack-masakari-hostmonitor.service
%postun -n openstack-masakari-hostmonitor
%systemd_postun_with_restart openstack-masakari-hostmonitor.service
%post -n openstack-masakari-instancemonitor
%systemd_post openstack-masakari-instancemonitor.service
%preun -n openstack-masakari-instancemonitor
%systemd_preun openstack-masakari-instancemonitor.service
%postun -n openstack-masakari-instancemonitor
%systemd_postun_with_restart openstack-masakari-instancemonitor.service
%post -n openstack-masakari-processmonitor
%systemd_post openstack-masakari-processmonitor.service
%preun -n openstack-masakari-processmonitor
%systemd_preun openstack-masakari-processmonitor.service
%postun -n openstack-masakari-processmonitor
%systemd_postun_with_restart openstack-masakari-processmonitor.service
%files
%license LICENSE
%dir %{_sysconfdir}/masakarimonitors
%config(noreplace) %attr(-, masakari, masakari) %{_sysconfdir}/masakarimonitors/masakarimonitors.conf
%dir %attr(750, masakari, masakari) %{_localstatedir}/log/masakari-monitors
%_tmpfilesdir/masakari-monitors.conf
%files -n openstack-masakari-hostmonitor
%config(noreplace) %attr(-, masakari, masakari) %{_sysconfdir}/masakarimonitors/hostmonitor.conf
%{_bindir}/masakari-hostmonitor
%{_unitdir}/openstack-masakari-hostmonitor.service
%files -n openstack-masakari-instancemonitor
%{_bindir}/masakari-instancemonitor
%{_unitdir}/openstack-masakari-instancemonitor.service
%files -n openstack-masakari-introspectiveinstancemonitor
%{_bindir}/masakari-introspectiveinstancemonitor
%{_unitdir}/openstack-masakari-introspectiveinstancemonitor.service
%files -n openstack-masakari-processmonitor
%{_bindir}/masakari-processmonitor
%{_unitdir}/openstack-masakari-processmonitor.service
%config(noreplace) %attr(-, masakari, masakari) %{_sysconfdir}/masakarimonitors/processmonitor.conf
%config(noreplace) %attr(-, masakari, masakari) %{_sysconfdir}/masakarimonitors/process_list.yaml
%config(noreplace) %attr(-, masakari, masakari) %{_sysconfdir}/masakarimonitors/proc.list
%files doc
%license LICENSE
%doc doc/build/html
%files -n %{python_pkg}
%license LICENSE
%{python2_sitelib}/masakari*
%changelog