diff -r 7df43b86c425 -r 6b79d5424407 sbin/sync/ldt_fablib/__init__.py --- 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)