Updated Cisco FTD diagrams

This commit is contained in:
pro100ton 2024-11-25 18:14:05 +03:00
parent 1a3bc14a70
commit d87f78d3b0
18 changed files with 124 additions and 40 deletions

53
cisco/unified_crud.py Normal file
View file

@ -0,0 +1,53 @@
s_1 = [
"user",
"password",
"enable_password",
"id",
"status",
"ip",
"name",
"manufacturer",
"port",
"user",
"password",
"description",
"cisco_type",
"connection_type",
"enable_password",
"rsa_limit",
"last_status_change",
"protocol",
"administrators",
"group",
"status",
"manufacturer",
"last_status_change",
"connection_type",
]
s_2 = [
"username",
"password",
"id",
"status",
"ip",
"name",
"manufacturer",
"port",
"username",
"password",
"description",
"connection_type",
"last_status_change",
"protocol",
"administrators",
"group",
"status",
"manufacturer",
"last_status_change",
"connection_type",
]
print("\n".join(set(s_1 + s_2)))
print([i for i in range(0,20)])

View file

@ -1,22 +1,22 @@
@startuml @startuml
struct CiscoCreateData { ' struct CiscoCreateData {
+ ip: str ' + ip: str
+ login: str ' + login: str
+ password: str ' + password: str
+ port: str = DEFAULT_SSH_PORT ' + port: str = DEFAULT_SSH_PORT
+ device_name: str ' + device_name: str
+ device_protocol: str ' + device_protocol: str
+ manufacturer: str = CISCO_ASA_MANUFACTURER ' + manufacturer: str = CISCO_ASA_MANUFACTURER
} ' }
struct CiscoAuthenticationCheckDataPyModel { ' struct CiscoAuthenticationCheckDataPyModel {
+ ip: str ' device_name : str
+ manufacturer: NOT NEEDED - SET CISCO ' ip : str
+ login: str ' login : str
+ password: str ' manufacturer : str
+ port: int ' password : str
+ device_name: str ' port : int
} ' }
package CiscoApp { package CiscoApp {
@ -61,9 +61,13 @@ package CiscoApp {
CiscoASAUnifiedStrategy ..|> CiscoUnifiedStrategyABC CiscoASAUnifiedStrategy ..|> CiscoUnifiedStrategyABC
class CiscoUnifiedManager { class CiscoUnifiedManager {
+ cisco_create_strategy: CiscoCreateStrategyABC + _cisco_strategy : Optional[CiscoUnifiedStrategyABC]
+ create_cisco_instance(cisco_create_data: Dict) + cisco_strategy
+ check_authentication(cisco_connect_data: Dict) + __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 CiscoUnifiedStrategyABC --* CiscoUnifiedManager
CiscoUnifiedManager --* .PingServices.FirewallAuthStatusService CiscoUnifiedManager --* .PingServices.FirewallAuthStatusService

View file

@ -4,14 +4,16 @@
!startsub FTDBackendService !startsub FTDBackendService
class CiscoFTDBackendService { class CiscoFTDBackendService {
+ ftd_instance: CiscoFTD + CLASS_NAME : str
+ set_ftd_status(status_to_set: str) -> CiscoFTD + ftd_instance : CiscoFTD
+ form_cache_prefix() -> str + __init__(ftd_instance: CiscoFTD) -> None
+ flush_cache() # _check_connection(check_connection_data: Dict) -> None
+ set_cache_update_mutex() + flush_cache() -> None
+ get_cache_update_mutex() -> str + form_cache_prefix() -> str
+ free_cache_update_mutex() + free_cache_update_mutex() -> None
# _check_connection(**kwargs) + get_cache_update_mutex() -> str
+ set_cache_update_mutex() -> None
+ set_ftd_status(status_to_set: str) -> str
} }
!endsub !endsub

View file

@ -9,22 +9,24 @@ interface CiscoFTDFactoryInterfaces {
!startsub CISCOFTDSSHOPERATIONFACTORY !startsub CISCOFTDSSHOPERATIONFACTORY
class CiscoFTDSSHOperationFactory { class CiscoFTDSSHOperationFactory {
+ CLASS_NAME : str
+ ftd_instance: CiscoFTD + ftd_instance: CiscoFTD
+ request_data: Dict + request_data : Optional[Dict]
+ perform_request() + __init__(ftd_instance: CiscoFTD, request_data: Optional[Dict]) -> None
+ @property\nftd_connect_data() -> Dict
# _parse_client_data(client_data: Dict) -> Dict # _parse_client_data(client_data: Dict) -> Dict
# _parse_ftd_response(ftd_response: str) -> Dict # _parse_ftd_response(ftd_response: CiscoFTDSSHOperationCommandsListPyModel) -> Dict
# _prepare_operation() -> CiscoFTDSSHOperation + perform_request() -> Dict
+ prepare_operation() -> CiscoFTDSSHOperation
} }
!endsub !endsub
!startsub CISCOFTDCACHEOPERATIONFACTORY !startsub CISCOFTDCACHEOPERATIONFACTORY
class CiscoFTDCacheOperationFactory { class CiscoFTDCacheOperationFactory {
+ ftd_instance: CiscoFTD + ftd_instance
+ request_data: Dict + request_data : Optional[Dict]
+ perform_request() + __init__(ftd_instance: CiscoFTD, request_data: Optional[Dict]) -> None
# _get_config() -> str # _get_config() -> str
+ perform_request() -> List[Dict]
} }
!endsub !endsub

View file

@ -35,4 +35,24 @@ struct CiscoFTDCreateDataModel <<(P,#fc0373) Pydantic Model>> {
CiscoFTDSSHOperationCommandModel ..> CiscoFTDSSHOperationCommandsListModel CiscoFTDSSHOperationCommandModel ..> CiscoFTDSSHOperationCommandsListModel
class CiscoUnifiedCreateSerializer {
+ administrators
+ cisco_type
+ connection_type
+ description
+ device_name
+ enable_password
+ group
+ ip
+ last_status_change
+ manufacturer
+ name
+ password
+ port
+ protocol
+ rsa_limit
+ status
+ user
+ username
}
@enduml @enduml

View file

@ -4,10 +4,13 @@
!includesub ./ftd_pydantic.puml!CISCO_FTD_PYDANTIC_CHECK_CONNECTION_DATA !includesub ./ftd_pydantic.puml!CISCO_FTD_PYDANTIC_CHECK_CONNECTION_DATA
class CiscoFTDSSHOperation { class CiscoFTDSSHOperation {
+ connect_data: Dict + cisco_connect_data
+ commands: Dict + commands_list
+ request_data: Dict + custom_performer : Optional[Callable]
+ perform_operation() + request_data : Optional[Dict]
+ __init__(cisco_connect_data: Dict,\n commands_list: Dict[str, List[Dict]],\n request_data: Optional[Dict],\n custom_performer: Optional[Callable]\n) -> None
# _prepare_ftd_session() -> CiscoFtdSSH
+ perform_operation() -> CiscoFTDSSHOperationCommandsListPyModel
} }
CiscoFTDSSHOperation --> CiscoFTDAuthenticationModel CiscoFTDSSHOperation --> CiscoFTDAuthenticationModel