Init openstack-trove for OpenStack-W
This commit is contained in:
parent
53916cf56f
commit
f7712f7838
2
guest_info
Normal file
2
guest_info
Normal file
@ -0,0 +1,2 @@
|
||||
[DEFAULT]
|
||||
# guest_id = placeholder to be overwritten when VM instance created
|
||||
13
openstack-trove-api.service
Normal file
13
openstack-trove-api.service
Normal file
@ -0,0 +1,13 @@
|
||||
[Unit]
|
||||
Description=OpenStack Trove API Service
|
||||
After=syslog.target network.target mariadb.service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=trove
|
||||
ExecStart=/usr/bin/trove-api
|
||||
Restart=on-failure
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
||||
13
openstack-trove-conductor.service
Normal file
13
openstack-trove-conductor.service
Normal file
@ -0,0 +1,13 @@
|
||||
[Unit]
|
||||
Description=OpenStack Trove Conductor Service
|
||||
After=syslog.target network.target mariadb.service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=trove
|
||||
ExecStart=/usr/bin/trove-conductor
|
||||
Restart=on-failure
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
||||
13
openstack-trove-guestagent.service
Normal file
13
openstack-trove-guestagent.service
Normal file
@ -0,0 +1,13 @@
|
||||
[Unit]
|
||||
Description=OpenStack Trove guestagent Service
|
||||
After=syslog.target network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=trove
|
||||
ExecStart=/usr/bin/trove-guestagent --config-file /usr/share/trove/trove-dist.conf --config-file /etc/trove/trove-guestagent.conf --config-file /etc/trove/guest_info
|
||||
Restart=on-failure
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
||||
13
openstack-trove-taskmanager.service
Normal file
13
openstack-trove-taskmanager.service
Normal file
@ -0,0 +1,13 @@
|
||||
[Unit]
|
||||
Description=OpenStack Trove taskmanager service
|
||||
After=syslog.target network.target mariadb.service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=trove
|
||||
ExecStart=/usr/bin/trove-taskmanager
|
||||
Restart=on-failure
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
||||
390
openstack-trove.spec
Normal file
390
openstack-trove.spec
Normal file
@ -0,0 +1,390 @@
|
||||
%global service trove
|
||||
%{!?upstream_version: %global upstream_version %{version}%{?milestone}}
|
||||
|
||||
%global common_desc OpenStack DBaaS (codename %{service}) provisioning service.
|
||||
|
||||
%global with_doc 1
|
||||
|
||||
Name: openstack-%{service}
|
||||
Version: 15.0.0
|
||||
Release: 1
|
||||
Summary: OpenStack DBaaS (%{service})
|
||||
|
||||
License: ASL 2.0
|
||||
URL: https://wiki.openstack.org/wiki/Trove
|
||||
Source0: https://tarballs.openstack.org/%{service}/%{service}-%{upstream_version}.tar.gz
|
||||
|
||||
#
|
||||
|
||||
Source1: %{service}.logrotate
|
||||
Source2: guest_info
|
||||
|
||||
Source10: %{name}-api.service
|
||||
Source11: %{name}-taskmanager.service
|
||||
Source12: %{name}-conductor.service
|
||||
Source13: %{name}-guestagent.service
|
||||
|
||||
BuildArch: noarch
|
||||
BuildRequires: python3-devel
|
||||
BuildRequires: python3-setuptools
|
||||
BuildRequires: python3-pbr
|
||||
# BuildRequires: python3-d2to1
|
||||
BuildRequires: python3-sphinx
|
||||
BuildRequires: python3-crudini
|
||||
BuildRequires: intltool
|
||||
BuildRequires: openstack-macros
|
||||
|
||||
# to build default config files
|
||||
BuildRequires: python3-keystoneauth1
|
||||
BuildRequires: python3-keystonemiddleware
|
||||
BuildRequires: python3-oslo-config
|
||||
BuildRequires: python3-oslo-log
|
||||
BuildRequires: python3-oslo-messaging
|
||||
BuildRequires: python3-oslo-middleware
|
||||
BuildRequires: python3-oslo-policy
|
||||
BuildRequires: python3-osprofiler
|
||||
|
||||
Requires: %{name}-api = %{version}-%{release}
|
||||
Requires: %{name}-taskmanager = %{version}-%{release}
|
||||
Requires: %{name}-conductor = %{version}-%{release}
|
||||
|
||||
|
||||
%description
|
||||
%{common_desc}
|
||||
|
||||
%package common
|
||||
Summary: Components common to all OpenStack %{service} services
|
||||
|
||||
Requires: python3-%{service} = %{version}-%{release}
|
||||
|
||||
%{?systemd_requires}
|
||||
BuildRequires: systemd
|
||||
|
||||
Requires(pre): shadow-utils
|
||||
Requires: python3-pbr
|
||||
|
||||
%description common
|
||||
%{common_desc}
|
||||
|
||||
This package contains scripts, config and dependencies shared
|
||||
between all the OpenStack %{service} services.
|
||||
|
||||
|
||||
%package api
|
||||
Summary: OpenStack %{service} API service
|
||||
Requires: %{name}-common = %{version}-%{release}
|
||||
|
||||
%description api
|
||||
%{common_desc}
|
||||
|
||||
This package contains the %{service} interface daemon.
|
||||
|
||||
|
||||
%package taskmanager
|
||||
Summary: OpenStack %{service} taskmanager service
|
||||
Requires: %{name}-common = %{version}-%{release}
|
||||
|
||||
%description taskmanager
|
||||
%{common_desc}
|
||||
|
||||
This package contains the %{service} taskmanager service.
|
||||
|
||||
|
||||
%package conductor
|
||||
Summary: OpenStack %{service} conductor service
|
||||
Requires: %{name}-common = %{version}-%{release}
|
||||
|
||||
%description conductor
|
||||
%{common_desc}
|
||||
|
||||
This package contains the %{service} conductor service.
|
||||
|
||||
|
||||
%package guestagent
|
||||
Summary: OpenStack %{service} guest agent
|
||||
Requires: python3-pexpect
|
||||
|
||||
Requires: %{name}-common = %{version}-%{release}
|
||||
|
||||
%description guestagent
|
||||
%{common_desc}
|
||||
|
||||
This package contains the %{service} guest agent service
|
||||
that runs within the database VM instance.
|
||||
|
||||
|
||||
%package -n python3-%{service}
|
||||
Summary: Python libraries for %{service}
|
||||
Requires: python3-PyMySQL
|
||||
|
||||
Requires: python3-kombu
|
||||
|
||||
Requires: python3-cryptography
|
||||
Requires: python3-enum34
|
||||
Requires: python3-eventlet
|
||||
Requires: python3-iso8601
|
||||
Requires: python3-netaddr
|
||||
Requires: python3-lxml
|
||||
Requires: python3-six
|
||||
Requires: python3-stevedore
|
||||
Requires: python3-xmltodict
|
||||
|
||||
Requires: python3-webob
|
||||
|
||||
# python-migrate instead by python-sqlalchemy-migrate
|
||||
# Requires: python-migrate >= 0.11.0
|
||||
|
||||
Requires: python3-sqlalchemy
|
||||
Requires: python3-paste
|
||||
Requires: python3-paste-deploy
|
||||
Requires: python3-routes
|
||||
|
||||
Requires: python3-troveclient
|
||||
Requires: python3-cinderclient
|
||||
Requires: python3-designateclient
|
||||
Requires: python3-glanceclient
|
||||
Requires: python3-heatclient
|
||||
Requires: python3-keystoneclient
|
||||
Requires: python3-keystonemiddleware
|
||||
Requires: python3-neutronclient
|
||||
Requires: python3-novaclient
|
||||
Requires: python3-swiftclient
|
||||
|
||||
Requires: python3-oslo-concurrency
|
||||
Requires: python3-oslo-config
|
||||
Requires: python3-oslo-context
|
||||
Requires: python3-oslo-db
|
||||
Requires: python3-oslo-i18n
|
||||
Requires: python3-oslo-log
|
||||
Requires: python3-oslo-messaging
|
||||
Requires: python3-oslo-middleware
|
||||
Requires: python3-oslo-policy
|
||||
Requires: python3-oslo-serialization
|
||||
Requires: python3-oslo-service
|
||||
Requires: python3-oslo-utils
|
||||
|
||||
Requires: python3-osprofiler
|
||||
Requires: python3-jsonschema
|
||||
Requires: python3-babel
|
||||
Requires: python3-jinja2
|
||||
|
||||
Requires: python3-httplib2
|
||||
Requires: python3-passlib
|
||||
|
||||
%description -n python3-%{service}
|
||||
%{common_desc}
|
||||
|
||||
This package contains the %{service} python library.
|
||||
|
||||
%package -n python3-%{service}-tests
|
||||
Summary: Trove tests
|
||||
Requires: python3-%{service} = %{version}-%{release}
|
||||
|
||||
%description -n python3-%{service}-tests
|
||||
%{common_desc}
|
||||
|
||||
This package contains the Trove test files
|
||||
|
||||
%if 0%{?with_doc}
|
||||
%package doc
|
||||
Summary: Documentation for OpenStack %{service}
|
||||
BuildRequires: python3-openstackdocstheme
|
||||
BuildRequires: python3-sphinx
|
||||
%description doc
|
||||
%{common_desc}
|
||||
|
||||
This package contains documentation files for %{service}.
|
||||
%endif
|
||||
|
||||
%prep
|
||||
%autosetup -n %{service}-%{upstream_version}
|
||||
|
||||
# Avoid non-executable-script rpmlint while maintaining timestamps
|
||||
find %{service} -name \*.py |
|
||||
while read source; do
|
||||
if head -n1 "$source" | grep -F '/usr/bin/env'; then
|
||||
touch --ref="$source" "$source".ts
|
||||
sed -i '/\/usr\/bin\/env python/{d;q}' "$source"
|
||||
touch --ref="$source".ts "$source"
|
||||
rm "$source".ts
|
||||
fi
|
||||
done
|
||||
|
||||
# Remove the requirements file so that pbr hooks don't add it
|
||||
# to distutils requires_dist config
|
||||
%py_req_cleanup
|
||||
|
||||
%build
|
||||
%{__python3} setup.py build
|
||||
|
||||
%install
|
||||
%{__python3} setup.py install -O1 --skip-build --root %{buildroot}
|
||||
|
||||
# docs generation requires everything to be installed first
|
||||
|
||||
%if 0%{?with_doc}
|
||||
pushd doc
|
||||
|
||||
SPHINX_DEBUG=1 sphinx-build -b html source build/html
|
||||
# Fix hidden-file-or-dir warnings
|
||||
rm -fr build/html/.doctrees build/html/.buildinfo
|
||||
|
||||
# Create dir link to avoid a sphinx-build exception
|
||||
mkdir -p build/man/.doctrees/
|
||||
ln -s . build/man/.doctrees/man
|
||||
SPHINX_DEBUG=1 sphinx-build -b man source build/man
|
||||
mkdir -p %{buildroot}%{_mandir}/man1
|
||||
install -p -D -m 644 build/man/*.1 %{buildroot}%{_mandir}/man1/
|
||||
|
||||
popd
|
||||
%endif
|
||||
|
||||
# Create config file
|
||||
|
||||
export PYTHONPATH=$PYTHONPATH:.
|
||||
oslo-config-generator --namespace trove.config --namespace oslo.messaging --namespace oslo.log --namespace oslo.log --namespace oslo.policy --output-file etc/%{service}/%{service}.conf.sample
|
||||
|
||||
# Setup directories
|
||||
install -d -m 755 %{buildroot}%{_unitdir}
|
||||
install -d -m 755 %{buildroot}%{_datadir}/%{service}
|
||||
install -d -m 755 %{buildroot}%{_sharedstatedir}/%{service}
|
||||
install -d -m 750 %{buildroot}%{_localstatedir}/log/%{service}
|
||||
|
||||
# Install Apache site file
|
||||
install -p -D -m 640 etc/apache2/%{service} %{buildroot}%{_sysconfdir}/apache2/%{service}
|
||||
|
||||
# Install config files
|
||||
install -p -D -m 640 etc/%{service}/%{service}.conf.sample %{buildroot}%{_sysconfdir}/%{service}/%{service}.conf
|
||||
# Use crudini to set some configuration keys
|
||||
crudini --set %{buildroot}%{_sysconfdir}/%{service}/%{service}.conf database connection mysql://trove:trove@localhost/trove
|
||||
crudini --set %{buildroot}%{_sysconfdir}/%{service}/%{service}.conf DEFAULT log_file %{_localstatedir}/log/%{service}/%{service}.log
|
||||
mv %{buildroot}%{_prefix}/etc/%{service}/api-paste.ini %{buildroot}%{_sysconfdir}/%{service}/api-paste.ini
|
||||
# Remove duplicate config files under /usr/etc/trove
|
||||
rmdir %{buildroot}%{_prefix}/etc/%{service}
|
||||
install -d -m 755 %{buildroot}%{_sysconfdir}/%{service}
|
||||
install -p -D -m 640 etc/%{service}/%{service}.conf.sample %{buildroot}%{_sysconfdir}/%{service}/trove-taskmanager.conf
|
||||
install -p -D -m 640 etc/%{service}/%{service}.conf.sample %{buildroot}%{_sysconfdir}/%{service}/trove-conductor.conf
|
||||
install -p -D -m 640 etc/%{service}/%{service}.conf.sample %{buildroot}%{_sysconfdir}/%{service}/trove-guestagent.conf
|
||||
install -p -D -m 640 %{SOURCE2} %{buildroot}%{_sysconfdir}/%{service}/guest_info
|
||||
|
||||
# Install initscripts
|
||||
install -p -m 644 %{SOURCE10} %{SOURCE11} %{SOURCE12} %{SOURCE13} %{buildroot}%{_unitdir}
|
||||
|
||||
# Install logrotate
|
||||
install -p -D -m 644 %{SOURCE1} %{buildroot}%{_sysconfdir}/logrotate.d/%{name}
|
||||
|
||||
# Install pid directory
|
||||
install -d -m 755 %{buildroot}%{_localstatedir}/run/%{service}
|
||||
|
||||
# Remove unneeded in production stuff
|
||||
rm -fr %{buildroot}%{_bindir}/trove-fake-mode
|
||||
rm -fr %{buildroot}%{python3_sitelib}/run_tests.*
|
||||
%pre common
|
||||
# Origin: http://fedoraproject.org/wiki/Packaging:UsersAndGroups#Dynamic_allocation
|
||||
USERNAME=%{service}
|
||||
GROUPNAME=$USERNAME
|
||||
HOMEDIR=%{_sharedstatedir}/$USERNAME
|
||||
getent group $GROUPNAME >/dev/null || groupadd -r $GROUPNAME
|
||||
getent passwd $USERNAME >/dev/null || \
|
||||
useradd -r -g $GROUPNAME -G $GROUPNAME -d $HOMEDIR -s /sbin/nologin \
|
||||
-c "$USERNAME Daemons" $USERNAME
|
||||
exit 0
|
||||
|
||||
%post api
|
||||
%systemd_post openstack-trove-api.service
|
||||
%post taskmanager
|
||||
%systemd_post openstack-trove-taskmanager.service
|
||||
%post conductor
|
||||
%systemd_post openstack-trove-conductor.service
|
||||
%post guestagent
|
||||
%systemd_post openstack-trove-guestagent.service
|
||||
|
||||
%preun api
|
||||
%systemd_preun openstack-trove-api.service
|
||||
%preun taskmanager
|
||||
%systemd_preun openstack-trove-taskmanager.service
|
||||
%preun conductor
|
||||
%systemd_preun openstack-trove-conductor.service
|
||||
%preun guestagent
|
||||
%systemd_preun openstack-trove-guestagent.service
|
||||
|
||||
%postun api
|
||||
%systemd_postun_with_restart openstack-trove-api.service
|
||||
%postun taskmanager
|
||||
%systemd_postun_with_restart openstack-trove-taskmanager.service
|
||||
%postun conductor
|
||||
%systemd_postun_with_restart openstack-trove-conductor.service
|
||||
%postun guestagent
|
||||
%systemd_postun_with_restart openstack-trove-guestagent.service
|
||||
|
||||
|
||||
%files
|
||||
%license LICENSE
|
||||
|
||||
%files common
|
||||
%license LICENSE
|
||||
%dir %{_sysconfdir}/%{service}
|
||||
%config(noreplace) %attr(0640, root, %{service}) %{_sysconfdir}/%{service}/%{service}.conf
|
||||
%attr(0640, root, %{service}) %{_sysconfdir}/%{service}/api-paste.ini
|
||||
%config(noreplace) %{_sysconfdir}/logrotate.d/%{name}
|
||||
|
||||
%dir %attr(0750, %{service}, root) %{_localstatedir}/log/%{service}
|
||||
%dir %attr(0755, %{service}, root) %{_localstatedir}/run/%{service}
|
||||
|
||||
%{_bindir}/%{service}-manage
|
||||
%{_bindir}/%{service}-status
|
||||
%{_bindir}/trove-mgmt-taskmanager
|
||||
|
||||
%{_datarootdir}/%{service}
|
||||
|
||||
%defattr(-, %{service}, %{service}, -)
|
||||
%dir %{_sharedstatedir}/%{service}
|
||||
|
||||
%files api
|
||||
%{_bindir}/%{service}-api
|
||||
%{_unitdir}/%{name}-api.service
|
||||
%config(noreplace) %attr(0640, root, %{service}) %{_sysconfdir}/apache2/%{service}
|
||||
|
||||
%files taskmanager
|
||||
%{_bindir}/%{service}-taskmanager
|
||||
%{_unitdir}/%{name}-taskmanager.service
|
||||
%config(noreplace) %attr(0640, root, %{service}) %{_sysconfdir}/%{service}/%{service}-taskmanager.conf
|
||||
|
||||
%files conductor
|
||||
%{_bindir}/%{service}-conductor
|
||||
%{_unitdir}/%{name}-conductor.service
|
||||
%config(noreplace) %attr(0640, root, %{service}) %{_sysconfdir}/%{service}/%{service}-conductor.conf
|
||||
|
||||
%files guestagent
|
||||
%{_bindir}/%{service}-guestagent
|
||||
%{_unitdir}/%{name}-guestagent.service
|
||||
%config(noreplace) %attr(0640, root, %{service}) %{_sysconfdir}/%{service}/%{service}-guestagent.conf
|
||||
%config(noreplace) %attr(0640, root, %{service}) %{_sysconfdir}/%{service}/guest_info
|
||||
|
||||
%files -n python3-%{service}
|
||||
%license LICENSE
|
||||
%{python3_sitelib}/%{service}
|
||||
%{python3_sitelib}/%{service}-%{version}*.egg-info
|
||||
%exclude %{python3_sitelib}/%{service}/tests
|
||||
|
||||
%files -n python3-%{service}-tests
|
||||
%license LICENSE
|
||||
%{python3_sitelib}/%{service}/tests
|
||||
|
||||
%if 0%{?with_doc}
|
||||
%files doc
|
||||
%license LICENSE
|
||||
%doc doc/build/html
|
||||
%{_mandir}/man1/*
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Thu Jul 29 2021 huangtianhua <huangtianhua@huawei.com> - 15.0.0-1
|
||||
- Upgrade to 15.0.0 to support OpenStack-W
|
||||
|
||||
* Tue Jun 08 2021 liusheng <liusheng2048@gmail.com>
|
||||
- Add missed apache config file
|
||||
|
||||
* Tue May 18 2021 Python_Bot <Python_Bot@openeuler.org>
|
||||
- Package Spec generated
|
||||
|
||||
BIN
trove-15.0.0.tar.gz
Normal file
BIN
trove-15.0.0.tar.gz
Normal file
Binary file not shown.
6
trove.logrotate
Normal file
6
trove.logrotate
Normal file
@ -0,0 +1,6 @@
|
||||
/var/log/trove/*.log {
|
||||
rotate 14
|
||||
size 10M
|
||||
missingok
|
||||
compress
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user