sp-hydra-veil-core/core/controllers/SystemStateController.py

63 lines
1.9 KiB
Python

from core.models.system.SystemState import SystemState
from core.models.enum_models import ProtocolChoice
# from core.controllers.ProfileController import ProfileController
from core.infrastructure.global_state import ProfileStateRepository
class SystemStateController:
@staticmethod
def get():
return SystemState.get()
@staticmethod
def exists():
return SystemState.exists()
@staticmethod
def create(profile_id: int, firewalled: bool, dns_set: bool, protocol: ProtocolChoice, process_id: int = None) -> SystemState:
current_state = SystemState(profile_id, firewalled, dns_set, protocol, process_id)
current_state.save()
# Sync to Repo
ProfileStateRepository().sync_system_state(current_state)
return current_state
@staticmethod
def update_or_create(system_state):
system_state.save()
# Sync to Repo
ProfileStateRepository().sync_system_state(system_state)
@staticmethod
def dissolve():
res = SystemState.dissolve()
# Sync to Repo: clear system ID
ProfileStateRepository().global_state.systemwide_profile_id = None
return res
# class SystemStateController:
# @staticmethod
# def get():
# return SystemState.get()
# @staticmethod
# def exists():
# return SystemState.exists()
# @staticmethod
# def create(profile_id: int, firewalled: bool, dns_set: bool, protocol: ProtocolChoice, process_id: int = None) -> SystemState:
# if process_id:
# current_state = SystemState(profile_id, firewalled, dns_set, protocol, process_id)
# else:
# current_state = SystemState(profile_id, firewalled, dns_set, protocol)
# current_state.save()
# return current_state
# @staticmethod
# def update_or_create(system_state):
# system_state.save()
# @staticmethod
# def dissolve():
# return SystemState.dissolve()