mirror of
				https://github.com/avatao-content/baseimage-tutorial-framework
				synced 2025-11-04 16:12:55 +00:00 
			
		
		
		
	Inject TFWENV dependencies to builtins
This commit is contained in:
		@@ -7,7 +7,6 @@ from datetime import datetime
 | 
			
		||||
from dateutil import parser as dateparser
 | 
			
		||||
 | 
			
		||||
from tfw.components.snapshot_provider import SnapshotProvider
 | 
			
		||||
from tfw.config import TFWENV
 | 
			
		||||
from tfw.networking import Scope
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -17,7 +16,8 @@ LOG = logging.getLogger(__name__)
 | 
			
		||||
class DirectorySnapshottingEventHandler:
 | 
			
		||||
    keys = ['snapshot']
 | 
			
		||||
 | 
			
		||||
    def __init__(self, directories, exclude_unix_patterns=None):
 | 
			
		||||
    def __init__(self, *, directories, snapshots_dir, exclude_unix_patterns=None):
 | 
			
		||||
        self._snapshots_dir = snapshots_dir
 | 
			
		||||
        self.snapshot_providers = {}
 | 
			
		||||
        self._exclude_unix_patterns = exclude_unix_patterns
 | 
			
		||||
        self.init_snapshot_providers(directories)
 | 
			
		||||
@@ -37,10 +37,9 @@ class DirectorySnapshottingEventHandler:
 | 
			
		||||
                self._exclude_unix_patterns
 | 
			
		||||
            )
 | 
			
		||||
 | 
			
		||||
    @staticmethod
 | 
			
		||||
    def init_git_dir(index, directory):
 | 
			
		||||
    def init_git_dir(self, index, directory):
 | 
			
		||||
        git_dir = joinpath(
 | 
			
		||||
            TFWENV.SNAPSHOTS_DIR,
 | 
			
		||||
            self._snapshots_dir,
 | 
			
		||||
            f'{basename(directory)}-{index}'
 | 
			
		||||
        )
 | 
			
		||||
        makedirs(git_dir, exist_ok=True)
 | 
			
		||||
 
 | 
			
		||||
@@ -24,7 +24,7 @@ class FSMManagingEventHandler:
 | 
			
		||||
    An 'fsm_update' message is broadcasted after every successful
 | 
			
		||||
    command.
 | 
			
		||||
    """
 | 
			
		||||
    def __init__(self, fsm_type, require_signature=False):
 | 
			
		||||
    def __init__(self, *, fsm_type, require_signature=False):
 | 
			
		||||
        self.fsm = fsm_type()
 | 
			
		||||
        self._fsm_updater = FSMUpdater(self.fsm)
 | 
			
		||||
        self.auth_key = KeyManager().auth_key
 | 
			
		||||
 
 | 
			
		||||
@@ -47,7 +47,7 @@ class IdeEventHandler:
 | 
			
		||||
 | 
			
		||||
    The API of each command is documented in their respective handler.
 | 
			
		||||
    """
 | 
			
		||||
    def __init__(self, directory, allowed_directories, selected_file=None, exclude=None):
 | 
			
		||||
    def __init__(self, *, directory, allowed_directories, selected_file=None, exclude=None):
 | 
			
		||||
        """
 | 
			
		||||
        :param key: the key this instance should listen to
 | 
			
		||||
        :param directory: working directory which the EventHandler should serve files from
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,5 @@
 | 
			
		||||
import logging
 | 
			
		||||
 | 
			
		||||
from tfw.config import TFWENV
 | 
			
		||||
from tfw.components import LogInotifyObserver
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -18,9 +17,10 @@ class LogMonitoringEventHandler:
 | 
			
		||||
 | 
			
		||||
    The API of each command is documented in their respective handler.
 | 
			
		||||
    """
 | 
			
		||||
    def __init__(self, process_name, log_tail=0):
 | 
			
		||||
    def __init__(self, *, process_name, supervisor_uri, log_tail=0):
 | 
			
		||||
        self.server_connector = None
 | 
			
		||||
        self.process_name = process_name
 | 
			
		||||
        self._supervisor_uri = supervisor_uri
 | 
			
		||||
        self._initial_log_tail = log_tail
 | 
			
		||||
        self._monitor = None
 | 
			
		||||
 | 
			
		||||
@@ -32,7 +32,7 @@ class LogMonitoringEventHandler:
 | 
			
		||||
    def start(self):
 | 
			
		||||
        self._monitor = LogInotifyObserver(
 | 
			
		||||
            server_connector=self.server_connector,
 | 
			
		||||
            supervisor_uri=TFWENV.SUPERVISOR_HTTP_URI,
 | 
			
		||||
            supervisor_uri=self._supervisor_uri,
 | 
			
		||||
            process_name=self.process_name,
 | 
			
		||||
            log_tail=self._initial_log_tail
 | 
			
		||||
        )
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,6 @@
 | 
			
		||||
import logging
 | 
			
		||||
from xmlrpc.client import Fault as SupervisorFault
 | 
			
		||||
 | 
			
		||||
from tfw.config import TFWENV
 | 
			
		||||
from tfw.networking import Scope
 | 
			
		||||
from tfw.components import ProcessManager, LogManager
 | 
			
		||||
 | 
			
		||||
@@ -23,9 +22,9 @@ class ProcessManagingEventHandler(ProcessManager, LogManager):
 | 
			
		||||
    Commands available: start, stop, restart, readlog
 | 
			
		||||
    (the names are as self-documenting as it gets)
 | 
			
		||||
    """
 | 
			
		||||
    def __init__(self, log_tail=0):
 | 
			
		||||
        ProcessManager.__init__(self, TFWENV.SUPERVISOR_HTTP_URI)
 | 
			
		||||
        LogManager.__init__(self, TFWENV.SUPERVISOR_HTTP_URI)
 | 
			
		||||
    def __init__(self, *, supervisor_uri, log_tail=0):
 | 
			
		||||
        ProcessManager.__init__(self, supervisor_uri)
 | 
			
		||||
        LogManager.__init__(self, supervisor_uri)
 | 
			
		||||
        self.log_tail = log_tail
 | 
			
		||||
        self.commands = {
 | 
			
		||||
            'start': self.start_process,
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,6 @@
 | 
			
		||||
import logging
 | 
			
		||||
 | 
			
		||||
from tfw.components import BashMonitor, TerminadoMiniServer
 | 
			
		||||
from tfw.config import TFWENV
 | 
			
		||||
from tao.config import TAOENV
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
LOG = logging.getLogger(__name__)
 | 
			
		||||
@@ -19,19 +17,20 @@ class TerminalEventHandler:
 | 
			
		||||
    a command to be executed.
 | 
			
		||||
    The API of each command is documented in their respective handler.
 | 
			
		||||
    """
 | 
			
		||||
    def __init__(self):
 | 
			
		||||
    def __init__(self, *, port, user, workind_directory, histfile):
 | 
			
		||||
        """
 | 
			
		||||
        :param key: key this EventHandler listens to
 | 
			
		||||
        :param monitor: tfw.components.HistoryMonitor instance to read command history from
 | 
			
		||||
        """
 | 
			
		||||
        self.server_connector = None
 | 
			
		||||
        self._histfile = histfile
 | 
			
		||||
        self._historymonitor = None
 | 
			
		||||
        bash_as_user_cmd = ['sudo', '-u', TAOENV.USER, 'bash']
 | 
			
		||||
        bash_as_user_cmd = ['sudo', '-u', user, 'bash']
 | 
			
		||||
 | 
			
		||||
        self.terminado_server = TerminadoMiniServer(
 | 
			
		||||
            '/terminal',
 | 
			
		||||
            TFWENV.TERMINADO_PORT,
 | 
			
		||||
            TFWENV.TERMINADO_WD,
 | 
			
		||||
            port,
 | 
			
		||||
            workind_directory,
 | 
			
		||||
            bash_as_user_cmd
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
@@ -43,7 +42,7 @@ class TerminalEventHandler:
 | 
			
		||||
        self.terminado_server.listen()
 | 
			
		||||
 | 
			
		||||
    def start(self):
 | 
			
		||||
        self._historymonitor = BashMonitor(self.server_connector, TFWENV.HISTFILE)
 | 
			
		||||
        self._historymonitor = BashMonitor(self.server_connector, self._histfile)
 | 
			
		||||
        self._historymonitor.start()
 | 
			
		||||
 | 
			
		||||
    @property
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user