slightly upgrade fab file to improve deployment V00.09.00
authorymh <ymh.work@gmail.com>
Wed, 26 Mar 2014 15:27:15 +0100
changeset 281 baeb057c48bd
parent 280 fd509e073f7b
child 282 8ee36aa9a5f6
slightly upgrade fab file to improve deployment
sbin/sync/config.py.tmpl
sbin/sync/fabfile.py
--- a/sbin/sync/config.py.tmpl	Fri Mar 21 19:34:51 2014 +0100
+++ b/sbin/sync/config.py.tmpl	Wed Mar 26 15:27:15 2014 +0100
@@ -62,3 +62,5 @@
     },
 }
 
+env.check_folder_access = True
+
--- a/sbin/sync/fabfile.py	Fri Mar 21 19:34:51 2014 +0100
+++ b/sbin/sync/fabfile.py	Wed Mar 26 15:27:15 2014 +0100
@@ -1,17 +1,19 @@
-from fabric.api import task, env, sudo
-
-from fablib import (export_version, do_sync_web, create_config, 
-    clean_export_folder, sync_install_build, do_create_virtualenv, 
-    clean_rsync_folder, rsync_export, do_relaunch_server)
-from fabric.colors import green
 import imp
 import os.path
-import config
+
+import config  # @UnusedImport
+from fablib import (export_version, do_sync_web, create_config,
+    clean_export_folder, do_sync_comp, sync_install_build, do_create_virtualenv,
+    clean_rsync_folder, rsync_export, get_comp_versions_dict, SyncComp,
+    do_relaunch_server)
+from fabric.api import task, env
+from fabric.colors import green
+
 
 @task
-def relaunch_server(do_collectstatic=True, do_syncdb=True):
+def relaunch_server(do_collectstatic=True, do_syncdb=True, do_check_folder_access=True):
     print("Relaunch server")
-    do_relaunch_server(do_collectstatic, do_syncdb)
+    do_relaunch_server(do_collectstatic, do_syncdb, env.get('check_folder_access',do_check_folder_access))
 
 @task
 def sync_web(version):
@@ -40,7 +42,7 @@
     sync_install_build(package_path_full)
     clean_export_folder(export_path)
     relaunch_server()
-    
+
 
 @task
 def create_virtualenv(version):
@@ -58,3 +60,27 @@
         clean_export_folder(export_path)
         if venv_remote_export_path:
             clean_rsync_folder(venv_remote_export_path)
+
+if len(env.repos) > 1:    
+    @task
+    def sync_platform(version):
+        print(green("sync platform with version web %s" % (version)))
+        export_path = export_version(web=version)
+        
+        export_path_web = os.path.join(export_path,'web')
+        do_sync_web(version, export_path_web)    
+    
+        comp_versions = get_comp_versions_dict(export_path_web)  
+    
+        for key in [k for k in env.repos if k != 'web']:
+            export_path_key = export_version(**{key: comp_versions[key]})
+            export_path_comp = os.path.join(export_path_key, key)
+            do_sync_comp(key, export_path_comp)
+            clean_export_folder(export_path_key)    
+        
+        create_config(export_path_web)
+        clean_export_folder(export_path)
+        relaunch_server()
+
+for sync_name in [key for key in env.repos if key != 'web']:
+    globals()[sync_name] = SyncComp(sync_name)