⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.144
Server IP:
157.245.143.252
Server:
Linux www 6.11.0-9-generic #9-Ubuntu SMP PREEMPT_DYNAMIC Mon Oct 14 13:19:59 UTC 2024 x86_64
Server Software:
nginx/1.26.0
PHP Version:
8.3.11
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
lib
/
python3
/
dist-packages
/
uaclient
/
api
/
View File Name :
__init__.py
import abc import logging from typing import Optional # setup null handler for all API endpoints logging.getLogger("ubuntupro").addHandler(logging.NullHandler()) class AbstractProgress(metaclass=abc.ABCMeta): @abc.abstractmethod def progress( self, *, total_steps: int, done_steps: int, previous_step_message: Optional[str], current_step_message: Optional[str] ): pass class NullProgress(AbstractProgress): def progress( self, *, total_steps: int, done_steps: int, previous_step_message: Optional[str], current_step_message: Optional[str] ): pass class ProgressWrapper: def __init__(self, progress_object: Optional[AbstractProgress] = None): if progress_object is not None: self.progress_object = progress_object else: self.progress_object = NullProgress() self.done_steps = 0 self.total_steps = -1 self.previous_step_message = None # type: Optional[str] def progress(self, message: str): self.progress_object.progress( total_steps=self.total_steps, done_steps=self.done_steps, previous_step_message=self.previous_step_message, current_step_message=message, ) self.previous_step_message = message self.done_steps += 1 def finish(self): self.done_steps = self.total_steps self.progress_object.progress( total_steps=self.total_steps, done_steps=self.done_steps, previous_step_message=self.previous_step_message, current_step_message=None, ) def emit(self, event: str, payload=None): """ This is our secret event system. We use it internally to insert prompts and extra messages in the middle of operations at certain points. We don't consider this stable enough to expose to the public API. """ if hasattr(self.progress_object, "_on_event"): self.progress_object._on_event(event, payload) def is_interactive(self) -> bool: if hasattr(self.progress_object, "is_interactive"): return self.progress_object.is_interactive else: return False