Example #1
0
def getTemplate(configName):
    settings = configuration.get_all_configurations()
    config = False

    if not configName:
        config = configuration.current()
    else:
        if configName in settings['hosts']:
            config = configuration.get(configName)

    if config and 'blueprint' in config:
        return config['blueprint']

    if config and 'docker' in config:
        docker_config_name = config['docker']['configuration']
    else:
        docker_config_name = configName

    if docker_config_name:
        docker_config = configuration.getDockerConfig(docker_config_name)
        if docker_config and 'blueprint' in docker_config:
            return docker_config['blueprint']

    if settings and 'blueprint' in settings:
        return settings['blueprint']

    return False
Example #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'])
Example #3
0
def getTemplate(configName):
  settings = configuration.get_all_configurations()
  config = False

  if not configName:
    config = configuration.current()
  else:
    if configName in settings['hosts']:
      config = configuration.get(configName)

  if config and 'blueprint' in config:
    return config['blueprint']

  if config and 'docker' in config:
    docker_config_name = config['docker']['configuration']
  else:
    docker_config_name = configName

  if docker_config_name:
    docker_config = configuration.getDockerConfig(docker_config_name)
    if docker_config and 'blueprint' in docker_config:
      return docker_config['blueprint']

  if settings and 'blueprint' in settings:
    return settings['blueprint']

  return False
Example #4
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)
Example #5
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)
Example #6
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:
        print ("Configuration for " + config_name)
        for key, value in config.items():
            if isinstance(value, dict):
                print (key)
                for dict_key, dict_value in value.items():
                    print ("  " + dict_key.ljust(23) + ": " + str(dict_value))
            elif hasattr(value, "__len__") and not hasattr(value, "strip"):
                print key
                for list_value in value:
                    print (" ".ljust(25) + ": " + str(list_value))
            else:
                print (key.ljust(25) + ": " + str(value))
Example #7
0
def copyFilesFrom(source_config_name):
  configuration.check()
  source_configuration = configuration.get(source_config_name)
  methods.runTask(configuration.current(), 'copyFilesFrom', source_config=source_configuration)
Example #8
0
def config(configName='local'):
  c = configuration.get(configName)
  configuration.apply(c, configName)
Example #9
0
    def doctor(self, config, **kwargs):
        with hide('output', 'running'), warn_only():
            print "Check SSH keyforwading: ",
            output = local(' echo xx${SSH_AUTH_SOCK}xx', capture=True)
            if output.stdout.strip() == 'xxxx':
                log.error(
                    'SSH Keyforwarding is not working correctly, SSH_AUTH_SOCK is not available!'
                )
                exit(1)
            else:
                log.info('SSH Keyforwarding seems to work.')

            print "Check SSH key-agent: ",
            output = local('ssh-add -l', capture=True)
            if output.return_code != 0:
                log.error(
                    'SSH key-agent has no private keys, please add it via "ssh-add".'
                )
                exit(1)
            else:
                log.info('SSH key-agent has one or more private keys.')

            if 'sshTunnel' in config:
                print "Check SSH tunnel: ",
                cfg = config['sshTunnel']
                if not self.doctor_ssh_connection({
                        'host': cfg['bridgeHost'],
                        'port': cfg['bridgePort'],
                        'user': cfg['bridgeUser']
                }):
                    exit(1)

                self.preflight('dummyTask', config)

            print "Check SSH connection: ",
            if not self.doctor_ssh_connection(config):
                exit(1)

            if 'remote' in kwargs:
                remote_config = configuration.get(kwargs['remote'])

                if 'sshTunnel' in remote_config:
                    # First check if we can ssh into bridge-host.
                    print "Check SSH tunnel to remote source: ",
                    cfg = remote_config['sshTunnel']
                    if not self.doctor_ssh_connection({
                            'host': cfg['bridgeHost'],
                            'port': cfg['bridgePort'],
                            'user': cfg['bridgeUser']
                    }):
                        exit(1)

                    # create tunnel
                    self.createTunnelFromLocalToSource(config, remote_config)

                # ssh from local into remote host
                if not self.doctor_ssh_connection(remote_config):
                    exit(1)

                # Test ssh connection from inside host to source host.
                if 'sshTunnel' in remote_config:
                    self.createTunnelFromHostToSource(config, remote_config)

                ssh_cmd = 'ssh -A -o StrictHostKeyChecking=no -o PasswordAuthentication=no -o BatchMode=yes -o ConnectTimeout=5'
                cmd_on_host = ssh_cmd + " -p {port} {user}@{host} echo ok".format(
                    **remote_config)
                cmd = ssh_cmd + ' -p {port} {user}@{host} "' + cmd_on_host + '"'

                cmd = cmd.format(**config)
                print "Check SSH-connection from %s to %s: " % (
                    config['config_name'], remote_config['config_name']),
                output = local(cmd, capture=True)
                if output.return_code != 0:
                    log.error('Connection failed!')
                    log.error('Try: %s' % cmd)
                    print output.stdout
                    exit(1)
                else:
                    log.info('Connection established!')
Example #10
0
def config(configName='local'):
  c = configuration.get(configName)
  configuration.apply(c, configName)
Example #11
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'])
Example #12
0
def copyFilesFrom(source_config_name):
  configuration.check()
  source_configuration = configuration.get(source_config_name)
  methods.runTask(configuration.current(), 'copyFilesFrom', source_config=source_configuration)