sbin/sync/fabfile.py
changeset 281 baeb057c48bd
parent 58 67935f823afe
equal deleted inserted replaced
280:fd509e073f7b 281:baeb057c48bd
     1 from fabric.api import task, env, sudo
       
     2 
       
     3 from fablib import (export_version, do_sync_web, create_config, 
       
     4     clean_export_folder, sync_install_build, do_create_virtualenv, 
       
     5     clean_rsync_folder, rsync_export, do_relaunch_server)
       
     6 from fabric.colors import green
       
     7 import imp
     1 import imp
     8 import os.path
     2 import os.path
     9 import config
     3 
       
     4 import config  # @UnusedImport
       
     5 from fablib import (export_version, do_sync_web, create_config,
       
     6     clean_export_folder, do_sync_comp, sync_install_build, do_create_virtualenv,
       
     7     clean_rsync_folder, rsync_export, get_comp_versions_dict, SyncComp,
       
     8     do_relaunch_server)
       
     9 from fabric.api import task, env
       
    10 from fabric.colors import green
       
    11 
    10 
    12 
    11 @task
    13 @task
    12 def relaunch_server(do_collectstatic=True, do_syncdb=True):
    14 def relaunch_server(do_collectstatic=True, do_syncdb=True, do_check_folder_access=True):
    13     print("Relaunch server")
    15     print("Relaunch server")
    14     do_relaunch_server(do_collectstatic, do_syncdb)
    16     do_relaunch_server(do_collectstatic, do_syncdb, env.get('check_folder_access',do_check_folder_access))
    15 
    17 
    16 @task
    18 @task
    17 def sync_web(version):
    19 def sync_web(version):
    18     print(green("sync web with version %s" % version))
    20     print(green("sync web with version %s" % version))
    19     export_path = export_version(web=version)
    21     export_path = export_version(web=version)
    38     package_path_full = os.path.join(export_path_full, "virtualenv", "res", "src", lib_create_env.URLS[package]['local'])
    40     package_path_full = os.path.join(export_path_full, "virtualenv", "res", "src", lib_create_env.URLS[package]['local'])
    39     
    41     
    40     sync_install_build(package_path_full)
    42     sync_install_build(package_path_full)
    41     clean_export_folder(export_path)
    43     clean_export_folder(export_path)
    42     relaunch_server()
    44     relaunch_server()
    43     
    45 
    44 
    46 
    45 @task
    47 @task
    46 def create_virtualenv(version):
    48 def create_virtualenv(version):
    47     print(green("create virtualenv with version %s" % version))
    49     print(green("create virtualenv with version %s" % version))
    48     export_path = export_version(web=version)
    50     export_path = export_version(web=version)
    56         do_create_virtualenv(venv_remote_export_path, env.remote_path['virtualenv'])
    58         do_create_virtualenv(venv_remote_export_path, env.remote_path['virtualenv'])
    57     finally:
    59     finally:
    58         clean_export_folder(export_path)
    60         clean_export_folder(export_path)
    59         if venv_remote_export_path:
    61         if venv_remote_export_path:
    60             clean_rsync_folder(venv_remote_export_path)
    62             clean_rsync_folder(venv_remote_export_path)
       
    63 
       
    64 if len(env.repos) > 1:    
       
    65     @task
       
    66     def sync_platform(version):
       
    67         print(green("sync platform with version web %s" % (version)))
       
    68         export_path = export_version(web=version)
       
    69         
       
    70         export_path_web = os.path.join(export_path,'web')
       
    71         do_sync_web(version, export_path_web)    
       
    72     
       
    73         comp_versions = get_comp_versions_dict(export_path_web)  
       
    74     
       
    75         for key in [k for k in env.repos if k != 'web']:
       
    76             export_path_key = export_version(**{key: comp_versions[key]})
       
    77             export_path_comp = os.path.join(export_path_key, key)
       
    78             do_sync_comp(key, export_path_comp)
       
    79             clean_export_folder(export_path_key)    
       
    80         
       
    81         create_config(export_path_web)
       
    82         clean_export_folder(export_path)
       
    83         relaunch_server()
       
    84 
       
    85 for sync_name in [key for key in env.repos if key != 'web']:
       
    86     globals()[sync_name] = SyncComp(sync_name)