from nepi.execution.attribute import Attribute, Flags, Types
from nepi.execution.resource import clsinit_copy, ResourceState, \
- reschedule_delay
+ reschedule_delay, failtrap
from nepi.resources.linux.application import LinuxApplication
from nepi.util.sshfuncs import ProcStatus
from nepi.util.timefuncs import tnow, tdiffsec
port = self.wait_local_port(endpoint)
return (port, pid, ppid)
+ @failtrap
def provision(self):
# create run dir for tunnel on each node
self.endpoint1.node.mkdir(self.run_home(self.endpoint1))
self.set_provisioned()
+ @failtrap
def deploy(self):
if (not self.endpoint1 or self.endpoint1.state < ResourceState.READY) or \
(not self.endpoint2 or self.endpoint2.state < ResourceState.READY):
self.ec.schedule(reschedule_delay, self.deploy)
else:
- try:
- self.discover()
- self.provision()
- except:
- self.fail()
- return
+ self.discover()
+ self.provision()
self.debug("----- READY ---- ")
self.set_ready()
+ @failtrap
def start(self):
if self.state == ResourceState.READY:
command = self.get("command")
else:
msg = " Failed to execute command '%s'" % command
self.error(msg, out, err)
- self.fail()
+ raise RuntimeError, msg
+ @failtrap
def stop(self):
""" Stops application execution
"""
# check if execution errors occurred
msg = " Failed to STOP tunnel"
self.error(msg, err1, err2)
- self.fail()
- return
+ raise RuntimeError, msg
self.set_stopped()