Added in initial make -- rpm support, tested against Fedora 16, code in for Fedora...
Siobhan Tully [Sun, 23 Feb 2014 05:07:12 +0000 (00:07 -0500)]
Makefile [new file with mode: 0644]
opencloud.spec [new file with mode: 0644]
planetstack/core/fixtures/initial_data.json
planetstack/scripts/opencloud [new file with mode: 0755]

diff --git a/Makefile b/Makefile
new file mode 100644 (file)
index 0000000..be5701d
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,36 @@
+NAME = opencloud
+SPECFILE = $(NAME).spec
+VERSION = $(shell rpm -q --specfile $(SPECFILE) --qf '%{VERSION}\n' | head -n 1)
+RELEASE = $(shell rpm -q --specfile $(SPECFILE) --qf '%{RELEASE}\n' | head -n 1)
+
+PWD = $(shell pwd)
+
+dist rpm: $(NAME)-$(VERSION)-$(RELEASE).rpm
+
+$(NAME)-$(VERSION).tar.gz:
+       mkdir -p $(NAME)-$(VERSION)
+       rsync -av --exclude=.svn --exclude=.git --exclude=*.tar.gz --exclude=$(NAME)-$(VERSION)/ ./ $(NAME)-$(VERSION)
+       tar -czf $@ $(NAME)-$(VERSION)
+       rm -fr $(NAME)-$(VERSION)
+
+$(NAME)-$(VERSION)-$(RELEASE).rpm: $(NAME)-$(VERSION).tar.gz
+       mkdir -p build
+       rpmbuild -bb --define '_sourcedir $(PWD)' \
+                --define '_builddir $(PWD)/build' \
+                --define '_srcrpmdir $(PWD)' \
+                --define '_rpmdir $(PWD)' \
+                --define '_build_name_fmt %%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm' \
+                $(SPECFILE)
+
+srpm: $(NAME)-$(VERSION)-$(RELEASE).src.rpm
+$(NAME)-$(VERSION)-$(RELEASE).src.rpm: $(NAME)-$(VERSION).tar.gz
+       rpmbuild -bs --define "_sourcedir $$(pwd)" \
+                --define "_srcrpmdir $$(pwd)" \
+                $(SPECFILE)
+
+clean:
+       rm -f $(NAME)-$(VERSION).tar.gz $(NAME)-$(VERSION)-$(RELEASE).src.rpm $(NAME)-$(VERSION)-$(RELEASE).noarch.rpm
+       rm -rf build
+
+.PHONY: dist
+
diff --git a/opencloud.spec b/opencloud.spec
new file mode 100644 (file)
index 0000000..dab5f11
--- /dev/null
@@ -0,0 +1,73 @@
+Summary: OpenCloud core services
+Name: opencloud
+Version: 1.0
+Release: 1
+License: GPL+
+Group: Development/Tools
+Source0: %{_tmppath}/%{name}-%{version}.tar.gz
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}
+requires: postgresql
+requires: postgresql-server
+requires: python-psycopg2
+requires: graphviz
+requires: graphviz-devel
+requires: graphviz-python
+requires: libxslt-devel
+requires: python-pip
+requires: tar
+requires: gcc
+
+%description
+%{summary}
+
+%prep
+%setup -q
+
+%build
+# Empty section.
+
+%pre
+pip-python install django==1.5
+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-filter  # Filtering support
+pip-python install lxml  # XML manipulation library
+pip-python install netaddr # IP Addr library
+pip-python install pytz
+pip-python install django-timezones
+pip-python install requests
+pip-python install django-crispy-forms
+pip-python install django-geoposition
+pip-python install django-extensions
+pip-python install django-suit
+pip-python install django-evolution
+
+easy_install django_evolution
+
+%install
+rm -rf %{buildroot}
+mkdir -p  %{buildroot}
+install -d %{buildroot}/opt/planetstack
+
+# 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
+
+%clean
+rm -rf %{buildroot}
+
+%files -f %{_tmppath}/tmp-filelist
+%defattr(-,root,root,-)
+
+%post
+/opt/planetstack/scripts/opencloud initdb
+
+%preun
+rm -rf /opt/planetstack
+
+%changelog
+* Sat Feb 22 2014  Siobhan Tully  1.0.0
+- First Build
+
index 6650547..469bc31 100644 (file)
         "timezone": "America/New_York", 
         "is_admin": true, 
         "password": "pbkdf2_sha256$10000$v5qKhIyhSQ2N$V8vh2mkqYdjQib6d2jBkpwV57eMBfhd/9eiXqaDLUWg=", 
-        "email": "padmin@vicci.org", 
-        "enacted": null
+        "email": "padmin@vicci.org"
     }
 },
 {
         "timezone": "America/New_York", 
         "is_admin": true, 
         "password": "pbkdf2_sha256$10000$dLKRXWJlkuvm$Ycamy79oT1lN0Q5R3B3nvlr70n2X50mL86yraDwzuWk=", 
-        "email": "tony@onlab.us", 
-        "enacted": null
+        "email": "tony@onlab.us"
     }
 },
 {
         "timezone": "America/New_York", 
         "is_admin": true, 
         "password": "pbkdf2_sha256$10000$dLKRXWJlkuvm$Ycamy79oT1lN0Q5R3B3nvlr70n2X50mL86yraDwzuWk=", 
-        "email": "mike@onlab.us", 
-        "enacted": null
+        "email": "mike@onlab.us"
     }
 },
 {
         "timezone": "America/New_York", 
         "is_admin": true, 
         "password": "pbkdf2_sha256$10000$dLKRXWJlkuvm$Ycamy79oT1lN0Q5R3B3nvlr70n2X50mL86yraDwzuWk=", 
-        "email": "andy@onlab.us", 
-        "enacted": null
+        "email": "andy@onlab.us"
     }
 },
 {
         "timezone": "America/New_York", 
         "is_admin": true, 
         "password": "pbkdf2_sha256$10000$dLKRXWJlkuvm$Ycamy79oT1lN0Q5R3B3nvlr70n2X50mL86yraDwzuWk=", 
-        "email": "sapan@onlab.us", 
-        "enacted": null
+        "email": "sapan@onlab.us" 
     }
 },
 {
         "timezone": "America/New_York", 
         "is_admin": true, 
         "password": "pbkdf2_sha256$10000$dLKRXWJlkuvm$Ycamy79oT1lN0Q5R3B3nvlr70n2X50mL86yraDwzuWk=", 
-        "email": "jcnelson@cs.princeton.edu", 
-        "enacted": null
+        "email": "jcnelson@cs.princeton.edu"
     }
 },
 {
         "timezone": "America/New_York", 
         "is_admin": true, 
         "password": "pbkdf2_sha256$10000$dLKRXWJlkuvm$Ycamy79oT1lN0Q5R3B3nvlr70n2X50mL86yraDwzuWk=", 
-        "email": "llp@onlab.us", 
-        "enacted": null
+        "email": "llp@onlab.us"
     }
 },
 {
         "timezone": "America/New_York", 
         "is_admin": true, 
         "password": "pbkdf2_sha256$10000$dLKRXWJlkuvm$Ycamy79oT1lN0Q5R3B3nvlr70n2X50mL86yraDwzuWk=", 
-        "email": "scott@onlab.us", 
-        "enacted": null
+        "email": "scott@onlab.us"
     }
 },
 {
         "timezone": "America/New_York", 
         "is_admin": true, 
         "password": "pbkdf2_sha256$10000$dLKRXWJlkuvm$Ycamy79oT1lN0Q5R3B3nvlr70n2X50mL86yraDwzuWk=", 
-        "email": "ali@onlab.us", 
-        "enacted": null
+        "email": "ali@onlab.us"
     }
 },
 {
         "timezone": "America/New_York", 
         "is_admin": true, 
         "password": "pbkdf2_sha256$10000$dLKRXWJlkuvm$Ycamy79oT1lN0Q5R3B3nvlr70n2X50mL86yraDwzuWk=", 
-        "email": "bill@onlab.us", 
-        "enacted": null
+        "email": "bill@onlab.us"
     }
 },
 {
         "timezone": "America/New_York", 
         "is_admin": true, 
         "password": "pbkdf2_sha256$10000$dLKRXWJlkuvm$Ycamy79oT1lN0Q5R3B3nvlr70n2X50mL86yraDwzuWk=", 
-        "email": "guru@onlab.us", 
-        "enacted": null
+        "email": "guru@onlab.us"
     }
 },
 {
         "timezone": "America/New_York", 
         "is_admin": true, 
         "password": "pbkdf2_sha256$10000$dLKRXWJlkuvm$Ycamy79oT1lN0Q5R3B3nvlr70n2X50mL86yraDwzuWk=", 
-        "email": "marc@onlab.us", 
-        "enacted": null
+        "email": "marc@onlab.us"
     }
 },
 {
         "timezone": "America/New_York", 
         "is_admin": true, 
         "password": "pbkdf2_sha256$10000$dLKRXWJlkuvm$Ycamy79oT1lN0Q5R3B3nvlr70n2X50mL86yraDwzuWk=", 
-        "email": "siobhan@onlab.us", 
-        "enacted": null
+        "email": "siobhan@onlab.us"
     }
 },
 {
         "timezone": "America/New_York", 
         "is_admin": true, 
         "password": "pbkdf2_sha256$10000$jaLSTW2ksHEN$HDpjDKieFDjMvtV5wbF/ow3zfq8EqcFtNXLfuo+150s=", 
-        "email": "demo@onlab.us", 
-        "enacted": null
+        "email": "demo@onlab.us"
     }
 },
 {
         "timezone": "America/New_York", 
         "is_admin": true, 
         "password": "!", 
-        "email": "jhh@cs.arizona.edu", 
-        "enacted": null
+        "email": "jhh@cs.arizona.edu"
     }
 },
 {
diff --git a/planetstack/scripts/opencloud b/planetstack/scripts/opencloud
new file mode 100755 (executable)
index 0000000..3005865
--- /dev/null
@@ -0,0 +1,62 @@
+#!/bin/sh
+
+if [ -z "$1" ]; then
+    echo usage: $0 "[initdb | resetdb ]"
+    exit
+fi
+
+cd /opt/planetstack
+
+function initdb {
+    #Figure out if the script is running on Fedora 16 or 17
+    if grep 16 /etc/fedora-release;  then
+        sudo -u postgres initdb -D /var/lib/pgsql/data/
+        sudo -u postgres pg_ctl -D /var/lib/pgsql/data -l logfile start
+    else
+        #Try normal Fedora 17 commands
+        echo "Trying Fedora 17 commands" > /dev/stdout
+        /sbin/service postgresql initdb
+        /sbin/service postgresql start
+        /sbin/chkconfig postgresql on
+    fi
+}
+function createdb {
+    echo "Creating OpenCloud database..."
+    sudo -u postgres createdb planetstack 
+}
+function dropdb {
+    echo "Dropping OpenCloud database..."
+    sudo -u postgres dropdb planetstack
+}
+function syncdb {
+    echo "Syncing OpenCloud services..."
+    python /opt/planetstack/manage.py syncdb --noinput
+}
+function runserver {
+#    python manage.py runserver 128.95.1.128:8000
+    echo "Starting OpenCloud Service on $HOSTNAME:8000"
+    python manage.py runserver  $HOSTNAME:8000&
+}
+
+COMMAND=$1
+
+if [ "$COMMAND" = "initdb" ]; then
+    initdb
+    createdb
+    syncdb
+    runserver
+fi
+if [ "$COMMAND" = "resetdb" ]; then
+    dropdb
+    createdb
+    syncdb
+    runserver
+fi
+if [ "$COMMAND" = "syncdb" ]; then
+    syncdb
+    runserver
+fi
+if [ "$COMMAND" = "runserver" ]; then
+    runserver
+fi
+