def main(): fields = dict(device_hostname=dict(type='str', required=True), device_username=dict(type='str', required=False, default='admin'), device_password=dict(type='str', required=True, no_log=True), device_sudo_password=dict(type='str', required=False, no_log=True), device_new_password=dict(type='str', required=False, no_log=True), device_ip=dict(type='str', required=False), device_netmask=dict(type='str', required=False), device_gateway=dict(type='str', required=False), device_model=dict(type='str', required=False, choices=FtdModel.supported_models()), dns_server=dict(type='str', required=False), search_domains=dict(type='str', required=False, default='cisco.com'), console_ip=dict(type='str', required=True), console_port=dict(type='str', required=True), console_username=dict(type='str', required=True), console_password=dict(type='str', required=True, no_log=True), rommon_file_location=dict(type='str', required=True), image_file_location=dict(type='str', required=True), image_version=dict(type='str', required=True), force_install=dict(type='bool', required=False, default=False)) module = AnsibleModule(argument_spec=fields) assert_kick_is_installed(module) use_local_connection = module._socket_path is None if use_local_connection: check_required_params_for_local_connection(module, module.params) platform_model = module.params['device_model'] check_that_model_is_supported(module, platform_model) else: connection = Connection(module._socket_path) resource = BaseConfigurationResource(connection, module.check_mode) system_info = get_system_info(resource) platform_model = module.params['device_model'] or system_info[ 'platformModel'] check_that_model_is_supported(module, platform_model) check_that_update_is_needed(module, system_info) check_management_and_dns_params(resource, module.params) ftd_platform = FtdPlatformFactory.create(platform_model, module.params) ftd_platform.install_ftd_image(module.params) module.exit_json( changed=True, msg='Successfully installed FTD image %s on the firewall device.' % module.params["image_version"])
def test_has_value_should_return_false_for_non_existing_models(self): assert 'nonExistingModel' not in FtdModel.supported_models() assert None not in FtdModel.supported_models()
def test_has_value_should_return_true_for_existing_models(self): assert FtdModel.FTD_2120 in FtdModel.supported_models() assert FtdModel.FTD_ASA5516_X in FtdModel.supported_models()
def check_that_model_is_supported(module, platform_model): if platform_model not in FtdModel.supported_models(): module.fail_json(msg="Platform model '%s' is not supported by this module." % platform_model)