Summary: OpenCloud core services
Name: opencloud
-Version: 1.0.10
-Release: 2
+Version: 1.0.26
+Release: 7
License: GPL+
Group: Development/Tools
Source0: %{_tmppath}/%{name}-%{version}.tar.gz
# Empty section.
%pre
-pip-python install django==1.5
+pip-python install django==1.7
pip-python install djangorestframework
pip-python install markdown # Markdown support for the browseable API.
pip-python install pyyaml # YAML content-type support.
pip-python install django-evolution
pip-python install django-bitfield
pip-python install django-ipware
+pip-python install django-encrypted-fields
+pip-python install python-keyczar
easy_install django_evolution
easy_install python_gflags
easy_install google_api_python_client
-wget -P /usr/lib/python2.7/site-packages/suit/static/suit/js http://code.jquery.com/jquery-1.9.1.min.js
+if [ ! -f /usr/lib/python2.7/site-packages/suit/static/suit/js/jquery-1.9.1.min.js ]; then
+ wget -P /usr/lib/python2.7/site-packages/suit/static/suit/js http://code.jquery.com/jquery-1.9.1.min.js
+fi
if [ ! -f /usr/share/GeoIP/GeoLiteCity.dat ]; then
rm -f /usr/share/GeoIP/GeoLiteCity.*
gzip -d /usr/share/GeoIP/GeoLiteCity*.gz
fi
+if [ "$1" == 2 ] ; then
+ if [[ -e /opt/planetstack/scripts/opencloud ]]; then
+ echo "UPGRADE - saving current state"
+ /opt/planetstack/scripts/opencloud dumpdata
+ fi
+fi
+
%install
rm -rf %{buildroot}
mkdir -p %{buildroot}
install -d %{buildroot}/opt/planetstack
+install -d %{buildroot}/etc/init.d
# in builddir
-cp -rp ./planetstack %{buildroot}/opt/.
-find %{buildroot}/opt/planetstack -type f -print | sed "s@^$RPM_BUILD_ROOT@@g" > %{_tmppath}/tmp-filelist
+
+# don't copy symbolic links (they are handled in %post)
+rsync -rptgoD ./planetstack %{buildroot}/opt/.
+cp observer-initscript %{buildroot}/etc/init.d/plstackobserver
+
+find %{buildroot}/opt/planetstack -type f -print | sed "s@^$RPM_BUILD_ROOT@@g" > %{_tmppath}/tmp-filelist
+echo /etc/init.d/plstackobserver >> %{_tmppath}/tmp-filelist
+
+# remove config files from the file list (see %config below)
+cat > %{_tmppath}/config-files << "EOF"
+/opt/planetstack/plstackapi_config
+/opt/planetstack/deployment_auth.py
+EOF
+
+sort %{_tmppath}/tmp-filelist > %{_tmppath}/tmp-filelist.sorted
+sort %{_tmppath}/config-files > %{_tmppath}/config-files.sorted
+comm -13 %{_tmppath}/config-files.sorted %{_tmppath}/tmp-filelist.sorted > %{_tmppath}/tmp-filelist
+
+cp %{_tmppath}/tmp-filelist /tmp/tmp-filelist
%clean
rm -rf %{buildroot}
%files -f %{_tmppath}/tmp-filelist
%defattr(-,root,root,-)
+%config /opt/planetstack/plstackapi_config
+%config /opt/planetstack/deployment_auth.py
-%pre
-if [ "$1" == 2 ] ; then
- echo "UPGRADE - saving current state"
- /opt/planetstack/scripts/opencloud dumpdata
+%post
+ln -s ec2_observer /opt/planetstack/observer
+ln -s config-opencloud.py /opt/planetstack/syndicate_observer/syndicatelib_config/config.py
+
+if [ ! -e /opt/planetstack/public_keys ]; then
+ cd /opt/planetstack
+ scripts/opencloud genkeys
fi
-%post
if [ "$1" == 1 ] ; then
echo "NEW INSTALL - initializing database"
/opt/planetstack/scripts/opencloud initdb
else
- echo "UPGRADE - doing evolution"
+ # scripts/opencloud will choose evolve or migrate depending on django version
+ echo "UPGRADE - doing evolution/migration"
/opt/planetstack/scripts/opencloud evolvedb
fi
+
# start the server
/opt/planetstack/scripts/opencloud runserver