Пример #1
0
def createDestroyHelper(stages, command, **kwargs):

    dockerConfig = configuration.getDockerConfig(
        configuration.current()['docker']['configuration'])

    for step in stages:
        step['dockerConfig'] = dockerConfig
        log.info(command +
                 ': current stage: \'{stage}\' via \'{connection}\''.format(
                     **step))

        hostConfig = {}
        for key in ['host', 'user', 'port']:
            hostConfig[key] = configuration.current()[key],

        methods.call(step['connection'],
                     'getHostConfig',
                     configuration.current(),
                     hostConfig=hostConfig)
        hostString = join_host_strings(**hostConfig)
        with _settings(host_string=hostString):
            methods.runTask(configuration.current(),
                            command,
                            quiet=True,
                            **step)
Пример #2
0
def copyDBFrom(source_config_name):
    configuration.check()
    source_configuration = configuration.get(source_config_name)
    methods.runTask(configuration.current(),
                    'copyDBFrom',
                    source_config=source_configuration,
                    nextTasks=['reset'])
Пример #3
0
def updateApp(**kwargs):
  configuration.check()
  config = configuration.current()
  if config['type'] != 'dev':
    print red('Task updateApp is not supported for this configuration. Please check if "type" is set correctly.')
    exit(1)
  backupDB()
  methods.runTask(configuration.current(), 'updateApp', **kwargs)
Пример #4
0
def updateApp(**kwargs):
  configuration.check()
  config = configuration.current()
  if config['type'] != 'dev':
    log.error('Task updateApp is not supported for this configuration. Please check if "type" is set correctly.')
    exit(1)
  backupDB()
  methods.runTask(configuration.current(), 'updateApp', **kwargs)
Пример #5
0
def updateApp(**kwargs):
    configuration.check()
    config = configuration.current()
    if config["type"] != "dev":
        print red('Task updateApp is not supported for this configuration. Please check if "type" is set correctly.')
        exit(1)
    backupDB()
    methods.runTask(configuration.current(), "updateApp", **kwargs)
Пример #6
0
def install(**kwargs):
  configuration.check()
  config = configuration.current()
  if config['type'] == 'prod' or not config['supportsInstalls']:
    print red('Task install is not supported for this configuration. Please check if "type" and "supportsInstalls" is set correctly.')
    exit(1)

  methods.runTask(configuration.current(), 'install', nextTasks=['reset'], **kwargs)
Пример #7
0
def restore(commit, cleanupBeforeRestore=0):
    configuration.check()
    files = get_backup_files(commit)
    methods.runTask(configuration.current(),
                    'restore',
                    files=files,
                    cleanupBeforeRestore=cleanupBeforeRestore)

    reset()
Пример #8
0
def deploy(overrideBranch=False):
    configuration.check()
    config = configuration.current()
    if overrideBranch:
        config["branch"] = overrideBranch

    if config["backupBeforeDeploy"]:
        backup(withFiles=False)

    methods.runTask(config, "deploy", nextTasks=["reset"])
Пример #9
0
def backup(withFiles=True):
    configuration.check()
    print green(
        'backing up files and database of "%s" @ "%s"'
        % (configuration.getSettings("name"), configuration.current("config_name"))
    )
    i = datetime.datetime.now()
    basename = [configuration.current("config_name"), i.strftime("%Y-%m-%d--%H-%M-%S")]

    methods.runTask(configuration.current(), "backup", withFiles=withFiles, baseName=basename)
Пример #10
0
def deploy(overrideBranch=False):
  configuration.check()
  config = configuration.current()
  if overrideBranch:
    config['branch'] = overrideBranch

  if config['backupBeforeDeploy']:
      backup(withFiles=False)

  methods.runTask(config, 'deploy', nextTasks=['reset'])
Пример #11
0
def deploy(overrideBranch=False):
  configuration.check()
  config = configuration.current()
  if overrideBranch:
    config['branch'] = overrideBranch

  if config['backupBeforeDeploy']:
      backup(withFiles=False)

  methods.runTask(config, 'deploy', nextTasks=['reset'])
Пример #12
0
def install(**kwargs):
    configuration.check()
    config = configuration.current()
    if config["type"] == "prod" or not config["supportsInstalls"]:
        print red(
            'Task install is not supported for this configuration. Please check if "type" and "supportsInstalls" is set correctly.'
        )
        exit(1)

    methods.runTask(configuration.current(), "install", nextTasks=["reset"], **kwargs)
Пример #13
0
def backup(withFiles = True):
  configuration.check()
  print green('backing up files and database of "%s" @ "%s"' % (configuration.getSettings('name'), configuration.current('config_name')))
  i = datetime.datetime.now()
  basename = [
    configuration.current('config_name'),
    i.strftime('%Y-%m-%d--%H-%M-%S')
  ]

  methods.runTask(configuration.current(), 'backup', withFiles = withFiles, baseName = basename)
Пример #14
0
def backup(withFiles = True):
  configuration.check()
  log.info('backing up files and database of "%s" @ "%s"' % (configuration.getSettings('name'), configuration.current('config_name')))
  i = datetime.datetime.now()
  basename = [
    configuration.current('config_name'),
    i.strftime('%Y-%m-%d--%H-%M-%S')
  ]

  methods.runTask(configuration.current(), 'backup', withFiles = withFiles, baseName = basename)
Пример #15
0
def install(**kwargs):
  configuration.check()
  config = configuration.current()
  if config['type'] == 'prod' or not config['supportsInstalls']:
    log.error('Task install is not supported for this configuration. Please check if "type" and "supportsInstalls" is set correctly.')
    exit(1)

  if 'nextTasks' not in kwargs:
    kwargs['nextTasks'] = ['reset']

  methods.runTask(configuration.current(), 'install', **kwargs)
Пример #16
0
def install(**kwargs):
    configuration.check()
    config = configuration.current()
    if config['type'] == 'prod' or not config['supportsInstalls']:
        log.error(
            'Task install is not supported for this configuration. Please check if "type" and "supportsInstalls" is set correctly.'
        )
        exit(1)

    if 'nextTasks' not in kwargs:
        kwargs['nextTasks'] = ['reset']

    methods.runTask(configuration.current(), 'install', **kwargs)
Пример #17
0
def getFilesDump():
  configuration.check();
  file_name = '--'.join([configuration.current('config_name'), time.strftime("%Y%m%d-%H%M%S")]) + '.tgz'

  log.info('Get files dump from %s' % configuration.current('config_name'))

  file_name = configuration.current('tmpFolder') + '/' + file_name
  methods.runTask(configuration.current(), 'backupFiles', backup_file_name = file_name)
  getFile(file_name)
  if configuration.current()['runLocally']:
    local('rm ' + file_name)
  else:
    run('rm ' + file_name);
Пример #18
0
def getSQLDump():
    configuration.check()

    file_name = "--".join([configuration.current("config_name"), time.strftime("%Y%m%d-%H%M%S")]) + ".sql"

    print green("Get SQL dump from %s" % configuration.current("config_name"))

    file_name = "/tmp/" + file_name
    methods.runTask(configuration.current(), "backupSql", backup_file_name=file_name)
    if configuration.current("supportsZippedBackups"):
        file_name += ".gz"
    getFile(file_name)
    run("rm " + file_name)
Пример #19
0
def about(config_name=False):
  if not config_name:
    config = configuration.current()
    config_name = configuration.current('config_name')
  else:
    config = configuration.get(config_name)
  if config:

    additional_info = {}
    methods.runTask(config, 'about', data = additional_info)

    about_helper('Host-configuration for ' + config_name, config, 2)
    for key, val in additional_info.items():
      print ""
      about_helper(key + ' for ' + config_name, val, 2)
Пример #20
0
def about(config_name=False):
  if not config_name:
    config = configuration.current()
    config_name = configuration.current('config_name')
  else:
    config = configuration.get(config_name)
  if config:

    additional_info = {}
    methods.runTask(config, 'about', data = additional_info)

    about_helper('Host-configuration for ' + config_name, config, 2)
    for key, val in additional_info.items():
      print ""
      about_helper(key + ' for ' + config_name, val, 2)
Пример #21
0
def getSQLDump():
  configuration.check()

  file_name = '--'.join([configuration.current('config_name'), time.strftime("%Y%m%d-%H%M%S")]) + '.sql'

  log.info('Get SQL dump from %s' % configuration.current('config_name'))

  file_name = configuration.current('tmpFolder') + '/' + file_name
  methods.runTask(configuration.current(), 'backupSql', backup_file_name = file_name)
  if configuration.current('supportsZippedBackups'):
    file_name += '.gz'
  getFile(file_name)
  if configuration.current()['runLocally']:
    local('rm ' + file_name)
  else:
    run('rm ' + file_name);
Пример #22
0
def createDestroyHelper(stages, command, **kwargs):

  dockerConfig = configuration.getDockerConfig(configuration.current()['docker']['configuration'])

  for step in stages:
    step['dockerConfig'] = dockerConfig
    log.info(command + ': current stage: \'{stage}\' via \'{connection}\''.format(**step))

    hostConfig = {}
    for key in ['host', 'user', 'port']:
      hostConfig[key] = configuration.current()[key],

    methods.call(step['connection'], 'getHostConfig', configuration.current(), hostConfig=hostConfig)
    hostString = join_host_strings(**hostConfig)
    with _settings(host_string = hostString):
      methods.runTask(configuration.current(), command, quiet=True, **step)
Пример #23
0
def getSQLDump():
  configuration.check()

  file_name = '--'.join([configuration.current('config_name'), time.strftime("%Y%m%d-%H%M%S")]) + '.sql'

  print green('Get SQL dump from %s' % configuration.current('config_name'))

  file_name = '/tmp/' + file_name
  methods.runTask(configuration.current(), 'backupSql', backup_file_name = file_name)
  if configuration.current('supportsZippedBackups'):
    file_name += '.gz'
  getFile(file_name)
  if configuration.current()['runLocally']:
    local('rm ' + file_name)
  else:
    run('rm ' + file_name);
Пример #24
0
def getFilesDump():
    configuration.check()
    file_name = '--'.join(
        [configuration.current('config_name'),
         time.strftime("%Y%m%d-%H%M%S")]) + '.tgz'

    log.info('Get files dump from %s' % configuration.current('config_name'))

    file_name = configuration.current('tmpFolder') + '/' + file_name
    methods.runTask(configuration.current(),
                    'backupFiles',
                    backup_file_name=file_name)
    getFile(file_name)
    if configuration.current()['runLocally']:
        local('rm ' + file_name)
    else:
        run('rm ' + file_name)
Пример #25
0
def listBackups(commit = False):
  configuration.check()
  results = []
  if commit:
    results = get_backup_files(commit)

    print "\nFound last backup for %s and commit %s:" % (configuration.current('config_name'), commit)
  else:
    methods.runTask(configuration.current(), 'listBackups', results = results)
    results = sorted(results, key = lambda l: (l['date'], l['time']))
    print "\nFound backups for "+ configuration.current('config_name') + ":"
  last_date = ''
  for result in results:
    if result['date'] == last_date:
      result['date'] = '          '
    else:
      last_date = result['date']

    print "{date} {time}  |  {commit:<30}  |  {method:<10}  |  {file}".format(**result)
Пример #26
0
def listBackups(commit = False):
  configuration.check()
  results = []
  if commit:
    results = get_backup_files(commit)

    print "\nFound last backup for %s and commit %s:" % (configuration.current('config_name'), commit)
  else:
    methods.runTask(configuration.current(), 'listBackups', results = results)
    results = sorted(results, key = lambda l: (l['date'], l['time']))
    print "\nFound backups for "+ configuration.current('config_name') + ":"
  last_date = ''
  for result in results:
    if result['date'] == last_date:
      result['date'] = '          '
    else:
      last_date = result['date']

    print "{date} {time}  |  {commit:<30}  |  {method:<10}  |  {file}".format(**result)
Пример #27
0
def get_backup_files(commit):
    results = []
    methods.runTask(configuration.current(), "listBackups", results=results)
    results = sorted(results, key=lambda l: (l["date"], l["time"]))
    # get latest hash for commit.
    hash = False
    for result in results:
        if result["commit"] == commit:
            hash = result["hash"]

    # search for hash.
    if not hash:
        for result in results:
            if result["hash"] == commit:
                hash = result["hash"]

    if not hash:
        print red("Coud not find requested backup: %s" % commit)
        listBackups()
        exit()
    else:
        return filter(lambda r: r["hash"] == hash, results)
Пример #28
0
def get_backup_files(commit):
  results = []
  methods.runTask(configuration.current(), 'listBackups', results = results)
  results = sorted(results, key = lambda l: (l['date'], l['time']))
  # get latest hash for commit.
  hash = False
  for result in results:
    if result['commit'] == commit:
      hash = result['hash']

  # search for hash.
  if not hash:
    for result in results:
      if result['hash'] == commit:
        hash = result['hash']

  if not hash:
    print red('Coud not find requested backup: %s' % commit)
    listBackups()
    exit()
  else:
    return filter(lambda r: r['hash'] == hash, results)
Пример #29
0
def get_backup_files(commit):
  results = []
  methods.runTask(configuration.current(), 'listBackups', results = results)
  results = sorted(results, key = lambda l: (l['date'], l['time']))
  # get latest hash for commit.
  hash = False
  for result in results:
    if result['commit'] == commit:
      hash = result['hash']

  # search for hash.
  if not hash:
    for result in results:
      if result['hash'] == commit:
        hash = result['hash']

  if not hash:
    log.error('Coud not find requested backup: %s' % commit)
    listBackups()
    exit()
  else:
    return filter(lambda r: r['hash'] == hash, results)
Пример #30
0
def reset(**kwargs):
  configuration.check()

  methods.runTask(configuration.current(), 'reset', **kwargs)
Пример #31
0
def restoreSQLFromFile(full_file_name):
  configuration.check()
  methods.runTask(configuration.current(), 'restoreSQLFromFile', sourceFile = full_file_name)
Пример #32
0
def copyFilesFrom(source_config_name):
  configuration.check()
  source_configuration = configuration.get(source_config_name)
  methods.runTask(configuration.current(), 'copyFilesFrom', source_config=source_configuration)
Пример #33
0
def notify(message):
  configuration.check()
  methods.runTask(configuration.current(), 'notify', message=message)
Пример #34
0
def copyDBFrom(source_config_name):
  configuration.check()
  source_configuration = configuration.get(source_config_name)
  methods.runTask(configuration.current(), 'copyDBFrom', source_config=source_configuration, nextTasks=['reset'])
Пример #35
0
def restore(commit, cleanupBeforeRestore=0):
  configuration.check()
  files = get_backup_files(commit)
  methods.runTask(configuration.current(), 'restore', files = files, cleanupBeforeRestore = cleanupBeforeRestore)

  reset()
Пример #36
0
def reset(**kwargs):
  configuration.check()

  methods.runTask(configuration.current(), 'reset', **kwargs)
Пример #37
0
def notify(message):
  configuration.check()
  methods.runTask(configuration.current(), 'notify', message=message)
Пример #38
0
def doctor(**kwargs):
  configuration.check()
  methods.runTask(configuration.current(), 'doctor', **kwargs)
Пример #39
0
def doctor(**kwargs):
  configuration.check()
  methods.runTask(configuration.current(), 'doctor', **kwargs)
Пример #40
0
def copyFilesFrom(source_config_name):
  configuration.check()
  source_configuration = configuration.get(source_config_name)
  methods.runTask(configuration.current(), 'copyFilesFrom', source_config=source_configuration)
Пример #41
0
def restoreSQLFromFile(full_file_name):
  configuration.check()
  methods.runTask(configuration.current(), 'restoreSQLFromFile', sourceFile = full_file_name)