CheckPointDownloadBackup Deprecated

Deprecated. Use ssh command instead. Downloads the Check Point policy backup to the Cortex XSOAR War Room.

python · Check Point Firewall

Source

import demistomock as demisto
from CommonServerPython import *
from CommonServerUserPython import *

from time import sleep
import re
import json


def main():
    device = demisto.get(demisto.args(), 'device')
    res = []

    if not device:
        res.append({"Type": entryTypes["error"], "ContentsFormat": formats["text"],
                    "Contents": "Received empty device list!"})
        return_results(res)

    try:
        demisto.info("Starting backup")
        creation_status = demisto.executeCommand('CheckpointFWCreateBackup', {'devices': device})
        creation_content = creation_status[0].get('Contents')

        if not isinstance(creation_content[0], dict):
            res.append({"Type": entryTypes["error"], "ContentsFormat": formats["text"],
                        "Contents": "Error before starting backup: {}\nHint: make sure the device selected "
                                    "exists and is correctly configured".format(creation_content)})
            return_results(res)
            return

        output = str(creation_content[0].get('Output'))
        if 'Error' in output:
            res.append({"Type": entryTypes["error"], "ContentsFormat": formats["text"],
                        "Contents": "Failed creating the backup!" + output})
            return_results(res)
            return

        current_status = ''
        while current_status.find('Local backup succeeded') == -1:

            status_entries = demisto.executeCommand('CheckpointFWBackupStatus',
                                                    {'devices': device})

            content = status_entries[0]
            if content:
                content = json.dumps(content.get('Contents'))

            for entry in status_entries:
                current_status = str(demisto.get(entry, 'Contents'))

            if 'Progress' in current_status:
                percent_completed = re.findall(r'\d+%', current_status)[0]
                demisto.results('Current progress: ' + percent_completed)

            process_good = False
            for good_status in ['Progress', 'succeeded', 'Creating']:
                if good_status in current_status:
                    process_good = True

            if not process_good:
                res.append({"Type": entryTypes["error"], "ContentsFormat": formats["text"],
                            "Contents": "Failed while checking the backup status! " + current_status})
                return_results(res)

            sleep(30)  # pylint: disable=sleep-exists

        demisto.info("Backup completed. Starting to download backup file to war room.")
        time_taken = re.findall(r'\d+:\d+', current_status)[0]
        return_results('Time taken to create backup: ' + time_taken)

        file_path = re.findall(r'/.*\.tgz', current_status)[0]

        file_status = demisto.executeCommand('copy-from', {'file': file_path,
                                                           'using': device,
                                                           'timeout': 60})
        demisto.info("File was downloaded to war room. File status:", file_status)
        return_results(file_status)

    except Exception as exception:
        return_results(exception)


if __name__ in ('__main__', '__builtin__', 'builtins'):
    main()

README

Download CheckPoint policy backup to the Cortex XSOAR War Room.

Script Data


Name Description
Script Type python3
Tags  
Cortex XSOAR Version 5.0.0

Inputs


Argument Name Description
device RemoteAccess instance of the checkpoint firewall appliances to back up

Outputs


There are no outputs for this script.
This script will download the backup creates to the war room.