Exemple #1
0
def test_config(gilt_config_file):
    result = config.config(gilt_config_file)
    os_split = pytest.helpers.os_split
    gilt_root = os.path.basename(config.BASE_WORKING_DIR)

    r = result[0]
    assert 'https://github.com/retr0h/ansible-etcd.git' == r.git
    assert 'master' == r.version
    assert 'retr0h.ansible-etcd' == r.name
    assert (gilt_root, 'clone', 'retr0h.ansible-etcd') == os_split(r.src)[-3:]
    assert (gilt_root, 'lock',
            'retr0h.ansible-etcd') == os_split(r.lock_file)[-3:]
    assert ('roles', 'retr0h.ansible-etcd', '') == os_split(r.dst)[-3:]
    assert [] == r.files

    r = result[1]
    assert 'https://github.com/lorin/openstack-ansible-modules.git' == r.git
    assert 'master' == r.version
    assert 'lorin.openstack-ansible-modules' == r.name
    assert 'lorin.openstack-ansible-modules' == os_split(r.src)[-1]
    assert r.dst is None

    f = r.files[0]
    x = (gilt_root, 'clone', 'lorin.openstack-ansible-modules', '*_manage')
    assert x == os_split(f.src)[-4:]
    assert ('library', '') == os_split(f.dst)[-2:]
Exemple #2
0
def overlay(ctx):  # pragma: no cover
    """Install gilt dependencies """
    args = ctx.obj.get("args")
    filename = args.get("config")
    debug = args.get("debug")
    _setup(filename)

    for c in config.config(filename):
        with fasteners.InterProcessLock(c.lock_file):
            util.print_info("{}:".format(c.name))
            if not os.path.exists(c.src):
                git.clone(c.name, c.git, c.src, debug=debug)
            if c.dst:
                git.extract(c.src, c.dst, c.version, debug=debug)
                post_commands = {c.dst: c.post_commands}
            else:
                git.overlay(c.src, c.files, c.version, debug=debug)
                post_commands = {
                    conf.dst: conf.post_commands
                    for conf in c.files
                }
            # Run post commands if any.
            for dst, commands in post_commands.items():
                for command in commands:
                    msg = "  - running `{}` in {}".format(command, dst)
                    util.print_info(msg)
                    cmd = util.build_sh_cmd(command, cwd=dst)
                    util.run_command(cmd, debug=debug)
Exemple #3
0
def overlay(ctx):  # pragma: no cover
    """ Install gilt dependencies """
    args = ctx.obj.get('args')
    filename = args.get('config')
    debug = args.get('debug')
    _setup(filename)

    for c in config.config(filename):
        with fasteners.InterProcessLock(c.lock_file):
            util.print_info('{}:'.format(c.name))
            if not os.path.exists(c.src):
                git.clone(c.name, c.git, c.src, debug=debug)
            if c.dst:
                git.extract(c.src, c.dst, c.version, debug=debug)
            else:
                git.overlay(c.src, c.files, c.version, debug=debug)
Exemple #4
0
def test_config(gilt_config_file):
    result = config.config(gilt_config_file)
    os_split = pytest.helpers.os_split
    gilt_root = os.path.basename(config.BASE_WORKING_DIR)

    r = result[0]
    assert "https://github.com/retr0h/ansible-etcd.git" == r.git
    assert "master" == r.version
    assert "retr0h.ansible-etcd" == r.name
    assert (
        gilt_root,
        "clone",
        "github.com",
        "retr0h.ansible-etcd",
    ) == os_split(r.src)[-4:]
    assert (
        gilt_root,
        "lock",
        "github.com",
        "retr0h.ansible-etcd",
    ) == os_split(r.lock_file)[-4:]
    assert ("roles", "retr0h.ansible-etcd", "") == os_split(r.dst)[-3:]
    assert [] == r.files

    r = result[1]
    assert "https://github.com/lorin/openstack-ansible-modules.git" == r.git
    assert "master" == r.version
    assert "lorin.openstack-ansible-modules" == r.name
    assert "lorin.openstack-ansible-modules" == os_split(r.src)[-1]
    assert r.dst is None

    f = r.files[0]
    x = (
        gilt_root,
        "clone",
        "github.com",
        "lorin.openstack-ansible-modules",
        "*_manage",
    )
    assert x == os_split(f.src)[-5:]
    assert ("library", "") == os_split(f.dst)[-2:]
Exemple #5
0
def test_config_missing_dst_key(gilt_config_file):
    with pytest.raises(KeyError):
        config.config(gilt_config_file)