sandbox/drawings/cisco_ftd/create_strategy.puml

84 lines
No EOL
2.7 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

@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 {
+ ip: str
+ manufacturer: NOT NEEDED - SET CISCO
+ login: str
+ password: str
+ port: int
+ device_name: str
}
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_create_strategy: CiscoCreateStrategyABC
+ create_cisco_instance(cisco_create_data: Dict)
+ check_authentication(cisco_connect_data: Dict)
}
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