--- a/sbin/sync/ldt_fablib/__init__.py Tue Dec 04 00:17:10 2012 +0100
+++ b/sbin/sync/ldt_fablib/__init__.py Tue Dec 04 10:19:44 2012 +0100
@@ -3,6 +3,8 @@
from fabric.contrib.files import exists, upload_template
from fabric.contrib.project import rsync_project
from mercurial import commands, ui, hg, cmdutil
+from fabric.tasks import Task
+from fabric.colors import green
import config
import imp
import os
@@ -15,7 +17,8 @@
__all__ = ["check_folder_access", "syncdb", "collectstatic",
"export_version", "do_sync_web", "create_config", "clean_export_folder", "relaunch_server",
- "do_sync_ldt", "sync_install_build", "do_create_virtualenv", "clean_rsync_folder", "rsync_export"]
+ "do_sync_ldt", "sync_install_build", "do_create_virtualenv", "clean_rsync_folder", "rsync_export",
+ "SyncComp"]
def get_export_path(version):
base_path = os.path.join(env.base_export_path,env.export_prefix).rstrip("/")
@@ -255,3 +258,36 @@
comp_versions[key] = version_req
return comp_versions
+
+def do_relaunch_server(do_collectstatic, do_syncdb):
+ check_folder_access()
+ if do_syncdb:
+ syncdb(env.remote_path['src'], env.remote_path['virtualenv'])
+ if do_collectstatic:
+ collectstatic(env.remote_path['src'], env.remote_path['virtualenv'], env.platform_web_module)
+ sudo(env.web_relaunch_cmd, shell=False)
+
+
+class SyncComp(Task):
+
+ def __init__(self, key):
+ self.key = key
+
+ def __get_name(self):
+ return "sync_" + self.key
+
+ name = property(__get_name)
+
+ def run(self, version):
+ print(green("sync ldt with version %s" % version))
+ export_path_web = export_version(web=version)
+ export_path_web_full = os.path.join(export_path_web,'web')
+ comp_versions = get_comp_versions_dict(export_path_web_full)
+
+ export_path = export_version(**{self.key:comp_versions[self.key]})
+ export_path_full = os.path.join(export_path,self.key)
+ do_sync_comp(self.key, export_path_full)
+ clean_export_folder(export_path)
+ clean_export_folder(export_path_web)
+
+ do_relaunch_server(do_collectstatic=True, do_syncdb=True)