Exemple #1
0
 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)
Exemple #2
0
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()
Exemple #3
0
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()
Exemple #4
0
def set_project_defaults(value):
    env.setdefault('group', value)
    env.setdefault('project', value)
    env.setdefault('db', value)
    env.setdefault('dbuser', value)
Exemple #5
0
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)
Exemple #6
0
           '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):