470 lines
14 KiB
RPMSpec
470 lines
14 KiB
RPMSpec
%global with_doc 0
|
|
%global service heat
|
|
|
|
%global common_desc \
|
|
Heat is a service to orchestrate composite cloud applications using a \
|
|
declarative template format through an OpenStack-native REST API.
|
|
|
|
|
|
Name: openstack-%{service}
|
|
Summary: OpenStack Orchestration (%{service})
|
|
Version: 13.1.0
|
|
Release: 2
|
|
License: ASL 2.0
|
|
URL: http://www.openstack.org
|
|
Source0: https://tarballs.openstack.org/%{service}/%{name}-%{version}.tar.gz
|
|
|
|
Source1: %{service}.logrotate
|
|
Source2: openstack-%{service}-api.service
|
|
Source3: openstack-%{service}-api-cfn.service
|
|
Source4: openstack-%{service}-engine.service
|
|
Source6: openstack-%{service}-all.service
|
|
|
|
Source20: %{service}-dist.conf
|
|
|
|
BuildArch: noarch
|
|
BuildRequires: git
|
|
BuildRequires: openstack-macros
|
|
BuildRequires: python3-devel
|
|
BuildRequires: python3-stevedore
|
|
BuildRequires: python3-oslo-cache
|
|
BuildRequires: python3-oslo-context
|
|
BuildRequires: python3-oslo-middleware
|
|
BuildRequires: python3-oslo-policy
|
|
BuildRequires: python3-oslo-messaging
|
|
BuildRequires: python3-setuptools
|
|
BuildRequires: python3-oslo-i18n
|
|
BuildRequires: python3-oslo-db
|
|
BuildRequires: python3-oslo-upgradecheck
|
|
BuildRequires: python3-oslo-utils
|
|
BuildRequires: python3-oslo-log
|
|
BuildRequires: python3-oslo-versionedobjects
|
|
BuildRequires: python3-eventlet
|
|
BuildRequires: python3-kombu
|
|
BuildRequires: python3-netaddr
|
|
BuildRequires: python3-neutron-lib
|
|
BuildRequires: python3-osprofiler
|
|
BuildRequires: python3-six
|
|
BuildRequires: python3-paramiko
|
|
BuildRequires: python3-yaql
|
|
# These are required to build due to the requirements check added
|
|
BuildRequires: python3-routes
|
|
BuildRequires: python3-sqlalchemy
|
|
BuildRequires: python3-pbr
|
|
BuildRequires: python3-cryptography
|
|
# These are required to build the config file
|
|
BuildRequires: python3-oslo-config
|
|
BuildRequires: python3-keystoneauth1
|
|
BuildRequires: python3-keystoneclient
|
|
BuildRequires: python3-tenacity
|
|
# Required to compile translation files
|
|
BuildRequires: python3-babel
|
|
BuildRequires: python3-PyYAML
|
|
BuildRequires: python3-lxml
|
|
BuildRequires: python3-sqlalchemy-migrate
|
|
BuildRequires: python3-paste-deploy
|
|
BuildRequires: python3-redis
|
|
BuildRequires: python3-webob
|
|
|
|
BuildRequires: systemd
|
|
|
|
%if 0%{?with_doc}
|
|
BuildRequires: python3-openstackdocstheme
|
|
BuildRequires: python3-sphinx
|
|
BuildRequires: python3-sphinxcontrib-apidoc
|
|
BuildRequires: python3-cinderclient
|
|
BuildRequires: python3-novaclient
|
|
BuildRequires: python3-saharaclient
|
|
BuildRequires: python3-neutronclient
|
|
BuildRequires: python3-swiftclient
|
|
BuildRequires: python3-heatclient
|
|
BuildRequires: python3-glanceclient
|
|
BuildRequires: python3-troveclient
|
|
BuildRequires: python3-aodhclient
|
|
BuildRequires: python3-barbicanclient
|
|
BuildRequires: python3-designateclient
|
|
BuildRequires: python3-magnumclient
|
|
BuildRequires: python3-monascaclient
|
|
BuildRequires: python3-manilaclient
|
|
BuildRequires: python3-zaqarclient
|
|
BuildRequires: python3-croniter
|
|
BuildRequires: python3-gabbi
|
|
BuildRequires: python3-testscenarios
|
|
BuildRequires: python3-tempest
|
|
BuildRequires: python3-gabbi
|
|
# NOTE(ykarel) zunclient are not packaged yet.
|
|
#BuildRequires: python3-zunclient
|
|
%endif
|
|
|
|
Requires: %{name}-common = %{version}-%{release}
|
|
Requires: %{name}-engine = %{version}-%{release}
|
|
Requires: %{name}-api = %{version}-%{release}
|
|
Requires: %{name}-api-cfn = %{version}-%{release}
|
|
|
|
%package -n python3-%{service}-tests
|
|
%{?python_provide:%python_provide python3-%{service}-tests}
|
|
Summary: Heat tests
|
|
Requires: %{name}-common = %{version}-%{release}
|
|
|
|
Requires: python3-mox3
|
|
Requires: python3-oslotest
|
|
Requires: python3-testresources
|
|
Requires: python3-oslotest
|
|
Requires: python3-oslo-log
|
|
Requires: python3-oslo-utils
|
|
Requires: python3-heatclient
|
|
Requires: python3-cinderclient
|
|
Requires: python3-zaqarclient
|
|
Requires: python3-keystoneclient
|
|
Requires: python3-swiftclient
|
|
Requires: python3-paramiko
|
|
Requires: python3-kombu
|
|
Requires: python3-oslo-config
|
|
Requires: python3-oslo-concurrency
|
|
Requires: python3-requests
|
|
Requires: python3-eventlet
|
|
Requires: python3-six
|
|
Requires: python3-gabbi
|
|
Requires: python3-PyYAML
|
|
|
|
|
|
%description -n python3-%{service}-tests
|
|
%{common_desc}
|
|
This package contains the Heat test files.
|
|
|
|
%prep
|
|
%autosetup -n openstack-%{service}-%{version} -S git
|
|
|
|
# Remove the requirements file so that pbr hooks don't add it
|
|
# to distutils requires_dist config
|
|
%py_req_cleanup
|
|
|
|
# Remove tests in contrib
|
|
find contrib -name tests -type d | xargs rm -r
|
|
|
|
%build
|
|
%{py3_build}
|
|
|
|
# Generate i18n files
|
|
%{__python3} setup.py compile_catalog -d build/lib/%{service}/locale
|
|
|
|
# Generate sample config and add the current directory to PYTHONPATH so
|
|
# oslo-config-generator doesn't skip heat's entry points.
|
|
PYTHONPATH=. oslo-config-generator --config-file=config-generator.conf
|
|
|
|
%install
|
|
%{py3_install}
|
|
sed -i -e '/^#!/,1 d' %{buildroot}/%{python3_sitelib}/%{service}/db/sqlalchemy/migrate_repo/manage.py
|
|
|
|
mkdir -p %{buildroot}/%{_localstatedir}/log/%{service}/
|
|
mkdir -p %{buildroot}/%{_localstatedir}/run/%{service}/
|
|
install -p -D -m 644 %{SOURCE1} %{buildroot}%{_sysconfdir}/logrotate.d/openstack-%{service}
|
|
|
|
# install systemd unit files
|
|
install -p -D -m 644 %{SOURCE2} %{buildroot}%{_unitdir}/openstack-%{service}-api.service
|
|
install -p -D -m 644 %{SOURCE3} %{buildroot}%{_unitdir}/openstack-%{service}-api-cfn.service
|
|
install -p -D -m 644 %{SOURCE4} %{buildroot}%{_unitdir}/openstack-%{service}-engine.service
|
|
install -p -D -m 644 %{SOURCE2} %{buildroot}%{_unitdir}/openstack-%{service}-all.service
|
|
|
|
mkdir -p %{buildroot}/%{_sharedstatedir}/%{service}/
|
|
mkdir -p %{buildroot}/%{_sysconfdir}/%{service}/
|
|
|
|
%if 0%{?with_doc}
|
|
sphinx-build-3 -b html doc/source doc/build/html
|
|
sphinx-build-3 -b man doc/source doc/build/man
|
|
mkdir -p %{buildroot}%{_mandir}/man1
|
|
install -p -D -m 644 doc/build/man/*.1 %{buildroot}%{_mandir}/man1/
|
|
%endif
|
|
|
|
rm -f %{buildroot}/%{_bindir}/%{service}-db-setup
|
|
rm -f %{buildroot}/%{_mandir}/man1/%{service}-db-setup.*
|
|
rm -rf %{buildroot}/var/lib/%{service}/.dummy
|
|
rm -f %{buildroot}/usr/bin/cinder-keystone-setup
|
|
|
|
install -p -D -m 640 etc/%{service}/%{service}.conf.sample %{buildroot}/%{_sysconfdir}/%{service}/%{service}.conf
|
|
install -p -D -m 640 %{SOURCE20} %{buildroot}%{_datadir}/%{service}/%{service}-dist.conf
|
|
echo '[revision]' >> %{buildroot}%{_datadir}/%{service}/%{service}-dist.conf
|
|
echo '%{service}_revision=%{version}' >> %{buildroot}%{_datadir}/%{service}/%{service}-dist.conf
|
|
mv %{buildroot}%{_prefix}/etc/%{service}/api-paste.ini %{buildroot}/%{_datadir}/%{service}/api-paste-dist.ini
|
|
mv %{buildroot}%{_prefix}/etc/%{service}/environment.d %{buildroot}/%{_sysconfdir}/%{service}
|
|
mv %{buildroot}%{_prefix}/etc/%{service}/templates %{buildroot}/%{_sysconfdir}/%{service}
|
|
# Remove duplicate config files under /usr/etc/heat
|
|
rmdir %{buildroot}%{_prefix}/etc/%{service}
|
|
|
|
# Install i18n .mo files (.po and .pot are not required)
|
|
install -d -m 755 %{buildroot}%{_datadir}
|
|
rm -f %{buildroot}%{python3_sitelib}/%{service}/locale/*/LC_*/%{service}*po
|
|
rm -f %{buildroot}%{python3_sitelib}/%{service}/locale/*pot
|
|
mv %{buildroot}%{python3_sitelib}/%{service}/locale %{buildroot}%{_datadir}/locale
|
|
|
|
# Find language files
|
|
%find_lang %{service} --all-name
|
|
|
|
%description
|
|
%{common_desc}
|
|
|
|
%package common
|
|
Summary: Heat common
|
|
Group: System Environment/Base
|
|
|
|
Requires: python3-pbr
|
|
Requires: python3-croniter
|
|
Requires: python3-eventlet
|
|
Requires: python3-stevedore
|
|
Requires: python3-netaddr
|
|
Requires: python3-neutron-lib
|
|
Requires: python3-osprofiler
|
|
Requires: python3-requests
|
|
Requires: python3-routes
|
|
Requires: python3-sqlalchemy
|
|
Requires: python3-six
|
|
Requires: python3-paramiko
|
|
Requires: python3-babel
|
|
# FIXME: system version is stuck to 1.7.2 for cryptography
|
|
Requires: python3-cryptography
|
|
Requires: python3-yaql
|
|
|
|
Requires: python3-oslo-cache
|
|
Requires: python3-oslo-concurrency
|
|
Requires: python3-oslo-config
|
|
Requires: python3-oslo-context
|
|
Requires: python3-oslo-upgradecheck
|
|
Requires: python3-oslo-utils
|
|
Requires: python3-oslo-db
|
|
Requires: python3-oslo-i18n
|
|
Requires: python3-oslo-middleware
|
|
Requires: python3-oslo-messaging
|
|
Requires: python3-oslo-policy
|
|
Requires: python3-oslo-reports
|
|
Requires: python3-oslo-serialization
|
|
Requires: python3-oslo-service
|
|
Requires: python3-oslo-log
|
|
Requires: python3-oslo-versionedobjects
|
|
|
|
Requires: python3-cinderclient
|
|
Requires: python3-glanceclient
|
|
Requires: python3-heatclient
|
|
Requires: python3-keystoneclient
|
|
Requires: python3-keystonemiddleware
|
|
Requires: python3-neutronclient
|
|
Requires: python3-novaclient
|
|
Requires: python3-saharaclient
|
|
Requires: python3-swiftclient
|
|
Requires: python3-troveclient
|
|
|
|
Requires: python3-keystoneauth1
|
|
Requires: python3-barbicanclient
|
|
Requires: python3-designateclient
|
|
Requires: python3-manilaclient
|
|
Requires: python3-mistralclient
|
|
Requires: python3-openstackclient
|
|
Requires: python3-zaqarclient
|
|
Requires: python3-aodhclient
|
|
Requires: python3-magnumclient
|
|
Requires: python3-octaviaclient
|
|
Requires: python3-monascaclient
|
|
Requires: python3-openstacksdk
|
|
Requires: python3-tenacity
|
|
|
|
%if 3 == 2
|
|
Requires: PyYAML
|
|
Requires: python-lxml
|
|
Requires: python3-sqlalchemy-migrate
|
|
Requires: python-paste-deploy
|
|
Requires: python-webob
|
|
Requires: pytz
|
|
%else
|
|
Requires: python3-PyYAML
|
|
Requires: python3-lxml
|
|
Requires: python3-sqlalchemy-migrate
|
|
Requires: python3-paste-deploy
|
|
Requires: python3-webob
|
|
Requires: python3-pytz
|
|
%endif
|
|
|
|
Requires(pre): shadow-utils
|
|
|
|
%description common
|
|
Components common to all OpenStack Heat services
|
|
|
|
%files common -f %{service}.lang
|
|
%doc LICENSE
|
|
%{_bindir}/%{service}-manage
|
|
%{_bindir}/%{service}-status
|
|
%{_bindir}/%{service}-keystone-setup
|
|
%{_bindir}/%{service}-keystone-setup-domain
|
|
%{python3_sitelib}/%{service}
|
|
%{python3_sitelib}/openstack_%{service}-%{version}-*.egg-info
|
|
%exclude %{python3_sitelib}/%{service}/tests
|
|
%attr(-, root, %{service}) %{_datadir}/%{service}/%{service}-dist.conf
|
|
%attr(-, root, %{service}) %{_datadir}/%{service}/api-paste-dist.ini
|
|
%dir %attr(0755,%{service},root) %{_localstatedir}/log/%{service}
|
|
%dir %attr(0755,%{service},root) %{_localstatedir}/run/%{service}
|
|
%dir %attr(0755,%{service},root) %{_sharedstatedir}/%{service}
|
|
%dir %attr(0755,%{service},root) %{_sysconfdir}/%{service}
|
|
%config(noreplace) %{_sysconfdir}/logrotate.d/openstack-%{service}
|
|
%config(noreplace) %attr(-, root, %{service}) %{_sysconfdir}/%{service}/%{service}.conf
|
|
%config(noreplace) %attr(-,root,%{service}) %{_sysconfdir}/%{service}/environment.d/*
|
|
%config(noreplace) %attr(-,root,%{service}) %{_sysconfdir}/%{service}/templates/*
|
|
%if 0%{?with_doc}
|
|
%{_mandir}/man1/%{service}-keystone-setup.1.gz
|
|
%{_mandir}/man1/%{service}-keystone-setup-domain.1.gz
|
|
%{_mandir}/man1/%{service}-manage.1.gz
|
|
%{_mandir}/man1/%{service}-status.1.gz
|
|
%endif
|
|
|
|
%files -n python3-%{service}-tests
|
|
%license LICENSE
|
|
%{python3_sitelib}/%{service}/tests
|
|
%{python3_sitelib}/%{service}_integrationtests
|
|
|
|
%pre common
|
|
# 187:187 for heat - rhbz#845078
|
|
getent group %{service} >/dev/null || groupadd -r --gid 187 %{service}
|
|
getent passwd %{service} >/dev/null || \
|
|
useradd --uid 187 -r -g %{service} -d %{_sharedstatedir}/%{service} -s /sbin/nologin \
|
|
-c "OpenStack Heat Daemons" %{service}
|
|
exit 0
|
|
|
|
%package engine
|
|
Summary: The Heat engine
|
|
|
|
Requires: %{name}-common = %{version}-%{release}
|
|
|
|
%{?systemd_ordering}
|
|
|
|
%description engine
|
|
%{common_desc}
|
|
|
|
The %{service}-engine's main responsibility is to orchestrate the launching of
|
|
templates and provide events back to the API consumer.
|
|
|
|
%files engine
|
|
%doc README.rst LICENSE
|
|
%if 0%{?with_doc}
|
|
%doc doc/build/html/man/%{service}-engine.html
|
|
%endif
|
|
%{_bindir}/%{service}-engine
|
|
%{_unitdir}/openstack-%{service}-engine.service
|
|
%if 0%{?with_doc}
|
|
%{_mandir}/man1/%{service}-engine.1.gz
|
|
%endif
|
|
|
|
%post engine
|
|
%systemd_post openstack-%{service}-engine.service
|
|
|
|
%preun engine
|
|
%systemd_preun openstack-%{service}-engine.service
|
|
|
|
%postun engine
|
|
%systemd_postun_with_restart openstack-%{service}-engine.service
|
|
|
|
|
|
%package api
|
|
Summary: The Heat API
|
|
|
|
Requires: %{name}-common = %{version}-%{release}
|
|
|
|
%{?systemd_ordering}
|
|
|
|
%description api
|
|
%{common_desc}
|
|
|
|
The %{service}-api component provides an OpenStack-native REST API that processes API
|
|
requests by sending them to the %{service}-engine over RPC.
|
|
|
|
%files api
|
|
%doc README.rst LICENSE
|
|
%if 0%{?with_doc}
|
|
%doc doc/build/html/man/%{service}-api.html
|
|
%endif
|
|
%{_bindir}/%{service}-api
|
|
%{_bindir}/%{service}-wsgi-api
|
|
%{_unitdir}/openstack-%{service}-api.service
|
|
%if 0%{?with_doc}
|
|
%{_mandir}/man1/%{service}-api.1.gz
|
|
%endif
|
|
|
|
%post api
|
|
%systemd_post openstack-%{service}-api.service
|
|
|
|
%preun api
|
|
%systemd_preun openstack-%{service}-api.service
|
|
|
|
%postun api
|
|
%systemd_postun_with_restart openstack-%{service}-api.service
|
|
|
|
|
|
%package api-cfn
|
|
Summary: Heat CloudFormation API
|
|
|
|
Requires: %{name}-common = %{version}-%{release}
|
|
|
|
%{?systemd_ordering}
|
|
|
|
%description api-cfn
|
|
%{common_desc}
|
|
|
|
The %{service}-api-cfn component provides an AWS Query API that is compatible with
|
|
AWS CloudFormation and processes API requests by sending them to the
|
|
%{service}-engine over RPC.
|
|
|
|
%files api-cfn
|
|
%doc README.rst LICENSE
|
|
%if 0%{?with_doc}
|
|
%doc doc/build/html/man/%{service}-api-cfn.html
|
|
%endif
|
|
%{_bindir}/%{service}-api-cfn
|
|
%{_bindir}/%{service}-wsgi-api-cfn
|
|
%{_unitdir}/openstack-%{service}-api-cfn.service
|
|
%if 0%{?with_doc}
|
|
%{_mandir}/man1/%{service}-api-cfn.1.gz
|
|
%endif
|
|
|
|
%post api-cfn
|
|
%systemd_post openstack-%{service}-api-cfn.service
|
|
|
|
%preun api-cfn
|
|
%systemd_preun openstack-%{service}-api-cfn.service
|
|
|
|
%postun api-cfn
|
|
%systemd_postun_with_restart openstack-%{service}-api-cfn.service
|
|
|
|
|
|
%package monolith
|
|
Summary: The combined Heat engine/API
|
|
|
|
Requires: %{name}-common = %{version}-%{release}
|
|
|
|
%{?systemd_ordering}
|
|
|
|
%description monolith
|
|
%{common_desc}
|
|
|
|
The %{service}-all process bundles together any (or all) of %{service}-engine,
|
|
%{service}-api, and %{service}-cfn-api into a single process. This can be used
|
|
to bootstrap a minimal TripleO deployment, but is not the recommended way of
|
|
running the Heat service in general.
|
|
|
|
%files monolith
|
|
%doc README.rst LICENSE
|
|
%{_bindir}/%{service}-all
|
|
%{_unitdir}/openstack-%{service}-all.service
|
|
|
|
%post monolith
|
|
%systemd_post openstack-%{service}-all.service
|
|
|
|
%preun monolith
|
|
%systemd_preun openstack-%{service}-all.service
|
|
|
|
%postun monolith
|
|
%systemd_postun_with_restart openstack-%{service}-all.service
|
|
|
|
|
|
%changelog
|
|
* Fri Nov 12 2021 wangxiyuan <wangxiyuan1007@huawei.com> - 13.1.0-2
|
|
- Fix build issue
|
|
|
|
* Fri Nov 05 2021 huangtiahua <huangtianhua@huawei.com> - 13.1.0-1
|
|
- Init Heat to 13.1.0
|