Exemplo n.º 1
0
def create_environment(environment_dir, port, ckan_version, create_skin,
        site_name, start_web, create_sysadmin, address, log_syslog=False,
        datapusher=True, quiet=False, site_url=None, interactive=False,
        init_db=True):

    if not init_db:
        print 'Since the database will not be initialized, we will not copy datapusher.'
        datapusher = False
    environment = Environment.new(environment_dir, ckan_version, site_name,
                                  address=address, port=port)

    try:
        # There are a lot of steps we can/must skip if we're making a sub-site only
        making_full_environment = not environment.data_exists()

        if not quiet:
            write('Creating environment "{0}/{1}"'.format(environment.name, environment.site_name))
        steps = [
            lambda: environment.create_directories(making_full_environment),
            environment.create_bash_profile
            ] + \
            ([
                environment.create_virtualenv,
                environment.save,
                lambda: environment.create_source(datapusher),
                environment.create_ckan_ini] if making_full_environment else []
            ) + \
            [
                environment.save_site,
                environment.start_supporting_containers,
                environment.fix_storage_permissions,
                lambda: environment.update_ckan_ini(skin=create_skin),
            ]

        if create_skin and making_full_environment:
            steps.append(environment.create_install_template_skin)

        for fn in steps:
            fn()
            if not quiet:
                write('.')
        if not quiet:
            write('\n')

        return finish_init(environment, start_web, create_sysadmin,
                           log_syslog=log_syslog, site_url=site_url,
                           interactive=interactive, init_db=init_db)
    except:
        # Make sure that it doesn't get printed right after the dots
        # by printing a newline
        # i.e. Creating environment 'hello'.....ERROR MESSAGE
        if not quiet:
            print
        raise
Exemplo n.º 2
0
def create_environment(environment_dir, port, ckan_version, create_skin,
                       start_web, create_sysadmin):
    try:
        # FIXME: only 2.3 preload supported at the moment
        environment = Environment.new(environment_dir, '2.3', port)
    except DatacatsError as e:
        print e
        return 1

    if not valid_deploy_name(environment.name):
        print "WARNING: When deploying you will need to choose a"
        print "target name that is at least 5 characters long"
        print

    write('Creating environment "{0}"'.format(environment.name))
    steps = [
        environment.create_directories,
        environment.create_bash_profile,
        environment.save,
        environment.create_virtualenv,
        environment.create_source,
        environment.start_postgres_and_solr,
        environment.fix_storage_permissions,
        environment.create_ckan_ini,
        lambda: environment.update_ckan_ini(skin=create_skin),
        environment.fix_project_permissions,
    ]

    if create_skin:
        steps.append(environment.create_install_template_skin)

    steps.append(environment.ckan_db_init)

    for fn in steps:
        fn()
        write('.')
    write('\n')

    return finish_init(environment, start_web, create_sysadmin)
Exemplo n.º 3
0
def create_environment(environment_dir, port, ckan_version, create_skin,
        start_web, create_sysadmin):
    try:
        # FIXME: only 2.3 preload supported at the moment
        environment = Environment.new(environment_dir, '2.3', port)
    except DatacatsError as e:
        print e
        return 1

    if not valid_deploy_name(environment.name):
        print "WARNING: When deploying you will need to choose a"
        print "target name that is at least 5 characters long"
        print

    write('Creating environment "{0}"'.format(environment.name))
    steps = [
        environment.create_directories,
        environment.create_bash_profile,
        environment.save,
        environment.create_virtualenv,
        environment.create_source,
        environment.start_postgres_and_solr,
        environment.fix_storage_permissions,
        environment.create_ckan_ini,
        lambda: environment.update_ckan_ini(skin=create_skin),
        environment.fix_project_permissions,
        ]

    if create_skin:
        steps.append(environment.create_install_template_skin)

    steps.append(environment.ckan_db_init)

    for fn in steps:
        fn()
        write('.')
    write('\n')

    return finish_init(environment, start_web, create_sysadmin)
Exemplo n.º 4
0
def create_environment(environment_dir,
                       port,
                       ckan_version,
                       create_skin,
                       site_name,
                       start_web,
                       create_sysadmin,
                       address,
                       log_syslog=False,
                       datapusher=True,
                       quiet=False,
                       site_url=None,
                       interactive=False,
                       init_db=True):

    if not init_db:
        print 'Since the database will not be initialized, we will not copy datapusher.'
        datapusher = False
    environment = Environment.new(environment_dir,
                                  ckan_version,
                                  site_name,
                                  address=address,
                                  port=port)

    try:
        # There are a lot of steps we can/must skip if we're making a sub-site only
        making_full_environment = not environment.data_exists()

        if not quiet:
            write('Creating environment "{0}/{1}"'.format(
                environment.name, environment.site_name))
        steps = [
            lambda: environment.create_directories(making_full_environment),
            environment.create_bash_profile
            ] + \
            ([
                environment.create_virtualenv,
                environment.save,
                lambda: environment.create_source(datapusher),
                environment.create_ckan_ini] if making_full_environment else []
            ) + \
            [
                environment.save_site,
                environment.start_supporting_containers,
                environment.fix_storage_permissions,
                lambda: environment.update_ckan_ini(skin=create_skin),
            ]

        if create_skin and making_full_environment:
            steps.append(environment.create_install_template_skin)

        for fn in steps:
            fn()
            if not quiet:
                write('.')
        if not quiet:
            write('\n')

        return finish_init(environment,
                           start_web,
                           create_sysadmin,
                           log_syslog=log_syslog,
                           site_url=site_url,
                           interactive=interactive,
                           init_db=init_db)
    except:
        # Make sure that it doesn't get printed right after the dots
        # by printing a newline
        # i.e. Creating environment 'hello'.....ERROR MESSAGE
        if not quiet:
            print
        raise