#1947: refactor am->rm to align with refactor of ActionManager->RequestManager
This commit is contained in:
@@ -173,9 +173,9 @@ class SimComponent(BaseModel):
|
|||||||
|
|
||||||
class WebBrowser(Application):
|
class WebBrowser(Application):
|
||||||
def _init_request_manager(self) -> RequestManager:
|
def _init_request_manager(self) -> RequestManager:
|
||||||
am = super()._init_request_manager() # all requests generic to any Application get initialised
|
rm = super()._init_request_manager() # all requests generic to any Application get initialised
|
||||||
am.add_request(...) # initialise any requests specific to the web browser
|
rm.add_request(...) # initialise any requests specific to the web browser
|
||||||
return am
|
return rm
|
||||||
|
|
||||||
:return: Request manager object belonging to this sim component.
|
:return: Request manager object belonging to this sim component.
|
||||||
:rtype: RequestManager
|
:rtype: RequestManager
|
||||||
|
|||||||
@@ -80,17 +80,17 @@ class DomainController(SimComponent):
|
|||||||
super().__init__(**kwargs)
|
super().__init__(**kwargs)
|
||||||
|
|
||||||
def _init_request_manager(self) -> RequestManager:
|
def _init_request_manager(self) -> RequestManager:
|
||||||
am = super()._init_request_manager()
|
rm = super()._init_request_manager()
|
||||||
# Action 'account' matches requests like:
|
# Action 'account' matches requests like:
|
||||||
# ['account', '<account-uuid>', *account_action]
|
# ['account', '<account-uuid>', *account_action]
|
||||||
am.add_request(
|
rm.add_request(
|
||||||
"account",
|
"account",
|
||||||
RequestType(
|
RequestType(
|
||||||
func=lambda request, context: self.accounts[request.pop(0)].apply_request(request, context),
|
func=lambda request, context: self.accounts[request.pop(0)].apply_request(request, context),
|
||||||
validator=GroupMembershipValidator(allowed_groups=[AccountGroup.DOMAIN_ADMIN]),
|
validator=GroupMembershipValidator(allowed_groups=[AccountGroup.DOMAIN_ADMIN]),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
return am
|
return rm
|
||||||
|
|
||||||
def describe_state(self) -> Dict:
|
def describe_state(self) -> Dict:
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -105,14 +105,14 @@ class FileSystemItemABC(SimComponent):
|
|||||||
return convert_size(self.size)
|
return convert_size(self.size)
|
||||||
|
|
||||||
def _init_request_manager(self) -> RequestManager:
|
def _init_request_manager(self) -> RequestManager:
|
||||||
am = super()._init_request_manager()
|
rm = super()._init_request_manager()
|
||||||
am.add_request("scan", RequestType(func=lambda request, context: self.scan())) # TODO implement request
|
rm.add_request("scan", RequestType(func=lambda request, context: self.scan()))
|
||||||
am.add_request("checkhash", RequestType(func=lambda request, context: self.checkhash()))
|
rm.add_request("checkhash", RequestType(func=lambda request, context: self.checkhash()))
|
||||||
am.add_request("delete", RequestType(func=lambda request, context: ...)) # TODO implement request
|
rm.add_request("delete", RequestType(func=lambda request, context: self.delete()))
|
||||||
am.add_request("restore", RequestType(func=lambda request, context: ...)) # TODO implement request
|
rm.add_request("restore", RequestType(func=lambda request, context: self.restore()))
|
||||||
am.add_request("repair", RequestType(func=lambda request, context: self.repair()))
|
rm.add_request("repair", RequestType(func=lambda request, context: self.repair()))
|
||||||
am.add_request("corrupt", RequestType(func=lambda request, context: self.corrupt()))
|
rm.add_request("corrupt", RequestType(func=lambda request, context: self.corrupt()))
|
||||||
return am
|
return rm
|
||||||
|
|
||||||
def scan(self) -> None:
|
def scan(self) -> None:
|
||||||
"""Update the FileSystemItem states."""
|
"""Update the FileSystemItem states."""
|
||||||
@@ -158,15 +158,15 @@ class FileSystem(SimComponent):
|
|||||||
self.create_folder("root")
|
self.create_folder("root")
|
||||||
|
|
||||||
def _init_request_manager(self) -> RequestManager:
|
def _init_request_manager(self) -> RequestManager:
|
||||||
am = super()._init_request_manager()
|
rm = super()._init_request_manager()
|
||||||
|
|
||||||
self._folder_request_manager = RequestManager()
|
self._folder_request_manager = RequestManager()
|
||||||
am.add_request("folder", RequestType(func=self._folder_request_manager))
|
rm.add_request("folder", RequestType(func=self._folder_request_manager))
|
||||||
|
|
||||||
self._file_request_manager = RequestManager()
|
self._file_request_manager = RequestManager()
|
||||||
am.add_request("file", RequestType(func=self._file_request_manager))
|
rm.add_request("file", RequestType(func=self._file_request_manager))
|
||||||
|
|
||||||
return am
|
return rm
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def size(self) -> int:
|
def size(self) -> int:
|
||||||
|
|||||||
@@ -44,13 +44,13 @@ class Network(SimComponent):
|
|||||||
self._nx_graph = MultiGraph()
|
self._nx_graph = MultiGraph()
|
||||||
|
|
||||||
def _init_request_manager(self) -> RequestManager:
|
def _init_request_manager(self) -> RequestManager:
|
||||||
am = super()._init_request_manager()
|
rm = super()._init_request_manager()
|
||||||
self._node_request_manager = RequestManager()
|
self._node_request_manager = RequestManager()
|
||||||
am.add_request(
|
rm.add_request(
|
||||||
"node",
|
"node",
|
||||||
RequestType(func=self._node_request_manager),
|
RequestType(func=self._node_request_manager),
|
||||||
)
|
)
|
||||||
return am
|
return rm
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def routers(self) -> List[Router]:
|
def routers(self) -> List[Router]:
|
||||||
|
|||||||
@@ -145,12 +145,12 @@ class NIC(SimComponent):
|
|||||||
return state
|
return state
|
||||||
|
|
||||||
def _init_request_manager(self) -> RequestManager:
|
def _init_request_manager(self) -> RequestManager:
|
||||||
am = super()._init_request_manager()
|
rm = super()._init_request_manager()
|
||||||
|
|
||||||
am.add_request("enable", RequestType(func=lambda request, context: self.enable()))
|
rm.add_request("enable", RequestType(func=lambda request, context: self.enable()))
|
||||||
am.add_request("disable", RequestType(func=lambda request, context: self.disable()))
|
rm.add_request("disable", RequestType(func=lambda request, context: self.disable()))
|
||||||
|
|
||||||
return am
|
return rm
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def ip_network(self) -> IPv4Network:
|
def ip_network(self) -> IPv4Network:
|
||||||
@@ -951,30 +951,30 @@ class Node(SimComponent):
|
|||||||
def _init_request_manager(self) -> RequestManager:
|
def _init_request_manager(self) -> RequestManager:
|
||||||
# TODO: I see that this code is really confusing and hard to read right now... I think some of these things will
|
# TODO: I see that this code is really confusing and hard to read right now... I think some of these things will
|
||||||
# need a better name and better documentation.
|
# need a better name and better documentation.
|
||||||
am = super()._init_request_manager()
|
rm = super()._init_request_manager()
|
||||||
# since there are potentially many services, create an request manager that can map service name
|
# since there are potentially many services, create an request manager that can map service name
|
||||||
self._service_request_manager = RequestManager()
|
self._service_request_manager = RequestManager()
|
||||||
am.add_request("service", RequestType(func=self._service_request_manager))
|
rm.add_request("service", RequestType(func=self._service_request_manager))
|
||||||
self._nic_request_manager = RequestManager()
|
self._nic_request_manager = RequestManager()
|
||||||
am.add_request("nic", RequestType(func=self._nic_request_manager))
|
rm.add_request("nic", RequestType(func=self._nic_request_manager))
|
||||||
|
|
||||||
am.add_request("file_system", RequestType(func=self.file_system._request_manager))
|
rm.add_request("file_system", RequestType(func=self.file_system._request_manager))
|
||||||
|
|
||||||
# currently we don't have any applications nor processes, so these will be empty
|
# currently we don't have any applications nor processes, so these will be empty
|
||||||
self._process_request_manager = RequestManager()
|
self._process_request_manager = RequestManager()
|
||||||
am.add_request("process", RequestType(func=self._process_request_manager))
|
rm.add_request("process", RequestType(func=self._process_request_manager))
|
||||||
self._application_request_manager = RequestManager()
|
self._application_request_manager = RequestManager()
|
||||||
am.add_request("application", RequestType(func=self._application_request_manager))
|
rm.add_request("application", RequestType(func=self._application_request_manager))
|
||||||
|
|
||||||
am.add_request("scan", RequestType(func=lambda request, context: ...)) # TODO implement OS scan
|
rm.add_request("scan", RequestType(func=lambda request, context: ...)) # TODO implement OS scan
|
||||||
|
|
||||||
am.add_request("shutdown", RequestType(func=lambda request, context: self.power_off()))
|
rm.add_request("shutdown", RequestType(func=lambda request, context: self.power_off()))
|
||||||
am.add_request("startup", RequestType(func=lambda request, context: self.power_on()))
|
rm.add_request("startup", RequestType(func=lambda request, context: self.power_on()))
|
||||||
am.add_request("reset", RequestType(func=lambda request, context: ...)) # TODO implement node reset
|
rm.add_request("reset", RequestType(func=lambda request, context: ...)) # TODO implement node reset
|
||||||
am.add_request("logon", RequestType(func=lambda request, context: ...)) # TODO implement logon request
|
rm.add_request("logon", RequestType(func=lambda request, context: ...)) # TODO implement logon request
|
||||||
am.add_request("logoff", RequestType(func=lambda request, context: ...)) # TODO implement logoff request
|
rm.add_request("logoff", RequestType(func=lambda request, context: ...)) # TODO implement logoff request
|
||||||
|
|
||||||
return am
|
return rm
|
||||||
|
|
||||||
def _install_system_software(self):
|
def _install_system_software(self):
|
||||||
"""Install System Software - software that is usually provided with the OS."""
|
"""Install System Software - software that is usually provided with the OS."""
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ class AccessControlList(SimComponent):
|
|||||||
self._acl = [None] * (self.max_acl_rules - 1)
|
self._acl = [None] * (self.max_acl_rules - 1)
|
||||||
|
|
||||||
def _init_request_manager(self) -> RequestManager:
|
def _init_request_manager(self) -> RequestManager:
|
||||||
am = super()._init_request_manager()
|
rm = super()._init_request_manager()
|
||||||
|
|
||||||
# When the request reaches this action, it should now contain solely positional args for the 'add_rule' action.
|
# When the request reaches this action, it should now contain solely positional args for the 'add_rule' action.
|
||||||
# POSITIONAL ARGUMENTS:
|
# POSITIONAL ARGUMENTS:
|
||||||
@@ -99,7 +99,7 @@ class AccessControlList(SimComponent):
|
|||||||
# 4: destination ip address (str castable to IPV4Address (e.g. '10.10.1.2'))
|
# 4: destination ip address (str castable to IPV4Address (e.g. '10.10.1.2'))
|
||||||
# 5: destination port (str name of a Port (e.g. "HTTP"))
|
# 5: destination port (str name of a Port (e.g. "HTTP"))
|
||||||
# 6: position (int)
|
# 6: position (int)
|
||||||
am.add_request(
|
rm.add_request(
|
||||||
"add_rule",
|
"add_rule",
|
||||||
RequestType(
|
RequestType(
|
||||||
func=lambda request, context: self.add_rule(
|
func=lambda request, context: self.add_rule(
|
||||||
@@ -114,8 +114,8 @@ class AccessControlList(SimComponent):
|
|||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
am.add_request("remove_rule", RequestType(func=lambda request, context: self.remove_rule(int(request[0]))))
|
rm.add_request("remove_rule", RequestType(func=lambda request, context: self.remove_rule(int(request[0]))))
|
||||||
return am
|
return rm
|
||||||
|
|
||||||
def describe_state(self) -> Dict:
|
def describe_state(self) -> Dict:
|
||||||
"""
|
"""
|
||||||
@@ -627,9 +627,9 @@ class Router(Node):
|
|||||||
self.icmp.arp = self.arp
|
self.icmp.arp = self.arp
|
||||||
|
|
||||||
def _init_request_manager(self) -> RequestManager:
|
def _init_request_manager(self) -> RequestManager:
|
||||||
am = super()._init_request_manager()
|
rm = super()._init_request_manager()
|
||||||
am.add_request("acl", RequestType(func=self.acl._request_manager))
|
rm.add_request("acl", RequestType(func=self.acl._request_manager))
|
||||||
return am
|
return rm
|
||||||
|
|
||||||
def _get_port_of_nic(self, target_nic: NIC) -> Optional[int]:
|
def _get_port_of_nic(self, target_nic: NIC) -> Optional[int]:
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -22,12 +22,12 @@ class Simulation(SimComponent):
|
|||||||
super().__init__(**kwargs)
|
super().__init__(**kwargs)
|
||||||
|
|
||||||
def _init_request_manager(self) -> RequestManager:
|
def _init_request_manager(self) -> RequestManager:
|
||||||
am = super()._init_request_manager()
|
rm = super()._init_request_manager()
|
||||||
# pass through network requests to the network objects
|
# pass through network requests to the network objects
|
||||||
am.add_request("network", RequestType(func=self.network._request_manager))
|
rm.add_request("network", RequestType(func=self.network._request_manager))
|
||||||
# pass through domain requests to the domain object
|
# pass through domain requests to the domain object
|
||||||
am.add_request("domain", RequestType(func=self.domain._request_manager))
|
rm.add_request("domain", RequestType(func=self.domain._request_manager))
|
||||||
return am
|
return rm
|
||||||
|
|
||||||
def describe_state(self) -> Dict:
|
def describe_state(self) -> Dict:
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -44,16 +44,16 @@ class Service(IOSoftware):
|
|||||||
"If currently restarting, how many timesteps remain until the restart is finished."
|
"If currently restarting, how many timesteps remain until the restart is finished."
|
||||||
|
|
||||||
def _init_request_manager(self) -> RequestManager:
|
def _init_request_manager(self) -> RequestManager:
|
||||||
am = super()._init_request_manager()
|
rm = super()._init_request_manager()
|
||||||
am.add_request("scan", RequestType(func=lambda request, context: self.scan()))
|
rm.add_request("scan", RequestType(func=lambda request, context: self.scan()))
|
||||||
am.add_request("stop", RequestType(func=lambda request, context: self.stop()))
|
rm.add_request("stop", RequestType(func=lambda request, context: self.stop()))
|
||||||
am.add_request("start", RequestType(func=lambda request, context: self.start()))
|
rm.add_request("start", RequestType(func=lambda request, context: self.start()))
|
||||||
am.add_request("pause", RequestType(func=lambda request, context: self.pause()))
|
rm.add_request("pause", RequestType(func=lambda request, context: self.pause()))
|
||||||
am.add_request("resume", RequestType(func=lambda request, context: self.resume()))
|
rm.add_request("resume", RequestType(func=lambda request, context: self.resume()))
|
||||||
am.add_request("restart", RequestType(func=lambda request, context: self.restart()))
|
rm.add_request("restart", RequestType(func=lambda request, context: self.restart()))
|
||||||
am.add_request("disable", RequestType(func=lambda request, context: self.disable()))
|
rm.add_request("disable", RequestType(func=lambda request, context: self.disable()))
|
||||||
am.add_request("enable", RequestType(func=lambda request, context: self.enable()))
|
rm.add_request("enable", RequestType(func=lambda request, context: self.enable()))
|
||||||
return am
|
return rm
|
||||||
|
|
||||||
def describe_state(self) -> Dict:
|
def describe_state(self) -> Dict:
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -88,15 +88,15 @@ class Software(SimComponent):
|
|||||||
"The folder on the file system the Software uses."
|
"The folder on the file system the Software uses."
|
||||||
|
|
||||||
def _init_request_manager(self) -> RequestManager:
|
def _init_request_manager(self) -> RequestManager:
|
||||||
am = super()._init_request_manager()
|
rm = super()._init_request_manager()
|
||||||
am.add_request(
|
rm.add_request(
|
||||||
"compromise",
|
"compromise",
|
||||||
RequestType(
|
RequestType(
|
||||||
func=lambda request, context: self.set_health_state(SoftwareHealthState.COMPROMISED),
|
func=lambda request, context: self.set_health_state(SoftwareHealthState.COMPROMISED),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
am.add_request("scan", RequestType(func=lambda request, context: self.scan()))
|
rm.add_request("scan", RequestType(func=lambda request, context: self.scan()))
|
||||||
return am
|
return rm
|
||||||
|
|
||||||
def _get_session_details(self, session_id: str) -> Session:
|
def _get_session_details(self, session_id: str) -> Session:
|
||||||
"""
|
"""
|
||||||
|
|||||||
Reference in New Issue
Block a user