from fabric import Group
from riaps.rfab.api.task import Task, SkipResult
from invoke.exceptions import UnexpectedExit
import time
[docs]class DeploStart(Task):
[docs] def deplo_start(self):
return self.sudo('systemctl start riaps-deplo.service')
[docs]class DeploStartManual(Task):
[docs] def deplo_start_manual(self):
# nohup handles redirection of stderr to stdout for us
# backgrounding (with "&") didn't seem to work with fab2, but disown does
cmd = '-E nohup riaps_deplo > ~/riaps-$(hostname).log'
_ = self.sudo(cmd,disown=True)
return SkipResult(self.connection,cmd,stdout='')
[docs]class DeploRestart(Task):
[docs] def deplo_restart(self):
return self.sudo('systemctl restart riaps-deplo.service')
[docs]class DeploStop(Task):
[docs] def deplo_stop(self):
return self.sudo('systemctl stop riaps-deplo.service')
[docs]class DeploEnable(Task):
[docs] def deplo_enable(self):
return self.sudo('systemctl enable riaps-deplo.service')
[docs]class DeploDisable(Task):
[docs] def deplo_disable(self):
return self.sudo('systemctl disable riaps-deplo.service')
[docs]class DeploStatus(Task):
num_lines = " -n 10"
grep_pattern = ''
[docs] def deplo_status(self):
try:
return self.sudo(f"systemctl status riaps-deplo --no-pager{self.num_lines}{self.grep_pattern}")
except UnexpectedExit as e:
if str(e.result.exited) in ('1','2','3'): # Don't "Fail" for certain return codes
return e.result
else:
raise e
[docs]class DeploJournal(Task):
num_lines = " -n 10"
grep_pattern = ''
[docs] def deplo_journal(self):
return self.sudo(f"journalctl -u riaps-deplo.service --no-pager{self.num_lines}{self.grep_pattern}")