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
This commit is contained in:
helmutm 2010-02-16 15:08:12 +00:00
parent e0240b5e82
commit 0d33353472
2 changed files with 24 additions and 4 deletions

View file

@ -26,6 +26,7 @@ from cStringIO import StringIO
from logging import getLogger from logging import getLogger
import os import os
import time import time
from urllib import urlopen, urlencode
from zope import component from zope import component
from zope.interface import Interface, implements from zope.interface import Interface, implements
from zope.app.pagetemplate.viewpagetemplatefile import ViewPageTemplateFile from zope.app.pagetemplate.viewpagetemplatefile import ViewPageTemplateFile
@ -133,6 +134,10 @@ class ChangesSync(ChangesSave):
state = 'ok' state = 'ok'
@Lazy
def targetPath(self):
return self.targetView.options('target_dir')[0]
def update(self): def update(self):
self.export() self.export()
self.transfer() self.transfer()
@ -141,8 +146,7 @@ class ChangesSync(ChangesSave):
return True return True
def transfer(self): def transfer(self):
targetPath = self.targetView.options('target')[0] cmd = os.popen('scp -r %s %s' % (self.exportDirectory, self.targetPath))
cmd = os.popen('scp -r %s %s' % (self.exportDirectory, targetPath))
info = cmd.read() info = cmd.read()
result = cmd.close() result = cmd.close()
if result: if result:
@ -152,7 +156,16 @@ class ChangesSync(ChangesSave):
self.transcript.write(message + '\n') self.transcript.write(message + '\n')
def triggerImport(self): 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): def recordExecution(self):
jobs = JobRecords(self.view.loopsRoot) jobs = JobRecords(self.view.loopsRoot)
@ -163,4 +176,5 @@ class ChangesSync(ChangesSave):
class SyncImport(BaseView): class SyncImport(BaseView):
def importData(self): def importData(self):
pass print '***', self.request.get('path', '???')
return 'Done'

View file

@ -25,4 +25,10 @@
factory="loops.system.sync.browser.ChangesSync" factory="loops.system.sync.browser.ChangesSync"
permission="zope.ManageContent" /> permission="zope.ManageContent" />
<browser:page
name="sync_import"
for="loops.interfaces.ILoops"
class="loops.system.sync.browser.SyncImport"
permission="zope.Public" />
</configure> </configure>