X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=src%2Fnepi%2Fresources%2Flinux%2Fccn%2Fccnapplication.py;h=49b2bdc50eb7137e39814b7d4163b9abf89eecf8;hb=ea9bd019c72d8ffc67143b9905186b1313fac85c;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..49b2bdc5 100644 --- a/src/nepi/resources/linux/ccn/ccnapplication.py +++ b/src/nepi/resources/linux/ccn/ccnapplication.py @@ -18,7 +18,7 @@ # Author: Alina Quereilhac from nepi.execution.resource import clsinit_copy, ResourceState, \ - ResourceAction + reschedule_delay from nepi.resources.linux.application import LinuxApplication from nepi.resources.linux.ccn.ccnd import LinuxCCND @@ -34,7 +34,7 @@ class LinuxCCNApplication(LinuxApplication): @property def ccnd(self): - ccnd = self.get_connected(LinuxCCND.rtype()) + ccnd = self.get_connected(LinuxCCND.get_rtype()) if ccnd: return ccnd[0] return None @@ -43,24 +43,27 @@ class LinuxCCNApplication(LinuxApplication): if self.ccnd: return self.ccnd.node return None - def deploy(self): - if not self.get("env"): - self.set("env", self._environment) + def do_deploy(self): + 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: + 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.do_discover() + self.do_provision() + + self.set_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) - command = environ + command - command = self.replace_paths(command) - - return self.node.execute(command) - def valid_connection(self, guid): # TODO: Validate! return True