CheckpointFWCreateBackup Deprecated

Deprecated. Use ssh command instead. Connect to a Check Point firewall appliance using SSH and trigger a task to create a configuration backup of the device. The user account being used to access the device must be set to use the SSH shell and not the built-in Check Point CLI. For more information, consult the CheckPoint documentation.

python · Check Point Firewall

Source

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


CLI_ADD = "add backup local"
BASH_ADD = '/etc/cli.sh -c "' + CLI_ADD + '"'


def main():
    res = []
    tbl = []
    devices = demisto.get(demisto.args(), 'devices')
    devicesBackupStarted = []
    devicesBackupError = []
    if not devices:
        res.append(
            {"Type": entryTypes["error"], "ContentsFormat": formats["text"], "Contents": "Received empty device list!"})
    else:
        devices = ','.join(devices) if isinstance(devices, list) else devices
        sshArgs = {"using": devices,
                   "cmd": BASH_ADD
                   }
        resSSH = demisto.executeCommand("ssh", sshArgs)
        try:
            for entry in resSSH:
                if isError(entry) and not demisto.get(entry, 'Contents.command'):
                    res += resSSH
                    break
                else:
                    device = entry['ModuleName']
                    if demisto.get(entry, 'Contents.success'):
                        output = demisto.get(entry, 'Contents.output')
                        backFileLoc = output.find("Backup file location")
                        result = 'Answer returned'
                        devicesBackupStarted.append({
                            'DeviceName': device,
                            'System': demisto.get(entry, 'Contents.system'),
                            'Status': ("Done" if output.find("local backup succeeded.") > -1 else "Pending"),
                            'Path': (output[backFileLoc, :] if backFileLoc > -1 else None)
                        })
                    else:
                        devicesBackupError.append(device)
                        output = "Output:\n" + str(demisto.get(entry, 'Contents.output')) + \
                                 "Error:\n" + str(demisto.get(entry, 'Contents.error'))
                        result = 'Failed to query'

                    tbl.append({'DeviceName': device, 'System': demisto.get(
                        entry, 'Contents.system'), 'Query result': result, 'Output': output})
        except Exception as ex:
            res.append({"Type": entryTypes["error"], "ContentsFormat": formats["text"],
                        "Contents": "Error occurred while parsing output from command. "
                                    "Exception info:\n" + str(ex) + "\n\nInvalid output:\n" + str(resSSH)})
        demisto.setContext('CheckpointBackup', devicesBackupStarted)
        res.append({"Type": entryTypes["note"], "ContentsFormat": formats["table"], "Contents": tbl})
    demisto.results(res)


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

README

Connects to a Checkpoint firewall appliance using SSH and trigger a task to create a configuration backup of the device. The user account that accesses the device must be setup to use the SSH shell and not the built in Checkpoint CLI. Consult the Checkpoint documentation for instructions on how to do this.

Script Data


Name Description
Script Type python
Tags checkpoint

Dependencies


This script uses the following commands and scripts.

  • ssh

Inputs


Argument Name Description
devices The list of RemoteAccess instances of the checkpoint firewall appliances to back up.

Outputs


Path Description Type
CheckpointBackup.DeviceName The name of the backed-up device. Unknown
CheckpointBackup.System The backed up system. Unknown
CheckpointBackup.Status The status of the backup process. Unknown
CheckpointBackup.Path The path of the backup file. Unknown