summaryrefslogtreecommitdiff
path: root/lib/ansible/modules/network/ftd/ftd_file_download.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ansible/modules/network/ftd/ftd_file_download.py')
-rw-r--r--lib/ansible/modules/network/ftd/ftd_file_download.py132
1 files changed, 0 insertions, 132 deletions
diff --git a/lib/ansible/modules/network/ftd/ftd_file_download.py b/lib/ansible/modules/network/ftd/ftd_file_download.py
deleted file mode 100644
index d89e6899ac..0000000000
--- a/lib/ansible/modules/network/ftd/ftd_file_download.py
+++ /dev/null
@@ -1,132 +0,0 @@
-#!/usr/bin/python
-
-# Copyright (c) 2018 Cisco and/or its affiliates.
-#
-# This file is part of Ansible
-#
-# Ansible is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# Ansible is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
-#
-
-from __future__ import absolute_import, division, print_function
-__metaclass__ = type
-
-
-ANSIBLE_METADATA = {'metadata_version': '1.1',
- 'status': ['preview'],
- 'supported_by': 'community'}
-
-DOCUMENTATION = """
----
-module: ftd_file_download
-short_description: Downloads files from Cisco FTD devices over HTTP(S)
-description:
- - Downloads files from Cisco FTD devices including pending changes, disk files, certificates,
- troubleshoot reports, and backups.
-version_added: "2.7"
-author: "Cisco Systems, Inc. (@annikulin)"
-options:
- operation:
- description:
- - The name of the operation to execute.
- - Only operations that return a file can be used in this module.
- required: true
- type: str
- path_params:
- description:
- - Key-value pairs that should be sent as path parameters in a REST API call.
- type: dict
- destination:
- description:
- - Absolute path of where to download the file to.
- - If destination is a directory, the module uses a filename from 'Content-Disposition' header specified by
- the server.
- required: true
- type: path
-"""
-
-EXAMPLES = """
-- name: Download pending changes
- ftd_file_download:
- operation: 'getdownload'
- path_params:
- objId: 'default'
- destination: /tmp/
-"""
-
-RETURN = """
-msg:
- description: The error message describing why the module failed.
- returned: error
- type: str
-"""
-from ansible.module_utils.basic import AnsibleModule
-from ansible.module_utils.connection import Connection
-from ansible.module_utils.network.ftd.common import FtdServerError, HTTPMethod
-from ansible.module_utils.network.ftd.fdm_swagger_client import OperationField, ValidationError, FILE_MODEL_NAME
-
-
-def is_download_operation(op_spec):
- return op_spec[OperationField.METHOD] == HTTPMethod.GET and op_spec[OperationField.MODEL_NAME] == FILE_MODEL_NAME
-
-
-def validate_params(connection, op_name, path_params):
- field_name = 'Invalid path_params provided'
- try:
- is_valid, validation_report = connection.validate_path_params(op_name, path_params)
- if not is_valid:
- raise ValidationError({
- field_name: validation_report
- })
- except Exception as e:
- raise ValidationError({
- field_name: str(e)
- })
-
-
-def main():
- fields = dict(
- operation=dict(type='str', required=True),
- path_params=dict(type='dict'),
- destination=dict(type='path', required=True)
- )
- module = AnsibleModule(argument_spec=fields,
- supports_check_mode=True)
- params = module.params
- connection = Connection(module._socket_path)
-
- op_name = params['operation']
- op_spec = connection.get_operation_spec(op_name)
- if op_spec is None:
- module.fail_json(msg='Operation with specified name is not found: %s' % op_name)
- if not is_download_operation(op_spec):
- module.fail_json(
- msg='Invalid download operation: %s. The operation must make GET request and return a file.' %
- op_name)
-
- try:
- path_params = params['path_params']
- validate_params(connection, op_name, path_params)
- if module.check_mode:
- module.exit_json(changed=False)
- connection.download_file(op_spec[OperationField.URL], params['destination'], path_params)
- module.exit_json(changed=False)
- except FtdServerError as e:
- module.fail_json(msg='Download request for %s operation failed. Status code: %s. '
- 'Server response: %s' % (op_name, e.code, e.response))
- except ValidationError as e:
- module.fail_json(msg=e.args[0])
-
-
-if __name__ == '__main__':
- main()