daisycloud-core/rpm/SPECS/daisy.spec
Yao Lu 33a014b82a use version management to do kolla install and kolla update
Change-Id: I591e5821540fe222809630459f636ae20eea2c17
Signed-off-by: Yao Lu <lu.yao135@zte.com.cn>
2017-03-22 14:06:18 +08:00

276 lines
9.6 KiB
RPMSpec
Executable File

%global release_name kilo
%global service daisy
%{!?upstream_version: %global upstream_version %{version}%{?milestone}}
Name: daisy
Version: 1.0.0
Release: %{_release}%{?dist}
Summary: OpenStack Image Service
Group: Applications/System
License: ASL 2.0
URL: http://daisy.openstack.org
Source0: http://launchpad.net/%{service}/%{release_name}/%{version}/+download/%{service}-%{upstream_version}.tar.gz
Source1: daisy-api.service
Source2: daisy-registry.service
Source4: daisy.logrotate
Source5: daisy-api-dist.conf
Source6: daisy-registry-dist.conf
Source9: daisy-orchestration.service
Source10: daisy-orchestration.conf
Source11: daisy-auto-backup.service
Source12: daisy-auto-backup.conf
BuildArch: noarch
BuildRequires: python2-devel
BuildRequires: python-setuptools
BuildRequires: python-pbr
BuildRequires: intltool
Requires(pre): shadow-utils
Requires: python-daisy = %{version}-%{release}
Requires: python-daisyclient >= 1:0
Requires: openstack-utils
Requires(post): systemd
Requires(preun): systemd
Requires(postun): systemd
BuildRequires: systemd
%description
OpenStack Image Service (code-named daisy) provides discovery, registration,
and delivery services for virtual disk images. The Image Service API server
provides a standard REST interface for querying information about virtual disk
images stored in a variety of back-end stores, including OpenStack Object
Storage. Clients can register new virtual disk images with the Image Service,
query for information on publicly available disk images, and use the Image
Service's client library for streaming virtual disk images.
This package contains the API and registry servers.
CI Build Id = %{_description}
SVN Revision = %{_svn_revision}
%package -n python-daisy
Summary: daisy Python libraries
Group: Applications/System
Requires: MySQL-python
Requires: pysendfile
Requires: python-eventlet
Requires: python-httplib2
Requires: python-iso8601
Requires: python-jsonschema
Requires: python-migrate >= 0.9.5
Requires: python-paste-deploy
Requires: python-routes
Requires: python-sqlalchemy >= 0.8.7
Requires: python-webob
Requires: python-crypto
Requires: pyxattr
Requires: python-cinderclient
Requires: python-glance-store >= 0.3.0
Requires: python-keystoneclient >= 1:1.1.0
Requires: python-keystonemiddleware
Requires: python-swiftclient >= 2.2.0
Requires: python-oslo-config >= 1:1.9.3
Requires: python-oslo-concurrency >= 1.8.0
Requires: python-oslo-context >= 0.2.0
Requires: python-oslo-utils >= 1.4.0
Requires: python-oslo-log >= 1.0.0
Requires: python-oslo-policy >= 0.3.1
Requires: python-oslo-serialization >= 1.4.0
Requires: python-oslo-messaging >= 1.8.0
Requires: python-oslo-vmware >= 0.11.1
Requires: python-oslo-i18n >= 1.5.0
Requires: python-oslo-db >= 1.7.0
Requires: python-osprofiler
Requires: python-retrying
Requires: python-six >= 1.9.0
Requires: python-posix_ipc
Requires: python-stevedore
Requires: python-anyjson
Requires: python-netaddr
Requires: python-wsme >= 0.6
Requires: pyOpenSSL
Requires: python-pbr
Requires: python-semantic-version
Requires: python-elasticsearch
Requires: python-taskflow
Requires: python-repoze-lru
#test deps: python-mox python-nose python-requests
#test and optional store:
#ceph - daisy.store.rdb
#python-boto - daisy.store.s3
Requires: python-boto
%description -n python-daisy
OpenStack Image Service (code-named daisy) provides discovery, registration,
and delivery services for virtual disk images.
This package contains the daisy Python library.
CI Build Id = %{_description}
SVN Revision = %{_svn_revision}
%prep
%setup -q -n daisy-%{upstream_version}
# Remove the requirements file so that pbr hooks don't add it
# to distutils requiers_dist config
rm -rf {test-,}requirements.txt tools/{pip,test}-requires
# Programmatically update defaults in example config
api_dist=%{SOURCE5}
registry_dist=%{SOURCE6}
%build
%{__python2} setup.py build
%install
%{__python2} setup.py install -O1 --skip-build --root %{buildroot}
# Delete tests
rm -fr %{buildroot}%{python2_sitelib}/daisy/tests
# Drop old daisy CLI it has been deprecated
# and replaced daisyclient
rm -f %{buildroot}%{_bindir}/daisy
# Fix hidden-file-or-dir warnings
rm -fr doc/build/html/.doctrees doc/build/html/.buildinfo
rm -f %{buildroot}%{_sysconfdir}/daisy*.conf
rm -f %{buildroot}%{_sysconfdir}/daisy*.ini
rm -f %{buildroot}%{_sysconfdir}/logging.cnf.sample
rm -f %{buildroot}%{_sysconfdir}/policy.json
rm -f %{buildroot}/usr/share/doc/daisy/README.rst
# Setup directories
install -d -m 755 %{buildroot}%{_datadir}/daisy
install -d -m 755 %{buildroot}%{_sharedstatedir}/daisy/images
# Config file
install -p -D -m 640 etc/daisy-api.conf %{buildroot}%{_sysconfdir}/daisy/daisy-api.conf
install -p -D -m 640 etc/daisy-orchestration.conf %{buildroot}%{_sysconfdir}/daisy/daisy-orchestration.conf
install -p -D -m 640 etc/daisy-auto-backup.conf %{buildroot}%{_sysconfdir}/daisy/daisy-auto-backup.conf
install -p -D -m 644 %{SOURCE5} %{buildroot}%{_datadir}/daisy/daisy-api-dist.conf
install -p -D -m 644 etc/daisy-api-paste.ini %{buildroot}%{_datadir}/daisy/daisy-api-dist-paste.ini
install -p -D -m 644 etc/daisy-api-paste.ini %{buildroot}%{_sysconfdir}/daisy/daisy-api-paste.ini
install -p -D -m 640 etc/daisy-registry.conf %{buildroot}%{_sysconfdir}/daisy/daisy-registry.conf
install -p -D -m 644 %{SOURCE6} %{buildroot}%{_datadir}/daisy/daisy-registry-dist.conf
install -p -D -m 644 etc/daisy-registry-paste.ini %{buildroot}%{_datadir}/daisy/daisy-registry-dist-paste.ini
install -p -D -m 644 etc/daisy-registry-paste.ini %{buildroot}%{_sysconfdir}/daisy/daisy-registry-paste.ini
install -p -D -m 640 etc/policy.json %{buildroot}%{_sysconfdir}/daisy/policy.json
# systemd services
install -p -D -m 644 %{SOURCE1} %{buildroot}%{_unitdir}/daisy-api.service
install -p -D -m 644 %{SOURCE2} %{buildroot}%{_unitdir}/daisy-registry.service
install -p -D -m 644 %{SOURCE9} %{buildroot}%{_unitdir}/daisy-orchestration.service
install -p -D -m 644 %{SOURCE11} %{buildroot}%{_unitdir}/daisy-auto-backup.service
# Logrotate config
install -p -D -m 644 %{SOURCE4} %{buildroot}%{_sysconfdir}/logrotate.d/daisy
# Install pid directory
install -d -m 755 %{buildroot}%{_localstatedir}/run/daisy
# Install log directory
install -d -m 755 %{buildroot}%{_localstatedir}/log/daisy
mkdir -p %{buildroot}/var/lib/daisy
cp -Rf ../kolla %{buildroot}/var/lib/daisy
cp -Rf ../trustme.sh %{buildroot}/var/lib/daisy
cp -Rf ../versionfile %{buildroot}/var/lib/daisy
%pre
id daisy
if [ $? -ne 0 ];then
groupadd -r daisy --gid 1610
useradd -u 1610 -r -g daisy -d %{_sharedstatedir}/daisy -s /bin/bash \
-c "OpenStack daisy Daemons" daisy
else
usermod -u 1610 daisy
groupmod -g 1610 daisy
fi
exit 0
%post
# Initial installation
%systemd_post daisy-api.service
%systemd_post daisy-registry.service
%systemd_post daisy-orchestration.service
%systemd_post daisy-auto-backup.service
%preun
%systemd_preun daisy-api.service
%systemd_preun daisy-registry.service
%systemd_preun daisy-orchestration.service
%systemd_preun daisy-auto-backup.service
%postun
%systemd_postun_with_restart daisy-api.service
%systemd_postun_with_restart daisy-registry.service
%systemd_postun_with_restart daisy-orchestration.service
%systemd_postun_with_restart daisy-auto-backup.service
if [ $1 -eq 0 ] ; then
rm -rf /var/lib/daisy
fi
%files
/var/lib/daisy/trustme.sh
/var/lib/daisy/kolla/prepare.sh
/var/lib/daisy/kolla/getnodeinfo.sh
/var/lib/daisy/kolla/daisy.py
/var/lib/daisy/kolla/linux_action.sh
/etc/daisy/daisy-api-paste.ini
/etc/daisy/daisy-registry-paste.ini
%doc README.rst
%{_bindir}/daisy-api
%{_bindir}/daisy-manage
%{_bindir}/daisy-registry
%{_bindir}/daisy-orchestration
%{_bindir}/daisy-auto-backup
%{_datadir}/daisy/daisy-api-dist.conf
%{_datadir}/daisy/daisy-registry-dist.conf
%{_datadir}/daisy/daisy-api-dist-paste.ini
%{_datadir}/daisy/daisy-registry-dist-paste.ini
%{_unitdir}/daisy-api.service
%{_unitdir}/daisy-registry.service
%{_unitdir}/daisy-orchestration.service
%{_unitdir}/daisy-auto-backup.service
#%{_mandir}/man1/daisy*.1.gz
%dir %{_sysconfdir}/daisy
%config(noreplace) %attr(-, root, daisy) %{_sysconfdir}/daisy/daisy-api-paste.ini
%config(noreplace) %attr(-, root, daisy) %{_sysconfdir}/daisy/daisy-registry-paste.ini
%config(noreplace) %attr(-, root, daisy) %{_sysconfdir}/daisy/daisy-api.conf
%config(noreplace) %attr(-, root, daisy) %{_sysconfdir}/daisy/daisy-registry.conf
%config(noreplace) %attr(-, root, daisy) %{_sysconfdir}/daisy/daisy-orchestration.conf
%config(noreplace) %attr(-, root, daisy) %{_sysconfdir}/daisy/daisy-auto-backup.conf
%config(noreplace) %attr(-, root, daisy) %{_sysconfdir}/daisy/policy.json
%config(noreplace) %attr(-, root, daisy) %{_sysconfdir}/logrotate.d/daisy
%dir %attr(0755, daisy, daisy) %{_sharedstatedir}/daisy
%dir %attr(0750, daisy, daisy) %{_localstatedir}/log/daisy
%dir %attr(0755, daisy, daisy) %{_localstatedir}/run/daisy
%dir %attr(0755, daisy, daisy) /var/lib/daisy/*
%dir %attr(0777, all, all) /var/lib/daisy/kolla/
%attr(0755, daisy, daisy) /var/lib/daisy/kolla/*
%attr(0755, daisy, daisy) /var/lib/daisy/trustme.sh
%dir %attr(0777, daisy, daisy) /var/lib/daisy/versionfile/
%attr(0777, daisy, daisy) /var/lib/daisy/versionfile/*
%files -n python-daisy
%doc README.rst
%{python2_sitelib}/daisy
%{python2_sitelib}/*.egg-info