�
�Udac @ s� d d l m Z y* d d l m Z d d l m Z e Z Wn e k
rS e Z n Xd � Z
d d d � � YZ d e f d � � YZ
d e f d
� � YZ d e f d � � YZ d
e f d � � YZ d S( i����( t urlparse( t Ftd5500x( t Kpc C s t s | j d d � n d S( Nt msgs� Firepower-kickstart library is required to run this module. Please, install the library with `pip install firepower-kickstart` command and run the playbook again.( t HAS_KICKt fail_json( t module( ( sK /usr/lib/python2.7/site-packages/ansible/module_utils/network/ftd/device.pyt assert_kick_is_installed s t FtdModelc B sA e Z d Z d Z d Z d Z d Z d Z d Z e d � � Z
RS( s Cisco ASA5506-X Threat Defenses Cisco ASA5508-X Threat Defenses Cisco ASA5516-X Threat Defenses# Cisco Firepower 2110 Threat Defenses# Cisco Firepower 2120 Threat Defenses# Cisco Firepower 2130 Threat Defenses# Cisco Firepower 2140 Threat Defensec C s5 g t | � D]$ } | j d � r
t | | � ^ q
S( Nt FTD_( t dirt
startswitht getattr( t clst item( ( sK /usr/lib/python2.7/site-packages/ansible/module_utils/network/ftd/device.pyt supported_models/ s ( t __name__t
__module__t
FTD_ASA5506_Xt
FTD_ASA5508_Xt
FTD_ASA5516_Xt FTD_2110t FTD_2120t FTD_2130t FTD_2140t classmethodR ( ( ( sK /usr/lib/python2.7/site-packages/ansible/module_utils/network/ftd/device.pyR % s t FtdPlatformFactoryc B s e Z e d � � Z RS( c C sD x- t j � D] } | j | � r
| | � Sq
Wt d | � � d S( Ns/ FTD model '%s' is not supported by this module.( t AbstractFtdPlatformt __subclasses__t supports_ftd_modelt
ValueError( t modelt
module_paramsR
( ( sK /usr/lib/python2.7/site-packages/ansible/module_utils/network/ftd/device.pyt create6 s ( R R t staticmethodR! ( ( ( sK /usr/lib/python2.7/site-packages/ansible/module_utils/network/ftd/device.pyR 4 s R c B s5 e Z g Z d � Z e d � � Z e d � � Z RS( c C s t d � � d S( Ns+ The method should be overridden in subclass( t NotImplementedError( t selft params( ( sK /usr/lib/python2.7/site-packages/ansible/module_utils/network/ftd/device.pyt install_ftd_imageA s c C s
| | j k S( N( t PLATFORM_MODELS( R
R ( ( sK /usr/lib/python2.7/site-packages/ansible/module_utils/network/ftd/device.pyR D s c C s: t | � } | j d k r* t d � � n | j | j f S( Nt tftpsX The ROMMON image must be downloaded from TFTP server, other protocols are not supported.( R t schemeR t netloct path( t rommon_file_locationt
rommon_url( ( sK /usr/lib/python2.7/site-packages/ansible/module_utils/network/ftd/device.pyt parse_rommon_file_locationH s ( R R R'