Exemple #1
0
def test_jailspec_to_jailconf_06():
    with pytest.raises(ValueError) as excinfo:
        _ = jailspec_to_jailconf({}, 'noname')
    assert excinfo.value.args == ('Missing path specification for the jail',)

    with pytest.raises(ValueError) as excinfo:
        _ = jailspec_to_jailconf({'image': 'zoo'}, 'noname')
    assert excinfo.value.args == ('Missing path specification for the jail',)

    _ = jailspec_to_jailconf({'path': '/foo/bar'}, 'noname')

    _ = jailspec_to_jailconf({'image': 'zoo', 'path': '/foo/bar'}, 'noname')
Exemple #2
0
def test_jailspec_to_jailconf_03():
    spec = dict(_spec)
    del spec['command']
    del spec['exec.system_jail_user']
    #with pytest.raises(KeyError) as excinfo:
    blk = jailspec_to_jailconf(spec, 'noname')
    # assert excinfo.value.args == ('exec.jail_user and exec.system_jail_user are mutually exclusive',)
    for k, v in spec.items():
        if k == 'exec.prestart' or k == 'exec.poststop' or k == 'depend':
            continue
        assert blk[k] == quote(v)
    assert blk['exec.prestart'] == "'cp /etc/resolv.conf /no/path/etc/resolv.conf && echo Prestart'"
    assert blk['exec.poststop'] == "'echo Poststop'"
Exemple #3
0
def test_jailspec_to_jailconf_07():
    spec = {
        'path': '/no/path',
        'mounts': {
            '/foo/bar': '/bar/baf',
            '/bar/baz': '/baz/bee'
        }
    }
    conf = jailspec_to_jailconf(spec, 'noname')

    assert conf['exec.prestart'] == quote('cp /etc/resolv.conf /no/path/etc/resolv.conf && mount -t nullfs /foo/bar /no/path/bar/baf && mount -t nullfs /bar/baz /no/path/baz/bee')

    assert conf['exec.poststop'] == quote('umount -f /no/path/baz/bee && umount -f /no/path/bar/baf')
Exemple #4
0
def test_jailspec_to_jailconf_05():
    spec = {
        'path': '/no/path',
        'env': {
            'FOO': 'bar',
            'BAR': 'baz'
        },
        'exec.prestart': 'echo Prestart',
        'exec.start': 'echo Start',
        'exec.poststart': 'echo Poststart',
        'exec.prestop': 'echo Prestop',
        'exec.stop': 'echo Stop',
        'exec.poststop': 'echo Poststop'
    }

    blk = jailspec_to_jailconf(spec, 'noname')

    assert blk['exec.prestart'] == "'cp /etc/resolv.conf /no/path/etc/resolv.conf && export FOO=bar && export BAR=baz && echo Prestart'"
    assert blk['exec.start'] == "'export FOO=bar && export BAR=baz && echo Start'"
    assert blk['exec.poststart'] == "'export FOO=bar && export BAR=baz && echo Poststart'"
    assert blk['exec.prestop'] == "'export FOO=bar && export BAR=baz && echo Prestop'"
    assert blk['exec.stop'] == "'export FOO=bar && export BAR=baz && echo Stop'"
    assert blk['exec.poststop'] == "'export FOO=bar && export BAR=baz && echo Poststop'"

    spec = {
        'path': '/no/path',
        'env': {
            'FOO': 'bar',
            'BAR': 'baz'
        },
        'command': 'echo Command'
    }

    blk = jailspec_to_jailconf(spec, 'noname')

    assert blk['command'] == "'export FOO=bar && export BAR=baz && echo Command'"
Exemple #5
0
def test_jailspec_to_jailconf_02():
    spec = dict(_spec)
    del spec['command']
    with pytest.raises(KeyError) as excinfo:
        blk = jailspec_to_jailconf(spec, 'noname')
    assert excinfo.value.args == ('exec.jail_user and exec.system_jail_user are mutually exclusive',)
Exemple #6
0
def test_jailspec_to_jailconf_01():
    with pytest.raises(KeyError) as excinfo:
        blk = jailspec_to_jailconf(_spec, 'noname')
    assert excinfo.value.args == ('exec.start and command are mutually exclusive',)
Exemple #7
0
def test_jailspec_to_jailconf_04():
    spec = dict(_spec2)
    blk = jailspec_to_jailconf(spec, 'noname')
    for k, v in spec.items():
        assert blk[k] == quote(v)