openstack-placement/openstack-placement.spec
2021-11-11 01:42:31 +00:00

252 lines
8.0 KiB
RPMSpec

%{!?upstream_version: %global upstream_version %{version}%{?milestone}}
%global with_doc 0
%global common_desc \
OpenStack Placement provides an HTTP service for managing, selecting, and \
claiming providers of classes of inventory representing available resources \
in a cloud.
Name: openstack-placement
Version: 2.0.1
Release: 1
Summary: OpenStack Placement
License: ASL 2.0
URL: http://git.openstack.org/cgit/openstack/placement/
Source0: https://tarballs.openstack.org/placement/%{name}-%{upstream_version}.tar.gz
Source1: placement-dist.conf
Source2: placement.logrotate
Source3: placement-api.conf
Source4: policy.json
BuildArch: noarch
BuildRequires: openstack-macros
BuildRequires: intltool
BuildRequires: python3-devel
BuildRequires: git-core
BuildRequires: python3-os-traits
BuildRequires: python3-setuptools
BuildRequires: python3-pbr
BuildRequires: python3-six
BuildRequires: python3-oslo-policy
BuildRequires: python3-ddt
BuildRequires: python3-oslo-rootwrap
BuildRequires: python3-oslo-log
BuildRequires: python3-oslo-concurrency
BuildRequires: python3-oslo-config
BuildRequires: python3-oslo-context
BuildRequires: python3-oslo-db
BuildRequires: python3-oslo-middleware
BuildRequires: python3-oslo-serialization
BuildRequires: python3-oslo-policy
BuildRequires: python3-oslo-upgradecheck
BuildRequires: python3-oslo-utils
BuildRequires: python3-oslotest
BuildRequires: python3-osprofiler
BuildRequires: python3-subunit
BuildRequires: python3-tooz
BuildRequires: python3-oslo-vmware
BuildRequires: python3-cursive
BuildRequires: python3-os-service-types
BuildRequires: python3-os-resource-classes
BuildRequires: python3-microversion-parse
BuildRequires: python3-jsonschema
BuildRequires: python3-sqlalchemy
BuildRequires: python3-routes
BuildRequires: python3-webob
BuildRequires: python3-keystonemiddleware
BuildRequires: python3-requests
BuildRequires: python3-stestr
Requires: openstack-placement-api
%description
%{common_desc}
%package common
Summary: Components common to all OpenStack Placement services
Requires: python3-placement = %{version}-%{release}
%description common
%{common_desc}
This package contains scripts, config and dependencies shared
between all the OpenStack Placement services.
%package api
Summary: OpenStack Placement API service
Requires: openstack-placement-common = %{version}-%{release}
Requires: httpd
Requires: python3-mod_wsgi
%description api
%{common_desc}
This package contains the Placement service, which will initially
allow for the management of resource providers.
%package -n python3-placement
Summary: Placement Python libraries
%{?python_provide:%python_provide python3-placement}
Requires: python3-sqlalchemy
Requires: python3-routes
Requires: python3-webob
Requires: python3-keystonemiddleware
Requires: python3-jsonschema
Requires: python3-microversion-parse
Requires: python3-os-traits
Requires: python3-os-resource-classes
Requires: python3-oslo-concurrency
Requires: python3-oslo-config
Requires: python3-oslo-context
Requires: python3-oslo-db
Requires: python3-oslo-log
Requires: python3-oslo-middleware
Requires: python3-oslo-serialization
Requires: python3-oslo-upgradecheck
Requires: python3-oslo-utils
Requires: python3-oslo-policy
Requires: python3-pbr
Requires: python3-requests
%description -n python3-placement
%{common_desc}
This package contains the Placement Python library.
%package -n python3-placement-tests
Summary: Placement tests
%{?python_provide:%python_provide python3-placement-tests}
Requires: openstack-placement-common = %{version}-%{release}
Requires: python3-hacking
Requires: python3-coverage
Requires: python3-fixtures
Requires: python3-mock
Requires: python3-PyMySQL
Requires: python3-oslotest
Requires: python3-stestr
Requires: python3-testtools
Requires: python3-gabbi
Requires: python3-wsgi_intercept
%description -n python3-placement-tests
%{common_desc}
This package contains the Placement Python library tests.
%if 0%{?with_doc}
%package doc
Summary: Documentation for OpenStack Placement
BuildRequires: graphviz
BuildRequires: python3-openstackdocstheme
BuildRequires: python3-oslo-config
BuildRequires: python3-oslo-log
BuildRequires: python3-oslo-messaging
BuildRequires: python3-oslo-utils
BuildRequires: python3-routes
BuildRequires: python3-sphinx
BuildRequires: python3-sphinxcontrib-actdiag
BuildRequires: python3-sphinxcontrib-seqdiag
BuildRequires: python3-sphinx-feature-classification
BuildRequires: python3-sqlalchemy
BuildRequires: python3-webob
%description doc
%{common_desc}
This package contains documentation files for Placement.
%endif
%prep
# "-S git" is necessary to run build
%autosetup -n openstack-placement-%{upstream_version} -S git
find . \( -name .gitignore -o -name .placeholder \) -delete
find placement -name \*.py -exec sed -i '/\/usr\/bin\/env python/{d;q}' {} +
%py_req_cleanup
%build
PYTHONPATH=. oslo-config-generator --config-file=etc/placement/config-generator.conf
PYTHONPATH=. oslopolicy-sample-generator --config-file=etc/placement/policy-generator.conf
%{py3_build}
%install
%{py3_install}
export PYTHONPATH=.
%if 0%{?with_doc}
sphinx-build -W -b html -d doc/build/doctrees doc/source doc/build/html
rm -rf doc/build/html/.{doctrees,buildinfo}
%endif
install -d -m 750 %{buildroot}%{_localstatedir}/log/placement
install -d -m 755 %{buildroot}%{_sysconfdir}/placement
install -p -D -m 640 etc/placement/placement.conf.sample %{buildroot}%{_sysconfdir}/placement/placement.conf
install -p -D -m 640 %{SOURCE1} %{buildroot}%{_datarootdir}/placement/placement-dist.conf
install -p -D -m 640 %{SOURCE3} %{buildroot}%{_sysconfdir}/httpd/conf.d/00-placement-api.conf
install -p -D -m 640 %{SOURCE4} %{buildroot}%{_sysconfdir}/placement/policy.json
install -p -D -m 644 %{SOURCE2} %{buildroot}%{_sysconfdir}/logrotate.d/openstack-placement
install -d -m 755 %{buildroot}%{_datarootdir}/placement
install -p -D -m 755 tools/mysql-migrate-db.sh %{buildroot}%{_datarootdir}/placement/mysql-migrate-db.sh
install -p -D -m 755 tools/postgresql-migrate-db.sh %{buildroot}%{_datarootdir}/placement/postgresql-migrate-db.sh
%check
export PYTHON=%{__python3}
OS_TEST_PATH=./placement/tests/unit stestr run
%pre common
getent group placement >/dev/null || groupadd -r placement
getent passwd placement >/dev/null || \
useradd -r -g placement -d / -s /bin/bash -c "OpenStack Placement" placement
exit 0
%files
%files common
%license LICENSE
%doc etc/placement/policy.yaml.sample
%{_bindir}/placement-manage
%{_bindir}/placement-status
%dir %{_datarootdir}/placement
%attr(-, root, placement) %{_datarootdir}/placement/placement-dist.conf
%{_datarootdir}/placement/mysql-migrate-db.sh
%{_datarootdir}/placement/postgresql-migrate-db.sh
%dir %{_sysconfdir}/placement
%config(noreplace) %attr(-, root, placement) %{_sysconfdir}/placement/placement.conf
%config(noreplace) %attr(-, root, placement) %{_sysconfdir}/placement/policy.json
%config(noreplace) %{_sysconfdir}/logrotate.d/openstack-placement
%dir %attr(0750, placement, root) %{_localstatedir}/log/placement
%files api
%license LICENSE
%config(noreplace) %{_sysconfdir}/httpd/conf.d/00-placement-api.conf
%{_bindir}/placement-api
%files -n python3-placement
%license LICENSE
%{python3_sitelib}/placement
%{python3_sitelib}/placement_db_tools
%{python3_sitelib}/openstack_placement-*.egg-info
%exclude %{python3_sitelib}/placement/tests
%files -n python3-placement-tests
%license LICENSE
%{python3_sitelib}/placement/tests
%if 0%{?with_doc}
%files doc
%license LICENSE
%doc doc/build/html
%endif
%changelog
* Fri Nov 05 2021 wangxiyuan <wangxiyuan1007@gmail.com> - 2.0.1-1
- Support OpenStack Train release