88 lines
No EOL
3 KiB
Text
88 lines
No EOL
3 KiB
Text
@startuml
|
||
' struct CiscoCreateData {
|
||
' + ip: str
|
||
' + login: str
|
||
' + password: str
|
||
' + port: str = DEFAULT_SSH_PORT
|
||
' + device_name: str
|
||
' + device_protocol: str
|
||
' + manufacturer: str = CISCO_ASA_MANUFACTURER
|
||
' }
|
||
|
||
' struct CiscoAuthenticationCheckDataPyModel {
|
||
' device_name : str
|
||
' ip : str
|
||
' login : str
|
||
' manufacturer : str
|
||
' password : str
|
||
' port : int
|
||
' }
|
||
|
||
|
||
package CiscoApp {
|
||
class AsaBackendService {
|
||
+ {static} create_cisco_asa_insatnce(\n name: str,\n ip: str,\n user: str,\n password: str,\n enable_password: str,\n connection_type: Optional[str] = CONNECTION_CLI_TYPE,\n protocol: Optional[str] = CONNECTION_SSH_PROTOCOL,\n rsa_limit: Optional[int] = 0,\n port: Optional[str] = DEFAULT_ASA_PORT,\n description: Optional[str] = "",\n administrators: Optional[list] = None\n)
|
||
}
|
||
AsaBackendService --> CiscoASAUnifiedStrategy : "Использование статического\nметода create_cisco_asa_instance"
|
||
|
||
class CiscoFTDRepository {
|
||
+ {static} create_instance(create_data: Dict)
|
||
}
|
||
CiscoFTDRepository --> CiscoFTDUnifiedStrategy : "Использование статического\nметода create_instance"
|
||
|
||
class CiscoFTDCreateDataModel {
|
||
name: str
|
||
ip: str
|
||
username: str
|
||
password: str
|
||
connection_type: str = CONNECTION_CLI_TYPE
|
||
port: int = DEFAULT_FTD_PORT
|
||
description: str = ""
|
||
administrators: List[int] = []
|
||
}
|
||
CiscoFTDCreateDataModel --> CiscoFTDRepository : "Pydantic model\nдля валидации create_data"
|
||
|
||
abstract CiscoUnifiedStrategyABC{
|
||
+ create_instance(cisco_create_data: Dict)
|
||
+ check_authentication_status(cisco_connect_data: Dict)
|
||
}
|
||
|
||
|
||
class CiscoFTDUnifiedStrategy {
|
||
+ create_instance(cisco_create_data: Dict)
|
||
+ check_authentication_status(cisco_connect_data: Dict)
|
||
}
|
||
CiscoFTDUnifiedStrategy ..|> CiscoUnifiedStrategyABC
|
||
|
||
class CiscoASAUnifiedStrategy {
|
||
+ create_instance(cisco_create_data: Dict)
|
||
+ check_authentication_status(cisco_connect_data: Dict)
|
||
}
|
||
CiscoASAUnifiedStrategy ..|> CiscoUnifiedStrategyABC
|
||
|
||
class CiscoUnifiedManager {
|
||
+ _cisco_strategy : Optional[CiscoUnifiedStrategyABC]
|
||
+ cisco_strategy
|
||
+ __init__(cisco_strategy: Optional[CiscoUnifiedStrategyABC]) -> None
|
||
# _check_strategy_existance()
|
||
+ check_authentiaction(cisco_connect_data: Dict) -> bool
|
||
+ create_cisco_instance(cisco_create_data: Dict) -> Union[Cisco, CiscoFTD]
|
||
+ set_strategy_by_device_name(device_name: str)
|
||
}
|
||
CiscoUnifiedStrategyABC --* CiscoUnifiedManager
|
||
CiscoUnifiedManager --* .PingServices.FirewallAuthStatusService
|
||
}
|
||
|
||
package PingServices {
|
||
class FirewallAuthStatusService {
|
||
+ manufacturer: str
|
||
+ ip: str
|
||
+ login: str
|
||
+ password: str
|
||
+ port: str
|
||
+ device_name: Optional[str]
|
||
+ device_protocol: Optional[str]
|
||
}
|
||
}
|
||
|
||
@enduml |