示例#1
0
def salt_master_config(config):

    project = config.data['project']

    master_project_path = os.path.join(
        Filesystem.project_path(project),
        'master')

    master_env_path = os.path.join(
        Filesystem.current_env(),
        'master'
        )

    merged_master = Filesystem.load_file(master_project_path, master_env_path)

    return merged_master
示例#2
0
def _master_data(config):

    profiles = config.profile
    providers = _providers_for_config(config)
    config_obj = config.data.copy()
    config_obj['master'] = 'localhost'

    ssh_keys_data = _ssh_keys_for_providers(providers)
    profiles_data = Filesystem.encode(profiles)
    providers_data = Filesystem.encode(providers)

    config_data = Filesystem.encode(config_obj)

    project = config.data['project']
    master_project_path = os.path.join(
        Filesystem.project_path(project),
        'master'
    )

    master_env_path = os.path.join(
        Filesystem.current_env(),
        'master'
    )

    master = Filesystem.encode(config.master_config_data(
        files=[master_project_path, master_env_path]))

    minion = Filesystem.encode(config.minion_config_data({
        'id': 'master',
        'master': 'localhost',
        'grains': {'roles': ['master']}
        }))

    salt_data = {
    'master': master,
    'minion': minion}

    cloudseed_data = {
    'profiles': profiles_data,
    'providers': providers_data,
    'config': config_data,
    'ssh_keys': ssh_keys_data}

    return {
    'salt': salt_data,
    'cloudseed': cloudseed_data
    }
示例#3
0
def init_cloudseed_project(config, args):
    write_file = Filesystem.write_file
    project_name = args['<project>']

    user_dir = Filesystem.user_path()
    local_dir = Filesystem.local_path()
    project_dir = Filesystem.project_path(project_name)

    local_config_path = os.path.join(local_dir, 'config')
    local_providers_path = os.path.join(local_dir, 'providers')

    local_data = {
        'project': project_name,
    }

    if not os.path.isdir(user_dir):
        log.debug('Creating directory %s', user_dir)
        os.mkdir(user_dir)

        # make empty global level config
        global_config = os.path.join(user_dir, 'config')
        log.debug('Creating empty config %s', global_config)
        open(global_config, 'w').close()

    if not os.path.isdir(project_dir):
        log.debug('Creating directory %s', project_dir)
        os.mkdir(project_dir)

        # make empty project level config
        project_config = os.path.join(project_dir, 'config')
        master_config = os.path.join(project_dir, 'master')
        profile_config = os.path.join(project_dir, 'profile')
        providers_config = os.path.join(project_dir, 'providers')
        states_dir = os.path.join(project_dir, 'states')

        log.debug('Creating empty config %s', project_config)
        open(project_config, 'w').close()

        log.debug('Creating empty providers %s', project_config)
        open(providers_config, 'w').close()

        log.debug('Creating empty salt master config %s', master_config)
        open(master_config, 'w').close()

        log.debug('Creating empty profile %s', profile_config)
        open(profile_config, 'w').close()

    if not os.path.isdir(states_dir):
            log.debug('Creating directory %s', states_dir)
            os.mkdir(states_dir)

    if not os.path.isdir(local_dir):
        log.debug('Creating directory %s', local_dir)
        os.mkdir(local_dir)

    if not os.path.isfile(local_config_path):
        log.debug('Creating empty local config %s', local_config_path)
        write_file(local_config_path, local_data)

    if not os.path.isfile(local_providers_path):
        log.debug('Creating empty local providers %s', local_providers_path)
        open(local_providers_path, 'w').close()