def copy_setting(name, default_value="NODEFAULT", required=False): if hasattr(project_settings, name): value = getattr(project_settings, name) setattr(env, name, value) elif required: raise Exception( 'Could not find the required setting "%s" in project_settings.py' % name) elif default_value != "NODEFAULT": env.setdefault(name, default_value)
def _setup_paths(project_settings): # first merge in variables from project_settings - but ignore __doc__ etc user_settings = [ x for x in vars(project_settings).keys() if not x.startswith('__') ] for setting in user_settings: env[setting] = vars(project_settings)[setting] # allow for project_settings having set up some of these differently env.setdefault('verbose', False) env.setdefault('use_sudo', True) env.setdefault('cvs_rsh', 'CVS_RSH="ssh"') env.setdefault('default_branch', { 'production': 'master', 'staging': 'master' }) env.setdefault('server_project_home', path.join(env.server_home, env.project_name)) # TODO: change dev -> current env.setdefault('vcs_root_dir', path.join(env.server_project_home, 'dev')) env.setdefault('prev_root', path.join(env.server_project_home, 'previous')) env.setdefault('next_dir', path.join(env.server_project_home, 'next')) env.setdefault('dump_dir', path.join(env.server_project_home, 'dbdumps')) env.setdefault('deploy_dir', path.join(env.vcs_root_dir, 'deploy')) env.setdefault('settings', '%(project_name)s.settings' % env) if env.project_type == "django": env.setdefault('relative_django_dir', env.project_name) env.setdefault('relative_django_settings_dir', env['relative_django_dir']) env.setdefault('relative_ve_dir', path.join(env['relative_django_dir'], '.ve')) # now create the absolute paths of everything else env.setdefault( 'django_dir', path.join(env['vcs_root_dir'], env['relative_django_dir'])) env.setdefault( 'django_settings_dir', path.join(env['vcs_root_dir'], env['relative_django_settings_dir'])) env.setdefault('ve_dir', path.join(env['vcs_root_dir'], env['relative_ve_dir'])) env.setdefault('manage_py', path.join(env['django_dir'], 'manage.py')) # local_tasks_bin is the local copy of tasks.py # this should be the copy from where ever fab.py is being run from ... if 'DEPLOYDIR' in os.environ: env.setdefault('local_tasks_bin', path.join(os.environ['DEPLOYDIR'], 'tasks.py')) else: env.setdefault('local_tasks_bin', path.join(path.dirname(__file__), 'tasks.py')) # valid environments - used for require statements in fablib env.valid_envs = env.host_list.keys()
def _setup_paths(project_settings): # first merge in variables from project_settings - but ignore __doc__ etc user_settings = [x for x in vars(project_settings).keys() if not x.startswith('__')] for setting in user_settings: env.setdefault(setting, vars(project_settings)[setting]) # set the timestamp - used for directory names at least env.timestamp = datetime.now() # allow for project_settings having set up some of these differently env.setdefault('verbose', False) env.setdefault('use_sudo', True) env.setdefault('cvs_rsh', 'CVS_RSH="ssh"') env.setdefault('default_branch', {'production': 'master', 'staging': 'master'}) env.setdefault('server_project_home', path.join(env.server_home, env.project_name)) env.setdefault('current_link', path.join(env.server_project_home, 'current')) env.setdefault('vcs_root_dir', env.current_link) env.setdefault('next_dir', path.join(env.server_project_home, _create_timestamp_dirname(env.timestamp))) env.setdefault('dump_dir', path.join(env.server_project_home, 'dbdumps')) # TODO: use relative_deploy_dir env.setdefault('deploy_dir', path.join(env.vcs_root_dir, 'deploy')) env.setdefault('settings', '%(project_name)s.settings' % env) if env.project_type == "django": env.setdefault('relative_django_dir', env.project_name) env.setdefault('relative_django_settings_dir', env['relative_django_dir']) env.setdefault('relative_ve_dir', path.join(env['relative_django_dir'], '.ve')) # now create the absolute paths of everything else env.setdefault('django_dir', path.join(env['vcs_root_dir'], env['relative_django_dir'])) env.setdefault('django_settings_dir', path.join(env['vcs_root_dir'], env['relative_django_settings_dir'])) env.setdefault('ve_dir', path.join(env['vcs_root_dir'], env['relative_ve_dir'])) env.setdefault('manage_py', path.join(env['django_dir'], 'manage.py')) # local_tasks_bin is the local copy of tasks.py # this should be the copy from where ever fab.py is being run from ... if 'DEPLOYDIR' in os.environ: env.setdefault('local_tasks_bin', path.join(os.environ['DEPLOYDIR'], 'tasks.py')) else: env.setdefault('local_tasks_bin', path.join(path.dirname(__file__), 'tasks.py')) # valid environments - used for require statements in fablib env.valid_envs = env.host_list.keys()
def set_project_defaults(value): env.setdefault('group', value) env.setdefault('project', value) env.setdefault('db', value) env.setdefault('dbuser', value)
from fabric.state import env from .utils import get_git_remote_url __version__ = '0.4.8' env.setdefault('branch', 'master') env.setdefault('repo', get_git_remote_url()) env.setdefault('type', 'production') env.setdefault('poweruser', env.local_user) env.setdefault('webserver_group', 'nginx') # makes possible to use the same codebase with different db/system users def set_project_defaults(value): env.setdefault('group', value) env.setdefault('project', value) env.setdefault('db', value) env.setdefault('dbuser', value)
'get', '_get_path', # REMOVE THIS 'get_shadowset_members', 'ls', 'lsof', 'print_file', 'put', 'queue_job', 'run', 'run_script', 'run_clusterwide', 'run_script_clusterwide', 'safe_run', ) env.setdefault('temp_dir', 'TCPIP$SSH_HOME') # Default temporary file folder env.setdefault('terminal_width', None) # Default terminal width is 80 columns class queue_job(object): def get_entry_details(self): with settings(hide('everything')): all_jobs = run('SHOW QUEUE /BATCH /ALL | SEA SYS$PIPE %s' % self.name) entries = {line.split()[0]: None for line in all_jobs.splitlines() if self.name in line.upper()} def find_start_params(lines, tag): for (lineno, line) in enumerate(lines):