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
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'

View file

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