Enable autoserv to operate without a results directory

This is incredibly useful for writing small, non-invasive scripts,
using the power of autoserv

Signed-off-by: Martin Bligh <[email protected]>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2444 592f7852-d20e-0410-864c-8624ca9c26a4
diff --git a/server/server_job.py b/server/server_job.py
index f428914..cf404ad 100755
--- a/server/server_job.py
+++ b/server/server_job.py
@@ -100,12 +100,15 @@
         else:
             self.control = ''
         self.resultdir = resultdir
-        if not os.path.exists(resultdir):
-            os.mkdir(resultdir)
-        self.debugdir = os.path.join(resultdir, 'debug')
-        if not os.path.exists(self.debugdir):
-            os.mkdir(self.debugdir)
-        self.status = os.path.join(resultdir, 'status')
+        if resultdir:
+            if not os.path.exists(resultdir):
+                os.mkdir(resultdir)
+            self.debugdir = os.path.join(resultdir, 'debug')
+            if not os.path.exists(self.debugdir):
+                os.mkdir(self.debugdir)
+            self.status = os.path.join(resultdir, 'status')
+        else:
+            self.status = None
         self.label = label
         self.user = user
         self.args = args
@@ -123,7 +126,8 @@
         self.stdout = fd_stack.fd_stack(1, sys.stdout)
         self.stderr = fd_stack.fd_stack(2, sys.stderr)
 
-        self.sysinfo = sysinfo.sysinfo(self.resultdir)
+        if resultdir:
+            self.sysinfo = sysinfo.sysinfo(self.resultdir)
 
         if not os.access(self.tmpdir, os.W_OK):
             try:
@@ -145,13 +149,14 @@
                 # exception.
                 os.chmod(self.tmpdir, stat.S_IRWXU)
 
-        if os.path.exists(self.status):
+        if self.status and os.path.exists(self.status):
             os.unlink(self.status)
         job_data = {'label' : label, 'user' : user,
                     'hostname' : ','.join(machines),
                     'status_version' : str(self.STATUS_VERSION)}
-        job_data.update(get_site_job_data(self))
-        utils.write_keyval(self.resultdir, job_data)
+        if self.resultdir:
+            job_data.update(get_site_job_data(self))
+            utils.write_keyval(self.resultdir, job_data)
 
         self.parse_job = parse_job
         if self.parse_job and len(machines) == 1:
@@ -320,10 +325,11 @@
         namespace['ssh_pass'] = self.ssh_pass
         test_start_time = int(time.time())
 
-        os.chdir(self.resultdir)
+        if self.resultdir:
+            os.chdir(self.resultdir)
 
-        self.enable_external_logging()
-        status_log = os.path.join(self.resultdir, 'status.log')
+            self.enable_external_logging()
+            status_log = os.path.join(self.resultdir, 'status.log')
         collect_crashinfo = True
         try:
             if install_before and machines: