Exemplo n.º 1
0
    def intercept_command_run(*popenargs, **kwargs):
        if get_command(popenargs) == 'gsettings':
            schema = get_command_parameter(popenargs, 'get')
            assert schema.startswith('org.gnome.system.proxy')
            key = get_command_parameter(popenargs, schema)
            return_value = 0
            if key == 'mode':
                result = gsettings_proxy_mode
            elif key == 'ignore-hosts':
                result = gsettings_no_proxy
            elif key == 'host':
                result = 'foo:[email protected]'
            elif key == 'port':
                result = gsettings_proxy_port
            else:
                return_value = 1
                result = ''

            return subprocess.CompletedProcess("fakerun", return_value, stdout=result)
        elif get_command(popenargs) == 'printenv':
            env_var = get_sub_command(popenargs)
            if env_var == 'no_proxy' and env_value_no_proxy:
                return subprocess.CompletedProcess("fakerun", 0, stdout=env_value_no_proxy)
            elif env_var != 'no_proxy' and env_var.endswith('_proxy') and env_value_proxy:
                return subprocess.CompletedProcess("fakerun", 0, stdout=env_value_proxy)
            else:
                return subprocess.CompletedProcess("fakerun", 1, stdout='')
        else:
            return subprocess.run(*popenargs, **kwargs)
Exemplo n.º 2
0
 def intercept_command_run(*popenargs, **kwargs):
     if get_command(popenargs) == 'ssh' and get_sub_command(popenargs) == '-G':
         return subprocess.CompletedProcess("fakerun", 0, stdout=fake_config)
     elif get_command(popenargs) == "getent" and get_sub_command(popenargs) == "passwd":
         return subprocess.CompletedProcess("fakerun", 0,
                                            stdout='john:x:1000:1000:John Doe,,,:{}:/bin/bash\n'.format(str(tmpdir)))
     else:
         return subprocess.run(*popenargs, **kwargs)
Exemplo n.º 3
0
 def intercept_command_run(*popenargs, **kwargs):
     if "command" in get_command(popenargs):
         print(popenargs)
         with open(get_command(popenargs), encoding='utf-8') as f:
             print(f.read())
         return subprocess.run(*popenargs, **kwargs)
     else:
         print("passthrough")
         return subprocess.run(*popenargs, **kwargs)
Exemplo n.º 4
0
        def fakerun(*popenargs, **kwargs):
            if get_command(popenargs) == "chroot":
                rootfs_path = get_command_parameter(popenargs, "chroot")
                if not os.path.exists(rootfs_path):
                    os.mkdir(rootfs_path)
            elif get_command(popenargs) == "debootstrap":
                rootfs_path = popenargs[0][-2]
                apt_dir = os.path.join(rootfs_path, 'etc', 'apt')
                os.makedirs(apt_dir)
                pass
            elif get_command(popenargs) == "tar":
                archive = get_command_parameter(popenargs, '-acf')
                with open(archive, mode="w") as fakearchive:
                    fakearchive.write("fake archive")
            elif popenargs[0][-2] == "dpkg" and popenargs[0][-1] == "--print-architecture":
                return subprocess.CompletedProcess("fakerun", 0, 'amd64')
            elif get_command(popenargs).endswith("lxd") and get_sub_command(popenargs) == "--version":
                return subprocess.CompletedProcess("fakerun", 0, '2.18')
            elif get_command(popenargs) == "ssh" and get_sub_command(popenargs) == "-G":
                return subprocess.CompletedProcess("fakerun", 0, 'ssh config')
            elif get_command(popenargs) == "printenv":
                return subprocess.CompletedProcess("fakerun", 0, '')
            elif get_command(popenargs) == 'getent' and get_sub_command(popenargs) == 'passwd':
                return subprocess.CompletedProcess("fakerun", 0,
                                                   stdout='john:x:1000:1000:John Doe,,,:/no/such/directory:/bin/bash\n')
            elif get_command(popenargs) == "findmnt":
                return subprocess.CompletedProcess("fakerun", 0, '/foo/bar/baz')
            else:
                print('Passthrough: {}'.format(get_command(popenargs)))
                return subprocess.run(*popenargs, **kwargs)

            return subprocess.CompletedProcess("fakerun", 0, '')
Exemplo n.º 5
0
 def intercept_command_run(*popenargs, **kwargs):
     if get_command(popenargs) == 'ssh' and get_sub_command(
             popenargs) == '-G':
         return subprocess.CompletedProcess("fakerun",
                                            0,
                                            stdout=fake_config)
     elif get_command(popenargs) == "printenv" and get_sub_command(
             popenargs) == "HOME":
         return subprocess.CompletedProcess("fakerun",
                                            0,
                                            stdout=str(tmpdir))
     else:
         return subprocess.run(*popenargs, **kwargs)
Exemplo n.º 6
0
 def fake_lxd_version_command(*popenargs, **kwargs):
     if get_command(popenargs).endswith('lxd') and get_sub_command(
             popenargs) == '--version':
         return subprocess.CompletedProcess(
             "fakerun", 0, stdout='{}\n'.format(fake_version))
     else:
         return subprocess.run(*popenargs, **kwargs)
Exemplo n.º 7
0
 def fake_mkdir_command(*popenargs, **kwargs):
     if get_command(popenargs) == 'mkdir' and get_sub_command(
             popenargs) == '-p':
         cmd = ['bash', '-c', '>&2 echo -e "no permission" ; exit 1']
         return subprocess.run(cmd, **kwargs)
     else:
         return subprocess.run(*popenargs, **kwargs)
Exemplo n.º 8
0
 def fake_mkdir_command(*popenargs, **kwargs):
     if get_command(popenargs) == 'mkdir' and get_sub_command(popenargs) == '-p':
         folder = popenargs[0][-1]
         assert 'edi_marker_valid_folder' in folder or 'edi_marker_work' in folder
         return subprocess.CompletedProcess("fakerun", 0, '')
     else:
         return subprocess.run(*popenargs, **kwargs)
Exemplo n.º 9
0
 def fake_getent_passwd(*popenargs, **kwargs):
     if get_command(popenargs) == 'getent' and get_sub_command(popenargs) == 'passwd' and \
             get_command_parameter(popenargs, 'passwd') == 'john':
         return subprocess.CompletedProcess("fakerun", 0,
                                            stdout='john:x:1000:1000:John Doe,,,:/home/john:/bin/bash\n')
     else:
         return subprocess.run(*popenargs, **kwargs)
Exemplo n.º 10
0
 def fake_lxc_exec_command(*popenargs, **kwargs):
     if get_command(popenargs).endswith('lxc') and get_sub_command(popenargs) == 'exec':
         if get_command_parameter(popenargs, '--') == 'test':
             return subprocess.CompletedProcess("failure", 1, 'failure')
         else:
             return subprocess.CompletedProcess("fakerun", 0, '')
     else:
         return subprocess.run(*popenargs, **kwargs)
Exemplo n.º 11
0
 def fake_lxc_config_command(*popenargs, **kwargs):
     if get_command(popenargs).endswith('lxc') and get_sub_command(
             popenargs) == 'config':
         return subprocess.CompletedProcess("fakerun",
                                            0,
                                            stdout='bzip2')
     else:
         return subprocess.run(*popenargs, **kwargs)
Exemplo n.º 12
0
        def fakerun(*popenargs, **kwargs):
            if get_command(popenargs) == "chroot":
                rootfs_path = get_command_parameter(popenargs, "chroot")
                if not os.path.exists(rootfs_path):
                    os.mkdir(rootfs_path)
            elif get_command(popenargs) == "debootstrap":
                rootfs_path = popenargs[0][-2]
                apt_dir = os.path.join(rootfs_path, 'etc', 'apt')
                os.makedirs(apt_dir)
                pass
            elif get_command(popenargs) == "tar":
                archive = get_command_parameter(popenargs, '-acf')
                with open(archive, mode="w") as fakearchive:
                    fakearchive.write("fake archive")
            elif popenargs[0][-2] == "dpkg" and popenargs[0][
                    -1] == "--print-architecture":
                return subprocess.CompletedProcess("fakerun", 0, 'amd64')
            elif get_command(popenargs) == "lxd" and get_sub_command(
                    popenargs) == "--version":
                return subprocess.CompletedProcess("fakerun", 0, '2.18')
            elif get_command(popenargs) == "ssh" and get_sub_command(
                    popenargs) == "-G":
                return subprocess.CompletedProcess("fakerun", 0, 'ssh config')
            elif get_command(popenargs) == "printenv":
                if get_sub_command(popenargs) == "HOME":
                    return subprocess.CompletedProcess("fakerun", 0,
                                                       '/no/such/directory')
                else:
                    return subprocess.CompletedProcess("fakerun", 0, '')
            else:
                print('Passthrough: {}'.format(get_command(popenargs)))
                return subprocess.run(*popenargs, **kwargs)

            return subprocess.CompletedProcess("fakerun", 0, '')
Exemplo n.º 13
0
 def fake_lxc_exec_command(*popenargs, **kwargs):
     if get_command(popenargs).endswith('lxc') and get_sub_command(popenargs) == 'exec':
         if get_command_parameter(popenargs, '--') == 'true':
             cmd = ['bash', '-c', '>&2 echo -e "lxc command failed" ; exit 1']
             return subprocess.run(cmd, **kwargs)
         else:
             return subprocess.CompletedProcess("fakerun", 0, '')
     else:
         return subprocess.run(*popenargs, **kwargs)
Exemplo n.º 14
0
 def fake_ansible_playbook_run(*popenargs, **kwargs):
     if get_command(popenargs) == 'ansible-playbook':
         assert 'lxd' == get_command_parameter(popenargs, '--connection')
         verify_inventory(get_command_parameter(popenargs, '--inventory'))
         verify_extra_vars(get_command_parameter(popenargs, '--extra-vars').lstrip('@'))
         # TODO: verify --user for ssh connection
         return subprocess.CompletedProcess("fakerun", 0, '')
     else:
         return subprocess.run(*popenargs, **kwargs)
Exemplo n.º 15
0
 def fake_lxc_exec_command(*popenargs, **kwargs):
     if get_command(popenargs).endswith(
             'lxc') and get_sub_command(popenargs) == 'exec':
         return subprocess.CompletedProcess("fakerun", 0, '')
     else:
         return subprocess.run(*popenargs, **kwargs)
Exemplo n.º 16
0
 def fakerun(*popenargs, **kwargs):
     if get_command(popenargs) == "ansible-playbook":
         return subprocess.CompletedProcess("fakerun", 0, '')
     else:
         print('Passthrough: {}'.format(get_command(popenargs)))
         return subprocess.run(*popenargs, **kwargs)
Exemplo n.º 17
0
 def intercept_command_run(*popenargs, **kwargs):
     if get_command(popenargs) == 'printenv' and get_sub_command(
             popenargs) == 'DISPLAY':
         return subprocess.CompletedProcess("fakerun", 0, stdout=env_var)
     else:
         return subprocess.run(*popenargs, **kwargs)