Name: savanna Version: 0.2 Release: 1%{?dist} Summary: Apache Hadoop cluster management on OpenStack License: ASL 2.0 URL: https://launchpad.net/savanna Source0: http://tarballs.openstack.org/savanna/savanna-%{version}.tar.gz Source1: savanna-api.service BuildArch: noarch BuildRequires: python2-devel BuildRequires: python-setuptools BuildRequires: python-sphinx BuildRequires: python-sphinxcontrib-httpdomain Requires: python-alembic Requires: python-oslo-config Requires: python-iso8601 Requires: python-netaddr Requires: python-novaclient Requires: python-paramiko Requires: python-eventlet Requires: python-flask Requires: python-keystoneclient Requires: python-cinderclient Requires: python-jsonschema Requires(post): systemd Requires(preun): systemd Requires(postun): systemd Requires(pre): shadow-utils %description Savanna provides the ability to elastically manage Apache Hadoop clusters on OpenStack. %prep %setup -q -n savanna-%{version} %build %{__python} setup.py build export PYTHONPATH=$PWD:${PYTHONPATH} # Note: json warnings likely resolved w/ pygments 1.5 (not yet in Fedora) sphinx-build doc/source html rm -rf html/.{doctrees,buildinfo} %install %{__python} setup.py install --skip-build --root %{buildroot} install -p -D -m 644 %{SOURCE1} %{buildroot}%{_unitdir}/savanna-api.service HOME=%{_sharedstatedir}/savanna install -d -m 700 %{buildroot}$HOME # TODO: os_admin_username/password/tenant_name SAMPLE=%{buildroot}%{_datadir}/savanna/savanna.conf.sample CONF=%{buildroot}%{_sysconfdir}/savanna/savanna.conf install -d -m 755 $(dirname $CONF) install -D -m 640 $SAMPLE $CONF sed -i -e "s,^connection=.*,connection=sqlite:///$HOME/savanna-server.db," $CONF %pre # Origin: http://fedoraproject.org/wiki/Packaging:UsersAndGroups#Dynamic_allocation USERNAME=savanna GROUPNAME=$USERNAME HOMEDIR=%{_sharedstatedir}/savanna 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 "Savanna Daemons" $USERNAME exit 0 %post # TODO: if db file then savanna-db-manage update head # TODO: savanna-db-manage should read /etc/savanna/savanna.conf by default # https://bugs.launchpad.net/savanna/+bug/1202227 %systemd_post savanna-api.service %preun %systemd_preun savanna-api.service %postun %systemd_postun_with_restart savanna-api.service %files %doc html README.rst LICENSE %dir %{_sysconfdir}/savanna # Note: this file is not readable because it holds auth credentials %config(noreplace) %attr(-, root, savanna) %{_sysconfdir}/savanna/savanna.conf %{_bindir}/savanna-api %{_bindir}/savanna-db-manage %{_unitdir}/savanna-api.service %dir %attr(-, savanna, savanna) %{_sharedstatedir}/savanna # Note: permissions on savanna's home are intentially 0700 %dir %{_datadir}/savanna %{_datadir}/savanna/savanna.conf.sample %{_datadir}/savanna/savanna.conf.sample-full %{python_sitelib}/savanna %{python_sitelib}/savanna-%{version}-py?.?.egg-info %changelog * Mon Jul 15 2013 Matthew Farrellee - 0.2-1 - Initial package