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:]
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)
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)
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:]
def test_config_missing_dst_key(gilt_config_file): with pytest.raises(KeyError): config.config(gilt_config_file)