chiark / gitweb /
python libs: new Autopkgtest.py module
[autopkgtest.git] / virt-subproc / adt-virt-schroot
index 32bd7839ada7400962613b8ebe218ab5c36e2bd7..d0473b610059be5137150276c47087600b0a4de3 100755 (executable)
@@ -30,9 +30,9 @@ import grp
 import pwd
 from optparse import OptionParser
 
-try: our_base = os.environ['AUTOPKGTEST_BASE']
-except KeyError: our_base = '/usr/share/autopkgtest';
-sys.path.insert(1, our_base+'/python')
+try: our_base = os.environ['AUTOPKGTEST_BASE']+'/lib'
+except KeyError: our_base = '/usr/share/autopkgtest/python';
+sys.path.insert(1, our_base)
 
 import VirtSubproc as vsp
 capabilities = []
@@ -67,11 +67,11 @@ def parse_args():
                capabilities.append('revert')
 
        if [True
-               for exp_name in cfg['root-users'].split()
+               for exp_name in cfg['root-users'].split(',')
                for got_uid in [os.getuid()]
                if got_uid == pwd.getpwnam(exp_name).pw_uid
        ] or [True
-               for exp_name in cfg['root-groups'].split()
+               for exp_name in cfg['root-groups'].split(',')
                for got_gid in [os.getgid()] + os.getgroups()
                if got_gid == grp.getgrnam(exp_name).gr_gid
        ]:
@@ -80,11 +80,22 @@ def parse_args():
 def hook_open():
        global schroot, sessid, downtmp
        sessid = vsp.execute('schroot -b -c',[schroot], downp=False, outp=True)
-       vsp.down = ['schroot','-r','-c',sessid,'--','sh','-c']
-       return None
+       vsp.down = ['schroot','-r','-c',sessid]
+       if 'root-on-testbed' in capabilities: vsp.down += ['-u','root']
+       vsp.down += ['--']
+       vsp.downkind = 'auxverb'
+
+def hook_downtmp():
+       return vsp.downtmp_mktemp()
+
+def hook_revert():
+       vsp.downtmp_remove()
+       hook_cleanup()
+       hook_open()
 
 def hook_cleanup():
        global schroot, sessid, downtmp
+       vsp.downtmp_remove()
        vsp.execute('schroot -e -c',[sessid], downp=False)
 
 def hook_forked_inchild():