X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=src%2Fnepi%2Fresources%2Flinux%2Fccn%2Fccnr.py;h=53199976a38f1b40716c948c97a4bd5483301cae;hb=99d8b2a4431d8fafd0385e189375106d46f1abd9;hp=46c3f3b69e132736ba1bc9d251f0c0b0eb67bc51;hpb=c0cf4d2c1021bf3c0fda14f093f1a4e536b4b95d;p=nepi.git diff --git a/src/nepi/resources/linux/ccn/ccnr.py b/src/nepi/resources/linux/ccn/ccnr.py index 46c3f3b6..53199976 100644 --- a/src/nepi/resources/linux/ccn/ccnr.py +++ b/src/nepi/resources/linux/ccn/ccnr.py @@ -20,7 +20,7 @@ from nepi.execution.attribute import Attribute, Flags, Types from nepi.execution.trace import Trace, TraceAttr from nepi.execution.resource import clsinit_copy, ResourceState, \ - ResourceAction, reschedule_delay + ResourceAction, reschedule_delay, failtrap from nepi.resources.linux.application import LinuxApplication from nepi.resources.linux.ccn.ccnd import LinuxCCND from nepi.util.timefuncs import tnow @@ -200,6 +200,7 @@ class LinuxCCNR(LinuxApplication): if self.ccnd: return self.ccnd.node return None + @failtrap def deploy(self): if not self.ccnd or self.ccnd.state < ResourceState.READY: self.debug("---- RESCHEDULING DEPLOY ---- CCND state %s " % self.ccnd.state ) @@ -207,22 +208,18 @@ class LinuxCCNR(LinuxApplication): # ccnr needs to wait until ccnd is deployed and running self.ec.schedule(reschedule_delay, self.deploy) else: - try: - if not self.get("command"): - self.set("command", self._start_command) + if not self.get("command"): + self.set("command", self._start_command) - if not self.get("env"): - self.set("env", self._environment) + if not self.get("env"): + self.set("env", self._environment) - command = self.get("command") + command = self.get("command") - self.info("Deploying command '%s' " % command) + self.info("Deploying command '%s' " % command) - self.discover() - self.provision() - except: - self.fail() - return + self.discover() + self.provision() self.debug("----- READY ---- ") self.set_ready() @@ -255,6 +252,7 @@ class LinuxCCNR(LinuxApplication): env = env, raise_on_error = True) + @failtrap def start(self): if self.state == ResourceState.READY: command = self.get("command") @@ -264,7 +262,7 @@ class LinuxCCNR(LinuxApplication): else: msg = " Failed to execute command '%s'" % command self.error(msg, out, err) - self.fail() + raise RuntimeError, msg @property def _start_command(self):