applied the except and raise fixers to the master branch to close the gap with py3
[nepi.git] / src / nepi / resources / linux / ping.py
index 0031e18..f585b2e 100644 (file)
@@ -3,9 +3,8 @@
 #    Copyright (C) 2013 INRIA
 #
 #    This program is free software: you can redistribute it and/or modify
-#    it under the terms of the GNU General Public License as published by
-#    the Free Software Foundation, either version 3 of the License, or
-#    (at your option) any later version.
+#    it under the terms of the GNU General Public License version 2 as
+#    published by the Free Software Foundation;
 #
 #    This program is distributed in the hope that it will be useful,
 #    but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -18,7 +17,7 @@
 # Author: Alina Quereilhac <alina.quereilhac@inria.fr>
 
 from nepi.execution.attribute import Attribute, Flags, Types
-from nepi.execution.resource import clsinit_copy
+from nepi.execution.resource import clsinit_copy, ResourceState 
 from nepi.resources.linux.application import LinuxApplication
 from nepi.util.timefuncs import tnow
 
@@ -26,7 +25,7 @@ import os
 
 @clsinit_copy
 class LinuxPing(LinuxApplication):
-    _rtype = "LinuxPing"
+    _rtype = "linux::Ping"
 
     @classmethod
     def _register_attributes(cls):
@@ -192,29 +191,10 @@ class LinuxPing(LinuxApplication):
         self._home = "ping-%s" % self.guid
 
     def upload_start_command(self):
+        super(LinuxPing, self).upload_start_command()
+        
         if self.get("earlyStart") == True:
-            command = self.get("command")
-            env = self.get("env")
-
-            # We want to make sure the FIB entries are created
-            # before the experiment starts.
-            # Run the command as a bash script in the background, 
-            # in the host ( but wait until the command has
-            # finished to continue )
-            env = env and self.replace_paths(env)
-            command = self.replace_paths(command)
-
-            # ccndc seems to return exitcode OK even if a (dns) error
-            # occurred, so we need to account for this case here. 
-            (out, err), proc = self.execute_command(command, 
-                    env, blocking = True)
-
-            if proc.poll():
-                msg = "Failed to execute command"
-                self.error(msg, out, err)
-                raise RuntimeError, msg
-        else:
-            super(LinuxPing, self).upload_start_command()
+            self._run_in_background()
 
     def do_deploy(self):
         if not self.get("command"):
@@ -232,7 +212,7 @@ class LinuxPing(LinuxApplication):
             else:
                 msg = " Failed to execute command '%s'" % command
                 self.error(msg, out, err)
-                raise RuntimeError, msg
+                raise RuntimeError(msg)
         else:
            super(LinuxPing, self).do_start()