X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=src%2Fnepi%2Fresources%2Flinux%2Fccn%2Fccnapplication.py;h=0b0dd6ffca27759fbbb832716350274a83a30b89;hb=46da4690c5120b820385fd47b7fbf995c1bff2a0;hp=39ac2a923faeb6eb4b46dad195f536f9c752002d;hpb=87f44a7c2853afb7021276dd3700858cff950703;p=nepi.git diff --git a/src/nepi/resources/linux/ccn/ccnapplication.py b/src/nepi/resources/linux/ccn/ccnapplication.py index 39ac2a92..0b0dd6ff 100644 --- a/src/nepi/resources/linux/ccn/ccnapplication.py +++ b/src/nepi/resources/linux/ccn/ccnapplication.py @@ -17,10 +17,11 @@ # # Author: Alina Quereilhac -from nepi.execution.resource import clsinit_copy, ResourceState, \ - ResourceAction +from nepi.execution.resource import ResourceManager, clsinit_copy, ResourceState, \ + reschedule_delay from nepi.resources.linux.application import LinuxApplication from nepi.resources.linux.ccn.ccnd import LinuxCCND +from nepi.util.timefuncs import tnow, tdiffsec import os @@ -44,15 +45,31 @@ class LinuxCCNApplication(LinuxApplication): return None def deploy(self): - if not self.get("env"): - self.set("env", self._environment) + if not self.ccnd or self.ccnd.state < ResourceState.READY: + self.debug("---- RESCHEDULING DEPLOY ---- node state %s " % self.node.state ) + self.ec.schedule(reschedule_delay, self.deploy) + else: + try: + command = self.get("command") or "" - super(LinuxCCNApplication, self).deploy() + self.info("Deploying command '%s' " % command) + + if not self.get("env"): + self.set("env", self._environment) + + self.discover() + self.provision() + except: + self._state = ResourceState.FAILED + raise + + self.debug("----- READY ---- ") + self._ready_time = tnow() + self._state = ResourceState.READY @property def _environment(self): - env = "PATH=$PATH:${STORE}/ccnx/bin " - return env + return self.ccnd.path def execute_command(self, command, env): environ = self.node.format_environment(env, inline = True)