remove Dashboard Views from user admin
[plstackapi.git] / opencloud.spec
index 256a190..0bbf9a6 100644 (file)
@@ -1,7 +1,7 @@
 Summary: OpenCloud core services
 Name: opencloud
-Version: 1.0.7
-Release: 1
+Version: 1.0.29
+Release: 3
 License: GPL+
 Group: Development/Tools
 Source0: %{_tmppath}/%{name}-%{version}.tar.gz
@@ -18,6 +18,7 @@ requires: tar
 requires: gcc
 requires: python-httplib2
 requires: GeoIP
+requires: wget
 
 %description
 %{summary}
@@ -29,8 +30,8 @@ requires: GeoIP
 # Empty section.
 
 %pre
-pip-python install django==1.5
-pip-python install djangorestframework
+pip-python install django==1.7
+pip-python install djangorestframework==2.4.4
 pip-python install markdown  # Markdown support for the browseable API.
 pip-python install pyyaml    # YAML content-type support.
 pip-python install django-filter  # Filtering support
@@ -46,35 +47,107 @@ pip-python install django-suit
 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
+pip-python install python-keystoneclient
+pip-python install python-novaclient
+pip-python install python-neutronclient 
+pip-python install python-glanceclient
+pip-python install python-ceilometerclient
+
 
 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.*
+   wget -P /usr/share/GeoIP http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
+   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 /opt/plstackapi/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
+%config /opt/planetstack/model-deps
 
 %post
-/opt/planetstack/scripts/opencloud initdb
+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
+
+if [ "$1" == 1 ] ; then
+    echo "NEW INSTALL - initializing database"
+    /opt/planetstack/scripts/opencloud initdb
+else
+    # scripts/opencloud will choose evolve or migrate depending on django version
+    echo "UPGRADE - doing evolution/migration"
+    /opt/planetstack/scripts/opencloud evolvedb
+fi
+
+# Clone ansible with latest openstack modules
+git clone --recursive git://github.com/ansible/ansible.git /opt/ansible
+mkdir -p /etc/ansible
+echo > /etc/ansible/hosts << "EOF"
+[localhost]
+127.0.0.1
+EOF
+
+
+# start the server
+/opt/planetstack/scripts/opencloud runserver
 
 %preun
 if [ "$1" = 0 ] ; then
-    echo "doing preuninstall"
+    echo "UNINSTALL - destroying planetstack"
     rm -rf /opt/planetstack
 fi