dabo Commit
Revision 5233
Date: 2009-05-26 19:28:29 -0700 (Tue, 26 May 2009)
Author: Ed
Trac: http://trac.dabodev.com/changeset/5233
Changed:
U trunk/daboserver/config/routing.py
A trunk/daboserver/controllers/webupdate.py
U trunk/daboserver/model/__init__.py
A trunk/daboserver/tests/functional/test_webupdate.py
Log:
Changes to the server to support web update
Diff:
Modified: trunk/daboserver/config/routing.py
===================================================================
--- trunk/daboserver/config/routing.py 2009-05-27 01:15:38 UTC (rev 5232)
+++ trunk/daboserver/config/routing.py 2009-05-27 02:28:29 UTC (rev 5233)
@@ -18,6 +18,10 @@
map.connect('/error/:action', controller='error')
map.connect('/error/:action/:id', controller='error')
+ # Web update controller
+ map.connect("wup", "/webupdate/:action/:val", controller="webupdate")
+ map.connect("wup", "/webupdate/:action", controller="webupdate")
+
# CUSTOM ROUTES HERE
map.connect("man1", "/manifest/:app/:fnc/:id", controller="bizservers",
action="manifest")
map.connect("man2", "/manifest/:app/:fnc", controller="bizservers",
action="manifest")
Added: trunk/daboserver/controllers/webupdate.py
===================================================================
--- trunk/daboserver/controllers/webupdate.py (rev 0)
+++ trunk/daboserver/controllers/webupdate.py 2009-05-27 02:28:29 UTC (rev
5233)
@@ -0,0 +1,70 @@
+import logging
+import simplejson
+import os
+import tempfile
+from zipfile import ZipFile
+
+from pylons import request, response, session, tmpl_context as c
+from pylons.controllers.util import abort, redirect_to
+
+from daboserver.lib.base import BaseController, render
+from daboserver import model
+from daboserver.model import Versions
+
+log = logging.getLogger(__name__)
+
+
+
+class WebupdateController(BaseController):
+ """ Check for Web Update changes, and download the files when
requested."""
+ _deletedFilesName = "DELETEDFILES"
+
+
+ def check(self, val):
+ return simplejson.dumps(Versions.changes(val))
+
+
+ def files(self, val):
+ currdir = os.getcwd()
+ chgs = Versions.changes(val)["files"]
+ delfiles = []
+ goodPrefixes = ("dabo", "demo", "ide")
+ basepath = "%s%s" % (Versions.reposBase, Versions.repos)
+ os.chdir(basepath)
+ fd, tmpname = tempfile.mkstemp(suffix=".zip")
+ os.close(fd)
+ z = ZipFile(tmpname, "w")
+ zcount = dcount = 0
+ for chg in chgs:
+ chgtype, pth = chg.split()
+ try:
+ prfx, fname = pth.split("/", 1)
+ except ValueError:
+ # A file in the trunk; ignore
+ continue
+ if prfx not in goodPrefixes:
+ # Not a web update project
+ continue
+ if "D" in chgtype:
+ delfiles.append(pth)
+ dcount += 1
+ continue
+ # 'pth' must be str, not unicode
+ if os.path.isfile(pth):
+ z.write(str(pth))
+ zcount += 1
+ if dcount:
+ # Add the file with deletion paths
+ fd, tmpdel = tempfile.mkstemp()
+ os.close(fd)
+ file(tmpdel, "w").write("\n".join(delfiles))
+ z.write(tmpdel, self._deletedFilesName)
+ os.remove(tmpdel)
+
+ z.close()
+ response.headers['content-type'] =
"application/x-zip-compressed"
+ ret = file(tmpname).read()
+ os.remove(tmpname)
+ os.chdir(currdir)
+ return ret
+
\ No newline at end of file
Modified: trunk/daboserver/model/__init__.py
===================================================================
--- trunk/daboserver/model/__init__.py 2009-05-27 01:15:38 UTC (rev 5232)
+++ trunk/daboserver/model/__init__.py 2009-05-27 02:28:29 UTC (rev 5233)
@@ -0,0 +1,4 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+from versions import Versions
Added: trunk/daboserver/tests/functional/test_webupdate.py
===================================================================
--- trunk/daboserver/tests/functional/test_webupdate.py
(rev 0)
+++ trunk/daboserver/tests/functional/test_webupdate.py 2009-05-27 02:28:29 UTC
(rev 5233)
@@ -0,0 +1,7 @@
+from daboserver.tests import *
+
+class TestWebupdateController(TestController):
+
+ def test_index(self):
+ response = self.app.get(url(controller='webupdate', action='index'))
+ # Test response...
_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-dev
Searchable Archives: http://leafe.com/archives/search/dabo-dev
This message:
http://leafe.com/archives/byMID/[email protected]