Exemplo n.º 1
0
def _create_profile_d_file():
    """
    Create profile.d file with Java environment variables set.
    """
    require_file('/etc/profile.d/java.sh', contents=
                 'export JAVA_HOME="/opt/jdk"\n' +
                 'export PATH="$JAVA_HOME/bin:$PATH"\n',
                 mode='0755', use_sudo=True)
Exemplo n.º 2
0
def _create_profile_d_file():
    """
    Create profile.d file with Java environment variables set.
    """
    require_file('/etc/profile.d/java.sh',
                 contents='export JAVA_HOME="/opt/jdk"\n' +
                 'export PATH="$JAVA_HOME/bin:$PATH"\n',
                 mode='0755',
                 use_sudo=True)
Exemplo n.º 3
0
def _create_profile_d_file():
    """
    Create profile.d file with Java environment variables set.
    """
    from fabtools.require.files import file as require_file

    require_file(
        "/etc/profile.d/java.sh",
        contents='export JAVA_HOME="/opt/jdk"\n' + 'export PATH="$JAVA_HOME/bin:$PATH"\n',
        mode="0755",
        use_sudo=True,
    )
Exemplo n.º 4
0
def require_file_changes_ownership():

    from fabtools.files import owner
    from fabtools.require.files import file as require_file

    try:
        run('touch foo')
        assert owner('foo') == env.user

        require_file('foo', use_sudo=True)
        assert owner('foo') == 'root'

    finally:
        sudo('rm -f foo')
Exemplo n.º 5
0
def require_file_changes_ownership():

    from fabtools.files import owner
    from fabtools.require.files import file as require_file

    try:
        run('touch foo')
        assert owner('foo') == env.user

        require_file('foo', use_sudo=True)
        assert owner('foo') == 'root'

    finally:
        sudo('rm -f foo')
Exemplo n.º 6
0
def _create_profile_d_file(prefix):
    """
    Create profile.d file with Java environment variables set.
    """
    from fabtools.require.files import file as require_file

    require_file(
        '/etc/profile.d/java.sh',
        contents=dedent("""\
            export JAVA_HOME="%s/jdk"
            export PATH="$JAVA_HOME/bin:$PATH"
        """ % prefix),
        mode='0755',
        use_sudo=True,
    )
Exemplo n.º 7
0
def _create_profile_d_file(prefix):
    """
    Create profile.d file with Java environment variables set.
    """
    from fabtools.require.files import file as require_file

    require_file(
        '/etc/profile.d/java.sh',
        contents=dedent("""\
            export JAVA_HOME="%s/jdk"
            export PATH="$JAVA_HOME/bin:$PATH"
        """ % prefix),
        mode='0755',
        use_sudo=True,
    )
Exemplo n.º 8
0
def require_file_with_contents_has_correct_permissions():

    from fabtools.files import owner, group, mode
    from fabtools.require.files import file as require_file

    try:
        sudo('echo "something" > foo')
        require_file('bar', contents='something', use_sudo=True)

        assert owner('foo') == owner('bar')
        assert group('foo') == group('bar')
        assert mode('foo') == mode('bar')

    finally:
        sudo('rm -f foo bar')
Exemplo n.º 9
0
def require_empty_file_has_correct_permissions():

    from fabtools.files import owner, group, mode
    from fabtools.require.files import file as require_file

    try:
        sudo('touch foo')
        require_file('bar', use_sudo=True)

        assert owner('foo') == owner('bar')
        assert group('foo') == group('bar')
        assert mode('foo') == mode('bar')

    finally:
        sudo('rm -f foo bar')
Exemplo n.º 10
0
def require_file_with_contents_has_correct_permissions():

    from fabtools.files import owner, group, mode
    from fabtools.require.files import file as require_file

    try:
        sudo('echo "something" > foo')
        require_file('bar', contents='something', use_sudo=True)

        assert owner('foo') == owner('bar')
        assert group('foo') == group('bar')
        assert mode('foo') == mode('bar')

    finally:
        sudo('rm -f foo bar')
Exemplo n.º 11
0
def require_empty_file_has_correct_permissions():

    from fabtools.files import owner, group, mode
    from fabtools.require.files import file as require_file

    try:
        sudo('touch foo')
        require_file('bar', use_sudo=True)

        assert owner('foo') == owner('bar')
        assert group('foo') == group('bar')
        assert mode('foo') == mode('bar')

    finally:
        sudo('rm -f foo bar')
Exemplo n.º 12
0
Arquivo: cron.py Projeto: bhy/fabtools
def add_task(name, timespec, user, command, environment=None):
    """
    Add a cron task.

    The *command* will be run as *user* periodically.

    You can use any valid `crontab(5)`_ *timespec*, including the
    ``@hourly``, ``@daily``, ``@weekly``, ``@monthly`` and ``@yearly``
    shortcuts.

    You can also provide an optional dictionary of environment variables
    that should be set when running the periodic command.

    Examples::

        from fabtools.cron import add_task

        # Run every month
        add_task('cleanup', '@monthly', 'alice', '/home/alice/bin/cleanup.sh')

        # Run every tuesday and friday at 5:30am
        add_task('reindex', '30 5 * * 2,4', 'bob', '/home/bob/bin/reindex.sh')

    .. _crontab(5): http://manpages.debian.net/cgi-bin/man.cgi?query=crontab&sektion=5

    """
    if environment is None:
        environment = {}

    lines = []

    # Write optional environment variables first
    for key, value in environment.items():
        lines.append('%(key)s=%(value)s\n' % locals())

    # Write the main crontab line
    lines.append('%(timespec)s %(user)s %(command)s\n' % locals())

    from fabtools.require.files import file as require_file
    require_file(
        path='/etc/cron.d/%(name)s' % locals(),
        contents=''.join(lines),
        owner='root',
        mode='0644',
        use_sudo=True,
    )
Exemplo n.º 13
0
def add_task(name, timespec, user, command, environment=None):
    """
    Add a cron task.

    The *command* will be run as *user* periodically.

    You can use any valid `crontab(5)`_ *timespec*, including the
    ``@hourly``, ``@daily``, ``@weekly``, ``@monthly`` and ``@yearly``
    shortcuts.

    You can also provide an optional dictionary of environment variables
    that should be set when running the periodic command.

    Examples::

        from fabtools.cron import add_task

        # Run every month
        add_task('cleanup', '@monthly', 'alice', '/home/alice/bin/cleanup.sh')

        # Run every tuesday and friday at 5:30am
        add_task('reindex', '30 5 * * 2,4', 'bob', '/home/bob/bin/reindex.sh')

    .. _crontab(5): http://manpages.debian.net/cgi-bin/man.cgi?query=crontab&sektion=5

    """
    if environment is None:
        environment = {}

    lines = []

    # Write optional environment variables first
    for key, value in environment.iteritems():
        lines.append('%(key)s=%(value)s\n' % locals())

    # Write the main crontab line
    lines.append('%(timespec)s %(user)s %(command)s\n' % locals())

    from fabtools.require.files import file as require_file
    require_file(
        path='/etc/cron.d/%(name)s' % locals(),
        contents=''.join(lines),
        owner='root',
        mode='0644',
        use_sudo=True,
    )
Exemplo n.º 14
0
def example_site():
    from fabtools.require.apache import site as require_site
    from fabtools.require.files import directory as require_directory
    from fabtools.require.files import file as require_file

    site_name = 'example.com'

    site_dir = posixpath.join('/var/www', site_name)
    require_directory(site_dir, use_sudo=True)

    site_homepage = posixpath.join(site_dir, 'index.html')
    require_file(site_homepage, contents="example page", use_sudo=True)

    site_config_path = '/etc/apache2/sites-available/{0}.conf'.format(
        site_name)
    site_link_path = '/etc/apache2/sites-enabled/{0}.conf'.format(site_name)
    require_file(site_config_path, use_sudo=True)

    require_site(
        site_name,
        template_contents=dedent("""\
            <VirtualHost *:%(port)s>
                ServerName %(hostname)s
                DocumentRoot %(document_root)s
                <Directory %(document_root)s>
                </Directory>
            </VirtualHost>
        """),
        port=80,
        hostname=site_name,
        document_root=site_dir,
    )

    yield site_name

    sudo('rm -rf {0}'.format(quote(site_dir)))
    sudo('rm -f {0}'.format(quote(site_config_path)))
    sudo('rm -f {0}'.format(quote(site_link_path)))
Exemplo n.º 15
0
def example_site():
    from fabtools.require.apache import site as require_site
    from fabtools.require.files import directory as require_directory
    from fabtools.require.files import file as require_file

    site_name = 'example.com'

    site_dir = posixpath.join('/var/www', site_name)
    require_directory(site_dir, use_sudo=True)

    site_homepage = posixpath.join(site_dir, 'index.html')
    require_file(site_homepage, contents="example page", use_sudo=True)

    site_config_path = '/etc/apache2/sites-available/{0}.conf'.format(site_name)
    site_link_path = '/etc/apache2/sites-enabled/{0}.conf'.format(site_name)
    require_file(site_config_path, use_sudo=True)

    require_site(
        site_name,
        template_contents=dedent("""\
            <VirtualHost *:%(port)s>
                ServerName %(hostname)s
                DocumentRoot %(document_root)s
                <Directory %(document_root)s>
                </Directory>
            </VirtualHost>
        """),
        port=80,
        hostname=site_name,
        document_root=site_dir,
    )

    yield site_name

    sudo('rm -rf {0}'.format(quote(site_dir)))
    sudo('rm -f {0}'.format(quote(site_config_path)))
    sudo('rm -f {0}'.format(quote(site_link_path)))