Exemplo n.º 1
0
def tweak(environment, opts):
    """Commands operating on environment data

Usage:
  datacats tweak --install-postgis [ENVIRONMENT]
  datacats tweak --add-redis [ENVIRONMENT]
  datacats tweak --admin-password [ENVIRONMENT]

Options:
  --install-postgis    Install postgis in ckan database
  --add-redis          Adds redis next time this environment reloads
  -s --site=NAME       Choose a site to tweak [default: primary]
  -p --admin-password  Prompt to change the admin password

ENVIRONMENT may be an environment name or a path to an environment directory.

Default: '.'
"""

    environment.require_data()
    if opts['--install-postgis']:
        print "Installing postgis"
        environment.install_postgis_sql()
    if opts['--add-redis']:
        # Let the user know if they are trying to add it and it is already there
        environment.add_extra_container('redis', error_on_exists=True)
    if opts['--admin-password']:
        environment.create_admin_set_password(confirm_password())
Exemplo n.º 2
0
def finish_init(environment,
                start_web,
                create_sysadmin,
                log_syslog=False,
                do_install=True,
                quiet=False,
                site_url=None,
                interactive=False,
                init_db=True):
    """
    Common parts of create and init: Install, init db, start site, sysadmin
    """
    if not init_db:
        start_web = False
        create_sysadmin = False

    if do_install:
        install_all(environment, False, verbose=False, quiet=quiet)

    if init_db:
        if not quiet:
            write('Initializing database')
        environment.install_postgis_sql()
        environment.ckan_db_init()
    if not quiet:
        write('\n')

    if site_url:
        try:
            site_url = site_url.format(address=environment.address,
                                       port=environment.port)
            environment.site_url = site_url
            environment.save_site(False)
        except (KeyError, IndexError, ValueError) as e:
            raise DatacatsError('Could not parse site_url: {}'.format(e))

    if start_web:
        environment.start_ckan(log_syslog=log_syslog)
        if not quiet and not interactive:
            write('Starting web server at {0} ...\n'.format(
                environment.web_address()))

    if create_sysadmin:
        try:
            adminpw = confirm_password()
            environment.create_admin_set_password(adminpw)
        except KeyboardInterrupt:
            print

    if not start_web:
        environment.stop_supporting_containers()
Exemplo n.º 3
0
def finish_init(environment, start_web, create_sysadmin, log_syslog=False,
                do_install=True, quiet=False, site_url=None, interactive=False,
                init_db=True):
    """
    Common parts of create and init: Install, init db, start site, sysadmin
    """
    if not init_db:
        start_web = False
        create_sysadmin = False

    if do_install:
        install_all(environment, False, verbose=False, quiet=quiet)

    if init_db:
        if not quiet:
            write('Initializing database')
        environment.install_postgis_sql()
        environment.ckan_db_init()
    if not quiet:
        write('\n')

    if site_url:
        try:
            site_url = site_url.format(address=environment.address, port=environment.port)
            environment.site_url = site_url
            environment.save_site(False)
        except (KeyError, IndexError, ValueError) as e:
            raise DatacatsError('Could not parse site_url: {}'.format(e))

    if start_web:
        environment.start_ckan(log_syslog=log_syslog)
        if not quiet and not interactive:
            write('Starting web server at {0} ...\n'.format(
                environment.web_address()))

    if create_sysadmin:
        try:
            adminpw = confirm_password()
            environment.create_admin_set_password(adminpw)
        except KeyboardInterrupt:
            print

    if not start_web:
        environment.stop_supporting_containers()