mirror of
				https://github.com/avatao-content/baseimage-tutorial-framework
				synced 2025-11-04 15:52:55 +00:00 
			
		
		
		
	Separate independent classes from built-in event handlers
This commit is contained in:
		
				
					committed by
					
						
						therealkrispet
					
				
			
			
				
	
			
			
			
						parent
						
							f6a369496d
						
					
				
				
					commit
					fbe60de968
				
			@@ -1,41 +0,0 @@
 | 
			
		||||
import xmlrpc.client
 | 
			
		||||
from xmlrpc.client import Fault as SupervisorFault
 | 
			
		||||
from contextlib import suppress
 | 
			
		||||
from os import remove
 | 
			
		||||
 | 
			
		||||
from tfw.decorators.lazy_property import lazy_property
 | 
			
		||||
from tfw.config import TFWENV
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class SupervisorBaseMixin:
 | 
			
		||||
    @lazy_property
 | 
			
		||||
    def supervisor(self):
 | 
			
		||||
        # pylint: disable=no-self-use
 | 
			
		||||
        return xmlrpc.client.ServerProxy(TFWENV.SUPERVISOR_HTTP_URI).supervisor
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class SupervisorMixin(SupervisorBaseMixin):
 | 
			
		||||
    def stop_process(self, process_name):
 | 
			
		||||
        with suppress(SupervisorFault):
 | 
			
		||||
            self.supervisor.stopProcess(process_name)
 | 
			
		||||
 | 
			
		||||
    def start_process(self, process_name):
 | 
			
		||||
        self.supervisor.startProcess(process_name)
 | 
			
		||||
 | 
			
		||||
    def restart_process(self, process_name):
 | 
			
		||||
        self.stop_process(process_name)
 | 
			
		||||
        self.start_process(process_name)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class SupervisorLogMixin(SupervisorBaseMixin):
 | 
			
		||||
    def read_stdout(self, process_name, tail=0):
 | 
			
		||||
        return self.supervisor.readProcessStdoutLog(process_name, -tail, 0)
 | 
			
		||||
 | 
			
		||||
    def read_stderr(self, process_name, tail=0):
 | 
			
		||||
        return self.supervisor.readProcessStderrLog(process_name, -tail, 0)
 | 
			
		||||
 | 
			
		||||
    def clear_logs(self, process_name):
 | 
			
		||||
        for logfile in ('stdout_logfile', 'stderr_logfile'):
 | 
			
		||||
            with suppress(FileNotFoundError):
 | 
			
		||||
                remove(self.supervisor.getProcessInfo(process_name)[logfile])
 | 
			
		||||
        self.supervisor.clearProcessLogs(process_name)
 | 
			
		||||
		Reference in New Issue
	
	Block a user