{ "version": "2.0", "name": "Rapid7 Nexpose Assets management", "comment": "", "type": "REST_EVENT", "event_type": [ "LEASE", "NETWORK_IPV4", "RANGE_IPV4", "FIXED_ADDRESS_IPV4", "HOST_ADDRESS_IPV4", "NETWORK_IPV6", "RANGE_IPV6", "FIXED_ADDRESS_IPV6", "HOST_ADDRESS_IPV6" ], "action_type": "Rapid7 Nexpose Assets management", "content_type": "text/xml", "vendor_identifier": "Rapid7", "quoting": "XMLA", "steps": [ { "name": "skip object modification", "operation": "CONDITION", "condition": { "statements": [ {"left": "${E:A:operation_type}", "op": "==", "right": "MODIFY"} ], "condition_type": "AND", "stop": true } }, { "name": "defaultValues", "operation": "NOP", "body": "${XC:ASSIGN:{L:IPTo}:{S:}}${XC:ASSIGN:{L:Hostname}:{S:}}" }, { "name": "checkEType_Network", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ {"left": "${E::event_type}", "op": "==", "right": "LEASE"} ], "next": "checkEType_Lease" } }, { "name": "skip if Site is not defined or sync not requested", "operation": "CONDITION", "condition": { "statements": [ {"left": "${E:A:values{extattrs}{R7_Site}{value}}", "op": "==", "right": ""}, {"left": "${E:A:values{extattrs}{R7_Sync}{value}}", "op": "==", "right": ""}, {"left": "${E:A:values{extattrs}{R7_Sync}{value}}", "op": "==", "right": "false"} ], "condition_type": "OR", "stop": true } }, { "name": "skip synced host", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ {"left": "${E:A:operation_type}", "op": "==", "right": "INSERT"}, {"left": "${E:A:values{extattrs}{R7_SyncedAt}{value}}", "op": "!=", "right": ""} ], "stop": true } }, { "name": "assignLVarsNet", "operation": "NOP", "body_list": [ "${XC:COPY:{L:Site}:{E:values{extattrs}{R7_Site}{value}}}", "${XC:COPY:{L:ScanTemplate}:{E:values{extattrs}{R7_ScanTemplate}{value}}}", "${XC:COPY:{L:ScanOnAdd}:{E:values{extattrs}{R7_ScanOnAdd}{value}}}", "${XC:COPY:{L:Obj_ref}:{E:values{_ref}}}", "${XC:ASSIGN:{L:SaveEA}:{S:true}}" ] }, { "name": "SetR7_IPF_Network", "operation": "CONDITION", "condition": { "condition_type": "OR", "statements": [ {"left": "${E::event_type}", "op": "==", "right": "NETWORK_IPV4"}, {"left": "${E::event_type}", "op": "==", "right": "NETWORK_IPV6"} ], "eval": "${XC:COPY:{L:Network}:{E:values{network}}}${XC:NETWORKTORANGE:{L:Network}:{L:RangeFromNet}}${XC:ASSIGN:{L:ObjType}:{S:NETWORK}}${XC:COPY:{L:IPFrom}:{L:RangeFromNet{{from}}}}${XC:COPY:{L:IPTo}:{L:RangeFromNet{{to}}}}" } }, { "name": "SetR7_IPF_Range", "operation": "CONDITION", "condition": { "condition_type": "OR", "statements": [ {"left": "${E::event_type}", "op": "==", "right": "RANGE_IPV4"}, {"left": "${E::event_type}", "op": "==", "right": "RANGE_IPV6"} ], "eval": "${XC:COPY:{L:IPFrom}:{E:values{start_addr}}}${XC:COPY:{L:IPTo}:{E:values{end_addr}}}${XC:ASSIGN:{L:ObjType}:{S:RANGE}}" } }, { "name": "SetR7_IPF_Host_IPv4", "operation": "CONDITION", "condition": { "condition_type": "OR", "statements": [ {"left": "${E::event_type}", "op": "==", "right": "HOST_ADDRESS_IPV4"} ], "eval": "${XC:COPY:{L:IPFrom}:{E:values{ipv4addr}}}${XC:COPY:{L:Hostname}:{E:values{host}}}${XC:ASSIGN:{L:IPv}:{S:ipv4addr}}${XC:ASSIGN:{L:ObjType}:{S:HOST}}" } }, { "name": "SetR7_IPF_Host_IPv6", "operation": "CONDITION", "condition": { "condition_type": "OR", "statements": [ {"left": "${E::event_type}", "op": "==", "right": "HOST_ADDRESS_IPV6"} ], "eval": "${XC:COPY:{L:IPFrom}:{E:values{ipv6addr}}}${XC:COPY:{L:Hostname}:{E:values{host}}}${XC:ASSIGN:{L:IPv}:{S:ipv6addr}}${XC:ASSIGN:{L:ObjType}:{S:HOST}}" } }, { "name": "SetR7_IPF_Fixed_IPv4", "operation": "CONDITION", "condition": { "condition_type": "OR", "statements": [ {"left": "${E::event_type}", "op": "==", "right": "FIXED_ADDRESS_IPV4"} ], "eval": "${XC:COPY:{L:IPFrom}:{E:values{ipv4addr}}}${XC:ASSIGN:{L:ObjType}:{S:FIXEDIP}}" } }, { "name": "SetR7_IPF_Fixed_IPv6", "operation": "CONDITION", "condition": { "condition_type": "OR", "statements": [ {"left": "${E::event_type}", "op": "==", "right": "FIXED_ADDRESS_IPV6"} ], "eval": "${XC:COPY:{L:IPFrom}:{E:values{ipv6addr}}}${XC:ASSIGN:{L:ObjType}:{S:FIXEDIP}}" } }, { "name": "SetR7_NetToSite", "operation": "CONDITION", "condition": { "condition_type": "OR", "statements": [ {"left": "${E:A:values{extattrs}{R7_NetToSite}{value}}", "op": "==", "right": ""} ], "eval": "${XC:ASSIGN:{L:NetToSite}:{S:false}}", "else_eval": "${XC:COPY:{L:NetToSite}:{E:values{extattrs}{R7_NetToSite}{value}}}" } }, { "name": "SetR7_RangeToSite", "operation": "CONDITION", "condition": { "condition_type": "OR", "statements": [ {"left": "${E:A:values{extattrs}{R7_RangeToSite}{value}}", "op": "==", "right": ""} ], "eval": "${XC:ASSIGN:{L:RangeToSite}:{S:false}}", "else_eval": "${XC:COPY:{L:RangeToSite}:{E:values{extattrs}{R7_RangeToSite}{value}}}" } }, { "name": "SetR7_AddByHostname", "operation": "CONDITION", "condition": { "condition_type": "OR", "statements": [ { "left": "${E:A:values{extattrs}{R7_AddByHostname}{value}}", "op": "==", "right": "" } ], "eval": "${XC:ASSIGN:{L:AddByHostname}:{S:false}}", "else_eval": "${XC:COPY:{L:AddByHostname}:{E:values{extattrs}{R7_AddByHostname}{value}}}" } }, { "name": "SetR7_SiteID", "operation": "CONDITION", "condition": { "condition_type": "OR", "statements": [ {"left": "${E:A:values{extattrs}{R7_SiteID}{value}}", "op": "==", "right": ""} ], "eval": "${XC:ASSIGN:{L:SiteID}:{I:0}}", "else_eval": "${XC:COPY:{L:SiteID}:{E:values{extattrs}{R7_SiteID}{value}}}" } }, { "name": "findRef_Host", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ {"left": "${L::ObjType}","op": "!=","right": "HOST"} ], "next": "Fin_Vars_Init" } }, { "name": "findRef_Host_ch_Delete", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ {"left": "${E:A:operation_type}", "op": "==", "right": "DELETE"} ], "next": "Fin_Vars_Init" } }, { "name": "Get Host _ref", "operation": "GET", "transport": {"path": "record:host?_return_fields=name,extattrs&network_view=${E::values{network_view}}&name=${L::Hostname}&${L::IPv}=${L::IPFrom}"}, "wapi": "v2.6" }, { "operation": "CONDITION", "name": "wapi_response_get_ref", "condition": { "statements": [ { "op": "==", "right": "${P:A:PARSE[0]{_ref}}", "left": "" }], "condition_type": "AND", "error": true, "else_eval": "${XC:COPY:{L:Obj_ref}:{P:PARSE[0]{_ref}}}" } }, { "name": "Debug P vars", "operation": "NOP", "body": "${XC:DEBUG:{P:}}" }, { "name": "check if host already synced", "operation": "CONDITION", "condition": { "statements": [ {"left": "${P:A:PARSE[0]{extattrs}{R7_SyncedAt}}", "op": "!=", "right": ""} ], "condition_type": "AND", "stop": true } }, { "name": "checkEType_Lease", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ {"left": "${E::event_type}", "op": "!=","right": "LEASE"} ], "next": "Fin_Vars_Init" } }, { "name": "skip if not defined for lease", "operation": "CONDITION", "condition": { "statements": [ {"left": "${E:A:ip.extattrs{R7_Site}}", "op": "==", "right": ""}, {"left": "${E:A:ip.extattrs{R7_Sync}}", "op": "==", "right": ""}, {"left": "${E:A:ip.extattrs{R7_Sync}}", "op": "==", "right": "false"} ], "condition_type": "OR", "stop": true } }, { "name": "assignLVarsLease", "operation": "NOP", "body_list": [ "${XC:COPY:{L:Network}:{E:values{network}}}", "${XC:COPY:{L:IPFrom}:{E:values{address}}}", "${XC:COPY:{L:Site}:{E:ip.extattrs{R7_Site}}}", "${XC:COPY:{L:Sync}:{E:ip.extattrs{R7_Sync}}}", "${XC:COPY:{L:ScanTemplate}:{E:ip.extattrs{R7_ScanTemplate}}}", "${XC:COPY:{L:ScanOnAdd}:{E:ip.extattrs{R7_ScanOnAdd}}}", "${XC:COPY:{L:Hostname}:{E:values{client_hostname}}}", "${XC:ASSIGN:{L:SaveEA}:{S:false}}", "${XC:ASSIGN:{L:ObjType}:{S:LEASE}}" ] }, { "name": "SetR7_L_SiteID", "operation": "CONDITION", "condition": { "condition_type": "OR", "statements": [ {"left": "${E:A:ip.extattrs{R7_SiteID}}", "op": "==", "right": ""} ], "eval": "${XC:ASSIGN:{L:SiteID}:{I:0}}", "else_eval": "${XC:COPY:{L:SiteID}:{E:ip.extattrs{R7_SiteID}}}" } }, { "name": "Fin_Vars_Init", "operation": "NOP", "body": "${XC:DEBUG:{L:}}" }, { "name": "handle delete", "operation": "CONDITION", "condition": { "statements": [{"left": "DELETE", "op": "==", "right": "${E:A:operation_type}"}], "condition_type": "AND", "next": "DeleteObject" } }, { "name": "Check SiteID", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ {"left": "${L:A:SiteID}", "op": "!=", "right": "0"} ], "next": "GetSiteConf" } }, { "name": "Request R7 sites", "parse": "XMLA", "operation": "POST", "body_list": [ "", "" ] }, { "name": "Check sites request on errors", "operation": "CONDITION", "condition": { "statements": [ {"left": "SiteListingResponse", "op": "!=","right": "${P:A:PARSE[[name]]}"}, {"left": "${P:A:PARSE{{success}}}", "op": "!=", "right": "1"} ], "condition_type": "AND", "else_eval": "${XC:COPY:{L:site_list}:{P:PARSE}}", "error": true } }, { "name": "Check if sites list is empty", "operation": "CONDITION", "condition": { "statements": [ {"left": "${L:L:site_list}", "op": "==","right": "0"} ], "condition_type": "AND", "stop": true } }, { "name": "Pop site from the list", "operation": "VARIABLEOP", "variable_ops": [ { "operation": "POP", "type": "COMPOSITE", "destination": "L:a_site", "source": "L:site_list" } ] }, { "name": "check_a_site", "operation": "CONDITION", "condition": { "statements": [ {"left": "${L:A:Site}", "op": "!=", "right": "${L:A:a_site{{name}}}"} ], "condition_type": "AND", "next": "Check if sites list is empty", "else_eval": "${XC:COPY:{L:SiteID}:{L:a_site{{id}}}}" } }, { "name": "checkSaveSiteID", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ {"left": "${L::SaveEA}", "op": "!=", "right": "true"} ], "next": "GetSiteConf" } }, { "name": "Update SiteID", "operation": "PUT", "transport": {"path": "${L:A:Obj_ref}"}, "wapi": "v2.6", "wapi_quoting": "JSON", "body_list": [ "{", "\"extattrs+\":{\"R7_SiteID\": { \"value\": \"${L:A:SiteID}\"}}", "}" ] }, { "name": "GetSiteConf", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ {"left": "${L:A:ObjType}", "op": "==", "right": "NETWORK"}, {"left": "${L:A:NetToSite}", "op": "!=", "right": "true"} ], "stop": true } }, { "name": "CheckSyncRanges", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ {"left": "${L:A:ObjType}", "op": "==", "right": "RANGE"}, {"left": "${L:A:RangeToSite}", "op": "!=", "right": "true"} ], "stop": true } }, { "name": "GetSiteConf_R7", "parse": "XMLA", "operation": "POST", "body_list": [ "", "" ] }, { "name": "get_site_config(errorcheck)", "operation": "CONDITION", "condition": { "statements": [ {"left": "SiteConfigResponse", "op": "!=", "right": "${P:A:PARSE[[name]]}"}, {"left": "${P:A:PARSE{{success}}}", "op": "!=", "right": "1"} ], "condition_type": "OR", "else_eval": "${XC:COPY:{L:SiteConfig}:{P:PARSE{SiteConfigResponse}}}", "error": true } }, { "name": "add by host name", "operation": "CONDITION", "condition": { "statements": [ {"left": "${L:A:Hostname}", "op": "==", "right": ""}, {"left": "${L:A:ObjType}", "op": "!=", "right": "HOST"}, {"left": "${L:A:AddByHostname}", "op": "==", "right": "false"} ], "condition_type": "OR", "next": "Net_to_Site_conf" } }, { "name": "Hostname_to_Site_conf", "operation": "VARIABLEOP", "variable_ops": [ { "operation": "PUSH", "type": "COMPOSITE", "name": "host", "destination": "L:SiteConfig{Site}{Hosts}", "composite_value": "${L:A:Hostname}" } ] }, { "name": "save by hostname", "operation": "CONDITION", "condition": { "statements": [ {"right": "1", "op": "==", "left": "1"} ], "condition_type": "OR", "next": "Save site config" } }, { "name": "Net_to_Site_conf", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ {"left": "${L:A:ObjType}", "op": "!=", "right": "NETWORK"} ], "next": "Other_to_Site_conf" } }, { "name": "Push_Network_to_Site_conf", "operation": "VARIABLEOP", "variable_ops": [ { "operation": "PUSH", "type": "COMPOSITE", "name": "host", "destination": "L:SiteConfig{Site}{Hosts}", "source": "L:RangeFromNet" } ] }, { "name": "save network to site", "operation": "CONDITION", "condition": { "statements": [ {"right": "1", "op": "==", "left": "1"} ], "condition_type": "OR", "next": "Save site config" } }, { "name": "Other_to_Site_conf", "operation": "VARIABLEOP", "variable_ops": [ { "operation": "PUSH", "type": "COMPOSITE", "name": "range", "keys": ["from","to"], "destination": "L:SiteConfig{Site}{Hosts}", "composite_value": "", "values": ["${L:A:IPFrom}","${L:A:IPTo}"] } ] }, { "name": "Save site config", "parse": "XMLA", "operation": "POST", "body_list": [ "", "", "${L:x:SiteConfig}", "" ] }, { "name": "update_site(errorcheck)", "operation": "CONDITION", "condition": { "statements": [ { "op": "!=", "right": "${P:A:PARSE[[name]]}", "left": "SiteSaveResponse" }, { "op": "!=", "right": "1", "left": "${P:A:PARSE{{success}}}" } ], "condition_type": "OR", "error": true } }, { "name": "checkSaveSyncedAt", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ { "left": "${L::SaveEA}", "op": "!=", "right": "true" } ], "next": "check_Scan_on_Add" } }, { "name": "Update R7_SyncedAt", "operation": "PUT", "transport": {"path": "${L:A:Obj_ref}"}, "wapi": "v2.6", "wapi_quoting": "JSON", "body_list": [ "{", "\"extattrs+\":{\"R7_SyncedAt\": { \"value\": \"${UT:U:TIME}\"}}", "}" ] }, { "name": "check_Scan_on_Add", "operation": "CONDITION", "condition": { "condition_type": "OR", "statements": [ {"left": "${L::ScanOnAdd}", "op": "==", "right": "false"}, {"left": "${E::event_type}", "op": "==", "right": "NETWORK_IPV4"}, {"left": "${E::event_type}", "op": "==", "right": "NETWORK_IPV6"}, {"left": "${E::event_type}", "op": "==", "right": "RANGE_IPV4"}, {"left": "${E::event_type}", "op": "==", "right": "RANGE_IPV6"} ], "stop": true } }, { "name": "assignScanVars", "operation": "NOP", "body_list": [ "${XC:COPY:{L:ScanDate}:{UT:TIME}}${XC:FORMAT:TRUNCATE:{L:ScanDate}:{10t}}", "${XC:COPY:{L:R7ScanSchTime}:{UT:EPOCH}}${XC:FORMAT:DATE_STRFTIME:{L:R7ScanSchTime}:{%Y%m%dT%H%M59000Z}}" ] }, { "name": "Create a schedule", "operation": "SERIALIZE", "serializations": [ {"destination": "L:R7ScanSch","content": " "}, {"destination": "L:R7ScanByHost","content": "${L:A:Hostname}"}, {"destination": "L:R7ScanByIP","content": ""} ] }, { "name": "scanByHostname", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ {"left": "${L::AddByHostname}", "op": "==", "right": "true"}, {"left": "${L::Hostname}", "op": "!=", "right": ""} ], "eval": "${XC:COPY:{L:R7ScanHostsRanges}:{L:R7ScanByHost}}", "else_eval": "${XC:COPY:{L:R7ScanHostsRanges}:{L:R7ScanByIP}}" } }, { "name": "skipSchedule", "operation": "CONDITION", "condition": { "condition_type": "OR", "statements": [ {"left": "${L::ScanTemplate}", "op": "==", "right": "default"}, {"left": "${L::ScanTemplate}", "op": "==", "right": ""} ], "eval": "${XC:ASSIGN:{L:R7ScanSch}:{S:}}" } }, { "name": "RequestAssetScan", "parse": "XMLA", "operation": "POST", "body_list": [ "", "", "${L:A:R7ScanHostsRanges}", "${L:A:R7ScanSch}", "" ] }, { "name": "scan_site(errorcheck)", "operation": "CONDITION", "condition": { "statements": [ {"left": "SiteDevicesScanResponse", "op": "!=", "right": "${P:A:PARSE[[name]]}"}, {"left": "${P:A:PARSE{{success}}}", "op": "!=", "right": "1"} ], "condition_type": "OR", "error": true } }, { "name": "checkSaveLastScan", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ {"left": "${L::SaveEA}", "op": "!=", "right": "true"} ], "next": "FinInsert" } }, { "name": "Update R7_LastScan", "operation": "PUT", "transport": {"path": "${L:A:Obj_ref}"}, "wapi": "v2.6", "wapi_quoting": "JSON", "body_list": [ "{", "\"extattrs+\":{\"R7_LastScan\": { \"value\": \"${L:U:ScanDate}\"}}", "}" ] }, { "name": "FinInsert", "operation": "NOP", "body": "${XC:DEBUG:{L:}}${XC:DEBUG:{E:}}${XC:DEBUG:{S:}}" }, { "name": "StopInsert", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ {"left": "1", "op": "==", "right": "1"} ], "stop": true } }, { "name": "DeleteObject", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ {"left": "${L:A:SiteID}", "op": "==", "right": "0"} ], "stop": true } }, { "name": "CheckIfNetSynced", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ {"left": "${L:A:ObjType}", "op": "==", "right": "NETWORK"}, {"left": "${L:A:NetToSite}", "op": "!=", "right": "true"} ], "stop": true } }, { "name": "CheckIfRangeSynced", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ {"left": "${L:A:ObjType}", "op": "==", "right": "RANGE"}, {"left": "${L:A:RangeToSite}", "op": "!=", "right": "true"} ], "stop": true } }, { "name": "GetSiteConf_R7_deletion", "parse": "XMLA", "operation": "POST", "body_list": [ "", "" ] }, { "name": "GetSiteConf_R7_deletion_errorcheck", "operation": "CONDITION", "condition": { "statements": [ {"left": "SiteConfigResponse", "op": "!=", "right": "${P:A:PARSE[[name]]}"}, {"left": "${P:A:PARSE{{success}}}", "op": "!=", "right": "1"} ], "condition_type": "OR", "else_eval": "${XC:COPY:{L:SiteConfig}:{P:PARSE{SiteConfigResponse}}}", "error": true } }, { "name": "CheckIfNetRangeSynced_delete", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ {"left": "${L:A:ObjType}", "op": "!=", "right": "NETWORK"}, {"left": "${L:A:ObjType}", "op": "!=", "right": "RANGE"}, {"left": "${L:A:ObjType}", "op": "!=", "right": "HOST"} ], "next": "RemoveByIP" } }, { "name": "CheckDeleteByHostname_delete", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ {"left": "${L:A:ObjType}", "op": "!=", "right": "HOST"}, {"left": "${L:A:AddByHostname}", "op": "!=", "right": "true"} ], "next": "RemoveByIP" } }, { "name": "assignEmptySiteVars_Delete", "operation": "NOP", "body_list": [ "${XC:ASSIGN:{L:SiteConfigDescription}:{S:}}${XC:ASSIGN:{L:SiteConfigHosts}:{S:}}${XC:ASSIGN:{L:SiteConfigCredentials}:{S:}}${XC:ASSIGN:{L:SiteConfigAlerting}:{S:}}${XC:ASSIGN:{L:SiteConfigScanConfig}:{S:}}${XC:ASSIGN:{L:SiteConfigTags}:{S:}}" ] }, { "name": "SiteConf_Description", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ {"left": "${P:A:PARSE{SiteConfigResponse}{Site}{Description}}", "op": "==", "right": ""} ], "next":"SiteConf_Hosts" } }, { "name": "SiteConf_Description_Assign", "operation": "VARIABLEOP", "variable_ops": [ { "operation": "ASSIGN", "type": "COMPOSITE", "name": "Description", "destination": "L:SiteConfigDescription", "source": "P:PARSE{SiteConfigResponse}{Site}{Description}" } ] }, { "name": "SiteConf_Hosts", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ {"left": "${P:A:PARSE{SiteConfigResponse}{Site}{Hosts}}", "op": "==", "right": ""} ], "next":"SiteConf_Credentials" } }, { "name": "SiteConf_Hosts_Assign", "operation": "VARIABLEOP", "variable_ops": [ { "operation": "ASSIGN", "type": "COMPOSITE", "name": "Hosts", "destination": "L:SiteConfigHosts", "source": "P:PARSE{SiteConfigResponse}{Site}{Hosts}" } ] }, { "name": "SiteConf_Credentials", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ {"left": "${P:A:PARSE{SiteConfigResponse}{Site}{Credentials}}", "op": "==", "right": ""} ], "next":"SiteConf_Alerting" } }, { "name": "SiteConf_Credentials_Assign", "operation": "VARIABLEOP", "variable_ops": [ { "operation": "ASSIGN", "type": "COMPOSITE", "name": "Credentials", "destination": "L:SiteConfigCredentials", "source": "P:PARSE{SiteConfigResponse}{Site}{Credentials}" } ] }, { "name": "SiteConf_Alerting", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ {"left": "${P:A:PARSE{SiteConfigResponse}{Site}{Alerting}}", "op": "==", "right": ""} ], "next":"SiteConf_ScanConfig" } }, { "name": "SiteConf_Alerting_Assign", "operation": "VARIABLEOP", "variable_ops": [ { "operation": "ASSIGN", "type": "COMPOSITE", "name": "Alerting", "destination": "L:SiteConfigAlerting", "source": "P:PARSE{SiteConfigResponse}{Site}{Alerting}" } ] }, { "name": "SiteConf_ScanConfig", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ {"left": "${P:A:PARSE{SiteConfigResponse}{Site}{ScanConfig}}", "op": "==", "right": ""} ], "next":"SiteConf_Tags" } }, { "name": "SiteConf_ScanConfig_Assign", "operation": "VARIABLEOP", "variable_ops": [ { "operation": "ASSIGN", "type": "COMPOSITE", "name": "ScanConfig", "destination": "L:SiteConfigScanConfig", "source": "P:PARSE{SiteConfigResponse}{Site}{ScanConfig}" } ] }, { "name": "SiteConf_Tags", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ {"left": "${P:A:PARSE{SiteConfigResponse}{Site}{Tags}}", "op": "==", "right": ""} ], "next":"DeleteHostname" } }, { "name": "SiteConf_Tags_Assign", "operation": "VARIABLEOP", "variable_ops": [ { "operation": "ASSIGN", "type": "COMPOSITE", "name": "Tags", "destination": "L:SiteConfigTags", "source": "P:PARSE{SiteConfigResponse}{Site}{Tags}" } ] }, { "name": "DeleteHostname", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ {"left": "${L:A:ObjType}", "op": "==", "right": "HOST"} ], "next": "RemoveByHostname" } }, { "name": "RemoveNetRange", "operation": "VARIABLEOP", "variable_ops": [ { "operation": "POP", "type": "COMPOSITE", "source": "L:SiteConfigHosts", "destination": "L:TMP", "values": [""] } ] }, { "name": "Bypass_RemoveByHostname", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ {"left": "1", "op": "==", "right": "1"} ], "next":"Delete_Save_site_config" } }, { "name": "RemoveByHostname", "operation": "NOP", "body": "${XC:DEBUG:{L:}}${XC:DEBUG:{E:}}${XC:DEBUG:{S:}}" }, { "name": "RemoveHostbyHostname", "operation": "VARIABLEOP", "variable_ops": [ { "operation": "POP", "type": "COMPOSITE", "source": "L:SiteConfigHosts", "destination": "L:TMP", "values": ["${L:A:Hostname}"] } ] }, { "name": "Delete_Save_site_config", "parse": "XMLA", "operation": "POST", "body_list": [ "", "", "", "${L::SiteConfigDescription}", "${L::SiteConfigHosts}", "${L:x:SiteConfigCredentials}", "${L:x:SiteConfigAlerting}", "${L:x:SiteConfigScanConfig}", "${L::SiteConfigTags}", "", "" ] }, { "name": "DebugSiteRange_HSTS", "operation": "NOP", "body": "${XC:DEBUG:{L:SiteConfigHosts}}${XC:DEBUG:{L:SiteConfigAlerting}}${XC:DEBUG:{L:SiteConfigScanConfig}}" }, { "name": "CleanIPdevices", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ {"left": "${L:A:ObjType}", "op": "==", "right": "HOST"} ], "next": "assignLVars_Delete" } }, { "name": "Save_NetRange_Site_Delete", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ {"left": "1", "op": "==", "right": "1"} ], "stop": true } }, { "name": "RemoveByIP", "operation": "NOP", "body": "${XC:DEBUG:{L:}}${XC:DEBUG:{E:}}${XC:DEBUG:{S:}}" }, { "name": "doNotRemoveHostIPfromNet", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ {"left": "${L:A:ObjType}", "op": "==", "right": "HOST"}, {"left": "${L:A:NetToSite}", "op": "==", "right": "true"} ], "next": "assignLVars_Delete" } }, { "name": "doNotRemoveFixedIPfromNet", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ {"left": "${L:A:ObjType}", "op": "==", "right": "FIXEDIP"}, {"left": "${L:A:NetToSite}", "op": "==", "right": "true"} ], "next": "assignLVars_Delete" } }, { "name": "doNotRemoveLeaseIPfromNet", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ {"left": "${L:A:ObjType}", "op": "==", "right": "LEASE"}, {"left": "${L:A:RangeToSite}", "op": "==", "right": "true"} ], "next": "assignLVars_Delete" } }, { "name": "RemoveIPFromRanges", "operation": "NOP", "body_list": [ "${XC:REMOVEIP:{L:IPFrom}:{L:SiteConfig{Hosts}}}" ] }, { "name": "Save_IP_Site_Delete", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ {"left": "1", "op": "==", "right": "1"} ], "next": "Save_Site_Config_Delete" } }, { "name": "Save_Site_Config_Delete", "operation": "NOP", "body": "${XC:DEBUG:{L:}}${XC:DEBUG:{E:}}${XC:DEBUG:{S:}}" }, { "name": "Save site config Delete", "parse": "XMLA", "operation": "POST", "body_list": [ "", "", "${L:x:SiteConfig}", "" ] }, { "name": "Save_site_delete(errorcheck)", "operation": "CONDITION", "condition": { "statements": [ {"left": "${P:A:PARSE[[name]]}", "op": "!=", "right": "SiteSaveResponse"}, {"left": "${P:A:PARSE{{success}}}", "op": "!=", "right": "1"} ], "condition_type": "OR", "error": true } }, { "name": "StopDeleteNetRange", "operation": "CONDITION", "condition": { "condition_type": "OR", "statements": [ {"left": "${L:A:ObjType}", "op": "==", "right": "NETWORK"}, {"left": "${L:A:ObjType}", "op": "==", "right": "RANGE"} ], "stop": true } }, { "name": "assignLVars_Delete", "operation": "NOP", "body_list": [ "${XC:ASSIGN:{L:DeviceID}:{S:}}" ] }, { "name": "GetSiteDeviceListR7_del", "parse": "XMLA", "operation": "POST", "body_list": [ "", "" ] }, { "name": "GetSiteDeviceListR7_del_errorcheck", "operation": "CONDITION", "condition": { "statements": [ {"left": "SiteDeviceListingResponse", "op": "!=","right": "${P:A:PARSE[[name]]}"}, {"left": "${P:A:PARSE{{success}}}", "op": "!=", "right": "1"} ], "condition_type": "AND", "else_eval": "${XC:COPY:{L:site_list}:{P:PARSE}}", "error": true } }, { "name": "Check_site_list_empty", "operation": "CONDITION", "condition": { "statements": [ {"left": "${L:L:site_list}", "op": "==","right": "0"} ], "condition_type": "AND", "next": "FinDelete" } }, { "name": "Pop_device_list", "operation": "VARIABLEOP", "variable_ops": [ { "operation": "POP", "type": "COMPOSITE", "destination": "L:device_list", "source": "L:site_list" } ] }, { "name": "Check_device_list_empty", "operation": "CONDITION", "condition": { "statements": [ {"left": "${L:L:device_list}", "op": "==","right": "0"} ], "condition_type": "AND", "next": "Check_site_list_empty" } }, { "name": "Pop_a_device", "operation": "VARIABLEOP", "variable_ops": [ { "operation": "POP", "type": "COMPOSITE", "destination": "L:a_device", "source": "L:device_list" } ] }, { "name": "check_if_device_found", "operation": "CONDITION", "condition": { "statements": [ {"left": "${L:A:IPFrom}", "op": "!=", "right": "${L:A:a_device{{address}}}"} ], "condition_type": "AND", "next": "Check_device_list_empty", "else_eval": "${XC:COPY:{L:DeviceID}:{L:a_device{{id}}}}" } }, { "name": "loop_sites", "operation": "CONDITION", "condition": { "statements": [ {"left": "${L:A:DeviceID}", "op": "==", "right": ""} ], "condition_type": "AND", "next": "Check_site_list_empty" } }, { "name": "Check_DeviceID", "operation": "CONDITION", "condition": { "statements": [ {"left": "${L:A:DeviceID}", "op": "==", "right": ""} ], "condition_type": "AND", "next": "FinDelete" } }, { "name": "DeleteDeviceR7", "parse": "XMLA", "operation": "POST", "body_list": [ "", "" ] }, { "name": "DeleteDeviceR7_errorcheck", "operation": "CONDITION", "condition": { "statements": [ {"left": "DeviceDeleteResponse", "op": "!=","right": "${P:A:PARSE[[name]]}"}, {"left": "${P:A:PARSE{{success}}}", "op": "!=", "right": "1"} ], "condition_type": "AND", "error": true } }, { "name": "FinDelete", "operation": "NOP", "body": "${XC:DEBUG:{L:}}${XC:DEBUG:{E:}}${XC:DEBUG:{S:}}${XC:DEBUG:{P:}}" }, { "name": "StopDelete", "operation": "CONDITION", "condition": { "condition_type": "AND", "statements": [ {"left": "1", "op": "==", "right": "1"} ], "stop": true } } ] }