Beispiel #1
0
def create_bar():
    with sudo(user='******'), cd('/srv/'):
        if exists('/tmp/foo'):
            mkdir('/tmp/foo/bar')
        else:
            print('/tmp/foo does not exist')
            ls('tamer')
Beispiel #2
0
def test_folder_creation_existence_and_deletion(connection):
    path = '/tmp/usinetestfolder'
    run(f'rmdir {path} || exit 0')
    assert not exists(path)
    mkdir(path)
    assert exists(path)
    run(f'rmdir {path}')
    assert not exists(path)
Beispiel #3
0
def test_folder_mv(connection):
    path = '/tmp/usinetestfolder'
    newpath = '/tmp/usinenewtestfolder'
    run(f'rmdir {newpath} || exit 0')
    mkdir(path)
    mv(path, newpath)
    assert exists(newpath)
    assert not exists(path)
    run(f'rmdir {newpath}')
    assert not exists(newpath)
Beispiel #4
0
def configure_mod_tile():
    with sudo(user='******'):
        mkdir('/srv/tilery/tmp/tiles')
        mkdir('/srv/tilery/renderd')
    with sudo(), cd('/etc/apache2/'):
        put('remote/tile.load', 'mods-available/tile.load')
        put('remote/tile.conf', 'mods-available/tile.conf')
        put('remote/apache.conf', 'sites-enabled/000-default.conf')
        put('remote/ports.conf', 'ports.conf')
        run('a2enmod tile')
Beispiel #5
0
def deploy():
    """Send config files."""
    with sudo(user='******'):
        mkdir('/srv/tilery/pianoforte/data')
        put(config.source_dir / 'mapping.yml', '/srv/tilery/mapping.yml')
        imposm_conf = template('remote/imposm.conf', **config)
        put(imposm_conf, '/srv/tilery/imposm.conf')
        put('remote/renderd.conf', '/etc/renderd.conf')
        put(config.source_dir / 'dist/', '/srv/tilery/pianoforte/')
        put(config.source_dir / 'fonts/', '/srv/tilery/pianoforte/fonts')
        put(config.source_dir / 'icon/', '/srv/tilery/pianoforte/icon')
Beispiel #6
0
def test_folder_cp(connection):
    path = '/tmp/usinetestfolder'
    targetpath = '/tmp/usinetargettestfolder'
    run(f'rmdir {targetpath} || exit 0')
    mkdir(path)
    cp(path, targetpath)
    assert exists(targetpath)
    assert exists(path)
    run(f'rmdir {targetpath}')
    assert not exists(targetpath)
    run(f'rmdir {path}')
    assert not exists(path)
Beispiel #7
0
def letsencrypt():
    """Configure letsencrypt."""
    with sudo():
        run('add-apt-repository --yes ppa:certbot/certbot')
        run('apt update')
        run('apt install -y certbot')
    mkdir('/var/www/letsencrypt/.well-known/acme-challenge')
    domains = ','.join(list(config.piano_domains) + list(config.forte_domains))
    certbot_conf = template('remote/certbot.ini', domains=domains)
    put(certbot_conf, '/var/www/certbot.ini')
    run('certbot certonly -c /var/www/certbot.ini --non-interactive '
        '--agree-tos')
Beispiel #8
0
def test_folder_creation_existence_and_deletion_with_subfolder(connection):
    path = '/tmp/usinetestfolder'
    subpath = f'{path}/subfolder'
    run(f'rmdir {subpath} || exit 0')
    run(f'rmdir {path} || exit 0')
    assert not exists(path)
    with pytest.raises(SystemExit):
        mkdir(subpath, parents=False)
    mkdir(subpath)
    assert exists(subpath)
    run(f'rmdir {subpath}')
    run(f'rmdir {path}')
    assert not exists(path)
Beispiel #9
0
def install_imposm(force=False, release='0.6.0-alpha.4'):
    """Install imposm from binary.

    :force: install even if the binary already exists.
    :release: optionnal release to install
    """
    if exists('/usr/bin/imposm') and not force:
        print('imposm already installed')
        return
    # Cf https://github.com/omniscale/imposm3/issues/165#issuecomment-395993259
    wget(f'https://github.com/omniscale/imposm3/releases/download/v{release}/imposm-{release}-linux-x86-64.tar.gz',   # noqa
         '/tmp/imposm.tar.gz')
    run('tar -xzf /tmp/imposm.tar.gz --directory /srv/tilery/src')
    with sudo():
        run(f'ln --symbolic --force '
            f'/srv/tilery/src/imposm-{release}-linux-x86-64/imposm '
            f'/usr/bin/imposm')
    with sudo(user='******'):
        mkdir('/srv/tilery/tmp/imposm')
Beispiel #10
0
def test_trying_to_create_existing_folder(connection):
    path = '/tmp/usinetestfolder'
    run(f'rmdir {path} || exit 0')
    mkdir(path)
    mkdir(path)  # Should not fail
    with pytest.raises(SystemExit):
        mkdir(path, parents=False)
    run(f'rmdir {path}')
Beispiel #11
0
def system():
    """Install the system deps."""
    # Not installed in minimized 18.04.
    run('which sudo || apt install sudo')
    with sudo():
        run('apt update')
        run('apt install -y postgresql postgis gdal-bin screen nginx '
            'software-properties-common wget unzip autoconf libtool g++ '
            'libmapnik-dev libleveldb1v5 libgeos-dev goaccess '
            'libprotobuf-dev unifont curl zlib1g-dev uuid-dev python-psycopg2 '
            'munin-node libdbd-pg-perl libwww-perl apache2 apache2-dev')
        run('useradd -N tilery -d /srv/tilery/ || exit 0')
        mkdir('/srv/tilery/src')
        mkdir('/srv/tilery/tmp')
        mkdir('/srv/tilery/letsencrypt/.well-known/acme-challenge')
        chown('tilery:users', '/srv/tilery/')
        run('chsh -s /bin/bash tilery')
    install_imposm()
    install_mod_tile()
    configure_mod_tile()
    configure_munin()
    install_goaccess()