From 0d33353472142e814318cebbec26d6ddeefa183a Mon Sep 17 00:00:00 2001 From: helmutm Date: Tue, 16 Feb 2010 15:08:12 +0000 Subject: [PATCH] work in progress: loops site synchronization: trigger import git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@3735 fd906abe-77d9-0310-91a1-e0d9ade77398 --- system/sync/browser.py | 22 ++++++++++++++++++---- system/sync/configure.zcml | 6 ++++++ 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/system/sync/browser.py b/system/sync/browser.py index 85a6e15..890c333 100644 --- a/system/sync/browser.py +++ b/system/sync/browser.py @@ -26,6 +26,7 @@ from cStringIO import StringIO from logging import getLogger import os import time +from urllib import urlopen, urlencode from zope import component from zope.interface import Interface, implements from zope.app.pagetemplate.viewpagetemplatefile import ViewPageTemplateFile @@ -133,6 +134,10 @@ class ChangesSync(ChangesSave): state = 'ok' + @Lazy + def targetPath(self): + return self.targetView.options('target_dir')[0] + def update(self): self.export() self.transfer() @@ -141,8 +146,7 @@ class ChangesSync(ChangesSave): return True def transfer(self): - targetPath = self.targetView.options('target')[0] - cmd = os.popen('scp -r %s %s' % (self.exportDirectory, targetPath)) + cmd = os.popen('scp -r %s %s' % (self.exportDirectory, self.targetPath)) info = cmd.read() result = cmd.close() if result: @@ -152,7 +156,16 @@ class ChangesSync(ChangesSave): self.transcript.write(message + '\n') def triggerImport(self): - pass + targetUrl = self.targetView.options('target_url')[0] + p = self.targetPath.split(':', 1) + if len(p) > 1: + path = p[1] + else: + path = p[0] + f = urlopen(targetUrl, data=urlencode(dict(path=path))) + result = f.read() + self.transcript.write('trigger import: %s\n' % result) + return result def recordExecution(self): jobs = JobRecords(self.view.loopsRoot) @@ -163,4 +176,5 @@ class ChangesSync(ChangesSave): class SyncImport(BaseView): def importData(self): - pass + print '***', self.request.get('path', '???') + return 'Done' diff --git a/system/sync/configure.zcml b/system/sync/configure.zcml index a61a261..85dbda7 100644 --- a/system/sync/configure.zcml +++ b/system/sync/configure.zcml @@ -25,4 +25,10 @@ factory="loops.system.sync.browser.ChangesSync" permission="zope.ManageContent" /> + +