315 lines
9.6 KiB
RPMSpec
315 lines
9.6 KiB
RPMSpec
%global pypi_name gnocchi
|
|
%global with_doc 1
|
|
%global service gnocchi
|
|
|
|
%{!?upstream_version: %global upstream_version %{version}%{?milestone}}
|
|
|
|
Name: %{service}
|
|
Version: 4.3.5
|
|
Release: 1
|
|
Summary: Gnocchi is a API to store metrics and index resources
|
|
|
|
License: ASL 2.0
|
|
URL: http://github.com/gnocchixyz/%{service}
|
|
Source0: https://pypi.io/packages/source/g/%{pypi_name}/%{pypi_name}-%{version}.tar.gz
|
|
Source1: %{pypi_name}-dist.conf
|
|
Source2: %{pypi_name}.logrotate
|
|
Source10: %{name}-api.service
|
|
Source11: %{name}-metricd.service
|
|
Source12: %{name}-statsd.service
|
|
BuildArch: noarch
|
|
|
|
BuildRequires: python3-setuptools >= 30.3
|
|
BuildRequires: python3-setuptools_scm
|
|
BuildRequires: python3-sphinx
|
|
BuildRequires: python3-devel
|
|
BuildRequires: systemd
|
|
BuildRequires: python3-tenacity >= 4.6.0
|
|
BuildRequires: openstack-macros
|
|
|
|
%description
|
|
HTTP API to store metrics and index resources.
|
|
|
|
%package -n python3-%{service}
|
|
Summary: %{service} python libraries
|
|
%{?python_provide:%python_provide python3-%{service}}
|
|
BuildRequires: lz4
|
|
|
|
Requires: python3-numpy >= 1.9.0
|
|
Requires: python3-daiquiri
|
|
Requires: python3-iso8601
|
|
Requires: python3-jinja2
|
|
Requires: python3-keystonemiddleware >= 4.0.0
|
|
Requires: python3-lz4
|
|
Requires: python3-monotonic
|
|
Requires: python3-msgpack
|
|
Requires: python3-oslo-config >= 3.22.0
|
|
Requires: python3-oslo-db >= 4.29.0
|
|
Requires: python3-oslo-middleware >= 3.22.0
|
|
Requires: python3-oslo-policy >= 0.3.0
|
|
Requires: python3-pecan >= 0.9
|
|
Requires: python3-requests
|
|
Requires: python3-swiftclient >= 3.1.0
|
|
Requires: python3-six
|
|
Requires: python3-sqlalchemy
|
|
Requires: python3-stevedore
|
|
Requires: python3-tooz >= 1.62
|
|
Requires: python3-tenacity >= 4.6.0
|
|
Requires: python3-ujson
|
|
Requires: python3-voluptuous >= 0.8.10
|
|
Requires: python3-werkzeug
|
|
Requires: python3-pytz
|
|
Requires: python3-webob >= 1.4.1
|
|
Requires: python3-alembic
|
|
Requires: python3-prettytable
|
|
Requires: python3-cotyledon >= 1.5.0
|
|
Requires: python3-jsonpatch
|
|
Requires: python3-cachetools
|
|
Requires: python3-pyparsing >= 2.2.0
|
|
|
|
Requires: python3-paste
|
|
Requires: python3-paste-deploy
|
|
Requires: python3-pytimeparse >= 1.1.5
|
|
Requires: python3-SQLAlchemy-Utils
|
|
Requires: python3-PyYAML
|
|
Requires: python3-psycopg2
|
|
|
|
%description -n python3-%{service}
|
|
%{service} provides API to store metrics from components
|
|
and index resources.
|
|
|
|
This package contains the %{service} python library.
|
|
|
|
|
|
%package api
|
|
|
|
Summary: %{service} api
|
|
|
|
Requires: %{name}-common = %{version}-%{release}
|
|
Obsoletes: openstack-%{service}-api < 4.1.3
|
|
Provides: openstack-%{service}-api = %{version}-%{release}
|
|
|
|
%description api
|
|
%{service} provides API to store metrics from components
|
|
and index resources.
|
|
|
|
This package contains the %{service} API service.
|
|
|
|
%package common
|
|
Summary: Components common to all %{service} services
|
|
|
|
BuildRequires: python3-daiquiri
|
|
BuildRequires: python3-jsonpatch
|
|
BuildRequires: python3-oslo-config >= 3.22.0
|
|
BuildRequires: python3-oslo-concurrency
|
|
BuildRequires: python3-oslo-db
|
|
BuildRequires: python3-oslo-log
|
|
BuildRequires: python3-oslo-messaging
|
|
BuildRequires: python3-oslo-policy
|
|
BuildRequires: python3-oslo-reports
|
|
BuildRequires: python3-oslo-service
|
|
BuildRequires: python3-lz4
|
|
BuildRequires: python3-pandas >= 0.18.0
|
|
BuildRequires: python3-pecan >= 0.9
|
|
BuildRequires: python3-tooz >= 1.62
|
|
BuildRequires: python3-ujson
|
|
BuildRequires: python3-werkzeug
|
|
BuildRequires: python3-gnocchiclient >= 2.1.0
|
|
BuildRequires: python3-pytimeparse >= 1.1.5
|
|
|
|
Requires: python3-%{service} = %{version}-%{release}
|
|
|
|
Provides: openstack-%{service}-common = %{version}-%{release}
|
|
Obsoletes: openstack-%{service}-common < 4.1.3
|
|
|
|
Provides: openstack-%{service}-indexer-sqlalchemy = %{version}-%{release}
|
|
Obsoletes: openstack-%{service}-indexer-sqlalchemy < 4.1.3
|
|
|
|
|
|
%description common
|
|
%{service} provides services to measure and
|
|
collect metrics from components.
|
|
|
|
%package metricd
|
|
|
|
Summary: %{service} metricd daemon
|
|
|
|
Requires: %{name}-common = %{version}-%{release}
|
|
|
|
Obsoletes: openstack-%{service}-metricd < 4.1.3
|
|
Provides: openstack-%{service}-metricd = %{version}-%{release}
|
|
|
|
%description metricd
|
|
%{service} provides API to store metrics from OpenStack
|
|
components and index resources.
|
|
|
|
This package contains the %{service} metricd daemon
|
|
|
|
|
|
%package statsd
|
|
|
|
Summary: %{service} statsd daemon
|
|
|
|
Requires: %{name}-common = %{version}-%{release}
|
|
|
|
Obsoletes: openstack-%{service}-statsd < 4.1.3
|
|
Provides: openstack-%{service}-statsd = %{version}-%{release}
|
|
|
|
%description statsd
|
|
%{service} provides API to store metrics from OpenStack
|
|
components and index resources.
|
|
|
|
This package contains the %{service} statsd daemon
|
|
|
|
%package -n python3-%{service}-tests
|
|
Summary: Gnocchi tests
|
|
%{?python_provide:%python_provide python3-%{service}-tests}
|
|
Requires: python3-%{service} = %{version}-%{release}
|
|
Requires: python3-gabbi >= 1.30.0
|
|
|
|
%description -n python3-%{service}-tests
|
|
This package contains the Gnocchi test files.
|
|
|
|
%if 0%{?with_doc}
|
|
%package doc
|
|
Summary: Documentation for %{service}
|
|
|
|
Requires: python3-%{service} = %{version}-%{release}
|
|
|
|
Provides: openstack-%{service}-doc = %{version}-%{release}
|
|
Obsoletes: openstack-%{service}-doc < 4.1.3
|
|
|
|
%description doc
|
|
%{service} provides services to measure and
|
|
collect metrics from components.
|
|
|
|
This package contains documentation files for %{service}.
|
|
%endif
|
|
|
|
|
|
%prep
|
|
%setup -q -n %{service}-%{upstream_version}
|
|
|
|
find . \( -name .gitignore -o -name .placeholder \) -delete
|
|
find %{service} -name \*.py -exec sed -i '/\/usr\/bin\/env python/{d;q}' {} +
|
|
|
|
sed -i 's/oslo.policy>=0.3.0.*/oslo.policy>=0.3.0/' setup.cfg
|
|
|
|
%py_req_cleanup
|
|
|
|
|
|
%build
|
|
# Generate config file
|
|
PYTHONPATH=. oslo-config-generator --config-file=%{service}/%{service}-config-generator.conf --output-file=%{service}/%{service}.conf
|
|
|
|
%{py3_build}
|
|
|
|
while read name eq value; do
|
|
test "$name" && test "$value" || continue
|
|
sed -i "0,/^# *$name=/{s!^# *$name=.*!#$name=$value!}" %{service}/%{service}.conf
|
|
done < %{SOURCE1}
|
|
|
|
%install
|
|
|
|
%{py3_install}
|
|
|
|
mkdir -p %{buildroot}/%{_sysconfdir}/sysconfig/
|
|
mkdir -p %{buildroot}/%{_sysconfdir}/%{service}/
|
|
mkdir -p %{buildroot}/%{_var}/log/%{name}
|
|
|
|
install -p -D -m 640 %{SOURCE1} %{buildroot}%{_datadir}/%{service}/%{service}-dist.conf
|
|
install -p -D -m 640 %{service}/%{service}.conf %{buildroot}%{_sysconfdir}/%{service}/%{service}.conf
|
|
|
|
cp -R %{service}/rest/policy.json %{buildroot}/%{_sysconfdir}/%{service}
|
|
|
|
install -d -m 755 %{buildroot}%{_sharedstatedir}/%{service}
|
|
install -d -m 755 %{buildroot}%{_sharedstatedir}/%{service}/tmp
|
|
install -d -m 755 %{buildroot}%{_localstatedir}/log/%{service}
|
|
|
|
install -p -D -m 644 %{SOURCE2} %{buildroot}%{_sysconfdir}/logrotate.d/%{name}
|
|
|
|
install -p -D -m 644 %{SOURCE10} %{buildroot}%{_unitdir}/%{name}-api.service
|
|
install -p -D -m 644 %{SOURCE11} %{buildroot}%{_unitdir}/%{name}-metricd.service
|
|
install -p -D -m 644 %{SOURCE12} %{buildroot}%{_unitdir}/%{name}-statsd.service
|
|
|
|
ln -sf %{_unitdir}/%{name}-api.service %{buildroot}%{_unitdir}/openstack-%{name}-api.service
|
|
ln -sf %{_unitdir}/%{name}-metricd.service %{buildroot}%{_unitdir}/openstack-%{name}-metricd.service
|
|
ln -sf %{_unitdir}/%{name}-statsd.service %{buildroot}%{_unitdir}/openstack-%{name}-statsd.service
|
|
|
|
rm -f %{buildroot}/usr/etc/%{service}/*
|
|
|
|
%pre common
|
|
getent group %{service} >/dev/null || groupadd -r %{service}
|
|
if ! getent passwd %{service} >/dev/null; then
|
|
useradd -r -g %{service} -G %{service},nobody -d %{_sharedstatedir}/%{service} -s /sbin/nologin -c "%{service} Daemons" %{service}
|
|
fi
|
|
exit 0
|
|
|
|
%post -n %{name}-api
|
|
%systemd_post %{name}-api.service
|
|
|
|
%preun -n %{name}-api
|
|
%systemd_preun %{name}-api.service
|
|
|
|
%post -n %{name}-metricd
|
|
%systemd_post %{name}-metricd.service
|
|
|
|
%preun -n %{name}-metricd
|
|
%systemd_preun %{name}-metricd.service
|
|
|
|
%post -n %{name}-statsd
|
|
%systemd_post %{name}-statsd.service
|
|
|
|
%preun -n %{name}-statsd
|
|
%systemd_preun %{name}-statsd.service
|
|
|
|
%files -n python3-%{service}
|
|
%{python3_sitelib}/%{service}
|
|
%{python3_sitelib}/%{service}-*.egg-info
|
|
%exclude %{python3_sitelib}/%{service}/tests
|
|
|
|
%files -n python3-%{service}-tests
|
|
%license LICENSE
|
|
%{python3_sitelib}/%{service}/tests
|
|
|
|
%files api
|
|
%defattr(-,root,root,-)
|
|
%{_bindir}/%{service}-api
|
|
%{_unitdir}/%{name}-api.service
|
|
%{_unitdir}/openstack-%{name}-api.service
|
|
|
|
%files common
|
|
%{_bindir}/%{service}-config-generator
|
|
%{_bindir}/%{service}-change-sack-size
|
|
%{_bindir}/%{service}-upgrade
|
|
%{_bindir}/%{service}-injector
|
|
%dir %{_sysconfdir}/%{service}
|
|
%attr(-, root, %{service}) %{_datadir}/%{service}/%{service}-dist.conf
|
|
%config(noreplace) %attr(-, root, %{service}) %{_sysconfdir}/%{service}/policy.json
|
|
%config(noreplace) %attr(-, root, %{service}) %{_sysconfdir}/%{service}/%{service}.conf
|
|
%config(noreplace) %attr(-, root, %{service}) %{_sysconfdir}/logrotate.d/%{name}
|
|
%dir %attr(0750, %{service}, root) %{_localstatedir}/log/%{service}
|
|
|
|
%defattr(-, %{service}, %{service}, -)
|
|
%dir %{_sharedstatedir}/%{service}
|
|
%dir %{_sharedstatedir}/%{service}/tmp
|
|
|
|
%files metricd
|
|
%{_bindir}/%{service}-metricd
|
|
%{_unitdir}/%{name}-metricd.service
|
|
%{_unitdir}/openstack-%{name}-metricd.service
|
|
|
|
%files statsd
|
|
%{_bindir}/%{service}-statsd
|
|
%{_unitdir}/%{name}-statsd.service
|
|
%{_unitdir}/openstack-%{name}-statsd.service
|
|
|
|
%if 0%{?with_doc}
|
|
%files doc
|
|
%doc doc/source/
|
|
%endif
|
|
|
|
%changelog
|
|
* Mon Jul 19 2021 OpenStack_SIG <openstack@openeuler.org> - 4.3.5-1
|
|
- Package Spec generate
|