openstack-placement/openstack-placement.spec
2021-02-25 07:41:32 +00:00

181 lines
6.3 KiB
RPMSpec

%{!?upstream_version: %global upstream_version %{version}%{?milestone}}
Name: openstack-placement
Version: 4.0.0
Release: 2
Summary: OpenStack Placement
License: ASL 2.0
Group: System/Management
URL: https://docs.openstack.org/placement/
Source0: openstack-placement-%{upstream_version}.tar.gz
Source1: openstack-placement.logrotate
Source2: openstack-placement-api.conf
BuildArch: noarch
BuildRequires: openstack-macros
BuildRequires: python3-routes
BuildRequires: python3-webob
BuildRequires: python3-jsonschema
BuildRequires: python3-keystonemiddleware
BuildRequires: python3-microversion-parse
BuildRequires: python3-mock
BuildRequires: python3-os-resource-classes
BuildRequires: python3-os-traits
BuildRequires: python3-oslo-concurrency
BuildRequires: python3-oslo-config
BuildRequires: python3-oslo-db
BuildRequires: python3-oslo-log
BuildRequires: python3-oslo-middleware
BuildRequires: python3-oslo-policy
BuildRequires: python3-oslotest
BuildRequires: python3-paramiko
BuildRequires: python3-pbr
BuildRequires: python3-stestr
Requires: logrotate
Requires: python3-openstack-placement = %{version}-%{release}
BuildRequires: systemd
Requires(post): systemd
Requires(postun): systemd
Requires(pre): shadow-utils
Requires(preun): systemd
%description
OpenStack Placement provides an HTTP service for managing, selecting,
and claiming providers of classes of inventory representing available
resources in a cloud.
%package -n python3-openstack-placement
Summary: OpenStack Placement - Python module
Group: Development/Languages/Python
Requires: python3-routes
Requires: python3-sqlalchemy
Requires: python3-webob
Requires: python3-jsonschema
Requires: python3-keystonemiddleware
Requires: python3-microversion-parse
Requires: python3-os-resource-classes
Requires: python3-os-traits
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-policy
Requires: python3-oslo-serialization
Requires: python3-oslo-upgradecheck
Requires: python3-oslo-utils
Requires: python3-pbr
Requires: python3-requests
Requires: python3-six
Requires: python3-sqlalchemy
Requires: python3-wsgi_intercept
%description -n python3-openstack-placement
This package contains the core Python module of OpenStack Placement.
%package api
Summary: OpenStack Compute (Placement) - API
# prereq for creating the right openstack-placement user/group
Group: System/Management
Requires: %{name} = %{version}
Requires(pre): %{name} = %{version}
BuildRequires: python3-mod_wsgi
Requires: python3-mod_wsgi
%description api
This package contains the OpenStack Placement API.
%prep
%autosetup -p1 -n openstack-placement-%{upstream_version}
%py_req_cleanup
%build
python3 setup.py build
# sample config
PYTHONPATH=. oslo-config-generator --config-file=etc/placement/config-generator.conf
# sample policy
PYTHONPATH=. oslopolicy-sample-generator --config-file=etc/placement/policy-generator.conf
%install
python3 setup.py install --root %{buildroot} --prefix %{_prefix}
### directories
install -d -m 755 %{buildroot}%{_localstatedir}/lib/placement
install -d -m 755 %{buildroot}%{_localstatedir}/lib/placement/images
install -d -m 755 %{buildroot}%{_localstatedir}/lib/placement/instances
install -d -m 755 %{buildroot}%{_localstatedir}/lib/placement/keys
install -d -m 755 %{buildroot}%{_localstatedir}/lib/placement/networks
install -d -m 755 %{buildroot}%{_localstatedir}/lib/placement/tmp
install -d -m 750 %{buildroot}%{_localstatedir}/log/placement
install -d -m 700 %{buildroot}%{_rundir}/placement
install -d -m 700 %{buildroot}%{_localstatedir}/cache/placement
install -d %{buildroot}%apache_site_dir
# apache vhost sample configs
install -p -D -m 644 %{SOURCE2} %{buildroot}%apache_site_dir
### configuration files
install -d -m 755 %{buildroot}%{_sysconfdir}/placement/
#mv %{buildroot}/usr/etc/placement/* %{buildroot}%{_sysconfdir}/placement/
install -d -m 755 %{buildroot}%{_sysconfdir}/placement/placement.conf.d
install -p -D -m 640 etc/placement/placement.conf.sample %{buildroot}%{_sysconfdir}/placement/placement.conf
install -p -D -m 640 etc/placement/policy.yaml.sample %{buildroot}%{_sysconfdir}/placement/policy.yaml
# bash-completion/logrotate/etc.
install -p -D -m 644 %{SOURCE1} %{buildroot}%{_sysconfdir}/logrotate.d/%{name}
%pre
%openstack_pre_user_group_create placement placement
%post api
%systemd_post openstack-placement-api.service
%preun api
%systemd_preun openstack-placement-api.service
%postun api
%systemd_postun_with_restart openstack-placement-api.service
%files
%license LICENSE
%doc README.rst
%config(noreplace) %{_sysconfdir}/logrotate.d/%{name}
%dir %{_sysconfdir}/placement
%dir %{_sysconfdir}/placement/placement.conf.d/
%dir %attr(0750, placement, placement) %{_localstatedir}/cache/placement
%config(noreplace) %attr(0640, root, placement) %{_sysconfdir}/placement/placement.conf
%config %attr(0640, root, placement) %{_sysconfdir}/placement/policy.yaml
%dir %attr(0755, placement, placement) %{_localstatedir}/lib/placement
%dir %attr(0750, placement, placement) %{_localstatedir}/log/placement
%{_bindir}/placement-manage
%{_bindir}/placement-status
%dir %attr(0755, root, root) %{_localstatedir}/lib/placement/images
%dir %attr(0755, placement, root) %{_localstatedir}/lib/placement/instances
%dir %attr(0755, root, root) %{_localstatedir}/lib/placement/keys
%dir %attr(0755, root, root) %{_localstatedir}/lib/placement/networks
%dir %attr(0755, root, root) %{_localstatedir}/lib/placement/tmp
%files -n python3-openstack-placement
%license LICENSE
%{python3_sitelib}/placement/
%{python3_sitelib}/placement_db_tools/
%{python3_sitelib}/openstack_placement*egg-info
%files api
%license LICENSE
%{_bindir}/placement-api
%{apache_site_dir}/openstack-placement-api.conf
%changelog
* Thu Feb 25 2021 wangxiyuan <wangxiyuan1007@gmail.com>
- Fix httpd config error and remove useless files
* Wed Feb 03 2021 ZhengZhenyu <zheng.zhenyu@outlook.com>
- Update init