def zinuit_command(zinuit_path='.'): """Zinuit manager for Metel""" import zinuit from zinuit.utils import setup_logging zinuit.set_metel_version(zinuit_path=zinuit_path) setup_logging(zinuit_path=zinuit_path)
def backup_site(site, zinuit_path='.'): zinuit.set_metel_version(zinuit_path=zinuit_path) if zinuit.METEL_VERSION == 0: exec_cmd("{metel} --backup {site}".format( metel=get_metel(zinuit_path=zinuit_path), site=site), cwd=os.path.join(zinuit_path, 'sites')) else: run_metel_cmd('--site', site, 'backup', zinuit_path=zinuit_path)
def build_assets(zinuit_path='.'): zinuit.set_metel_version(zinuit_path=zinuit_path) if zinuit.METEL_VERSION == 0: exec_cmd( "{metel} --build".format(metel=get_metel(zinuit_path=zinuit_path)), cwd=os.path.join(zinuit_path, 'sites')) else: run_metel_cmd('build', zinuit_path=zinuit_path)
def patch_sites(zinuit_path='.'): zinuit.set_metel_version(zinuit_path=zinuit_path) try: if zinuit.METEL_VERSION == 0: exec_cmd("{metel} --latest all".format(metel=get_metel( zinuit_path=zinuit_path)), cwd=os.path.join(zinuit_path, 'sites')) else: run_metel_cmd('--site', 'all', 'migrate', zinuit_path=zinuit_path) except subprocess.CalledProcessError: raise PatchError
def new_app(app, zinuit_path='.'): # For backwards compatibility app = app.lower().replace(" ", "_").replace("-", "_") logger.info('creating new app {}'.format(app)) apps = os.path.abspath(os.path.join(zinuit_path, 'apps')) zinuit.set_metel_version(zinuit_path=zinuit_path) if zinuit.METEL_VERSION == 0: exec_cmd("{metel} --make_app {apps} {app}".format( metel=get_metel(zinuit_path=zinuit_path), apps=apps, app=app)) else: run_metel_cmd('make-app', apps, app, zinuit_path=zinuit_path) install_app(app, zinuit_path=zinuit_path)
def setup_backups(zinuit_path='.'): logger.info('setting up backups') zinuit_dir = get_zinuit_dir(zinuit_path=zinuit_path) zinuit.set_metel_version(zinuit_path=zinuit_path) if zinuit.METEL_VERSION == 0: backup_command = "cd {sites_dir} && {metel} --backup all".format( metel=get_metel(zinuit_path=zinuit_path), ) else: backup_command = "cd {zinuit_dir} && {zinuit} --site all backup".format( zinuit_dir=zinuit_dir, zinuit=sys.argv[0]) add_to_crontab('0 */6 * * * {backup_command} >> {logfile} 2>&1'.format( backup_command=backup_command, logfile=os.path.join(get_zinuit_dir(zinuit_path=zinuit_path), 'logs', 'backup.log')))
def init(path, apps_path=None, no_procfile=False, no_backups=False, no_auto_update=False, metel_path=None, metel_branch=None, wheel_cache_dir=None, verbose=False, clone_from=None, skip_redis_config_generation=False, clone_without_update=False, ignore_exist=False, python='python'): # Let's change when we're ready. - <Administrator> from .app import get_app, install_apps_from_path from .config.common_site_config import make_config from .config import redis from .config.procfile import setup_procfile from zinuit.patches import set_all_patches_executed import os.path as osp if osp.exists(path): if not ignore_exist: raise ValueError( 'Zinuit Instance {path} already exists.'.format(path=path)) else: os.makedirs(path) for dirname in folders_in_zinuit: try: os.makedirs(os.path.join(path, dirname)) except OSError as e: if e.errno == os.errno.EEXIST: pass setup_logging() setup_env(zinuit_path=path, python=python) make_config(path) if clone_from: clone_apps_from(zinuit_path=path, clone_from=clone_from, update_app=not clone_without_update) else: if not metel_path: metel_path = 'https://github.com/amonak/metel.git' get_app(metel_path, branch=metel_branch, zinuit_path=path, build_asset_files=False, verbose=verbose) if apps_path: install_apps_from_path(apps_path, zinuit_path=path) zinuit.set_metel_version(zinuit_path=path) if zinuit.METEL_VERSION > 1: update_node_packages(zinuit_path=path) set_all_patches_executed(zinuit_path=path) build_assets(zinuit_path=path) if not skip_redis_config_generation: redis.generate_config(path) if not no_procfile: setup_procfile(path) if not no_backups: setup_backups(zinuit_path=path) if not no_auto_update: setup_auto_update(zinuit_path=path) copy_patches_txt(path)