CheckpointFWBackupStatus Deprecated
Deprecated. Use ssh command instead. Connect to a CheckPoint firewall appliance using SSH and retrieve the status for backup tasks. The user account being used to access the device must be set to use the SSH shell and not the built-in CheckPoint CLI. For more information, consult the CheckPoint documentation.
python · Check Point Firewall
Source
import demistomock as demisto from CommonServerPython import * from CommonServerUserPython import * CLI_SHOW = 'show backup status' BASH_SHOW = '/etc/cli.sh -c "' + CLI_SHOW + '"' def main(): keepPolling = True 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_SHOW} while keepPolling: resSSH = demisto.executeCommand("ssh", sshArgs) try: for entry in resSSH: if isError(entry): 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") backFileLocEnd = output.find("Backup process finished") 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 + len( "Backup file location: "): backFileLocEnd - 1] if backFileLoc > -1 else None)}) # noqa: E128 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)}) keepPolling = False demisto.setContext('CheckpointBackup', devicesBackupStarted) res.append({"Type": entryTypes["note"], "ContentsFormat": formats["table"], "Contents": tbl}) return_results(res) if __name__ in ('__main__', '__builtin__', 'builtins'): main()
README
Connects a Checkpoint firewall appliance using SSH and retrieves the status of backup tasks. 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 devices to backup (comma-separated). |
| waittimeout | The wait time in seconds. If not provided, it will not wait. |
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 |