diff --git a/src/data/GeneratedTplBuiltIns.ts b/src/data/GeneratedTplBuiltIns.ts new file mode 100644 index 0000000..b4179a5 --- /dev/null +++ b/src/data/GeneratedTplBuiltIns.ts @@ -0,0 +1,16791 @@ +export interface TplBuiltInMethod { + description: string; + snippets: string[]; +} + +export const generatedTplBuiltIns: Record> = { + "A10Networks.AX_LoadBalancer": { + }, + "AbInitio.CoOperatingSystem": { + }, + "AbInitio.EnterpriseMetaEnvironment": { + }, + "AbInitio.GDE": { + }, + "Acresso.FLEXnetPublisher": { + }, + "Acronis.CyberBackup": { + }, + "Actuate.BIRTDesignerPro": { + }, + "Actuate.BIRTiServer": { + }, + "Actuate.eReports": { + }, + "Actuate.FormulaOne": { + }, + "Adobe.AcrobatDistillerServer": { + }, + "Adobe.AcrobatElementsServer": { + }, + "Adobe.ColdFusion": { + "active_versioning": { + snippets: ["${1:host}, ${2:version_cmd}, ${3:restrict_path}"], + description: `Obtains version from command output\n\nChange History:\n2019-02-27 - Updated to use Future.runCommand() function,\nadded new parameter "restrict_path"` + }, + "si_name": { + snippets: ["${1:hostname}, ${2:type}, ${3:short_si_type}, ${4:product_version}, ${5:edition}, ${6:instance}"], + description: `Keine Beschreibung verfügbar.` + }, + "si_key": { + snippets: ["${1:host}, ${2:type}, ${3:edition}, ${4:instance}, ${5:install_root}, ${6:process_cmd}"], + description: `Keine Beschreibung verfügbar.` + }, + "webserver_search": { + snippets: ["${1:host}, ${2:wsconfig_cmd}, ${3:wsconfig_file_path}, ${4:restrict_path}"], + description: `Searches for related\n\nChange History:\n2019-02-27 - Updated to use Future.runCommand() function,\nadded new parameter "restrict_path"` + } + }, + "Adobe.Connect": { + }, + "Adobe.CQ": { + }, + "Adobe.LiveCycle": { + }, + "Adobe.MacromediaJRun": { + }, + "Aerospike.AerospikeDB": { + "getPortSocket": { + snippets: ["${1:conf_file}, ${2:port_regex}, ${3:addr_regex}"], + description: `Function returns port and socket from conf_file that matches\nport and address regex.` + } + }, + "AirWatch.MobileDeviceManagement": { + "get_version": { + snippets: ["${1:host}, ${2:process}, ${3:si_type}, ${4:default_si_type}, ${5:alt_si_type}"], + description: `get_version performs various versioning methods\n\nChange History:\n2016-10-26 - Updated function names according to the Common_Functions changes (DRDC1-5767)` + } + }, + "AirWatch.MobileEmailManagement": { + "get_version": { + snippets: ["${1:host}, ${2:process}"], + description: `get_version performs various versioning methods\n\nChange History:\n2018-01-03 - Updated to use new functions (DRDC1-10124)` + } + }, + "AIX_Storage": { + "getODMData": { + snippets: ["${1:host}, ${2:cmd_locations}"], + description: `Query the Object Database Manager for Customized Attributes\n\nReturns odm_data table\nodm_data maps the object name (e.g. "hdisk0") to a table of keys and values\nThe table includes all the system objects not just storage things.\n\nExample:\nodm_data = {"hdisk0" : {"unique_id" : "2A1135000C5003A7F131B0BST9300603SS03IBMsas", "pvid" : "00f6ba5a370069b20000000000000000", ...}}\n\nReturns none if the odmget command isn't available or execution fails.\n\nChange History:\n2017-01-23 - Updated in order to use DiscoveryFunctions module instead of Common_Functions;\n2019-03-08 - Use runFutureActiveCommand` + }, + "getPV2LVIDList": { + snippets: ["${1:host}, ${2:odm_data}"], + description: `Build mapping from physical volume (i.e. hdisk0) to a list of LVIDs\ne.g. {"hdisk0" : [00f6ba5a00004c000000014373654326.4, 00f6ba5a00004c000000014373654444.5]}` + }, + "getNAAIDFromLsmpio": { + snippets: ["${1:host}, ${2:pv2naaid_table}, ${3:cmd_locations}"], + description: `Using lspv and lsmpio commands function gets the mapping between volume and naa_id.\nReturns table pv2naaid_table e.g. {'hdisk11' : '60000970000295700516533032454535'}\nReturns none if the lsmpio or lspv command isn't available or execution fails\nor no naa_id were obtained;\n\nChange History:\n2017-01-23 - Updated in order to support naa_id in IEEE Registered format,\ni.e. starts with 5h, 8 bytes long (DRDC1-7698);\n2019-03-08 - Use new future runCommand` + }, + "getDiskParameters": { + snippets: ["${1:host}, ${2:cmd_locations}, ${3:odm_data}, ${4:device_type_var}, ${5:disk_parameters_table}, ${6:NAAID_REGEX}"], + description: `Updates the given disk_parameters_table with data on the request device_type_var\ndevice_type_var is expected to be "hdisk" or "pdisk"\n\nReturns false if the command cannot be run\n\nChange History:\n2017-01-23 - Updated in order to support naa_id in IEEE Registered format,\ni.e. starts with 5h, 8 bytes long (DRDC1-7698);\n- Updated in order to use DiscoveryFunctions module instead of Common_Functions;\n2017-05-16 - Updated in order to get full 'lscfg' output (DRDC1-8301);\n2019-03-08 - Use new runFutureActiveCommand;\n2019-06-14 - Updated to better handle local disks detection (DRDC1-13430);\n2020-07-16 - Updated search to consider scope (DRDC1-15362)\n2026-04-08 - Updated escape sequence (DRDC1-29309)` + }, + "createLocalDisk": { + snippets: ["${1:host}, ${2:volume}, ${3:disk_entry}, ${4:pvid}, ${5:odm_data}, ${6:pv2lvidlist}, ${7:LOCAL_DRIVES}, ${8:raid_disk}"], + description: `Function creates local Disk Drive and create relationships to the host.\nReturns DiskDrive node.\n\nParameters:\nhost - host to be queried\nvolume - physical volume (physical disk for RAID) name\ndisk_entry - table containing disk parameters (from getDiskParameters)\npvid - physical volume id\nodm_data - ODM data\npv2lvidlist - table with mapping between PV name and list of LV id's\nLOCAL_DRIVES - removal group name\nraid_disk - RAID disk (void if not part of a RAID array)` + }, + "getRaidDisks": { + snippets: ["${1:host}, ${2:volume}, ${3:cmd_locations}"], + description: `Function obtains information about physical disks forming raid array.\nOnly SAS raids are supported.\nReturns list containing physical disk names.\n\nParameters:\nhost - host to be queried;\nvolume - physical volume (physical disk for RAID) name;\ncmd_locations - command locations (from locateCommands());\n\nChange History:\n2017-01-23 - Updated in order to use DiscoveryFunctions module instead of Common_Functions;\n2019-03-08 - Use new runFutureActiveCommand\n2025-06-04 - Updated to use standard path for sissasraidmgr command` + }, + "getVIOBackingDevice": { + snippets: ["${1:host}, ${2:all_vio_disks}, ${3:volume}, ${4:pvid}, ${5:udid}"], + description: `Function obtains information about physical disks or logical volumes on VIO servers,\nwhich backing physical volumes on LPARs.\nReturns list of DiskDrive nodes.\n\nParameters:\nhost - host to be queried;\nvolume - physical volume (physical disk for RAID) name;\npvid - physical volume id;\nudid - unique disk id;` + } + }, + "AIX.WPAR": { + }, + "AlarmPointSystems.AlarmPoint": { + }, + "Alation": { + }, + "AlibabaCloud.CommonFunctions": { + "getAccountID": { + snippets: ["${1:da}"], + description: `Extract and return account ID for a given DA.\n\nChange History:\n\n2021-12-15 Change direct call of Alibaba STS method` + }, + "_getProviderKey": { + snippets: [""], + description: `Return the provider key` + }, + "getProvider": { + snippets: [""], + description: `Returns the Alibaba CloudProvider node\nChange History:\n2022-01-21 Avoid updating inference relationships on CloudProvider\nnodes (DRDC1-18279)` + }, + "_getRegionKey": { + snippets: ["${1:region_code}, ${2:account_id}"], + description: `Return the region key` + }, + "getRegion": { + snippets: ["${1:da}, ${2:provider}, ${3:account_id}"], + description: `Returns the CloudRegion node for the given DDD node\n\nChange History:\n2022-05-10 Added new attributes (DRDC1-18388)\nChange History:\n2022-05-03 Avoid updating inference relationships on CloudRegion\nnodes (DRDC1-18279)` + }, + "_getServiceKey": { + snippets: ["${1:region_code}, ${2:account_id}, ${3:code}"], + description: `Return the service key for the given region code, account ID and service code` + }, + "getService": { + snippets: ["${1:da}, ${2:region}, ${3:code}, ${4:associate}"], + description: `Returns the Alibaba CloudService node\nChange History:\n2022-05-10 Added new attributes (DRDC1-18388)\nChange History:\n2022-05-03 Avoid updating inference relationships on CloudService\nnodes (DRDC1-18279)\n2023-01-10 Added confirmation of found CloudService node to make\ncontinuous CMDB sync triggering (DRDC1-20544)` + }, + "getResourceArn": { + snippets: ["${1:account_id}, ${2:region}, ${3:service}, ${4:resource_info}"], + description: `Function generates Resource ARN for a given Alibaba service.\nFor cases where Resource ARN cannot be obtained\nvia the Alibaba API call, we may use this function and use generated ARN\nto get resource's tags.\n\nInput arguments:\naccount_id - Alibaba account ID\nregion - Cloud Region node\nservice - name of the service we are getting\nthe ResourceARN for\nresource_info - a unique identifier for the service.\nUsually, consists of a resource/resource type\nand the resource name itself.` + }, + "createRemovalTracker": { + snippets: ["${1:da}, ${2:account_id}, ${3:name}, ${4:kind}, ${5:is_rel}"], + description: `Create a removal tracker for the given kind and DA` + }, + "updateFailureTimeForService": { + snippets: ["${1:result}, ${2:service_code}"], + description: `Updates the last_update_failure time on the reqested CloudService\nnode, if it can be found` + }, + "vpcLink": { + snippets: ["${1:da}, ${2:region}, ${3:node}"], + description: `Links the given node to its related VPCs\n\nReturns the relationships created, which may be empty` + }, + "ecsFindVM": { + snippets: ["${1:service}, ${2:instance_id}"], + description: `Returns a VirtualMachine node for the given ECS instance ID.\n\nReturns none if no VirtualMachine can be found.` + }, + "addTags": { + snippets: ["${1:node}, ${2:result}, ${3:tag_list}"], + description: `Add tags to the node from node result` + } + }, + "AlibabaCloud.ECS": { + "getOSInfo": { + snippets: ["${1:da}, ${2:attrs}, ${3:os_name}"], + description: `Function gets the following attributes and set them to the attrs table:\nOS info:\nos_type, os, os_version, os_class, os_arch\n\nReport:\nsearch\nVirtualMachine\nwhere\nvm_type has substring 'Alibaba'\norder by\nos_type, os_version\nshow\nname, vm_type,\nos_type, os, os_version, os_class, os_arch,\nimage_description` + }, + "markHostsVirtual": { + snippets: ["${1:hosts}"], + description: `Function marks given hosts with a Virtual attributes\n\nChange History\n2023-12-12 - added __cdm_override_token_id attribute to host (DRDC1-21925)\n2024-01-17 - added cloud_instance attribute to host (DRDC1-22690)` + }, + "linkVMtoHosts": { + snippets: ["${1:vm}, ${2:hosts}"], + description: `Function links given vm with a number of given hosts` + }, + "getHostbySerial": { + snippets: ["${1:serial}"], + description: `Function looks for host with a given serial number` + } + }, + "AlibabaCloud.MongoDB": { + }, + "AlibabaCloud.RDS": { + }, + "AlibabaCloud.Redis": { + }, + "AlibabaCloud.SLB": { + }, + "AlibabaCloud.SupportingTables": { + }, + "AlibabaCloud.VPC": { + "modelVSwitches": { + snippets: ["${1:da}, ${2:region}, ${3:service}, ${4:vpcs}, ${5:tracker}"], + description: `Model Alibaba VSwitches as Subnet nodes and link to parent VPCs\nChange History:\n2026-07-17 - Removed wrong link to CloudService (DRDC1-30205)` + } + }, + "AmazonECS": { + "resultsToList": { + snippets: ["${1:results}"], + description: `Converts a set of simple results into a list, using the "value"\nattribute of each result entry` + } + }, + "AmazonWebServices.Accounts": { + "modelAccountRelationships": { + snippets: ["${1:provider}, ${2:account}, ${3:organization_list}, ${4:regions_list}"], + description: `CloudService relationship to Cloud Provider\nHierarchy relationship to Organization\nOwnership relationship to Cloud Region` + } + }, + "AmazonWebServices.ACM": { + }, + "AmazonWebServices.APIGateway": { + }, + "AmazonWebServices.AppSync": { + }, + "AmazonWebServices.Athena": { + }, + "AmazonWebServices.Backup": { + }, + "AmazonWebServices.CloudFormation": { + }, + "AmazonWebServices.CloudFront": { + }, + "AmazonWebServices.CloudSearch": { + }, + "AmazonWebServices.CloudTrail": { + }, + "AmazonWebServices.CloudWatch": { + }, + "AmazonWebServices.Cognito.Identity": { + }, + "AmazonWebServices.Cognito.Provider": { + }, + "AmazonWebServices.CommonFunctions": { + "getAccountId": { + snippets: ["${1:da}"], + description: `Returns the AWS account ID for the current user\n\nIf the account ID cannot be retrieved this call will return none` + }, + "getAccountInfo": { + snippets: ["${1:da}"], + description: `Returns the AWS account ID and name (alias) for the current user\n\nIf no alias is defined, the account name will be the ID.\n\nIf the account ID cannot be retrieved this call will return (none, none)\n\nChange History:\n\n2019-12-01 Added check to ensure that AccountAliases exist\n2023-08-01 Updated account name search (DRDC1-20544)` + }, + "_getProviderKey": { + snippets: [""], + description: `Return the provider key` + }, + "getProvider": { + snippets: [""], + description: `Returns the AWS CloudProvider node\nChange History:\n2022-05-03 Avoid updating inference relationships on CloudProvider\nnodes (DRDC1-18279)` + }, + "_getRegionKey": { + snippets: ["${1:region_code}, ${2:account_id}, ${3:outpost_arn}"], + description: `Return the region key for the given region code and account ID\n\nChange History:\n2020-12-02 Added support for Outpost Cloud Region (DRDC1-12945)` + }, + "getOutpostAttrs": { + snippets: ["${1:outpost_table}, ${2:outpost_arn}"], + description: `Get a table of Outpost attributes` + }, + "isInRegionList": { + snippets: ["${1:da}, ${2:current_region}"], + description: `Check if region is in DiscoverRun Regions` + }, + "_getServiceKey": { + snippets: ["${1:region_code}, ${2:account_id}, ${3:code}, ${4:outpost_arn}"], + description: `Return the service key for the given region code, account ID and service code\n\nChange History:\n2020-12-02 Added support for Outpost Cloud Service (DRDC1-12945)\n2021-12-10 Updated the key for services on Outposts (DRDC1-17618)` + }, + "getService": { + snippets: ["${1:da}, ${2:region}, ${3:code}, ${4:associate}, ${5:outpost_arn}"], + description: `Returns the AWS CloudService node\n\nChange History:\n2020-12-02 Added support for Outpost Cloud Service (DRDC1-12945)\n2022-05-04 Avoid updating inference relationships on CloudService\nnodes (DRDC1-18279)\n2023-01-10 Added confirmation of found CloudService node to make\ncontinuous CMDB sync triggering (DRDC1-20544)\n2023-08-01 Replacing the account id in the name with the account_name (DRDC1-20544)\n2023-11-14 Added cloud_id attribute to Cloud Service (DRDC1-22103)` + }, + "ec2FindInstance": { + snippets: ["${1:service}, ${2:instance_id}"], + description: `Returns a VirtualMachine node for the given EC2 instance ID.\nReturns none if no VirtualMachine can be found.` + }, + "ec2FindVirtualHostForVM": { + snippets: ["${1:vm}, ${2:instance_id}"], + description: `Returns a Host node for the given EC2 instance VirtualMachine.\n\nReturns none if no Host can be found.` + }, + "ec2FindVirtualHostForInstance": { + snippets: ["${1:service}, ${2:instance_id}"], + description: `Returns a Host node for the given EC2 instance ID.\n\nReturns none if no Host can be found.` + }, + "ec2BuildPrivateIPTable": { + snippets: ["${1:da}"], + description: `Builds a table of private IP addresses for EC2 instance IDs\n\nReturns none if there are no DescribeInstances results` + }, + "rdsGetEndpointAndAddress": { + snippets: ["${1:si}"], + description: `Returns the endpoint and address for contacting the given RDS\ninstance\n\nReturn (none, none) if the endpoint or address cannot be determined\n\nChange History:\n2023-11-27 Move define body to Core Common Cloud for independence (DRDC1-22256)` + }, + "rdsExtraAttributes": { + snippets: [""], + description: `Returns a table of extra attributes for use in tagging\nRDS inferred nodes (Database, DatabaseDetail etc)` + }, + "vpcLink": { + snippets: ["${1:da}, ${2:region}, ${3:node}, ${4:service}"], + description: `Links the given node to its related VPCs\nReturns the relationships created, which may be empty\n\nChange History:\n2023-10-05 Added service as parameter (DRDC1-21081)\n2023-11-02 Added linkage to Subnet and Security Group (DRDC1-13635)` + }, + "cfLink": { + snippets: ["${1:da}, ${2:region}, ${3:node}, ${4:id}, ${5:service}"], + description: `Links the given node to its related cloud formation Deployment\nReturns the relationships created, or none if no Deployment could be\nfound\n\nChange History:\n2023-10-05 Added service as parameter (DRDC1-21081)` + }, + "getSubnetToAZMapping": { + snippets: ["${1:result_list}"], + description: `Returns a mapping from SubnetId to AvailabilityZone. The mapping is\nempty if the AWS.EC2.DescribeSubnets failed` + }, + "getSubnetToVPCMapping": { + snippets: ["${1:result_list}"], + description: `Returns a mapping from SubnetId to VpcId. The mapping is\nempty if the AWS.EC2.DescribeSubnets failed` + }, + "getNameFromTags": { + snippets: ["${1:result}"], + description: `Returns the value of any Name tag on the result node.\nReturns none if there is no Name tag (or no Tags at all) or the\nName value is blank.` + }, + "getResourceArn": { + snippets: ["${1:da}, ${2:account_id}, ${3:region}, ${4:service}, ${5:resource_info}"], + description: `Function generates Resource ARN for a given AWS service.\nGenerally, AWS API calls would have a ResourceARN included\nin the response. For cases where Resource ARN cannot be obtained\nvia the API call, we may use this function and use generated ARN\nto get resource's tags.\n\nInput arguments:\nda - discovery access node\n\naccount_id - AWS account ID\n\nregion - Cloud Region node\n\nservice - name of the service we are getting\nthe ResourceARN for\n\nresource_info - a unique identifier for the service.\nUsually, consists of a resource/resource type\nand the resource name itself.` + }, + "splitArn": { + snippets: ["${1:arn}"], + description: `Splits the given ARN string into its separate parts. Returns 5 values:\npartition - AWS partitition ID (typically "aws"),\nservice_code - Service code (e.g. "ec2"),\nregion_code - Region code (e.g. "us-east-1"),\naccount_id - 12 digit account ID,\nresource_info - Resource specific info/identifier.\n\nReturns a tuple of 5 nones if the given string doesn't match the\nexpected ARN format` + }, + "addTags": { + snippets: ["${1:node}, ${2:result}, ${3:tag_results}, ${4:skip}"], + description: `Add tags to the node from either a set of tag results or the Tags\nattribute of a result node. Only "simple" tag names will be added\n(Keys containing alphanumeric and underscore characters)\n\nBy default, the "Name" tag is also skipped but this can be\ncontrolled via the "skip" parameter (if this is used and you still\nwant Name to be skipped it must be included in the parameter)\n\nInput arguments:\nnode - target node\nresult - node of successful API call results (with 'Tags'/'TagSet' attributes)\nor\ntag_results - results of separated API call to get tag info in format of:\n[ {Key := "tag_name1", Value := "tag_value1" },\n{Key := "tag_name2", Value := "tag_value2" } ]\nif separated API call fails, then cloud.addTags() should not be called.\n\nChange History:\n2018-09-03 - moved common code to cloud.addTags() function (DRDC1-11921)\n2022-09-05 - updated to support lowercase data items (DRDC1-19758)` + }, + "createRemovalTracker": { + snippets: ["${1:da}, ${2:account_id}, ${3:name}, ${4:kind}, ${5:is_rel}, ${6:global}"], + description: `Create a removal tracker for the given kind and DA\n\n2020-11-19 Added global flag to have correct removal tracker tag(DRDC1-15994)` + }, + "updateFailureTimeForService": { + snippets: ["${1:result}, ${2:service_code}"], + description: `Updates the last_update_failure time on the reqested CloudService\nnode, if it can be found` + }, + "getOutpostTable": { + snippets: ["${1:da}"], + description: `Get an attributes lookup table for all existing Outposts where OutpostArn\nis a key and the API result is a value` + }, + "isFirstFromSupported": { + snippets: ["${1:current_region}, ${2:region_list}, ${3:supported_regions}"], + description: `Check if region is first from supported` + }, + "runOnceInDiscoveryAccess": { + snippets: ["${1:da}, ${2:supported_regions}"], + description: `The function determines the type of scan launched and, depending on the\ntype, issues either true or false to launch a request.\n\nsupported_regions - Optional list of regions in which the service exists\nand works\n\nOption A:\nRequest was launched only on behalf of one account.\n-- Run request only once in supported region.\n\nOption B:\nRequest was launched on behalf of an account with added roles.\n(trigger 'Include master account' is on). In this case, the account most\nlikely has more permissions than the roles to which it switches. Most\nlikely this is a master account.\n-- Run request once in supported region only using account / master account.\n\nOption C:\nRequest contains only roles, no master account (trigger 'Include master\naccount' is disabled). In this case, most likely, no role will have\npermissions to access this service (true for Amazon Organizations service).\n-- Run request once in supported region for each role.\n\nChange History:\n2025-07-01 - Add checking for inferred sync. Return False in case of inferred sync to avoid\ndirect request run (DRDC1-26857)` + }, + "getEnabledRegions": { + snippets: ["${1:da}"], + description: `A worker function that obtains the list of the enabled regions for\na given account.` + }, + "runOnceForAccount": { + snippets: ["${1:da}, ${2:supported_regions}"], + description: `A narrower version of the runOnceInDiscoveryAccess function that limits the launch\nof the rquest once per account / role.\n\nThe function determines the region range of scan launched and, depending on the\nsupported regions list, issues either true or false to launch a request.\n\nsupported_regions - Optional list of regions in which the service exists\nand works, if no supported_regions provided -function will return trues for first region.\n\nChange History:\n2024-08-10 - Added a list of preferred regions to run a request once,\nin cases when there is a lack of permissions to run a\nAWS.Account.ListRegions request (DRDC1-24295)\n2025-07-01 - Add checking for inferred sync. Return False in case of inferred sync to avoid\ndirect request run (DRDC1-26857)` + }, + "getTLSDetail": { + snippets: ["${1:da}, ${2:node}"], + description: `The function takes a node as input and searches for an Amazon\nACM Certificate Detail node. It then creates a relationship link\nbetween the resource and the detail.\n\nChange History:\n2024-11-01 - Detail search updated with lb_arn attribute (DRDC1-24883)\n2025-02-20 - Changed relationship to Certificate (DRDC1-25383)` + }, + "linkResourceToTLS": { + snippets: ["${1:da}, ${2:region}, ${3:node}"], + description: `The function takes an Amazon ACM Certificate Detail node as input,\nsearches for supported AWS resources and creates a relationship link to\nthose resources. Perform multiple searches based on the type and node\nkind of a given resource.\nChange History:\n2025-02-20 - Changed relationship to Certificate (DRDC1-25383)` + } + }, + "AmazonWebServices.Config": { + }, + "AmazonWebServices.DataPipeline": { + "normalize_table": { + snippets: ["${1:fields_list}"], + description: `Parameters in 'fields' and 'tags' lists in 'AWS.DataPipeline.Describe'\nresponse represented in forms of:\n'tags': [\n{\n'value': 'value1',\n'key': 'key1'\n},\n{\n'value': 'value2',\n'key': 'key2'\n}\n]\nor\n'fields': [\n{\n'key': '@lastActivationTime',\n'stringValue': '2019-09-26T09:08:16'\n},\n{\n'key': '*tags',\n'stringValue': '[{"key":"one_tag","value":"one_value"},{"key":"two_tag","value":"two_value"}]'\n},\n{\n'key': 'pipelineCreator',\n'stringValue': 'AIDAISAVHVDITE3OYDWSI'\n}\n]\n\nThe function transforms it to the normal tables:\n'tags': {\n'key1': 'value1',\n'key2': 'value2'\n}\n\n'fields': {\n'lastActivationTime': '2019-09-26T09:08:16',\n'tags': '[{"key":"one_tag","value":"one_value"},{"key":"two_tag","value":"two_value"}]'\n'pipelineCreator': 'AIDAISAVHVDITE3OYDWSI'\n}` + } + }, + "AmazonWebServices.DirectConnect": { + }, + "AmazonWebServices.DocumentDB": { + }, + "AmazonWebServices.DynamoDB": { + }, + "AmazonWebServices.EBS": { + }, + "AmazonWebServices.EC2": { + "getAccountRegion": { + snippets: ["${1:vm}"], + description: `Worker function that retrieves the Region code and Account Id for ARN\nconstruction.` + }, + "addCloudId": { + snippets: ["${1:vm}, ${2:host}, ${3:region_code}, ${4:account_id}"], + description: `Assigns VM's cloud_id attribute to the related host. If VM is a part\nof the AutoScaling group, construct a cloud_id instead.` + }, + "createRelationship": { + snippets: ["${1:vm}, ${2:host}"], + description: `Creates the relationship from the VM to the virtual Host\n\nChange History:\n\n2023-06-16 Add cloud_id attribute to virtual Host (DRDC1-20458)` + }, + "linkVirtualHost": { + snippets: ["${1:host}, ${2:aws_instance_id}"], + description: `Marks the given Host as virtual and attempts to link it to the\nVirtualMachine\n\nChange History:\n2023-11-16 - Replaced 'stop' with 'return' (DRDC1-22238)\n2023-12-12 - added __cdm_override_token_id attribute to host (DRDC1-21925)\n2024-01-17 - added cloud_instance attribute to host (DRDC1-22690)` + }, + "getVMEnablerType": { + snippets: ["${1:result}"], + description: `Returns the CDM VM Enabler Type for the given result. Accepts both\nDescribeInstance and DescribeLaunchConfiguration results (or anything\nwith an InstanceType attribute).` + }, + "addImageInfo": { + snippets: ["${1:da}, ${2:vms}"], + description: `Function adds the following attributes to VirtualMachine node:\nImage info:\nimage_name, image_location, image_description, image_owner\nOS info:\nos_type, os, os_version, os_class, os_arch\n\nReport:\nsearch\nVirtualMachine\nwhere\nvm_type has substring 'AWS'\norder by\nos_type, os_version\nshow\nname, vm_type,\nos_type, os, os_version, os_class, os_arch,\nimage_name, image_location, image_description\n\nNote:\nAWS.EC2.DescribeImages returns information about 100 000 images (response size ~170mb)\nSo AWS.EC2.DescribeImages can be used with ImageIds filters.\n\nChange History:\n2017-11-07 Added new attribute 'image_owner'` + }, + "extractAdditionalAttributes": { + snippets: ["${1:result}"], + description: `Extract additional attributes existing only for launch templates.` + }, + "addLaunchTemplateImageInfo": { + snippets: ["${1:da}, ${2:group}, ${3:group_version_table}"], + description: `Function finds information about the used images for each used\nLaunch Template version performing rest request:\nAWS.EC2.DescribeLaunchTemplateVersion.\nAnd adds the following attributes to VirtualMachine node:\nimages\ntemplate_description` + } + }, + "AmazonWebServices.ECS": { + "resultsToList": { + snippets: ["${1:results}"], + description: `Converts a set of simple results into a list, using the "value"\nattribute of each result entry (if not empty)` + }, + "getServiceDescriptions": { + snippets: ["${1:da}, ${2:cluster_arn}"], + description: `Function gets service descriptions of the ECS Cluster. Function calls\nListServices and DescribeServices methods.` + }, + "getContainerInstancesDescription": { + snippets: ["${1:da}, ${2:cluster_arn}"], + description: `Function gets Container Instances descriptions of the ECS Cluster. Function calls\nListContainerInstances and DescribeContainerInstances methods.` + } + }, + "AmazonWebServices.EFS": { + "linkHostToEFS": { + snippets: ["${1:host}"], + description: `Link REMOTE FileSystems on the Host to EFS\n\nChange History:\n\n2022-09-25 Added host.scope check (DRDC1-19971)` + }, + "linkEFSToHosts": { + snippets: ["${1:fs}, ${2:FS_LINKS_REMOVAL_GROUP}"], + description: `Link EXPOTED FileSystem to REMOTE FileSystems on Hosts` + }, + "updateAttributes": { + snippets: ["${1:da}, ${2:FileSystemId}, ${3:subnet_to_az}, ${4:subnet_to_vpc}"], + description: `Return attribute table with data from EFS.DescribeMountTargets request` + } + }, + "AmazonWebServices.EKS": { + }, + "AmazonWebServices.ElastiCache": { + "extractEndpoint": { + snippets: ["${1:item}, ${2:dns_names}, ${3:ports}"], + description: `Extracts DNS Name (Address) and Port information from the\ngiven item` + }, + "setAttrFromTable": { + snippets: ["${1:si}, ${2:attr}, ${3:values}"], + description: `Sets the given attribute from the value values` + }, + "handleCacheNodesARN": { + snippets: ["${1:instances}, ${2:cache_nodes}"], + description: `Handles adding cache nodes ARN to the Replication Group SI.` + } + }, + "AmazonWebServices.ElasticBeanstalk": { + }, + "AmazonWebServices.ElasticSearch": { + }, + "AmazonWebServices.ELB": { + }, + "AmazonWebServices.ELBv2": { + }, + "AmazonWebServices.EMR": { + }, + "AmazonWebServices.FSx": { + }, + "AmazonWebServices.Gateways": { + "linkToCustomerGateway": { + snippets: ["${1:da}, ${2:gateways}"], + description: `Link Gateways to Host/NetworkDevice which represents CustomerGateway` + }, + "getNameFromTags": { + snippets: ["${1:result}, ${2:id}, ${3:TYPE}"], + description: `get human readable name from tags` + } + }, + "AmazonWebServices.Glacier": { + }, + "AmazonWebServices.Glue": { + }, + "AmazonWebServices.Keyspaces": { + }, + "AmazonWebServices.KinesisDataAnalytics": { + }, + "AmazonWebServices.KinesisDataFirehose": { + }, + "AmazonWebServices.KinesisDataStreams": { + }, + "AmazonWebServices.KinesisVideoStreams": { + }, + "AmazonWebServices.LakeFormation": { + "get_databases": { + snippets: ["${1:results}"], + description: `Get the list of unique database names from the API response` + } + }, + "AmazonWebServices.Lambda": { + }, + "AmazonWebServices.LightsailInstance": { + "addTags": { + snippets: ["${1:node}, ${2:tag_results}"], + description: `Lightsail could have Key-only tags and Key-value tags at the same time in any order\nExample:\n"tags": [\n{\n"key": "string"\n},\n{\n"key": "string",\n"value": "string"\n},\n{\n"key": "string"\n}\n]` + }, + "parseInstanceAttrs": { + snippets: ["${1:result}"], + description: `Parse all Lightsail Instance attributes form provided DA result\nReturn 'attrs' table` + } + }, + "AmazonWebServices.MQ": { + }, + "AmazonWebServices.MSK": { + }, + "AmazonWebServices.Neptune": { + }, + "AmazonWebServices.OrganizationalUnits": { + "modelOrganizationalUnit": { + snippets: ["${1:root_id}, ${2:tracker}, ${3:nesting_level}, ${4:organizational_unit}, ${5:account_id}"], + description: `Parse all Organizational Unit attributes form provided DA result\nReturn node\n\nChange History:\n2022-02-10 - Added cloud_account_id & cloud_account_name attributes (DRDC1-18384)` + }, + "modelAccountNesting": { + snippets: ["${1:organizational_unit}, ${2:accounts_list}, ${3:child_list}"], + description: `Model hierarchy relationship to Organizational unit` + } + }, + "AmazonWebServices.Organizations": { + }, + "AmazonWebServices.RDS": { + "setProductVersionInfo": { + snippets: ["${1:si}"], + description: `Do any engine specific product version processing\n\nChange History:\n\n2024-10-21 Add get_product_version function\n(import from Core Oracle pattern) to extract product version\nfrom stripped_version (DRDC1-24795)` + } + }, + "AmazonWebServices.RDS_MSSQLServer": { + }, + "AmazonWebServices.RDS_MySQL": { + }, + "AmazonWebServices.RDS_Oracle": { + }, + "AmazonWebServices.RDS_PostgreSQL": { + }, + "AmazonWebServices.RedShift": { + }, + "AmazonWebServices.Route53": { + }, + "AmazonWebServices.S3": { + }, + "AmazonWebServices.SDB": { + }, + "AmazonWebServices.SecretsManager": { + }, + "AmazonWebServices.SES": { + }, + "AmazonWebServices.SimpleIdentifiers": { + }, + "AmazonWebServices.SNS": { + }, + "AmazonWebServices.SQS": { + }, + "AmazonWebServices.SSMParameterStore": { + }, + "AmazonWebServices.StepFunctions": { + }, + "AmazonWebServices.StorageGateway": { + }, + "AmazonWebServices.SupportingTables": { + }, + "AmazonWebServices.VPC": { + "modelSubnets": { + snippets: ["${1:da}, ${2:service}, ${3:vpcs}, ${4:tracker}, ${5:arn_part}"], + description: `Model aws subnets as Subnet node\n\nIf aws subnet contains both IPv4 and IPv6 ranges then\ntwo Subnet nodes will be created accordingly\nChange History:\n2026-04-20 - Updated name attribute format (DRDC1-29015)\n2026-07-17 - Removed wrong link to CloudService (DRDC1-30205)` + }, + "modelNetworkACL": { + snippets: ["${1:da}, ${2:service}, ${3:vpcs}, ${4:subnets}, ${5:tracker}, ${6:arn_part}"], + description: `Model AWS Network ACL as NetworkService node` + }, + "modelSecurityGroups": { + snippets: ["${1:da}, ${2:service}, ${3:vpcs}, ${4:tracker}, ${5:arn_part}"], + description: `Model AWS Security Groups as NetworkService node` + }, + "modelPeeringConnections": { + snippets: ["${1:da}, ${2:provider}, ${3:service}, ${4:vpcs}, ${5:ns_tracker}"], + description: `Find peered VPCs and create relationship between them` + } + }, + "AmazonWebServices.WAF.web_ACLs": { + }, + "AmazonWebServices.WorkSpaces": { + }, + "ApacheBasedWebservers": { + "getServerRoot": { + snippets: ["${1:host}, ${2:process}, ${3:active_ver_results}"], + description: `Find server_root and config_file attributes\n\nChange History:\n2015-04-07 - Added text.replace for server_root_from_config to avoid the bug when Apache Based Webserver can create a server_root with UNIX style separators on Windows (TKU-3487)\n2016-03-30 - All active_ver_results are now passed into function, rather than just the last one (DRDC1-5943)\n2017-01-17 - Obtain server root from process cmd if there is no -d argument. (DRDC1-7654)\n2019-06-27 - Obtain path to config_file from -d argument (DRDC1-13297)\n2023-01-16 - Updated (?i) flag placement in regular expression (DRDC1-20566)` + } + }, + "ApacheDerby": { + }, + "ApacheExtendedDiscovery": { + "clean_apache_config_file": { + snippets: ["${1:host}, ${2:config_file}"], + description: `Removes commented-out lines from the config file - i.e. lines starting with "#"\nReturned content has "\n" as end of line character` + }, + "get_virtual_host_list": { + snippets: ["${1:content}"], + description: `This function searches for VirtualHosts in Apache Webserver\nconfig file.\n\nTakes:\ncontent - Apache Webserver config file content\n\nReturns:\nvirtual_hosts - list of found VirtualHosts configuration\nrest - Apache Webserver configuration without VirtualHosts\n\nChange History:\n2021-09-08 - Updated to return Apache Webserver configuration\nwithout VirtualHosts, also (DRDC1-17328)` + }, + "dir_parsing": { + snippets: ["${1:host}, ${2:config_file}"], + description: `Current function lists directory if include has syntax 'Include /path/'\n\nTakes:\nhost - Host Node which run the function\nconfig_file - path to the include(full or relative)\nExamples: '/data/config/vhosts.d/vh-*.conf', '/data/config/vhosts.d/*.conf'\n\nReturns:\nwildcards - list of found file names by their wildcards\n\nChange History:\n2014-05-29 - Updated parsing method to consider complex wildcards (ISS04305797)\n2016-09-21 - Updated parsing method to consider any wildcard file names (DRDC1-6476)\n2019-02-11 - Updated function to use DiscoveryFunctions.escapePath().\n2019-05-17 - Remove cmd /c from runCommand (DRDC1-12533)\n2026-04-06 - Updated escape sequence (DRDC1-29309)` + }, + "sc_model": { + snippets: ["${1:host}, ${2:apache_si}, ${3:config_file_path}, ${4:website_table}"], + description: `Current function collects information about configured websites and returns a dictionary with websites details and list of included configs\n\nChange History:\n2013-08-23 - Updated regexes for website attributes extraction;\n2014-04-01 - Re-order and reorganize parsing of config files\n2014-05-29 - Updated parsing method to consider complex wildcards (ISS04305797)\n2014-08-06 - Added listening_ports attribute to SC (TKU-2355)\n2015-02-04 - server_root extraction from config file path updated(TKU-3208)\n2015-10-29 - added 'websphere_plugin_path' attribute to the Apache SI(QM001887828)\n2016-07-21 - Updated parsing method to consider any configuration file names (DRDC1-6476)\n2016-09-21 - Added support of IncludeOptional directive (DRDC1-6546)\n2016-11-30 - Updated the 'listen_tcp_sockets' attribute extraction\nAdded 'listen_secure_tcp_sockets' attribute\n2017-01-24 - added filter to avoid setting environment variables into additional attributes(esc 101108)\n2018-06-12 - Updated regex to extract list of includes (DRDC1-10977)\n2020-09-15 - Modeling Default website (DRDC1-15732)\n2021-04-05 - Added support for 'SSLEnable' (DRDC1-16709)\n2021-08-05 - Updated to use clean_apache_config_file function and fast regexes(DRDC1-16920)\n2021-09-08 - Updated to collect the information about Default Website (DRDC1-17328)\n2025-10-17 - Tighten regex to find website name (DRDC1-27788)\n2026-04-06 - Updated escape sequence (DRDC1-29309)\n2026-04-06 - Extract Wordpress path attribute (DRDC1-29389)` + } + }, + "ApacheFoundation.MavenFunctions": { + "pomVersioning": { + snippets: ["${1:host}, ${2:install_dir}"], + description: `Get version from pom.xml or pom.properties. Both are common files in\nmaven apps\n\nTakes:\nHost node\ninstall_dir - Path to pom.xml and pom.properties\n\nReturns: Full_version` + } + }, + "ApacheFoundation.Tomcat": { + "catalina_sh_version": { + snippets: ["${1:host}, ${2:run_cmd}, ${3:run_cmd_path}"], + description: `Gets version from getting run_cmd result.\n\nThis command might be catalina.sh version or might be something else such as\njava org.apache.catalina.util.ServerInfo. The function name is a legacy name,\nkept to ensure backward compatibility\nChange History:\n2016-02-18 - Updated full_version regex and added server type extraction (DRDC1-5597)\n2017-03-17 - Added runActiveCommand() common function\nto run the command with elevated privileges if necessary(DRDC1-8319)\n2018-04-06 - Change versioning order (DRDC1-11084)\n2018-11-19 - Catalina.sh should not be executed for DACS application (DRDC1-12261)\n2019-04-04 - Updated to use modern discovery functions\n2020-03-20 - Catalina.sh may return version of "0.0.0.0", should ignore it (DRDC1-14843)\n2020-11-23 - Catalina.sh may return non-existent version, like '0.0.1',\nshould ignore it (DRDC1-16141)\n2023-05-12 - Check for run command updated (DRDC1-19945)` + }, + "convertPathVersion": { + snippets: ["${1:raw}"], + description: `Take a raw path version and process it into something we can use\n\nConvert a version of\n* 85 to 8.5\n* 10 to 10 (no change)\n* 101 to 10.1\n\nTakes : Raw value (e.g. 85)\nReturns : Processed value (e.g. 8.5)` + } + }, + "Apache.Accumulo": { + "active_versioning": { + snippets: ["${1:host}, ${2:install_root}"], + description: `Function for version extraction from active command ./accumulo version\n\nChange History:\n2019-03-01 - Use modern version of runCommand\n2023-11-16 - Fix indentation and spacing` + }, + "path_versioning": { + snippets: ["${1:host}, ${2:process}"], + description: `Function for version extraction from process.args\n\nChange History:\n2023-11-16 - Fix indentation and spacing` + }, + "get_install_root": { + snippets: ["${1:host}, ${2:process}"], + description: `Function for install_root extraction from process.args\n\nChange History:\n2023-11-16 - Fix indentation and spacing` + } + }, + "Apache.ActiveMQ": { + }, + "Apache.Airflow": { + }, + "Apache.Ambari": { + }, + "Apache.Cassandra": { + "parseCassandraYaml": { + snippets: ["${1:cassandra_yaml}"], + description: `Keine Beschreibung verfügbar.` + }, + "runNodeToolWorker": { + snippets: ["${1:host}, ${2:attr}, ${3:install_root}, ${4:java_home}"], + description: `Run the node tool command with install_root and java_home as applicable\n\nIdeally we run nodetool with both install_root and java_home. If that\nfails try with one or neither.` + }, + "createDatabases": { + snippets: ["${1:host}, ${2:install_root}, ${3:trigger_si}, ${4:java_home}, ${5:cluster_key}"], + description: `Create Database nodes for Apache Cassandra and Scylla\n\nWe create Database nodes for the Keyspaces and DatabaseDetail nodes for\nthe tables. We link them to the Cluster SI\n\nFor Cassandra databases we find this information from database queries and\nthe nodetool command. Scylla databases only use the nodetool command\n\nTakes:\n* Host node\n* Path to the nodetool process\n* Cluster SI (e.g. Apache Cassandra Cluster SI of Scylla Cluster SI)\n* Cluster key\n\nReturns:\nList of Database nodes, linked to DatabaseDetail nodes if applicable\n\nChange History:\n2022-12-02 - Add optional java_home attribute (DRDC1-19992)\n2023-07-12 - Now also takes cluster_key which may be used for DB key (DRDC1-21545)\n2023-10-20 - Now command is not executed if we get information from SQL query(DRDC1-21725)` + } + }, + "Apache.Chukwa": { + "file_versioning": { + snippets: ["${1:host}, ${2:install_root}"], + description: `file_versioning performs file versioning.` + }, + "prod_naming": { + snippets: ["${1:host}, ${2:si_type}, ${3:short_si_type}, ${4:full_version}"], + description: `prod_naming is used to name the SI` + } + }, + "Apache.CloudStack": { + }, + "Apache.CouchDB": { + }, + "Apache.CXF": { + }, + "Apache.Drill": { + "common_versioning": { + snippets: ["${1:host}, ${2:process}, ${3:install_root}"], + description: `Function for versioning for Apache Drill.\n\nChange History:\n2019-02-06 - Updated to use DiscoveryFunctions.escapePath() function;` + }, + "get_install_root": { + snippets: ["${1:host}, ${2:process}"], + description: `Function to obtain Apache Drill installation directory\n\nChange History:\n2019-02-05 - switched to the DiscoveryFunctions.getExeCwdPath()\ninstead of using old Common_Functions module.` + }, + "get_cluster_id": { + snippets: ["${1:host}, ${2:install_root}"], + description: `Function to obtain cluster_id` + } + }, + "Apache.Falcon": { + "install_root_extraction": { + snippets: ["${1:host}, ${2:process}"], + description: `Current function extracts installation root from '-Dfalcon.home' argument.\nIf it fails, deploys common function to get the install root.\n\nChange History:\n2019-02-06 - Switched to the DiscoveryFunctions.getExeCwdPath() and\nDiscoveryFunctions.normalizePath() functions\ninstead of using similar functions\nfrom the old Common_Functions module.` + }, + "active_versioning": { + snippets: ["${1:host}, ${2:install_root}"], + description: `The function deploys active versioning\nIt also extracts 'mode' attribute\n\nChange History:\n2019-02-06 - Updated to use Future.runCommand() function;` + }, + "attributes_extraction": { + snippets: ["${1:full_version}, ${2:si_type}"], + description: `Current function sets product_version and short_name attributes` + }, + "pattern_body": { + snippets: ["${1:process}, ${2:si_type}"], + description: `Main body block, common for all the patterns in the module` + } + }, + "Apache.Flume": { + }, + "Apache.Hadoop": { + "hadoop_active_versioning": { + snippets: ["${1:process}, ${2:install_root}"], + description: `Performs active versioning using command:\n[root@clm-pun-006625 bin]# /home/hadoop-2.5.1/bin/hadoop version\nHadoop 2.5.1\nThis command was run using /home/hadoop-2.5.1/share/hadoop/common/hadoop-common-2.5.1.jar\n\nChange History:\n2019-02-06 - Updated to use Future.runCommand function` + }, + "yarn_active_versioning": { + snippets: ["${1:process}, ${2:install_root}"], + description: `Performs active versioning using command:\n[root@clm-pun-006625 bin]# /home/hadoop-2.5.1/bin/yarn version\nHadoop 2.5.1\nThis command was run using /home/hadoop-2.5.1/share/hadoop/common/hadoop-common-2.5.1.jar\n\nChange History:\n2015-04-29 - added support for Hortonworks Data Platform (TKU-3299)\n2019-02-06 - Updated to use Future.runCommand function` + }, + "package_versioning": { + snippets: ["${1:host}, ${2:packages}"], + description: `package_versioning performs package versioning. Function returns version from first package that matches.` + }, + "get_hadoop_config": { + snippets: ["${1:process}"], + description: `Try to extract from process.args\nand then validate different configuration paths, like\n/etc/hadoop\n/conf\n\nby checking for "core-site.xml" file presence in that directory.\n\nChange History:\n2016-04-20 - added better hadling for relative paths for IBM BigInsights (DRDC1-4021)\n2019-02-06 - Updated to use escapePath function` + }, + "get_hdfs_namenode_si": { + snippets: ["${1:host}, ${2:hadoop_config_path}"], + description: `Get "Apache Hadoop NameNode" by its url in /core-site.xml file, examples:\nfile path: /home/hadoop-2.5.1/etc/hadoop/core-site.xml\nurl 'hdfs://NAMENODE_HOSTNAME:9000'\n\nChange History:\n2017-02-03 - updated to use new SearchFunctions (DRDC1-8015)\n2022-07-13 - updated to find 'Cloudera Hadoop NameNode' (DRDC1-18489)\n2026-04-06 - fixed regex usage issues. (DRDC1-29309)` + }, + "get_yarn_resourcemanager_si": { + snippets: ["${1:host}, ${2:hadoop_config_path}"], + description: `Get "Apache Hadoop Yarn Resource Manager" by its url in /yarn-site.xml file, examples:\nfile path: /home/hadoop-2.5.1/etc/hadoop/yarn-site.xml\nurl 'RESOURCEMANAGER_HOSTNAME'\n\nChange History:\n2017-02-03 - updated to use new SearchFunctions (DRDC1-8015)\n2022-07-13 - updated to find 'Cloudera Hadoop Yarn Resource Manager' (DRDC1-18489)\n2026-04-06 - fixed regex usage issues. (DRDC1-29309)` + }, + "getYarnResourceManagerHA": { + snippets: ["${1:host}, ${2:yarn_site_xml_content}"], + description: `Get "Apache Hadoop Yarn Resource Manager" HA configuration\nin /yarn-site.xml file.\nReturns Cluster ID and sorted list of HA hosts.\nExamples:\n\nyarn.resourcemanager.ha.enabled\ntrue\n\n\nyarn.resourcemanager.cluster-id\ncluster1\n\n\nyarn.resourcemanager.ha.rm-ids\nrm1,rm2\n\n\nyarn.resourcemanager.hostname.rm1\nmaster1\n\n\nyarn.resourcemanager.hostname.rm2\nmaster2\n` + }, + "getHDFSNameNodeHA": { + snippets: ["${1:host}, ${2:hdfs_site_xml_content}"], + description: `Get "Apache Hadoop NameNode" HA configuration\nin /hdfs-site.xml file.\nReturns Cluster ID and sorted list of HA hosts.\nExamples:\n\ndfs.nameservices\nmycluster\n\n\ndfs.ha.namenodes.mycluster\nnn1,nn2\n\n\ndfs.namenode.http-address.mycluster.nn1\nmachine1.example.com:9870\n\n\ndfs.namenode.http-address.mycluster.nn2\nmachine2.example.com:9870\n` + }, + "get_jobhistory_si": { + snippets: ["${1:host}, ${2:hadoop_config_path}"], + description: `Get "Apache Hadoop Yarn Resource Manager" by its url in /mapred-site.xml file, examples:\nfile path: /home/hadoop-2.5.1/etc/hadoop/mapred-site.xml\nurl 'JOBHISTORY_HOSTNAME:10020'\n\nChange History:\n2017-02-03 - updated to use new SearchFunctions (DRDC1-8015)\n2022-07-13 - updated to find 'Cloudera Hadoop Job History Server' (DRDC1-18489)\n2026-04-06 - fixed regex usage issues (DRDC1-29309)` + }, + "get_slave_hosts": { + snippets: ["${1:host}, ${2:hadoop_config_path}, ${3:node_type}"], + description: `Get "Apache Hadoop Data Node"/"Apache Hadoop Node Manager" by entries in /slaves file, examples:\nfile path: /home/hadoop-2.5.1/etc/hadoop/slaves\ndatanode_host\ndatanode_host\nnodemanager_host\nnodemanager_host\n\nChange History:\n2017-02-03 - updated to use new SearchFunctions (DRDC1-8015)` + } + }, + "Apache.HBase": { + "HBase_versioning": { + snippets: ["${1:host}, ${2:install_root}"], + description: `Function for version extraction from hbase .jar files.\nAll .jar files are in %HBASE_INSTALL_ROOT%/lib/ directory\nAlso, performs active versioning. E.g. /usr/lib/hbase/hbase-hadoop/bin/hbase version\n\nChange History:\n2019-02-06 - Updated to use Future.runCommand() and\nDiscoveryFunctions.escapePath() functions;\n2021-12-31 - Add file versioning (DRDC1-18010)` + } + }, + "Apache.Hive": { + "get_install_root": { + snippets: ["${1:process}"], + description: `Function extract install_root for HiveServer and HiveMetastore process arguments\n\nChange History:\n2022-07-12 - Updated regex to get install_root (DRDC1-18489)` + }, + "get_version": { + snippets: ["${1:host}, ${2:process}, ${3:install_root}, ${4:type}"], + description: `Function perform\nfile versioning from files:\n- %install_root%/RELEASE_NOTES.txt\nor\n- %install_root%/README.txt\npath versioning\npackage versioning\n\nChange History:\n2022-07-12 - Updated regex for path versioning (DRDC1-18489)` + } + }, + "Apache.Hue": { + }, + "Apache.Ignite": { + }, + "Apache.JMeter": { + }, + "Apache.Kafka": { + "getTopicGroupMappings": { + snippets: ["${1:input}"], + description: `Get mapping from Topic to Group\n\nChange history:\n2025-03-17 - Blank lines processing updated (DRDC1-26071)` + }, + "modelTopics": { + snippets: ["${1:host}, ${2:node}, ${3:install_root}, ${4:port}, ${5:zk_addr}, ${6:endpoint}"], + description: `Model topic details for SoftwareInstance or SoftwareCluster\n\nhost: Host where Kafka is running or any host from the SoftwareCluster\nnode: SoftwareInstance or SoftwareCluster to link Details to\ninstall_root: Install root for Apache Kafka SI\nport: Port which Apache Kafka is listening on\nzk_addr: Apache Zookeeper address (host:port) to query older Kafka versions\n\nChange history:\n2021-01-15 - Added support for older Kafka versions (DRDC1-16411);\nUpdated to check 'kafka-topics' commands output\n2021-02-10 - Additional check for 'kafka-topics' commands output (DRDC1-16515)\n2021-04-01 - Updated to obtain all details in one command (DRDC1-16721);\nAdded option to disable topics discovery\n2021-11-18 - Added Confluent/Cloudera publishers (DRDC1-17776)\n2023-02-20 - Improve parsing of kafka-topics.sh command (DRDC1-20823)\n2023-08-03 - Add details of consumer groups to each\ntopic (DRDC1-20785)\n2024-01-31 - Improve performance (DRDC1-22779)\n2024-06-26 - Updated commands to use DiscoveryFunctions (DRDC1-23863)\n2025-01-15 - Improve performance for consumer group modelling (DRDC1-25435)\n2025-02-12 - Performance improvements (DRDC1-25435)\n2025-12-30 - Added support for command-config option (DRDC1-26198)\n2026-06-03 - Improve commands to use ip:port or hostname:port, extracted\nfrom conf file (DRDC1-29725)` + }, + "execCommand": { + snippets: ["${1:host}, ${2:bin_path}, ${3:command}, ${4:id_regex}"], + description: `Worker function that executes a cluster ID command and extracts ID from\nthe output.` + }, + "fallbackMetaProperties": { + snippets: ["${1:host}, ${2:log_dir}"], + description: `A fallback function to look for cluster ID in the meta.properties file.` + }, + "getClusterId": { + snippets: ["${1:host}, ${2:si}, ${3:zk_addr}, ${4:bootstrap}, ${5:log_dir}"], + description: `Get a cluster ID for a given Kafka cluster.\n\nChange History:\n2026-04-06 - Fixed escape character issues (DRDC1-29309)` + } + }, + "Apache_LoadBalancer": { + "cleanContent": { + snippets: ["${1:config_content}"], + description: `Removes empty and commented-out lines from the config file - i.e.\nlines starting with "#"\nReturned content has "\n" as end of line character` + }, + "getContentList": { + snippets: ["${1:config_content}, ${2:tag}"], + description: `There are the directives in the Apache configuration file which have\nopen and close tags, such as Proxy, Location, VirtualHost and so on.\nThis function excludes required sections from the config file and\nprovides them as a list.\nExample:\n[' ... ',\n' ... ']` + }, + "findIpPort": { + snippets: ["${1:host}, ${2:address_port}, ${3:resolved}"], + description: `Keine Beschreibung verfügbar.` + } + }, + "Apache.Mesos": { + "get_product_version": { + snippets: ["${1:full_version}"], + description: `Function to extract product version from full version` + }, + "active_versioning": { + snippets: ["${1:host}, ${2:process_cmd}"], + description: `Function which extracts version from command output\n\nChange History:\n2019-02-06 - Updated to use Future.runCommand() function.` + }, + "package_versioning": { + snippets: ["${1:host}"], + description: `Function which extracts version from package` + }, + "get_cluster_id": { + snippets: ["${1:host}, ${2:process_args}"], + description: `Function to extract cluster id from /etc/mesos/zk file\nValid for Mesos deployed with ZooKeeper\n\nChange History:\n2017-06-28 - added an alternative method of cluster_id extraction (107357)\n2019-02-13 - added an alternative method of cluster_id extraction (DRDC1-12612)\n- updated regex to extract cluster_id (DRDC1-12601)` + }, + "get_member_status": { + snippets: ["${1:host}, ${2:node_type}"], + description: `Function to extract status and state of member node` + }, + "get_member_ip": { + snippets: ["${1:host}, ${2:node_type}, ${3:process_args}"], + description: `Function to extract member node ip from /etc/mesos-master/ip\nor /etc/mesos-slave/ip file.\nIf this approach fails, pattern will try to extract ip attribute value from process arguments\n\nChange History:\n2017-06-28 - process_args value now passed to the function to avoid potential ECA erros (107357)\n- added an alternative method of member IP extraction (107357)` + } + }, + "Apache.NiFi": { + }, + "Apache.Oozie": { + }, + "Apache.Phoenix": { + }, + "Apache.Pig": { + }, + "Apache.Qpid": { + }, + "Apache.Solr": { + "solr_versioning": { + snippets: ["${1:host}, ${2:process}, ${3:install_root}"], + description: `Function for version extraction.\nUses path and package versioning.\n\nChange History:\n\n2019-02-13 - Updated solr_versioning() to use escapePath function\n2021-12-28 - Updated solr_versioning() (DRDC1-18138)\n2021-12-28 - Updated solr_versioning() (DRDC1-21369)\n2021-12-28 - Updated package versioning (DRDC1-21505)\n2024-05-27 - Updated regex for extracting version from args (DRDC1-23529)` + } + }, + "Apache.Spark": { + }, + "Apache.Sqoop": { + }, + "Apache.Storm": { + "common_versioning": { + snippets: ["${1:host}, ${2:process}"], + description: `Function for versioning for Apache Storm` + }, + "get_zookeeper_host_and_nimbus": { + snippets: ["${1:host}, ${2:install_root}"], + description: `Function to obtain instance of Apache Storm node\nfrom configuration file.\nCould be - 'Nimbus' or 'Supervisor' (master/slave)\n\nChange History:\n2016-04-01 - added support for alternative config file format(DRUD1-17178)` + } + }, + "Apache.Strongmail": { + }, + "Apache.Subversion": { + "si_attributes": { + snippets: ["${1:host}, ${2:command}, ${3:si_type}, ${4:short_si_type}"], + description: `Performs active and package versionings and assigns SI attributes.\n\nChange history:\n2018-11-12 - Introduced the variable. It is used to obtain possible\nsvn{.exe} binary path from the process's command. If the initial\nversioning command fails, the full path to the binary will be\nused (DRDC1-11832)\n2019-01-31 - Updated the runCommand to be loaded from the Future module.\n2020-04-02 - Updated active versioning (DRDC1-14943)` + } + }, + "Apache.Tika": { + }, + "Apache.Zookeeper": { + }, + "AppDevAndDeploymentSoftware.SimpleIdentifiers": { + }, + "Appian.Appian": { + "appianHome": { + snippets: ["${1:host}"], + description: `retrieves appian_home, also returns os separator` + }, + "fileVersioning": { + snippets: ["${1:host}, ${2:appian_home}, ${3:separator}"], + description: `retrieves version from file` + }, + "pathVersioning": { + snippets: ["${1:process}"], + description: `retrieves version from path\n\nChange History\n2023-09-07 - Tighten regexes (DRDC1-21744)` + }, + "setAttributes": { + snippets: ["${1:host}, ${2:full_version}, ${3:si_type}, ${4:short_si_type}"], + description: `retrieves product version\ninitializes name and short_name attributes\nreturns product_version, name, short_name` + } + }, + "Applications.SimpleIdentifiers": { + }, + "application_model.DAKOnline": { + "addDetailNodeToFC": { + snippets: ["${1:contents}, ${2:node}, ${3:is_required}, ${4:tag}, ${5:attributes}"], + description: `Add detail node as non-contained entry to contents. Also look for\nassociated SC, SI or BAI which is contained.` + }, + "addNodeToFC": { + snippets: ["${1:contents}, ${2:node}, ${3:is_required}, ${4:tag}, ${5:attributes}"], + description: `Add node to list of contents of functional component.` + }, + "recordAlwaysPresentFC": { + snippets: ["${1:details}, ${2:type}, ${3:contents}"], + description: `Add (possibly empty) function component to list.` + }, + "recordOptionalFC": { + snippets: ["${1:details}, ${2:type}, ${3:contents}"], + description: `Add function component to list if any contents.` + }, + "recordRequiredFC": { + snippets: ["${1:details}, ${2:type}, ${3:contents}"], + description: `Add function component to list of components. Returns true if there is\nany content otherwise false.` + }, + "optional_Backend_Application_Server": { + snippets: ["${1:identity_details}"], + description: `Find optional information in Backend_Application_Server` + }, + "optional_Postfach_Application_Server": { + snippets: ["${1:identity_details}"], + description: `Find optional information in Postfach_Application_Server` + }, + "required_Access_Manager_Policy_Server": { + snippets: ["${1:identity_details}"], + description: `Check for the presence of required nodes in Access_Manager_Policy_Server` + }, + "required_IBM_User_Directory_Server": { + snippets: ["${1:identity_details}"], + description: `Check for the presence of required nodes in IBM_User_Directory_Server` + }, + "required_Live_Application_Server": { + snippets: ["${1:identity_details}"], + description: `Check for the presence of required nodes in Live_Application_Server` + }, + "required_Slave_DB": { + snippets: ["${1:identity_details}"], + description: `Check for the presence of required nodes in Slave_DB` + }, + "required_Solr_Application_Server": { + snippets: ["${1:identity_details}"], + description: `Check for the presence of required nodes in Solr_Application_Server` + }, + "required_Terminservice_Application_Server": { + snippets: ["${1:identity_details}, ${2:node}"], + description: `Check for the presence of required nodes in Terminservice_Application_Server` + }, + "required_WebServer_Statistik_Tracker": { + snippets: ["${1:identity_details}"], + description: `Check for the presence of required nodes in WebServer_Statistik_Tracker` + }, + "required_WebServer_WebSphere": { + snippets: ["${1:identity_details}"], + description: `Check for the presence of required nodes in WebServer_WebSphere` + }, + "required_eGK_Bildupload_Application_Server": { + snippets: ["${1:identity_details}"], + description: `Check for the presence of required nodes in eGK_Bildupload_Application_Server` + } + }, + "application_model.DAKOR": { + "addDetailNodeToFC": { + snippets: ["${1:contents}, ${2:node}, ${3:is_required}, ${4:tag}, ${5:attributes}"], + description: `Add detail node as non-contained entry to contents. Also look for\nassociated SC, SI or BAI which is contained.` + }, + "addNodeToFC": { + snippets: ["${1:contents}, ${2:node}, ${3:is_required}, ${4:tag}, ${5:attributes}"], + description: `Add node to list of contents of functional component.` + }, + "recordAlwaysPresentFC": { + snippets: ["${1:details}, ${2:type}, ${3:contents}"], + description: `Add (possibly empty) function component to list.` + }, + "recordOptionalFC": { + snippets: ["${1:details}, ${2:type}, ${3:contents}"], + description: `Add function component to list if any contents.` + }, + "recordRequiredFC": { + snippets: ["${1:details}, ${2:type}, ${3:contents}"], + description: `Add function component to list of components. Returns true if there is\nany content otherwise false.` + }, + "optional_IPC": { + snippets: ["${1:saved_state}, ${2:identity_details}"], + description: `Find optional information in IPC` + }, + "required_IPC": { + snippets: ["${1:saved_state}, ${2:identity_details}"], + description: `Check for the presence of required nodes in IPC` + }, + "required_ServicePoint": { + snippets: ["${1:identity_details}, ${2:node}"], + description: `Check for the presence of required nodes in ServicePoint` + } + }, + "application_model.DAK_smartFIX": { + "addDetailNodeToFC": { + snippets: ["${1:contents}, ${2:node}, ${3:is_required}, ${4:tag}, ${5:attributes}"], + description: `Add detail node as non-contained entry to contents. Also look for\nassociated SC, SI or BAI which is contained.` + }, + "addNodeToFC": { + snippets: ["${1:contents}, ${2:node}, ${3:is_required}, ${4:tag}, ${5:attributes}"], + description: `Add node to list of contents of functional component.` + }, + "recordAlwaysPresentFC": { + snippets: ["${1:details}, ${2:type}, ${3:contents}"], + description: `Add (possibly empty) function component to list.` + }, + "recordOptionalFC": { + snippets: ["${1:details}, ${2:type}, ${3:contents}"], + description: `Add function component to list if any contents.` + }, + "recordRequiredFC": { + snippets: ["${1:details}, ${2:type}, ${3:contents}"], + description: `Add function component to list of components. Returns true if there is\nany content otherwise false.` + }, + "required_Analyser": { + snippets: ["${1:identity_details}"], + description: `Check for the presence of required nodes in Analyser` + }, + "required_Cluster": { + snippets: ["${1:identity_details}"], + description: `Check for the presence of required nodes in Cluster` + }, + "required_Matching_Server": { + snippets: ["${1:identity_details}, ${2:node}"], + description: `Check for the presence of required nodes in Matching_Server` + } + }, + "application_model.DMS___Posteingang": { + "addDetailNodeToFC": { + snippets: ["${1:contents}, ${2:node}, ${3:is_required}, ${4:tag}, ${5:attributes}"], + description: `Add detail node as non-contained entry to contents. Also look for\nassociated SC, SI or BAI which is contained.` + }, + "addNodeToFC": { + snippets: ["${1:contents}, ${2:node}, ${3:is_required}, ${4:tag}, ${5:attributes}"], + description: `Add node to list of contents of functional component.` + }, + "recordAlwaysPresentFC": { + snippets: ["${1:details}, ${2:type}, ${3:contents}"], + description: `Add (possibly empty) function component to list.` + }, + "recordOptionalFC": { + snippets: ["${1:details}, ${2:type}, ${3:contents}"], + description: `Add function component to list if any contents.` + }, + "recordRequiredFC": { + snippets: ["${1:details}, ${2:type}, ${3:contents}"], + description: `Add function component to list of components. Returns true if there is\nany content otherwise false.` + }, + "optional_DMS_Connector": { + snippets: ["${1:shared_details}"], + description: `Find optional information in DMS_Connector` + }, + "optional_SecPKI": { + snippets: ["${1:identity_details}"], + description: `Find optional information in SecPKI` + }, + "optional_smartFIX": { + snippets: ["${1:identity_details}"], + description: `Find optional information in smartFIX` + }, + "optional_xBound": { + snippets: ["${1:identity_details}"], + description: `Find optional information in xBound` + }, + "required_Hyperdoc_Server": { + snippets: ["${1:identity_details}, ${2:node}"], + description: `Check for the presence of required nodes in Hyperdoc_Server` + } + }, + "application_model.ISKV_21C": { + "addDetailNodeToFC": { + snippets: ["${1:contents}, ${2:node}, ${3:is_required}, ${4:tag}, ${5:attributes}"], + description: `Add detail node as non-contained entry to contents. Also look for\nassociated SC, SI or BAI which is contained.` + }, + "addNodeToFC": { + snippets: ["${1:contents}, ${2:node}, ${3:is_required}, ${4:tag}, ${5:attributes}"], + description: `Add node to list of contents of functional component.` + }, + "recordAlwaysPresentFC": { + snippets: ["${1:details}, ${2:type}, ${3:contents}"], + description: `Add (possibly empty) function component to list.` + }, + "recordOptionalFC": { + snippets: ["${1:details}, ${2:type}, ${3:contents}"], + description: `Add function component to list if any contents.` + }, + "recordRequiredFC": { + snippets: ["${1:details}, ${2:type}, ${3:contents}"], + description: `Add function component to list of components. Returns true if there is\nany content otherwise false.` + }, + "optional_Grouper": { + snippets: ["${1:shared_details}"], + description: `Find optional information in Grouper` + }, + "optional_Performance_Server": { + snippets: ["${1:identity_details}"], + description: `Find optional information in Performance_Server` + }, + "required_Batch_Kern": { + snippets: ["${1:identity_details}"], + description: `Check for the presence of required nodes in Batch_Kern` + }, + "required_BatchServer": { + snippets: ["${1:identity_details}"], + description: `Check for the presence of required nodes in BatchServer` + }, + "required_Dialog_Kern": { + snippets: ["${1:shared_details}"], + description: `Check for the presence of required nodes in Dialog_Kern` + }, + "required_ISKV_DB": { + snippets: ["${1:identity_details}"], + description: `Check for the presence of required nodes in ISKV_DB` + }, + "required_ISKV_DB_Replikation": { + snippets: ["${1:identity_details}"], + description: `Check for the presence of required nodes in ISKV_DB_Replikation` + }, + "required_Integration_Service": { + snippets: ["${1:identity_details}, ${2:node}"], + description: `Check for the presence of required nodes in Integration_Service` + }, + "required_Jms_Kern": { + snippets: ["${1:identity_details}"], + description: `Check for the presence of required nodes in Jms_Kern` + } + }, + "application_model.smartFIX": { + "addDetailNodeToFC": { + snippets: ["${1:contents}, ${2:node}, ${3:is_required}, ${4:tag}, ${5:attributes}"], + description: `Add detail node as non-contained entry to contents. Also look for\nassociated SC, SI or BAI which is contained.` + }, + "addNodeToFC": { + snippets: ["${1:contents}, ${2:node}, ${3:is_required}, ${4:tag}, ${5:attributes}"], + description: `Add node to list of contents of functional component.` + }, + "recordAlwaysPresentFC": { + snippets: ["${1:details}, ${2:type}, ${3:contents}"], + description: `Add (possibly empty) function component to list.` + }, + "recordOptionalFC": { + snippets: ["${1:details}, ${2:type}, ${3:contents}"], + description: `Add function component to list if any contents.` + }, + "recordRequiredFC": { + snippets: ["${1:details}, ${2:type}, ${3:contents}"], + description: `Add function component to list of components. Returns true if there is\nany content otherwise false.` + }, + "required_smartFIX___Analyser": { + snippets: ["${1:shared_details}"], + description: `Check for the presence of required nodes in smartFIX___Analyser` + }, + "required_smartFIX___Cluster": { + snippets: ["${1:shared_details}"], + description: `Check for the presence of required nodes in smartFIX___Cluster` + }, + "required_smartFIX___Matching_Server": { + snippets: ["${1:shared_details}, ${2:node}"], + description: `Check for the presence of required nodes in smartFIX___Matching_Server` + } + }, + "ArangoDB": { + }, + "Arcadia.Enterprise": { + }, + "Aruba_AP": { + "processAP": { + snippets: ["${1:entry}"], + description: `Keine Beschreibung verfügbar.` + } + }, + "Aruba_Domain": { + }, + "Aruba_IAP": { + }, + "ASG.TMONPAServer": { + }, + "Atacama_Module": { + }, + "Atlassian.Bamboo": { + }, + "Atlassian.Confluence": { + }, + "Atlassian.JIRA": { + "parse_log": { + snippets: ["${1:host}, ${2:install_dir}"], + description: `Extracts tomcat log file.\nSearches version, build, jdbc_url, edition, listening_ports information.\n\nChange History\n2019-02-11 Updated to use escapePath function` + }, + "command_versionig": { + snippets: ["${1:host}, ${2:install_dir}"], + description: `Runs versioning script.\nReturns full version.\n\nChange History:\n2019-02-07 - Updated to use new runCommand function` + }, + "file_versionig": { + snippets: ["${1:host}, ${2:install_dir}"], + description: `Extracts version from banner file.\nReturns full version.\n\nChange History:\n2019-02-11 - Updated to use new escapePath function` + } + }, + "Atlassian.JIRAServiceDesk": { + "file_versioning": { + snippets: ["${1:host}, ${2:install_dir}"], + description: `Performs file versioning\n\nChange History:\n2019-02-01 - Use new path escape function` + } + }, + "Atlassian.Stash": { + }, + "Attachmate.ReflectionForSecureIT": { + }, + "Attributes_Inferrence": { + }, + "Aurea.SavvionBusinessManager": { + }, + "Aurea.Sonic": { + }, + "AutomatedLogic.WebCTRL": { + }, + "AutomationAnywhere.AutomationAnywhere": { + }, + "Automic.OneAutomation": { + "fileVersioning": { + snippets: ["${1:host}, ${2:install_root}, ${3:type}, ${4:agent_name}, ${5:ini_path}"], + description: `Performs file versioning\n\nThe file name varies slightly depending on the SI type\n\nWe do a two stage file parsing, first with grep or findstr, then with the .tpl regex.extract function.\n\nTypical file content is\nUC4 Server 'UC4#CP' version '9.00A312-371' started\nStarted program UC4 Agent 'AGENT_NAME', version '9.00A312-371'\n\nWe parse the output of 9.00A312-371 into the standard format of 9.00.312.371\n\nChange History:\n18-01-2016 - Updated long_format command for UNIX and made parsing_regex not so stright, updated full_version regex (esc 081119)\n02-06-2016 - file versioning updated for Windows platform (DRDC1-6316)\n09-08-2016 - file versioning updated for Unix platform (DRDC1-6638)\n2019-02-21 - Updated to use DiscoveryFunctions.escapePath() function\n2020-01-06 - Updated the log file path extraction from the arguments ()` + } + }, + "Autonomy.DiSH": { + }, + "Autonomy.IDOL": { + }, + "Autonomy.InterwovenOpenDeploy": { + }, + "Autonomy.InterwovenTeamSite": { + }, + "Autonomy.InterwovenUniversalSearch": { + }, + "Avaya.ExperiencePortal": { + }, + "AviNetworks_LoadBalancer": { + "getDecoded": { + snippets: ["${1:target}, ${2:request_url}"], + description: `Queries the given rest api url then extracts the json 'results' from the response body and\nfinally returns a normalized response that can be handled by the pattern and\na link to the next page request (if it exist).\n\nChange History:\n2020-04-03 - Updated to use Session authentication (DRDC1-14942)\n2020-11-06 - Added 'X-Avi-Tenant' header to get information from all accessible tenant (DRDC1-15809)\n2021-01-14 - getDecoded function returns result and link to the next page request (DRDC1-16365)\n2025-06-05 - Updated regex for 'next' tag (DRDC1-26652)` + }, + "getDecodedAllPages": { + snippets: ["${1:target}, ${2:request_url}"], + description: `Queries the given rest api url by getDecoded() function for all pages and\nfinally returns a normalized response that can be handled by the pattern.\n\nLimitation:\nMaximum number of requests - 100\nBy default Avi Controller returns 25 entries per request\nFunction returns up to 2500 entries` + }, + "getTLSCertificate": { + snippets: ["${1:da}, ${2:service}, ${3:ssl_uid}, ${4:r_group}"], + description: `Performs an API request to get the TLS certificate details for\na specific certificate UUID, models the Certificate node\nand links it to related LB Service.` + } + }, + "Avnet.SeamlessDataPump": { + }, + "Avnet.SeamlessEventIntegration": { + }, + "Aware.Reports": { + }, + "Axway.Interchange": { + }, + "Axway.SecureTransport": { + }, + "Axway.Sentinel": { + }, + "Axway.TransferCFT": { + }, + "Basho.RiakKV": { + }, + "BDT": { + }, + "Beanstalkd.Beanstalkd": { + }, + "BEA.AquaLogic.BPM": { + }, + "BEA.AquaLogic.EnterpriseSecurity": { + }, + "BEA.AquaLogic.UserInteraction": { + }, + "BEA.Connect": { + }, + "BEA.MessageQ": { + }, + "BEA.Tuxedo": { + }, + "BEA.WebLogicApplicationServer": { + "getBeaHomeUnix": { + snippets: ["${1:process}"], + description: `Obtain BEA_HOME & WLS_HOME - for UNIX platform\n\nChange History:\n2013-11-13 - Adding check for appserv_install before adding it to BEA_HOME candidates (QM001808915)\n2015-08-06 - Added privileged command execution for BEA_HOME extraction if the primary method fails\n2016-06-08 - added additional extraction location (esc 090695)\n2016-06-09 - Added new methods for obtaining install_root attribute(087797)\n2016-06-27 - Updated error_regex value\n2016-08-31 - Updated function names according to the CommonFunctions changes\nrunActiveCommand() common function is now deployed\n2019-02-22 - Update to use new path escape function\n2022-11-23 - Updated method to extract BEA HOME path (DRDC1-19754)\n2026-04-14 - Updated escape sequence (DRDC1-29309)` + }, + "getWinPaths": { + snippets: ["${1:full_args}, ${2:arg_to_parse}"], + description: `Keine Beschreibung verfügbar.` + }, + "getBeaHomeWindows": { + snippets: ["${1:process}, ${2:args}"], + description: `Obtain BEA_HOME & WLS_HOME - for Windows platform\n\nChange History:\n2015-02-03 - added new ways to extract bea_home and wls_home\n2016-05-31 - Updated function names according to the CommonFunctions changes\n2016-06-09 - Added new methods for obtaining install_root attribute(087797)\n2016-06-27 - Updated 'wls_home' extraction regexes\n2020-08-27 - Updated 'wls_home' extraction regexes (DRDC1-15867)\n2020-10-07 - Only report bea_home or wls_home if it is fully qualified (DRDC1-15921)\n` + }, + "performPathVersioning": { + snippets: ["${1:full_proc_path}, ${2:appserv_install}, ${3:wls_windows}"], + description: `Parses out version from the path\n\nTakes:\n* appserv_install - Installation root, most probably obtained from -Dplatform.home=\nargument via getBeaHome function\n* full_proc_path - Trigger process command and arguments\n* wls_windows - True iff host is a Windows host\n\nChange history:\n2014-09-22 - Updated path versioning method (QM001858520)\n2014-10-24 - Updated Windows path versioning method (Esc 065280)\n2015-02-03 - Updated Unix path versioning regexes (Esc 069995)\n2016-07-14 - Updated path versioning regexes (DRDC1-6502)\n2018-04-17 - Updated path versioning regexes (DRDC1-10790)\n2018-04-17 - Updated path versioning regexes (DRDC1-11235)\n2018-05-17 - Updated path versioning regexes (DRDC1-11236)\n2020-09-30 - Updated path versioning regexes (DRDC1-15776)\n2022-08-18 - Updated path versioning regex to support 4 levels of\nversioning (DRDC1-19653)` + }, + "performPackageVersioning": { + snippets: ["${1:host}"], + description: `Keine Beschreibung verfügbar.` + }, + "getConfigXmlCandidatesUnix": { + snippets: ["${1:process}, ${2:host}, ${3:bea_home}, ${4:domain}, ${5:appservername}"], + description: `Keine Beschreibung verfügbar.` + }, + "getConfigXmlCandidatesWindows": { + snippets: ["${1:process}, ${2:args}, ${3:host}, ${4:bea_home}, ${5:domain}, ${6:domain_path}, ${7:appservername}"], + description: `Keine Beschreibung verfügbar.` + }, + "validateConfigXml": { + snippets: ["${1:appservername}, ${2:domain_from_args}, ${3:config_xml_xpath}, ${4:config_abs_path_used}, ${5:full_version}"], + description: `Keine Beschreibung verfügbar.` + }, + "parseConfigXml": { + snippets: ["${1:host}, ${2:appservername}, ${3:config_xml_xpath}, ${4:old_format}"], + description: `Keine Beschreibung verfügbar.` + }, + "processConfigFile": { + snippets: ["${1:host}, ${2:config_xml_candidates}, ${3:config_abs_path_used}, ${4:appservername}, ${5:domain_from_args}, ${6:full_version}"], + description: `Keine Beschreibung verfügbar.` + }, + "processLicensingInformation": { + snippets: ["${1:wl_reg_release}, ${2:bea_home}, ${3:license_filename}, ${4:wls_si}, ${5:host}, ${6:wls_windows}"], + description: `Keine Beschreibung verfügbar.` + }, + "getJmxPort": { + snippets: ["${1:args}"], + description: `Look for JMX port specified directly in process arguments\nThis function returns string value` + }, + "processJolt": { + snippets: ["${1:host}, ${2:jolt_server_sockets}, ${3:wls_si}"], + description: `Relating the WebLogic SI to the Jolt SIs which might be present on the list\nof servers obtained from config file\nThe server names might be aliases\nin which case we will store them as a hidden attribute. - QM001697285\n\nChange History:\n2016-11-07 - Updated search method for Oracle Jolt instances(DRDC1-7224)\n2026-04-01 - Updated check for IPv6 format in jolt_server_socket (DRDC1-29279)` + }, + "getProductVersion_and_Type": { + snippets: ["${1:full_version}"], + description: `Obtaining product_version and service pack from full_version\nand\nSI type based on it - either "BEA WebLogic Application Server" or "Oracle WebLogic Server"\n\nChange History:\n2014-09-17 - Get short_version\n2014-12-22 - Updated short_version extraction (TKU-2388)\n2016-07-28 - Set si_type to modern value by default (DRDC1-6506)\n2016-10-20 - Updated type mapping for modern WebLogic versions(DRDC-7169)\n2017-04-05 - Updated si_type check (DRDC1-8506)\n2020-10-14 - Updated version mapping (DRDC1-15776)\n2022-08-18 - Added 4 levels of versioning regex to version_regexes (DRDC1-19653)` + }, + "parseDomain_from_d_domainservername_arg": { + snippets: ["${1:args}, ${2:servername}"], + description: `Keine Beschreibung verfügbar.` + }, + "getPatch": { + snippets: ["${1:host}, ${2:process}"], + description: `Check for files on \\patch_jars directory and get full_version and patch number\nfrom the latest BUG_.jar file\n\nChange History:\n2015-06-22 - change order for privileged command execution (TKU-4330)\n2016-02-26 - change regexes to get full patch and full_version\n2016-08-31 - runActiveCommand() common function is now deployed\n2019-02-22 - Update to use new path escape function` + }, + "modelChannels": { + snippets: ["${1:host}, ${2:wls_si}, ${3:channels}"], + description: `The function models Channel Details` + }, + "modelJoltServers": { + snippets: ["${1:host}, ${2:wls_si}, ${3:jolt_servers}"], + description: `The function models Jolt Servers Details` + }, + "getOpatchLSCommandPath": { + snippets: ["${1:host}, ${2:ora_home}, ${3:oraInst_loc_file_path}"], + description: `function composes command for obtaining patch information\n` + }, + "getPatchesExtendedCommand": { + snippets: ["${1:host}, ${2:install_root}, ${3:patch_cmd_str}"], + description: `Function runs the command and extracts the psu and patch version.\nCan run both opatch lsinventory and opatch lspatches variation of the command.` + }, + "OpathArgsApproach": { + snippets: ["${1:host}, ${2:install_root}, ${3:lsinventory_based}"], + description: `This functions tries to extract Opatch information by either using opatch lsinventory\nor opatch lspatches command. The command that the function runs is based on "lsinventory_based"\nprovided to the function, by default the lsinventory command is used.` + }, + "getOPatch": { + snippets: ["${1:host}, ${2:install_root}"], + description: `Function obtains version information\n\nChange History:\n2020-01-09 - matrix comment added (DRDC1-14341)\n2021-03-21 - added additional approach based on lsinventory argument (DRDC1-16581)` + }, + "processBSU": { + snippets: ["${1:host}, ${2:bea_home}, ${3:home_folder}"], + description: `Function tries to get the information from bsu.sh file.\nThis file is present if the BSU utility is used in the environment.\nUnix only.\n\nChange History:\n2025-02-05 - Enhancement for running command on Unix (DRDC1-25580)\n2025-10-02 - Patch ID extraction addded, Windows based command removed (DRDC1-26847)` + } + }, + "BEA.WebLogicBuilder": { + }, + "BEA.WebLogicEnterprise": { + }, + "BEA.WebLogic.Integration": { + }, + "BEA.WebLogic.RealTime": { + }, + "BeyondTrust.PowerBrokerDesktops": { + }, + "BeyondTrust.PrivilegeManagement": { + "package_versioning": { + snippets: ["${1:host}"], + description: `Obtains the version from the package` + }, + "model_si": { + snippets: ["${1:process}, ${2:si_type}, ${3:short_si_type}"], + description: `Create SI` + } + }, + "BGP": { + }, + "BHNM.Import": { + "isValidIPAddress": { + snippets: ["${1:ip_addr}"], + description: `IP address validation.\nReturns true if given IP address is valid IPv4/IPv6 in canonical format\nor false otherwise. Loopback and non-routable meta addresses considered\nas invalid.` + }, + "getInterfacesAddrs": { + snippets: ["${1:interfaces}"], + description: `Return device IP and MAC adresses based on device/host\ninterfaces details or empty lists otherwise.` + }, + "getDecoded": { + snippets: ["${1:ds}, ${2:endpoint}, ${3:offset}, ${4:msg_prefix}"], + description: `Returns a decoded JSON from the data source endpoint by given offset,\noffset for the next data page and DiscoveredAPIResult node.` + }, + "processData": { + snippets: ["${1:decoded_data}, ${2:msg_prefix}"], + description: `Processes data for obtained devices, searches\ncorresponding discovered nodes and updates external_ids\nwith BMC Helix Network Management GUID value` + }, + "importData": { + snippets: ["${1:ds}, ${2:offset}, ${3:msg_prefix}"], + description: `Gets data from the data source, processes API response and\nconfirms DiscoveredAPIResult. Adds specific metadata for the\nimport worker pattern to continue processing paginated data` + } + }, + "Bitdefender.EPS": { + }, + "BitmarckSoftware.iskv_21c.Deployment_Server": { + }, + "BITMARCK_21c_Webservices": { + }, + "BITMARCK_CandidateSoftwareInstances_Module": { + }, + "BITMARCK.DB2_extend": { + }, + "BITMARCK.Discovery.HostContainer.HP_Blade_SystemEnclosure": { + }, + "BITMARCK.Discovery.Host_CustomerDetails": { + }, + "BITMARCK.Discovery.Host.Function": { + }, + "BITMARCK.Discovery.Host.HP_iLO": { + }, + "BITMARCK_Discovery_Host_Info_ITSM": { + }, + "BITMARCK.Discovery.Host_InventarNr": { + }, + "BITMARCK.Discovery.Host.InventoryData": { + }, + "BITMARCK_Discovery_Host_Log4jScan": { + }, + "BITMARCK.Discovery.Host.Reboot": { + }, + "BITMARCK.Discovery.Host.UNIX_NetworkCard": { + }, + "BITMARCK.Discovery.Host.Windows_Drive_Partition": { + }, + "BITMARCK.Discovery.Host.Windows.Memory": { + }, + "BITMARCK.Discovery.Host.Windows.NetworkCard": { + }, + "BITMARCK.Discovery.Host.Windows.Processor_WMI_Confirm": { + }, + "BITMARCK.Discovery.Host.Windows_RAID_Controller": { + }, + "BITMARCK.Discovery.Service.DB2Inventory": { + }, + "BITMARCK.Discovery.SoftwareInstance.AdobeReader": { + }, + "BITMARCK.Discovery.SoftwareInstance.MF": { + }, + "BITMARCK.Discovery.SoftwareInstance.MSAccess2003": { + }, + "BITMARCK.Discovery.SoftwareInstance.MSAccess2003B": { + }, + "BITMARCK.Discovery.SoftwareInstance.MSOffice": { + }, + "BITMARCK.Discovery.SoftwareInstance.PuTTY": { + }, + "BITMARCK.Discovery.SoftwareInstance.SecPKI": { + }, + "BITMARCK.Discovery.SoftwareInstance.SmartFix": { + "find_pack_version": { + snippets: ["${1:host}"], + description: `Get Version of the installed SmartFix instance from the local installed package.\nCurrently there seems to be no package. This function is a leftover from the old script.\n\nChange log:\n21-04-2026 LA Created function to search the package and return pack_version\n\nInputs:\nhost node\n\nOutputs:\nThe Version from the package` + }, + "extract_component_name": { + snippets: ["${1:process}"], + description: `Extract the name of the component name from the process args.\n\nChange log:\n21-04-2026 LA Created function to get the component name from the process args and return it\n\nInputs:\nThe process object from the trigger.\n\nOutputs:\nThe component name from the process args. Once just the name and once with a leading space\nfor display purposes.` + }, + "extract_oa_port": { + snippets: ["${1:process}"], + description: `Extract the OA Port name from the process args.\n\nChange log:\n21-04-2026 LA Created function to extract the oa Port from the process args and return it\n\nInputs:\nThe process object from the trigger.\n\nOutputs:\nThe OA Port from the process args.` + } + }, + "BITMARCK.Discovery.SoftwareInstance.XBound": { + }, + "Bitmarck.helper_funcs.misc": { + "logger": { + snippets: ["${1:pattern_name}"], + description: `A Logger function that will display the current local time\nand the name of the pattern that is currently being executed.\n\nInputs:\nName of the pattern that is currently being executet\n\nOutputs:\nTimestamp with local server time and the name of the pattern that is currently executet.\nExample: [2026-04-14 15:30:12] [RemoveOldAttribute] Pattern started on host server1\n` + } + }, + "Bitmarck.helper_funcs.software_modelling": { + "get_associated_processes": { + snippets: ["${1:node}, ${2:si}"], + description: `Get the all processes associated with the main process\nand map them to the si. Orignal code snipped from Alex Read @ Fusion\n\nInputs:\nnode (which triggered on a process), si\n\nOutputs:\nThe si with more associated processes with there are any Discovery could find.` + } + }, + "BITMARCK.Host_HotFixInstallDate": { + }, + "BITMARCK.Host_RemoveOldAttribute": { + }, + "Bitmarck.iskv_21c.deployment_server": { + "get_version_from_db": { + snippets: ["${1:host}, ${2:iskv_environment}, ${3:iskv_version}, ${4:conf_dir}"], + description: `Get Version of deployment server instance from the local DB.\n\nInputs:\nhost, iskv_environment, iskv_version, conf_dir\n\nOutputs:\nThe iskv_version, the iskv_enviroment and the conf_dir of the localy running deployment server instance` + } + }, + "BITMARCK_iskv_21c_JBoss_Module": { + }, + "BITMARCK_Issue_SerialNumber_Module": { + }, + "BITMARCK_Manage_Create_ShutdownNode_Module": { + }, + "BITMARCK_Manage_Read_ShutdownXML": { + }, + "BITMARCK_Set_BusinessApplication_Stage": { + }, + "BITMARCK_System_SudoerDetails": { + }, + "BlackBerry.UEM": { + }, + "BlazegraphDatabase": { + }, + "BluePrism.Automate": { + }, + "BMC.ADDM": { + }, + "BMC.AnalyticsForBSM": { + "file_versioning": { + snippets: ["${1:reg_file}"], + description: `Reads version components from configuration file and returns variable full_version\nChange History:\n2015-03-04 - Removed surplus variable "host" (Esc 071335)` + }, + "xml_file_versioning": { + snippets: ["${1:config_file}"], + description: `Reads version components from configuration file and returns variable full_version\nChange History:\n2015-03-04 - Removed surplus variable "host" (Esc 071335)` + }, + "package_versioning": { + snippets: ["${1:packages}"], + description: `Checks for the packages and extracts full_version\nChange History:\n2015-03-04 - Removed surplus variable "host" (Esc 071335)` + }, + "set_attributes": { + snippets: ["${1:host}, ${2:si_type}, ${3:short_si_type}, ${4:full_version}"], + description: `Extracts product version, revision and patch from full_version and assigns name and short name of the product\n\nChange History:\n2014-09-29 - Added short_name support (TKU-2353)\n` + } + }, + "BMC.AtriumCMDB": { + "getProductVersion": { + snippets: ["${1:full_version}"], + description: `Extracts product_version, revision and patch from full_version\n\nTakes : full_version\nReturns : product_version, revision and patch\n\nVersion's depth is equal or greater then 3 so we can obtain revision and\npatch (if depth is 4)\nThe following code will find revision number (the 3rd number)\nand patch_version (the 4th number) in version string\nand format them correctly: for BMC revision is 2-digit length number\nand patch is 3-digit length number.\nFor modern versions (9.1.x onwards), it will attempt to convert an\ninternal product version to its external marketing version via a\nlookup table\n\nChange History:\n2020-06-23 - Amalgamated it with similar code from the BMC Remedy AR pattern (DRDC1-13419)\n- For modern versions, product_version should be obtained\nfrom BMCProductVersions mapping table (DRDC1-13419)` + } + }, + "BMC.AtriumOrchestrator": { + "getModules": { + snippets: ["${1:host}, ${2:si}, ${3:ao_install_root}, ${4:grid_value}"], + description: `Keine Beschreibung verfügbar.` + }, + "parseVersion": { + snippets: ["${1:host}, ${2:version}"], + description: `Function to parse full version of BMC Atrium Orchestrator,\nand TrueSight Orchestation studio.\nVersion of TrueSight Development studio will always be the same as TSO.\nBuild was deprecated, because it was always same as patch,\nand wasn't present in version.\nHere is an example of versioning:\n--> (8.1.00) - Original product.\n--> 8.1.(01) - Patched product with version 01.\n--> 8.1.00.(001) - hotfix product with version 001.\nFor correct CMDB mapping we left previous mapping of versioning.\nVar name --> Real meaning\nMajor --> Major, First bit\nMinor --> Minor, Second bit\nRevision --> Patch, Third bit\nPatch --> Hotfix, Fourth bit` + }, + "linkedCDP": { + snippets: ["${1:host}, ${2:ao_home}"], + description: `Keine Beschreibung verfügbar.` + } + }, + "BMC.AtriumSSO": { + }, + "BMC.BatchDiscovery": { + }, + "BMC.BatchImpactManager": { + "package_versioning": { + snippets: ["${1:host}"], + description: `package_versioning performs package versioning.\nFunction returns version from first package that matches.\n\nChange History:\n2020-04-10 - Updated to use getMaxVersion from DiscoveryFunctions (DRDC1-14959)` + }, + "file_versioning": { + snippets: ["${1:host}, ${2:install_root}"], + description: `file_versioning performs file versioning.\n\nChange History:\n2020-04-10 - Updated to use getMaxVersion from DiscoveryFunctions (DRDC1-14959)\n- Updated to use Enterprise Manager version for BIM (DRDC1-14959)\n2020-07-17 - Updated to use EM version for BIM after product updates (DRDC1-15405)` + }, + "instance_name": { + snippets: ["${1:host}, ${2:install_root}"], + description: `instance_name returns instance name.\nWindows only.` + }, + "command_install_root": { + snippets: ["${1:host}, ${2:process}"], + description: `command_install_root returns install_root from /etc/passwd file.\nChange History:\n2014-08-27 - Regex to obtain install root and post-processing is updated(TKU-2341)` + }, + "registry_versioning": { + snippets: ["${1:host}, ${2:registry_root}"], + description: `registry_versioning performs registry versioning.\n\nChange History:\n2020-04-10 - Updated to use getMaxVersion from DiscoveryFunctions (DRDC1-14959)` + }, + "command_versioning": { + snippets: ["${1:host}, ${2:registry_root}"], + description: `command_versioning performs command versioning.` + } + }, + "BMC.BDSSAServer": { + }, + "BMC.BladeLogicDatabaseAutomation": { + "active_versioning": { + snippets: ["${1:host}, ${2:process_cmd}"], + description: `Runs the process.cmd with a -v option, parses the output to obtain full version\n\nTakes host, process.cmd\nReturns: Full_version\n\nChange History:\n2019-02-07 - Updated to use Future.runCommand() function;\n2022-11-29 - Ensure relevant libraries are in the path before running\ncommand (DRDC1-19539)` + }, + "package_versioning": { + snippets: ["${1:host}, ${2:package_regexes}"], + description: `Returns full_version from packages` + }, + "attributes_assignment": { + snippets: ["${1:host}, ${2:si_type}, ${3:short_si_type}, ${4:full_version}"], + description: `Returns product_version derived from full_version` + } + }, + "BMC.BladeLogic.ClientAutomation": { + }, + "BMC.BladeLogic.ServerAutomationSuite": { + "attributes_extraction": { + snippets: ["${1:host}, ${2:launcher_pr}"], + description: `This function extracts install_root from arguments of the child process\n\nChange History:\n2010-02-16 - Added an alternative install_dir extraction method for Unix (DRDC1-6154)\n2018-12-19 - Updated to use modern discovery functions (DRDC1-12409)\n2023-01-16 - Updated (?i) flag placement in regular expression (DRDC1-20566)` + }, + "active_versioning": { + snippets: ["${1:host}, ${2:install_root}, ${3:versioning_regex}"], + description: `This function deploys active versioning\n\nChange history:\n2018-12-19 - Updated to use modern discovery functions (DRDC1-12409)\n2019-02-26 - Updated to use DiscoveryFunctions.runFutureActiveCommand() functions\n2019-05-08 - Use cmd /c for runCommand (DRDC1-12533)` + }, + "registry_versioning": { + snippets: ["${1:host}, ${2:version_reg_query}"], + description: `Keine Beschreibung verfügbar.` + }, + "file_versionig": { + snippets: ["${1:host}, ${2:install_dir}, ${3:version_regex}"], + description: `This function deploys file versioning\nChange History:\n2010-02-16 - added an alternative Version file location (DRDC1-6154)` + }, + "path_versioning": { + snippets: ["${1:host}, ${2:process_path}"], + description: `Keine Beschreibung verfügbar.` + }, + "database_details": { + snippets: ["${1:host}, ${2:install_root}, ${3:deployment_name}, ${4:file_name}, ${5:port_information}"], + description: `This function extracts RDBMS parameters and port mappings\n\nChange History:\n2013-03-17 - Updated for TKU 2015-09-01\n2015-11-17 - added privileged execution to runCommands (es.082407)\n2016-11-07 - Added rdbms_name attribute to allow return of Oracle's ORA SID (DRDC1-5767)\n2018-12-19 - Updated to use modern discovery functions (DRDC1-12409)\n2019-02-26 - Updated to use DiscoveryFunctions.escapeArg() and\nDiscoveryFunctions.runFutureActiveCommand() functions\n2019-05-08 - Use cmd /c for runCommand (DRDC1-12533)\n2023-02-06 - Updated rdbms_port and rdbms_instance extraction (DRDC1-17012)` + }, + "product_version": { + snippets: ["${1:host}, ${2:full_version}"], + description: `This function extracts product_version, and patch from full_version\n\nChange History:\n2013-05-15 - Function updated to ensure normalized versions are returned.\nrevision attribute no longer returned as not relevant for this product.\n2026-04-07 - Updated escape sequence (DRDC1-29309)` + } + }, + "BMC.CapacityOptimization": { + "getRelatedRDBMS": { + snippets: ["${1:host}, ${2:install_root}"], + description: `Finds a related Oracle Database\nReturns rdbms SI and id, based on %db_host%:%port%:%db_name%\n\nChange History:\n2016-10-27 - Updated function names according to the RDBMS_Functions changes (DRDC1-5767)\n2026-04-07 - Updated escape sequence (DRDC1-29309)` + }, + "fileVersioning": { + snippets: ["${1:host}, ${2:install_root}, ${3:comp_name}"], + description: `Obtain version from BCOInstalledConfiguration.xml file\nReturn full_version\n\nChange History:\n2026-04-07 - Updated escape sequence (DRDC1-29309)` + }, + "getAttributes": { + snippets: ["${1:full_version}, ${2:si_type}, ${3:si_short_type}, ${4:hostname}"], + description: `Creates short_name, name and product_version attributes` + } + }, + "BMC.CloudLifecycleManagement": { + }, + "BMC.CONTROLM": { + "file_versioning": { + snippets: ["${1:host}, ${2:controlm_agent_home}, ${3:controlm_base_home}, ${4:controlm_home}, ${5:version_file_names}, ${6:version_regex}"], + description: `functions.file_versioning performs file versioning\n\nChange History:\n2015-08-18 - function is updated to be common for all Control-M patterns in the current module\n2016-07-13 - slight change to regex used to extract full_version (DRDC1-6492)\n2017-02-14 - updated in order to support version extraction from the fix packs (DRDC1-8137)\n2019-10-16 - Fixing Control-M brand usage (DRDC1-13242)\n2026-05-07 - Added full version comparison (DRDC1-29665)` + } + }, + "BMC.CONTROLMForecast": { + }, + "BMC.CONTROLMforHadoop": { + "file_versioning": { + snippets: ["${1:host}, ${2:controlm_agent_home}, ${3:controlm_base_home}, ${4:version_file_names}"], + description: `functions.file_versioning performs file versioning\n\nChange History:\n2019-10-16 - Fixing Control-M brand usage (DRDC1-13242)` + } + }, + "BMC.CONTROLM_EnterpriseManager": { + }, + "BMC.CONTROL_MBusinessProcessIntegrationSuite": { + }, + "BMC.CONTROL_MWebAccess": { + }, + "BMC.CONTROL_M_CMforAFT": { + }, + "BMC.CorporateDirectoryManager": { + }, + "BMC.DashboardsForBSM": { + }, + "BMC.DWPCatalog": { + }, + "BMC.EUEM": { + "getVersion": { + snippets: ["${1:host}, ${2:install_root}, ${3:si_type}"], + description: `Obtains version information\n\nChange History:\n2018-08-20 - product name updated (DRDC1-11860)` + } + }, + "BMC.EventManager": { + }, + "BMC.FootPrintsAssetCore": { + "genMarketVersion": { + snippets: ["${1:full_version}"], + description: `Generate precise product_version from full_version for correct\nEOL mapping.\nRefer to https://webapps.bmc.com/support/faces/az/supportlisting.jsp for\ncomplete Marketing Versions list.\n\nTakes full version, returns product version.` + }, + "version_extraction": { + snippets: ["${1:process}, ${2:registry_prefix}, ${3:install_root}"], + description: `Extracts version information\n\nChange History:\n2019-02-15 - Use new escapePath and Future.runCommand functions\n2019-08-27 - Report three levels of product_version (DRDC1-10099)\n2021-04-26 - Report product_version according to market versions (DRDC1-16638)\n2022-08-12 - Improve registry versioning (DRDC1-19619)\n2023-01-16 - Updated (?i) flag placement in regular expression (DRDC1-20566)\n2026-04-07 - Updated escape sequence (DRDC1-29309)` + }, + "get_install_root": { + snippets: ["${1:process}, ${2:prefix}"], + description: `Extracts and returns installation root\n\nChange History:\n2015-12-14 - Remove si_type from log messages\n2024-01-31 - Try to get full path on UNIX (DRDC1-22767)` + } + }, + "BMC.FootPrintsServiceCore": { + }, + "BMC.HelixClientGateway": { + "get_file_version": { + snippets: ["${1:log_content}"], + description: `Get full_version from log file` + }, + "get_license_info": { + snippets: ["${1:log_content}"], + description: `Keine Beschreibung verfügbar.` + }, + "log_processing": { + snippets: ["${1:host}, ${2:install_root}"], + description: `Keine Beschreibung verfügbar.` + } + }, + "BMC.HRCaseManagement": { + }, + "BMC.ImpactManager": { + }, + "BMC.ITServiceManagement": { + }, + "BMC.MiddlewareManagementPerformanceAndAvailability": { + "get_installation_root": { + snippets: ["${1:process}, ${2:host}, ${3:si_type}"], + description: `Current function obtains installation root of the product\n\nChange history:\n2014-12-09 - removed pmap arguments from configuration block` + }, + "file_versioning": { + snippets: ["${1:host}, ${2:install_root}, ${3:si_type}"], + description: `Keine Beschreibung verfügbar.` + }, + "active_versioning": { + snippets: ["${1:process}, ${2:host}, ${3:install_root}, ${4:si_type}"], + description: `Current function extracts full_version from active command result\n\nChange history:\n2015-03-10 - rename "binary" variable to "executable" to avoid namespace clash\n2015-12-14 - Fixed unprotected use of export in runCommand (DRDC1-4926)\n2019-02-11 - Added an install root escape function and FutureRunCommand.\n2024-05-10 - Updated to use runFutureActiveCommand() (DRDC1-23520)\n2024-07-08 - Added brackets around the command (DRDC1-24024)` + }, + "package_versioning": { + snippets: ["${1:host}, ${2:si_type}"], + description: `Keine Beschreibung verfügbar.` + }, + "path_versioning": { + snippets: ["${1:host}, ${2:process}"], + description: `Keine Beschreibung verfügbar.` + }, + "perform_versioning_methods": { + snippets: ["${1:process}, ${2:host}, ${3:install_root}, ${4:append_si_type}"], + description: `Perform all possible versioning methods returning both version and confirmation of the actual product installed` + }, + "assign_si_types": { + snippets: ["${1:process}, ${2:host}, ${3:installed_product}, ${4:product_version}, ${5:append_si_type}, ${6:append_short_si_type}"], + description: `Assemble the correct SI types based on the installed product` + }, + "attributes_extraction": { + snippets: ["${1:process}, ${2:host}, ${3:installed_product}, ${4:full_version}, ${5:append_si_type}, ${6:append_short_si_type}"], + description: `Keine Beschreibung verfügbar.` + }, + "rdbms_links_management": { + snippets: ["${1:si}, ${2:host}, ${3:install_root}"], + description: `Current function extracts RDBMS type and name from the configuration file.\nThen it links the related RDBMS SI to the appropriate BMC MM Services.\nChange history:\n2019-02-11 - Added an install root escape function.` + } + }, + "BMC_Migrator": { + }, + "BMC.MyIT_Smart_IT": { + "get_edition": { + snippets: ["${1:host}, ${2:rest_urls}"], + description: `Get edition using the REST API request\n\n2019-15-04 - Function added for ADDM 11.2+` + }, + "dwp_create_node": { + snippets: ["${1:host}, ${2:install_root}"], + description: `The function takes the DWP installed configuration file and tries to\nextract all of the relevant information from it.\n\nChange History:\n2020-04-22 - Changed "Unix" to "UNIX" in check for os_class (DRDC1-14633)\n2020-09-24 - Changed to create host containment link for Windows os_class too (DRDC1-15833)` + } + }, + "BMC.NetworkAutomation": { + "get_db_si": { + snippets: ["${1:version_file}, ${2:host}"], + description: `Keine Beschreibung verfügbar.` + }, + "package_version": { + snippets: ["${1:host}"], + description: `Keine Beschreibung verfügbar.` + } + }, + "BMC.PatrolAgent": { + "find_modules": { + snippets: ["${1:host}, ${2:pa_si}, ${3:module_type}"], + description: `Finds what modules are loaded or disabled based on the contents of the log directory\n\nFor most UNIX systems we can do this using awk and uniq\n\nIf that fails, for example because we have a Windows system, use grep or\nfindstr. We imitiate uniq by only searching for entries that have the latest\ntimestring\n\nTakes:\nHost\nTrigger SI\nModule Type - Loaded or Disabled\n\nReturns:\nList of modules of this particular module type\n\nChange History:\n2018-01-24 - Be more precise in what files we search for agent information\n(DRDC1-10677)\n2018-06-12 - Reduce the amount of data returned to each DiscoveryAccess (DRDC1-11462)\n2021-05-27 - Updated to use DiscoveryFunctions.runPowerShell()` + }, + "model_kms": { + snippets: ["${1:host}, ${2:pa_si}"], + description: `Function obtains all BMC PATROL Knowledge Modules from '' directory, its full_version and full module name\n\nChange History:\n2014-02-26 - fixed ECA error related with iteration (TKU-2152)\n2014-08-27 - added instance attribute for SC (TKU-2333)\n2015-11-03 - fixed an issue with KM name parsing(DRDC1-4835)\n2016-10-17 - updated short_name assignment (DRDC1-7127)\n2017-09-18 - updated pattern to extract short_name (DRDC1-9841)\n2017-09-29 - Only create SoftwareComponents for modules we're sure are\nrunning (DRDC1-9718)\n2018-12-14 - Make key case insensitive (DRDC1-12143)\n2019-02-29 - Use escaped path for file queries\n2020-06-02 - Updated to use 3 levels for product_version (DRDC1-15275)\n2023-09-26 - Updated commands run to discover modules (DRDC1-21869)\n2025-02-19 - Updated branding name (DRDC1-25564)\n2025-06-20 - Updated remove_from_short_name list (DRDC1-26730)` + } + }, + "BMC.PatrolEnterpriseManager": { + }, + "BMC.PatrolPAPerform": { + }, + "BMC.PATROL_DashBoard": { + }, + "BMC.PATROL_VisualisFaultManager": { + }, + "BMC.PerformanceAnalysisForServers": { + }, + "BMC.PerformanceAssuranceConsole": { + }, + "BMC.PerformanceManager": { + "model_BPM": { + snippets: ["${1:host}, ${2:type}, ${3:full_version}, ${4:km_name}, ${5:pa_si}"], + description: `Creates BMC Performance Manager SI\n\nChange History:\n2014-03-10 - Remove containment relationship to BMC Patrol SoftwareComponent\nnodes representing BMC Patrol KMs (TKU-2164/QM001821093)\n2014-05-29 - Containment relationship have been added for PATROL Agent and\nBMC Performance Manager Server SIs (QM001848339)\n2017-05-04 - Add removal group (DRDC1-8735)\n2017-06-08 - Better ways of handling SI ageing that's backwardly compatible\nwith SIs released before TKU May 2017 (DRDC1-8860)\n2017-11-24 - Containment relationship is replaced with dependancy. Aging updated (DRDC1-10303)\n2019-04-24 - Case insensitive search for instance (DRDC1-12449)` + } + }, + "BMC.PerformancePerceiver": { + }, + "BMC.PMPortal": { + }, + "BMC.Portal": { + "package_versioning": { + snippets: ["${1:host}, ${2:package_regex}"], + description: `Obtains version from installed packages\n\nChange History:\n2016-11-10 - Updated function names according to the Common_Functions changes (DRDC1-5767)\n` + }, + "file_versioning": { + snippets: ["${1:host}, ${2:file_uninstall}"], + description: `Returns variable full_version obtained from installvariables.properties file\n\nChange History:\n2019-02-12 - Updated to use DiscoveryFunctions.escapePath() function` + }, + "xml_file_versioning": { + snippets: ["${1:host}, ${2:config_file_content}, ${3:xml_path}"], + description: `Keine Beschreibung verfügbar.` + } + }, + "BMC.ProactiveNetAnalytics": { + "version_parsing": { + snippets: ["${1:text_to_parse}, ${2:component_names}"], + description: `Parses the output of a command or file to obtain version information\n\nTakes:\ntext_to_parse - The output of the command or file\ncomponent_names - A list of identifiers for the product we wish to version\n(e.g. BMC TrueSight)\n\nReturns:\nfull_version, build` + }, + "RemoteAgents": { + snippets: ["${1:host}, ${2:si_node}, ${3:install_root}"], + description: `This function runs pw remote list to obtain a list of hosts running remote agents\nA Client / Server link is created between the given SI and the agents\nTakes: host, SI node for BMC ProactiveNet Analytics Server, install_root\nReturns: List of remote agents\nChange History:\n2014-02-03 - Updated IdentifyMonitors for TKU_2014_02_01\n2015-02-05 - Removed privilege execution (TKU-3264)\n2015-07-23 - Check for legacy and modern SI type (TKU-4162)\n2019-03-01 - Use modern version of runCommand\n2020-09-03 - Added port to int conversion (DRDC1-14967)` + }, + "IdentifyMonitors": { + snippets: ["${1:host}, ${2:sis}, ${3:install_root}, ${4:local}"], + description: `This function runs pw monitor to find details of monitors running on the\nspecified SIs (these SIs can be remote agents, or the local server)\nIt will always update the running_monitor attribute of the SI giving details\nof the monitors. It may also update the detail nodes attached to the SI\nif the user has requested it\nFor local monitors function takes: host, [Server SI], install_root, true\nFor remote monitors function takes: host, List of agents, install_root, false\nReturns: Nothing\nChange History:\n2014-02-03 - A check is now made that si.running_monitors is not equal to none (TKU-2122)\n2015-02-05 - Removed privilege execution (TKU-3264)\n2015-08-05 - Better handling of the case where running_monitors does not exist on the SI\n2019-03-01 - Use modern version of runCommand` + }, + "set_product_version": { + snippets: ["${1:full_version}"], + description: `Given full version, sets version-related attributes\nChange History\n2023-05-31 - Set product_version to three rather than two levels of versioning (DRDC1-21356)\n` + }, + "set_si_name": { + snippets: ["${1:host}, ${2:si_type}, ${3:short_si_type}, ${4:product_version}"], + description: `Sets SI name and short_name attributes` + }, + "registry_versioning": { + snippets: ["${1:host}, ${2:registry_root}, ${3:build}"], + description: `Performs Registry versioning\nWe first attempt to obtain full_version from the registry\nIf we have full_version (either from the registry or from another source)\nbut no build information we attempt to extract the build number from the registry\n\nChange History:\n2026-04-06 - Fixed regex usage issue (DRDC1-29309)` + }, + "obtain_install_root": { + snippets: ["${1:host}, ${2:processes}"], + description: `Obtain installation root and directory separator against a given list of processes be it\njust the trigger process or all descendent processes` + }, + "active_versioning": { + snippets: ["${1:host}, ${2:install_root}, ${3:component_names}"], + description: `Performs active versioning\n\nTakes:\nThe host node\ninstall_root\ncomponent_names - A list of identifiers for the product we wish to version\n(e.g. BMC TrueSight)\n\nReturns: full_version, build\n\nChange History:\n2015-07-16 - Allow multiple component_names to be passed\n2019-03-01 - Use modern version of runCommand` + }, + "file_versioning": { + snippets: ["${1:host}, ${2:install_root}, ${3:sep}, ${4:leafname}, ${5:component_names}"], + description: `Performs file versioning\n\nTakes:\nThe host node\ninstall_root\ndirectory separator\nfilename used for versioning\ncomponent_names - A list of identifiers for the product we wish to version\n(e.g. BMC TrueSight)\n\nReturns: full_version, build\n\nThe file we read is typically one line long, an example of the contents is\n"TrueSight 10.0 build 241249787"\n\nChange History:\n2015-07-16 - Allow multiple component_names to be passed` + }, + "package_versioning": { + snippets: ["${1:host}, ${2:packages}, ${3:component_portions}"], + description: `Returns package versioning including build if available.\n\nIf packages are not passed in, the function will attempt to obtain a list\nof packages related to one or more components of the products by creating\na regex based on component_portions.\n\nIt also attempts to extract port information from the package name.\n\nChange History:\n2015-07-16 - Allow multiple component_portions to be passed` + } + }, + "BMC.ProductRegistryFile": { + }, + "BMC.RecoveryManager": { + }, + "BMC.ReleaseLifecycleManagement": { + "file_versioning": { + snippets: ["${1:config_file_content}, ${2:feature}"], + description: `Extracts full_version and patch from the BMC RLM configuration file` + }, + "set_attrs": { + snippets: ["${1:host}, ${2:full_version}, ${3:si_type}, ${4:short_type}, ${5:brpd_home}"], + description: `Extracts product_version, sets name, short name and key attributes.` + }, + "package_versioning": { + snippets: ["${1:host}"], + description: `Extracts full_version from BMC RLM package.\n\nChange History:\n2015-04-15 - Now ensures we have packages to avoid potential ECA error (TKU-3764)\n2023-01-16 - Updated (?i) flag placement in regular expression (DRDC1-20566)` + } + }, + "BMC.ReleaseProcessManagement": { + }, + "BMC.RemedyARSystem": { + "package_versioning": { + snippets: ["${1:host}"], + description: `Current function tries to extract versioning information from\n"BMC Remedy Action Request System" package\n\nChange History:\n2016-05-31 - Updated function names according to the CommonFunctions changes\n2019-11-23 - Adding a check for internal version used with the package on Windows host.(DRDC1-12246)` + }, + "file_versioning_and_listening_ports": { + snippets: ["${1:host}, ${2:full_version_already_set}, ${3:install_root}, ${4:sep}"], + description: `Keine Beschreibung verfügbar.` + }, + "flashboards_attrs": { + snippets: ["${1:host}, ${2:install_root}, ${3:active_cmd}, ${4:separator}"], + description: `Current function extracts the version, port and server_name attributes for AR System Flashboards\n\nChange History:\n2013-11-28 - Regexes no longer match on commented-out lines (QM001809823)\n2019-03-01 - Update to use new path escape function\n2020-08-04 - Converts from binary file version to AR system version (DRDC1-14928)` + }, + "parse_db_file": { + snippets: ["${1:db_file}"], + description: `Related RDBMS details and Atrium SSO extraction\n\nChange History:\n2016-09-01 - added "db_instance" to the output\n2019-01-29 - database name extraction for Oracle updated (DRDC1-12521)` + }, + "module_security_xml_parse": { + snippets: ["${1:xml_file}"], + description: `Parse the PremiumSecurityInstalledConfiguration.xml and PerformanceSecurityInstalledConfiguration.xml\nto obtain the list of modules which are now used under encryption.\n\nChange History:\n2026-04-06 - Fixed regex usage issue (DRDC1-29309)` + }, + "webxml_db_parse": { + snippets: ["${1:host}, ${2:web_xmls}"], + description: `Parse the web.xml files to obtain the db details.` + } + }, + "BMC.RemedySingleSignOn": { + }, + "BMC.TMART": { + }, + "BMC.TrackIt": { + }, + "BMC.TrueSightAutomationConsole": { + "linking_from_dbs": { + snippets: ["${1:host}, ${2:si}, ${3:db_host}, ${4:db_sis}, ${5:db_port}"], + description: `'\nLink to TSSA, Discovery and Orchestrator\n\nThere's three parts to this\nPart 1 - Find database name used for configuration information\nPart 2 - Query database\nPart 3 - Parse database output\n\nTakes: TSAC SI, Related Database SI node\nReturns: Nothing, but it does all linking information to TSAC SI` + } + }, + "BMC.TrueSightMiddlewareAdministrator": { + }, + "BMC.TrueSightPresentationServer": { + }, + "BMC.TrueSightPulseAgent": { + }, + "BMC.TrueSight.AppVisibilityManager": { + "parse_properties_file": { + snippets: ["${1:host}, ${2:component}, ${3:process}"], + description: `This function extracts as much information as possible from the relevant properties file\n\nTakes:\nhost\ncomponent - portal, collector or apm-proxy\nprocess - The trigger process\n\nReturns:\ninstall_root\nlistening_ports\nlinked_sis - A list of the SIs we should create a client/server relationship\nto (the SI that called this function is the client)\n\n2016-02-17 - Type of linked SI has changed to BMC App Visibility Manager Portal (DRDC1-5550)\n2023-01-16 - Updated (?i) flag placement in regular expression (DRDC1-20566)` + }, + "versioning": { + snippets: ["${1:host}"], + description: `Check ProductRegistry.xml for version information\nOn Windows, also checks package list\n\nTakes: Host\nReturns: full_version, product_version` + } + }, + "BMC.TrueSight.ITDataAnalytics": { + "getLicenseDetail": { + snippets: ["${1:host}, ${2:config_filename}, ${3:si_type}"], + description: `This function parses the configuration file for license information\n\nTakes: Host, name of configuration file, SI type\nReturn: License detail node` + }, + "getVersion": { + snippets: ["${1:host}"], + description: `This function obtains version from the ProductRegistry.xml file\nIf that fails it takes version from the package list (Windows only)\n\nTakes: Host node\nReturns: Full version\n\nChange History:\n2023-01-16 - Updated (?i) flag placement in regular expression (DRDC1-20566)` + }, + "serverLinking": { + snippets: ["${1:host}, ${2:conf_file_content}, ${3:si_node}"], + description: `This function parses the configuration file to find which Indexer,\nCollection Station and Databases the server SI should be linked to\n\nIt also creates a second order SI based on the cluster information found\nin the configuration file\n\nTakes: Host, configuration file content, Server SI node\nReturns: Nothing\n\nChange History:\n2015-08-10 - Change is the way we add SIs to the second order SI (TKU-3720)` + } + }, + "BMC.TrueSight.SmartReportingForServerAutomation": { + "findDWdbs": { + snippets: ["${1:host}, ${2:install_root}, ${3:si}"], + description: `Find and link to all databases TSSA-DW uses\n\nTakes : host\ninstall_root - Where we look for the configuration file\nsi node to link dbs to\nReturns : List of nodes representating databases for configuration\n\nChange History:\n2022-05-04 - Improve search for linked database when we don't have\nperfect information (DRDC1-17022)` + }, + "linkToTSSR": { + snippets: ["${1:host}, ${2:db_node}, ${3:db_name}"], + description: `Find linked TSSR SIs\n\nTakes : host\nInformation needed for database query: db_host_node, db_name, db_type,\ndb_port, bind_address\n\nReturns : List of linked TSSR SIs` + }, + "findTSNADWLinks": { + snippets: ["${1:si}, ${2:install_root}"], + description: `Created links from TSNA-DW SI to\n* The SQL Server database containing the configuration information\n* The BMC TrueSight Network Automation Server SI\n* The BMC TrueSight Smart Reporting SI\n\nTakes:\n* si node to link to\n* install_root where we find the dwh.properties file\n\nReturns: Nothing\n\nChange History:\n2022-05-04 - Move code to standard functions (DRDC1-17022)\n2023-10-18 - Update for removal group (DRDC1-21871)` + } + }, + "BMC.VirtualChat": { + }, + "BMC.Visualizer": { + "get_wmi_query_version": { + snippets: ["${1:host}, ${2:file}"], + description: `Takes file version via wmi query.` + }, + "prepare_data": { + snippets: ["${1:host}, ${2:si_type}, ${3:full_version}"], + description: `function prepares the data for the SI` + } + }, + "Borland.CaliberRM": { + }, + "Borland.Gauntlet": { + }, + "Borland.LicenseServer": { + }, + "Borland.SilkMeter": { + }, + "Borland.SilkTest": { + }, + "Borland.StarTeam": { + }, + "Borland.Together": { + }, + "Borland.VisiBroker": { + }, + "BottomlineTechnologies.TransformSuite": { + }, + "BristolGroup.IsoFax": { + }, + "Broadcom.UnifiedInfrastructureManagement": { + }, + "Brocade_FOS_SAN_Switch": { + "executeRequest": { + snippets: ["${1:discovery_access}, ${2:request_query}"], + description: `Return the decoded json response to the api request` + }, + "findFCPortNode": { + snippets: ["${1:wwpn}"], + description: `Return a FC port node matching the given wwpn\n\nReturns none if the node cannot be found. If multiple\nnodes are found, the "first" one is returned` + }, + "updateEdgeConnection": { + snippets: ["${1:fc_node}, ${2:remote_wwpn}, ${3:rgroup}"], + description: `Update the connection between the\nswitch port (FC Port) <--> storage system (FC Port)\nswitch port (FC Port) <--> Host (FC HBA)` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:device}, ${3:rgroup}"], + description: `Perform a scan on the given endpoint\n\nChange History:\n2026-02-02 - Updated the function to discover ports\nconfigured in Virtual Fabric mode for\nTKU_2026_04_01 (DRDC1-28584).\n2026-06-29 - Updated the function to discover the vendor\nserial value for TKU_2026_08_01 (DRDC1-29827).` + } + }, + "Brocade.NetworkAdvisor": { + }, + "Brocade.SANnavManagementPortal": { + }, + "Brocade_SANnav_REST": { + "findFCPortNode": { + snippets: ["${1:wwpn}"], + description: `Return a FC port node matching the given wwn\n\nReturns none if the node cannot be found. If multiple\nnodes are found, the "first" one is returned` + }, + "buildPortLookupList": { + snippets: ["${1:json_nodes}"], + description: `Build a Port lookup table keyed by switch wwn` + }, + "buildFCPortNodeLookup": { + snippets: ["${1:device}"], + description: `Return a list of FC port nodes matching the given Network device\n\nReturns none if the node cannot be found.` + }, + "updateEdgeConnection": { + snippets: ["${1:port_node}, ${2:remote_wwpn}, ${3:sannav_rgroup}"], + description: `Update the connection between the\nswitch port (FC Port) <--> storage system (FC Port)\nswitch port (FC Port) <--> host (FC HBA)` + }, + "getFabricID": { + snippets: ["${1:id}"], + description: `Return fabric id and virtual_mode` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:parent}, ${3:scope_value}, ${4:sannav_auth}, ${5:sannav_rgroup}"], + description: `Perform a storage scan on the given endpoint. The endpoint is a\nhost with a SI SANnav Management Portal.\nNo assumption should be made about which endpoint we have\n\nChange History:\n\n2022-11-07 Added the IP address node for the Network Device\nnode (DRDC1-20073)\n\n2023-09-12 ECA error when port wwn is void (DRDC1-21828)\n2025-01-06 Added __resource_unit attribute (DRDC1-24921)\n2025-10-21 ECA error when fc port table is none (DRDC1-27847)` + } + }, + "Brocade_SANSwitch_CIM": { + "findNetworkDevice": { + snippets: ["${1:host}, ${2:switch_serial}"], + description: `Return a NetworkDevice node matching the given switch_serial\n\nReturns none if the node cannot be found. If multiple\nnodes are found, the "first" one is returned\n\nChange History:\n\n2020-07-16 - Added host parameter to findNetworkDevice() (DRDC1-15362)\n2020-07-16 - Updated search to consider scope (DRDC1-15362)` + }, + "findFCPortNode": { + snippets: ["${1:wwpn}"], + description: `Return a FC port node matching the given wwpn\n\nReturns none if the node cannot be found. If multiple\nnodes are found, the "first" one is returned` + }, + "buildFCPortNodeLookup": { + snippets: ["${1:device}"], + description: `Return a list of FC port nodes matching the given Network device\n\nReturns none if the node cannot be found.` + }, + "updateEdgeConnection": { + snippets: ["${1:device_node}, ${2:port_node}, ${3:connected_device}, ${4:brocade_rgroup}"], + description: `Update the connection between the switch port\n(FC Port) <--> storage system (FC Port) and between\nswitch port <--> host (FC HBA)` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:parent}, ${3:brocade_rgroup}"], + description: `Perform a storage scan on the given endpoint. The endpoint is a\nhost with a SI Brocade Network Advisor.\nNo assumption should be made about which endpoint we have\n\nChange History:\n\n2019-12-11 Update Fibre Channel port name for switches\nrunning in virtual mode (DRDC1-14364)\n2020-07-16 Added host parameter to findNetworkDevice() (DRDC1-15362)\n` + } + }, + "Brocade.ServerIron_LoadBalancer": { + }, + "BusinessObjects.BroadcastAgent": { + }, + "BusinessObjects.BusinessObjectsEnterprise": { + "path_versioning": { + snippets: ["${1:host}, ${2:cmd_args}"], + description: `path_versioning performs path versioning\n\nChange History:\n2021-11-18 - Regexes updated to support '_xi' in path (DRDC1-17752)\n2023-02-06 - Regexes restructured to support '_xi' in path (DRDC1-20714)\n2024-09-20 - Regexes updated to support 'bo' in path (DRDC1-24119)` + }, + "wmi_query_versioning": { + snippets: ["${1:host}, ${2:process_cmd}, ${3:wmi_ns}"], + description: `Keine Beschreibung verfügbar.` + }, + "registry_versioning": { + snippets: ["${1:host}"], + description: `Registry Versioning` + } + }, + "BusinessObjects.BusinessObjectsOLAPIntelligence": { + }, + "BusinessObjects.BusinessObjectsWebIntelligence": { + }, + "BusinessObjects.CrystalEnterprise": { + "getSIAttributes": { + snippets: ["${1:process}, ${2:type}, ${3:short_si_type}"], + description: `Keine Beschreibung verfügbar.` + } + }, + "BusinessObjects.CrystalReports": { + }, + "BusinessObjects.CrystalSuiteComponents": { + }, + "BusinessObjects.CrystalXcelsius": { + }, + "BusinessObjects.InfoView": { + }, + "Business_Objects.BusinessObjects": { + }, + "Cacti": { + }, + "CanalCNI": { + }, + "CarbonBlack.CbProtection": { + }, + "CarbonBlack.CbResponse": { + "packageVersioning": { + snippets: ["${1:host}, ${2:si_type}"], + description: `Get version information from package` + } + }, + "Caucho.ResinApplicationServer": { + }, + "CA.AccessControl": { + "active_versioning": { + snippets: ["${1:host}, ${2:install_root}"], + description: `Extracts full_version, product_version and build from the command output\n\nChange History:\n2019-02-05 - replace discovery.runCommand with Future.runCommand` + }, + "package_versioning": { + snippets: ["${1:host}"], + description: `Extracts full_version using package information` + }, + "file_versioning": { + snippets: ["${1:host}, ${2:install_root}"], + description: `Extracts full_version from the seos.ini file` + } + }, + "CA.ARCserve": { + }, + "CA.ARCserveBackupAgentOpenFiles": { + }, + "CA.Audit": { + }, + "CA.AutoSys.Workload_Automation": { + }, + "CA.Clarity": { + }, + "CA.Directory": { + }, + "CA.DLP": { + }, + "CA.eHealth": { + "getVersion": { + snippets: ["${1:host}, ${2:process}"], + description: `Path and package versioning are supported\n\nChange History:\n2023-01-13 - Updated (?i) flag placement in regular expression (DRDC1-20566)` + } + }, + "CA.EnterpriseCommunicator": { + }, + "CA.ERwinDataModeler": { + }, + "CA.ERwinDataModelValidator": { + }, + "CA.ERwinProcessModeler": { + }, + "CA.eTrust.Admin": { + }, + "CA.eTrust.Antivirus": { + }, + "CA.FastUnload": { + }, + "CA.GatewaySecurity": { + }, + "CA.Portal": { + }, + "CA.ServiceDesk": { + }, + "CA.SiteMinder": { + "get_file_content": { + snippets: ["${1:host}, ${2:file_path}"], + description: `Keine Beschreibung verfügbar.` + } + }, + "CA.SoftwareChangeManager": { + }, + "CA.Spectrum": { + "get_version": { + snippets: ["${1:host}, ${2:process}, ${3:install_root}"], + description: `Keine Beschreibung verfügbar.` + } + }, + "CA.Unicenter.DSM": { + }, + "CA.Unicenter.NSM": { + }, + "CA.WilyIntroscope": { + "package_versioning": { + snippets: ["${1:host}"], + description: `package_versioning performs package versioning\nChange History:\n2017-05-29 - Updated to use DiscoveryFunctions (DRDC1-8868, DRDC1-8869)\n2023-01-16 - Updated (?i) flag placement in regular expression (DRDC1-20566)` + } + }, + "CA.WorkloadAutomation": { + }, + "CA.XCOMDataTransport": { + }, + "Celerra_Storage": { + "processStoragePools": { + snippets: ["${1:discovery_access}, ${2:cimnas_storage_pool_records}, ${3:pool_nodes}, ${4:storage_sys}, ${5:subscribed}"], + description: `Create the pools for the given set of arrays\n` + }, + "createConsumedDiskDrivesByVolumes": { + snippets: ["${1:drive_node}, ${2:disk_volume_id}, ${3:volume_node_by_disk_volume_id}, ${4:drive_node_list_by_volume_id}"], + description: `\nCreate 'StorageUse' Relationship between Disk volume drive_node and the NAS volume\n` + }, + "buildVolumeNumberedLookup": { + snippets: ["${1:volume_node_list}, ${2:base}"], + description: `Loop over all the volume nodes in volume_node_list and build a lookup\ntable keyed by the 'volume_id' attribute converted\nto a number using the base parameter.` + }, + "buildNasVolumesbyDisk": { + snippets: ["${1:cimnas_volumes_by_id}, ${2:volume_nodes}, ${3:volume_node_by_disk_volume_id}"], + description: `volume_node_by_disk_volume_id\n\nget the list of file volumes nodes for each disk volume id\n` + }, + "updateSubscribedCapacity": { + snippets: ["${1:pool_nodes}, ${2:subscribed}"], + description: `\nUpdate subscribed capacity\n` + }, + "processStorageVolumes": { + snippets: ["${1:discovery_access}, ${2:pool_nodes}, ${3:volume_nodes}, ${4:storage_sys}, ${5:cimnas_filesystem_by_id}, ${6:subscribed}"], + description: `\nCreate the StorageVolumes for the given set of arrays\n` + }, + "processNetworkInterfaces": { + snippets: ["${1:ni_nodes_by_id}, ${2:network_port_records}, ${3:nas_head}"], + description: `Create network interface nodes and link them to the nas head` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:parent}, ${3:parent_scope}"], + description: `Perform a storage scan on the given endpoint. The endpoint may be\na host with a management SI or the device endpoint itself. No\nassumption should be made about which endpoint we have.\n\nChange History:\n\n2015-10-16 delete both classes Celerra_UxfsLocalFileSystem and Celerra_HostedFileSystem_DMCS_UFS for TKU-4372 (these classes no longer exists in smis 8)\n2015-10-16 change the value of vendor_name for data mover for TKU-4372\n2015-10-21 indexed the CIMNAS_FileSystem by data_mover name and by file system id to optimize the loops for TKU_2015_10_01 release\n2020-02-26 Add the discovery of NAS Servers for TKU_2020_05_01 (DRDC1-13483 DRDC1-13574)\n2020-07-03 Added scope attribute to StorageSystem node (DRDC1-15299)\n2021-01-08 Fix an ECA Error that occured when the records of data movers return an empty list for TKU_2021_02_01 (DRDC1-16312)\n2021-07-15 Fix an ECA Error that occured when the record of data movers software identity return an empty list for TKU_2021_08_01 (DRDC1-17098)\n2023-02-14 Attribute Virtual for the storage system node is set to True if the type is NAS Virtual Server (DRDC1-20572)\n2024-04-03 Add the attribute dns_domain\nto storage system / storage device (DRDC1-23285)\n2024-04-15 Added hidden attribute __capability_ids for TKU_2024_07_01\n(DRDC1-23319)` + } + }, + "Celery.Celery": { + }, + "Celery.CeleryBeat": { + }, + "Centrify.AuthenticationService": { + }, + "Ceph.Manager": { + }, + "Ceph_Storage": { + }, + "CertificateCommonFunctions": { + "normalizeAttribute": { + snippets: ["${1:attribute}"], + description: `Normalize a certificate attribute Distinguished Name string\n\n@param attribute - The certificate attribute string to normalize\n@return Normalized attribute string with consistent formatting\n\nSteps:\n1. Strip OpenSSL prefixes (subject=/issuer=) and verify-output prefixes (depth=0)\n2. Convert slash-separated DNs (/C=..../ST=....) to comma-separated form\n3. Canonicalize spacing around separators and equals (", " and "=")\n4. Replace emailAddress (and OID 1.2.840.113549.1.9.1) with E=\n5. Replace ST= with S=\n6. Remove double quotes (often present in subject strings)` + }, + "needsAttributeNormalization": { + snippets: ["${1:subject}"], + description: `Validate if a subject string needs normalization\n\n@param subject - The certificate subject string to check\n@return true if the subject contains non-normalized patterns\n\nChecks for:\n- OID 1.2.840.113549.1.9.1 (emailAddress)\n- ST= prefix (non-normalized state abbreviation)\n- Missing spaces after commas\n- Double quotes around values` + }, + "extractSubjectComponent": { + snippets: ["${1:subject}, ${2:component}"], + description: `Extract a specific DN component from a normalized subject\n\n@param subject - The certificate subject string (should be normalized)\n@param component - The DN component to extract (e.g., "CN", "O", "C", "E", "S")\n@return The value of the component, or void if not found\n\nExamples:\nextractSubjectComponent("CN=example.com, O=Org, C=US", "CN") -> "example.com"\nextractSubjectComponent("CN=example.com, O=Org, C=US", "O") -> "Org"\nextractSubjectComponent("E=user@example.com, CN=example", "E") -> "user@example.com"\n\nChange History:\n2026-07-22 - Updated regex to handle plus-separated components\n(e.g., "CN=..., OU=... + CN=...")` + }, + "subjectsAreEquivalent": { + snippets: ["${1:subject1}, ${2:subject2}"], + description: `Compare two subject strings ignoring normalization differences\n\n@param subject1 - First subject string (may or may not be normalized)\n@param subject2 - Second subject string (may or may not be normalized)\n@return true if the two subjects are semantically equivalent\n\nThis function normalizes both subjects before comparison,\nallowing equivalence testing regardless of format variations.` + } + }, + "CFEngine": { + "CF_version": { + snippets: ["${1:host}, ${2:process}"], + description: `Function for version extraction.\nImplements active and package versioning and edition extraction.\n\nChange History:\n2019-02-05 - replace discovery.runCommand with Future.runCommand\n` + } + }, + "CharlesRiver.InvestmentManagementSolution": { + }, + "Checkmk.Checkmk": { + }, + "CheckPoint.Firewall_1": { + }, + "Checkpoint_VSX": { + }, + "Chef": { + }, + "CIMC": { + }, + "Cisco.ACE.LoadBalancer": { + }, + "Cisco_ACI": { + "getDecoded": { + snippets: ["${1:target}, ${2:proto}, ${3:path}, ${4:msg_prefix}"], + description: `Returns a decoded JSON using API pagination feature or none on failure` + }, + "buildACILookupTable": { + snippets: ["${1:imdata}, ${2:json_object}, ${3:attributes}, ${4:key}, ${5:message_prefix}, ${6:children_objects}"], + description: `Builds a lookup table with the passed key.\n\nimdata: Top level json object for ACI,\nobtained using ACIFunctions.getDecoded().\n\njson_object: Underlying json object,\nthe one that we are actually trying to get attributes from\n(for example topSystem).\n\nattributes: Contains a list of attributes\nthat we are interested in.\nIf a requested attribute is not found\nwe set its value to void.\n\nkey: Lookup table is created based on the key value.\n\nchildren_objects: Table keyed with 'children' json objects to process\nin the parent json_object and value containing attributes\nto extract from the children object.\n\nlookup_table = {key1 : {'attr1': value1, 'attr2': value2, ...},},\nkey2 : {'attr1': value1, 'attr2': value2, ...},},,,\nchild_json_object_1 : [{'attr1': value1, 'attr2': value2},\n{'attr1': value3, 'attr2': value4}...\n]\n\nExample of the imdata:\n'imdata': [\n{'topSystem': {\n'attributes': {\n'address': '10.0.0.1',\n'serial': 'a43423',\n...}}},\n{'topSystem': {\n'attributes': {\n'address': '10.0.0.2',\n'serial': 'b43453',\n...}}},,...]\n\nAnother example with different json objects:\n'imdata': [\n{'infraWiNode': {\n'attributes': {\n'addr': '10.0.0.1',\n'adminSt': 'in-service',\n...}}},\n{'infraCont': {\n'attributes': {\n'childAction': '',\n'dn': 'topology/pod-1/node-1/av',}}}..],\n\nExample with nested ('children') object:\n'imdata': [\n{\n'fvAEPg': {\n'attributes': {\n'descr': 'RDC to prod SBC',\n'dn': 'uni/tn-F1_FV_P_ST/ap-AP_FIXEDVOICE/epg-EPG_VL3591',\n...\n},\n'children': [\n{\n'fvRsBd': {\n'attributes': {\n'tDn': 'uni/tn-F1_FV_P_ST/BD-BD_VL3591',\n'tnFvBDName': 'BD_VL3591',\n...\n}\n}\n}\n]\n}\n},\n'fvAEPg': {...\n\nChange History:\n2021-12-01 - Updated to support nested ('children') json objects processing;` + }, + "createDeviceIP": { + snippets: ["${1:apic}, ${2:network_device}, ${3:ipv4_addresses}, ${4:ipv6_addresses}, ${5:ACI_RGROUP}"], + description: `Creates IPv4, IPv6 addresses and netmask nodes\nfor ACI NetworkDevice.` + }, + "linkEndpointToPort": { + snippets: ["${1:path_dn}, ${2:pc_name_to_pc_interface}, ${3:leafs_table}, ${4:endpoint}, ${5:message_prefix}, ${6:CEP_TYPE}, ${7:ACI_RGROUP}"], + description: `Links ACI Endpoint with NetworkInterface on the leaf switch.` + } + }, + "Cisco_AP": { + "getModelName": { + snippets: ["${1:model}, ${2:type}"], + description: `Get model name for AP\n\nChange History:\n\n2019-08-08 - model should be stripped as it might contain extra spaces;` + } + }, + "Cisco.AppDynamics": { + "getConfigParamsFromProcessArgs": { + snippets: ["${1:process_args}"], + description: `Extract AppDynamics options from command line arguments ('-Dappdynamics' parameters)` + }, + "parseConfigurationFile": { + snippets: ["${1:config_file_content}"], + description: `Parse content of configuration file\nReturns table with attributes with mapped names and their values` + }, + "getConfigParamsFromConfigFile": { + snippets: ["${1:host}, ${2:agent_home_path}"], + description: `Discover the configuration files and extract configuration parameters\n\nChange History:\n2022-03-04 - Updated to support Windows path (DRDC1-18556)\n2026-04-08 - Updated escape sequence (DRDC1-29309)` + }, + "addAdditionalNodeAttributes": { + snippets: ["${1:sc}, ${2:config_params_table}"], + description: `Add additional node attributes` + }, + "versioningByDirectoryListing": { + snippets: ["${1:host}, ${2:listing_paths}, ${3:listing_regex}, ${4:file_content_regex}"], + description: `Version extraction using discovery.listDirectory().\n\nDiscover version by searching through directories for files matching\na specific pattern. Can extract version information either from filename or from file content.` + } + }, + "Cisco_Catalyst_Center": { + "getURL": { + snippets: ["${1:parts}"], + description: `Build endpoint URL path from parts` + } + }, + "Cisco.CSS11500_LoadBalancer": { + }, + "Cisco.HyperFlex": { + }, + "Cisco.HyperFlexHXDataPlatform": { + }, + "Cisco.InformationServer": { + }, + "Cisco_Nexus_VDC": { + }, + "Cisco_NX_API": { + }, + "Cisco.SecureACS": { + }, + "Cisco_Server_Load_Balancing": { + }, + "Cisco.UCM": { + }, + "Cisco_UCS": { + }, + "Citrix.CloudConnector": { + }, + "Citrix.EdgeSightforXenApp": { + }, + "Citrix.LicensingService": { + }, + "Citrix.NetScaler": { + }, + "Citrix.PresentationServer": { + }, + "Citrix.XenApp": { + }, + "Citrix.XenAppFuncs": { + "getVersion": { + snippets: ["${1:host}"], + description: `Obtain version from packages\nReturn full_version and product_version\n\nChange History:\n2021-11-02 - Check package Citrix Virtual Delivery Agent for version\n(DRDC1-17582)\n2022-05-16 - Update product_version to be multiple digits at\nsecond level (DRDC1-18961)\n2023-01-16 - Updated (?i) flag placement in regular expression (DRDC1-20566)\n2023-02-10 - product_version now set to marketing version (DRDC1-20764)\n2023-10-11 - Added package for Citrix Virtual Apps and Desktops (DRDC1-20972)` + }, + "getServerFarm": { + snippets: ["${1:host}"], + description: `Keine Beschreibung verfügbar.` + }, + "getEdition": { + snippets: ["${1:host}"], + description: `Obtain edition from registry\nReturn edition` + }, + "createDBconnection": { + snippets: ["${1:host}, ${2:si_node}"], + description: `Obtain database information from the registry\nCreate link to database\n\nChange History:\n\n2021-09-13 - updated database search (DRDC1-17418)` + }, + "GetAdminDomain": { + snippets: ["${1:host}, ${2:si_node}"], + description: `Function extracts Admin Domain` + }, + "GetWorkerGroup": { + snippets: ["${1:host}, ${2:si_node}"], + description: `Function extracts Worker group` + }, + "GetZoneName": { + snippets: ["${1:host}, ${2:si_node}"], + description: `Function extracts Zone\n\nChange History:\n2023-07-05 - Fix bug in WMI query (DRDC1-21554)` + }, + "getInstalledApps": { + snippets: ["${1:host}, ${2:si_node}, ${3:apps_to_discover}"], + description: `Function extracts published apps\n\nChange History:\n2023-11-16 - Replaced 'stop' with 'return' (DRDC1-22238)` + } + }, + "Citrix.XenComponents": { + }, + "Citrix.XenDesktop": { + }, + "Citrix.XenDesktopSite": { + }, + "Citrix.XenVM": { + }, + "Cloudera.CDH": { + "linkToCDH": { + snippets: ["${1:host}, ${2:args}, ${3:si}, ${4:cdh_version}"], + description: `Links SI from arguments to Cloudera CDH/CDP SI according to CDH/CDP version.\n\nChange History:\n2025-07-04 - Changed si_type from "CDP" to "Data Platform" (DRDC1-25497)` + } + }, + "Cloudera.DataScienceWorkbench": { + }, + "Cloudera.FlowManagement": { + }, + "Cloudera.Impala": { + "file_versioning": { + snippets: ["${1:host}, ${2:install_root}"], + description: `Performs file versioning\n\nChange History:\n2022-07-12 - Updated regex to get cdh_version (DRDC1-18489)` + }, + "package_versioning": { + snippets: ["${1:host}, ${2:package_regexes}"], + description: `Performs package versioning\n\nChange History:\n2022-07-12 - Updated regex to get cdh_version (DRDC1-18489)\n2023-02-02 - Refactored code (DRDC1-20599)` + } + }, + "Cloudera.Manager": { + }, + "CloudFoundry.API": { + "getLinks": { + snippets: ["${1:node}"], + description: `Links provide URLs to relationships and actions for a resource.\nEach link is keyed by its type and will include a href for the URL.` + } + }, + "CloudFoundry.CCBridge": { + }, + "CloudFoundry.Controller": { + }, + "CloudFoundry.CoreFunctions": { + "associateProcesses": { + snippets: ["${1:si}, ${2:process}, ${3:cmd}, ${4:args}, ${5:descendents}"], + description: `Find all the associated processes and link them to the SI\n\nIncludes all the descendents unless disabled.` + }, + "getYAMLParameters": { + snippets: ["${1:host}, ${2:config_file_path}, ${3:keylist}"], + description: `Obtain parameters from yml config file` + }, + "getVersionFor": { + snippets: ["${1:host}, ${2:version_file}, ${3:package}"], + description: `Obtain version information from CF version file.\n\nChange History:\n2020-02-03 - Added validation of JSON file contents (DRDC1-14252).` + }, + "extractVersionStrings": { + snippets: ["${1:version}, ${2:prefix}"], + description: `` + }, + "destroyObservedCommunicationLink": { + snippets: ["${1:si}, ${2:node}, ${3:incoming}"], + description: `Find and destroy an ObservedCommunication link.` + } + }, + "CloudFoundry.DiegoAccess": { + }, + "CloudFoundry.DiegoBrain": { + }, + "CloudFoundry.DiegoCell": { + }, + "CloudFoundry.DiegoDB": { + }, + "CloudFoundry.Garden": { + }, + "CloudFoundry.GORouter": { + }, + "CloudFoundry.Loggregator": { + }, + "CloudFoundry.Networking": { + }, + "CloudFoundry.ServiceBrokers": { + }, + "Cloud.CommonFunctions": { + "getResults": { + snippets: ["${1:result_list}"], + description: `Returns the member results associated with the result list.\nReturns none if the call failed (failure_reason is set)` + }, + "getRelatedResults": { + snippets: ["${1:result_list}, ${2:discovery_method}"], + description: `Returns the related member results for the same DA.\nReturns none if the call failed (failure_reason is set)\nor there are no results` + }, + "getRelatedResultsFromDA": { + snippets: ["${1:da}, ${2:discovery_method}"], + description: `Returns the related member results for the DA.\nReturns none if the call failed (failure_reason is set)\nor there are no results` + }, + "_getRemovalTrackerNodes": { + snippets: ["${1:kind}, ${2:tag}, ${3:is_rel}"], + description: `Get nodes for the tracker\n\nChange History:\n2017-11-13 - added removal tracker for DatabaseDetail (DRDC1-10046)\n2018-03-02 - added removal tracker for SoftwareContainer and Cluster (DRDC1-10873)\n2018-05-21 - added removal tracker for SoftwareComponent (DRDC1-10357)\n2019-03-27 - added removal tracker for CloudResource (DRDC1-12299)\n2020-05-24 - added removal tracker for CloudManagementGroup\n2022-12-12 - added removal tracker for Detail node (DRDC1-20210)\n2023-05-15 - added removal tracker for NetworkService (DRDC1-20214)\n2023-11-10 - added removal tracker for Subnet (DRDC1-13379)\n2024-01-18 - added removal tracker for SoftwarePod (DRDC1-22097)\n2024-02-15 - added removal tracker for HardwareContainer, Host (DRDC1-20214)\n2025-02-20 - added removal tracker for Certificate (DRDC1-25383)\n2025-02-20 - added removal tracker for Configuration (DRDC1-23045)\n2025-07-22 - added removal tracker for StorageSystem, StorageSystemGroup\nand Replication relationship (DRDC1-16292)\n2025-07-14 - added removal tracker for Namespace (DRDC1-23976)\n2026-05-04 - added removal tracker for ServerlessFunction\nand RuntimeEnvironment (DRDC1-25377)` + }, + "initializeRemovalTracker": { + snippets: ["${1:name}, ${2:kind}, ${3:tag}, ${4:is_rel}"], + description: `Initialises a removal tracker for the given and removal tag` + }, + "updateRemovalTracker": { + snippets: ["${1:tracker}, ${2:node}"], + description: `Update the removal tracker: tag the node as part of this tracker\nand update the tracked nodes` + }, + "suppressRemovalTracker": { + snippets: ["${1:tracker}"], + description: `Suppresses the removal tracker processing. No nodes will be removed.\nwhen processRemovalTracker is called.` + }, + "processRemovalTracker": { + snippets: ["${1:tracker}"], + description: `Process the removal tracker, removing any unconfirmed nodes` + }, + "getCloudNodes": { + snippets: ["${1:node}"], + description: `Returns the related cloud service, region and provider for the given\nnode.` + }, + "updateFailureTimeForService": { + snippets: ["${1:service_key}, ${2:da}"], + description: `Updates the last_update_failure time on the reqested CloudService\nnode, if it can be found` + }, + "linkFileSystems": { + snippets: ["${1:fs}, ${2:remote_name}, ${3:fs_types}"], + description: `Links the given EXPORTED FileSystem to any REMOTE FileSystems\nwhich are mounting it` + }, + "splitIntoBlocks": { + snippets: ["${1:the_list}, ${2:limit}"], + description: `Splits the given list into a list of blocks. Each block will contain\nat most "limit" items. The final block may contain less than the limit.` + }, + "addTags": { + snippets: ["${1:node}, ${2:tag_set}, ${3:skip}"], + description: `Change History:\n2019-10-18 - addTags function has been moved to DiscoveryFunctions. (DRDC1-11568)` + }, + "updateNodeAttrs": { + snippets: ["${1:node}, ${2:attrs}"], + description: `Function adds attributes from 'attrs' to the node, where:\nnode - is a tagret node - SoftwareInstance, Detail or what ever\nattrs - is a dict of attributes and its values\n\nFunction also does:\n- reset empty attrs to void\n- add display attrs for non-empty attrs\n\nSpecial attr_names:\n_attr_name - do not display in UI\n__attr_name - do not add attribute to node\ntag_set - is managed by cloud.addTags()` + }, + "convertTextToBoolean": { + snippets: ["${1:attrs}"], + description: `Function converts text values 'True', 'true', 'False', 'false' to boolean` + }, + "prepareAttrs": { + snippets: ["${1:attrs}"], + description: `Keine Beschreibung verfügbar.` + }, + "getOSType": { + snippets: ["${1:description}"], + description: `Identify os_type, os_version attributes based on information in image description\n\nAWS Image Marketplace contains about:\nTotal: 100 000\nUbuntu: 45 000\nDebian: 9 000\nAmazon: 5 000\nFedora: 5 000\nRedHat: 5 000\nWindows: 3 500\nCoreOS: 1 500` + }, + "removeDuplicatedClusters": { + snippets: ["${1:duplicated_keys}"], + description: `Remove duplicated clusters` + } + }, + "ClusterLabs.Pacemaker": { + }, + "Clustrix.ClustrixDB": { + }, + "CMDB.AdminCollection_AdminDomain": { + }, + "CMDB.BAI_Application": { + }, + "CMDB.BusinessService": { + }, + "CMDB.CloudCluster": { + }, + "CMDB.CloudHardwareContainer": { + }, + "CMDB.CloudLoadBalancerInstance": { + }, + "CMDB.CloudLoadBalancing": { + }, + "CMDB.CloudManagementGroup_AdminDomain": { + }, + "CMDB.CloudProvider_CloudInstance": { + }, + "CMDB.CloudRegion_CloudInstance": { + }, + "CMDB.CloudService_CloudInstance": { + }, + "CMDB.Cloud_Tags": { + }, + "CMDB.Cluster": { + }, + "CMDB.Database": { + }, + "CMDB.Dependant_Services": { + }, + "CMDB.Depended_Services": { + }, + "CMDB.Deployment_ConcreteCollection": { + }, + "CMDB.Device_Endpoints": { + }, + "CMDB.EOL_Date": { + }, + "CMDB.Extension.Cluster_Infos": { + }, + "CMDB.Extension.Host_FileSystem": { + }, + "CMDB.Extension.SoftwareServer_Alias": { + }, + "CMDB.FibreChannelHBA_NetworkPort": { + }, + "CMDB.FibreChannelHBA_StorageSystem_Linkage": { + }, + "CMDB.FileSystem_StorageSystem_Linkage": { + }, + "CMDB.FunctionalComponent_ConcreteCollection": { + }, + "CMDB.Group_StaticApplication": { + }, + "CMDB.HardwareComponent_HardwareSystemComponent": { + }, + "CMDB.HardwareContainer_ComputerSystem": { + }, + "CMDB.HardwareContainer_ManagementController": { + }, + "CMDB.HostContainer_ComputerSystem": { + }, + "CMDB.Host_Alias": { + }, + "CMDB.Host_ComputerSystem": { + }, + "CMDB.Host_Disk_Partition": { + }, + "CMDB.Host_Inventory_Number": { + }, + "CMDB.Host_ManagementController": { + }, + "CMDB.Host_NetworkCard": { + }, + "CMDB.Host_NetworkPort": { + }, + "CMDB.Host_OperatingSystem": { + }, + "CMDB.Host_Ownership": { + }, + "CMDB.Host_Processor": { + }, + "CMDB.Host_SANSwitch": { + }, + "CMDB.Host_Storage": { + }, + "CMDB.Host_Virtualization": { + }, + "CMDB.Host_Windows_Memory": { + }, + "CMDB.Kubernetes_Tags": { + }, + "CMDB.LoadBalancerGroup_Cluster": { + }, + "CMDB.LoadBalancerInstance": { + }, + "CMDB.LoadBalancerMember_Linkage": { + }, + "CMDB.MFCluster_Sysplex": { + }, + "CMDB.MFCouplingFacility": { + }, + "CMDB.MFDatabaseDetail_Database": { + }, + "CMDB.MFDetail_SystemResource_MQ": { + }, + "CMDB.MFDetail_Transaction_CICS_IMS": { + }, + "CMDB.MFPart_ComputerSystem": { + }, + "CMDB.MFPart_Mainframe": { + }, + "CMDB.MFPart_OperatingSystem": { + }, + "CMDB.MFPart_Virtualization": { + }, + "CMDB.MFSoftwareInstance_SoftwareServer": { + }, + "CMDB.MFSoftwareInstance_VirtualSystemEnabler": { + }, + "CMDB.MFStorage": { + }, + "CMDB.NamespaceLoadBalancer": { + }, + "CMDB.Namespace_AdminDomain": { + }, + "CMDB.Namespace_Deployment_ConcreteCollection": { + }, + "CMDB.NestedCloudManagementGroup_AdminDomain": { + }, + "CMDB.NetworkDevice_Collection": { + }, + "CMDB.NetworkDevice_ComputerSystem": { + }, + "CMDB.NetworkDevice_Host": { + }, + "CMDB.NetworkDevice_LastScanDate": { + }, + "CMDB.NetworkDevice_Management": { + }, + "CMDB.NetworkDevice_OperatingSystem": { + }, + "CMDB.NetworkDevice_Stack": { + }, + "CMDB.NetworkInterface_Detail_Linkage": { + }, + "CMDB.NetworkInterface_Endpoints": { + }, + "CMDB.NetworkInterface_StackMember": { + }, + "CMDB.NetworkInterface_Switch": { + }, + "CMDB.NetworkService_LogicalSystemComponent": { + }, + "CMDB.OwnedManagementGroup_AdminDomain": { + }, + "CMDB.Printer_Printer": { + }, + "CMDB.Root_Company": { + }, + "CMDB.RuntimeEnvironment_Product": { + }, + "CMDB.SANSwitch_NetworkPort": { + }, + "CMDB.SANSwitch_StorageSystem_Host_Linkage": { + }, + "CMDB.SNMPManagedDevice_ComputerSystem": { + }, + "CMDB.SNMPManagedDevice_LastScanDate": { + }, + "CMDB.SNMPManagedDevice_OperatingSystem": { + }, + "CMDB.SoftwareCluster_Cluster": { + }, + "CMDB.SoftwareComponent_ApplicationService": { + }, + "CMDB.SoftwareInstance_ApplicationSystem": { + }, + "CMDB.SoftwareInstance_Management": { + }, + "CMDB.SoftwareInstance_MultiFacet_Dependency": { + }, + "CMDB.SoftwareInstance_ObservedCommunication_Dependency": { + }, + "CMDB.SoftwareInstance_Product": { + }, + "CMDB.SoftwareInstance_SoftwareServer": { + }, + "CMDB.SoftwareInstance_VirtualSystemEnabler": { + }, + "CMDB.Software_Communication_Dependency": { + }, + "CMDB.Software_Dependency": { + }, + "CMDB.StorageDevice": { + }, + "CMDB.StorageDevice_Cluster": { + }, + "CMDB.StorageFrontEndPort_NetworkPort": { + }, + "CMDB.StoragePool_ResourcePool": { + }, + "CMDB.StoragePool_StorageSystemGroup": { + }, + "CMDB.StorageProcessor_Endpoints": { + }, + "CMDB.StorageProcessor_HardwarePackage": { + }, + "CMDB.StorageSystemGroup_Cluster": { + }, + "CMDB.StorageSystemGroup_Endpoints": { + }, + "CMDB.StorageSystem_Company_Management": { + }, + "CMDB.StorageSystem_ComputerSystem": { + }, + "CMDB.StorageSystem_HardwareContainer": { + }, + "CMDB.StorageSystem_Host_Linkage": { + }, + "CMDB.StorageSystem_OperatingSystem": { + }, + "CMDB.StorageSystem_SANSwitch": { + }, + "CMDB.SyncConfig": { + }, + "CMDB.Tags": { + }, + "CMDB.TechnicalService": { + }, + "CMDB.TLS_Detail_Document": { + }, + "CNI.Calico": { + }, + "CockroachLabs.CockroachDB": { + }, + "Cohesity_Storage": { + }, + "Comline.Helic_Software": { + }, + "Comline.Helic_Software_Bereinigungs_Skript": { + }, + "Comline.Helic_Software_Servicebus": { + }, + "Common_BladeEnclosure": { + "getContainer": { + snippets: ["${1:hw_component}, ${2:include_destroyed}"], + description: `Returns the HardwareContainer node related to given HardwareComponent\nnode.\n\nReturns none if the container cannot be found.\n\nChange History:\n2022-10-04 - HardwareDetail node replaced with HardwareComponent (DRDC1-19201)` + }, + "findContainer": { + snippets: ["${1:vendor}, ${2:serial}"], + description: `Find a HardwareContainer which matches the given vendor and\nserial number.\n\nReturns none if the container cannot be found.` + }, + "findHardwareComponent": { + snippets: ["${1:vendor}, ${2:type}, ${3:serial}, ${4:uuid}, ${5:host_name}"], + description: `Find a HardwareComponent node which matches the given vendor, type and\nserial number and uuid (virtual or physical) or name if present.\n\nReturns HardwareComponent node which matches the given vendor and type and\nhas the required serial number, uuid or name.\nReturns none if the HardwareComponent cannot be found\n\nChange History:\n2016-11-20 - enhancement for function, search by name after search by serial and uuid;\n2019-04-09 - Added search of Hardware Detail by virtual serial or uuid (DRDC1-13039)\n- Improved vendor search (DRDC1-13063)\n2021-08-08 - Added search of Hardware Detail by service_tags (DRDC1-15624)\n2022-10-04 - HardwareDetail node replaced with HardwareComponent (DRDC1-19201)` + }, + "findHost": { + snippets: ["${1:vendor}, ${2:serial}, ${3:name}"], + description: `Find a Host node which matches the given vendor, serial number and name if present.\nThe vendor string is a regex.\n\nReturns none if the host cannot be found\n\nChange History:\n2016-11-20 - enhancement for function, search by name after search by serial and vendor;\n2017-08-22 - Name is now case insensitive when searching for Windows hosts and FQDN (DRDC1-7936)\n2021-12-24 - Updated related hosts search (DRDC1-17351)` + }, + "format_UUID": { + snippets: ["${1:uuid}, ${2:pattern_to_match}, ${3:output_format}"], + description: `This function reformat given UUID as per pattern_to_match and\noutput_format.` + }, + "findHostWithUUID": { + snippets: ["${1:vendor}, ${2:uuid}"], + description: `Find a Host node which matches the given vendor and uuid.\nThe vendor string is a regex.\n\nReturns none if the host cannot be found\n\nChange History :\n2021-12-24 - Updated related hosts search (DRDC1-17351)` + }, + "findNetworkDevice": { + snippets: ["${1:vendor}, ${2:serial}"], + description: `Find a NetworkDevice node which matches the given vendor and serial\nnumber. The vendor string is a regex.\n\nReturns none if the device cannot be found\n\nChange History:\n2019-07-29 - Updated to support stack devices (DRDC1-13654)\n2021-12-24 - Updated Network Devices search (DRDC1-17351)` + }, + "linkHost": { + snippets: ["${1:container}, ${2:host}, ${3:hw_component}, ${4:type}"], + description: `Links the host to the container and hw_component\n\nChange History:\n2022-10-04 - HardwareDetail node replaced with HardwareComponent (DRDC1-19201)` + }, + "linkNetworkDevice": { + snippets: ["${1:container}, ${2:device}, ${3:hw_component}, ${4:type}"], + description: `Links the device to the container and hw_component\n\nChange History:\n2022-10-04 - HardwareDetail node replaced with HardwareComponent (DRDC1-19201)` + }, + "destroyHostLink": { + snippets: ["${1:container}, ${2:type}, ${3:serial}, ${4:uuid}"], + description: `Destroy any link between the given container and a host with\nthe serial number if we can. If we can not then try with UUID\nif it is present.` + }, + "destroyNetworkLink": { + snippets: ["${1:container}, ${2:type}, ${3:serial}"], + description: `Destroy any link between the given container and a network module with\nthe given serial number.` + } + }, + "Common_Cloud": { + "rdsGetEndpointAndAddress": { + snippets: ["${1:si}"], + description: `Returns the endpoint and address for contacting the given RDS\ninstance\n\nReturn (none, none) if the endpoint or address cannot be determined` + }, + "sqlGetEndpointAndAddress": { + snippets: ["${1:si}"], + description: `Returns the endpoint and address for contacting the given SQL\ninstance\n\nReturn (none, none) if the endpoint or address cannot be determined` + } + }, + "Common_Functions": { + "validate_host_address_format": { + snippets: ["${1:rel_host_address}"], + description: `Keine Beschreibung verfügbar.` + }, + "domain_lookup": { + snippets: ["${1:host}, ${2:rel_host_address_domain}"], + description: `Function resolves domain to IP address using "nslookup" command` + }, + "identify_host_perform_search": { + snippets: ["${1:host}, ${2:rel_host_address}"], + description: `Function searches for one "rel_host_address" Host,\nwhere "rel_host_address" could be:\n- loopback, like "localhost", "127.0.0.1" or "::1"\n- IPv4 or IPv6 address\n- full domain name, like "full.domain.com"\n- short host_name/host_alias, like "orcl9_host"\n\nHOST attributes description:\n- name, usually contains "short host_name", but could be a "full domain name" as well\n- local_fqdn, usually contains "full domain name", in rare cases - "short host_name"\n- __all_ip_addrs - is a list of all hosted ips, equal to: host.#DeviceWithInterface:DeviceInterface:InterfaceOfDevice:NetworkInterface.ip_addr\n- __all_dns_names - is a list of hosted domains, equal to: host.#DeviceWithInterface:DeviceInterface:InterfaceOfDevice:NetworkInterface.fqdns\n\nFunction returns ONE Host node or "none" value.\n\nChange history:\n2013-05-01 - added support for IP allocations in virtual environments (QM001787784)\n2013-05-29 - updated inefficient search queries(#3,4) for ADDM 9.0 (QM001790964)\n2013-09-04 - updated conditions for search queries(#1)\n2013-12-12 - removed lower from search queries. All host.name and host.local_fqdn should be stored in lower case by default.\n2016-04-20 - Made case 6 search more efficient (DRDC1-6049)\n2020-07-14 - Updated search to consider scope (DRDC1-15300)\n2020-10-27 - More efficient search with scope (DRDC1-16021)\n2023-01-18 - Updated (?i) flag placement in regular expression (DRDC1-20566)` + }, + "identify_host_perform_search_in_scope": { + snippets: ["${1:host}, ${2:rel_host_address}, ${3:hosts_scope}"], + description: `Function searches for one "rel_host_address" Host in some narrowed scope of hosts,\nbut not on all available hosts like identify_host_perform_search()\n\nFunction returns ONE Host node or "none" value.\n\nChange History:\n2016-04-20 - Made case 6 search more efficient (DRDC1-6049)\n2023-01-18 - Updated (?i) flag placement in regular expression (DRDC1-20566)` + }, + "identify_host": { + snippets: ["${1:host}, ${2:rel_host_address}, ${3:extended}"], + description: `Function searches for one "rel_host_address" Host,\n\nChange history:\n2013-09-04 - block with search queries is moved to separated function.\nadded call of domain_lookup() function if initial search is failed\n2013-11-18 - moved call of domain_lookup() into separated identify_host_extended() function in order to prevent creation of big .pq files.\nfunction does not process extended["domain_lookup"] argument any more` + }, + "identify_host_extended": { + snippets: ["${1:host}, ${2:rel_host_address}, ${3:extended}"], + description: `Function searches for one "rel_host_address" Host.\n\nExtended functionality:\nFunction tries to resolve domain to IP address if initial search is not successful and extended["domain_lookup"] is specified.` + }, + "related_sis_search": { + snippets: ["${1:host}, ${2:rel_host_address}, ${3:rel_si_type}"], + description: `Function searches for all SIs with "rel_si_type" TYPE on "rel_host_address" host,\n\nFunction returns SIs node set or empty list [].\n\nChange history:\n2013-09-04 - updated format for identify_host() function.\n2014-04-16 - added special behaviour for Mysql Database Server (QM001817560 & QM001817561)\n2014-10-23 - special behaviour for Mysql is completely moved to RDBMS_Functions module (TKU-2319)\n2015-06-18 - Updated for Aggregate SI search` + }, + "related_sis_search_on_multiple_hosts": { + snippets: ["${1:host}, ${2:rel_host_addresses}, ${3:rel_si_type}"], + description: `Function searches for all SIs with "rel_si_type" TYPE on multiple "rel_host_addresses" hosts.\n\nUnlike related_sis_search(), this function tries to\n- find all hosts with is running on\n- and among them find needed hosts which are listed in \n\nFunction returns SIs node set or empty list [].\nChange history:\n2015-06-18 - Updated for Aggregate SI search` + }, + "related_sis_search_on_multiple_hosts_extended": { + snippets: ["${1:host}, ${2:rel_host_addresses}, ${3:rel_si_type}"], + description: `Function searches for all SIs with "rel_si_type" TYPE on multiple "rel_host_addresses" hosts.\n\nUnlike related_sis_search(), this function tries to\n- find all hosts with is running on\n- and among them find needed hosts which are listed in \n- unlike the related_sis_search_on_multiple_hosts() function,\nthis one also tries to obtain the target hosts using nslookup command\nif the host is set using host alias\n\nFunction returns SIs node set or empty list [].` + }, + "related_sis_search_extended": { + snippets: ["${1:host}, ${2:rel_host_address}, ${3:rel_si_type}, ${4:extended}"], + description: `Function searches for all SIs with "rel_si_type" TYPE on "rel_host_address" host,\n\nFunction is able to pass 'domain_lookup' option to identify_host() function\n\nFunction returns SIs node set or empty list [].\n\nChange history:\n2013-11-18 - changed call of identify_host() function with identify_host_extended()\n2014-04-16 - added special behaviour for Mysql Database Server (QM001817560 & QM001817561)\n2014-10-23 - special behaviour for Mysql is completely moved to RDBMS_Functions module (TKU-2319)\n2015-06-18 - Updated for Aggregate SI search` + }, + "related_si_types_search": { + snippets: ["${1:host}, ${2:rel_host_address}, ${3:rel_si_types}"], + description: `Function searches for all SIs with different TYPEs in "rel_si_types" LIST on "rel_host_address" host\n\nFunction returns SI nodes set or empty list [].\nChange History:\n2015-06-18 - Updated for Aggregate SI search` + }, + "path_normalization": { + snippets: ["${1:host}, ${2:install_root}"], + description: `Deprecated synonym for DiscoveryFunctions.expandWindowsPath. Use\nexpandWindowsPath instead.` + }, + "links_management": { + snippets: ["${1:si_node}, ${2:recently_found_sis}, ${3:related_si_type}"], + description: `Keine Beschreibung verfügbar.` + }, + "get_cleanedup_path": { + snippets: ["${1:path}, ${2:os}"], + description: `Keine Beschreibung verfügbar.` + }, + "get_max_version": { + snippets: ["${1:ver1}, ${2:ver2}"], + description: `Deprecated synonym of DiscoveryFunctions.getMaxVersion.` + }, + "get_exe_cwd_path": { + snippets: ["${1:process}, ${2:expected_binary_name}"], + description: `Deprecated synonym of DiscoveryFunctions.getExeCwdPath.` + }, + "sort_list": { + snippets: ["${1:list}"], + description: `Deprecated synonym of DiscoveryFunctions.sortList.` + }, + "run_priv_cmd": { + snippets: ["${1:host}, ${2:command}, ${3:priv_cmd}"], + description: `This function is deprecated, it now calls the modern runFutureActiveCommand` + }, + "has_process": { + snippets: ["${1:host}, ${2:command}"], + description: `Returns true if the given process is running on the given host.` + }, + "isValidSerialNumber": { + snippets: ["${1:serial}"], + description: `Returns true if the given serial number is valid` + }, + "convertToCharString": { + snippets: ["${1:ascii_codes}"], + description: `Converts list of ASCII code integers into a string of characters.` + }, + "wmiFollowAssociations": { + snippets: ["${1:host}, ${2:namespace}, ${3:initial_paths}, ${4:associations}"], + description: `Starting from initial_paths, a list of WMI source instance paths,\nfollows multiple WMI associations to reach a set of target instances.\n\nEach entry in the association list must be a sub-list of four entries:\n1. Association class name\n2. A pair of attributes to retrieve from each instance in step 1.\nThe first attribute will be used to match the path of the previous\nclass ended up on (or initial_paths if the first time round).\nThe second attribute will be used to match against the path of\ninstances in step 3.\n3. The target class name, reached via the association in step 1.\n4. Attributes to retrieve from the target instances. Attributes\ncan be collected from multiple target classes as associations\nare followed.\n5. An optional list of aliases for the attributes specified above,\nto use in the final results. This allows the same named\nattributes to be collected from different target classes. If\naliases are not used and there are duplicate attribute names,\nthe last retrieved value of the attribute appears in results.\n\nReturns a table mapping from source path to a table of target instances\nthat were reached from each source path. The sub-table is keyed by target\npath, with the values being a list of length two - the target instance,\nand a final table of target attribute names->values.\n\nReturns none if any of the WMI calls failed along the way.` + }, + "checkForDecimal": { + snippets: ["${1:value}, ${2:bValue}"], + description: `Check for decimal and convert the value into Bytes` + }, + "convertToBytes": { + snippets: ["${1:value}, ${2:gib}"], + description: `Convert the value into Bytes` + }, + "convertGiBToBytes": { + snippets: ["${1:value}"], + description: `Convert GiB to Bytes, if not return void` + }, + "identify_host_with_uuid": { + snippets: ["${1:uuid}, ${2:source_host}"], + description: `Deprecated synonym of SearchFunctions.identifyHostWithUuid.` + }, + "locateCommands": { + snippets: ["${1:host}, ${2:command_list}"], + description: `This function is deprecated. It now calls the modern\nDiscoveryFunctions.locateCommands` + }, + "checkCommandList": { + snippets: ["${1:host}, ${2:command_list}"], + description: `Checks whether the commands exist.\nReturns true if all the commands exist.\nEven one command we are looking for is not present we return false.` + } + }, + "Common_JSON": { + "getAttributeValue": { + snippets: ["${1:json_node}, ${2:attribute}"], + description: `Return the value of a json attribute.\nif not found return void` + }, + "buildAttributeLookup": { + snippets: ["${1:json_node}, ${2:requested_attributes}"], + description: `Build a lookup table for the requested attributes of a json node\nRegarding the requested attributes, if an attribute has no value\nSet its value to void.\n\n{\n"active": true,\n"quiesced": false,\n"status": "optimal",\n"controllerRef": "070000000000000000000001",\n"manufacturer": "NETAPP ",\n"manufacturerDate": "1506729600",\n"appVersion": "08.40.00.01",\n"bootVersion": "08.40.00.01",\n"productID": "INF-01-00 ",\n"productRevLevel": "0840",\n"serialNumber": "021730018567 ",\n"boardID": "2806",\n"cacheMemorySize": 3840,\n"processorMemorySize": 1022,\n}\n\nlookup = {"active":true,\n"quiesced":false,\n...}\n\nChange History:\n11-30-2021 Update to return empty table if the entry parameter "json_node"\nis an empty list\nIt is to avoid ECA error in REST pattern that call this function` + } + }, + "Common_LoadBalancer": { + "convertIPAddress": { + snippets: ["${1:ip_type}, ${2:ip_addr}, ${3:exclude_zone}, ${4:msg_prefix}"], + description: `Keine Beschreibung verfügbar.` + }, + "getServiceNames": { + snippets: ["${1:ddd_node}, ${2:ip_addr}"], + description: `Perform a reverse DNS lookup for the provided IP address and return\na list of dns names to be stored on the LoadBalancerService node.\nIf no names are found then void is returned.` + }, + "findListeningSoftware": { + snippets: ["${1:host}, ${2:port}"], + description: `Attempts to find Software Instances or Software Components that are\nrunning on the provided Host that is listening on the provided port.` + }, + "addContainmentHashValues": { + snippets: ["${1:instance}"], + description: `Add containment hash values to load balancer service and pool nodes\nin order to make comparisons easier.` + }, + "getConfigLookups": { + snippets: ["${1:instance}"], + description: `Return dictionary representations of the configured load balancer\nservices, pools and members for easy comparison.` + }, + "compareConfigTables": { + snippets: ["${1:instance_table}, ${2:candidate_table}"], + description: `Keine Beschreibung verfügbar.` + } + }, + "Common_Network_Functions": { + "formatMAC": { + snippets: ["${1:mac}"], + description: `Format the given MAC into a colon-separated format` + }, + "getSysname": { + snippets: ["${1:name}, ${2:ip_addr}"], + description: `Get sysname for device or use IP instead of it` + }, + "getIPv4Mask": { + snippets: ["${1:prefix}"], + description: `Get IPv4 mask for the prefix` + }, + "getMAC": { + snippets: ["${1:mac_addr}"], + description: `Validate MAC address` + }, + "indexToMAC": { + snippets: ["${1:index}"], + description: `Convert table index (168.189.39.204.27.58) to MAC address (a8:bd:27:cc:1b:3a)` + }, + "calculateBroadcastAddress": { + snippets: ["${1:ip_addr}, ${2:netmask}"], + description: `Calculate broadcast address from IPv4 address and network mask` + }, + "calculateSubnetAddress": { + snippets: ["${1:ip_addr}, ${2:netmask}"], + description: `Calculate subnet address from IPv4 address and network mask` + }, + "calculateIP": { + snippets: ["${1:ip_addr}, ${2:ip_netmask}"], + description: `Validate IP address and netmask (working with IPv4 address only).\nCalculate broadcast and network address from IP address and network mask.` + }, + "createSubnet": { + snippets: ["${1:ip_type}, ${2:ip_subnet_range}, ${3:processed_subnet_nodes}, ${4:scope}"], + description: `Create IPv4/IPv6 type Subnet node\n\nip_type - IPv4Subnet | IPv6Prefix\nip_subnet_range - Subnet address (ex: 10.0.15.16/16 or 2001:0db8:85a3:1::/64)\nprocessed_subnet_nodes - Dictionary of processed Subnet nodes key by ip_subnet_range\nand with scope value if scope is not void.\nThe processed_subnet_nodes table can updated on each call.\nscope - Scope of the subnet\n\nChange History:\n2020-12-15 - Scope value was not taken into account when searching for\nthe subnet nodes (DRDC1-16172)\n` + }, + "createIPv4Subnet": { + snippets: ["${1:ip_addr}, ${2:netmask}, ${3:processed_subnet_nodes}, ${4:scope}"], + description: `Create IPv4 type Subnet node\n\nip_addr - valid IPv4\nnetmask - valid IPv4 netmask\nprocessed_subnet_nodes - dictionary of processed Subnet nodes\n` + }, + "convertIPv6ToWords": { + snippets: ["${1:ip_addr}"], + description: `Convert an IPv6 address into an array of 8 16-bit numbers.\n\nIf the number is not valid returns none. This does not handle\nIPv4-style addresses in IPv6.` + }, + "convertIPv6WordsToString": { + snippets: ["${1:ipv6_words}"], + description: `Convert list of words into IPv6 address in canonical form.` + }, + "isIPv6LocalAddr": { + snippets: ["${1:ipv6_word}"], + description: `Verify the IPv6 address is a site-local or link-local\naddress by checking the first 10 bits\n\nReturn site_local as true if the value is fec0 else false\nReturn link_local as true if the value is fe80 else false\n` + }, + "normalizeIPv6Addr": { + snippets: ["${1:ipv6_addr}"], + description: `\nVerify the IPv6 address is a site-local or link-local\naddress by checking the first 10 bits.\n\nReturn the IPv6 address in canonical form\nReturn site_local as true if the value is fec0 else false\nReturn link_local as true if the value is fe80 else false\n` + }, + "_scopeForIPAddress": { + snippets: ["${1:parent_device}, ${2:device_node}, ${3:subnet_node}"], + description: `Return scope for an IP address. Uses the scope from the parent node,\ndevice node or subnet node (in that order)\n\nIf no scope is found returns void` + } + }, + "Common_Storage": { + "createDiscoveryPool": { + snippets: ["${1:storage_system}, ${2:existing_pool}, ${3:rg}"], + description: `The relationship\nStorageSystem:Container:Containment:ContainedVolume:StorageVolume\nwill be deprecated in 2027.\n\nIn the Discovery model, StorageVolume nodes must be related to a StoragePool\nnode to ensure consistency across all storage platforms.\n\nIn some storage patterns, no storage pool is discovered, so we create a\n"dummy" storage pool to link the volume to it.` + }, + "getStatusForWBEMAccess": { + snippets: ["${1:array_record}"], + description: `Return Status and Status Detail information of the\nStorage System accessible using WBEM` + }, + "stringToPercentage": { + snippets: ["${1:value}"], + description: `scale a ratio to percentage\n\nReturn the value as an int` + }, + "getIndex": { + snippets: ["${1:list}, ${2:value}"], + description: `Function that return the index of a specific value in a list` + }, + "stripQuotes": { + snippets: ["${1:s}"], + description: `Strip leading and trailing double quotes from the string` + }, + "getDNSList": { + snippets: ["${1:device}, ${2:all_ip_addr_list}"], + description: `Get the list of DNS names for the passed in IP address list (IPv4|IPv6])\n\ndevice - Node which has DA associated to it, ex: Host, StorageDevice\nall_ip_addr_list - Get all the DNS names for the list IP addresses\n` + }, + "linkHostToStorageSystem": { + snippets: ["${1:host}, ${2:storage_volume_node}, ${3:rg_storage}"], + description: `Creates StorageUse relationship between Host and StorageSystem/StorageSystemGroup.\nhost - Host.\nstorage_volume_node - StorageVolume providing storage to the Host.\nrg_storage - Removal group.\n\nHistory Change:\n2023-07-25 - Updated to find related StorageSystem/StorageSystemGroup for the case when\nStorageVolume doesn't have direct relationship\nto the StorageSystem/StorageSystemGroup (DRDC1-21337)` + }, + "getNamespaces": { + snippets: ["${1:node}"], + description: `Returns a list of namespaces for the given node.\n\nThis may require multiple WBEM queries. If all queries fail the\nreturned list will be empty.` + }, + "buildMultiLookupList": { + snippets: ["${1:records}, ${2:key}"], + description: `Queries the given class and builds a lookup table keyed by the given\nkey property. Each value in the lookup table is a list of the values\n\nRecords where the key is missing are dropped and NOT included\nin the lookup table.\n\nReturns the constructed table or none if the query fails.` + }, + "getVolumeProperties": { + snippets: ["${1:extras}"], + description: `Returns the common volume properties plus any vendor specific\nextras that have been given.` + }, + "getPoolProperties": { + snippets: ["${1:extras}"], + description: `Returns the common pool properties plus any vendor specific\nextras that have been given.` + }, + "getAssociationProperties": { + snippets: ["${1:extras}"], + description: `Returns the common association properties plus any vendor specific\nextras that have been given.` + }, + "getComponentProperties": { + snippets: ["${1:extras}"], + description: `Returns the common component properties plus any vendor specific\nextras that have been given.` + }, + "buildNodeLookup": { + snippets: ["${1:records}, ${2:key}"], + description: `Builds a lookup table from the given records, based on the key.\n\nIf no key is given __PATH is used.\n\nRecords where the given key is missing are dropped and NOT included\nin the lookup table.` + }, + "linkNodeWithEncryptionProperty": { + snippets: ["${1:primary_key}, ${2:lookup_table}"], + description: `find the value encryption in lookup_table indexed by primary_key\nReturns encryption property.\n\nNone is not returned.` + }, + "buildAssociationLookup": { + snippets: ["${1:discovery_access}, ${2:class_name}, ${3:namespace}, ${4:reversed}"], + description: `Queries the given association class and builds a lookup table\nkeyed by Antecedent, or Dependent if reversed is true.\n\nRecords where the key is missing are dropped and NOT included\nin the lookup table.\n\nReturns the constructed table or none if the query fails.` + }, + "buildMultiLookup": { + snippets: ["${1:discovery_access}, ${2:class_name}, ${3:key}, ${4:value}, ${5:namespace}"], + description: `Queries the given class and builds a lookup table keyed by the given\nkey property. Each value in the lookup table is a list of the values\n\nRecords where the key is missing are dropped and NOT included\nin the lookup table.\n\nReturns the constructed table or none if the query fails.` + }, + "buildComponentLookup": { + snippets: ["${1:discovery_access}, ${2:class_name}, ${3:namespace}"], + description: `Queries the given component class and builds a lookup table\nkeyed by PartComponent.\n\nReturns the constructed table or none if the query fails.` + }, + "formatWWN": { + snippets: ["${1:wwn}"], + description: `Format the given WWN into a lower cases and colon-separated format\n\nChange History:\n2024-12-30 - Check for the pattern xx:xx:xx:xx in the value "wwwn"\nfor TKU_2025_02_01 (DRDC1-25329)\n` + }, + "findDAforSI": { + snippets: ["${1:si}"], + description: `Find the most recent DiscoveryAccess for the given SI by following\nthe primary inference relationship to a discovered process\n\nReturns none if the DA cannot be found` + }, + "findDAforStorageDevice": { + snippets: ["${1:storage_device}"], + description: `Find the most recent DiscoveryAccess for the given StorageDevice by\nfollowing the primary inference relationship to the DeviceInfo\n\nReturns none if the DA cannot be found` + }, + "updateConsumedCapacity": { + snippets: ["${1:pool_nodes}, ${2:volume_nodes}, ${3:consumed}, ${4:updateVolume}"], + description: `Updated the consumed_capacity attribute for each volume from the\nvalues in the consumed table\n\n2015-03-04: added optional parameter to manually manage the volume consumed capacity` + }, + "_flattenPoolTree": { + snippets: ["${1:pool_tree}"], + description: `Keine Beschreibung verfügbar.` + }, + "updateTablesWithSubPoolCapacity": { + snippets: ["${1:pool_path}, ${2:pool_tree}, ${3:table_to_update}"], + description: `update configured_capacity or subscribed table\nwith sub pool capacity` + }, + "buildParentPoolsLookup": { + snippets: ["${1:link_records}, ${2:pool_nodes}"], + description: `Keine Beschreibung verfügbar.` + }, + "updateSubscribedCapacity": { + snippets: ["${1:link_records}, ${2:pool_nodes}, ${3:volume_nodes}, ${4:bound}"], + description: `Update subscribed capacity for pools and volumes\n\nChange History:\n\n2015-06-17 - added configured capacity for storage pool (TKU-4255)\n\n2016-03-21 - call buildParentPoolsLookup and filter pools with multiple parents\nwhen computing the Subscribed/configured Capacity (DRDC1-5791 - TKU_2016_04_01 Release)` + }, + "followAssociations": { + snippets: ["${1:discovery_access}, ${2:namespace}, ${3:initial_paths}, ${4:associations}"], + description: `Starting from initial_paths, a list of source instance paths, follows\nmultiple associations to reach a set of target instances.\n\nEach entry in the association list must be a sub-list of four entries:\n1. Association class name\n2. A pair of attributes to retrieve from each instance in step 1.\nThe first attribute will be used to match the path of the previous\nclass ended up on (or initial_paths if the first time round).\nThe second attribute will be used to match against the path of\ninstances in step 3.\n3. The target class name, reached via the association in step 1.\n4. Attributes to retrieve from the target instances. Attributes\ncan be collected from multiple target classes as associations\nare followed.\n5. An optional list of aliases for the attributes specified above,\nto use in the final results. This allows the same named\nattributes to be collected from different target classes. If\naliases are not used and there are duplicate attribute names,\nthe last retrieved value of the attribute appears in results.\n\nReturns a table mapping from source path to a table of target instances\nthat were reached from each source path. The sub-table is keyed by target\npath, with the values being another table of target attribute names->values.\n\nReturns none if any of the wbem calls failed along the way.` + }, + "updateManagementRelationship": { + snippets: ["${1:parent}, ${2:storage_system}, ${3:starttime}"], + description: `Updates the Management relationship between the managing parent and\nthe given StorageSystem.\n\nThe starttime is used to update the last_update_success attribute.` + }, + "updateAgeRelationships": { + snippets: ["${1:rels}, ${2:starttime}, ${3:ACCESS_THRESHOLD}, ${4:TIME_THRESHOLD}"], + description: `Common function that ages the Management relationships for the parent\nwhich are not current.` + }, + "ageManagementRelationships": { + snippets: ["${1:parent}, ${2:starttime}"], + description: `Ages the Management relationships for the parent which are not current.\nThe starttime is used to update the last_update_failure attribute.` + }, + "updateThinlyProvisionedFromPoolType": { + snippets: ["${1:link_records}, ${2:pool_nodes}, ${3:volume_nodes}, ${4:pool_type}"], + description: `Updates the thinly_provisioned flag on all volumes based on whether\nthey are in a thinly provisioned pool (based on the given pool_type)\n\nChange History:\n2015-09-22 - ISS04524346: fixed ECA error by checking that link_record.Dependent\nis a valid key in the table volume_nodes.` + }, + "getIdentityItem": { + snippets: ["${1:record}, ${2:key}, ${3:desc_prop}, ${4:identity_prop}"], + description: `Returns the request identity key from a description/info list pair or none\nif there is a problem extracting the value.` + }, + "updateTrackingTotal": { + snippets: ["${1:totals}, ${2:storage_system_path}, ${3:value}"], + description: `Update the given tracking total for the storage system` + }, + "updateTotalDiskSpace": { + snippets: ["${1:array_nodes}, ${2:totals}"], + description: `Update total_disk_space for the given arrays` + }, + "getPortType": { + snippets: ["${1:fcp_record}"], + description: `Returns the port type for the given FC port record by examining\nthe PortType property` + }, + "getPortState": { + snippets: ["${1:fcp_record}"], + description: `Returns the port state for the given FC port record by examining\nthe OperationalStatus property` + }, + "buildDiskDriveState": { + snippets: ["${1:disk_operational_status}"], + description: `Build a disk drive state string using the list of operational status\nreturned by the function wbemEnumInstances` + }, + "findVolume": { + snippets: ["${1:lun_id}"], + description: `Retrieves a StorageVolume node by its NAA ID or EUI.\n\nReturns none if no matching node is found.\nIf multiple nodes match the identifier, the first mapped volume is returned.\nIf no mapped volumes are present, the first discovered volume is returned.\n\nChange History:\n\n2020-09-07 - updated to support search by EUI identifier (DRDC1-15457)\n2026-01-22 - updated to support snapshot volumes (DRDC1-28313)` + }, + "buildMultiClassLookup": { + snippets: ["${1:discovery_access}, ${2:class_list}, ${3:key}, ${4:value}, ${5:namespace}"], + description: `Queries the given class and builds a lookup table keyed by the given\nkey property. Each value in the lookup table is a list of the values\n\nRecords where the key is missing are dropped and NOT included\nin the lookup table.\n\nReturns the constructed table or none if the query fails.` + }, + "searchIdentityItem": { + snippets: ["${1:volume_record}, ${2:identifying_descriptions}"], + description: `Calls getIdentityItem using a list of identity key and returns the identifying information or\nnone if there is a problem extracting the value.` + }, + "buildMultiLookupFilter": { + snippets: ["${1:discovery_access}, ${2:class_name}, ${3:key}, ${4:value}, ${5:namespace}, ${6:filter_locally}"], + description: `Queries the given class using the filter_locally option and builds a lookup table keyed by the given\nkey property. Each value in the lookup table is a list of the values\n\nRecords where the key is missing are dropped and NOT included\nin the lookup table.\n\nReturns the constructed table or none if the query fails.` + } + }, + "Common_TapeLibrary": { + "createStorageSystem": { + snippets: ["${1:storage_device}"], + description: `Function creates Storage System for the given Tape Library Storage Device\n\nReturns Storage System node\n\nChange History:\n\n2018-08-03 - Added 'access_types' attribute, 'type' attribute changed;` + } + }, + "Common_XML": { + "getValue": { + snippets: ["${1:response}, ${2:element}"], + description: `Return the value of a xml element` + }, + "getPropertyName": { + snippets: ["${1:key}"], + description: `Return the name of the property` + } + }, + "Commvault.VirtualServerProtection": { + }, + "Confluent.Platform": { + "packageVersioning": { + snippets: ["${1:host}, ${2:packages}"], + description: `Function returns version from first package that matches.` + }, + "fileVersioning": { + snippets: ["${1:host}, ${2:args}, ${3:path}, ${4:file_name}"], + description: `Function finds path in classpath (-cp) argument and returns\nversion from the jar file name that matches.\n\nargs - command line arguments\npath - classpath path (without /share/java/ prefix) where jar file located\nfile_name - jar file name to match\n\nChange History:\n2022-12-29 - Updated to use regex in path (DRDC1-20495)` + }, + "getEndpoints": { + snippets: ["${1:content}, ${2:regex_exp}"], + description: `Function returns a list of endpoints (host:port) from item that matches regex expression.\n\ncontent - configuration file content\nregex_exp - regex expression to find item` + }, + "getPorts": { + snippets: ["${1:content}, ${2:regex_exp}, ${3:default_port:=none}"], + description: `Function returns a list of ports from item that matches regex expression.\n\ncontent - configuration file content\nregex_exp - regex expression to find item\ndefault_port - port by default` + }, + "linkToCluster": { + snippets: ["${1:host}, ${2:cp_cluster}, ${3:endpoints}, ${4:software_type}"], + description: `Function creates containment link to the cluster\n\ncp_cluster - Confluent Platform cluster\nendpoints - list of endpoints (host:port)\nsoftware_type - endpoints software type` + }, + "linkToServer": { + snippets: ["${1:host}, ${2:client_si}, ${3:endpoints}, ${4:software_type}"], + description: `Function creates client-server link from client SI to server endpoints\n\nclient_si - client SI node\nendpoints - list if server endpoints (host:port)\nsoftware_type - endpoints software type` + } + }, + "containerd.containerd": { + }, + "Containerization.DockerSwarm": { + "detectServices": { + snippets: ["${1:host}, ${2:si}, ${3:cluster}, ${4:SWARM_TYPE}"], + description: `Find the services deployed in the swarm - only works from swarm manager node` + }, + "detectNodes": { + snippets: ["${1:host}, ${2:si}, ${3:cluster}, ${4:SI_TYPE}, ${5:SWARM_TYPE}"], + description: `Find the nodes in the swarm - only works from swarm manager node` + }, + "createSubnets": { + snippets: ["${1:parent}, ${2:driver}, ${3:network_id}, ${4:detail}"], + description: `Create Subnets from the details\n\nReturns list of Subnets (possibly empty if the config details are missing)\n\n2.0 - Changed interface to createSubnets(): now takes the parent node not the key` + }, + "detectNetworks": { + snippets: ["${1:host}, ${2:si}, ${3:cluster}, ${4:SI_TYPE}, ${5:SWARM_TYPE}"], + description: `Find the networks deployed on the host and across the swarm` + } + }, + "Containerization.Identification": { + "updateDescendents": { + snippets: ["${1:process}, ${2:container_id}"], + description: `Mark descendents of the given process as in_container and add the given\ncontainer ID.\n\nChange History:\n\n2023-09-18 - Avoid Inference relationships to Pattern nodes.` + } + }, + "Containerization.Linkage": { + }, + "Containerization.SoftwareContainers": { + "dirname": { + snippets: ["${1:path}"], + description: `Extract directory name from path` + }, + "buildContext": { + snippets: ["${1:da}"], + description: `Build container context table by examining all the processes on the Host\n\nWe need to handle a number of scenarios. Container deployments\ntypically have 3 layers of tools:\n\n- Orchestration : Kubernetes, OpenShift, Docker, Podman\n- High level runtime : containerd, CRI-O\n- Low level runtime : runc, crun` + }, + "finalizeContainerData": { + snippets: ["${1:host}, ${2:data}"], + description: `Finalize container data table\n\nReturns true if the data is ok` + }, + "finalizeImageData": { + snippets: ["${1:host}, ${2:data}"], + description: `Finalize image data table` + }, + "splitRepoTag": { + snippets: ["${1:value}"], + description: `Split the given string into image repo, name and tag parts\n\nReturns all values as none if the values can't be extracted` + }, + "splitRepoDigest": { + snippets: ["${1:value}"], + description: `Split the given string into image repo, name and digest parts\n\nReturns all values as none if the values can't be extracted` + }, + "extractTagValues": { + snippets: ["${1:data}, ${2:tag_set}"], + description: `Extract known "tag" values from the tag set (table)` + }, + "extractCRIAnnotations": { + snippets: ["${1:data}, ${2:annotations}"], + description: `Extract known CRI annotations` + }, + "updateFromRepoValues": { + snippets: ["${1:data}, ${2:repo_tags}, ${3:repo_digests}"], + description: `Update data from repo_tags and repo_digests` + }, + "updateContainerImageIds": { + snippets: ["${1:host}, ${2:containers}, ${3:name_to_id}"], + description: `Add missing image ids to container data, based on name_to_id mapping` + }, + "getDiscoveryUID": { + snippets: ["${1:host}"], + description: `Return the UID for the discovery user (as an integer), or none\nif the value cannot be obtained` + }, + "createNodes": { + snippets: ["${1:host}, ${2:context}, ${3:REMOVAL_GROUP_NAME}"], + description: `Create SoftwareContainer and ContainerImage nodes from the given details\n\nReturns a list of the container nodes` + }, + "createManagementRelationships": { + snippets: ["${1:host}, ${2:context}, ${3:container_list}"], + description: `Create Management relationships from SIs, if possible` + }, + "removeOldNodes": { + snippets: ["${1:host}"], + description: `Remove any old nodes from previous generation patterns` + }, + "validateOutput": { + snippets: ["${1:host}, ${2:cmd}, ${3:output}"], + description: `Check if command output contains any error messages.\nIf any unexpected output - return none.` + }, + "getProductVersion": { + snippets: ["${1:full_version}"], + description: `Return product version from the full version` + }, + "getContainerDetails": { + snippets: ["${1:host}, ${2:context}"], + description: `Get container details using crun. Image information is not available\nas images are handled by higher level runtimes.` + }, + "createSoftwareInstance": { + snippets: ["${1:host}, ${2:da}, ${3:context}"], + description: `Create crio SI\n\nChange History:\n2025-09-30 - Added publisher attribute (DRDC1-27561)\n2025-11-06 - Add primary inference to crio SI\n2025-12-17 - Add DA parameter so we can set __ddd_source\n2026-02-05 - Added product attribute (DRDC1-28710)` + }, + "getVersion": { + snippets: ["${1:host}, ${2:command}"], + description: `Get crio version using command` + }, + "getVersionFromPackage": { + snippets: ["${1:host}"], + description: `Get crio version from package` + } + }, + "ContributedSystems.Sidekiq": { + }, + "ControlM_RH": { + "api_call": { + snippets: ["${1:host}, ${2:request}, ${3:port}"], + description: `runs the request\n\nChange History:\n2026-04-16 - Moved port to function arguments (DRDC1-29276)` + } + }, + "ControlM.WorkloadChangeManager": { + }, + "ConversionFunctions": { + "isValidSerialNumber": { + snippets: ["${1:serial}"], + description: `Returns true if the given serial number is valid` + }, + "convertToCharString": { + snippets: ["${1:ascii_codes}"], + description: `Converts list of ASCII code integers into a string of characters.` + }, + "_checkForDecimal": { + snippets: ["${1:number_as_string}, ${2:bytes_value}"], + description: `Check for decimal and convert the number into Bytes\nbytes_value is multiplier.` + }, + "convertToBytes": { + snippets: ["${1:value}, ${2:gib}"], + description: `Convert the value into Bytes\nInput arguments:\nvalue - value to convert\ngib - boolean variable which determines\nif kilobyte means 1000(false) or 1024(true) bytes\nNote: disks use 1000 and 1024 is for pools/volumes.\n\nOutput values:\nresult - converted result` + }, + "convertStringToHex": { + snippets: ["${1:string}, ${2:sep}"], + description: `Convert the ASCII-string into the HexaDecimal string,\nthe optional separator can be provided to format result\n\nInput arguments:\nstring - ASCII-string to be converted,\ne.g. "0CDC"\nsep - separator used while joining the list to result string,\n"" by default\n\nOutput values:\nresult - HexaDecimal string with values separated by sep,\ne.g. "30434443" with default separator,\n"30:43:44:43" with sep = ":"` + }, + "tidyPath": { + snippets: ["${1:path}, ${2:strip}"], + description: `Tidy a path\n\nReturns "" if value is not a fully qualified path\n\nRemoves the final directory separator if strip := true\n\nTakes: Path\nstrip - Set to true if should remove the final directory separator\n\nReturns: Tidied value\n\nChange History:\n2025-04-25 - Handle windows paths with incorrect directory separators (DRDC1-26252)\nHandle duplicate directory separators (DRDC1-26252)` + }, + "parseArgs": { + snippets: ["${1:args}, ${2:arg_to_parse}, ${3:is_path}, ${4:strip}"], + description: `Find a particular argument in a list of arguments\n\nTakes:\n* List of arguments (as a string, the process.args attribute)\n* Argument to find (e.g. -D or -c config_file)\n* Is Path - Set to true if a path (e.g. /opt/foo), false otherwise\n* strip - Set to true if should remove the final directory separator\n\nReturns:\nValue of the argument\n(If is_path is set to True the function also checks the path is fully\nqualified. Returns "" if path is not fully qualified)\n\nChange History:\n2025-04-25 - Handle situation where there are two similar arguments in args\nHandle situation where there is only one argument in args\n(Both DRDC1-26252)\n2025-12-08 - Updated Windows style paths processing (DRDC1-28308)\n2026-03-10 - Handle arguments partially encased in quotes (DRDC1-28296)` + }, + "parseJavaArgs": { + snippets: ["${1:args}"], + description: `Converts the process.args of a java process to a dictionary\n\nThe dictionary takes the format argument -> value;\n\nSo -Darg1=football -Darg2=barber becomes\n"arg1" -> "football";\n"arg2" -> "barber";` + }, + "convertToNumericValue": { + snippets: ["${1:value}"], + description: `checks and converts the value to a numeric value.\nIf not return void` + } + }, + "CoreDNS.CoreDNS": { + }, + "CoreOS.etcd": { + "addSocketsAndPorts": { + snippets: ["${1:urls}, ${2:listening_ports}, ${3:listening_sockets}"], + description: `This function is used to add listening ports and sockets\nto the lists` + }, + "addAttribute": { + snippets: ["${1:si}, ${2:name}, ${3:value}"], + description: `Add an optional attribute to the SI` + } + }, + "CoreOS.flannel": { + }, + "Corosync.ClusterEngine": { + }, + "Couchbase.Server": { + }, + "CRIO.CRIO": { + }, + "CrowdStrike.FalconSensor": { + }, + "Custom.Host.Unix_": { + }, + "CyberArk.PAS": { + "trimVersion": { + snippets: ["${1:host}, ${2:version}"], + description: `Deleting unnecessary zeros from version` + }, + "packageVersioning": { + snippets: ["${1:host}, ${2:packages}"], + description: `retrieves version from packages` + }, + "setAttributes": { + snippets: ["${1:host}, ${2:full_version}, ${3:si_type}, ${4:short_si_type}"], + description: `retrieves product version\ninitializes name and short_name attributes\nreturns product_version, name, short_name` + }, + "linkVaultServer": { + snippets: ["${1:host}, ${2:vault_file}, ${3:si}"], + description: `Extracts Vault Server's IP(s),\nPerforms search and linkage of Vault Server,\nand Disaster Recovery Vault Server(Backup Vault).\n\nChange History:\n2020-20-01 - Added new type of Vault for linking (DRDC1-16388)` + } + }, + "Cybereason.Platform": { + }, + "Cylance.CylancePROTECT": { + }, + "DASHRegTech.OptionMarginOptimizer": { + }, + "DataDomain_Storage": { + "updateStoragePools": { + snippets: ["${1:discovery_access}, ${2:storage_system_node}"], + description: `Create and update a storage pool and link to storage system.` + }, + "updateNFSFileSystems": { + snippets: ["${1:discovery_access}, ${2:storage_system_node}"], + description: `Create and update the file systems using NFS Protocol` + }, + "updateDDBoost": { + snippets: ["${1:discovery_access}, ${2:storage_system_node}"], + description: `Create and update the file systems using DD Boost Protocol` + }, + "getStorageSystemModel": { + snippets: ["${1:device}"], + description: `Get the model number by querying\nsystemModelNumber:1.3.6.1.4.1.19746.1.13.1.4.0\n\nReturns the device model value if the system model\nnumber is unavailable.` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:device}, ${3:DD_SYSTEM}"], + description: `Perform a storage scan on the given storage device\n\nHistory\n2018-04-17 New function: updateHardwareContainer that creates hardware\ncontainers and links them to the storage system for\nTKU_2018_06_01 (DRDC1-10027)\n\n2018-09-20 Replaced firmware_version to os_version for\nTKU_2018_09_01 (DRDC1-12020)\n\n2019-03-13 Add the IP Address nodes and Network interface nodes to\nthe storage system node for TKU_2019_04_01 (DRDC1-12792).\nCheck the value of __all_ip_addrs for it to be never None\nin the storage system node for TKU_2019_04_01 (DRDC1-11766)\n\n2020-04-06 Updating the scan function by removing all the stop\nstatements. If any of the storage components is not\nconfigured or discovered then it stopped discovery of\nother storage components (DRDC1-14958).\n\n2020-05-06 Updating the scan function to support the DD Boost\nFileSystem type and correct the Number of DiskDrive count\nvalue by updating the DiskDrive relationships\n(DRDC1-14905 & DRDC1-15005).\n\n2020-07-03 Added scope attribute to StorageSystem node (DRDC1-15299)\n2024-04-03 Add the attribute dns_domain\nto storage system / storage device (DRDC1-23285)\n\n2024-04-15 Added hidden attributes __capability_ids for TKU_2024_07_01\n(DRDC1-23319)\n` + } + }, + "DataPower_Common": { + }, + "DataPower_Extended_Discovery": { + "getServices": { + snippets: ["${1:type}, ${2:domain_name}, ${3:data_power_device}, ${4:all_services}"], + description: `Obtains a list of services for domain.` + } + }, + "DataStax.DevCenter": { + }, + "DataStax.Enterprise": { + }, + "DataStax.OpsCenter": { + }, + "DeepIS.DeepEngine": { + }, + "Dell_BladeEnclosure": { + }, + "Dell.CompellentPegasus": { + }, + "DELL_COMPELLENT_Storage": { + "isDedicatedToStorage": { + snippets: ["${1:computer_system}"], + description: `If the ComputerSystem is dedicated to Storage or block Server\nthis definition return true otherwise return false.` + }, + "dedicatedToStorage": { + snippets: ["${1:computer_systems_list}"], + description: `Build a list of Computer system which are dedicated to Strage or block server\nfrom an input list of computer systems.` + }, + "updateStorageConnections": { + snippets: ["${1:discovery_access}, ${2:array_nodes}, ${3:volume_nodes}, ${4:system_devices}"], + description: `Update the storage connections for the given set of volumes\n\nReturns true if the update succeeds, false otherwise.` + }, + "getLinkRecords": { + snippets: ["${1:discovery_access}"], + description: `Query the link records (CMPL_AllocatedFromStoragePool)` + }, + "updatePoolsAndVolumes": { + snippets: ["${1:discovery_access}, ${2:array_nodes}, ${3:pool_nodes}, ${4:volume_nodes}, ${5:system_devices}"], + description: `Update the pools and volumes for the given set of arrays\n\nReturns true if the update succeeds, false otherwise.\n` + }, + "updateIPAddress": { + snippets: ["${1:discovery_access}, ${2:parent}, ${3:array_nodes}, ${4:ni_node_by_path}"], + description: `Create and/or update IPv4 addresses` + }, + "updateDiskDrives": { + snippets: ["${1:discovery_access}, ${2:array_nodes}, ${3:system_devices}"], + description: `Update the disk drives for the given set of arrays\n\nReturns true if the update succeeds, false otherwise.\n\nHistory\n\n2017-30-06 - Added the disk drive location information on the disk drive node for TKU_2017_07_01 (DRDC1-8399)\n` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:parent}, ${3:scope_value}"], + description: `Perform a storage scan on the given endpoint. The endpoint may be\na host with a management SI or the device endpoint itself. No\nassumption should be made about which endpoint we have.\n\nChange History:\n2020-07-03 Added scope attribute to StorageSystem node (DRDC1-15299)\n2023-20-06 Added coexistence between REST and WBEM pattern for TKU_2023_08_01 (DRDC1-20997)\n2024-04-03 Added the attribute dns_domain\nto storage system / storage device (DRDC1-23285)\n\n2024-04-15 Added hidden attribute __capability_ids for TKU_2024_07_01\n(DRDC1-23319)\n` + } + }, + "Dell_EMC_DataDomain_REST": { + "getNextQuery": { + snippets: ["${1:response}"], + description: `check for the next value in the rel json node\nIf not, return none else return the href value` + }, + "extractCapacities": { + snippets: ["${1:record}"], + description: `Get the size, used and free metrics for the\ngiven record` + }, + "cifsLookup": { + snippets: ["${1:discovery_access}, ${2:ss_uuid}"], + description: `Build a node lookup table for CIFS file system\nkeyed by mtree id` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:device}, ${3:rg_group}"], + description: `Perform a storage scan on the given storage device\n\nChange History:\n\n2024-04-03 Added Attribute dns_domain to\nstorage system / storage device (DRDC1-23285)\n2024-04-15 Add hidden attributes __capability_ids for TKU_2024_07_01\n(DRDC1-23319)\n` + } + }, + "Dell_EMC_ECS_Storage": { + "extractNumericValue": { + snippets: ["${1:value}"], + description: `Extract the numeric value, if not return void` + }, + "extractCapacities": { + snippets: ["${1:record}"], + description: `Get the size, used and free metrics for the given record` + }, + "updateDiskDrives": { + snippets: ["${1:ecs_disk_response}, ${2:storage_system_node}"], + description: `Create and update the disk drive and link to storage system\n\nChange History:\n2025-03-07 - Remove allocated_capacity for the storage system and\ninverse the total disk free and total disk used as\nit was wrongly set for TKU_2025_04_01` + }, + "updateHardwareContainer": { + snippets: ["${1:storage_system_node}, ${2:serial}, ${3:rack_id}"], + description: `Create/update the HardwareContainer node and relate to\nstorage system node` + } + }, + "Dell_EMC_PowerStore_Storage": { + "getDecoded": { + snippets: ["${1:discovery_access}, ${2:request_url}, ${3:token}"], + description: `Return a decoded json which is the response to the GET rest api request.\n\ntoken parameter = boolean that indicates if the token is required or not.\n\nIf the response status is 200 (OK) but the response body is empty,\nreturn empty list instead of none.\nIt is to identify if we got a real error or empty response when the query went fine` + }, + "getResponse": { + snippets: ["${1:discovery_access}, ${2:url}, ${3:req_token}"], + description: `Return a json content to the rest api request.\n\nHistory:\n2023-09-13 Modify the function to delete all recursive call in the code for TKU_2023_10_01 (DRDC1-21718)` + }, + "updateDiskDrives": { + snippets: ["${1:discovery_access}, ${2:storage_system_by_id}, ${3:hardware_containers}"], + description: `Create and update disk drive` + }, + "updateHardwareContainers": { + snippets: ["${1:discovery_access}, ${2:storage_system_by_id}, ${3:hardware_containers}"], + description: `Create and update HardwareContainers AKA BaseEnclosure in PowerStore that contain disk drives` + }, + "updateNASServer": { + snippets: ["${1:discovery_access}, ${2:storage_device}"], + description: `Update and/or create NAS server as storage system node\n\nChange History:\n2026-02-17 - Add scope value to the nas server key\nand add attribute scope` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:storage_device}, ${3:block_size}"], + description: `Perform a storage scan on the given endpoint. The endpoint is a storage device.\n\nChange History:\n2023-01-04 - Update the storage system name and storage system group name\nwith their respective ID attribute if the name returned by REST API is void\nfor TKU_2023_02_01\n2024-04-03 Add the attribute dns_domain\nto storage system / storage device (DRDC1-23285)\n2024-04-15 - Update the storage system to add the hidden attribute\n__capability_ids for TKU_2024_07_01 (DRDC1-23319)\n2024-06-10 - Update the function to discover the appliances before the\ncluster and get the major version before calling the metrics\nfor TKU_2024_08_01 (DRDC1-23696)\n- Added constant "block_size" to the function parameter for\nthe function updateStoragePoolsAndVVOLs() and\nupdateStorageVolumes() for TKU_2022_08_01\n2026-01-26 - Updated the function by removing the return statement so\nit no longer stops discovery of other storage components\nfor TKU_2026_03_01 (DRDC1-28642).` + } + }, + "Dell_EMC_PowerVault_DAS_Storage": { + "scan": { + snippets: ["${1:discovery_access}, ${2:host}, ${3:das_group}"], + description: `Perform a storage scan on the given host.\n\nChange History:\n2025-04-16 - Corrected ECA error due to whitespace in\nthe controller name returned\nby the omreport command (DRDC1-26287)\n` + } + }, + "Dell_EMC_PowerVault_Storage": { + }, + "Dell_EMC_PowerVault_Storage_REST": { + "getDecoded": { + snippets: ["${1:discovery_access}, ${2:BASE_URL}, ${3:identifier}"], + description: `Return a decoded json which is the response to the rest api request.` + }, + "buildKey": { + snippets: ["${1:parent}, ${2:attribute}"], + description: `Build a key for a discovery node based on the parent node key\nAnd the attribute given in the parameter` + }, + "updateHardwareContainer": { + snippets: ["${1:configuration_decoded}, ${2:storage_system}, ${3:hardware_container_table}"], + description: `Create and/or update hardware containers` + }, + "updateDiskDrive": { + snippets: ["${1:storage_system}, ${2:configuration_decoded}, ${3:hardware_container_table}, ${4:disk_drive_table}"], + description: `Create and/or update disk drives` + }, + "updateStorageProcessor": { + snippets: ["${1:configuration_decoded}, ${2:storage_system}, ${3:processor_by_id}"], + description: `Create and/or update storage processors\n\nChange History:\n2026-07-21 - Add cache_size to storage_system_node\nfor TKU_2026_09_01 (DRDC1-30190)\n` + }, + "processIPAddress": { + snippets: ["${1:device}, ${2:storage_system}, ${3:ip_addr}, ${4:ip_detail}, ${5:ni_node}, ${6:subnet_nodes}"], + description: `Create IP address of the storage system` + }, + "updateStoragePools": { + snippets: ["${1:discovery_access}, ${2:BASE_URL}, ${3:storage_system}, ${4:pools_by_name}"], + description: `Create and/or update the storage pool nodes` + }, + "getInitiatorRecords": { + snippets: ["${1:records}, ${2:identifier}, ${3:group}"], + description: `Function that get all initiators\n- From a single host\n- From all the hosts that are in a host group\n\nReturn a list of initiators\n` + }, + "createStorageConnection": { + snippets: ["${1:initiator_id}, ${2:nickname}, ${3:storage_system}, ${4:connection_nodes}, ${5:volume_node}"], + description: `Creates and/or update StorageConnection nodes` + }, + "updateStorageConnections": { + snippets: ["${1:discovery_access}, ${2:BASE_URL}, ${3:storage_system}, ${4:volume_by_serial}"], + description: `Get all information needed to create StorageConnection node.\nCall the function createStorageConnection if needed\n\nStorage connection is a link between a port (FC or iSCSI) and a storage volume` + }, + "updatePoolsCapacity": { + snippets: ["${1:volume_by_pool}, ${2:pools_by_name}"], + description: `Update the subscribed and configured capacity for the storage pools` + }, + "updateSystemCapacity": { + snippets: ["${1:storage_system}, ${2:pools_by_name}, ${3:disk_drive_table}"], + description: `update the storage system capacity (subscribed, allocated,\nconsumed, total and disk space)` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:device}, ${3:BASE_URL}"], + description: `Main function that creates Storage System nodes\n\nCall all the other function to create and update the other component for PowerVault\n\n2023-01-18 - Added attributes Status and Status Detail to storage system (DRDC1-19552)\n\n2024-04-03 - Add the attribute dns_domain\nto storage system / storage device (DRDC1-23285)\n2024-04-15 - Added hidden __capability_ids for TKU_2024_07_01 (DRDC1-23319)\n2025-03-11 - Create an IP address node with the endpoint value for TKU_2025_04_01 (DRDC1-26013)\n` + } + }, + "Dell_EMC_PowerVault_TapeLibrary": { + }, + "DELL_EMC_ScaleIO_Storage": { + "scan": { + snippets: ["${1:discovery_access}, ${2:device}, ${3:scope_value}, ${4:scaleio_auth}"], + description: `Perform a scan on the given SI\n\nChange History:\n2024-04-15 - Added hidden attribute __capability_ids for TKU_2024_07_01\n(DRDC1-23319)` + } + }, + "Dell_EMC_SCSeries_REST": { + "getDecoded": { + snippets: ["${1:discovery_access}, ${2:url}"], + description: `Function that performs the get request for the given url` + }, + "updateVolumeCapacityMetrics": { + snippets: ["${1:discovery_access}, ${2:volume_id}, ${3:volume_capacity}"], + description: `Function that updates the capacity metrics of a storage volume\n\n// The api returns a string value "123456789 Bytes" as a string\n// We need to extract "12345789" and change its type into a integer` + }, + "getStorageSystemCapacity": { + snippets: ["${1:discovery_access}, ${2:array_id}"], + description: `Function that retrieves and formats the capacity of a storage system\n\nREST api reports the capacity metrics with a string\n"12345789 bytes" We want to extract "123456789" and transform it into an integer` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:parent}"], + description: `Main function that creates and/or updates Storage systems\nand calls a number of functions to discover component details\n\nChange History:\n2024-01-15 - Add the attribute total logical consumed capacity\nfor TKU_2024_03_01 (DRDC1-22592)\n2024-04-03 - Add the attribute dns_domain\nto storage system / storage device (DRDC1-23285)\n2024-04-15 - Add hidden attribute __capability_ids for TKU_2024_07_01\n(DRDC1-23319)\n2025_03_07 - Remove allocated_capacity attribute as\nit is now deprecated for TKU_2025_04_01` + } + }, + "Dell_EMC_Unity_REST": { + "getDecoded": { + snippets: ["${1:discovery_access}, ${2:url}"], + description: `Perform a GET request for a given url\n\nreturn a decoded JSON response` + }, + "getLookupAttributes": { + snippets: ["${1:json_node}, ${2:attributes}"], + description: `Build a lookup attribute for a given list of json node and attributes` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:storage_device}, ${3:rg}"], + description: `Main function.\nCreate and/or updates Physical StorageSystems\n\nCalls all other functions to discover other components` + } + }, + "Dell.EMC.VxFlexOS": { + }, + "Dell.EMC.VxRail": { + }, + "Dell.OpenManageServerAdministrator": { + }, + "Dell_RAC": { + }, + "Dialogic.Brooktrout.RuntimeSoftware": { + }, + "DiscoveryConditions.AIX": { + }, + "DiscoveryConditions.AmazonSSM": { + }, + "DiscoveryConditions.Apache.Log4j": { + }, + "DiscoveryConditions.Apache.Log4j_versioning": { + }, + "DiscoveryConditions.Containers": { + }, + "DiscoveryConditions.CPU.Windows": { + }, + "DiscoveryConditions.NIC.Windows": { + "readWindowsRegistry": { + snippets: ["${1:host}, ${2:interface}, ${3:control_reg_root}"], + description: `Extracts the NIC speed settings from the Windows Registry and places\nsuch information in chained Detail nodes attached to the host\n\nChange History:\n2021-06-24 - Added verification of the interface index (DRDC1-17087)\n` + }, + "destroyDetailNodes": { + snippets: ["${1:host}, ${2:interface}"], + description: `Destroy any existing detail nodes relating to a network interface card\non a host.` + }, + "destroyAllDetails": { + snippets: ["${1:host}"], + description: `Destroy all previously-created Detail nodes.` + }, + "destroyConditionRel": { + snippets: ["${1:host}, ${2:condition_node_key}"], + description: `Destroy the existing discovery condition relationship.` + } + }, + "DiscoveryConditions.RedHat": { + }, + "DiscoveryConditions.Solaris": { + "userHasProcOwnerPriv": { + snippets: ["${1:endpoint}, ${2:name}"], + description: `Run the ppriv command and look for the proc_owner privilege\nreturn success or failure. This works on Solaris 10 & 11 only.` + }, + "isPargsRunningWithProcOwnerPriv": { + snippets: ["${1:endpoint}, ${2:name}"], + description: `Run the pargs command as root and return success or failure. This\nworks on Solaris 9, 10 & 11.\n\nChange History:\n2016-02-01 - Added check for init pid (QM001891057)\n2016-03-10 - Added check for init pid (DRDC1-5845)\n2016-05-10 - Function updated, removed PRIV_PS (DRDC1-6150)\n2017-02-01 - Use full path for /usr/bin/ps` + }, + "getDiscoveryUserID": { + snippets: ["${1:endpoint}, ${2:name}"], + description: `Get the Discovery user ID.` + }, + "getPsUserID": { + snippets: ["${1:endpoint}, ${2:name}, ${3:ps_path}"], + description: `Run the given ps command and report which user ID it runs as. The command\nmust accept BSD style arguments.` + }, + "psTruncates": { + snippets: ["${1:endpoint}, ${2:name}, ${3:ps_path}"], + description: `Check the given ps command for truncated command lines. This uses\nppriv so only works on Solaris 10 or later.` + }, + "usrUcbPsTruncates": { + snippets: ["${1:endpoint}, ${2:name}"], + description: `Check /usr/ucb/ps for truncated command lines` + }, + "patchedUsrUcbPsTruncates": { + snippets: ["${1:endpoint}, ${2:name}, ${3:patch_num}, ${4:patch_rev}"], + description: `Check patched /usr/ucb/ps for truncated command lines` + }, + "isSolarisX86": { + snippets: ["${1:host}"], + description: `Returns true if the given (Solaris) host is X86 based` + }, + "solaris11HasTruncatedCommandLines": { + snippets: ["${1:endpoint}, ${2:name}"], + description: `Returns whether the endpoint will truncate command lines or not\nThis version works for Solaris 11.0-11.2 or 11.3 prior to SRU5.6.\nIt checks pargs and /usr/bin/ps\n\nChange History:\n2016-08-25 - Function now returns false if Solaris 11.3 SRU5.6 or higher encountered (DRDC1-6345)` + }, + "solaris10HasTruncatedCommandLines": { + snippets: ["${1:endpoint}, ${2:name}"], + description: `Returns whether the endpoint will truncate command lines or not\nThis version works for Solaris 10. It checks /usr/ucb/ps & pargs` + }, + "solaris9HasTruncatedCommandLines": { + snippets: ["${1:endpoint}, ${2:name}, ${3:patch_num}, ${4:patch_rev}"], + description: `Returns whether the endpoint will truncate command lines or not.\nThis version works for Solaris 9. It checks /usr/ucb/ps & pargs` + }, + "solaris8HasTruncatedCommandLines": { + snippets: ["${1:endpoint}, ${2:name}, ${3:patch_num}, ${4:patch_rev}"], + description: `Returns whether the endpoint will truncate command lines or not.\nThis version works for Solaris 8. It checks /usr/ucb/ps.` + } + }, + "DiscoveryConditions.VirtualCenter": { + }, + "DiscoveryConditions.vSphere": { + }, + "DiscoveryFunctions": { + "escapeArg": { + snippets: ["${1:host}, ${2:value}, ${3:permit_env_vars}"], + description: `Escape the value so it can be used as the argument to a\ncommand run on host.\n\nIf permit_env_vars is true, any environment variables in the\nvalue will not be escaped, so will be evaluated on the host.` + }, + "expandWindowsPath": { + snippets: ["${1:host}, ${2:path}"], + description: `Convert short-form DOS 8.3 names in path into the long form.` + }, + "_normalizePathWithoutExpanding": { + snippets: ["${1:os_class}, ${2:path}"], + description: `Internal function. Use normalizePath.` + }, + "normalizePath": { + snippets: ["${1:host}, ${2:path}"], + description: `Normalizes the path so it does not contain any ".." or "."\nelements. On Windows, ensures all path separators are \\ncharacters, and converts any short-form DOS 8.3 names into the\nlong form.` + }, + "escapePath": { + snippets: ["${1:host}, ${2:path}, ${3:permit_env_vars}"], + description: `Escape the path so it can be used as the argument to a command\nrun on a host.\n\nNormalizes the path so it does not contain any ".." or "."\nelements. On Windows, ensures all path separators are \\ncharacters, and converts any short-form DOS 8.3 names into the\nlong form.\n\nIf permit_env_vars is true, any environment variables in the\npath will not be escaped, so will be evaluated on the host.` + }, + "getJavaHome": { + snippets: ["${1:host}, ${2:process_cmd}"], + description: `Find java_home environment variable\n\nTakes : Host node\nprocess.cmd as a string\nReturns : java_home as a string\n\nChange History:\n2023-01-18 - Updated (?i) flag placement in regular expression (DRDC1-20566)` + }, + "pathNormalization": { + snippets: ["${1:host}, ${2:install_root}"], + description: `Deprecated synonym for expandWindowsPath. Use\nexpandWindowsPath instead.` + }, + "getCleanedupPath": { + snippets: ["${1:path}, ${2:os}"], + description: `Keine Beschreibung verfügbar.` + }, + "getMaxVersion": { + snippets: ["${1:ver1}, ${2:ver2}"], + description: `Compares version strings like "10.08.10" and "7.18f" and returns the biggest one.\n\nChange History:\n2021-09-08 - Updated to check for both 'none' and empty string (DRDC1-17398)\n2023-08-21 - Updated to support alphabetical character at the end of the version (DRDC1-21656)\n2026-04-06 - Updated escape sequence (DRDC1-29309)` + }, + "getChrootExePath": { + snippets: ["${1:host}, ${2:process}"], + description: `Takes a process, returns chroot path and full path of the binary.\n\n/proc//root - symbolic link, shows path to root filesystem.\nIt could be / for normal env or /some/path/ for\nisolated env.\n/proc//cwd - symbolic link, shows user path, from which the\nprocess was executed.\nIt could be any, but always full (starts with /)\nVaild in case of isolated env.\n/proc//exe - symbolic link. Shows full process path in case if\nprocess was executed with full path, or it's path was\nfound in system PATH variable. In other cases it\nshows relative to cwd or user home path.\nVaild in case is isolated env.\n\nIn this function we run one command, which returns all 3 of needed symlinks.\n\nExample:\nProcess cmd is nginx or /usr/sbin/nginx\nThe result of sudo ls -l /proc//{root,exe,cwd} command is:\nlrwxrwxrwx 1 alation alation 0 Oct 28 10:16 cwd -> /opt/alation/alation-19.5.0.94775\nlrwxrwxrwx 1 alation alation 0 Oct 28 10:16 exe -> /opt/alation/alation-19.5.0.94775/usr/sbin/nginx\nlrwxrwxrwx 1 alation alation 0 Oct 28 10:16 root -> /opt/alation/alation-19.5.0.94775` + }, + "getExeCwdPaths": { + snippets: ["${1:processes}, ${2:expected_binary_name}"], + description: `Takes multiple processes, returns full path of the binary file location\nand the full path from where it has been executed\n\nTakes:\n* A list of process nodes\n* Expected binary name (string)\n\nReturns:\n* A dictionary, key = process id, value is exe_path (e.g. /usr/bin/python)\n* A dictionary, key = process id, value is cwd_path (e.g. /usr/bin)\n\nChange History:\n2023-08-07 - Skipping Windows hosts (DRDC1-21663)` + }, + "getExeCwdPath": { + snippets: ["${1:process}, ${2:expected_binary_name}"], + description: `Function tries to obtain:\n- full process command path (exe_path)\nand\n- current working directory (cwd_path) - directory the process was started from\n\ncwd_path could be obtained only from "/proc/" directory.\nexe_path could be obtained using "/proc/" directory (example above),\nor using command "/usr/bin/pmap "\n\nExample, what we see in the process list:\nUSER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND\ntideway 2478 0.0 1.2 262612 23808 ? S Nov15 0:00 python Launch.pyc --daemon start\n\n1. method: using "/proc/" directory\n[tideway@localhost ~]$ ls -l /proc/2478/cwd /proc/2478/exe\nlrwxrwxrwx 1 tideway tideway 0 Nov 19 16:06 cwd -> /usr/tideway/python/ui/web\nlrwxrwxrwx 1 tideway tideway 0 Nov 19 16:06 exe -> /usr/tideway/bin/python2.7\n\n2. method: using command "/usr/bin/pmap "\n[tideway@localhost ~]$ pmap 2478\n0000000000400000 1488K r-x-- /usr/tideway/bin/python2.7\n\n3. method:(for AIX only) using command "svmon -P -O format=nolimit,filename=on,filtertype=client"\n\nLimitations:\n- all methods require PRIV_RUNCMD be configured.\n- cwd_path can be obtained only for such OSs: Linux, AIX, Solaris\n\nArguments:\nexpected_binary_name - is optional attribute and used for correct full path extraction\nfrom pmap/svmon commands output, when process name significantly differs\nfrom real executed binary file name:\nexample:\nif process.cmd = "ora_smon_newsid"\nBUT real exe_path = "/home/oracle/app/oracle/product/11.2.0/dbhome_1/bin/oracle",\nthen must be set to "oracle".\n\n argument is not needed\nwhen starts with process name, like\n- process.cmd = "python" and exe_path = "/usr/bin/python2.8"\n- process.cmd = "sendmail:" and exe_path = "/usr/sbin/sendmail.sendmail"\n\nChange History:\n2019-04-09 - Enhancemented pmap command output(DRDC1-13012)\n2020-10-13 - Added alternative 'pmap -p' option (DRDC1-15893)\n2022-12-09 - Make pmap parsing regex non greedy (DRDC1-20112)\n2023-02-23 - Updated path for Solaris (DRDC1-20645)\n2023-08-07 - Skipping Windows hosts (DRDC1-21663)\n2024-02-20 - Updated commands for /proc/ directory method (DRDC1-22946)\n2024-12-20 - Better handling of pmap command where path contains\nexecutable name (DRDC1-25290)\n2025-01-08 - Added container_context to runCommand() (DRDC1-24583)` + }, + "parcel_json_versioning": { + snippets: ["${1:host}, ${2:install_root}, ${3:component_name}"], + description: `Get file versioning from parcel.json file\n\nChange History:\n2022-07-13 - Extended to get version from 'packages' dict (DRDC1-18489)` + }, + "sortList": { + snippets: ["${1:list}"], + description: `Function returns sorted list of strings\n` + }, + "locateCommands": { + snippets: ["${1:host}, ${2:command_list}"], + description: `Attempts to locate the required commands.\nReturns a table of each command location. The location is none\nif the command could not be found.\nThis call returns none if the location process fails\n\nChange History:\n2016-10-04 - function updated, now we initialise result table\nwith the keys obtained from the command_list\nin order to avoid possible ECA-errors (DRDC1-5856)\n2019-03-05 - Escape paths before passing them to the which command\n2020-02-18 - Return a table if which command cannot be run (DRDC1-13148)` + }, + "checkCommandList": { + snippets: ["${1:host}, ${2:command_list}"], + description: `Checks whether the commands exist on the given host.\nReturns true if all the commands exist.\nEven one command we are looking for is not present we return false.` + }, + "addTags": { + snippets: ["${1:node}, ${2:tag_set}, ${3:skip:=none}"], + description: `Add tags to the node. Only "simple" tag names will be added\n(Keys containing alphanumeric and underscore characters)\n\nDRDC1-11550 - tags format\nDRDC1-11944 - tags management\n\n1. Function creates the following attributes:\na. node.tag_set - contains (without changes)\nb. node.tags - contains all tag names (without changes)\nc. for each :\nnode.tag_/ - where must contain letters, digits and '_'\nspecial chars ':', '-', ' ' must be replaced with '_')\n2. Function removes all old tag attributes which are not in tag_set\n\nInput examples, tag_set - is a table with -> :\ntag_set = {\n"first_name" = "first_value",\n"second_name" = "second_value"\n"spe:ci-al case" = "third_value"\n"\x65\xcc\x81" = "skipped"\n};\n\nOutput examples:\nnode.tag_set = {"first_name" = "first_value",\n"second_name" = "second_value",\n"spe:ci-al case" = "third_value",\n"\x65\xcc\x81" = "skipped"};\nnode.tags = ["first_name", "second_name",\n"spe:ci-al case", "\x65\xcc\x81"];\nnode.tag_first_name = "first_value";\nnode.tag_second_name = "second_value";\nnode.tag_spe_ci_al_case = "third_value";\n\nNote: "\x65\xcc\x81" is ignored because it contains illegal chars\n` + }, + "trimEmptyDisplayAttrs": { + snippets: ["${1:attrs}, ${2:include_tables}"], + description: `Function does:\n- reset values of empty attributes to 'void'\n- skip an attribute if the value of attribute is 'void'\n- returns a list of attribute names that could be used\nas display attributes\n\nSpecial attr_names:\n_attr_name - do not need to be displayed in UI,\nso they do not add to the list\n\nBy default empty table attributes (i.e. tags/labels) are NOT reset to void\nbut these can be includes by passing include_tables := true` + }, + "getXpathValue": { + snippets: ["${1:content}, ${2:expression}"], + description: `Returns the result of evaluating the xpath expression against the XML content.\nReturns a string containing the selected values.` + }, + "addSourceKey": { + snippets: ["${1:node}, ${2:source_key}"], + description: `Add source_key to node's _source_keys attribute if it is not\nalready present.` + }, + "getDiscoveryAccess": { + snippets: ["${1:node}"], + description: `Traverses to the DiscoveryAccess\n\nInput argument:\nnode - Host, NetworkDevice, etc...` + }, + "getFileMetadata": { + snippets: ["${1:host}, ${2:file}, ${3:ignore_file_version}"], + description: `Get version information from file metadata\n\nWe first try to use a powershell command, if that fails we use a WMI wmiQuery\n\nTakes: Host node\nFilename of file where metadata is required\nignore_file_version - If set to true, version will come from\nProductVersion attribute\n\nReturns: Full version\n\nChange History:\n2022-12-30 - Don't use escaped paths for WMI versioning, only for\npowershell versioning (DRDC1-20434)\n2023-01-24 - Replace "," with '.' in returned value (DRDC1-20573)\n2023-08-11 - Extra error checking (DRDC1-21517)\n2023-11-30 - Added support to get version from ProductVersion attribute\n(DRDC1-22155)\n2026-05-21 - Use three double quotes for file paths in PowerShell commands (DRDC1-29556)` + }, + "getDecoded": { + snippets: ["${1:target}, ${2:protocol}, ${3:path}, ${4:element}, ${5:message_prefix}"], + description: `Returns a decoded json which is the response to the restfulGet API requests.\n\nTakes: target - device or host against which the request is performed\nprotocol - '' - no auth, 'basic_auth', ...\npath - a string specifying the URL path\nelement - element to extract from json\nmessage_prefix - prefix for log messages\n\nReturns: decoded json or none on failure` + }, + "getItemValue": { + snippets: ["${1:data}, ${2:items}, ${3:default_value}"], + description: `This service function takes in a table, the path to the element and\nthe default value as inputs and returns either the value of the last\nelement in the path or the default value if that element cannot be\nfound in the table.\n\nInput arguments:\ndata - the table to lookup the data in.\nitems - the path to the element, e.g. for the table\nsome_table := {\n"item" : {\n"item2" : {\n"item3" : "value"\n}\n}\n}\nthe path to get the "value" of "item3" element\nwould be ["item", "item2", "item3"].\ndefault_value - the default value to return if the element is\nnot present.` + }, + "getOSType": { + snippets: ["${1:host}, ${2:container_id}"], + description: `Returns the OS type for the host or the container` + }, + "whichPackage": { + snippets: ["${1:host}, ${2:process_cmd}, ${3:container_id}"], + description: `Returns the package node to which the given process_cmd belongs\n\nInputs:\nhost - The host on which the given process cmd resides\nprocess_cmd - A fully-qualified process command\ncontainer_id - The ID of container\n\nOutput:\npackage - A single package node\n\nChange History:\n2025-02-24 - Added support for many OS types (DRDC1-25785)\n2025-03-05 - Corrected expected_content_regex to account for\npreceding new line (DRDC1-25872)\n2025-04-16 - Enhancement for package name regex (DRDC1-25837)\n2025-09-04 - Enhanced regex for Fedora package name (DRDC1-27271)` + }, + "getSep": { + snippets: ["${1:host}"], + description: `Return directory separator for a given host` + }, + "suppressRemovalGroups": { + snippets: ["${1:removal_group}"], + description: `Suppresses one or more removal groups.\n\nChange History:\n2026-04-16 - Added support for empty string removal_group(DRDC1-28532)` + }, + "stopIfSnmpDiscovered": { + snippets: ["${1:host}, ${2:removal_group}"], + description: `Check whether the host was discovered via SNMP.\n\nReturns true when host should be stopped by the caller.\n\nArgs:\nhost: Host node to check\nremoval_group: Optional RemovalGroup name or list of names to suppress` + }, + "isDirectScan": { + snippets: ["${1:node}, ${2:removal_group}"], + description: `Check if the pattern is running as a direct scan of the node.\n\nReturns false when the node was modeled in a different\nDiscoveryAccess context (for example cloud-imported hosts that are\nlater confirmed by a Kubernetes scan).\n\nThis first checks discovery.access(). If no direct DiscoveryAccess\nis found for the node, it falls back to inferred DiscoveryAccess links.\n\nArgs:\nnode: Node to check (typically Host or HostContainer)\nremoval_group: Optional RemovalGroup name or list of names to suppress\n\nReturns:\nBoolean - true if this is a direct scan, false otherwise` + } + }, + "Docker.Docker": { + "getContainerID": { + snippets: ["${1:process}"], + description: `Return the ID of the container that the process is running in.\nIf the process isn't running in a container, returns none\n\nChange History:\n2018-05-16 - Add condition to avoid ECA if parent was not obtained (DRDC1-11293)\n2020-12-28 - Updated regex to cover "containerd-shim" process cmd (DRDC1-16333)\n2023-01-16 - Updated (?i) flag placement in regular expression (DRDC1-20566)` + } + }, + "Docker.Swarm": { + }, + "Drupal.Drupal": { + "run_drush": { + snippets: ["${1:host}, ${2:install_root}"], + description: `Run the drush command and output the values as a table\n\nChange History:\n2025-12-16 - Small bug fixes (DRDC1-28274)` + }, + "find_install_root": { + snippets: ["${1:host}, ${2:webserver_si}, ${3:node}"], + description: `Find install_root and running_drupal for a given node\n\nTakes:\n* host\n* webserver_si - The triggering SI\n* node - Either a Web Server SI node or a Website SC node\n\nReturns:\n* install_root - A string\n* running_drupal - boolean\n\nChange History:\n2025-12-05 - Ensure install_root is always fully qualified (DRDC1-28274)` + }, + "find_version": { + snippets: ["${1:host}, ${2:install_root}"], + description: `Find version from one of the following method\n* drush command\n* Drupal.php file\n* CHANGELOG.txt file (parsed with findstr or grep)\n* bootstrap.inc\n\nTakes: host node, install_root\n\nReturns\n* full_version\n* running_drupal (a boolean)\n\nChange History:\n2025-12-05 - Try to get version from bootstrap.inc file (DRDC1-28274)\nSearch in multiple locations for Drupal.php (DRDC1-28274)` + }, + "find_linked_dbs": { + snippets: ["${1:host}, ${2:install_root}"], + description: `Find database nodes linked to Drupal installation\n\nWe can find this information by either the drush command or by parsing\nthe settings.php file\n\nTakes: host node, install_root\nReturns: A list of linked databases (or an empty list if none exist)` + }, + "create_SI": { + snippets: ["${1:host}, ${2:trigger_node}, ${3:install_root}, ${4:full_version}"], + description: `Create SoftwareInstance then link it to triggering node and database\n\nChange History:\n2025-12-09 - Move database linking to a function (DRDC1-28274)` + } + }, + "Duo.Security": { + }, + "Dynatrace.DCRUM": { + "link_related_db": { + snippets: ["${1:host}, ${2:jdbc_url}, ${3:prod_si}"], + description: `Function links related database detail\nto the software instance\n\nChange History:\n2016-11-14 - Updated function names according to the RDBMS_Functions changes (DRDC1-5767)` + } + }, + "Dynatrace.OneAgent": { + "obtain_install_root": { + snippets: ["${1:host}, ${2:process}"], + description: `Function obtaines install_root.\n\nTakes: host, process\nReturns: install_root` + } + }, + "EclipseFoundation.Eclipse": { + }, + "Eclipse.Jetty": { + }, + "Eclipse.Vertx": { + }, + "Edge.enPortal": { + }, + "EDITRAN": { + }, + "Elasticsearch.Elasticsearch": { + "getFirstLines": { + snippets: ["${1:host}, ${2:filename}"], + description: `Function returns first 101 lines of file given as argument.` + }, + "cleanConfigFile": { + snippets: ["${1:content}"], + description: `Removes commented-out lines, comments from the config file\nand empty value, e.g. '='\nReturned content has "\n" as end of line character.` + }, + "getValue": { + snippets: ["${1:str}, ${2:regular_expr}"], + description: `Function returns value matched by Regular Expression\nparameter passed to function. Used for obtaining one value.\n\nChange History:\n2021-12-13 - Updated to obtain values from square brackerts (DRDC1-17712)` + }, + "convertStrToVal": { + snippets: ["${1:str}"], + description: `Function accepts string, returns True in case input string matches "true"` + }, + "parseArgs": { + snippets: ["${1:host}, ${2:args}"], + description: `Function takes arguments of java process and returns\ninstall directory, configuration directory, distribution type.\nUnix specific values are log file directory and configuration file location.\n\nChange History:\n2021-12-13 - Cleaned code (DRDC1-17712)\n2026-01-16 - Updated approach to extract install_root (DRDC1-28552)` + }, + "parseLogs": { + snippets: ["${1:contents}, ${2:node_name}, ${3:node_id}, ${4:cluster_id}, ${5:full_version}, ${6:roles}, ${7:listening_ports}"], + description: `Function takes contents of log file(JSON or Log-file), and such attributes as:\n*Node Name\n*Node ID\n*Cluster UUID\n*Version\n*Roles\n*Listening Ports\n\nAll attributes with empty values will be overwritten if they are present in contents.\nFunction can take JSON contents or Log-file contents. Considering log files\nare rotated it is unknown how much information would be extracted.\n\nNode name will be obtained in case it is not set in config file,\nsame for listening ports, by default they are in range [9200, 9300-9305].\nLog file is rolled up day-by-day and can consist of different configs\nran one after another, we assume that we are dealing with one configuration at the time.\n\nChange History:\n2021-12-13 - Changed parsing logic for possibility of JSON contents input\nChanged function name (DRDC1-17712)` + }, + "expandValue": { + snippets: ["${1:host}, ${2:value}"], + description: `Function expandValue() performs removing quotes, and expanding value\nfrom environment variables.\nExample: \${HOSTNAME}-data -> test2.domain.com-data.\n\nSupported Platforms:\nUnix\nWindows\n\nChange history:\n2021-02-18 - Added Windows variables extraction support (DRDC1-13226)\n2021-08-02 - Changed function name (DRDC1-17068)\n2021-12-13 - Updated return value to empty in case of expanding failure (DRDC1-17712)` + }, + "getExpandedValue": { + snippets: ["${1:host}, ${2:str}, ${3:regex}"], + description: `Function returns value of abstracted system variable previously matched\nby Regular Expression from string.` + }, + "parseConf": { + snippets: ["${1:host}, ${2:content}"], + description: `Function that parses YML config file.\nExtracts values from abstracted system variables\n\nTakes:\n*Cleaned from comments config file contents\nReturns:\n*Node Name\n*Cluster Name\n*Node type\n*Listening ports\n*Log file directory\n*Security state\n*Local/Network API mode flag\n*API listening port\n*HTTP/HTTPS mode flag for API requests\n\nChange History:\n2021-07-15 - Changed invalid attribute names from 'cluster_id' and 'instance' to\n'cluster_name' and 'node name' to reflect real assets (DRDC1-17068)\n2021-12-13 - Updated to use getValue(), convertStrToVal() getExpandedValue()\nAdded 'secured', 'local_mode', 'http_port', 'http_ssl' variables (DRDC1-17712)\n\nSupported Platforms:\nWindows\nUnix` + }, + "makeLocalAPIRequest": { + snippets: ["${1:host}, ${2:port}, ${3:endpoint}"], + description: `Function uses system methods for making REST requests to local-only\nlistening instance, takes port and endpoint, returns decoded JSON in case of success.\nREST response '200' and '229' are treated as success. Response '229' corresponds\nto unsecured cluster.` + }, + "apiRequest": { + snippets: ["${1:host}, ${2:secured}, ${3:local_mode}, ${4:port}, ${5:https_on}"], + description: `Function makes API calls, based on input paramers, in case of success\nreturns success flag and table of obtained values.\n3 scenarios supported: 1)Unsecured node listening local address\n2)Secured node listening non-local address\n3)Unsecured node listening non-local address\nFunction makes 2 REST calls, REST discovery considered successful in case\nfirst call returns response, it is sufficient for SI modeling.\n\nTakes:\n*Host\n*Security flag\n*Local mode flag\n*API listening port\n*HTTPS enabled flag\nReturns:\n*Exit code\n*Table with obtained values\n\nSupported Platforms:\nWindows\nUnix\n\nChange History:\n2026-04-21 - Updated to allow disabling REST API calls (DRDC1-29464)` + } + }, + "Elastic.Agent": { + }, + "Elastic.APMServer": { + }, + "Elastic.Beats": { + "getTriggerFullpath": { + snippets: ["${1:host}, ${2:process}"], + description: `Returns the full path to the trigger process` + }, + "activeVersioning": { + snippets: ["${1:host}, ${2:process_cmd}, ${3:component}"], + description: `activeVersioning() attempts to get versioning from the output of an\nactive command made up of the trigger process command together with\nits 'version' parameter.` + }, + "find_urls_from_yml": { + snippets: ["${1:host}, ${2:yml_filename}"], + description: `Find URLs for remote hosts from yml_filename\n\nTakes : host, yml_filename\nReturns : Table. Key is SI type, value is a list of URLs hostname:port\n\nChange History:\n2024-08-01 - Sanitise returned urls\n2026-01-21 - Checks URL before adding to urls[linked_si_type] (DRDC1-26995)\n- Better processing of the linked_si_regexes table (DRDC1-26995)` + }, + "parse_yml": { + snippets: ["${1:host}, ${2:yml_filename}"], + description: `Parse the .yml file to obtain links to Elasticsearch Node and Kibana\n\nTakes : Host node, yml filename\nReturns : List of linked SIs\n\nChange History:\n2022-09-22 - Use standard function to find linked SIs (DRDC1-19802)\n2022-11-28 - We now find yml_filename externally and parse the value to\nthis function (DRDC1-20289)\n2023-01-16 - list processing updated (DRDC1-20603)\n2024-02-16 - Improve method to parse file (DRDC1-22914)` + }, + "run_metricbeat": { + snippets: ["${1:trigger_proc}, ${2:yml_filename}, ${3:arg}"], + description: `Run the metricbeat command.\n\nWe should only run it if the trigger process (which is also metricbeat)\nis fully qualified\n\nWe should use a -c option if we can\n\nTakes : Trigger Process node\nyml_filename - a String\narg - Argument to parse metricbeat command (e.g. "version")\nReturns : String with result output` + } + }, + "Elastic.Filebeat": { + }, + "Elastic.Kibana": { + }, + "Elastic.Metricbeat": { + "find_urls_from_yml": { + snippets: ["${1:host}, ${2:yml_filename}"], + description: `Find URLs for remote hosts from yml_filename\n\nTakes : host, yml_filename\nReturns : Table. Key is SI type, value is a list of URLs hostname:port\n\nChange History:\n2024-08-01 - Sanitise returned urls` + }, + "parse_yml": { + snippets: ["${1:host}, ${2:yml_filename}"], + description: `Parse the .yml file to obtain links to Elasticsearch Node and Kibana\n\nTakes : Host node, yml filename\nReturns : List of linked SIs\n\nChange History:\n2022-09-22 - Use standard function to find linked SIs (DRDC1-19802)\n2022-11-28 - We now find yml_filename externally and parse the value to\nthis function (DRDC1-20289)\n2023-01-16 - list processing updated (DRDC1-20603)\n2024-02-16 - Improve method to parse file (DRDC1-22914)` + }, + "run_metricbeat": { + snippets: ["${1:trigger_proc}, ${2:yml_filename}, ${3:arg}"], + description: `Run the metricbeat command.\n\nWe should only run it if the trigger process (which is also metricbeat)\nis fully qualified\n\nWe should use a -c option if we can\n\nTakes : Trigger Process node\nyml_filename - a String\narg - Argument to parse metricbeat command (e.g. "version")\nReturns : String with result output` + } + }, + "Elastic.Winlogbeat": { + }, + "Embarcadero.ChangeManager": { + }, + "Embarcadero.DBArtisan": { + }, + "Embarcadero.DSAuditor": { + }, + "Embarcadero.ERStudio": { + }, + "Embarcadero.InterBaseSMP": { + }, + "Embarcadero.PerformanceCenter": { + }, + "Embedded.Servers.Mule": { + }, + "EMC.Avamar": { + }, + "EMC.ControlCenterStorageScope": { + }, + "EMC.Documentum": { + }, + "EMC.DocumentumContentTransformationServices": { + "PatternBody": { + snippets: ["${1:process}, ${2:si_type}, ${3:short_type}"], + description: `The function contains the common code from EMCDocumentumCTS and EMCDocumentumADTS patterns.` + } + }, + "EMC.ECOM": { + }, + "EMC.ECS.Portal": { + "checkRestfulGetResult": { + snippets: ["${1:result}, ${2:request_url}"], + description: `Check the restfulGet output for the given request url\nReturn true if the result is available\nand the response_status equals 200` + }, + "getSoftwareVersion": { + snippets: ["${1:host}, ${2:request_url}"], + description: `Return the software version of the ECS Portal.\nReturn void if there is a problem extracting the software version.\n` + } + }, + "EMC.IonixControlCenter": { + }, + "EMC.NetWorker": { + "getPackageVer": { + snippets: ["${1:host}, ${2:package_list}"], + description: `Get full_version and build from installed packages` + }, + "getSIAttrs": { + snippets: ["${1:host}, ${2:component}, ${3:full_version}"], + description: `Gets certain SI attributes\n\nTakes: Component (e.g. Server, Client, Storage Node)\nproduct_version\n\nReturns : key_type - The type to put in the key\nsi_type - The type to display to the user\npublisher\nproduct` + } + }, + "EMC.PowerPath": { + }, + "EMC_RecoverPoint": { + }, + "EMC_Storage": { + "getVolumeType": { + snippets: ["${1:volume_record}"], + description: `\nReturn the volume Type based on different criteria.\n\nChange History:\n\n2015-10-20 Changed the condition on EMCVolumeAttributesDescription\nfor DRDC1-4372 (smis 8)\n` + }, + "getLinkRecords": { + snippets: ["${1:discovery_access}"], + description: `Query the link records (EMC_AllocatedFromStoragePool` + }, + "suppressRemovalGroups": { + snippets: ["${1:array_nodes}, ${2:chassis_index}"], + description: `Supresses the removal groups when an error has occurred` + } + }, + "EMC.Unisphere": { + }, + "EMC_Unity_Storage": { + }, + "EMC.ViPR.SRM": { + }, + "EMC_VNXe_Storage": { + "getLinkRecords": { + snippets: ["${1:discovery_access}"], + description: `Query the link records (EMC_AllocatedFromStoragePool)` + }, + "processStoragePools": { + snippets: ["${1:san_storage_system}, ${2:pool_records}, ${3:pool_nodes}"], + description: `Create a storage pool for each pool and link to the\nappropriate array. The supplied pool_nodes table is updated with\nthe created nodes, keyed by instance name.\n\nChange History:\n2021-01-11 Fixed DRDC1-16298 : Getting current san storage system (we have only one)\ninstead of using EMC_HostedStoragePool\n` + }, + "updateFileSystems": { + snippets: ["${1:discovery_access}, ${2:array_nodes}, ${3:volume_nodes}, ${4:STORAGE_PROVIDERS}"], + description: `Update the file systems for the given set of arrays\n\nReturns true if the update succeeds, false otherwise.\n\nChange History :\n\n2020-02-07 Link the file system to NAS Servers accordingly for TKU_2020_05_01 (DRDC1-13578)\n2020-09-18 - Fixed DRDC1-15810 : Add free_percentage, used_percentage attributes to FileSystem node\n2024-02-29 - Added the type "mixed" for file system that are linked\nto multiple instance of nas server for TKU_2024_04_01 (DRDC1-23028)\n` + }, + "updateExpansionChassis": { + snippets: ["${1:discovery_access}, ${2:san_storage_system}, ${3:hardware_containers}"], + description: `Create and link expansions chassis to the main chassis. Update the hardware containers table.\n\nreturn false if the update is unsuccessfull.` + }, + "updateDiskDrives": { + snippets: ["${1:discovery_access}, ${2:array_nodes}, ${3:san_storage_system}, ${4:hardware_containers}"], + description: `Update the disk drives for the given set of arrays\n\nReturns true if the update succeeds, false otherwise.\n\nChange History :\n\n2017-04-20 Fixed DRDC1-8401 - Add disk location on DiskDrive node for TKU_2017_04_01\n\n2017-08-04 For TKU_2017_09_01 added encryption information for storage system (DRDC1-9382)\n\n2018-12-03 Link the disk drives to the hardware containers for version 11.3+ of BMC Discovery for TKU_2019_07_01 (DRDC1-12177)\n` + }, + "updateStorageConnections": { + snippets: ["${1:discovery_access}, ${2:volume_nodes}, ${3:storage_systems_by_volume}"], + description: `Update the storage connections for the given set of volumes\n\nReturns true if the update succeeds, false otherwise.` + }, + "updateFrontEndPorts": { + snippets: ["${1:discovery_access}, ${2:san_storage_system}, ${3:volume_nodes}"], + description: `Update the front end ports for the given set of arrays and relate them to volumes\n\nReturns true if the update succeeds, false otherwise.` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:parent}"], + description: `Perform a storage scan on the given endpoint.\nThe endpoint is the storage device as SMI-S provider is embedded .\nNo assumption should be made about which endpoint we have.\n\n2016-10-11 Fixed DRDC1-7479 : EMC VNXe pattern optimization : remove WBEM association classes :\nEMC_VNXe_StorageSystem_StorageVolume_SystemDeviceAssocLeaf/\nEMC_VNXe_StorageSystem_SnapVolume_SystemDeviceAssocLeaf/\nEMC_VNXe_StorageSystem_LogicalDisk_SystemDeviceAssocLeaf_SystemDeviceAssocLeaf\nand EMC_VNXe_StorageSystem_DiskDrive_SystemDeviceAssocLeaf\n\n2017-08-04 For TKU_2017_09_01 added encryption information for storage system (DRDC1-9382)\n\n2018-12-18 Add updateMainChassis function to discover hardware container\nfor EMC VNXe for TKU_2019_07_01 (DRDC1-12177)\n\n2020-02-07 Add the discover of NAS Servers for TKU_2020_05_01 (DRDC1-13578)\n\n2020-07-03 Added scope attribute to StorageSystem node (DRDC1-15299)\n\n2021-01-11 Fixed DRDC1-16298 : Replaced Tag attribute by SerialNumber\nin EMC_VNXe_ArrayChassisLeaf WBEM table\nRemoved WBEM association classes:\nEMC_VNXe_StorageSystemSoftwareIdentityLeaf\n\n2023-03-15 Attribute Virtual for the storage system node is set to True if the type is\nNAS Virtual Server (DRDC1-21000)\n\n2023-01-18 Added attributes Status and Status Detail to storage system (DRDC1-19552)\n\n2023-10-11 Update the name of the storage system to indicate\nwhich type of server it is (cifs or nfs) (DRDC1-21947)\n\n2024-02-29 - Improve the discovery of NAS server multiprotocol\nwith several wbem instances for TKU_2024_04_01 (DRDC1-23028)\n\n2024-04-03 - Add the attribute dns_domain\nto storage system / storage device (DRDC1-23285)\n2024-04-15 - Added hidden attribute __capability_ids for TKU_2024_07_01\n(DRDC1-23319)\n` + } + }, + "EMC.VplexStartpar": { + }, + "EMC_VPLEX_Metro_Storage": { + "executeRequest": { + snippets: ["${1:discovery_access}, ${2:request_query}"], + description: `Return the decoded json response to the api request\n` + }, + "linkPoolsAndVolumes": { + snippets: ["${1:vv_nodes}, ${2:pool_nodes}"], + description: `Link StorageVolume to StoragePool and update\nthe subscribed capacity of the pools for volumes\nthat are mapped\n` + }, + "getBackendVolumeNaaId": { + snippets: ["${1:serial}"], + description: `Return the naa id of the backend storage volume\nin the expected format\n` + }, + "getVolumeNode": { + snippets: ["${1:backend_volume_nodes}, ${2:naa_id}"], + description: `Search for the backend volume node and cache it in the\nbackend_volume_nodes table irrespective of the\nvolume node foung or not.\n` + }, + "getExtentInfo": { + snippets: ["${1:discovery_access}, ${2:cluster_nodes}"], + description: `Get the extent info for each cluster and build a lookup\nbased on the device that are using it\n` + }, + "storageViewLookupTable": { + snippets: ["${1:sv_records}, ${2:sv_lookup_table}"], + description: `Update the sv_lookup_table with the storage view info\n` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:device}, ${3:rg_group}"], + description: `Perform a storage scan on the given endpoint\n` + } + }, + "EMC_VPLEX_Storage": { + "normalizedContext": { + snippets: ["${1:context}"], + description: `Json context returned by a vplex may change depending on the version of the vplex firmware.\nthis function transform all kind of json struct returned by a vplex to one which can be handled by the pattern.` + }, + "getDecoded": { + snippets: ["${1:discovery_access}, ${2:request_url}"], + description: `Queries the given rest api url then extracts the json 'context' from the response body and\nfinally returns a normalized response that can be handled by the pattern.` + }, + "checkForAttributes": { + snippets: ["${1:parent_context}, ${2:must_have_attr}, ${3:attr_list}, ${4:required_attributes}"], + description: `Check whether the must have attributes are present in the attribute list` + }, + "getInBytes": { + snippets: ["${1:size}"], + description: `Depending on the VPLEX firmware version we might get the value in Hex or in Bytes` + }, + "directorFirmware": { + snippets: ["${1:decoded_response}, ${2:engine_name}, ${3:director_name}"], + description: `return the firmware version of the director` + }, + "directorPorts": { + snippets: ["${1:decoded_response}, ${2:engine_name}, ${3:director_name}"], + description: `return all defined ports inside a director.` + }, + "engines": { + snippets: ["${1:discovery_access}"], + description: `Return All available engines in the vplex.` + }, + "directors": { + snippets: ["${1:discovery_access}, ${2:engine_table}"], + description: `Return all available director inside an engine.` + }, + "clusters": { + snippets: ["${1:discovery_access}"], + description: `Return All clusters related to a vplex` + }, + "hostInitiators": { + snippets: ["${1:cluster_nodes}, ${2:discovery_access}"], + description: `Build a lookup table with the host initiator keyed by cluster_key\n\nReturns the constructed or empty table` + }, + "clusterStorageViews": { + snippets: ["${1:cluster_nodes}, ${2:discovery_access}"], + description: `Return the list of cluster storage views.\nA cluster storage view is the combination of host (initiators) + ports + virtual volumes\nAt least one host and one port are needed to create a cluster storage view.\nSo a virtual volume is not necessary to create a cluster storage view.\nWe need the cluster storage view information in order to know which virtual volume is mapped to which host.\nIf the virtual volume value is not available then we can skip that cluster storage view record.` + }, + "lunLookupTable": { + snippets: ["${1:cluster_name}, ${2:storage_views}"], + description: `Return a lookup table for luns` + }, + "clusterVirtualVolumes": { + snippets: ["${1:cluster_nodes}, ${2:discovery_access}"], + description: `Return the list of virtual volumes for a given cluster.` + }, + "clusterStorageVolumes": { + snippets: ["${1:cluster_nodes}, ${2:discovery_access}"], + description: `Return the list of Storage volumes for a cluster. This is the representation of disks.` + }, + "clusterPools": { + snippets: ["${1:cluster_nodes}, ${2:device_decoded_response}, ${3:discovery_access}"], + description: `Return the list of pools (devices inside a cluster) for each cluster in cluster_list.` + }, + "getBackendVolumeNaaId": { + snippets: ["${1:system_id}"], + description: `Return the naa id of the backend storage volume in the expected format` + }, + "backendStorageDevice": { + snippets: ["${1:cluster_nodes}, ${2:pool_records}, ${3:device_decoded_response}"], + description: `Return the list of backend naa id for each device in the cluster` + }, + "distributedPools": { + snippets: ["${1:decoded_response}"], + description: `Return the list of pools (distributed devices)` + }, + "backendStorageDistributedDevice": { + snippets: ["${1:distributed_pool_records}, ${2:decoded_response}"], + description: `Return the list of backend naa id for each distributed device in the cluster` + }, + "getNaaIdList": { + snippets: ["${1:device_name}, ${2:backend_naa_id_by_device}, ${3:backend_naa_id_by_distributed_device}"], + description: `Return the list of naa ids associated to the device` + }, + "processStoragePools": { + snippets: ["${1:cluster_nodes}, ${2:pool_records}, ${3:pool_nodes}, ${4:pool_to_cluster_node}"], + description: `Create a storage pool for each pool and link to the\nappropriate array. The supplied pool_nodes table is updated with\nthe created nodes, keyed by instance name.` + }, + "processDistributedPools": { + snippets: ["${1:cluster_group_node}, ${2:distributed_pool_records}, ${3:pool_nodes}, ${4:rg_cluster}"], + description: `Create a storage pool of type distributed pool and link it to the cluster\ngroup. The supplied pool_nodes table is updated with\nthe created nodes, keyed by instance name.` + }, + "linkPoolsAndVolumes": { + snippets: ["${1:volume_nodes}, ${2:pool_nodes}"], + description: `Link StorageVolume to StoragePool and update\nthe subscribed capacity of the pools for volumes\nthat are mapped` + }, + "getVolumeNode": { + snippets: ["${1:backend_volume_nodes}, ${2:naa_id}"], + description: `Search for the backend volume node and cache it in the\nbackend_volume_nodes table irrespective of the\nvolume node foung or not.` + }, + "getPortSpeed": { + snippets: ["${1:max_speed}, ${2:current_speed}"], + description: `return the speed of the front end port` + }, + "updateFrontEndPorts": { + snippets: ["${1:cluster_table}, ${2:director_table}, ${3:cluster_nodes}"], + description: `Update the front end ports for the given set of arrays and relate them to volumes\nReturns true if the update succeeds, false otherwise.\n\nChange History:\n2020-01-24 - Fixed DRDC1-14542 : Corrected ECA Error caused by\nprocessor serial number returning None value\n2025-05-09 - INTERNAL: Update the role attribute value as 'Front End'\nfor resource_unit calculation (DRDC1-26406)` + }, + "updateDiskDrives": { + snippets: ["${1:discovery_access}, ${2:cluster_nodes}, ${3:storage_volume_records}"], + description: `Update the disk drives for the given set of arrays\n\nReturns true if the update succeeds, false otherwise.\n` + }, + "createClusterGroup": { + snippets: ["${1:discovery_access}, ${2:parent}, ${3:cluster_nodes}, ${4:rg_cluster}"], + description: `Create a StorageSystemGroup node and link to the vplex clusters.\nThe supplied cluster_group_node table is updated with\nthe created node, keyed by concatenating the clusters serial number.` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:parent}, ${3:rg_cluster}"], + description: `Perform a storage scan on the given endpoint.\n\n2016-09-05 : calculate the VPlex model number based on the number / speed of FC Ports\nif one director has 8 ports then it's a VS1\nif it has 4 ports with 8 Gb/s speed then its VS2\nif it has 4 ports with 16 Gb/s speed then its VS6.\n2018-01-08 : Use the cluster serial to build the storage system key (DRDC1-10461)\n\n2018-12-03 : Updating the pattern according to Distributed Storage Model (DRDC1-12269)\n2020-07-03 : Added scope attribute to StorageSystem and StorageSystemGroup node (DRDC1-15299)\n2023-01-18 - Added attributes Status and Status Detail to storage system (DRDC1-19552)\n\n2024-04-03 - Added the attribute dns_domain\nto storage system / storage device (DRDC1-23285)\n2024-04-16 - Added hidden attribute __capability_ids for TKU_2024_07_01\n(DRDC1-23319)` + } + }, + "Empirix.OneSight": { + "shortFileName": { + snippets: ["${1:host}, ${2:candidates}, ${3:my_name}"], + description: `Finds the shortest form of the filename necessary to distinguish it\n\nFor example, suppose we have three instances of the software running in\n* /opt/BigCorp/BigApp/inst1/a\n* /opt/BigCorp/BigApp/inst1/b\n* /opt/BigCorp/BigApp/inst2\n\nWe should only report inst1/a in the name. There's no point reporting\n/opt/BigCorp/BigApp in the name as that doesn't help distinguish the instances\n\nTakes:\n* Host node\n* A list of candidate filenames\n(in our example ["/opt/BigCorp/BigApp/inst1", "/opt/BigCorp/BigApp/inst2" ...]\n* The name of this particular instance\n(in our example "/opt/BigCorp/BigApp/inst1a")\n\nReturns:\nThe short form of the name (in our example "inst1/a")` + } + }, + "Entrust.GetAccess": { + "parseVersionXML": { + snippets: ["${1:version_xml_content}"], + description: `Keine Beschreibung verfügbar.` + } + }, + "Entuity.Entuity": { + "active_versioning": { + snippets: ["${1:host}, ${2:install_root}"], + description: `active_versioning performs version extraction from command execution result\n\nChange History:\n2019-02-12 - Update to use Future.runCommand` + }, + "file_versioning": { + snippets: ["${1:host}, ${2:install_root}"], + description: `file_versioning performs version extraction from entuity.cfg file\n` + }, + "port_from_file": { + snippets: ["${1:host}, ${2:install_root}, ${3:port_regex}"], + description: `file_versioning performs port extraction from entuity.cfg file` + } + }, + "EnvoyProxy": { + }, + "Equallogic_Storage": { + "updateDiskDrives": { + snippets: ["${1:discovery_access}, ${2:parent}, ${3:storage_system_group_node}, ${4:array_nodes}"], + description: `Update the disk drives for the given set of arrays\nReturns true if the update succeeds, false otherwise.\n\nHistory\n\n2017-06-27 - Added disk location information on the disk drive node for TKU_2017_07_01 (DRDC1-8390)\n` + }, + "linkPoolsAndVolumes": { + snippets: ["${1:volume_list}, ${2:pool_nodes}, ${3:volume_nodes}, ${4:storage_system_group_node}"], + description: `\nLink Volumes to pools\n` + }, + "updateControllers": { + snippets: ["${1:discovery_access}, ${2:array_nodes}, ${3:controller_list}"], + description: `Create the controller and link it to the appropriate array.` + }, + "updateStorageConnections": { + snippets: ["${1:discovery_access}, ${2:parent}, ${3:storage_system_group_node}, ${4:volume_nodes}, ${5:volumes_by_node_index}"], + description: `\nUpdate the storage connections for the given set of volumes\n\nReturns true if the update succeeds, false otherwise\n` + }, + "linkIPAddressToStorageSystemGroup": { + snippets: ["${1:parent}, ${2:group}, ${3:storage_system_group_node}"], + description: `Associate Group IP Address To the Storage System Group` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:parent}"], + description: `Perform a storage scan on the given endpoint.\n\nChange History:\n2020-07-03 Added scope attribute to StorageSystem and StorageSystemGroup node (DRDC1-15299)\n2024-04-03 Added the attribute dns_domain\nto storage system / storage device (DRDC1-23285)\n\n2024-04-15 Add hidden attribute __capability_ids for TKU_2024_07_01\n(DRDC1-23319)\n\n2025-06-03 INTERNAL: Updated the pattern by setting the resource_unit\nvalue for Network Interface node (DRDC1-26573)` + } + }, + "Equisys.Zetafax": { + }, + "ESET.SecurityServices": { + }, + "Esri.ArcGIS": { + }, + "ESX_Storage": { + "isVirtualDisk": { + snippets: ["${1:vendor}, ${2:model_name}"], + description: `Returns True if the given vendor/model info are for a virtual disk` + }, + "getRelatedDFS": { + snippets: ["${1:fs}, ${2:message_prefix}"], + description: `Returns related DiscoveredFileSystem for the Filesystem` + } + }, + "Eternus_Storage": { + "updateStorageConnections": { + snippets: ["${1:discovery_access}, ${2:array_nodes}, ${3:volume_nodes}, ${4:system_device_records}"], + description: `Update the storage connectons for the given set of volumes\n\nReturns true if the update succeeds, false otherwise.` + }, + "updateDiskDrives": { + snippets: ["${1:discovery_access}, ${2:array_nodes}, ${3:system_devices}, ${4:enclosure_lookup}"], + description: `Update the disk drives for the given set of arrays\n\nReturns true if the update succeeds, false otherwise.\n\nHistory :\n\n2017-06-14 Added Disk location information on the disk drive node for TKU_2017_06_01 (DRDC1-8393)\n2017-09-25 Added the discovery of enclosure serial number for disk drive location for TKU_2017_10_01 (DRDC1-9933)\n` + }, + "getLinkRecords": { + snippets: ["${1:discovery_access}"], + description: `Query the link records (CIM_AllocatedFromStoragePool)` + }, + "updatePoolsAndVolumes": { + snippets: ["${1:discovery_access}, ${2:array_nodes}, ${3:pool_nodes}, ${4:volume_nodes}, ${5:system_device_records}"], + description: `Update the pools and volumes for the given set of arrays.\n\nReturns true if the update succeeds, false otherwise.\n\nThe given volume_nodes table is populated with the volumes nodes\ncreated/updated but is only valid if the result is true.\n\nChange History:\n\n2020-10-16 Updating the table storage_systems_by_volume with related\naray nodes for each volume node (DRDC1-15952)` + }, + "queryEnclosure": { + snippets: ["${1:discovery_access}"], + description: `function that query CIM_Chassis to get the two children table\nFUJITSTU_ControllerEnclosure and FUJITSU_DeviceEnclosure into one single table of enclosure.\nreturn the lookup table of enclosures, none otherwise.` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:parent}"], + description: `Perform a storage scan on the given endpoint. The endpoint may be\na host with a management SI or the device endpoint itself. No\nassumption should be made about which endpoint we have.\n\nHistory\n2017-09-25 Change the enclosure query to get the expansion enclosure for TKU_2017_10_01 (DRDC1-9933)\n\n2020-07-03 Added scope attribute to StorageSystem node (DRDC1-15299)\n2023-01-18 Added attributes Status and Status Detail to storage system (DRDC1-19552)\n2024-04-22 Added the attribute dns_domain\nto storage system / storage device (DRDC1-23425)\n2024-04-15 Added hidden attribute __capability_ids for TKU_2024_07_01\n(DRDC1-23319)\n` + } + }, + "Eventuate.Eventuate": { + }, + "Evolven": { + }, + "ExaGrid_Storage": { + }, + "Exim": { + }, + "Experian.PowerCurve": { + }, + "ExtendedSQLQuery": { + "isValidIP": { + snippets: ["${1:ip}"], + description: `Check this IP is valid to use to query a database, i.e. not a query that\nreferences localhost` + } + }, + "ExtendedTomcatDiscovery.Workers": { + "processWorkers": { + snippets: ["${1:host}, ${2:workers_content}, ${3:tomcat_list}"], + description: `Processes workers information and adds related tomcat(s) to the list\n\nChange History:\n2018-12-10 - Extra sanity checking (DRDC1-12298)` + } + }, + "Extreme_AP": { + }, + "F5_BIG_IP_LoadBalancer": { + "getTLSCert": { + snippets: ["${1:device}, ${2:service}, ${3:instance_key}, ${4:profile}, ${5:rest_auth_to_use}, ${6:r_group}"], + description: `Function creates a Certificate node for each TLS certificate associated with\na given profile and links it to the Load Balancer service node\n\nChange History:\n2023-10-09 - Updated to use different auth types in REST request (DRDC1-21600)\n2024-08-05 - Updated subject_alternative_names attribute (DRDC1-24078)\n2025-02-20 - Changed Detail node to Certificate (DRDC1-25383)\n2026-07-15 - Added alternative TLS certificate location (DRDC1-29391)` + }, + "extractPools": { + snippets: ["${1:irules_raw}"], + description: `Helper function that splits iRule line by line and extracts pool names.\n\nChange History:\n2022-04-12 - Updated regex to parse pool (DRDC1-18827)\n2022-07-07 - Added check to avoid proceed with None irules_raw argument (DRDC1-19405)` + }, + "getPoolNames": { + snippets: ["${1:vserver}, ${2:vservers_rules}, ${3:irules_resp}"], + description: `Extract Virtual Servers' pool names from the iRules configured for\na given Virtual server.` + } + }, + "FileMaker.FileMakerServer": { + }, + "Finastra.FusionLoanIQ": { + }, + "Fiorano.FioranoMQ": { + "parse_cfg": { + snippets: ["${1:host}, ${2:profile_home}, ${3:sep}, ${4:jms_port_def}, ${5:web_port_def}, ${6:rmi_port_def}"], + description: `Function for extracting information from Configs.cfg file` + }, + "parse_xml": { + snippets: ["${1:host}, ${2:profile_home}, ${3:sep}, ${4:jms_port_def}, ${5:web_port_def}, ${6:rmi_port_def}"], + description: `Function for extracting information from Configs.xml` + }, + "get_fds": { + snippets: ["${1:host}, ${2:process}, ${3:fiorano_home}, ${4:sep}"], + description: `Function for extracting FDS-related information` + }, + "get_license": { + snippets: ["${1:host}, ${2:fiorano_home}, ${3:sep}, ${4:error_regex}"], + description: `Function for extracting license information\n\nChange History:\n2019-02-12 - Use new path escape function` + }, + "get_versions": { + snippets: ["${1:host}, ${2:fiorano_home}, ${3:profile_home}, ${4:sep}, ${5:error_regex}"], + description: `Function for version extraction.\nUses file, path and package versioning.\n\nChange History:\n2019-02-12 - Use new path escape function` + }, + "create_links": { + snippets: ["${1:host}, ${2:servers}, ${3:fmq_si}"], + description: `Function for creating links between FMQ SIs.\nCreates peer-to-peer links when dispatcher, repeater or HA features detected.` + } + }, + "FireEye.EndpointSecurityHXSeries": { + }, + "FlashSystem_CIM_Storage": { + "updateStorageSystemSN": { + snippets: ["${1:storage_system}, ${2:storage_system_path}, ${3:enclosure_records}, ${4:enclosure_pkg}"], + description: `Update the serial number of the given storage system for IBM FlashSystem\n\nHistory\n\n2018-05-22 - Pass in the storage system path rather than search for it` + }, + "updateHardwareContainer": { + snippets: ["${1:enclosure_records}, ${2:enclosure_pkg}, ${3:storage_system}, ${4:hardware_containers_by_id}"], + description: `Create hardware container and link the control container to the storage system and the expansions container to the control container.\nUpdate hardware_containers_by_id.\n\nreturn false if no enclosure records or no associations between enclosure and storage system.\n` + }, + "linkDiskDriveToHardwareContainer": { + snippets: ["${1:discovery_access}, ${2:hardware_containers_by_id}, ${3:storage_system}, ${4:disk_drive_snmp_table}"], + description: `Get the list of all disk drives created from the SNMP pattern and link them to their related hardware container.\nAlso update the chassis serial number property of the disk drive.` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:storage_system}, ${3:system_id}, ${4:disk_drive_snmp_table}"], + description: `Perform General Queries on the SMIS Provider for IBM FlashSystem\n\nHistory\n\n2018-05-22 - Add a new function to discover the hardware container for TKU_2018_10_01 (DRDC11-11801)\n- Search the storage system path in this function and provide it to the other functions when needed\n- Return hardware_containers_by_id to link the disk drive to hardware containers for TKU_2018_10_01 (DRDC1-11801)` + } + }, + "FlashSystem_Storage": { + "getFibrePortState": { + snippets: ["${1:value}"], + description: `Get a pretty state value from a raw status value\nThis function works only with fcStatus table` + }, + "getGenericSize": { + snippets: ["${1:raw_value}"], + description: `Format a byte value and build a generic format\nto be used by convertToBytes in common functions pattern` + }, + "createFibrePorts": { + snippets: ["${1:discovery_access}, ${2:storage_system}, ${3:storage_processors}, ${4:fcp_table}"], + description: `An IBM FlashSystem storage system supports one of the following port configurations\n8 ports at 16Gb FC\n16 ports at 8Gb FC\nEach FlashSystem canister supports two Fibre Channel interface cards for a total of four Fibre Channel interface cards,\n8 Gbps Fibre Channel cards support four ports, 16 Gbps cards support two ports.\nhttp://www.redbooks.ibm.com/redbooks.nsf/redbookabstracts/tips1261.html?Open&c4\n\nChange History:\n\n2025-06-26 INTERNAL: Updated the pattern by setting the FC port role\nto 'Front End' value for resource unit calculation\n(DRDC1-26771)` + }, + "updateProcessors": { + snippets: ["${1:discovery_access}, ${2:storage_system}, ${3:node_table}, ${4:fcp_table}"], + description: `Discover the storage processor node` + }, + "updateDiskDrives": { + snippets: ["${1:discovery_access}, ${2:storage_device}, ${3:storage_system}, ${4:disk_drive_by_id}"], + description: `Update Flash Modules\n\nHistory\n\n2017-05-19 Added disk location informations in the disk drive node and serial number to the storage system (DRDC1-8398) for TKU_2017_05_01\n2018-01-14 Added the encryption information to the disk drive node for TKU_2018_01_01 (DRDC1-10538)` + }, + "computePoolAndSystemCapacities": { + snippets: ["${1:storage_system}, ${2:storage_pool}, ${3:storage_pool_configured_capacity}"], + description: `Compute and update the following parameters :\nstorage_system.allocated_capacity\nstorage_system.available_capacity\nstorage_system.total_consumed_capacity\nstorage_pool.configured_capacity\nstorage_pool.consumed_capacity\nstorage_pool.remaining_capacity` + }, + "createStorageVolumes": { + snippets: ["${1:discovery_access}, ${2:storage_device}, ${3:storage_system}, ${4:storage_pool}"], + description: `Create storage volumes` + }, + "updatePoolAndVolumes": { + snippets: ["${1:discovery_access}, ${2:storage_device}, ${3:storage_system}"], + description: `IBM confirms that FlashSystem supports only one storage pool\nthe private MIB doesn't provide storage pool <-> volumes relationships\nthis function will create only one flash system pool (Primordial Pool).` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:storage_device}"], + description: `Perform the IBM FlashSystem disocvery.\nThe endpoint is always the storage device itself.\n\n2018-01-14 Add a new function to update the storage system serial number for TKU_2018_01_01 (DRDC1-9850)\n2019-03-20 Add the link NetworkInterface <--> StorageSystem and the link IPAddress <--> StorageSystem (DRDC1-12793)\n2020-07-03 Added scope attribute to StorageSystem node (DRDC1-15299)\n2024-04-22 Added the attribute dns_domain\nto storage system / storage device (DRDC1-23425)\n2024-04-15 - Added hidden attribute __capability_ids for TKU_2024_07_01\n(DRDC1-23319)` + } + }, + "Flexera.FlexNetManagerSuite": { + "packageVersioning": { + snippets: ["${1:host}, ${2:packages}"], + description: `retrieves version from packages` + }, + "setAttributes": { + snippets: ["${1:host}, ${2:full_version}, ${3:si_type}, ${4:short_si_type}"], + description: `retrieves product version\ninitializes name and short_name attributes\nreturns product_version, name, short_name\n\nChange History:\n2023-09-26 - Added internal to marketing version lookup table (DRDC1-21897)\n- Added service pack support (DRDC1-21897)` + } + }, + "Flowerfire.Sawmill": { + }, + "ForeScout.HPS": { + }, + "FortinetADC": { + }, + "Fortinet_AP": { + }, + "Fortinet_FortiGate_VDOM": { + }, + "Fortinet_FortiManager": { + }, + "Fortra.JAMS": { + "getRole": { + snippets: ["${1:host}, ${2:install_root}"], + description: `Find the role of the SI: primary or secondary\n\nTakes : Host node\nInstall root\nReturns : Role - String reading "primary" or "secondary"\nOther Scheduler - SI scheduler of the secondary node if we have\na primary role and vice versa` + }, + "getSQLServerLinks": { + snippets: ["${1:host}, ${2:install_root}"], + description: `Keine Beschreibung verfügbar.` + } + }, + "FoxTechnologies.BoKS": { + }, + "FSecure.AntiVirus": { + }, + "Fujitsu_BladeSystem": { + }, + "Fujitsu.InterstageApplicationServer": { + }, + "Fujitsu.InterstageShunsakuDataManager": { + }, + "Fujitsu_iRMC": { + }, + "Fujitsu.ServerViewOperationsManager": { + }, + "Fujitsu_TapeLibrary": { + }, + "Fusion.Enhancement.Unknown_JVM_Publisher": { + }, + "GemstoneSystems.GemStone_S_ObjectServer": { + }, + "Genesys.Genesys": { + "getAttributes": { + snippets: ["${1:host}, ${2:process}, ${3:install_root_regex}"], + description: `Function to extract instance, port, conf_serv_host, license_address, install_root attribute values\nChange History:\n2025-07-21 - Added exe_path for return (DRDC1-25732)` + }, + "fileVersioning": { + snippets: ["${1:host}, ${2:install_root}, ${3:instance}"], + description: `Function which extracts full_version from ip_description.xml file\n\nChange History:\n2023-03-23 - A default 'lca' instance may cause incorrect path on UNIX (DRDC1-21062)\n2023-07-05 - Updated file versioning method (DRDC1-21529)\n2025-07-21 - Removed the check for instance = lca (DRDC1-25732)` + }, + "packageVersioning": { + snippets: ["${1:host}, ${2:package_regex}"], + description: `Function which extracts full_version from package` + }, + "settingName": { + snippets: ["${1:host}, ${2:si_type}, ${3:short_si_type}, ${4:product_version}, ${5:instance}"], + description: `Function which assigns name and short_name attributes` + }, + "getLicenseHosts": { + snippets: ["${1:license_address}"], + description: `Function which extracts host(s) on which related License Server Manager is running` + } + }, + "Genetec.SecurityCenter": { + }, + "GitHub.GitHub": { + }, + "GitHub.Resque": { + }, + "GlassFish.ExtendedDiscovery": { + }, + "Globalscape.EFT_Server": { + }, + "GoldenGate": { + "parse_config": { + snippets: ["${1:content}, ${2:schema_mapping}"], + description: `Function reads tables mapping and returns the list with unique values.\n\nChange History:\n2018-01-05 - updated regex for schema_name extraction.` + } + }, + "GoogleCloudPlatform.AIPlatform": { + }, + "GoogleCloudPlatform.AppEngine": { + }, + "GoogleCloudPlatform.ArtifactRegistry": { + "createResource": { + snippets: ["${1:project_name}, ${2:result}, ${3:da}, ${4:service}"], + description: `Models CloudResource node from obtained data.\nReturns Google Artifact Registry Repository node` + } + }, + "GoogleCloudPlatform.BigQuery": { + }, + "GoogleCloudPlatform.Bigtable": { + }, + "GoogleCloudPlatform.CloudBuild": { + }, + "GoogleCloudPlatform.CloudRun": { + }, + "GoogleCloudPlatform.CommonFunctions": { + "getProjectName": { + snippets: ["${1:da}"], + description: `Extract project name for a given DA.\n\nReturns the project name or the ID if the name cannot be obtained.` + }, + "_getProviderKey": { + snippets: [""], + description: `Return the provider key` + }, + "getProvider": { + snippets: [""], + description: `Returns the GCP CloudProvider node\nChange History:\n2022-05-03 Avoid updating inference relationships on CloudProvider\nnodes (DRDC1-18279)` + }, + "_getRegionKey": { + snippets: ["${1:project}, ${2:region_code}"], + description: `Return the region key` + }, + "isInRegionList": { + snippets: ["${1:da}, ${2:current_region}"], + description: `Check if region is in DiscoverRun Regions` + }, + "getRegion": { + snippets: ["${1:da}, ${2:provider}, ${3:global}, ${4:lookup_region}"], + description: `Returns the CloudRegion node for the given DDD node\n\nChange History:\n2020-10-22 Added global flag to model Global region (DRDC1-15994)\n2022-03-29 Added cloud_account_id and cloud_account_name attributes (DRDC1-18386)\n2022-05-03 Avoid updating inference relationships on CloudRegion\nnodes (DRDC1-18279)\n2023-11-14 Added cloud_id attribute to Cloud Region (DRDC1-22103)\n2022-10-02 Added the ability to specify the region (DRDC1-25901)` + }, + "_getServiceKey": { + snippets: ["${1:project}, ${2:region_code}, ${3:service_code}"], + description: `Return the service key for the given project, region and service code` + }, + "getService": { + snippets: ["${1:da}, ${2:region}, ${3:code}, ${4:associate}"], + description: `Returns the GCP CloudService node\n\nChange History:\n2022-03-29 Added cloud_account_id and cloud_account_name attributes (DRDC1-18386)\n2022-05-04 Avoid updating inference relationships on CloudService\nnodes (DRDC1-18279)\n2023-01-10 Added confirmation of found CloudService node to make\ncontinuous CMDB sync triggering (DRDC1-20544)\n2023-11-14 Added cloud_id attribute to Cloud Service (DRDC1-22103)` + }, + "findServices": { + snippets: ["${1:code}, ${2:zone:=none}, ${3:region:=none}, ${4:project:=none}"], + description: `Find related CloudService nodes in specified zone/region or all nodes\n\nChange History:\n2023-01-03 Updated in order to use project in search for CloudService node (DRDC1-20329)` + }, + "createRemovalTracker": { + snippets: ["${1:da}, ${2:name}, ${3:kind}, ${4:is_rel}, ${5:global}"], + description: `Create a removal tracker for the given kind and DA\n\n2020-11-19 Added global flag to have correct removal tracker tag(DRDC1-15994)` + }, + "updateFailureTimeForService": { + snippets: ["${1:result}, ${2:service_code}"], + description: `Updates the last_update_failure time on the reqested CloudService\nnode, if it can be found` + }, + "findGCEInstances": { + snippets: ["${1:self_link}, ${2:project}, ${3:zone:=}, ${4:instance_name}"], + description: `Returns a GCE VirtualMachine node found using:\nself_link (for VM Instance or Group Instance)\nor\nproject, zone, instance_name\n\nReturns:\n[vm] - if self_link is for single instance or managed instance group\n[vms] - if self_link is for unmanaged instance group\n[] - if no VirtualMachine can be found.\n\nChange History:\n2018-09-04 - added support for instanceGroupManagers urls (DRDC1-11936)\n2018-10-03 - findServices function is used noe for compute service search (DRDC1-11015)\n2021-07-08 - vms search has been changed (DRDC1-16937)\n2023-01-03 Updated in order to use project in search for CloudService node (DRDC1-20329)` + }, + "linkVPCNodes": { + snippets: ["${1:vpc_node}, ${2:related_nodes}, ${3:rel_tracker}"], + description: `Create relation between VPC node and related resources\n\n2026-06-24 Change rel_tracker to optional parameter (DRDC1-28516)` + }, + "findVPCResources": { + snippets: ["${1:vpc_node}, ${2:rel_tracker}, ${3:region}"], + description: `Find and relate VPC node and its resources` + }, + "findVPCnode": { + snippets: ["${1:da}, ${2:region}, ${3:node}"], + description: `Find and link related 'Google Virtual Private Cloud Network' node\nbased on node's network_name and project_name\n\nChange History:\n2024-08-09 Link given node to Subnets (DRDC1-16514)\n2026-06-24 Removed redundant rel_tracker` + }, + "traverseToCloudSI": { + snippets: ["${1:service_node}, ${2:rel_path}"], + description: `Traverse from Cloud Service to SoftwareInstance` + }, + "traverseToCloudSIDB": { + snippets: ["${1:service_node}, ${2:rel_path}"], + description: `Traverse from Cloud Service to SoftwareInstance` + }, + "getRelPath": { + snippets: ["${1:self_link}"], + description: `Extract relative path from selfLink.\n\nRelative path - is a path inside of cloud service, excluding host, service and API version\n\nOne resource can be addressed by different self_link because of different\n- APIs versions (v1, v1beta, v2)\n- (potentially) host part (https://bigtableadmin.googleapis.com/v1, https://www.googleapis.com/bigtableadmin/v1)\n\nExample:\nif selfLink = https://bigtableadmin.googleapis.com/v2/projects/scenic-theorem-189616/instances/bigtable-instance\nthen rel_path = scenic-theorem-189616/instances/bigtable-instance` + }, + "findResources": { + snippets: ["${1:self_link}"], + description: `Find inferred node by its self_link, like:\n\nhttps://www.googleapis.com/deploymentmanager/v2/projects/scenic-theorem-189616/global/deployments/cloudsql\nhttps://container.googleapis.com/v1beta1/projects/scenic-theorem-189616/zones/us-central1-a/clusters/cluster-1\nhttps://bigtableadmin.googleapis.com/v2/projects/scenic-theorem-189616/instances/bigtable-instance\n\nOne resource can be addressed by different self_link because of different\n- APIs versions (v1, v1beta, v2)\n- (potentially) host part (https://bigtableadmin.googleapis.com/v1, https://www.googleapis.com/bigtableadmin/v1)\n\nChange History:\n2020-07-21 Added check for expected value in self_link to avoid ECA (DRDC1-15551)` + }, + "addTags": { + snippets: ["${1:node}, ${2:tag_set:=none}, ${3:tags_list:=none}"], + description: `Add tags to the node. Only "simple" tag names will be added\n(Keys containing alphanumeric and underscore characters)\n\nInput arguments:\nnode - target node\ntag_set or tags_list - used one of arguments (extracted from successful API call)\n\nChange History:\n2018-09-04 - code refactoring (DRDC1-11921 )` + }, + "isFirstFromSupported": { + snippets: ["${1:current_region}, ${2:region_list}, ${3:supported_regions}"], + description: `Check if region is first from supported` + }, + "runOnceForProject": { + snippets: ["${1:da}, ${2:supported_regions}"], + description: `The function determines the region range of scan launched and, depending on the\nsupported regions list, issues either true or false to launch a request.\n\nsupported_regions - Optional list of regions in which the service exists\nand works, if no supported_regions provided -function will return trues for first region.\n\nChange History:\n2024-07-18 - Logic updated (DRDC1-23203)\n2025-07-01 - Add checking for inferred sync. Return False in case of inferred sync to avoid\ndirect request run (DRDC1-26857)` + }, + "getServicesForMultiRegionResouces": { + snippets: ["${1:da}, ${2:provider}, ${3:CODE}, ${4:location_type}, ${5:location}, ${6:data_locations}"], + description: `The function, based on 2 common and 1 optional attributes for Multi-region\n(and Dual-region) resources, creates the necessary Regions and Services\nnodes, the list of which is returned for subsequent linking.\n\n! It is highly recommended to use the function in a pattern together\nwith the runOnceForProject() to reduce the number of repeated node\ncreation iterations.\n\nLogic:\nGet Location Type convert it to real Location / locations\nThere are 3 possible options for the Location Type.\nThe description of the location types here (is not very clear):\nhttps://cloud.google.com/storage/docs/locations\n\n'region'\n--> REGION_CODE upercassed.\n\n'dual-region'\n--> short COUNTRY CODE, for NOT Predefined Dual Ragions\n(exact locations are in customPlacementConfig field)\nor\n--> short Predefined Dual Ragion Code\n(will be extracted from PREDEFINED_DUAL_REGIONS table)\n\n'multi-region'\n--> short MULTI REGION Code (US, EN or ASIA)\n(will be extracted from MULTI_REGIONS table)` + }, + "getScope": { + snippets: ["${1:network_path}"], + description: `Returns a normalized VPC network scope string from a GCP network resource URL/path.\n\nInput example:\nhttps://www.googleapis.com/compute/v1/projects/sso-gcp-dsom-discovery-c30290/global/networks/default\n\nOutput example:\nprojects/sso-gcp-dsom-discovery-c30290/networks/default\n\nNotes:\n- Extracts the path segment after 'projects/'\n- Removes the '/global/' segment from network paths` + } + }, + "GoogleCloudPlatform.ComputeEngine": { + "createVM": { + snippets: ["${1:project_id}, ${2:project_name}, ${3:instance_result}, ${4:zones}, ${5:service}, ${6:tracker}"], + description: `Create VirtualMachine node with minimal set of attributes` + }, + "extractGroupManagerAttrs": { + snippets: ["${1:instance_result}"], + description: `Extract attrs for GroupManager:\nmanaged_instance_group\ninstance_template\nbase_instance_name\ncurrent_size\nnamed_ports\n\nResponse example:\n{'id': 'projects//zones/us-east1-b/instanceGroupManagers',\n'items': [{'baseInstanceName': 'instance-group-1',\n'currentActions': {'abandoning': 0,\n'creating': 0,\n'creatingWithoutRetries': 0,\n'deleting': 0,\n'none': 2,\n'recreating': 0,\n'refreshing': 0,\n'restarting': 0},\n'fingerprint': 'LHEtTP4ocjQ=',\n'id': '3608313155569909512',\n'instanceGroup': 'https://www.googleapis.com/compute/v1/projects//zones/us-east1-b/instanceGroups/instance-group-1',\n'instanceTemplate': 'https://www.googleapis.com/compute/v1/projects//global/instanceTemplates/instance-template-1',\n'kind': 'compute#instanceGroupManager',\n'name': 'instance-group-1',\n'selfLink': 'https://www.googleapis.com/compute/v1/projects//zones/us-east1-b/instanceGroupManagers/instance-group-1',\n'targetSize': 2,\n'zone': 'https://www.googleapis.com/compute/v1/projects//zones/us-east1-b'}],\n'kind': 'compute#instanceGroupManagerList',\n'selfLink': 'https://www.googleapis.com/compute/v1/projects//zones/us-east1-b/instanceGroupManagers'}\n\nChange History:\n\n2022-05-11 - Check if GroupManager attributes are present before using\ntext.split() function.\n2025-09-09 - Add initial values for managed_ids, managed_instances and private_ip_addrs attributes.` + }, + "extractAutoscalerAttrs": { + snippets: ["${1:instance_result}, ${2:group_mapping}"], + description: `Extract attrs for Autoscaler:\nmanaged_instance_group\nautoscaling\nstatus\nminimum_size\nmaximum_size\n\nResponse example:\nresponse: {\n'id': 'projects//zones/us-east1-b/autoscalers',\n'items': [\n{ 'autoscalingPolicy': {\n'coolDownPeriodSec': 60,\n'cpuUtilization': {'utilizationTarget': 0.6},\n'maxNumReplicas': 3,\n'minNumReplicas': 2},\n'id': '813794698767171355',\n'kind': 'compute#autoscaler',\n'name': 'instance-group-1',\n'selfLink': 'https://www.googleapis.com/compute/v1/projects/project_id/zones/us-east1-b/autoscalers/instance-group-1',\n'status': 'ACTIVE',\n'target': 'https://www.googleapis.com/compute/v1/projects/project_id/zones/us-east1-b/instanceGroupManagers/instance-group-1',\n'zone': 'https://www.googleapis.com/compute/v1/projects/project_id/zones/us-east1-b'\n}\n],\n'kind': 'compute#autoscalerList',\n'selfLink': 'https://www.googleapis.com/compute/v1/projects/project_id/zones/us-east1-b/autoscalers'}\n` + }, + "extractInstanceAttrs": { + snippets: ["${1:instance_result}"], + description: `Extract attrs for Instance\n\nResponse Example:\n{'id': 'projects//zones/us-east1-b/instances',\n'items': [\n{'canIpForward': False,\n'cpuPlatform': 'Intel Haswell',\n'deletionProtection': False,\n'disks': [{'autoDelete': True,\n'boot': True,\n'deviceName': 'instance-template-1',\n'guestOsFeatures': [{'type': 'VIRTIO_SCSI_MULTIQUEUE'}],\n'index': 0,\n'interface': 'SCSI',\n'kind': 'compute#attachedDisk',\n'licenses': ['https://www.googleapis.com/compute/v1/projects/debian-cloud/global/licenses/debian-9-stretch'],\n'mode': 'READ_WRITE',\n'source': 'https://www.googleapis.com/compute/v1/projects//zones/us-east1-b/disks/instance-group-1-4vv9',\n'type': 'PERSISTENT'}],\n'id': '7975405463709482757',\n'kind': 'compute#instance',\n'machineType': 'https://www.googleapis.com/compute/v1/projects//zones/us-east1-b/machineTypes/n1-standard-1',\n'metadata': {'fingerprint': 'ff9vbL_iNeA=',\n'items': [{'key': 'instance-template',\n'value': 'projects/492972419906/global/instanceTemplates/instance-template-1'},\n{'key': 'created-by',\n'value': 'projects/492972419906/zones/us-east1-b/instanceGroupManagers/instance-group-1'}],\n'kind': 'compute#metadata'},\n'name': 'instance-group-1-4vv9',\n'networkInterfaces': [{'accessConfigs': [{'kind': 'compute#accessConfig',\n'name': 'External NAT',\n'natIP': '35.XXX.XXX.135',\n'type': 'ONE_TO_ONE_NAT'}],\n'fingerprint': 'm128tv_FDMY=',\n'kind': 'compute#networkInterface',\n'name': 'nic0',\n'network': 'https://www.googleapis.com/compute/v1/projects//global/networks/default',\n'networkIP': '10.X.X.3',\n'subnetwork': 'https://www.googleapis.com/compute/v1/projects//regions/us-east1/subnetworks/default'}],\n'scheduling': {'automaticRestart': True,\n'onHostMaintenance': 'MIGRATE',\n'preemptible': False},\n'selfLink': 'https://www.googleapis.com/compute/v1/projects//zones/us-east1-b/instances/instance-group-1-4vv9',\n'serviceAccounts': [{'email': 'xx@developer.gserviceaccount.com',\n'scopes': ['https://www.googleapis.com/auth/cloud-platform']}],\n'startRestricted': False,\n'status': 'RUNNING',\n'tags': {'fingerprint': '6smc4R4d39I=',\n'items': ['http-server', 'https-server']},\n'zone': 'https://www.googleapis.com/compute/v1/projects//zones/us-east1-b'},\n\nChange History:\n\n2022-05-11 - Check if GroupManager attributes are present before using\ntext.split() function.\n2024-07-16 - added network tags\n2025-09-15 - added new attributes: licenses, threads_per_core, visible_core_count.` + }, + "extractOSInventoryAttrs": { + snippets: ["${1:instance_result}"], + description: `Extract OS inventory attributes from OS Config inventory response` + }, + "mergeAttrs": { + snippets: ["${1:attrs}, ${2:new_attrs}"], + description: `Merge attributes from 'new_attrs' to 'attrs' tables:\n- string attrs are not overwritten\n- append values for list attrs` + }, + "createRelationship": { + snippets: ["${1:vm}, ${2:host}"], + description: `Creates the relationship from the VM to the virtual Host` + } + }, + "GoogleCloudPlatform.ComputeEngine.PersistentDisks": { + }, + "GoogleCloudPlatform.Dataflow": { + }, + "GoogleCloudPlatform.Dataproc": { + }, + "GoogleCloudPlatform.Datastore": { + }, + "GoogleCloudPlatform.Debugger": { + }, + "GoogleCloudPlatform.DeploymentManager": { + }, + "GoogleCloudPlatform.ErrorReporting": { + }, + "GoogleCloudPlatform.Filestore": { + "linkHostToFilestore": { + snippets: ["${1:host}"], + description: `Link REMOTE FileSystems on the Host to Filestore` + } + }, + "GoogleCloudPlatform.FirebaseRealtimeDB": { + }, + "GoogleCloudPlatform.Kubernetes": { + }, + "GoogleCloudPlatform.LB": { + "addNodeAttrs": { + snippets: ["${1:node}, ${2:result}, ${3:attr_map}"], + description: `Extract values from result and assign it related node attributes based on attr_map` + }, + "createLoadBalancerMember": { + snippets: ["${1:service}, ${2:self_link}, ${3:lb_pool}, ${4:lbm_tracker}, ${5:port}"], + description: `Create LoadBalancerMember\n\nChange History:\n2018-10-10 - added rel_path attr for deployment manager linkage (DRDC1-12131)\n2020-06-15 - Added __suppress_default_linkage attribute to avoid linking\nLoad Balancer nodes by IP (DRDC1-15292)\n2022-03-29 - Added cloud_id attribute (DRDC1-18386)\n2024-04-04 - Added port attributes to LB member (DRDC1-22978)` + }, + "mapProxyToURL": { + snippets: ["${1:target_results}, ${2:proxy_to_url_map}, ${3:global}"], + description: `Map Target Http(s) Proxies to URL Map\n\nChange History:\n2024-07-18 - updated logic for global proxies (DRDC1-23203)` + } + }, + "GoogleCloudPlatform.Logging": { + }, + "GoogleCloudPlatform.Monitoring": { + }, + "GoogleCloudPlatform.NetworkConnectivity": { + }, + "GoogleCloudPlatform.ProjectsAndOrganizations": { + "modelGoogleOrganization": { + snippets: ["${1:result}, ${2:tracker}, ${3:provider}, ${4:id}"], + description: `Infers Cloud Management Group nodes to represent each discovered Google Organization\nfound by Google.Organizations.Search or Google.Organizations.Get request.\n\nChange History:\n2023-01-22 - The logic has been updated to work with configurations in which there are\nonly nested projects (DRDC1-20542).` + }, + "getGoogleOrganizationData": { + snippets: ["${1:id}, ${2:da}"], + description: `Returns the Organization data obtained from the Google.Organizations.Get request.` + } + }, + "GoogleCloudPlatform.PubSub": { + }, + "GoogleCloudPlatform.Redis": { + }, + "GoogleCloudPlatform.Spanner": { + }, + "GoogleCloudPlatform.SQL": { + }, + "GoogleCloudPlatform.Storage": { + }, + "GoogleCloudPlatform.SupportingTables": { + }, + "GoogleCloudPlatform.Trace": { + }, + "GoogleCloudPlatform.VPC": { + "modelSubnets": { + snippets: ["${1:da}, ${2:service}, ${3:vpcs}, ${4:tracker}"], + description: `Model gcp subnets as Subnet node for each subnet range\n\nIf gcp subnet contains 2 IPv4s and 1 IPv6 ranges then\n3 Subnet nodes will be created accordingly\nChange History:\n2025-06-17 - Updated name attribute format (DRDC1-29015)\n2026-07-17 - Removed wrong link to CloudService (DRDC1-30205)` + }, + "modelRoutersAndNats": { + snippets: ["${1:da}, ${2:service}, ${3:vpcs}, ${4:tracker}"], + description: `Model GCP Routers and NAT Gateway as NetworkService node` + }, + "modelVPNs": { + snippets: ["${1:da}, ${2:service}, ${3:vpcs}, ${4:tracker}"], + description: `Model Google Cloud VPN Gateway as NetworkService node` + }, + "modelPeerings": { + snippets: ["${1:da}, ${2:peering_results}, ${3:service}, ${4:vpcs}, ${5:tracker}"], + description: `Model Google VPC Network Peering as NetworkService node` + }, + "modelFirewallPolicies": { + snippets: ["${1:da}, ${2:results}, ${3:type}, ${4:service}, ${5:vpcs}, ${6:tracker}"], + description: `Model Google Cloud Firewall policy as Configuration node` + }, + "modelFirewalls": { + snippets: ["${1:da}, ${2:service}, ${3:vpcs}, ${4:tracker}"], + description: `Model Google Cloud Firewall as Configuration node` + } + }, + "GoogleCloudPlatform.Workflows": { + }, + "Grafana.Grafana": { + "getVersion": { + snippets: ["${1:host}, ${2:install_root}"], + description: `Function to obtain version.\nSupports Active, file and package versioning\n\nTakes: host, install_root\nReturns: full_version, product_version` + } + }, + "GridGain.GridGain": { + "productVersioning": { + snippets: ["${1:host}, ${2:install_root}"], + description: `Extracts full version from log file or from jar file name\n\nChange History:\n2019-02-08 - Updated to use DiscoveryFunctions.escapePath() function;\n2019-11-12 - Updated regex expression\n2022-06-03 - Added one more case for path versioning` + } + }, + "Gunicorn.Gunicorn": { + }, + "H2.H2DatabaseServer": { + }, + "HamburgerSoftware.Finanzwesen": { + }, + "HAProxy": { + "parseListenSocket": { + snippets: ["${1:socket}"], + description: `parseListenSocket extracts ip address and port list from socket` + }, + "extractBindArgs": { + snippets: ["${1:block}"], + description: `Extracts binded sockets from block. Returns a list of sockets in : format` + }, + "extractServersArgs": { + snippets: ["${1:server}"], + description: `Extracts servers arguments` + }, + "extractListenArgs": { + snippets: ["${1:block}, ${2:defaults_state}, ${3:defaults_mode}, ${4:defaults_backend}"], + description: `Extracts service arguments` + } + }, + "HardwareReferenceData": { + "destroyHardwareReferenceDataRel": { + snippets: ["${1:node}"], + description: `Destroy any existing HardwareReferenceData relationship with a Host,\nHardwareContainer or HostContainer node.` + } + }, + "Hardware.HPE.Apollo": { + "runDmidecode": { + snippets: ["${1:host}"], + description: `Run dmidecode command and try to identify the Model and Serial\n\nhttps://support.hpe.com/hpesc/public/docDisplay?cc=mx&docId=emr_na-c03086307&lang=es-mx\n\nChange History:\n2023-08-15 - Updated serial number extraction (DRDC1-21657)\n2023-10-16 - Added model extraction (DRDC1-21820)\n2024-02-27 - Updated product_id extraction (DRDC1-22947)\n2026-02-09 - Updated serial number extraction for enclosure (DRDC1-28765)\n2026-04-07 - Fixed regex usage issue (DRDC1-29352)` + } + }, + "Hardware.HP.nPar": { + }, + "Hardware.HP.vPar": { + }, + "Hardware.IBM.AIXSystem_p": { + }, + "Hardware.Sun": { + "removeRel": { + snippets: ["${1:host}"], + description: `Find relationship between Host and unused HostContainer and destroy its link` + } + }, + "HarshiCorp.Consul": { + }, + "HashiCorp.Consul": { + }, + "HashiCorp.Vagrant": { + }, + "Hazelcast": { + }, + "HA_Cluster": { + }, + "HCO_Common": { + "single": { + snippets: ["${1:items}"], + description: `Given a list from a key expression, return the first item or\nnone if the list is empty.` + }, + "buildExternalId": { + snippets: ["${1:entityid}"], + description: `Build optimize external identifier` + }, + "findVM": { + snippets: ["${1:host}, ${2:key}"], + description: `Given a host and a key, find a containing VirtualMachine for that Host.` + } + }, + "HCP_Storage": { + "scan": { + snippets: ["${1:discovery_access}, ${2:device}"], + description: `\nPerform a storage scan on the given storage device\n\nChange History:\n\n2018-03-19 - Add check on used & total capacity as it causes ECA error (DRDC1-10965)\n2019-03-15 - Add a link between the storage system node and the IPAddress and\nnetwork interface nodes (DRDC1-12796)\n2020-07-03 Added scope attribute to StorageSystem node (DRDC1-15299)\n2021-02-11 - Update to Distributed storage model\nand add the IP Address and network interface nodes (DRDC1-14344)\n2023-01-18 - Added attributes Status and Status Detail to storage system (DRDC1-19552)\n2024-04-22 - Added the attribute dns_domain\nto storage system / storage device (DRDC1-23425)\n2024-04-14 - Added hidden attribute __capability_ids for TKU_2024_07_01\n(DRDC1-23319)\n2024-07-16 - Added hidden attribute __resource_unit to network interface\nfor TKU_2025_08_01 (DRDC1-26794)\n2026-04-14 - Updated pattern to display all storage systems instead of one\nfor TKU_2026_07_01 (DRDC1-29399)` + } + }, + "HDI_Storage": { + "executeRequest": { + snippets: ["${1:discovery_access}, ${2:request_url}"], + description: `Execute the RESTFul POST request and return a list containing the response body in\nXML format.` + }, + "updateStoragePool": { + snippets: ["${1:discovery_access}, ${2:storage_system}, ${3:pool_nodes}"], + description: `Update Storage Pool for the given storage system\n\nReturns true if the update succeeds, false otherwise.` + }, + "updateFileSystem": { + snippets: ["${1:discovery_access}, ${2:storage_system_or_cluster}, ${3:file_volume_nodes}"], + description: `Update File Systems for the given storage system or cluster node\n\nReturns true if the update succeeds, false otherwise.` + }, + "updateDiskDrives": { + snippets: ["${1:discovery_access}, ${2:storage_system}, ${3:hardware_output}"], + description: `Update Disk Drives for the given storage_system node\n\nReturns true if the update succeeds, false otherwise.` + }, + "updateEthernetPorts": { + snippets: ["${1:array_node}, ${2:hardware_output}"], + description: `Update Ethernet Ports for the given storage system node` + }, + "updateIPAddress": { + snippets: ["${1:discovery_access}, ${2:device}, ${3:array_node}, ${4:hardware_output}"], + description: `Update IP Adresses for the given storage system node\n\nReturns true if the update succeeds, false otherwise.` + }, + "updateStorageProcessors": { + snippets: ["${1:discovery_access}, ${2:storage_system}"], + description: `Create the storage processor and link it to the appropriate storage system node.` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:device}"], + description: `Perform a storage scan on the given endpoint.\nThe endpoint is the Hitachi HDI storage device\n\nChange History:\n2024-04-22 - Added the attribute dns_domain\nto storage system / storage device (DRDC1-23425)\n\n2024-04-14 - Added hidden attribute __capability_ids (DRDC1-23319)\n\n2025-06-20 - Add NetworkInterfaces to StorageSystem (DRDC1-26784)` + } + }, + "HelpSystems.StandGuardAntiVirus": { + }, + "HibariDB": { + }, + "HitachiHiCommand": { + }, + "HitachiHNAS_storage": { + "updateFCPorts": { + snippets: ["${1:discovery_access}, ${2:parent}, ${3:physical_servers_by_index}, ${4:processor_nodes}"], + description: `'\nCreate FC Ports for each Physical Node\n\nChange History:\n\n2023-01-23 - Added wwpn to FCPort node to avoid broken page error after clicking on show provenance link (DRDC1-20606)\n` + }, + "updateProcessors": { + snippets: ["${1:discovery_access}, ${2:physical_servers_by_index}, ${3:controllers_serial_numbers_by_index}, ${4:processor_nodes}"], + description: `Create only one processor for each Physical Node` + }, + "createFileSystems": { + snippets: ["${1:cifs_or_nfs_path}, ${2:cifs_or_nfs_index}, ${3:cifs_or_nfs_name}, ${4:virtual_volumes_by_path}, ${5:quota_virtual_volumes_by_index}, ${6:file_sys}, ${7:storage_sys}, ${8:export_type}"], + description: `Create the File Systems for the current file systems\n\ncifs_or_nfs_path: Path of the CIFS share or NFS export\ncifs_or_nfs_index: Index of the CIFS share or NFS export\ncifs_or_nfs_name: Name of the CIFS share or NFS export\nvirtual_volumes_by_path: List of virtual volumes (sub file systems) by path\nquota_virtual_volumes_by_index: List of virtual volumes quota by path\nfile_sys: file system\nexport_type: type of export: NFS or CIFS\n\nChange History:\n\n2020-09-18 - Fixed DRDC1-15810 : Add free_percentage, used_percentage attributes to FileSystem node\n` + }, + "updateFileSystems": { + snippets: ["${1:discovery_access}, ${2:parent}, ${3:virtual_servers_by_index}"], + description: `Update the File Systems for the given set of virtual servers\nReturns true if the update succeeds, false otherwise.\n` + }, + "updateIPAddress": { + snippets: ["${1:parent}, ${2:storage_system_node}, ${3:ip_addr}"], + description: `Update IP Address of StorageSystem` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:parent}"], + description: `Perform a storage scan on the given endpoint.\n\nChange History:\n\n2017-12-14 Corrected Eca Error when pNode not found for a vNode\n2019-04-08 Relate the IPAddress and NetworkInterface node to the StorageSystem node for TKU_2019_04_01 (DRDC1-12795)\n2020-07-03 Added scope attribute to StorageSystem node (DRDC1-15299)\n\n2021-08-07 Corrected ECA error when serial number not found for a pNode (DRDC1-17284)\n\n2022-11-01 Corrected the key of the storage system to be unique for all storage devices (DRDC1-20075)\n2023-01-27 Use the new function linkIPAddressToVirtualNetworkInterface() to link\nIP to virtual storage system and network interface for TKU_2023_03_01 (DRDC1-20625)\n\n2023-01-30 Added attributes Status and Status Detail to storage system (DRDC1-19552)\n2023-06-10 Added StorageSystemGroup node\nAdded IP Address To StorageSystem if the standard MIB didn't return IP Addresses\nCorrected creation of StorageSystem (1 StorageDevice <-> 1 StorageSystem)(DRDC1-21407)\n2024-04-22 Updated scan for TKU_2024_06_01 release (DRDC1-23425)\n2024-04-15 - Added hidden attribute __capability_ids for TKU_2024_07_01\n(DRDC1-23319)\n\n2025-04-18 - Network Interfaces not displayed correctly. Issue corrected\n- Added hidden attribute __resource_unit attribute\nfor physical ports (DRDC1-26293)\n\n2026-02-27 - Link virtual storage system to the storage system group\nfor TKU_2026_05_01 (DRDC1-28904)` + } + }, + "Hitachi.DynamicLinkManager": { + }, + "Hitachi_G_Series_Storage": { + "generateNAAID": { + snippets: ["${1:volume_record}"], + description: `Generate the NAA ID for the given logical device\n\nHistory\n2018-09-04 Removed the searchIdentityItem call as it fails to extract\nthe NAA value from the OtherIdentifyingInfo result\nwhen IdentifyingDescriptions are not available.\nNow, we search the NAA value starting with the HDS OUI in the\nOtherIdentifyingInfo result.\nTKU_2018_09_01 (DRDC1-11873).` + }, + "processStorageVolumes": { + snippets: ["${1:array_nodes_by_names}, ${2:volume_records}, ${3:volume_nodes}, ${4:storage_systems_by_volume}, ${5:storage_volume_setting}"], + description: `Create a storage volume for each volume and link to the\nappropriate array. The supplied volume_nodes table is updated with\nthe created nodes, keyed by instance name.\n\nHistory\n2018-01-08 - Added the encryption information in the storage volume node for TKU_2018_01_01 (DRDC1-9383)\n2020-06-15 - Added the attribute device_id in the storage volume node for TKU_2020_07_01 (DRDC1-15347)` + }, + "getLinkRecords": { + snippets: ["${1:discovery_access}"], + description: `Query the link records (CIM_AllocatedFromStoragePool)` + }, + "sortStoragePoolList": { + snippets: ["${1:hosted_pool_part_to_group}"], + description: `Return a list of hosted storage pools listed per disk array and per storage pool path.` + }, + "getArrayGroupInformation": { + snippets: ["${1:discovery_access}"], + description: `Get the array group information, this is use to retrieve the Storage Pool Raid Level` + }, + "getRaidLevel": { + snippets: ["${1:pool_record}, ${2:array_group_lookup}, ${3:array_group_record_lookup}"], + description: `Return the storage pool raid level when available.` + }, + "getFormattedStoragePoolPropeties": { + snippets: ["${1:pool_record}, ${2:array_group_lookup}, ${3:array_group_record_lookup}, ${4:array_node}"], + description: `Return formatted storage pool properties.` + }, + "processStoragePools": { + snippets: ["${1:discovery_access}, ${2:array_nodes}, ${3:pool_records}, ${4:pool_nodes}, ${5:imported_primordial_pool_size_table}"], + description: `Create a storage pool for each pool and link to the\nappropriate array. The supplied pool_nodes table is updated with\nthe created nodes, keyed by instance name.\n\nThe storage pool follow this path: "-> Disk array -> HostedStoragePool -> StoragePool"\n(if importedPrimordialStoragePool -> add total managed capacity to disk array total disk space)\n` + }, + "getSynchronizedVolume": { + snippets: ["${1:synchronized_element}, ${2:volume_nodes}"], + description: `Retrieve a synchronized volume.\nA synchronized volume is a volume that is synchronized to another volume either by mirroring or replication.\nA synchronized volume may be synchronized to a volume in the same system or from a different system.\nIf the volume is discovered during the scan, then just get it from the volumes_nodes table\nElse try to find the related volume in Discovery as the synchronized volumes can be from different systems.\n\nReturn the volume node if successful, none otherwise` + }, + "updateSynchronizedVolumes": { + snippets: ["${1:discovery_access}, ${2:array_nodes_by_names}, ${3:volume_nodes}"], + description: `Link replicated and mirrored volumes to their original volumes.\nDo this by querying the class HITACHI_StorageSynchronized that indicates which volumes is a replica/mirror of which.\n\nreturn true if successful` + }, + "updateFrontEndPorts": { + snippets: ["${1:discovery_access}, ${2:array_nodes}, ${3:volume_nodes}"], + description: `Update the front end ports for the given set of arrays and relate them to volumes\n\nReturns true if the update succeeds, false otherwise.\n\nChange History:\n2020-05-13 Add Ethernet Ports and\nset __resource_unit for NetworkInterface (DRDC1-26484)` + }, + "updateExpansionChassis": { + snippets: ["${1:array_nodes}, ${2:expansion_chassis_records}, ${3:expansion_chassis_to_storage_system}, ${4:hardware_containers_by_serial}, ${5:hardware_containers}"], + description: `Create expansions chassis and relate them to the main chassis.\nUpdate hardware_containers.` + }, + "updateMainChassis": { + snippets: ["${1:array_nodes}, ${2:main_chassis_records}, ${3:main_chassis_to_storage_system}, ${4:hardware_containers}, ${5:hardware_containers_by_serial}"], + description: `Update the main chassis and relate them to the storage system.\nUpdate hardware_containers and hardware_containers_by_serial.\n\nHistory:\n\n2021-03-30 Update the relationship between the StorageSystem and HardwareContainer\nwith Containnment instead of HostContainement for TKU_2021_05_01 (DRDC1-16677)` + }, + "updateHardwareContainers": { + snippets: ["${1:discovery_access}, ${2:array_nodes}, ${3:array_records}, ${4:hardware_containers}"], + description: `Query all needed information to create hardware containers.\n\nReturn False if no association between main chassis (HITACHI_DKCChassis) and storage system are found.` + }, + "updateTotalDiskSpace": { + snippets: ["${1:array_nodes}, ${2:totals}, ${3:imported_primordial_pool_size_table}"], + description: `Update total_disk_space for the given arrays` + }, + "updateDiskDrives": { + snippets: ["${1:discovery_access}, ${2:array_nodes}, ${3:imported_primordial_pool_size_table}, ${4:main_chassis_records}, ${5:hardware_containers}"], + description: `Update the disk drives for the given set of arrays\n\nReturns true if the update succeeds, false otherwise.\n\nHistory :\n\n2017-05-29 Added disk location information on the disk drive node for TKU_2017_06_01 (DRDC1-8395)\n2018-01-08 Added the encryption information on the disk drive node for TKU_2018_01_01 (DRDC1-9383)\n2018-04-18 Update to link the hardware container to the disks for TKU_2018_06_01 (DRDC1\n2021-09-08 Corrected ECA Error when disk Location is not returned by SMIS for TKU_2021_10_01 (DRDC1-8395)\n` + }, + "updateStorageConnections": { + snippets: ["${1:discovery_access}, ${2:array_nodes}, ${3:volume_nodes}, ${4:storage_systems_by_volume}"], + description: `Update the storage connectons for the given set of volumes\n\nReturns true if the update succeeds, false otherwise.` + }, + "updateIPAddress": { + snippets: ["${1:discovery_access}, ${2:array_nodes}, ${3:parent}"], + description: `Update IP Address of StorageSystem` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:parent}"], + description: `Perform a storage scan on the given endpoint. The endpoint is always the storage device.\nNo assumption should be made about which endpoint we have.\n\n2016-10-11 Fixed DRDC1-7204 : Hitachi G-Series optimization : remove WBEM association class HITACHI_StorageSystemDeviceStorageVolume\n2018-01-08 Fixed the storage system that was created for each instance of HITACHI_DKCChassis instead of HITACHI_StorageSystem\n2018-04-18 Add the new function to create the hardware container for TKU_2018_06_01 (DRDC1-11138)\n2019-07-01 Add the new function "updateSynchronizedVolumes" for TKU_2019_08_01 (DRDC1-13366)\n2020-07-03 Added scope attribute to StorageSystem node (DRDC1-15299)\n2020-12-09 Fixed DRDC1-15951 : Attribute Mapped not set for StorageVolume when DiskDrives discovery failed.\n\n2021-04-28 - Added new function updateIPAddress to create and link IP address to storage system for TKU_2021_06_01 release (DRDC1-11365)\n\n2022-05-30 - Added discovery of Hitachi G series via REST API (DRDC1-18629)\n\n2022-12-13 - Updated StorageSystem / StorageDevice Vendor from 'HITACHI' to 'Hitachi' (DRDC1-20352)\n2023-01-18 - Added attributes Status and Status Detail to storage system (DRDC1-19552)\n2024-04-22 - Added the attribute dns_domain\nto storage system / storage device (DRDC1-23425)\n2024-04-15 - Added hidden attribute __capability_ids for TKU_2024_07_01\n(DRDC1-23319)\n2024-12-11 - Updated the call to scan() of the Hitachi_Rest pattern\nwith the credential type in the parameter\nfor TKU_2025_01_01 (DRDC1-24028)` + } + }, + "Hitachi.OpsCenterAdministrator": { + }, + "Hitachi.OpsCenterAPIConfigurationManager": { + }, + "Hitachi_Ops_Center_Administrator": { + "executeRequest": { + snippets: ["${1:discovery_access}, ${2:request_url}, ${3:port}"], + description: `Retrieve all resources from Hitachi Ops Center API with pagination.\n\nHandles the API limit of 100 resources per request using nextToken.\n\nChange History :\n2026-03-23 - Function was returning only first 100 records.\nIssue corrected (DRDC1-28822)\n` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:parent}, ${3:rg_group}"], + description: `Perform a storage scan on the given endpoint\n\nChange history:\n\n2025-10-22 - Get the port that worked for Hitachi ops center REST request\n(DRDC1-27634)\n2025-10-24 - Added logic to extract the scope and port values when\nthe parent is SoftwareInstance (DRDC1-27858)\n2026-06-03 - Added code for coexistence between Hitachi REST\nand Hitachi Ops Center Administrator(DRDC1-29853)\n` + } + }, + "Hitachi_REST": { + "executeVolumeRequest": { + snippets: ["${1:discovery_access}, ${2:volume_url}, ${3:port}, ${4:auth}"], + description: `By default, the Hitachi api returns only the first 100 records if we\ndon't define the 'headLdevId' and 'count' in the api request. We need\nloop over multiple times in order to collect all the defined volumes\nin the storage system until we reach the last volume or the\nmax allowed number 65279.\n\nReturns a list with all the defined volumes or none.` + }, + "volumeIdToHex": { + snippets: ["${1:volume_id}"], + description: `Convert decimal volume id to 3-byte hexadecimal format.\nExample: 205 -> 00:00:CD` + }, + "createIPAddresses": { + snippets: ["${1:storage_system_node}, ${2:ip_addresses}, ${3:parent}"], + description: `Update IP Address of StorageSystem` + }, + "getNickName": { + snippets: ["${1:discovery_access}, ${2:port}, ${3:auth}"], + description: `Perform a GET request to get the attribute 'nickname'\nfor the storage system.` + }, + "getVendor": { + snippets: ["${1:hitachi_model}"], + description: `Return vendor depending on the model` + } + }, + "Hitachi_Storage": { + "generateNAAID": { + snippets: ["${1:array_node}, ${2:volume_record}"], + description: `Generate the NAA ID for the given logical device\n\n2016-09-05 Updated LUN NAA for USP-VM models - The NAA wasn't computed (DRDC1-6810)` + }, + "processStorageVolumes": { + snippets: ["${1:array_nodes_by_names}, ${2:volume_records}, ${3:volume_nodes}, ${4:storage_system_by_volume}"], + description: `Create a storage volume for each volume and link to the\nappropriate array. The supplied volume_nodes table is updated with\nthe created nodes, keyed by instance name.` + }, + "getLinkRecords": { + snippets: ["${1:discovery_access}"], + description: `Query the link records (CIM_AllocatedFromStoragePool)` + }, + "sortStoragePoolList": { + snippets: ["${1:hosted_pool_part_to_group}"], + description: `Return a list of hosted storage pools listed per disk array and per storage pool path.` + }, + "getArrayGroupInformation": { + snippets: ["${1:discovery_access}"], + description: `Get the array group information, this is use to retrieve the Storage Pool Raid Level` + }, + "getRaidLevel": { + snippets: ["${1:pool_record}, ${2:array_group_lookup}, ${3:array_group_record_lookup}"], + description: `Return the storage pool raid level when available.` + }, + "getFormattedStoragePoolPropeties": { + snippets: ["${1:pool_record}, ${2:array_group_lookup}, ${3:array_group_record_lookup}, ${4:array_node}"], + description: `Return formatted storage pool properties.\n\n2016-05-10 - Corrected the setting of pool_type, pool_id, name variables (Case Number 00112684)\n` + }, + "processStoragePools": { + snippets: ["${1:discovery_access}, ${2:array_nodes}, ${3:pool_records}, ${4:pool_nodes}, ${5:importedPrimordialStoragePoolSizeTable}"], + description: `Create a storage pool for each pool and link to the\nappropriate array. The supplied pool_nodes table is updated with\nthe created nodes, keyed by instance name.\n\nChange History:\n\n2015-06-05 - Fix storage pool discovery when multiples chassis are interconnected. (SAFRAN : ISS04476336 / Escalation: 075361)\nNow the storage pool follow this path: "-> Disk array -> HostedStoragePool -> StoragePool\n(if importedPrimoderialStoragePool -> add total managed capacity to disk array total disk space)\n` + }, + "updateFrontEndPorts": { + snippets: ["${1:discovery_access}, ${2:array_nodes}, ${3:volume_nodes}"], + description: `Update the front end ports for the given set of arrays and relate them to volumes\n\nReturns true if the update succeeds, false otherwise.` + }, + "updateExpansionChassis": { + snippets: ["${1:array_nodes}, ${2:hardware_containers}, ${3:expansion_chassis_records}, ${4:expansion_chassis_to_storage_system}, ${5:hardware_containers_by_serial}"], + description: `Create expansions chassis and relate them to main chassis. Update hardware_containers.` + }, + "updateMainChassis": { + snippets: ["${1:array_nodes}, ${2:hardware_containers}, ${3:hardware_containers_by_serial}, ${4:main_chassis_records}, ${5:main_chassis_to_storage_system}"], + description: `Create main chassis and relate them to storage systems. Update hardware_containers and hardware_containers_by_serial.` + }, + "updateHardwareContainers": { + snippets: ["${1:discovery_access}, ${2:array_nodes}, ${3:array_records}, ${4:hardware_containers}"], + description: `Update hardware containers (DKC and DKU Chassis) for hitachi storage system\n\nReturn False if no relation between DKC Chassis and storage systems are found.\nReturn True if the update succeeds` + }, + "updateTotalDiskSpace": { + snippets: ["${1:array_nodes}, ${2:totals}, ${3:importedPrimordialStoragePoolSizeTable}"], + description: `Update total_disk_space for the given arrays` + }, + "updateDiskDrives": { + snippets: ["${1:discovery_access}, ${2:array_nodes}, ${3:importedPrimordialStoragePoolSizeTable}, ${4:main_chassis_records}, ${5:hardware_containers}"], + description: `Update the disk drives for the given set of arrays\n\nReturns true if the update succeeds, false otherwise.\n\nChange History:\n\n2015-03-20 - added current state of disk drives, and updated taxonomy (TKU-3522)\n2017-05-15 - Added the disk location information on the disk drive node (chassis and enclosure serial number) for TKU_2017_06_01 (DRDC1-8394)\n\n2018-04-11 - Update to add the relation between disk drive and hardware container for TKU_2018_05_01` + }, + "updateStorageConnections": { + snippets: ["${1:discovery_access}, ${2:array_nodes}, ${3:volume_nodes}, ${4:storage_system_by_volume}"], + description: `Update the storage connectons for the given set of volumes\n\nReturns true if the update succeeds, false otherwise.` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:parent}, ${3:scope_value}"], + description: `Perform a storage scan on the given endpoint. The endpoint may be\na host with a management SI or the device endpoint itself. No\nassumption should be made about which endpoint we have.\n\n2016-09-05 - Updated StorageSystem Type for USP-VM models - Type was Unknown (DRDC1-6774)\n2016-10-11 - Fixed DRDC1-7026 : Identify patterns which need to be optimized: Removed one useless wbem request\n2018-04-11 - Fixed : Storage system is created from HITACHI_StorageSystem class instead of HITACHI_DKCChassis for TKU_2018_05_01\n\n2018-04-11 - Add a new function : updateHardwareContainers to discover the hardware containers for TKU_2018_05_01 (DRDC1-8877)\n\n2020-07-03 Added scope attribute to StorageSystem node (DRDC1-15299)\n\n2022-12-13 - Updated StorageSystem Vendor from 'HITACHI' to 'Hitachi' (DRDC1-20352)\n2023-01-18 - Added attributes Status and Status Detail to storage system (DRDC1-19552)\n2024-04-22 - Added the attribute dns_domain\nto storage system / storage device (DRDC1-23425)\n2024-04-15 - Added hidden attribute __capability_ids for TKU_2024_07_01\n(DRDC1-23319)\n` + } + }, + "HortonworksDataPlatform": { + }, + "Host.ProductModel": { + }, + "host_scan": { + }, + "HPCommandViewXPAE": { + }, + "HPESuperdomeFlexRMC": { + }, + "HPE_ALLETRA_MP_REST": { + "updateConsumedCapacity": { + snippets: ["${1:discovery_access}, ${2:volume_nodes}"], + description: `Update consumed_capacity for the given set of\nStorageVolume` + }, + "updateCapacity": { + snippets: ["${1:discovery_access}, ${2:storage_sys_node}"], + description: `Update the capacity of given StorageSystem` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:parent}, ${3:rg_group}"], + description: `Perform a scan on the given endpoint` + } + }, + "HPE_GreenLake_File_REST": { + "executeRequest": { + snippets: ["${1:discovery_access}, ${2:request_url}"], + description: `Execute a REST api call using hpe_greenlake_file_auth` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:parent}, ${3:rg_group}"], + description: `Perform a storage scan on the given endpoint\n\nChange History:\n\n2026-07-20 Update model / vendor in VAST Data StorageSystem\nfor TKU_2026_09_01\n` + } + }, + "HPE.OneView": { + "getDecoded": { + snippets: ["${1:host}, ${2:path}"], + description: `Queries the given rest api url then extracts the json 'results' from the response body and\nfinally returns a normalized response and the next page request URL (if it exist).\n` + }, + "getDecodedAllPages": { + snippets: ["${1:host}, ${2:next_page}, ${3:member_nodes}"], + description: `Pagination support.\nCalls getDecoded() function until next page url is not empty\nand returns full member nodes list.\n\nLimitation:\nMaximum number of iterations - 100\nBy default HPE OneView returns 32 entries per /rest/server-hardware request\nand 5 entries per /rest/interconnects request\n` + } + }, + "HPE.SSMC": { + }, + "HPE_StoreOnce_Storage": { + "updateIPAddress": { + snippets: ["${1:discovery_access}, ${2:storage_system_node}, ${3:parent}"], + description: `Update IP Address of StorageSystem\n` + }, + "updateTapeDrives": { + snippets: ["${1:discovery_access}, ${2:libraries}, ${3:storage_system_nodes}"], + description: `Update Tape Drives for StorageSystem` + }, + "updateFileSystem": { + snippets: ["${1:discovery_access}, ${2:storage_system_node}, ${3:service_id}, ${4:headers}"], + description: `Update File System for StorageSystem\n\nReturns true if the update succeeds, false otherwise.\n\nChange History:\n\n2023-04-24 Add support to HPE StoreOnce v4 (DRDC1-21184)` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:parent}, ${3:headers}"], + description: `Perform a storage scan on the given storage device\n\nReturns cluster results.\n\nChange History:\n\n2023-01-18 Add attributes Status and Status Detail to storage system (DRDC1-19552)\n2023-04-24 Add support to HPE StoreOnce v4 (DRDC1-21184)\n2023-08-17 Updated scan function to return cluster results (DRDC1-21434)\n2024-04-03 Added Attribute dns_domain to storage system / storage device (DRDC1-23151)\n2024-04-14 Added hidden attributes __capability_ids for TKU_2024_07_01\n(DRDC1-23319)\n2026-04-07 Updated the function to populate __all_dns_names\nfor TKU_2026_06_01 (DRDC1-29286)` + } + }, + "HPE_SynergyBladeSystem": { + }, + "HPiLO": { + }, + "HP_3PAR_Storage": { + "processStorageVolumes": { + snippets: ["${1:array_nodes_by_names}, ${2:volume_records}, ${3:volume_nodes}, ${4:storage_systems_by_volume}, ${5:volume_config_lookup}"], + description: `Create a storage volume for each volume and link to the\nappropriate array. The supplied volume_nodes table is updated with\nthe created nodes, keyed by instance name.\n\nHistory\n\n2017-12-05 - Added Encryption information storage volumes for TKU_2018_01_01 (DRDC1-9384)` + }, + "updateStorageConnections": { + snippets: ["${1:discovery_access}, ${2:array_nodes_by_names}, ${3:volume_nodes}, ${4:storage_systems_by_volume}"], + description: `Update the storage connectons for the given set of volumes\n\nReturns true if the update succeeds, false otherwise.` + }, + "getLinkRecords": { + snippets: ["${1:discovery_access}"], + description: `Query the link records (CIM_AllocatedFromStoragePool)` + }, + "updatePoolsAndVolumes": { + snippets: ["${1:discovery_access}, ${2:array_nodes}, ${3:pool_nodes}, ${4:volume_nodes}, ${5:array_nodes_by_names}, ${6:storage_systems_by_volume}"], + description: `Update the pools and volumes for the given set of arrays\n\nReturns true if the update succeeds, false otherwise.\n\nChange History:\n2014-02-13 - Replace SMI-S class CIM_StoragePool by TPD_DynamicStoragePool to eliminate\nprimordial pools Jira case TKU-2433\n2017-12-28 - Search the encryption information for TKU_2018_01_01 (DRDC1-9384)\n2020-10-16 - Passing the table storage_systems_by_volume keyed by volume path in the\nfunction linkPoolsAndVolumes (DRDC1-15952)\n` + }, + "updateFrontEndPorts": { + snippets: ["${1:discovery_access}, ${2:array_nodes}, ${3:components}, ${4:volume_nodes}"], + description: `Update the front end ports for the given set of arrays and relate them to volumes\n\nReturns true if the update succeeds, false otherwise.` + }, + "updateHardwareContainers": { + snippets: ["${1:discovery_access}, ${2:array_nodes}, ${3:computer_system_to_storage_system}, ${4:hardware_containers}"], + description: `Create hardware containers (main chassis and expansions chassis) for HP3PAR storage systems.\nLink them to their related storage system or related main chassis for the expansions chassis.\nUpdate the hardware_containers table.\n\nreturn true if the update is successful.\n` + }, + "updateArrayCapacity": { + snippets: ["${1:array_nodes}, ${2:totals}, ${3:free_totals}"], + description: `Update total_capacity, available_capacity and total_consumed_capacity\nfor the given arrays\n\nChange History:\n\n2023-11-14 - Replaced allocated_capacity by total_consumed_capacity\nin storage system (DRDC1-22223)\n2025-11-03 - Remove allocated_capacity as it is now depracated for\nTKU_2025_04_01` + }, + "updateDiskDrives": { + snippets: ["${1:discovery_access}, ${2:hardware_containers}, ${3:array_nodes}"], + description: `Update the disk drives for the given set of arrays\n\nReturns true if the update succeeds, false otherwise.\n\nChange History:\n2015-02-13 - Modify taxo and TPL to show current state of disk drives Jira case TKU-2440\n2015-04-01 - function buildDiskDriveState moved to Common_Storage for TKU_2015_04_01 release\n2017-03-21 - Modify updateDiskDrives to add the disk location for TKU_2017_04_01 release\n2017-12-28 - Add the encryption information to the disk drive node for TKU_2018_01_01 (DRDC1-9384)\n2018-09-14 - Adding Storage system related capacity metrics (DRDC1-11965)\n2018-10-18 - Link the disk drives to their hardware containers and get the appropriate\ndisk position value for each disk for TKU_2018_10_01 (DRDC1-12129)\nThe enclosure serial number attribute is no longer displayed.\nThe chassis_serial attribute display now the serial number of the\nhardware container where the disk is in. Also corrected the position of the disk for TKU_2018_10_01<\n2022-08-11 - Link DiskDrive Node to HardwareContainer Node instead of StorageSystem(DRDC1-19616)\n2026-07-03 - Updated escape sequence (DRDC1-29309)` + }, + "updateNetworkInterface": { + snippets: ["${1:discovery_access}, ${2:array_nodes}, ${3:components}, ${4:ni_nodes}"], + description: `Create and link the network interface nodes to the storage systems\n\nChange History:\n2025-04-17 - INTERNAL: Update storage pattern by passing the\nresource_unit value for TKU_2025_05_01 (DRDC1-26299)\n` + }, + "updateIPAddress": { + snippets: ["${1:discovery_access}, ${2:parent}, ${3:array_nodes}, ${4:components}, ${5:ni_nodes}"], + description: `Create IP Address for the storage system` + }, + "updateModelFormat": { + snippets: ["${1:array_model}"], + description: `Update model format if it's HPE Primera` + }, + "updateTypeFormat": { + snippets: ["${1:array_model}"], + description: `Update type depending on model` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:parent}"], + description: `Perform a storage scan on the given endpoint. The endpoint may be\na host with a management SI or the device endpoint itself. No\nassumption should be made about which endpoint we have.\n\nChange History\n2016-10-11 Fixed DRDC1-7480 : HP 3PAR optimization : remove WBEM association class TPD_SystemVolume\n2018-10-18 Add a new function to update the hardware containers for TKU_2018_10_01 (DRDC1-12129)\n2020-07-03 Added scope attribute to StorageSystem node (DRDC1-15299)\n2021-05-03 Added two new functions to update the IP Addresses and Network interfaces (DRDC1-16544)\n\n2023-01-18 Added attributes Status and Status Detail to storage system (DRDC1-19552)\n\n2023-02-13 Added Attribute dns_domain to storage system / storage device (DRDC1-18497)\n\n2023-05-13 Updated Attribute type in storage system (DRDC1-18497)\n\n2023-02-13 Added Attribute dns_domain to storage system / storage device (DRDC1-18497)\n2024-04-15 - Added hidden attribute __capability_ids for TKU_2024_07_01\n(DRDC1-23319)\n2026-05-20 - Correct StorageSystem / StorageDevice vendor\nfor TKU_2026_07_01 (DRDC1-29715)` + } + }, + "HP_AP": { + }, + "HP.ApplicationSecurityCenter.DevInspect": { + }, + "HP.ApplicationSecurityCenter.QAInspect": { + }, + "HP.ApplicationSecurityCenter.WebInspect": { + }, + "HP_BladeSystem": { + }, + "HP.BusinessAvailabilityCenter": { + }, + "HP.BusinessProcessMonitor": { + }, + "HP.ClientAutomation": { + }, + "HP.CommandViewEVA": { + }, + "HP.Connect_It": { + }, + "HP.Containers": { + }, + "HP_D3700": { + "linkDrivesToLocalDrive": { + snippets: ["${1:host}, ${2:output_result}, ${3:physical_drive_nodes}, ${4:das_group}"], + description: `Link disk drives and logical drive ` + }, + "scan": { + snippets: ["${1:host}, ${2:das_group}"], + description: `Perform a storage scan on the given host.\n\nChange History:\n2023-11-29 - Replace stop by return for TKU_2024_01_01 (DRDC1-22356)\n2023-01-23 - Updated regex to get enclosures to add support to\nHP D3xxx Products (DRDC1-22728)\n2024-04-14 - Added hidden attribute __capability_ids for TKU_2024_07_01\n(DRDC1-23319)\n2026-04-09 - Updated escape sequence (DRDC1-29309)` + } + }, + "HP.DataProtector": { + "active_versioning": { + snippets: ["${1:host}, ${2:command}"], + description: `Keine Beschreibung verfügbar.` + }, + "package_versioning": { + snippets: ["${1:packages}"], + description: `Performs package versioning given packages\n\nChange History:\n2023-02-23 - Ensure it works correctly on version 10 of the product (DRDC1-20798)` + } + }, + "HP.Diagnostics": { + }, + "HP.DiscoveryDependencyMapping": { + }, + "HP.EssentialServicesMonitor": { + }, + "HP.IntegrityVirtualMachines": { + }, + "HP.LoadRunner": { + }, + "HP.MercurySiteScope": { + "versioning_function": { + snippets: ["${1:process}"], + description: `'The common versioning block for shared by HP SiteScope patterns'\n\nChange History:\n2014-05-01 - Updated registry and package versioning\n2015-07-16 - Updated product_version regex to cover all version formats` + } + }, + "HP.MercuryTestDirector": { + }, + "HP_Moonshot": { + }, + "HP_MSA_storage": { + }, + "HP.NetworkAutomation": { + }, + "HP.OpenViewOperations": { + }, + "HP.OpenViewPerformanceAgent": { + }, + "HP.OpenViewPerformanceManager": { + }, + "HP.OpenViewSAM": { + }, + "HP.OpenView.AssetCenter": { + }, + "HP.OpenView.PerformanceInsight": { + }, + "HP.OpenView.ServiceCenter": { + "activeVersioning": { + snippets: ["${1:host}, ${2:process_cmd}"], + description: `Discovers full version, build and base_path\nWe obtain the base_path from the trigger process,\nthen run scenter -version from the base path\nFor active versioning to work the path to the trigger process must be\nfully qualified.\nOn UNIX sudo must be enabled as the command will not\nwork unless run as root\n\nChange History:\n2019-02-13 - Updated to use Future.runCommand() function;\n2023-01-17 - Updated (?i) flag placement in regular expression (DRDC1-20566)` + }, + "pathVersioning": { + snippets: ["${1:host}, ${2:process_cmd}"], + description: `Keine Beschreibung verfügbar.` + }, + "packageVersioning": { + snippets: ["${1:host}"], + description: `Discovers full version\nWindows only. We try to match the specific package\n'ServiceCenter Server'. If that fails we will take the version from any\npackage that contains the word 'ServiceCenter'.\nIf several packages match we take the highest version` + } + }, + "HP.OpenVMS.Cluster": { + }, + "HP_P2000_Storage": { + "processStorageVolumes": { + snippets: ["${1:array_nodes_by_names}, ${2:volume_records}, ${3:volume_nodes}, ${4:storage_systems_by_volume}"], + description: `Create a storage volume for each volume and link to the\nappropriate array. The supplied volume_nodes table is updated with\nthe created nodes, keyed by instance name.` + }, + "getPoolLinkRecords": { + snippets: ["${1:discovery_access}"], + description: `Query the pool link records (HP_PP2CP)` + }, + "getVolumeLinkRecords": { + snippets: ["${1:discovery_access}"], + description: `Query the volume link records (HP_V2CP)` + }, + "updatePoolsAndVolumes": { + snippets: ["${1:discovery_access}, ${2:array_nodes}, ${3:array_nodes_by_names}, ${4:pool_nodes}, ${5:volume_nodes}, ${6:storage_systems_by_volume}"], + description: `Update the pools and volumes for the given set of arrays.\n\nReturns true if the update succeeds, false otherwise.\n\nThe given volume_nodes table is populated with the volumes nodes\ncreated/updated but is only valid if the result is true.` + }, + "processFrontEndPorts": { + snippets: ["${1:discovery_access}, ${2:array_nodes}, ${3:volume_nodes}"], + description: `Update the front end ports for the given set of arrays and relate them to volumes\n\nReturns true if the update succeeds, false otherwise.` + }, + "updateFrontEndPorts": { + snippets: ["${1:discovery_access}, ${2:array_nodes}, ${3:volume_nodes}"], + description: `Update the front end ports for the given set of arrays and relate them to volumes\n\nReturns true if the update succeeds, false otherwise.` + }, + "updateDiskDrives": { + snippets: ["${1:discovery_access}, ${2:array_nodes}, ${3:chassis_index}"], + description: `Update the disk drives for the given set of arrays\n\nReturns true if the update succeeds, false otherwise.\n\nChange History:\n2015-03-20 - added current state of disk drives, and updated taxonomy (TKU-3524)\n2017-05-04 - added the disk location information on the disk drive node for TKU_2017_05_01 (DRDC1-8389)\n2018-01-12 - Add encryption information on the disk drive node for TKU_2018_01_01 (DRDC1-10542)\n` + }, + "updateStorageConnections": { + snippets: ["${1:discovery_access}, ${2:array_nodes_by_names}, ${3:volume_nodes}, ${4:storage_systems_by_volume}"], + description: `Update the storage connections for the given set of arrays\n\nReturns true if the update succeeds, false otherwise.` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:parent}"], + description: `Perform a storage scan on the given endpoint. The endpoint may be\na host with a management SI or the device endpoint itself. No\nassumption should be made about which endpoint we have.\n\n2016-10-11 Fixed DRDC1-7026 : Identify patterns which need to be optimized: Removed one useless wbem request\n2019-12-10 Fixed the name of the storage system to not include the prefix "HP" for TKU_2020_01_01 (DRDC1-14357)\n2020-04-14 StorageControllers not discovered in case there is no HC port (DRDC1-12642)\n2020-07-03 Added scope attribute to StorageSystem node (DRDC1-15299)\n2024-03-25 Added Attribute dns_domain to storage system / storage device (DRDC1-23151)\n2024-04-14 Added hidden attribute __capability_ids for TKU_2024_07_01\n(DRDC1-23319)\n` + } + }, + "HP_P4000_Storage": { + }, + "HP_P6000_Storage": { + "getVolumeLinkRecords": { + snippets: ["${1:discovery_access}"], + description: `Query the link records (HPEVA_VolumeAllocatedFromStoragePool)` + }, + "getPoolLinkRecords": { + snippets: ["${1:discovery_access}"], + description: `Query the link records (HPEVA_StoragePoolAllocatedFromStoragePool)` + }, + "updatePoolsAndVolumes": { + snippets: ["${1:discovery_access}, ${2:array_nodes}, ${3:array_nodes_by_names}, ${4:pool_nodes}, ${5:volume_nodes}, ${6:storage_systems_by_volume}"], + description: `Update the pools and volumes for the given set of arrays.\n\nReturns true if the update succeeds, false otherwise.\n\nThe given volume_nodes table is populated with the volumes nodes\ncreated/updated but is only valid if the result is true.` + }, + "processFrontEndPorts": { + snippets: ["${1:discovery_access}, ${2:array_nodes}, ${3:volume_nodes}"], + description: `Update the front end ports for the given set of arrays and relate them to volumes\n\nReturns true if the update succeeds, false otherwise.` + }, + "updateFrontEndPorts": { + snippets: ["${1:discovery_access}, ${2:array_nodes}, ${3:volume_nodes}"], + description: `Update the front end ports for the given set of arrays and relate them to volumes\n\nReturns true if the update succeeds, false otherwise.` + }, + "updateDiskDrives": { + snippets: ["${1:discovery_access}, ${2:array_nodes}, ${3:chassis_index}"], + description: `Update the disk drives for the given set of arrays\n\nReturns true if the update succeeds, false otherwise.\n\nChange History:\n2015-03-20 - added current state of disk drives, and updated taxonomy (TKU-3535)\n` + }, + "updateStorageConnections": { + snippets: ["${1:discovery_access}, ${2:array_nodes_by_names}, ${3:volume_nodes}, ${4:storage_systems_by_volume}"], + description: `Update the storage connections for the given set of arrays\n\nReturns true if the update succeeds, false otherwise.` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:parent}"], + description: `Perform a storage scan on the given endpoint. The endpoint may be\na host with a management SI or the device endpoint itself. No\nassumption should be made about which endpoint we have.\n\nChange History:\n2016-10-11 Fixed DRDC1-7483 : HP P6000 optimization : remove WBEM association class HPEVA_StorageVolumeSystemDevice\n2020-07-03 Added scope attribute to StorageSystem node (DRDC1-15299)\n\n2024-03-25 Added Attribute dns_domain to storage system / storage device (DRDC1-23151)\n2024-04-14 Added hidden attribute __capability_ids for TKU_2024_07_01\n(DRDC1-23319)\n` + } + }, + "HP_P9000_Storage": { + }, + "HP.ProjectPluginMSProject": { + }, + "HP.QualityCenter": { + }, + "HP.QuickTestProfessional": { + }, + "HP.ServerAutomation": { + }, + "HP.ServiceGuard": { + }, + "HP.ServiceGuardQuorumServer": { + }, + "HP_StorageWorks_StoreVirtual": { + }, + "HP.SystemsInsightManager": { + "package_versioning": { + snippets: ["${1:host}, ${2:packages}"], + description: `package_versioning performs package versioning\nChange History:\n2013-05-12 - Updates done for case if several candidates versions are available(QM001802340)\n2017-04-25 - Updated to use DiscoveryFunctions (DRDC1-8633)` + } + }, + "HP_TapeLibrary": { + }, + "HP.Vertica": { + }, + "HP.VMM": { + }, + "HP.WinRunner": { + }, + "HSQLDevelopmentGroup.HyperSQL": { + "getDBAttrs": { + snippets: ["${1:host}, ${2:db_path}"], + description: `Keine Beschreibung verfügbar.` + }, + "createDBDetail": { + snippets: ["${1:db_name}, ${2:db_path}, ${3:full_version}, ${4:si_node_key}"], + description: `Generates standard attributes for the Database Detail, then creates the Database Detail node\n\nChange History:\n2014-08-13 - Added logical_database_type attribute to DatabaseDetail (TKU-2297)\n2014-08-19 - Added short_name to SI (TKU-2353)\n2017-06-05 - Update for new Database kind` + }, + "createDBnodes": { + snippets: ["${1:process}, ${2:si_node_key}"], + description: `Finds path to the database configuration nodes from the trigger process\narguments\n\nCreates Database nodes based on the information in these files and links\nthem to the SI\n\nTakes : process, si_node_key\nReturns : db_nodes - A list of Database nodes we created\nversion - The maximum version of the Database nodes\n\nChange History:\n2025-10-28 - Search DB path in the filesystem (DRDC1-27744)` + } + }, + "Huawei_AP": { + }, + "Huawei_BladeSystem": { + }, + "Huawei_iBMC": { + }, + "Huawei_OceanStor_Storage": { + "updateFileSystemCapacity": { + snippets: ["${1:file_system}, ${2:local_file_systems_lookup}, ${3:shared_elements_lookup}"], + description: `Compute the following attributes:\nsize, used, free, used_percentage and free_percentage` + }, + "queryLocalFileSystems": { + snippets: ["${1:discovery_access}"], + description: `Query HuaSy_LocalFileSystem and CIM_SharedElement association so we can relate the CIM_FileShare to the\nHuaSy_LocalFileSystem to compute file systems size.\nNone is not returned.` + }, + "linkFileSystemToVolume": { + snippets: ["${1:volume_nodes}, ${2:file_system}, ${3:resides_on_extent}, ${4:shared_elements_lookup}"], + description: `Links the FileSystem to the Storage Volume\nRelationship: Consumer:StorageUse:Provider\nUses path: CIM_FileShare -> -> -> HuaSy_LogicalDisk` + }, + "updateFileSystems": { + snippets: ["${1:discovery_access}, ${2:array_nodes}, ${3:volume_nodes}"], + description: `Update File Systems for the given array nodes\nKnown filesystem types : CIFS and NFS` + }, + "updateLogicalPortsIPAddresses": { + snippets: ["${1:discovery_access}, ${2:array_nodes}"], + description: `Update Logical Ports IP addresses for the given array nodes\n` + }, + "updatePortsIPAddresses": { + snippets: ["${1:discovery_access}, ${2:array_nodes}, ${3:components}"], + description: `Update Ethernet Ports IP addresses for the given array nodes\n` + }, + "updateStorageConnections": { + snippets: ["${1:discovery_access}, ${2:array_nodes}, ${3:volume_nodes}, ${4:system_devices}"], + description: `Update the storage connections for the given set of volumes\n\nReturns true if the update succeeds, false otherwise.` + }, + "updateTotalDiskSpace": { + snippets: ["${1:array_nodes}, ${2:totals}"], + description: `Update total_disk_space for the given arrays` + }, + "computeDiskSize": { + snippets: ["${1:drive_record_path}, ${2:media_presents}, ${3:disk_extents_lookup}"], + description: `Compute disk size in bytes for the given drive_record_path` + }, + "queryDiskExtent": { + snippets: ["${1:discovery_access}"], + description: `Query HuaSy_DiskExtent and HuaSy_MediaPresent association so we can relate the HuaSy_DiskDrive to the\nHuaSy_DiskExtent to compute disk sizes.\nNone is not returned.` + }, + "updateDiskDrives": { + snippets: ["${1:discovery_access}, ${2:array_nodes}, ${3:system_devices}, ${4:components}, ${5:storage_enclosures_lookup}"], + description: `Update the disk drives for the given set of arrays\n\nReturns true if the update succeeds, false otherwise.\n\nHistory :\n2017-04-01 Added the disk location for the disk drive node for TKU_2017_04_01 (DRDC1-8397)\n2017-09-04 Added Encryption information for the disk drive node for TKU_2017_09_01 (DRDC1-9755)` + }, + "updateFrontEndPorts": { + snippets: ["${1:discovery_access}, ${2:array_nodes}, ${3:volume_nodes}, ${4:system_devices}, ${5:components}"], + description: `Update the front end ports for the given set of arrays and relate them to volumes\n\nReturns true if the update succeeds, false otherwise.` + }, + "getLinkRecords": { + snippets: ["${1:discovery_access}"], + description: `Query the link records (CIM_AllocatedFromStoragePool)` + }, + "getNAAID": { + snippets: ["${1:volume_record}"], + description: `Generate the NAA ID for the given logical device` + }, + "processStoragePools": { + snippets: ["${1:discovery_access}, ${2:array_nodes}, ${3:pool_records}, ${4:pool_nodes}"], + description: `Create a storage pool for each pool and link to the\nappropriate array. The supplied pool_nodes table is updated with\nthe created nodes, keyed by instance name.\n\nThe storage pool follow this path: "-> Disk array -> HostedStoragePool -> StoragePool"\n\nChange History:\n2020-11-13 - Fixed DRDC1-14631 : Updated consumed capacity of the Storage Pool` + }, + "updatePools": { + snippets: ["${1:discovery_access}, ${2:array_nodes}, ${3:pool_nodes}"], + description: `Update the pools for the given set of arrays.\n\nReturns true if the update succeeds, false otherwise.` + }, + "updateSANVolumes": { + snippets: ["${1:discovery_access}, ${2:array_nodes}, ${3:volume_nodes}, ${4:system_devices}, ${5:storage_systems_by_volume}"], + description: `Update volumes for the given set of arrays.\n\nReturns true if the update succeeds, false otherwise.\n\nThe given volume_nodes table is populated with the volumes nodes\ncreated/updated but is only valid if the result is true.` + }, + "updateNASVolumes": { + snippets: ["${1:discovery_access}, ${2:array_nodes}, ${3:volume_nodes}, ${4:system_devices}, ${5:storage_systems_by_volume}"], + description: `Update NAS volumes for the given set of arrays.\n\nReturns true if the update succeeds, false otherwise.\n\nThe given volume_nodes table is populated with the volumes nodes\ncreated/updated but is only valid if the result is true.` + }, + "getInstalledSoftwareIdentityVersion": { + snippets: ["${1:ss_path}, ${2:installed_sw_table}, ${3:sw_identity_table}"], + description: `Get Software version for the passed storage system path` + }, + "getProductInformation": { + snippets: ["${1:discovery_access}, ${2:array_record_path}, ${3:product_components_lookup}, ${4:product_records_lookup}"], + description: `Get the Array Product ElementName from the Product array information associated record.` + }, + "getStorageSystemWWNN": { + snippets: ["${1:discovery_access}, ${2:array_record_path}, ${3:storage_containers_lookup}, ${4:storage_enclosure_lookup}"], + description: `Get the Storage System wwnn from an Enclosure chassis information` + }, + "querySoftwareIdentity": { + snippets: ["${1:discovery_access}"], + description: `Query installed software identity firmware information and build two lookups\nSystem -> InstalledSoftware (InstanceID) and InstanceID -> VersionString\nNone is not returned.` + }, + "queryArrayProduct": { + snippets: ["${1:discovery_access}"], + description: `Query HuaSy_ArrayProduct and HuaSy_ProductPhysicalComponent association so we can relate the HuaSy_ArrayChassis to the\nHuaSy_ArrayProduct to retrieve the product name and type.\nNone is not returned.` + }, + "queryEnclosureChassis": { + snippets: ["${1:discovery_access}"], + description: `Query HuaSy_EnclosureChassis and HuaSy_Container association so we can relate the HuaSy_ArrayChassis to the\nHuaSy_EnclosureChassis to retrieve WWNN.\nNone is not returned.` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:parent}, ${3:scope_value}"], + description: `Perform a storage scan on the given endpoint.\nThe endpoint is the storage device or the Software Instance when the SMI-S provider is external.\nNo assumption should be made about which endpoint we have.\n\nChange History:\n2020-02-06 - Fixed DRDC1-14631 : Updated the Storage System Name\n2020-07-03 - Added scope attribute to StorageSystem node (DRDC1-15299)\n2022-11-18 - Added discovery of Huawei OceanStor via REST API (DRDC1-18281)\n\n2023-01-18 - Added attributes Status and Status Detail to storage system (DRDC1-19552)\n\n2024-04-22 - Added the attribute dns_domain\nto storage system / storage device (DRDC1-23425)\n2024-04-15 - Added hidden attribute __capability_ids for TKU_2024_07_01\n(DRDC1-23319)` + } + }, + "Huawei_OceanStor_Storage_REST": { + "scan": { + snippets: ["${1:discovery_access}, ${2:parent}, ${3:BASE_URL}, ${4:port}"], + description: `Perform a storage scan on the given endpoint\n\nChange History:\n\n2023-06-23 Added vStores (Virtual Storage System) (DRDC1-14669)\n\n2024-04-22 Added the attribute dns_domain\nto storage system / storage device (DRDC1-23425)\n2024-04-15 Added hidden attributes __capability_ids for TKU_2024_07_01\n(DRDC1-23319)\n2026-06-15 Wrong EOL date when storage system / device model are not\nreported in specific format. Corrected (DRDC1-29925)` + } + }, + "Huawei_VS": { + }, + "Hume.DMH": { + }, + "Hypertable.Hypertable": { + "parse_roles": { + snippets: ["${1:hosts_str}"], + description: `Function to parse string containing list of host in Hypertable-specific format\ne.g. hostDB1, hostDB2 or hostDB1 hostDB2 or hostDB[1 - 2] or 192.168.0.[1 - 10] etc.\nReturns normalized host list, which can be used in search queries.` + } + }, + "HyperV.CSV": { + }, + "IBMTivoliMonitoringCommonFunctions": { + "AgentCode_InstallRoot": { + snippets: ["${1:process}, ${2:host}, ${3:si_type}"], + description: `The function extracts agent_code and installation root from the trigger proccess\n\nIt can extract attributes for the IBM Tivoli Monitoring and IBM Tivoli CAM components\nwhich trigger process has format either 'kagent' or 'kcma'` + }, + "getInstance": { + snippets: ["${1:process}, ${2:si_type}"], + description: `The function extracts instance name from either trigger arguments\nor with help of active command or using configuration file\n\nChange History:\n2019-03-05 - Updated to use Future.runCommand function` + }, + "Active_versioning": { + snippets: ["${1:process}, ${2:host}, ${3:si_type}, ${4:agent_code}, ${5:install_root}"], + description: `The function extracts full_version using active versioning method\n\n'agent_code' and 'install_root' attributes should be sent by those components\nwhich trigger proccess format is different from 'kagent' or 'kcma'\n\nChange History:\n2017-09-28 - Updated versioning command to prevent timouts (DRDC1-9834)\n2019-03-05 - Updated to use runFutureActiveCommand function\n2019-07-19 - Updated version extraction regex (DRDC1-12553)` + }, + "Package_versioning": { + snippets: ["${1:host}, ${2:si_type}, ${3:package_name_regexes}"], + description: `The function extracts full_version using active versioning method\n'package_name_regexes' parameter in function's attributes is a list of package regexes,\nfor example: [regex '(?i)^ITCAM for Transactions - Response Time Agents',\nregex '(?i)^IBM Tivoli Monitoring']\n\nChange History:\n2015-05-21 - Updated full_version extraction(TKU-4065)\n2015-07-08 - Ensure we remove superfluous dot from the end of full_version (TKU-4168)` + }, + "packageVersioning": { + snippets: ["${1:host}, ${2:si_type}, ${3:package_name_regexes}"], + description: `The function extracts full_version from discovered Package Node.\nInput arguments:\nhost - Host Node from which the function was called,\nsi_type - type of the SoftwareInstance which initiated package versioning\npackage_name_regexes - list of package regexes,\nfor example: [regex '(?i)^ITCAM for Transactions - Response Time Agents',\nregex '(?i)^IBM Tivoli Monitoring']\n\nOutput arguments:\nfull_version - string with product full version` + }, + "Attribute_assignment": { + snippets: ["${1:host}, ${2:full_version}, ${3:si_type}, ${4:short_si_type}"], + description: `This function extracts product_version from full_version and sets name.\n\nChange History:\n2014-09-01 - Added short_name attribute to SI (TKU-2353)\n2019-02-28 - Updated product_version attribute to upto 3 levels (DRDC1-12636)` + }, + "UnixTivoliMonitoringServerParameters": { + snippets: ["${1:process}, ${2:host}, ${3:si_node}"], + description: `The function extracts host and port values of the related\nIBM Tivoli Enterprise Monitoring Server instance\n\nChange History:\n2014-03-18 - Updated configuration file path extraction method;\n2019-03-05 - Updated to use escapePath function` + }, + "WinTivoliMonitoringServerParameters": { + snippets: ["${1:process}, ${2:host}, ${3:si_node}"], + description: `The function extracts host and port values of the related\nIBM Tivoli Enterprise Monitoring Server instance\n\nChange History:\n2019-03-05 - Updated to use escapePath function` + }, + "LinkToTivoliMonitoringServer": { + snippets: ["${1:host}, ${2:mon_host}, ${3:mon_port}, ${4:si_node}"], + description: `The function links\nIBM Tivoli Enterprise Monitoring Server instance\nto the SI using its host and port\nChange History:\n2014-09-12 - Updated related sis search method(TKU-2358);\n2014-12-15 - Updated link creation from Peer-To-Peer to Client/Server(TKU-2360);\n2015-04-01 - Updated mon_port attribute usage(TKU-3786)\n2016-05-30 - Updated the function according to the CommonFunctions module changes` + }, + "linkToTivoliMonitoringServer": { + snippets: ["${1:host}, ${2:mon_host}, ${3:mon_port}, ${4:si_node}"], + description: `The function creates Communication Client-Server link\nbetween the SI which runs the function and the related\n'IBM Tivoli Enterprise Monitoring Server' SI Node.\nInput arguments:\nhost - Host Node from which the function was called,\nmon_host - Host where 'IBM Tivoli Enterprise Monitoring Server' SI is located\nmon_port - Monitoring Server's port\nsi_type - type of the SoftwareInstance which initiated package versioning,\n\nOutput arguments:\nfull_version - string with product full version` + } + }, + "IBM.AS400": { + }, + "IBM_BladeCenter": { + }, + "IBM.BusinessProcessManager": { + }, + "IBM.ChangeDataCapture": { + }, + "IBM.CICS": { + "install_path": { + snippets: ["${1:process}"], + description: `Current function returns installation root of the IBM CICS Transaction Gateway\n\nChange History:\n2023-01-17 - Updated (?i) flag placement in regular expression (DRDC1-20566)` + }, + "versioning": { + snippets: ["${1:host}, ${2:install_root}"], + description: `Current function deploys active and package versioning and returns the version\n\nChange History:\n2019-02-14 - Updated to use Future.runCommand() function` + }, + "set_attributes": { + snippets: ["${1:host}, ${2:si_type}, ${3:short_type}, ${4:full_version}"], + description: `Current function returns product version and name of the product\n\nChange History:\n2014-09-24 - We now return short_name attribute` + }, + "license_extraction": { + snippets: ["${1:host}, ${2:install_root}"], + description: `Current function returns licensing and versioning information, obtained from active command\n\nChange History:\n2019-02-14 - Updated to use DiscoveryFunctions.escapePath() function` + } + }, + "IBM.CICS_UniversalClient": { + "install_path": { + snippets: ["${1:process}"], + description: `Current function returns installation root of the product\n\nChange History:\n2023-01-13 - Updated (?i) flag placement in regular expression (DRDC1-20566)` + }, + "versioning": { + snippets: ["${1:host}, ${2:install_root}"], + description: `Current function deploys active and package versioning and returns the version\n\nChange History:\n2014-09-24 - Add short_name attribute\n2019-02-14 - Updated to use Future.runCommand() function` + }, + "set_attributes": { + snippets: ["${1:host}, ${2:si_type}, ${3:short_type}, ${4:full_version}"], + description: `Keine Beschreibung verfügbar.` + } + }, + "IBM.Cleversafe": { + }, + "IBM.Cloud.BlockStorage": { + "model_storage": { + snippets: ["${1:result_list}, ${2:CODE}, ${3:REMOVAL_TRACKER_NAME}"], + description: `Model Block Storage` + } + }, + "IBM.Cloud.CommonFunctions": { + "getAccountId": { + snippets: ["${1:da}, ${2:result}, ${3:crn:=''}"], + description: `Returns account id` + }, + "getProvider": { + snippets: [""], + description: `Returns the IBM CloudProvider node\nChange History:\n2022-05-03 Avoid updating inference relationships on CloudProvider\nnodes (DRDC1-18279)` + }, + "_getRegionKey": { + snippets: ["${1:region_code}, ${2:account_id}"], + description: `Return the region key for the given region code and account ID` + }, + "getRegion": { + snippets: ["${1:da}, ${2:provider}, ${3:account_id}, ${4:global}"], + description: `Returns the CloudRegion node for the given DDD node\n\nChange History:\n2020-10-22 Added global flag to model Global region (DRDC1-15994)\n2022-04-08 Added cloud_account_id attribute (DRDC1-18386)\n2022-05-03 Avoid updating inference relationships on CloudRegion\nnodes (DRDC1-18279)` + }, + "_getServiceKey": { + snippets: ["${1:region_code}, ${2:account_id}, ${3:code}"], + description: `Return the service key for the given region code, account ID and service code` + }, + "getService": { + snippets: ["${1:da}, ${2:region}, ${3:code}, ${4:associate}"], + description: `Returns the IBM CloudService node\n\nChange History:\n2022-04-08 Added cloud_account_id attribute (DRDC1-18386)\n2022-05-03 Avoid updating inference relationships on CloudService\nnodes (DRDC1-18279)\n2023-01-10 Added confirmation of found CloudService node to make\ncontinuous CMDB sync triggering (DRDC1-20544)` + }, + "vpcLink": { + snippets: ["${1:da}, ${2:region}, ${3:node}"], + description: `Links the given node to its related VPCs\n\nReturns the relationships created, which may be empty\n\nChange History:\n2021-08-23 - removed iaas-g1 service because this service has been deprected by IBM` + }, + "createRemovalTracker": { + snippets: ["${1:da}, ${2:account_id}, ${3:name}, ${4:kind}, ${5:is_rel}, ${6:global}"], + description: `Create a removal tracker for the given kind and DA\n\n2020-11-19 Added global flag to have correct removal tracker tag(DRDC1-15994)` + }, + "updateFailureTimeForService": { + snippets: ["${1:result}, ${2:service_code}"], + description: `Updates the last_update_failure time on the reqested CloudService\nnode, if it can be found` + }, + "addTags": { + snippets: ["${1:da}, ${2:node:=none}, ${3:crn:=''}"], + description: `Add Tags for specified node` + }, + "splitCrn": { + snippets: ["${1:crn}"], + description: `Extract service type and region for given CRN` + } + }, + "IBM.Cloud.COS": { + }, + "IBM.Cloud.Databases": { + }, + "IBM.Cloud.Kubernetes": { + "modelVPCMembers": { + snippets: ["${1:da}, ${2:kubernetes_id}"], + description: `Model members as Host for VPC Kubernetes` + }, + "modelClassicMembers": { + snippets: ["${1:da}, ${2:kubernetes_id}"], + description: `Model members as Host for Classic Kubernetes` + }, + "model_kubernetes": { + snippets: ["${1:result_list}, ${2:CODE}, ${3:REMOVAL_TRACKER_NAME}, ${4:is_vpc:=false}"], + description: `Model Kubernetes Clusters\n\nChange History:\n2022-02-01 - model Kubernetes nodes information as Hosts,\nadded nodes tag info and flavor attr (DRDC1-17697)\n2022-12-02 - added expected SoftwareService link between Cluster and CloudService\n2024-05-29 - run Kubernetes API deep discovery (DRUD1-43562)\nskip clusters from different regions (DRUD1-43562)\n2024-07-01 - Updated type attribute (DRDC1-23403)\n- Added subtype and __discovered_by attributes (DRDC1-23403)\n2024-12-12 - handle duplicated nodes for cloud and API scans\n- added __member_ids attr which contains member related unique\nidentifiers, like member_ids, group_ids, group_base which\ncan be used for duplicated clusters identification (DRDC1-25219)\n2025-01-13 - Added __resource_unit attribute (DRDC1-24921)\n2025-06-16 - Updated __resource_unit attribute (DRDC1-26727)\n2025-10-28 - Changed cluster name attribute format. (DRDC1-26993)\n2026-03-25 - Do not run scan on consolidator. Added check (DRDC1-29083)\n2026-05-18 - Added an ApplyRBAC request to trigger IAM-to-Kubernetes RBAC synchronization\nbefore running cluster API discovery. (DRDC1-28925)\n2026-06-24 - Model Network services (CNI, ClusterIP)` + } + }, + "IBM.Cloud.LB": { + "model_lb_members": { + snippets: ["${1:da}, ${2:CODE}, ${3:service}, ${4:id}, ${5:lb_pool}, ${6:lbm_tracker}"], + description: `Model LB Members` + }, + "model_lb_pools": { + snippets: ["${1:da}, ${2:CODE}, ${3:service}, ${4:lb_services}, ${5:lbp_tracker}, ${6:lbm_tracker}"], + description: `Model LB Pools` + }, + "model_lb": { + snippets: ["${1:result_list}, ${2:CODE}, ${3:REMOVAL_TRACKER_NAME}"], + description: `Model LoadBalancerService, LoadBalancerPool, LoadBalancerMember\n\nChange History:\n\n2020-06-09 Added mandatory attribute ip_addr on LoadBalancerService (DRDC1-15278)\n2021-08-04 Added check whether lb_services is not empty\n2024-11-15 Added __resource_unit attribute (DRDC1-24921)` + } + }, + "IBM.Cloud.SupportingTables": { + }, + "IBM.Cloud.VM": { + "linkHostToVM": { + snippets: ["${1:vm}, ${2:host}"], + description: `Creates the relationship from the VM to the virtual Host\nChange History:\n2023-12-12 - Added __cdm_override_token_id attribute to Host (DRDC1-21925)\n2024-01-17 - Added cloud_instance attribute to host (DRDC1-22690)` + }, + "model_vm": { + snippets: ["${1:result_list}, ${2:CODE}, ${3:REMOVAL_TRACKER_NAME}"], + description: `model VirtualMachine "IBM Cloud Virtual Server" for each item in results\n\nChange History:\n2022-05-27 - added cloud_class attr (TKU_2022_08_01)\n2022-10-01 - added log debug message (DRDC1-19977)\n2024-11-15 - Added __resource_unit attribute (DRDC1-24921)\n2025-12-17 - Added profile_generation attribute (DRDC1-27735)` + } + }, + "IBM.Cloud.VMware": { + }, + "IBM.Cloud.VPC": { + "model_subnets": { + snippets: ["${1:da}, ${2:service}, ${3:subnet_results}, ${4:vpcs}, ${5:tracker}"], + description: `model VPC Subnet nodes\nChange History:\n2025-06-17 - Updated name attribute format (DRDC1-29015)\n2026-07-17 - Removed wrong link to CloudService (DRDC1-30205)` + }, + "model_vpc": { + snippets: ["${1:result_list}, ${2:CODE}, ${3:REMOVAL_TRACKER_NAME}"], + description: `model VPC nodes as AdminCollections` + } + }, + "IBM.CognosBIMetricsServer": { + }, + "IBM.CognosBusinessIntelligence": { + }, + "IBM.CognosBusinessIntelligenceStatistics": { + }, + "IBM.CognosBusinessViewpoint": { + }, + "IBM.CognosController": { + }, + "IBM.CognosDataManager": { + }, + "IBM.CognosExpress": { + "path_file_versioning": { + snippets: ["${1:host}, ${2:install_root}"], + description: `Searches for IBM_Cognos_Express.*swtag file tries to obtain version from file name or file content and returns variable full_version\n\nChange History:\n2019-02-07 - Updated to use DiscoveryFunctions.escapePath() function;` + }, + "wmi_versioning": { + snippets: ["${1:host}, ${2:service_cmdline}"], + description: `Keine Beschreibung verfügbar.` + }, + "get_product_version": { + snippets: ["${1:full_version}"], + description: `Obtains product version from full version` + } + }, + "IBM.CognosFinance": { + }, + "IBM.CognosImpromptu": { + }, + "IBM.CognosImpromptuWebReports": { + }, + "IBM.CognosMobile": { + }, + "IBM.CognosNoticeCast": { + }, + "IBM.CognosPlanning": { + "file_versioning": { + snippets: ["${1:host}, ${2:cognos_install_root}"], + description: `Keine Beschreibung verfügbar.` + } + }, + "IBM.CognosReportNet": { + }, + "IBM.CognosTM1": { + "getProductVersion": { + snippets: ["${1:full_version}"], + description: `Get product_version, service_pack and build from the full_version\n\nservice_pack is reported slightly differenly in legacy and modern versions.\nFor legacy versions 9.5.2 means product_version 9.5 service_pack 2\nFor modern versions 10.2.20100 means product_version 10.2.2 service pack 1\n\nBackground at https://www-01.ibm.com/support/docview.wss?uid=swg21964134` + } + }, + "IBM.CognosTM1ExecutiveViewer": { + }, + "IBM.CognosUpfront": { + }, + "IBM.Cognos.Common_Code": { + "findCognosRootCandidate": { + snippets: ["${1:process}"], + description: `Keine Beschreibung verfügbar.` + }, + "getCognosComponentVersion": { + snippets: ["${1:host}, ${2:file_uninstall_ini}, ${3:cmp_id}"], + description: `The function searches for component by its id:"cmp_id" in the file /cmplst.txt. If not found then it is considered that component is not installed.\n\nChange History:\n2019-02-05 - escaped path for discovery.runCommand\n2019-05-10 - remove cmd /c from runCommand` + }, + "getContentManagers": { + snippets: ["${1:host}, ${2:cogstartupFilePath}, ${3:cogstartupFile_content}"], + description: `Keine Beschreibung verfügbar.` + }, + "path_file_versioning": { + snippets: ["${1:host}, ${2:install_root}, ${3:file_name_regex}"], + description: `Searches for Cognos_.*_Server.*swtag file tries to obtain version and returns variables full_version and product_version\nChange history:\n2014-03-04 - added variable for filename.\n2019-02-05 - escaped path for discovery.runCommand` + }, + "getCognosComponent": { + snippets: ["${1:host}, ${2:file_uninstall_ini}, ${3:cmp_id}"], + description: `Keine Beschreibung verfügbar.` + } + }, + "IBM.Cognos.Now": { + }, + "IBM.Cognos.PowerPlay": { + }, + "IBM.CommonStore": { + }, + "IBM.ContentAnalytics": { + }, + "IBM.ContentCollector": { + }, + "IBM.ContentIntegrator": { + }, + "IBM.DatabaseEncryptionExpert": { + }, + "IBM_Data_Studio": { + }, + "IBM.DB2Connect": { + }, + "IBM.DB2RecoveryExpert": { + }, + "IBM.DB2TableEditor": { + }, + "IBM.DB2.Alphablox": { + }, + "IBM.DB2.ContentManager": { + "activeVersioning": { + snippets: ["${1:host}, ${2:install_root}, ${3:expected_content_regex}, ${4:output_regex}"], + description: `Performs active versioning` + }, + "packageVersioning": { + snippets: ["${1:host}"], + description: `Performs package versioning` + } + }, + "IBM.DB2.ContentManagerOnDemand": { + }, + "IBM.DB2.HPU": { + }, + "IBM.DB2.PerformanceExpert": { + "package_versioning": { + snippets: ["${1:host}, ${2:package_regexes}, ${3:path_version}"], + description: `Keine Beschreibung verfügbar.` + } + }, + "IBM.DB2.QueryPatroller": { + }, + "IBM.DB2.RDBMS": { + "parse_license": { + snippets: ["${1:content}"], + description: `Parses contents of license command output and returns it as a list of lists\n\nChange History\n2023-12-11 - max_amount_of_memory and max_number_of_cores added\n- allowed_cpus and licensed_cpus converted to ints` + }, + "create_lic_det": { + snippets: ["${1:si}, ${2:license_data}"], + description: `Keine Beschreibung verfügbar.` + }, + "package_data_win": { + snippets: ["${1:packages}, ${2:copy_name}"], + description: `Returns package version and edition (if available)\nVersion returned will be matched to copy_name if available, otherwise\nhighest version returned.\n\nChange History:\n2016-05-31 - Updated according to the CommonFunctions changes(DRDC1-6073)` + }, + "set_prod_ver_rev_sp": { + snippets: ["${1:full_version}"], + description: `Set product_version, revision, sp\n\nChange History:\n2015-06-08 - Added regex for full version extraction\nfor case when full version like "95" instead of "9.5" (TKU-4199)` + }, + "create_feature_det": { + snippets: ["${1:si}, ${2:content}"], + description: `Creates Detail nodes for each licensed feature and links them to the SI node\n\nChange History:\n2014-09-04 - Correct regex to obtain expiry date (TKU-2349)\n2015-02-03 - Added short_name to make links more obvious` + }, + "obtain_DB2_nodes": { + snippets: ["${1:host}, ${2:install_dir}, ${3:instance_name}"], + description: `Obtain information about current instance's nodes\nand return lists of remote and local DB2 nodes\n\nChange History:\n2019-02-05 - replace discovery.runCommand with Future.runCommand\n2026-04-08 - Fixed regex usage issue (DRDC1-29352)\n2026-08-03 - Replaced Future.runCommand with DiscoveryFunctions.runFutureActiveCommand (DRDC1-28339)` + } + }, + "IBM.DB2.RDBMS_Extended": { + }, + "IBM.DB2.RDBMS_MF_Extended": { + }, + "IBM.DeviceRuntimeEnvironment": { + }, + "IBM.Director": { + }, + "IBM.DocumentManager": { + }, + "IBM_DS68_Storage": { + "processStorageVolumes": { + snippets: ["${1:array_nodes_by_names}, ${2:volume_records}, ${3:volume_nodes}, ${4:storage_systems_by_volume}"], + description: `Create a storage volume for each volume and link to the\nappropriate array. The supplied volume_nodes table is updated with\nthe created nodes, keyed by instance name.` + }, + "getLinkRecords": { + snippets: ["${1:discovery_access}"], + description: `Query the link records (CIM_AllocatedFromStoragePool)` + }, + "updatePoolsAndVolumes": { + snippets: ["${1:discovery_access}, ${2:array_nodes}, ${3:array_nodes_by_names}, ${4:pool_nodes}, ${5:volume_nodes}, ${6:storage_systems_by_volume}"], + description: `Update the pools and volumes for the given set of arrays.\n\nReturns true if the update succeeds, false otherwise.\n\nThe given volume_nodes table is populated with the volumes nodes\ncreated/updated but is only valid if the result is true.\n\nChange History:\n\n2020-10-16 Passing the table storage_systems_by_volume keyed by volume path in the\nfunction linkPoolsAndVolumes (DRDC1-15952)\n` + }, + "updateDiskDrives": { + snippets: ["${1:discovery_access}, ${2:array_nodes}"], + description: `Update the disk drives for the given set of arrays\n\nReturns true if the update succeeds, false otherwise.\n\nChange History:\n2015-03-20 - added current state of disk drives, and updated taxonomy (TKU-3526)\n2017-01-12 - added locations on disk drives (DRDC1-7618)\n2017-01-31 - remove of location and added the enclosure serial number, position number and disk number for each disk (DRDC1-7618)\n2017-09-27 - Extract the disk drive enclosure serial number for DS8000 systems` + }, + "updateFrontEndPorts": { + snippets: ["${1:discovery_access}, ${2:array_nodes}, ${3:volume_nodes}"], + description: `Update the front end ports for the given set of arrays and relate them to volumes\n\nReturns true if the update succeeds, false otherwise.` + }, + "updateStorageConnections": { + snippets: ["${1:discovery_access}, ${2:array_nodes}, ${3:volume_nodes}, ${4:storage_systems_by_volume}"], + description: `Update the storage connectons for the given set of volumes\n\nReturns true if the update succeeds, false otherwise.` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:parent}, ${3:scope_value}"], + description: `Perform a storage scan on the given endpoint. The endpoint may be\na host with a management SI or the device endpoint itself. No\nassumption should be made about which endpoint we have.\n\n2016-10-11 Fixed DRDC1-7478 : DS6000/8000 optimization : remove WBEM association class IBMTSDS_StorageSystemToSEVolume\n\n2018-03-06 Fixed DRDC1-10918: If the IBMTSDS_StorageFacilityChassis.Tag value doesn't correspond to\nthe IBMTSDS_Volume.SystemName value, the StoargeVolumes can never be linked to the StorageSystem.\nThe StorageSystem nodes are now indexed by IBMTSDS_StorageSystem.Name instead of\nIBMTSDS_StorageFacilityChassis.Tag in the array_nodes_by_names lookup to ensure\nthe linkage between the StorageVolumes and the StorageSystems.\n2020-07-03 Added scope attribute to StorageSystem node (DRDC1-15299)\n2023-01-18 Added attributes Status and Status Detail to storage system (DRDC1-19552)\n\n2024-04-22 Added the attribute dns_domain\nto storage system / storage device (DRDC1-23425)\n2024-04-14 - Added hidden attribute __capability_ids for TKU_2024_07_01\n(DRDC1-23319)` + } + }, + "IBM_DS8K_Storage_REST": { + "updateIPAddress": { + snippets: ["${1:discovery_access}, ${2:storage_system_node}, ${3:parent}"], + description: `Update IP Address of StorageSystem` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:parent}"], + description: `Perform a storage scan on the given storage device\n\n2023-01-18 Added attributes Status and Status Detail\nto storage system (DRDC1-19552)\n\n2023-07-07 ECA Error occured in BMC Helix when storage system\nname is empty, issue fixed by replacing name\nby serial (DRDC1-21576)\n\n2023-12-06 Variable serial was not initialized.\nIssue corrected (DRDC1-22233)\n\n2024-04-22 Added the attribute dns_domain\nto storage system / storage device (DRDC1-23425)\n2024-04-15 Added hidden attribute __capability_ids for TKU_2024_07_01\n(DRDC1-23319)\n` + } + }, + "IBM.DSSystemStorage": { + }, + "IBM.EndpointManager": { + "registry_versioning": { + snippets: ["${1:host}, ${2:version_key_path}"], + description: `Keine Beschreibung verfügbar.` + }, + "get_prod_version_and_name": { + snippets: ["${1:host}, ${2:component}, ${3:short_type}, ${4:full_version}, ${5:publisher}, ${6:product}"], + description: `The function sets product version, name, short_name, patch, si_type,\npublisher, product attributes` + } + }, + "IBM.EnterpriseContentManagementSystemMonitor": { + }, + "IBM.FileNetBusinessProcessManager": { + }, + "IBM.FileNetCaptureProfessional": { + }, + "IBM.FileNetContentFederationServicesforImageServices": { + }, + "IBM.FileNetContentManager": { + }, + "IBM.FileNetContentServices": { + }, + "IBM.FileNetDashboard": { + }, + "IBM.FileNeteForms": { + }, + "IBM.FileNetHPIIMRII": { + }, + "IBM.FileNetIDMDesktop": { + }, + "IBM.FileNetImageServices": { + }, + "IBM.FileNetImageServicesRemoteAdminConsole": { + }, + "IBM.FileNetISRA": { + }, + "IBM.FileNetPrint": { + }, + "IBM.FileNetProcessAnalyzer": { + }, + "IBM.FileNetRemoteCaptureServices": { + }, + "IBM.FileNetRenditionEngine": { + }, + "IBM.FileNetSystemMonitor": { + }, + "IBM.FileNetWebServices": { + }, + "IBM.FileNet.Fax": { + }, + "IBM.FinancialAnalyticsPublisher": { + }, + "IBM.FluidQuery": { + }, + "IBM.GeneralParallelFileSystem": { + }, + "IBM.HACMP": { + "getFileSystems": { + snippets: ["${1:host}, ${2:resource_group}"], + description: `get file systems for resource group\n\nChange history:\n2019-02-28 - Update to use new path escape function` + }, + "getPhysicalVolumes": { + snippets: ["${1:host}, ${2:resource_group}"], + description: `get physical volume identifiers for resource group\n\nChange history:\n2019-02-28 - Update to use new path escape function` + }, + "getLogicalVolumes": { + snippets: ["${1:host}, ${2:resource_group}"], + description: `get logical volumes for resource group\n\nChange history:\n2019-02-28 - Update to use new path escape function` + }, + "getVGLogicalVolumes": { + snippets: ["${1:host}, ${2:volume_group}"], + description: `get logical volumes for volume group\n\nChange history:\n2019-02-28 - Update to use new path escape function\n2026-04-08 - Fixed regex usage issue (DRDC1-29352)` + }, + "getResourceIPsDNSs": { + snippets: ["${1:cluster_node}, ${2:host}, ${3:clshowres_cmd}, ${4:cltopinfo_cmd}"], + description: `obtain Service IP Label and resolve it to dns name` + } + }, + "IBM.HMC": { + }, + "IBM.HMCLinkage": { + "linkHosts": { + snippets: ["${1:si}, ${2:detail}, ${3:hc}"], + description: `Link IBM POWER HMC Management Software SI to Hosts in the HostContainer\nusing Details\n\nChange History:\n2025-11-28 - Removed obsolete managment SIs from Host` + } + }, + "IBM.ILOGCPLEXOptimizationStudio": { + }, + "IBM.ILogElixir": { + }, + "IBM.ILOGJViewsEnterprise": { + }, + "IBM.ILOGODMEnterprise": { + "package_version": { + snippets: ["${1:host}, ${2:package_name_list}"], + description: `Keine Beschreibung verfügbar.` + }, + "file_version": { + snippets: ["${1:host}, ${2:install_root}"], + description: `Returns version obtained from file\n\nChange History:\n2019-02-15 - Updated to use escapePath() function.\n2019-05-14 - Remove cmd /c from runCommand (DRDC1-12533)` + } + }, + "IBM.ILOGODMEnterpriseOptimization": { + }, + "IBM_IMM": { + }, + "IBM.IMS_Extended": { + }, + "IBM.InformationCenter": { + }, + "IBM.Informix4GLCompiler": { + }, + "IBM.Informix4GLInteractiveDebugger": { + }, + "IBM.Informix4GLRapidDevelopmentSystem": { + }, + "IBM.InformixDataDirectorForWeb": { + "pattern_body": { + snippets: ["${1:process}, ${2:executable}, ${3:si_type}, ${4:short_si_type}"], + description: `Local function to process AppPage Editor and Site Manager pattern modules and build the SIs\n\nChange History:\n2014-09-11 - Added short_name attribute to SI (TKU-2353)\n2015-06-08 - Updated package_version regex to avoid such versions as 2.00 (TKU-3937)\n2019-02-13 - Updated to use Discovery.escapePath() function.` + } + }, + "IBM.InformixDynamicServer": { + "getEdition": { + snippets: ["${1:edition_code}"], + description: `Converts edition_code to textual equivalent via lookup table.` + } + }, + "IBM.InformixGatewayDRDA": { + }, + "IBM.InformixI_Spy": { + }, + "IBM.InformixSQL": { + }, + "IBM.InformixSQLRuntime": { + }, + "IBM.Informix_Extended": { + }, + "IBM.InfoSphereBigInsights": { + }, + "IBM.InfoSphereBigMatchforHadoop": { + "versioningFunc": { + snippets: ["${1:host}"], + description: `Function for version extraction.\nImplements path and package versioning.` + } + }, + "IBM.InfoSphereBusinessGlossary": { + }, + "IBM.InfoSphereDataEventPublisher": { + }, + "IBM.InfoSphereDiscovery": { + }, + "IBM.InfoSphereEnterpriseRecords": { + }, + "IBM.InfoSphereFederationServer": { + }, + "IBM.InfoSphereGuardiumDataRedaction": { + }, + "IBM.InfoSphereGuardiumSTAP": { + }, + "IBM.InfoSphereInformationAnalyzer": { + }, + "IBM.InfoSphereInformationServer": { + }, + "IBM.InfoSphereMetadataWorkbench": { + }, + "IBM.InfoSphereQualityStage": { + }, + "IBM.InfoSphereQualityStageAddressVerificationInterface": { + }, + "IBM.InfoSphereReplicationServer": { + }, + "IBM.InfoSphereStreams": { + }, + "IBM.InfoSphere.MasterDataManagement": { + }, + "IBM.InfoSphere.Warehouse": { + }, + "IBM.InstallationManager": { + }, + "IBM.LicenseMetricTool": { + }, + "IBM.LightweightInfrastructureServer": { + }, + "IBM.Lotus123": { + }, + "IBM.LotusDominoDocumentManager": { + }, + "IBM.LotusFormsServer": { + }, + "IBM.LotusFormsServicesPlatform": { + }, + "IBM.LotusNotes": { + }, + "IBM.LotusOrganizer": { + }, + "IBM.Lotus.Connections": { + }, + "IBM.Lotus.DominoDesigner": { + }, + "IBM.Lotus.Expeditor": { + }, + "IBM.Lotus.FormsDesigner": { + }, + "IBM.Lotus.Quickr": { + }, + "IBM.Lotus.QuickrWebSphere": { + }, + "IBM.Lotus.Sametime": { + }, + "IBM.MaxConnect": { + }, + "IBM.MaximoAssetManagement": { + }, + "IBM.MobilePortalAccelerator": { + }, + "IBM.Netezza": { + }, + "IBM.NetezzaAnalytics": { + }, + "IBM_Netezza_NzAdmin": { + }, + "IBM.NetQuestion": { + }, + "IBM.NetworkInstallationManager": { + }, + "IBM.OmniFindDiscoveryEdition": { + }, + "IBM.OmniFindEnterpriseEdition": { + }, + "IBM.OperationalDecisionManager": { + "getParentApplicationServer": { + snippets: ["${1:si_type}, ${2:software_component}"], + description: `Searches for the parent Application Server SoftwareInstance or SoftwareCluster Node and returns it.\n\nChange History\n2019-02-19 - Now additionally searches for parent SoftwareCluster node (DRDC1-12622)\n` + }, + "getSIAttributes": { + snippets: ["${1:host}, ${2:si_type}, ${3:short_type}, ${4:software_component}"], + description: `Keine Beschreibung verfügbar.` + } + }, + "IBM.OptimOpenDataManager": { + }, + "IBM.OptimPerformanceManager": { + }, + "IBM.OptimServer": { + }, + "IBM.PersonalCommunications": { + }, + "IBM.PureEdge.WebForm.Server": { + }, + "IBM.QRadar": { + }, + "IBM.RationalAppScanSourceEdition": { + }, + "IBM.RationalAssetAnalyzer": { + }, + "IBM.RationalAssetManager": { + }, + "IBM.RationalBuildForge": { + }, + "IBM.RationalBusinessDeveloper": { + }, + "IBM.RationalHostOnDemand": { + }, + "IBM.RationalMethodComposer": { + }, + "IBM.RationalPerformanceTester": { + }, + "IBM.RationalRequisitePro": { + }, + "IBM.RationalRobot": { + }, + "IBM.RationalRose": { + }, + "IBM.RationalRoseDeveloperUnix": { + }, + "IBM.Rational.AppScanEnterpriseEdition": { + }, + "IBM.Rational.ClearCase": { + }, + "IBM.Rational.ClearQuest": { + }, + "IBM.Rational.FunctionalTester": { + }, + "IBM.Rational.JazzServer": { + }, + "IBM.Rational.RequirementsComposer": { + }, + "IBM.Rational.SoftwareAnalyzer": { + }, + "IBM.Rational.TeamConcert": { + }, + "IBM.RecordsManager": { + }, + "IBM.RedBrickWarehouse": { + }, + "IBM.RMC": { + }, + "IBM.RoboticProcessAutomation": { + }, + "IBM_RSA": { + }, + "IBM.SpectrumControl": { + }, + "IBM.SpectrumLoadSharingFacility": { + }, + "IBM.SpectrumSymphony": { + }, + "IBM_Spectrum_Control_REST": { + "executeRequest": { + snippets: ["${1:discovery_access}, ${2:request_url}"], + description: `Execute a REST api call using ibm_spectrum_control_auth` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:parent}"], + description: `Perform a storage scan on the given endpoint\n\nChange History:\n\n2024-04-22 Added the attribute dns_domain\nto storage system / storage device (DRDC1-23425)\n\n2024-04-15 - Added hidden attribute __capability_ids for TKU_2024_07_01\n(DRDC1-23319)` + } + }, + "IBM_Spectrum_Control_StorageSystem": { + "createFCPort": { + snippets: ["${1:fc_port_results}, ${2:storage_system_or_processor}"], + description: `Create FC Ports for the given storage system node\nor storage processor node` + } + }, + "IBM_Spectrum_Scale": { + "executeRequest": { + snippets: ["${1:discovery_access}, ${2:request_url}"], + description: `Execute a REST api call using ibm_spectrum_scale_auth` + } + }, + "IBM_Spectrum_Virtualize_REST": { + "getCapacityInBytes": { + snippets: ["${1:capacity}"], + description: `Convert capacity in dd.ddTB / ddGB format to Bytes\n\nChange history:\n2025-04-02 - ECA error is caused by a regex issue.\nIssue corrected (DRDC1-26400)` + }, + "updateIPAddress": { + snippets: ["${1:discovery_access}, ${2:storage_system_node}, ${3:parent}, ${4:rgroup}"], + description: `Update IP Address of StorageSystem` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:parent}, ${3:rgroup}"], + description: `Perform a storage scan on the given endpoint\n\nChange History:\n2024-10-04 - Add support IBM Spectrum Virtualize REST API\nwithout 'v1' in url (DRDC1-24578)` + } + }, + "IBM.SterlingB2B": { + }, + "IBM.SterlingSecureProxy": { + "versioning": { + snippets: ["${1:process}, ${2:pattern_name}"], + description: `Function extracts install_root from the trigger process and\ntries to extract version\n- from log files in and /UninstallerData directories\n- from process command line\n\nChange History:\n2019-02-15 - Use new path escape function` + } + }, + "IBM.Sterling.ExternalAuthenticationServer": { + "versioning": { + snippets: ["${1:process}"], + description: `Function extracts install_root from the trigger process and\ntries to extract version\n- from log files in and /UninstallerData directories\n- from process command line\nSame logic as in IBM.SterlingSecureProxy\nChange History:\n2019-02-18 - add DiscoveryFunctions.escapePath()\n` + } + }, + "IBM.Sterling.FileGateway": { + }, + "IBM.Storwize_Storage": { + "getLinkRecords": { + snippets: ["${1:discovery_access}"], + description: `Query the link records (CIM_AllocatedFromStoragePool)` + }, + "updateSVCReplications": { + snippets: ["${1:discovery_access}, ${2:volume_nodes}, ${3:scope}"], + description: `'\n\n2016-05-17 Added function updateSVCReplications for Storage Volume Mirroring & Replication Support\nCreate Replication relationships between IBM SVC Volumes and their copies\n\nHistory:\n2020-11-26 Fix a condition with scope for remote cluster search query` + }, + "extractVPD": { + snippets: ["${1:node_vpd_list}, ${2:display_attrs}"], + description: `Processes the given list of strings to find the VPD values we\nwant\n\nHistory :\n\n2017-09-11 : Fixed DRDC1-9441 to add the canister (storage processor)\nserial number for IBM Storwize for TKU_2017_09_01\n2021-09-02 : Corrected firmware version of the StorageProcessor (DRDC1-17285)` + }, + "queryEnclosure": { + snippets: ["${1:discovery_access}"], + description: `Query the IBMSTSSVC_Enclosure to get records of enclosure to\nretrieve the enclosure's serial number.\nWe need to index the enclosure by id as there is no direct link/association\nbetween the disk drives and the enclosure.\nThe check will be done regarding the enclosure ID (ElementName).\n\nHistory :\nFixed DRDC1-9441 : Discovered Serial Number for IBM Storwize storage system\nfor TKU_2017_09_01\n2018-05-16 - Modified the query to get records of enclosure to obtain\nmore information for hardware containers for TKU_2018_07_01 (DRDC1-9445)\n- Modified the enclosure_package association for the key\nto be the enclosure_record path and not the\nstorage system path for TKU_2018_07_01` + }, + "updateMDisks": { + snippets: ["${1:discovery_access}, ${2:array_nodes_by_names}, ${3:disk_drives_by_mdisk}"], + description: `Update the Managed disk drives for the given set of arrays\n2017-03-22 add this function to discover MDisk from SVC san controller for TKU_2017_04_01 release` + }, + "updateIPAddress": { + snippets: ["${1:discovery_access}, ${2:array_nodes}, ${3:array_records_by_path}, ${4:parent}"], + description: `Update IP Address of StorageSystem\n\nChange History:\n2023-11-07 - Always check for the netmask of the IP address\nbefore creating the IP Address node for TKU_2023_12_01 (DRDC1-22163)` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:parent}"], + description: `Perform a storage scan on the given endpoint. The endpoint may be\na host with a management SI or the device endpoint itself. No\nassumption should be made about which endpoint we have.\n\n2016-11-02 Fixed DRDC1-7205 : IBM storwize optimization : remove WBEM association class IBMTSSVC_StorageVolumeOnCluster\n2017-09-11 Fixed DRDC1-9441 : Discovered Serial Number for IBM Storwize storage system.\n\n2018-04-26 Add a new function : updateHardwareContainer to create and link hardware containers to the storage system for TKU_2018_07_01 (DRDC1-9945)\n\n2019-06-07 - Fixed DRDC1-13152 : Fixed IBMC SVC model of the array/device (e.g model format IBMSVC 2145DH8)\n\n2020-06-24 - Fixed DRDC1-15365 : Storage Pool consumed capacity not calculated correctly\n\n2020-07-03 Added scope attribute to StorageSystem node (DRDC1-15299)\n\n2021-02-17 Moved the query to CIM_AllocatedFromStoragePool to the end of scan function to ensure that the pattern discovers\nmost of data in the case the query to CIM_AllocatedFromStoragePool failed (DRDC1-16504)\n\n2021-04-21 - Added new function updateIPAddress to create and link IP address to storage system for TKU_2021_05_01 release (DRDC1-15697)\n2021-09-02 - Updated type of StorageSystem (DRDC1-17285)\n2022-03-02 - Unavailable Storage Volumes are not deleted from Discovery for IBM SVC devices (DRDC1-18549)\n2023-01-13 - Updated the serial value of the storage system with array id as displayed in the management gui and not with\nthe serial value of an disk enclosure.\n2023-01-18 - Added attributes Status and Status Detail to storage system (DRDC1-19552)\n2023-11-14 - Replaced allocated_capacity by total_consumed_capacity\nin storage system (DRDC1-22223)\n2024-02-06 - Re-adding allocated_capacity attribute value for\nstorage system nodes until it get deprecated (DRDC1-22814)\n2024-04-22 - Updated scan for TKU_2024_06_01 release (DRDC1-23425)\n2024-04-22 - Added the attribute dns_domain\nto storage system / storage device (DRDC1-23425)\n2024-04-16 - Added hidden attribute __capability_ids for TKU_2024_07_01\n(DRDC1-23319)\n2025-03-10 - Added new function getArraySerial() to get the Serial\nvalue of the array using the enclosure table for\nTKU_2025_04_01 (DRDC1-25939)\n2925-03-11 - Remove allocated_capacity as it is now deprecated\nfor TKU_2025_04_01` + } + }, + "IBM_TapeLibrary": { + "processModel": { + snippets: ["${1:model_info}"], + description: `Model processing function` + }, + "createHWContainer": { + snippets: ["${1:discovery_access}, ${2:storage_device}, ${3:storage_sys}, ${4:MAIN_CHASSIS_TYPE}, ${5:FRAME_TYPE}"], + description: `Function creates Hardware Container node for every\nchassis/frame of the tape library and link them with the Storage System.\nReturns Hardware Containers list that will be linked with Tape Drives later in the code.` + }, + "create3584Drive": { + snippets: ["${1:storage_device}, ${2:storage_sys}, ${3:tape_drives_list}, ${4:TAPE_DRIVE_TYPE}, ${5:DEVICE_TYPE}"], + description: `Function creates Tape Drives for libraries having Machine Type 3584 (TS3500, TS4500)\n\nChange History:\n2022-10-12 - Updated to avoid ECA errors when\nsoftwareElement table not exists (DRDC1-19966)` + }, + "create3577Drive": { + snippets: ["${1:storage_device}, ${2:storage_sys}, ${3:tape_drives_list}, ${4:MACHINE_TYPE}, ${5:TAPE_DRIVE_TYPE}"], + description: `Function creates Tape Drives for libraries having Machine Type 3577 (TS3400)\n\nChange History:\n2021-07-30 - Add processing for additional Machine Type 3572 (TS2900) (DRDC1-15621)` + }, + "calculate3584TapeLibraryCapacity": { + snippets: ["${1:storage_device}"], + description: `Calculate total capacity of a tape library by summing capacities of\nindividual cartridges for libraries having Machine Type 3584\n(TS3500, TS4500)\n\nReturn total capacity or none if no cartridges found\n` + } + }, + "IBM.TivoliCAMforResponseTime": { + }, + "IBM.TivoliCAMforSOAPlatform": { + }, + "IBM.TivoliCAMforTransactions": { + }, + "IBM.TivoliDataExchange": { + }, + "IBM.TivoliDataWarehouse": { + "UnixTivoliDatabaseServers": { + snippets: ["${1:process}, ${2:host}, ${3:si_type}, ${4:jdbc_attr}"], + description: `The function returns the related RDBMS instances\n\nChange History:\n2019-02-15 - Use new path escape function` + } + }, + "IBM.TivoliEnterpriseConsole": { + }, + "IBM.TivoliIntegratedPortal": { + }, + "IBM.TivoliIntelligentOrchestrator": { + }, + "IBM.TivoliIntelliWatch": { + }, + "IBM.TivoliKeyLifecycleManager": { + }, + "IBM.TivoliLicenseComplianceManager": { + }, + "IBM.TivoliManagementFramework": { + }, + "IBM.TivoliMonitoring": { + "installation_validation": { + snippets: ["${1:process}"], + description: `This function searches for specific packages on the host to validate the installation.\n\nChange History:\n2013-12-04 - The function from now on doesen't return Tivoli Monitoring packages;\n2023-11-16 - Replaced 'stop' with 'return' (DRDC1-22238)` + }, + "path_versioning": { + snippets: ["${1:process}, ${2:path_version_regex}"], + description: `This function deploys path versioning.` + } + }, + "IBM.TivoliMonitoringforVirtualEnvironments": { + }, + "IBM.TivoliNetView": { + }, + "IBM.TivoliOMEGAMON": { + }, + "IBM.TivoliProvisioningManager": { + "active_versioning": { + snippets: ["${1:host}, ${2:si_type}, ${3:install_root}, ${4:product_name}"], + description: `The active versioning block for Tivoli Provisioning Manager component patterns\n\nChange History:\n2019-02-05 - replace discovery.runCommand with Future.runCommand` + }, + "package_versioning": { + snippets: ["${1:host}, ${2:si_type}"], + description: `The package versioning block for Tivoli Provisioning Manager component patterns\n\nChange History:\n2023-01-17 - Updated (?i) flag placement in regular expression (DRDC1-20566)` + }, + "get_prod_version_and_name": { + snippets: ["${1:hostname}, ${2:si_type}, ${3:short_si_type}, ${4:full_version}"], + description: `Keine Beschreibung verfügbar.` + } + }, + "IBM.TivoliRemoteControl": { + "get_prod_version_and_name": { + snippets: ["${1:host}, ${2:component}, ${3:short_type}, ${4:full_version}, ${5:publisher}, ${6:product}"], + description: `The function sets product_version, name, short_name,\nsi_type, publisher, product attributes\n\nChange History:\n2024-06-20 - Corrected client SI type (DRDC1-23905)` + } + }, + "IBM.TivoliSAfIOM": { + }, + "IBM.TivoliSecurityComplianceManager": { + }, + "IBM.TivoliServiceAutomationManager": { + }, + "IBM.TivoliStorageFlashCopyManager": { + }, + "IBM.TivoliStorageManager": { + }, + "IBM.TivoliStorageManagerforDatabases": { + }, + "IBM.TivoliStorageManagerforERP": { + }, + "IBM.TivoliStorageManagerForMail": { + }, + "IBM.TivoliStorageManagerForStorageAreaNetworks": { + }, + "IBM.TivoliStorageManagerSystemBackupRecovery": { + }, + "IBM.TivoliStorageProductivityCenter": { + }, + "IBM.TivoliWorkloadScheduler": { + }, + "IBM.Tivoli.AccessManager.BusinessIntegration": { + }, + "IBM.Tivoli.AccessManager.eBusiness": { + "determine_si_attributes": { + snippets: ["${1:version}, ${2:product_type}"], + description: `Determines SI type, short_si_type, and product based on version and product type.\n\nArgs:\nversion: Full version\nproduct_type: ("Policy Server", "Authorization Server")\n\nReturns:\nsi_type\nsi_short_type\nsi_product\n\nVersion mapping:\n11.0+ - IBM Verify Identity Access (IVIA)\n10.0-10.x - IBM Security Verify Access (ISVA)\n7.0-9.x - IBM Security Access Manager (ISAM)\n< 7.0 - IBM Tivoli Access Manager for eBusiness (TAM)` + } + }, + "IBM.Tivoli.AccessManager.EnterpriseSingleSignOn": { + }, + "IBM.Tivoli.AccessManager.OperatingSystems": { + }, + "IBM.Tivoli.ADDM": { + }, + "IBM.Tivoli.CCMDB": { + }, + "IBM.Tivoli.CommonReporting": { + }, + "IBM.Tivoli.CompositeApplicationManager.ISM": { + }, + "IBM.Tivoli.CompositeApplicationManager.ResponseTimeTracking": { + "getInstallRoot": { + snippets: ["${1:host}, ${2:process}"], + description: `Obtain install root from process node` + }, + "getFileInfo": { + snippets: ["${1:host}, ${2:process}"], + description: `Find version and port information from a file\n\nThe file is the install_root we find from the given process\n\nTakes: Host node, triggering DiscoveredProcess node\nReturns: full_version, port (both strings)` + } + }, + "IBM.Tivoli.CompositeApplicationManager.WebsphereJ2EE": { + }, + "IBM.Tivoli.DirectoryIntegrator": { + }, + "IBM.Tivoli.DirectoryServer": { + }, + "IBM.Tivoli.NetcoolImpact": { + }, + "IBM.Tivoli.NetcoolOMNIbus": { + }, + "IBM.Tivoli.NetcoolReporter": { + }, + "IBM.Tivoli.NetcoolSecurityManager": { + }, + "IBM.Tivoli.NetcoolWebtop": { + }, + "IBM.Tivoli.NetworkManagerIPEdition": { + }, + "IBM.Tivoli.ServiceRequestManager": { + }, + "IBM.Tivoli.UsageAndAccountingManager": { + }, + "IBM_TS7700_REST": { + "executeRequest": { + snippets: ["${1:discovery_access}, ${2:request_url}"], + description: `Execute a GET REST api call using ibm_ts7700_auth` + }, + "updateEnclosureAndDiskDrives": { + snippets: ["${1:discovery_access}, ${2:storage_system_nodes}, ${3:rg_group}"], + description: `Update Disk Drives and Enclosures` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:parent}, ${3:rg_group}"], + description: `Perform a storage scan on the given endpoint` + } + }, + "IBM.TSAMP": { + }, + "IBM.TXSeries": { + }, + "IBM.UniData": { + }, + "IBM.UrbanCodeDeploy": { + }, + "IBM.VIO": { + }, + "IBM.WatsonExplorer": { + }, + "IBM.WebSEAL": { + }, + "IBM.WebSphereApplicationServer": { + }, + "IBM.WebSphereApplicationServerLibertyCore": { + "parseApps": { + snippets: ["${1:apps_raw}, ${2:regexpr}"], + description: `Function parses command output and returns table of deployed applications.\n\nChange History\n2022-11-30 - Single regex split into three to look for ear/war/jar files individually (DRDC1-20271)` + } + }, + "IBM.WebSphereApplicationServerWebServerPlugin": { + }, + "IBM.WebSphereEnterpriseServiceBus": { + }, + "IBM.WebSphereICS": { + }, + "IBM.WebSphereILOGJRulesBRMS": { + }, + "IBM.WebSphereILOGRulesNETBRMS": { + }, + "IBM.WebSphereIntegrationDeveloper": { + }, + "IBM.WebSphereLombardi": { + }, + "IBM.WebSphereMQ": { + }, + "IBM.WebSphereMQCluster": { + }, + "IBM.WebSphereMQExtendedDiscovery": { + }, + "IBM.WebSphereMQMessageBroker": { + }, + "IBM.WebSpherePartnerGateway": { + }, + "IBM.WebSpherePortal": { + }, + "IBM.WebSphereProcessServer": { + }, + "IBM.WebSphereStudio": { + }, + "IBM.WebSphere.ApplicationAdapters": { + }, + "IBM.WebSphere.ApplicationServer.NetworkDeployment": { + }, + "IBM.WebSphere.BusinessEvents": { + }, + "IBM.WebSphere.BusinessModeler": { + }, + "IBM.WebSphere.BusinessMonitor": { + }, + "IBM.WebSphere.CommunicationsServer": { + }, + "IBM.WebSphere.DataStage": { + }, + "IBM.WebSphere.ExtendedDeployment": { + }, + "IBM.WebSphere.MQWorkflow": { + }, + "IBM.WebSphere.ServiceRegistryRepository": { + }, + "IBM.WebSphere.TransformationExtender": { + }, + "IBM.WebSphere.TranslationServer": { + }, + "IBM.WinCollect": { + }, + "IBM.Worklight": { + }, + "IBM.WorkloadManager": { + }, + "IBM_XiV_Storage": { + "retrieveStorageSystemComplementaryInformation": { + snippets: ["${1:discovery_access}, ${2:array_records}"], + description: `Return the storage system nodes and any link information to their chassis` + }, + "retrieveIdentifyingInformation": { + snippets: ["${1:list_of_keys_to_look_for}, ${2:fc_port_record}"], + description: `Return a table based on specific keys` + }, + "updateFrontEndPorts": { + snippets: ["${1:fc_port_record}, ${2:processor}, ${3:array_node_path}, ${4:fc_nodes}, ${5:fc_to_storage_system_path}"], + description: `IBM XiV: manage the Front end port updates` + }, + "updateModuleAndFrontEndPorts": { + snippets: ["${1:discovery_access}, ${2:array_nodes}, ${3:volume_nodes}, ${4:fc_nodes}, ${5:fc_to_storage_system_path}"], + description: `IBM XiV are designed by module that each has a certain amount of ports.` + }, + "updateStorageConnections": { + snippets: ["${1:discovery_access}, ${2:array_nodes}, ${3:volume_nodes}, ${4:storage_systems_by_volume}"], + description: `Update the storage connectons for the given set of volumes\n\nReturns true if the update succeeds, false otherwise.` + }, + "getLinkRecords": { + snippets: ["${1:discovery_access}"], + description: `Query the link records (CIM_AllocatedFromStoragePool)` + }, + "formatDiskName": { + snippets: ["${1:label_to_format}"], + description: `Format disk label` + }, + "diskDriveSoftwareInformation": { + snippets: ["${1:software_identity_to_drive}, ${2:drive_softwares}, ${3:drive_path}"], + description: `Disk software ifnormation..for now we simply use it to get the vendor.` + }, + "extractDiskInformation": { + snippets: ["${1:drive_path}, ${2:realizes}, ${3:drive_packages}"], + description: `Disk package information, use for serial number and model.` + }, + "drivePackages": { + snippets: ["${1:discovery_access}"], + description: `return the drive package information, mostly to get the model and serial number.` + }, + "updateDiskDrives": { + snippets: ["${1:discovery_access}, ${2:array_nodes}"], + description: `Update the disk drives for the given set of arrays\nif the information is available.\nHistory :\n\n2017-05-18 Added the disk location information on the disk drive node for TKU_2017_06_01 (DRDC1-8387)\n2017-05-22 Fixed issue on capacity when DiskDrive represents a Flash Module (on A9000/A9000R systems have flash modules) (DRDC1-8760)s` + }, + "updateFCtoVolumeLink": { + snippets: ["${1:discovery_access}, ${2:volume_nodes}, ${3:fc_nodes}, ${4:fc_to_storage_system_path}"], + description: `Update the relation between FC and volumes.\nIBMTSDS_FCPort // IBMTSDS_EthernetPort\n|\nIBMTSDS_ProtocolControllerForFCPort // IBMTSDS_ProtocolControllerForEthernetPort\n|\nIBMTSDS_ProtocolControllerForSEUnit\n|\nIBMTSDS_Volume` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:parent}"], + description: `Perform a storage scan on the given endpoint. The endpoint may be\na host with a management SI or the device endpoint itself. No\nassumption should be made about which endpoint we have.\n\nStorage systems have two removal groups that can be used:\n- model.anchorRemovalGroup(array_node, storage_system_path); => IBMTSDS_StorageSystem.__PATH\n- model.anchorRemovalGroup(array_node, array_record.__PATH); => IBMTSDS_StorageFacilityChassis.__PATH\n\n2016-10-11 Fixed DRDC1-7026 Identify patterns which need to be optimized: Removed one useless wbem request\n2017-05-22 Fixed DRDC1-8760 Support for IBM Spectrum Accelerate chassis type\n2018-10-30 Add Support for IBM FlashSystem A9000R chassis type\n2020-07-03 Added scope attribute to StorageSystem node (DRDC1-15299)\n2024-04-22 Added the attribute dns_domain\nto storage system / storage device (DRDC1-23425)\n2024-04-16 Added hidden attribute __capability_ids for TKU_2024_07_01\n(DRDC1-23319)\n` + } + }, + "Illumio.AdaptiveSecurityPlatform": { + }, + "Illumio.PolicyComputeEngine": { + }, + "iManage.WorkServer": { + "packageVersioning": { + snippets: ["${1:host}"], + description: `Get package versioning\n\nTakes : Host\nReturns : Package version` + } + }, + "Impetus.Gathr": { + }, + "Imports": { + "skipVoids": { + snippets: ["${1:data}"], + description: `Return a copy of data table with any entries with void values removed.` + }, + "prepareCandidateData": { + snippets: ["${1:data}"], + description: `Return a copy of data table with suitable modifications for\nthe candidates API.\n\nRemoves any entries with void values.\nLower-cases MAC and IPv6 addresses.` + }, + "uniqueList": { + snippets: ["${1:items}"], + description: `Take a list of items that may have duplicates and return a\nversion with duplicates removed.` + }, + "filterIPAddrs": { + snippets: ["${1:ip_addrs}"], + description: `Return ip_addrs to only include non-loopback addresses.` + }, + "addExternalId": { + snippets: ["${1:node}, ${2:external_id}"], + description: `Add external_id to node's external_ids attribute if it is not\nalready present.\n\nChange History:\n2025-09-25 - Added log message (DRDC1-27489)` + }, + "removeExternalId": { + snippets: ["${1:node}, ${2:external_id}"], + description: `Remove external_id from node's external_ids attribute if it is\npresent.` + }, + "findK8sCluster": { + snippets: ["${1:namespace_id}, ${2:cluster_key}, ${3:cluster_type}"], + description: `Given a K8S namespace UUID, cluster key and cluster type find\nexisting cluster.\n\nChange History:\n2023-02-16 - simplified search by removing the Cluster type (DRDC1-20918)\n2024-05-29 - identify cloud based clusters (DRUD1-43562)\n2026-07-03 - search by key if search by UUID fails (DRDC1-30136)\n2026-07-10 - now search Cluster by uuid attribute, rather than id (DRDC1-30136)` + }, + "handleNetworkInterfaces": { + snippets: ["${1:interfaces}, ${2:ip_addrs}, ${3:root_device}, ${4:removal_group}"], + description: `Create interfaces and IP Addresses\n\nChange History:\n2023-09-12 - updated inference for IPAddress node (DRDC1-21830)` + }, + "OSClassify": { + snippets: ["${1:os}, ${2:data}"], + description: `Classify the given OS identification string and set it as\nthe classification for this identity.\n\nChange History:\n2026-04-14 - Updated escape sequence (DRDC1-29309)` + }, + "inferStorageSystem": { + snippets: ["${1:data}, ${2:source_ident}, ${3:source_node}, ${4:external_id}, ${5:replace_primary}"], + description: `Take the data table and either find an existing StorageSystem node\nor, if sufficient data is available, create a new one. If there is\ninsufficient data to safely infer the StorageSystem node, returns none.\n\nsource_ident is a string that identifies the source by type\nand instance.\n\nsource_node becomes the Primary inference of the node if the\nStorageSystem is created or if source_ident is the same as the existing\nPrimary inference. If an existing node from a different source\nis found, creates an Associate from source_node.\n\nIf external_id is non none, it is added as an external id.\n\nIf replace_primary is true, and the node is created, the\nsource_node replaces the trigger node as the Primary\ninference.\n\nChange History:\n2024-03-06 - updated __all_dns_names attribute assignment approach (DRDC1-17107)` + }, + "inferImage": { + snippets: ["${1:data}, ${2:runtime}"], + description: `Function takes data table and runtime type\nProcesses attributes\nSearches for existing Container Image nodes to inherit its key and id\nReturns Container Image node` + } + }, + "Import.AppDynamics": { + "single": { + snippets: ["${1:items}"], + description: `Given a list from a key expression, return the first item or\nnone if the list is empty.` + }, + "handle_APPLICATION": { + snippets: ["${1:entity}"], + description: `APPLICATION` + }, + "handle_TIER": { + snippets: ["${1:entity}"], + description: `TIER` + }, + "handle_NODE_MACHINE_AGENT": { + snippets: ["${1:entity}"], + description: `NODE_MACHINE_AGENT` + }, + "handle_NODE_APP_AGENT": { + snippets: ["${1:entity}"], + description: `NODE_APP_AGENT` + }, + "handle_TRANSACTION": { + snippets: ["${1:entity}"], + description: `TRANSACTION` + }, + "handle_BACKEND": { + snippets: ["${1:entity}"], + description: `BACKEND` + }, + "handleEntity": { + snippets: ["${1:entity}"], + description: `Handle a AppDynamics Entity.` + }, + "handleRelation": { + snippets: ["${1:relation}, ${2:nodes_by_id}"], + description: `Build relationships.` + } + }, + "Import.Aternity": { + "handle_ACTIVITY": { + snippets: ["${1:entity}"], + description: `ACTIVITY` + }, + "handle_BUSINESS_ACTIVITY": { + snippets: ["${1:entity}"], + description: `BUSINESS_ACTIVITY` + }, + "handle_APPLICATION": { + snippets: ["${1:entity}"], + description: `APPLICATION` + }, + "handle_DEVICE": { + snippets: ["${1:entity}"], + description: `DEVICE` + }, + "handleEntity": { + snippets: ["${1:entity}"], + description: `Handle a Aternity Entity.` + }, + "handleRelation": { + snippets: ["${1:relation}, ${2:nodes_by_id}"], + description: `Build relationships.` + } + }, + "Import.BHOM": { + }, + "Import.BHOM.AIX": { + "handleIAK_AIX_OS": { + snippets: ["${1:iak_aix_os}, ${2:creation_enabled}"], + description: `Handle a BHOM MonitoredDevice node with associated\nIAK_AIX_OS Object.` + } + }, + "Import.BHOM.AWSImport": { + "handleAWS_EC2": { + snippets: ["${1:ec2_node}, ${2:creation_enabled}"], + description: `Handle a BHOM MonitoredDevice node with associated AWS_EC2.` + }, + "handleAWS_AUTO_SCALING_GROUP": { + snippets: ["${1:ec2_group_node}"], + description: `Handle BHOM AWS_AUTO_SCALING_GROUP object.` + }, + "handleAWS_EBS": { + snippets: ["${1:ebs_node}"], + description: `Handle BHOM AWS_EBS object.` + }, + "handleAWS_S3_BUCKET": { + snippets: ["${1:s3_bucket}"], + description: `Handle BHOM AWS_S3_BUCKET object.` + }, + "handleAWS_KAFKA_CLUSTER": { + snippets: ["${1:kafka_node}"], + description: `Handle BHOM AWS_KAFKA_CLUSTER object.` + }, + "handleAWS_ES_CLUSTER": { + snippets: ["${1:es_node}"], + description: `Handle BHOM AWS_ES_CLUSTER object.` + }, + "handleAWS_EKS_CLUSTER": { + snippets: ["${1:eks_node}"], + description: `Handle BHOM MonitoredDevice node with associated AWS_EKS_CLUSTER object.` + }, + "handleAWS_RDS": { + snippets: ["${1:rds_node}"], + description: `Handle BHOM MonitoredObject node with associated AWS_RDS object.` + }, + "handleAWS_EFS_FILESYSTEMID": { + snippets: ["${1:efs_node}"], + description: `Handle BHOM MonitoredObject node with associated AWS_EFS_FILESYSTEMID object.` + }, + "handleAWS_ECC": { + snippets: ["${1:ecc_mo}"], + description: `Handle the AWS_ECC MonitoredObject node.` + } + }, + "Import.BHOM.AzureCloud": { + "handlePAF_VM": { + snippets: ["${1:paf_vm}"], + description: `Handle BHOM MonitoredDevice node with associated PAF_VIRTUAL_MACHINE or\nPAF_VM_SCALE_SET objects.` + }, + "handlePAF_SQL_SERVER": { + snippets: ["${1:paf_sql}"], + description: `Handle BHOM PAF_SQL_SERVER object.` + }, + "handlePAF_KUBERNETES": { + snippets: ["${1:paf_k8s}"], + description: `Handle BHOM MonitoredDevice node with associated PAF_KUBERNETES object.` + }, + "handlePAF_STORAGE_ACCOUNT": { + snippets: ["${1:storage_object}, ${2:storage_child}"], + description: `Handle BHOM PAF_STORAGE_ACCOUNT MonitoredObject node.` + }, + "handlePAF_APP_SVC": { + snippets: ["${1:svc_object}"], + description: `Handle various BHOM PAF_SVC_... MonitoredObject nodes.` + }, + "handlePAF_SQL_DATABASE": { + snippets: ["${1:db_object}"], + description: `Handle BHOM PAF_SQL_DATABASE MonitoredObject node.` + }, + "handlePAF_POSTGRESQL_FLEXIBLE": { + snippets: ["${1:psql_obj}"], + description: `Handle BHOM PAF_POSTGRESQL_FLEXIBLE MonitoredObject node.` + }, + "handlePAF_AZURE_ACCOUNT": { + snippets: ["${1:account_obj}"], + description: `Handle BHOM PAF_AZURE_ACCOUNT MonitoredObject node.` + }, + "handlePAF_APP_GW_V2": { + snippets: ["${1:app_gw_obj}"], + description: `Handle BHOM PAF_APP_GW_V2 MonitoredObject node.` + } + }, + "Import.BHOM.CephStorage": { + "handleCEP_HOST": { + snippets: ["${1:cep_host}"], + description: `Handle a BHOM MonitoredDevice node with associated\nCEP_HOST Object.` + } + }, + "Import.BHOM.Common": { + "single": { + snippets: ["${1:items}"], + description: `Given a list from a key expression, return the first item or\nnone if the list is empty.` + }, + "getDevice": { + snippets: ["${1:mo}, ${2:agent_device_ok}"], + description: `Get the MonitoredDevice for a MonitoredObject, checking that the\ndevice entity_id matches the MonitoredObject's device_guid\nattribute.\n\nIf agent_device_ok is true, it is acceptable for the device to be\nthe agent's device; if it is false, the MonitoredObject must have a\nnon-agent device.\n\nReturns none if there is no suitable MonitoredDevice.` + }, + "matchHostname": { + snippets: ["${1:device_dns_name}, ${2:name}"], + description: `Given a device_dns_name and a host's name, check if they match on\nbare name.` + }, + "setMO": { + snippets: ["${1:inferred}, ${2:mo}"], + description: `Set the MonitoredObject node most closely corresponding to the\ninferred node.` + }, + "notFound": { + snippets: ["${1:mo}, ${2:trigger_mo}"], + description: `Indicate that there was logic to find an inferred node corresponding\nto MonitoredObject mo, but nothing was found.\n\nIf mo was not the MonitoredObject that the pattern triggered on, the\ntrigger node must be specified in trigger_mo.` + } + }, + "Import.BHOM.DataProtector": { + "handleHPO_SERVER": { + snippets: ["${1:mo}"], + description: `Handle BHOM HPO_SERVER objects.\n\nHPO_SERVER: Host that run the software\nHP Data Protector Media Management Server` + } + }, + "Import.BHOM.DB2": { + "findHost": { + snippets: ["${1:device}"], + description: `Finds a host related to the MonitoredObject and device, if possible.` + }, + "findExistingDatabaseServer": { + snippets: ["${1:instance_name}, ${2:host}"], + description: `Given an instance name and a host, search for a DB2 Database Server\nSoftwareInstance node.` + }, + "handleDB2": { + snippets: ["${1:db2_environment_mo}, ${2:db2_instance_mo}, ${3:host}"], + description: `For DB2 instance, process SI and Database nodes.\n\nReturns true if all required nodes were found; false if not.` + }, + "processMOs": { + snippets: ["${1:db2_environment_mo}, ${2:db2_instance_mos}, ${3:host}"], + description: `Process all DB2_INSTANCE MonitoredObjects.\n\nReturns true if all required nodes were found; false if not.` + }, + "handleDB2_ENVIRONMENT": { + snippets: ["${1:db2_environment_mo}"], + description: `Given a DB2_ENVIRONMENT MonitoredObject try to find related Host node.\nAlso process DB2_DATABASE and DB2_INSTANCE MOs.` + } + }, + "Import.BHOM.Docker": { + "handleDKR_NODE": { + snippets: ["${1:dkr_node}, ${2:creation_enabled}"], + description: `Handle a BHOM MonitoredDevice node with associated DKR_NODE.` + } + }, + "Import.BHOM.Elastic": { + "handleESK_NODE": { + snippets: ["${1:esk_node}, ${2:creation_enabled}"], + description: `Handle a BHOM MonitoredDevice node with associated\nESK_NODE Object.` + } + }, + "Import.BHOM.EMCNetworker": { + "handleNSR_SERVER": { + snippets: ["${1:mo}"], + description: `Handle BHOM NBU_SERVER objects.\n\nNSR_SERVER: Host that run the software\nDell EMC Networker Server\n` + } + }, + "Import.BHOM.GCPImport": { + "handleGCP_GCE": { + snippets: ["${1:gce_mo}"], + description: `Handle the GCP_GCE MonitoredObject node.` + }, + "handleGCP_PROJECT": { + snippets: ["${1:project_mo}"], + description: `Handle the GCP_PROJECT MonitoredObject node.` + }, + "handleGCP_GCSQL": { + snippets: ["${1:database_mo}"], + description: `Handle the GCP_GCSQL MonitoredObject node.` + }, + "handleGCP_GKE": { + snippets: ["${1:gke_mo}"], + description: `Handle the GCP_GKE MonitoredObject node.` + } + }, + "Import.BHOM.Hadoop": { + "handleHadoopNode": { + snippets: ["${1:node_mo}"], + description: `Processing\nHADOOP_NAME_NODE\nHADOOP_DATA_NODE\nHADOOP_SECONDARY_NAME_NODE\nHADOOP_RESOURCE_MANAGER_NODE\nHADOOP_NODE_MANAGER_NODE\n\nMonitored Objects` + } + }, + "Import.BHOM.HardwareMonitoring": { + "handleHW": { + snippets: ["${1:device}, ${2:storage_mo}, ${3:serial}, ${4:km_type}"], + description: `Handle BHOM Hardware Monitoring KMs' objects.` + } + }, + "Import.BHOM.HardwareSentry": { + "bindMOToDiscoveryNode": { + snippets: ["${1:discovery_node}, ${2:hw_mo}"], + description: `Set/Update the external id` + }, + "getSerial": { + snippets: ["${1:mo}"], + description: `Get the serial value from the mo.\n\nThe attribute name could be either\nserial_number or serialNumber, as\nthere is an inconsistency on the HW KM side.` + }, + "handleMS_HW_ENCLOSURE": { + snippets: ["${1:hw_main_name}, ${2:hw_main_mo}"], + description: `Handle BHOM MS_HW_ENCLOSURE objects.` + }, + "handleMS_HW_MAIN": { + snippets: ["${1:hw_main_mo}"], + description: `Handle BHOM MS_HW_MAIN objects.\n\nMS_HW_MAIN\n|_ MS_HW_ENCLOSURE\n` + } + }, + "Import.BHOM.IBMMQ": { + "handleMQ_HOST": { + snippets: ["${1:mq_host}"], + description: `Handle a BHOM MonitoredDevice node with associated MQ_HOST Object.` + } + }, + "Import.BHOM.iSeries": { + "handleAKN_HOST": { + snippets: ["${1:akn_host}, ${2:creation_enabled}"], + description: `Handle a BHOM MonitoredDevice node with associated\nAKN_HOST Object.` + } + }, + "Import.BHOM.JBoss": { + "handlePJB_SERVER": { + snippets: ["${1:pjb_server}, ${2:creation_enabled}"], + description: `Handle a BHOM MonitoredDevice node with associated\nPJB_SERVER Object.` + } + }, + "Import.BHOM.K8s": { + "confirmMetadata": { + snippets: ["${1:k8s_cluster}"], + description: `Given a K8S_CLUSTER MO with no UUID attribute, mark it as "delayed" so\nwe can check it later and avoid creating a K8s Cluster with no namespace\nUUID.` + }, + "getNamespaceName": { + snippets: ["${1:pod_obj}"], + description: `Worker function that obtains the namespace name for K8s/OpenShift\nPod object.` + }, + "getRelatedObjects": { + snippets: ["${1:pod_obj}, ${2:cluster}"], + description: `Keine Beschreibung verfügbar.` + }, + "handleK8S_POD": { + snippets: ["${1:pod_obj}, ${2:creation_enabled}, ${3:k8s_creation_enabled}"], + description: `Handle a K8S_POD MonitoredObject.\n\nChange History:\n2026-06-17 - Improved related host search. (DRDC1-29987)` + }, + "handleK8S_NODE": { + snippets: ["${1:k8s_node}, ${2:creation_enabled}, ${3:k8s_creation_enabled}"], + description: `Handle a BHOM MonitoredDevice node with associated K8S_NODE or VE3_NODE\nMonitoredObject.\n\nChange History:\n2026-07-10 - Added uuid attribute to Cluster. (DRDC1-30136)` + }, + "handleK8S_NAMESPACE": { + snippets: ["${1:ns_obj}"], + description: `Handle a K8S_NAMESPACE or VE3_PROJECT object.\n\nThese objects can be created after the K8S_PODs/VE3_PODs that are\ninside them. Here we confirm the existence of all the contained\nK8S_PODs/VE3_PODs so that the K8S_POD/VE3_POD pattern triggers and\neverything is linked correctly.` + }, + "handleK8S_DEPLOYMENT": { + snippets: ["${1:dep_obj}"], + description: `Handle a K8S_DEPLOYMENT or a VE3_DEPLOYMENT Monitored Object.\n\nThese objects can be created after the K8S_PODs that are inside\nthem. Here we confirm the existence of all the contained K8S_PODs so\nthat the K8S_POD pattern triggers and everything is linked\ncorrectly.` + }, + "handleK8S_SETS": { + snippets: ["${1:set_obj}"], + description: `Handle K8S_REPLICASET, K8S_STATEFULSET, K8S_DAEMONSET, K8S_JOB,\nVE3_STATEFULSET, VE3_DAEMONSET, VE3_JOB, VE3_REPLICASET.\n\nThese objects can be created after the K8S_PODs/VE3_PODs that are\ninside them. Here we confirm the existence of all the contained\nK8S_PODs/VE3_PODs so that the K8S_POD/VE3_POD pattern triggers and\neverything is linked correctly.` + }, + "annotatePodOrDeployment": { + snippets: ["${1:node}"], + description: `Annotate a SofwarePod or Deployment node with a __bhom_name\nattribute, that can be used for efficient event correlation.` + } + }, + "Import.BHOM.Kafka": { + "handleKFK_CLUSTER": { + snippets: ["${1:kfk_mo}"], + description: `Handle BHOM MonitoredDevice with associated KFK_CLUSTER MO.` + } + }, + "Import.BHOM.Linking": { + "addLink": { + snippets: ["${1:candidate}, ${2:device}, ${3:mo}"], + description: `Create the inference.associate link from MonitoredDevice to an\ninferred node and add external ID.` + }, + "getPortInfo": { + snippets: ["${1:mo}, ${2:url_attribute}"], + description: `The function extracts port number from the respective MO.` + } + }, + "Import.BHOM.Linux": { + "handleNUK_Linux_OS": { + snippets: ["${1:nuk_linux_os}, ${2:creation_enabled}"], + description: `Handle a NUK_Linux_OS MonitoredObject.` + } + }, + "Import.BHOM.MicrosoftWindowsCluster": { + "handleMCS_Remote_Node": { + snippets: ["${1:mcs_remote_node}"], + description: `Handle a BHOM MonitoredDevice node with associated\nMCS_Remote_Node Object.` + }, + "handleMCS_Remote_Cluster": { + snippets: ["${1:mcs_remote_cluster}"], + description: `Handle a BHOM MonitoredDevice node with associated\nMCS_Remote_Cluster Object.` + } + }, + "Import.BHOM.MongoDB": { + "handleMONGO_MEMBER": { + snippets: ["${1:mongo_obj}"], + description: `Handle a MONGO_MEMBER MonitoredObject node.` + } + }, + "Import.BHOM.MSExchangeMonitoring": { + "handleMSEXCH_Server": { + snippets: ["${1:msexch_mo}"], + description: `Handle a BHOM MonitoredDevice node with associated\nMSEXCH_Server or MSEXCH_Remote_Servers Object.` + } + }, + "Import.BHOM.MSSQL": { + "handleMSSQL_SERVER_HOST": { + snippets: ["${1:mssql_server_host}, ${2:creation_enabled}"], + description: `Handle a BHOM MonitoredDevice node with associated\nMSSQL_SERVER_HOST Object.` + }, + "getHostAndInstanceName": { + snippets: ["${1:mssql_mo}"], + description: `Common function to get Host and instance name from MSSQL MonitoredObject.` + }, + "handleMSSQL_SERVER_INSTANCE": { + snippets: ["${1:mssql_mo}"], + description: `Handle MSSQL_SERVER_INSTANCE MonitoredObject.` + }, + "handleMSSQL_SERVER_DB": { + snippets: ["${1:mssql_mo}"], + description: `Handle MSSQL_SERVER_DB MonitoredObject.` + } + }, + "Import.BHOM.Nutanix": { + "handleNTX_HOST": { + snippets: ["${1:ntx_host}"], + description: `Handle a BHOM MonitoredDevice node with associated\nNTX_HOST Object.` + } + }, + "Import.BHOM.OpenStack": { + "handleOPENSTACK_HYPERVISOR": { + snippets: ["${1:hypervisor_mo}"], + description: `Processing\nOPENSTACK_HYPERVISOR\nMonitored Object` + }, + "handleOPENSTACK_SERVICE": { + snippets: ["${1:service_mo}"], + description: `Processing\nOPENSTACK_SERVICE Monitored Object` + }, + "handleOPENSTACK_INSTANCE": { + snippets: ["${1:instance_mo}"], + description: `Processing OPENSTACK_INSTANCE\nMonitored Object\nrepresented by OpenStack Nova Instance VM nodes` + }, + "handleOPENSTACK_VOLUME": { + snippets: ["${1:volume_mo}"], + description: `Processing OPENSTACK_VOLUME\nMonitored Object represented by\nOpenStack Cinder Storage Volume nodes` + } + }, + "Import.BHOM.Oracle": { + "searchDB": { + snippets: ["${1:db_unique_name}"], + description: `A fallback search for Database node using only db_unique_name.` + }, + "getHostingNode": { + snippets: ["${1:db_object}"], + description: `For a given DB object traverse to its parent and try to find an inferred\nCluster node that represents Oracle Clusterware node.` + }, + "findExisting": { + snippets: ["${1:instance_name}, ${2:hosting_node}"], + description: `Given an instance name and a hosting node, try to find an Oracle DB.` + }, + "handleKOE_HOST": { + snippets: ["${1:koe_host}, ${2:creation_enabled}"], + description: `Handle a BHOM MonitoredDevice node with associated\nKOE_HOST Object.` + }, + "handleKOE_INSTANCE": { + snippets: ["${1:device}, ${2:db_object}"], + description: `Handle a BHOM MonitoredDevice node with associated KOE_INSTANCE object.` + }, + "handleOCI_INSTANCE": { + snippets: ["${1:vm_obj}"], + description: `Handle a BHOM OCI_INSTANCE MonitoredObject.` + }, + "handleOCI_VOLUME": { + snippets: ["${1:volume_obj}"], + description: `Handle a BHOM OCI_VOLUME MonitoredObject.` + }, + "handleOCI_OKE_CLUSTER": { + snippets: ["${1:cluster_obj}"], + description: `Handle a BHOM OCI_OKE_CLUSTER MonitoredObject.` + }, + "handleOCI_FILE_SYSTEM": { + snippets: ["${1:fs_obj}"], + description: `Handle a BHOM OCI_FILE_SYSTEM MonitoredObject.` + }, + "handleOCI_BUCKET": { + snippets: ["${1:bucket_obj}"], + description: `Handle a BHOM OCI_BUCKET MonitoredObject.` + }, + "handleOCI_LOADBALANCER_BACKENDSET": { + snippets: ["${1:lb_obj}"], + description: `Handle a BHOM OCI_LOADBALANCER_BACKENDSET MonitoredObject.` + }, + "handleOCI_LOADBALANCER_NETWORK_BACKENDSET": { + snippets: ["${1:network_lb}"], + description: `Handle a BHOM OCI_LOADBALANCER_NETWORK_BACKENDSET MonitoredObject.` + }, + "handleOCI_MYSQL_DB_SYSTEM": { + snippets: ["${1:sql_mo}"], + description: `Handle a BHOM OCI_MYSQL_DB_SYSTEM MonitoredObject.` + } + }, + "Import.BHOM.PostgreSQL": { + "linkDBs": { + snippets: ["${1:pgr_obj}, ${2:db_table}"], + description: `Link PGR_DB MonitoredObjects to Database nodes in BHOM.\n- pgr_obj: PGR_ENVIRONMENT MonitoredObject to find related PGR_DB objects\n- db_table: table mapping instance names to Database nodes` + }, + "handleCloudPGR": { + snippets: ["${1:device}, ${2:pgr_obj}"], + description: `Handle PGR_ENVIRONMENT object for cloud-hosted PostgreSQL DBs.` + }, + "handleOnPremPGR": { + snippets: ["${1:pgr_obj}, ${2:host}"], + description: `Handle PGR_ENVIRONMENT object for on-prem PostgreSQL DBs.` + }, + "handlePGR_ENVIRONMENT": { + snippets: ["${1:pgr_environment}, ${2:creation_enabled}"], + description: `Handle a BHOM MonitoredDevice node with associated\nPGR_ENVIRONMENT Object.` + } + }, + "Import.BHOM.Redis": { + "handleRIS_NODE": { + snippets: ["${1:ris_mo}"], + description: `Handle BHOM MonitoredDevice with associated RIS_NODE MO.` + } + }, + "Import.BHOM.RemedyARS": { + "handleARS_SERVER": { + snippets: ["${1:mo}"], + description: `Handle an ARS_SERVER Object.` + } + }, + "Import.BHOM.RHVM": { + "handleREV_Manager": { + snippets: ["${1:rev_manager}"], + description: `Handle a REV_Manager MonitoredObject.\n\nThis handles remote monitoring where the Monitor Agent runs on a\ndifferent host than the RHVM instance being monitored.` + } + }, + "Import.BHOM.SAPMonitoring": { + "handleSSM_Device": { + snippets: ["${1:ssm_sid_cont}"], + description: `Handle an SSM_SID_CONT Object.` + }, + "handleSHM_HOST": { + snippets: ["${1:shm_host}"], + description: `Handle an SHM_HOST Object.` + } + }, + "Import.BHOM.Scripting": { + "handleTRO_Device": { + snippets: ["${1:tro_device}, ${2:creation_enabled}"], + description: `Handle a BHOM MonitoredDevice node with associated\nTRO_Device Object.` + } + }, + "Import.BHOM.Software": { + }, + "Import.BHOM.Solaris": { + "handleKIS_Remote_Host": { + snippets: ["${1:kis_remote_host}"], + description: `Handle a BHOM MonitoredDevice node with associated\nKIS_Remote_Host Object from Solaris monitoring.\n\nMaps KIS_Remote_Host to Host node and processes child MonitoredObjects:\n- KIS_Virtualization → KIS_Zone_Container: containers for zones\n- Zone MOs: maps to virtual Host (if exists) or VirtualMachine (Solaris Zone Container)\n\nHost gets 2 external IDs, virtual Hosts/VMs get 1 external ID each.\n` + } + }, + "Import.BHOM.SpectrumProtect": { + "handleTSM_SERVER": { + snippets: ["${1:mo}"], + description: `Handle BHOM TSM_SERVER objects.\n\nTSM_SERVER: Host that run the software\nIBM Spectrum Protect` + } + }, + "Import.BHOM.StorageAnalyzer": { + "bindMOToDiscoveryNode": { + snippets: ["${1:discovery_node}, ${2:skm_mo}"], + description: `Set/Update the external id` + }, + "getChildMOs": { + snippets: ["${1:parent_mo}, ${2:entity_type_cont}, ${3:entity_type}"], + description: `Return the MOs for the requested entity type.` + }, + "searchStorageVolumeNodes": { + snippets: ["${1:storage_node}, ${2:discovery_nodes}"], + description: `Search for the StorageVolume nodes within the provided\nStorageSystem/StorageSystemGroup node (storage_node)` + }, + "handleSKM_SYSTEM": { + snippets: ["${1:system_mo}, ${2:serial}"], + description: `Handle BHOM SKM_SYSTEM objects.\n\nSKM_SYSTEM: It could be modeled either as a\nStorageSystemGroup or as a StorageSystem node\n\nSKM_SYSTEM\n|_ SKM_VOLUME_CONT/SKM_VOLUME\n|_ SKM_FILER_CONT/SKM_FILER` + } + }, + "Import.BHOM.SybaseASE": { + "handleSYBASE_SQL_SERVER": { + snippets: ["${1:sybase_mo}"], + description: `Processing\nSYBASE_SQL_SERVER and SYBASE_DATABASE\nMonitored Objects` + } + }, + "Import.BHOM.Tomcat": { + "handleTCT_SERVER": { + snippets: ["${1:tct_server}, ${2:creation_enabled}"], + description: `Handle a BHOM MonitoredDevice node with associated\nTCT_SERVER Object.` + } + }, + "Import.BHOM.VeritasNetBackup": { + "handleNBU_SERVER": { + snippets: ["${1:mo}"], + description: `Handle BHOM NBU_SERVER objects.\n\nNBU_SERVER: Host that run the software\nVeritas NetBackup Master Server` + } + }, + "Import.BHOM.VictoriaMetrics": { + "handleVM_CLUSTER": { + snippets: ["${1:cluster_mo}"], + description: `Processing\nVICTORIA_METRICS_CLUSTER\nMonitored Object\n(K8s Cluster installation only)\n` + }, + "handleVMcomponents": { + snippets: ["${1:vm_mo}, ${2:component_type}"], + description: `Processing\nVICTORIA_METRICS_VMINSERT\nVICTORIA_METRICS_VMSELECT\nVICTORIA_METRICS_VMSTORAGE\nMonitored Objects\n\n(K8s Cluster installation only)` + } + }, + "Import.BHOM.VMware": { + "handleVSM_VM": { + snippets: ["${1:vm_obj}, ${2:creation_enabled}"], + description: `Handle a VSM_VM object.` + }, + "handleVSM_HOST": { + snippets: ["${1:vsm_host}, ${2:creation_enabled}"], + description: `Handle a BHOM MonitoredDevice node with associated VSM_HOST\nObject.` + }, + "handleVSM_VC": { + snippets: ["${1:vc_node}, ${2:creation_enabled}"], + description: `Handle a BHOM MonitoredDevice node with associated VSM_VC.` + } + }, + "Import.BHOM.WebLogic": { + "findExistingApplicationServer": { + snippets: ["${1:instance_name}, ${2:host}"], + description: `Given an instance name and a hosting node, try to find an\nOracle WebLogic Server or BEA WebLogic Application Server.` + }, + "handleHostRelated": { + snippets: ["${1:host_related_mo}"], + description: `Handle a BHOM MonitoredDevice node with associated\nBEAWLS_MANAGED or BEAWLS_LOCAL_MANAGED Object.` + }, + "handleBEAWLS_SERVER": { + snippets: ["${1:beawls_server}, ${2:creation_enabled}"], + description: `Handle a BHOM MonitoredDevice node with associated\nBEAWLS_SERVER Object.` + } + }, + "Import.BHOM.WebSphere": { + "findExistingApplicationServer": { + snippets: ["${1:instance_name}, ${2:host}"], + description: `Given an instance name and a hosting node, try to find an\nIBM WebSphere Application Server.` + }, + "handlePMW_APPSERVER": { + snippets: ["${1:pmw_appserver}"], + description: `Handle a BHOM MonitoredDevice node with associated\nPMW_APPSERVER object.` + }, + "handlePMW_NODE": { + snippets: ["${1:pmw_node}"], + description: `Handle a BHOM MonitoredDevice node with associated\nPMW_NODE Object.` + } + }, + "Import.BHOM.Windows": { + "handleNT_OS": { + snippets: ["${1:nt_os}, ${2:creation_enabled}"], + description: `Handle an NT_OS MonitoredObject.` + } + }, + "Import.BHOM.Xen": { + "handleVSM_XEN_HOST": { + snippets: ["${1:vsm_xen_host}, ${2:creation_enabled}"], + description: `Handle a BHOM MonitoredDevice node with associated VSM_XEN_HOST\nObject.` + }, + "handleVSM_XEN_VM": { + snippets: ["${1:vm_obj}, ${2:creation_enabled}"], + description: `Handle a VM as a child of a VSM_XEN_HOST device.` + } + }, + "Import.BMCCMDB": { + "get_or_else": { + snippets: ["${1:attributes}, ${2:key}"], + description: `` + }, + "genericElementFrom": { + snippets: ["${1:entity}"], + description: `` + }, + "establish_relationship": { + snippets: ["${1:src}, ${2:dst}, ${3:type}, ${4:extras}"], + description: `` + }, + "handle_BMC_APPLICATION": { + snippets: ["${1:entity}"], + description: `Handle a BMC_APPLICATION entity.` + }, + "handle_BMC_APPLICATIONSERVICE": { + snippets: ["${1:entity}"], + description: `Handle a BMC_APPLICATIONSERVICE entity.` + }, + "handle_BMC_APPLICATIONSYSTEM": { + snippets: ["${1:entity}"], + description: `Handle a BMC_APPLICATIONSYSTEM entity.` + }, + "handle_BMC_BUSINESSSERVICE": { + snippets: ["${1:entity}"], + description: `Handle a BMC_BUSINESSSERVICE entity.` + }, + "handle_BMC_BUSINESSPROCESS": { + snippets: ["${1:entity}"], + description: `Handle a BMC_BUSINESSPROCESS entity.` + }, + "handle_BMC_CLUSTER": { + snippets: ["${1:entity}"], + description: `Handle a BMC_CLUSTER entity.` + }, + "handle_BMC_COMPUTERSYSTEM": { + snippets: ["${1:entity}"], + description: `Handle a BMC_COMPUTERSYSTEM entity.` + }, + "handle_BMC_DATABASE": { + snippets: ["${1:entity}"], + description: `Handle a BMC_DATABASE entity.` + }, + "handle_BMC_LOGICALSYSTEMCOMPONENT": { + snippets: ["${1:entity}"], + description: `Handle a BMC_LOGICALSYSTEMCOMPONENT entity.` + }, + "handle_BMC_PHYSICALLOCATION": { + snippets: ["${1:entity}"], + description: `Handle a BMC_PHYSICALLOCATION entity.` + }, + "handle_BMC_RESOURCEPOOL": { + snippets: ["${1:entity}"], + description: `Handle a BMC_RESOURCEPOOL entity.` + }, + "handle_BMC_SERVICEOFFERINGINSTANCE": { + snippets: ["${1:entity}"], + description: `Handle a BMC_SERVICEOFFERINGINSTANCE entity.` + }, + "handle_BMC_SOFTWARESERVER": { + snippets: ["${1:entity}"], + description: `Handle a BMC_SOFTWARESERVER entity.` + }, + "handle_BMC_VIRTUALSYSTEMENABLER": { + snippets: ["${1:entity}"], + description: `Handle a BMC_VIRTUALSYSTEMENABLER entity.` + }, + "handleEntity": { + snippets: ["${1:entityFull}"], + description: `Handle a BMCCMDB Entity.` + }, + "handleRelation": { + snippets: ["${1:relation}, ${2:nodes_by_meta_external_id}"], + description: `Build relationships.` + } + }, + "Import.Catchpoint": { + "externalElementFrom": { + snippets: ["${1:entity}"], + description: `` + }, + "handle_Test": { + snippets: ["${1:entity}"], + description: `Test` + }, + "handle_Node": { + snippets: ["${1:entity}"], + description: `Node` + }, + "handleEntity": { + snippets: ["${1:entity}"], + description: `Handle a Catchpoint Entity.` + }, + "handleRelationship": { + snippets: ["${1:rel}, ${2:nodes_by_id}"], + description: `Build relationships.` + } + }, + "Import.CA_APM": { + "externalElementFrom": { + snippets: ["${1:entity}"], + description: `` + }, + "handle_GENERICFRONTEND": { + snippets: ["${1:entity}"], + description: `GENERICFRONTEND` + }, + "handle_WEBSERVICE_SERVER": { + snippets: ["${1:entity}"], + description: `WEBSERVICE_SERVER` + }, + "handle_WEBSERVICE": { + snippets: ["${1:entity}"], + description: `WEBSERVICE` + }, + "handle_INFERRED_WEBSERVICE": { + snippets: ["${1:entity}"], + description: `INFERRED_WEBSERVICE` + }, + "handle_AGENT": { + snippets: ["${1:entity}"], + description: `AGENT` + }, + "handleEntity": { + snippets: ["${1:entity}"], + description: `Handle a CA_APM Entity.` + }, + "handleRelation": { + snippets: ["${1:relation}, ${2:nodes_by_id}"], + description: `Build relationships.` + } + }, + "Import.CloudFoundry": { + "single": { + snippets: ["${1:items}"], + description: `Given a list from a key expression, return the first item or\nnone if the list is empty.` + }, + "logHandling": { + snippets: ["${1:entity}"], + description: `log handleing of entity` + }, + "getTargetId": { + snippets: ["${1:entity}, ${2:rel_name}"], + description: `Get a target id for a CloudFoundry relationship` + }, + "getTarget": { + snippets: ["${1:entity}, ${2:rel_name}, ${3:nodes_by_id}"], + description: `Get a target node for a relation` + }, + "handleOrganizations": { + snippets: ["${1:entities}, ${2:nodes_by_id}"], + description: `Handle CloudFoundry Organization entities.` + }, + "handleSpaces": { + snippets: ["${1:entities}, ${2:nodes_by_id}"], + description: `Handle CloudFoundry Space entities.` + }, + "handleApps": { + snippets: ["${1:entities}, ${2:nodes_by_id}"], + description: `Handle CloudFoundry App entities.` + }, + "handleSoftwareInstanceAndHostForProcessResource": { + snippets: ["${1:entity}, ${2:resource}, ${3:nodes_by_id}"], + description: `Handle a Host embedded in a process entity` + }, + "handleProcesses": { + snippets: ["${1:entities}, ${2:nodes_by_id}"], + description: `Handle CloudFoundry Process entities.` + } + }, + "Import.Datadog": { + "hostDeviceFrom": { + snippets: ["${1:entity}, ${2:entities_by_id}"], + description: `Host Node` + }, + "handleEntity": { + snippets: ["${1:entity}, ${2:entities_by_id}"], + description: `Handle a Datadog Entity.` + } + }, + "Import.Dynatrace": { + "single": { + snippets: ["${1:items}"], + description: `Given a list from a key expression, return the first item or\nnone if the list is empty.` + }, + "handleManagementZones": { + snippets: ["${1:entity}"], + description: `Service function that processes Management Zones attribute\nand returns the names of those.` + }, + "linkZones": { + snippets: ["${1:node}"], + description: `Service function that take a node as an input and creates an\nAdminCollection for its management zones.` + }, + "handle_HOST": { + snippets: ["${1:entity}, ${2:entity_id}, ${3:properties}"], + description: `Handle a HOST entity.` + }, + "handle_KUBERNETES_NODE": { + snippets: ["${1:entity}, ${2:entity_id}, ${3:properties}"], + description: `Handle a KUBERNETES_NODE entity.` + }, + "handle_CLOUD_APPLICATION_INSTANCE": { + snippets: ["${1:entity}, ${2:cluster_key}, ${3:namespace_name}"], + description: `Handle a CLOUD_APPLICATION_INSTANCE entity.` + }, + "handle_CLOUD_APPLICATION": { + snippets: ["${1:entity}, ${2:cluster_key}, ${3:namespace_name}"], + description: `Handle a CLOUD_APPLICATION entity.` + }, + "handle_CLOUD_APPLICATION_NAMESPACE": { + snippets: ["${1:entity}, ${2:cluster_key}"], + description: `Handle a CLOUD_APPLICATION_NAMESPACE entity.` + }, + "handle_PROCESS_GROUP": { + snippets: ["${1:entity}, ${2:entity_id}, ${3:properties}"], + description: `Handle a PROCESS_GROUP entity.` + }, + "handle_PROCESS_GROUP_INSTANCE": { + snippets: ["${1:entity}, ${2:entity_id}, ${3:properties}"], + description: `Handle a PROCESS_GROUP_INSTANCE entity.` + }, + "handle_SERVICE": { + snippets: ["${1:entity}, ${2:entity_id}, ${3:properties}"], + description: `Handle a SERVICE entity.` + }, + "handle_SERVICE_INSTANCE": { + snippets: ["${1:entity}, ${2:entity_id}, ${3:properties}"], + description: `Handle a SERVICE_INSTANCE entity.` + }, + "handle_AZURE_VM": { + snippets: ["${1:entity}, ${2:properties}"], + description: `Handle Dynatrace ImportedEntity node with associated AZURE_VM object.` + }, + "handle_AZURE_TENANT": { + snippets: ["${1:entity}, ${2:properties}"], + description: `Handle Dynatrace ImportedEntity node with associated AZURE_TENANT object.` + }, + "handle_AWS_LAMBDA_FUNCTION": { + snippets: ["${1:entity}, ${2:properties}"], + description: `Handle Dynatrace ImportedEntity node with associated AWS_LAMBDA_FUNCTION object.` + }, + "handle_EC2_INSTANCE": { + snippets: ["${1:entity}, ${2:properties}, ${3:entity_id}, ${4:relationship_table}"], + description: `Handle Dynatrace ImportedEntity node with associated EC2_INSTANCE object.` + }, + "handle_S3BUCKET": { + snippets: ["${1:entity}, ${2:properties}"], + description: `Handle Dynatrace ImportedEntity node with associated S3BUCKET object.` + }, + "handle_EBS_VOLUME": { + snippets: ["${1:entity}, ${2:properties}"], + description: `Handle Dynatrace ImportedEntity node with associated EBS_VOLUME object.` + }, + "handle_DYNAMO_DB_TABLE": { + snippets: ["${1:entity}, ${2:properties}"], + description: `Handle Dynatrace ImportedEntity node with associated DYNAMO_DB_TABLE object.` + }, + "buildRelationship": { + snippets: ["${1:rel_type}, ${2:source}, ${3:target}"], + description: `Build relationship between source and target, where source\nimpacts target.` + }, + "readRelationships": { + snippets: ["${1:entity}, ${2:relationship_table}"], + description: `Read relationships for entity.` + }, + "buildRelationships": { + snippets: ["${1:entity}, ${2:entity_table}"], + description: `Build relationships for entity, based on table.` + }, + "moveTogether": { + snippets: ["${1:cluster_to_hosts}, ${2:host_to_cluster}, ${3:hosts}"], + description: `Move all hosts into the same cluster as each other.` + }, + "inferClusters": { + snippets: ["${1:entities}, ${2:relationship_table}"], + description: `ImportedEntry ojects do not provide relationships to Kubernetes cluster.\nWill create likely clusters based on relationships Namespace - SoftwarePod - Host.\nReturns table with clusters.` + } + }, + "Import.Entuity": { + "findNetworkInterfaces": { + snippets: ["${1:root_device_entity}, ${2:entities_by_id}, ${3:rel_table}"], + description: `Search for entuity_device_interfaces entities via 'Device :: Interface' relationship.\nReturn a table suitable to pass as 'interfaces' attribute to inferHost, inferNetworkDevice, inferStorageSystem\nE.G.:\n{\n'ens160': {\n'ip_addrs': ['10.135.47.254'],\n'mac_addr': '00:50:56:8f:a2:af'\n},\n'ens192': {\n'ip_addrs': ['10.135.14.28'],\n'mac_addr': '00:50:56:8f:1a:ab'\n}\n}` + }, + "networkDeviceFrom": { + snippets: ["${1:entity}, ${2:entities_by_id}, ${3:rel_table}"], + description: `Network Device Node` + }, + "hostDeviceFrom": { + snippets: ["${1:entity}, ${2:entities_by_id}, ${3:rel_table}"], + description: `Host Device Node` + }, + "handleEntity": { + snippets: ["${1:entity}, ${2:entities_by_id}, ${3:rel_table}"], + description: `Handle a Entuity Entity.` + }, + "handleRelationships": { + snippets: ["${1:relation}, ${2:nodes_by_id}"], + description: `Build relationships.` + } + }, + "Import.HCO_AWS": { + "handleAWSEC2Instance": { + snippets: ["${1:ec2_node}"], + description: `Handle a HCO OptimizeSystem node with associated to an AWS_EC2 instance.` + }, + "handleAWS_ASG": { + snippets: ["${1:asg}"], + description: `Handle a HCO OptimizeSystem node with associated to an Auto Scaling Group` + }, + "handleAWS_EBS": { + snippets: ["${1:ebs_node}"], + description: `Handle HCO OptimizeSystem node with associated AWS_EBS object.` + } + }, + "Import.HCO_GCP": { + "handleGCPVM": { + snippets: ["${1:host_node}"], + description: `Handle a HCO OptimizeSystem node of an GCP` + } + }, + "Import.HCO_Generic": { + "handleGenericNode": { + snippets: ["${1:host_node}"], + description: `Handle a HCO OptimizeSystem node of generic type` + } + }, + "Import.HCO_IBMLPARS": { + "handleLPARNode": { + snippets: ["${1:host_node}"], + description: `Handle a HCO OptimizeSystem node of lpar type` + } + }, + "Import.HCO_K8S": { + "handleK8SNode": { + snippets: ["${1:k8s_node}"], + description: `Handle a HCO OptimizeSystem node with associated k8s node.` + }, + "handleK8SDeployment": { + snippets: ["${1:k8s_deployment}"], + description: `Handle a HCO OptimizeSystem node with associated k8s deployment` + } + }, + "Import.HCO_KVM": { + "handleKVMNode": { + snippets: ["${1:host_node}"], + description: `Handle a HCO OptimizeSystem node of KVM type` + }, + "handleKVMVM": { + snippets: ["${1:vm_node}"], + description: `Handle a HCO OptimizeSystem node of KVM VM type` + } + }, + "Import.HCO_MSAzure": { + "handleAzureVM": { + snippets: ["${1:host_node}"], + description: `Handle a HCO OptimizeSystem node of an Azure Virtual Machine\n\nNode example:\n{\n"destroyed": false,\n"kind": "VirtualMachine",\n"modified": "2021-10-25T08:46:37.226830+00:00",\n"state": {\n"cloud": true,\n"cloud_class": "Standard E4s v3",\n"count": 1,\n"instance_id": "/subscriptions/4c4dd0f5-2676-46b1-8d0d-9670ec2b80d2/resourcegroups/ae1-spoke-rg/providers/microsoft.compute/virtualmachines/ae1-sql-mf-03",\n"key": "azure/vm/4ba34706-c3d7-4588-8abf-11d31795bf9b",\n"name": "Microsoft Azure VM AE1-SQL-MF-03 in UAE North",\n"private_ip_addr": "10.187.22.18",\n"short_name": "AE1-SQL-MF-03",\n"subscription_id": "4c4dd0f5-2676-46b1-8d0d-9670ec2b80d2",\n"type": "Microsoft Azure VM",\n"vm_name": "AE1-SQL-MF-03",\n"vm_type": "Microsoft Azure VM",\n"vm_uuid": "4ba34706-c3d7-4588-8abf-11d31795bf9b"\n}\n}` + } + }, + "Import.HCO_MSHYPERV": { + "handleHYPERVNode": { + snippets: ["${1:host_node}"], + description: `Handle a HCO OptimizeSystem node of HYPERV type` + }, + "handleHYPERVVM": { + snippets: ["${1:vm_node}"], + description: `Handle a HCO OptimizeSystem node of HYPERV VM type` + } + }, + "Import.HCO_SOLARIS": { + "handleLDOMNode": { + snippets: ["${1:host_node}"], + description: `Handle a HCO OptimizeSystem node of LDOM type` + }, + "handleZoneHostNode": { + snippets: ["${1:host_node}"], + description: `Handle a HCO OptimizeSystem node of Zone Host type` + } + }, + "Import.HCO_Storage": { + "handleStorageNode": { + snippets: ["${1:storage_node}"], + description: `Handle a HCO OptimizeSystem node of Storage type` + } + }, + "Import.HCO_VMW": { + "handleVMWCluster": { + snippets: ["${1:cluster_node}"], + description: `Handle a HCO OptimizeSystem node of VMWare Cluster type` + }, + "handleVMWNode": { + snippets: ["${1:host_node}"], + description: `Handle a HCO OptimizeSystem node of VMWare type` + }, + "handleVMWVM": { + snippets: ["${1:vm_node}"], + description: `Handle a HCO OptimizeSystem node of VMWare VM type` + } + }, + "Import.HCO_XEN": { + "handleXENNode": { + snippets: ["${1:host_node}"], + description: `Handle a HCO OptimizeSystem node of XEN type` + }, + "handleXENVM": { + snippets: ["${1:vm_node}"], + description: `Handle a HCO OptimizeSystem node of XEN VM type` + } + }, + "Import.MFNNMi": { + "findNetworkInterfaces": { + snippets: ["${1:root_device_entity}, ${2:entities_by_id}, ${3:rel_table}"], + description: `` + }, + "handleNode": { + snippets: ["${1:entity}, ${2:entities_by_external_id}, ${3:rel_table}"], + description: `Handle a MFNNMi Node entity.\nIncoming Nodes/Entities are mapped to Network Devices` + }, + "handleL2Connection": { + snippets: ["${1:l2connection_entity}, ${2:entities_by_external_id}, ${3:inferred_nodes}, ${4:all_ids_to_inferred_interfaces}, ${5:rel_table}"], + description: `Using the incoming l2connection, locate the two interfaces, and establish the appropriate relationship between those two interfaces` + }, + "handleEntities": { + snippets: ["${1:entities}, ${2:nodes_by_id}, ${3:rel_table}"], + description: `Handle a MFNNMi Entities\n\nWe only handle MFNNMi Nodes, mapped as NetworkDevices with IPAddress values assigned\nWe intentionally ignore any other data for now (e.g. Interfaces)` + }, + "handleRelationships": { + snippets: ["${1:entities}, ${2:entities_by_external_id}, ${3:inferred_nodes}, ${4:all_ids_to_inferred_interfaces}, ${5:rel_table}"], + description: `Build relationships.` + } + }, + "Import.MSSCOM": { + "msscomCiType2BMCCiType": { + snippets: ["${1:msscom_citype}"], + description: `msscomCiType2BMCCiType` + }, + "handle_AGENT": { + snippets: ["${1:entity}"], + description: `AGENT` + }, + "handle_HOST": { + snippets: ["${1:entity}"], + description: `Handle a HOST entity.` + }, + "handle_SOFTWAREINSTANCE": { + snippets: ["${1:entity}"], + description: `SOFTWAREINSTANCE` + }, + "handle_SOFTWARECOMPONENT": { + snippets: ["${1:entity}"], + description: `SOFTWARECOMPONENT` + }, + "handle_NETWORKINTERFACE": { + snippets: ["${1:entity}"], + description: `NETWORKINTERFACE` + }, + "handle_DATABASE": { + snippets: ["${1:entity}"], + description: `DATABASE` + }, + "handle_DBENGINE": { + snippets: ["${1:entity}"], + description: `DBEngine` + }, + "handle_GROUP": { + snippets: ["${1:entity}"], + description: `GROUP` + }, + "handle_INSTANCEGROUP": { + snippets: ["${1:entity}"], + description: `INSTANCE` + }, + "handle_DATABASEGROUP": { + snippets: ["${1:entity}"], + description: `DATABASEGROUP` + }, + "handle_FILE": { + snippets: ["${1:entity}"], + description: `FILE` + }, + "handle_DISKDRIVE": { + snippets: ["${1:entity}"], + description: `DRIVE` + }, + "handle_FILEGROUP": { + snippets: ["${1:entity}"], + description: `FILEGROUP` + }, + "handle_HOSTGROUP": { + snippets: ["${1:entity}"], + description: `HOSTGROUP` + }, + "handleEntity": { + snippets: ["${1:entity}"], + description: `Handle a MSSCOM Entity.` + }, + "nodeFromNodeSet": { + snippets: ["${1:node_set}"], + description: `Return a single node from node_set or void` + }, + "handleRelation": { + snippets: ["${1:relation}, ${2:nodes_by_id}, ${3:nodes_by_key}"], + description: `Build relationships.` + } + }, + "Import.NewRelic": { + "handle_APM_HOST": { + snippets: ["${1:entity}"], + description: `APM_HOST` + }, + "handle_APM_APPLICATION": { + snippets: ["${1:entity}"], + description: `APM_APPLICATION` + }, + "handle_APM_APPLICATION_INSTANCE": { + snippets: ["${1:entity}"], + description: `APM_APPLICATION_INSTANCE` + }, + "handle_INFRA_HOST": { + snippets: ["${1:entity}"], + description: `INFRA_HOST` + }, + "handle_NRQL_TRANSACTION": { + snippets: ["${1:entity}"], + description: `NRQL_TRANSACTION` + }, + "handle_DATABASE": { + snippets: ["${1:entity}"], + description: `DATABASE` + }, + "handleEntity": { + snippets: ["${1:entity}"], + description: `Handle entity` + }, + "handleRelation": { + snippets: ["${1:relation}, ${2:nodes_by_id}"], + description: `Build relationships.` + } + }, + "Import.OTel": { + "single": { + snippets: ["${1:items}"], + description: `Given a list from a key expression, return the first item or none if the list is empty.` + }, + "serviceFullyQualifiedName": { + snippets: ["${1:service_name}, ${2:namespace}"], + description: `Construct a fully qualified service name` + }, + "makeSpansTableKey": { + snippets: ["${1:service_name}, ${2:service_namespace}, ${3:span_name}"], + description: `Construct a key for the spans_table` + }, + "copyAttributes": { + snippets: ["${1:src}, ${2:dst}"], + description: `Copy all non-hidden and otel resered attributes from one item to another` + }, + "extractIpAddrs": { + snippets: ["${1:ip_addrs_str}"], + description: `Extract a list of ip addresses from an OTel host.ip formatted string` + }, + "extractMacAddrs": { + snippets: ["${1:mac_addrs_str}"], + description: `Extract a list of mac addresses from an OTel host.mac formatted string` + }, + "extractHost": { + snippets: ["${1:resource}"], + description: `Extract host details from a resource and create OTel_HOST` + }, + "extractNamespace": { + snippets: ["${1:resource}, ${2:namespace_table}"], + description: `Extract an ExternalElement with type = OTel_ServiceNamespace` + }, + "extractService": { + snippets: ["${1:resource}, ${2:namespace}, ${3:services_table}, ${4:service_to_k8s_pod_uid}"], + description: `Extract an ExternalElement with type = OTel_Service` + }, + "extractK8sPod": { + snippets: ["${1:resource}, ${2:otel_namespace}, ${3:k8s_pod_table}"], + description: `Extract an ExternalElement with type = "OTel K8s Pod"` + }, + "extractK8sDeployment": { + snippets: ["${1:resource}, ${2:otel_namespace}, ${3:k8s_deployment_table}"], + description: `Extract an ExternalElement with type = "OTel K8s Deployment"` + }, + "extractK8sStatefulSet": { + snippets: ["${1:resource}, ${2:otel_namespace}, ${3:k8s_statefulset_table}"], + description: `Extract an ExternalElement with type = "OTel K8s StatefulSet` + }, + "handle_Resource": { + snippets: ["${1:resource}, ${2:namespaces_table}, ${3:services_table}, ${4:k8s_pod_table}, ${5:k8s_deployment_table}, ${6:k8s_statefulset_table}, ${7:service_to_k8s_pod_uid}"], + description: `Handle a resource` + }, + "handle_ServiceDependency": { + snippets: ["${1:services_table}, ${2:service_to_k8s_pod_uid}, ${3:service_dependency}"], + description: `Handle service dependency` + }, + "handle_k8s_dependencies": { + snippets: ["${1:services_table}, ${2:service_dependency}"], + description: `Handle an handle_k8s_dependencies` + } + }, + "Import.ServiceNow": { + "single": { + snippets: ["${1:items}"], + description: `Given a list from a key expression, return the first item or\nnone if the list is empty.` + }, + "getDisplayValue": { + snippets: ["${1:atts}, ${2:field}"], + description: `Get the display_value field from an object in the ServiceNow Attributes object` + }, + "findIpAddresses": { + snippets: ["${1:entity}, ${2:rel_table}, ${3:entities_by_id}"], + description: `Search for cmdb_ci_ip_address entities via 'Owns::Owned by' relationship.\nIf none found, use entity.attributes.ipAddress` + }, + "handle_cmdb_ci_appl": { + snippets: ["${1:entity}"], + description: `cmdb_ci_appl` + }, + "handle_cmdb_ci_app_server": { + snippets: ["${1:entity}"], + description: `cmdb_ci_app_server` + }, + "handle_cmdb_ci_db_instance": { + snippets: ["${1:entity}"], + description: `cmdb_ci_db_instance` + }, + "handle_import_software_component": { + snippets: ["${1:entity}"], + description: `Handle SoftwareComponents` + }, + "handle_cmdb_ci_application_cluster": { + snippets: ["${1:entity}"], + description: `cmdb_ci_application_cluster` + }, + "handle_cmdb_ci_esx_server": { + snippets: ["${1:entity}, ${2:rel_table}, ${3:nodes_by_id}, ${4:entities_by_id}"], + description: `Handle cmdb_ci_esx_server` + }, + "handle_cmdb_ci_server": { + snippets: ["${1:entity}, ${2:rel_table}, ${3:nodes_by_id}, ${4:entities_by_id}"], + description: `cmdb_ci_server` + }, + "handle_cmdb_ci_cluster": { + snippets: ["${1:entity}"], + description: `cmdb_ci_cluster` + }, + "handle_import_database": { + snippets: ["${1:entity}"], + description: `Handle import_database` + }, + "handle_cmdb_ci_lb_service": { + snippets: ["${1:entity}"], + description: `cmdb_ci_lb_service` + }, + "handle_cmdb_ci_lb": { + snippets: ["${1:entity}"], + description: `cmdb_ci_lb` + }, + "handle_cmdb_ci_lb_pool": { + snippets: ["${1:entity}"], + description: `cmdb_ci_lb_pool` + }, + "handle_cmdb_ci_lb_pool_member": { + snippets: ["${1:entity}"], + description: `cmdb_ci_lb_pool_member` + }, + "handle_cmdb_ci_netgear": { + snippets: ["${1:entity}, ${2:rel_table}, ${3:entities_by_id}"], + description: `cmdb_ci_netgear Children include ip_router, ip_switch, etc.` + }, + "handle_cmdb_ci_network_adapter": { + snippets: ["${1:entity}, ${2:rel_table}, ${3:nodes_by_id}"], + description: `cmdb_ci_network_adaptor` + }, + "handle_cmdb_ci_service": { + snippets: ["${1:entity}"], + description: `cmdb_ci_service and children\n` + }, + "handle_import_storage_system": { + snippets: ["${1:entity}, ${2:rel_table}, ${3:entities_by_id}"], + description: `import_storage_system` + }, + "handle_cmdb_ci_vmware_instance": { + snippets: ["${1:entity}, ${2:rel_table}, ${3:nodes_by_id}"], + description: `Handle cmdb_ci_vmware_instance.` + }, + "findEsxHostsForVCenter": { + snippets: ["${1:vcenter_external_id}, ${2:rel_table}, ${3:nodes_by_id}"], + description: `Starting at a vCenter, search ServiceNow relations\ncmdb_ci_vcenter Manages::Managed By to cmdb_ci_vcenter_datacenter\ncmdb_ci_vcenter_datacenter Contains::Contained by to cmdb_ci_vcenter_network\ncmdb_ci_vcenter_network Provided By::Provides to cmdb_ci_esx_server` + }, + "handle_cmdb_ci_vcenter": { + snippets: ["${1:entity}, ${2:rel_table}, ${3:nodes_by_id}"], + description: `cmdb_ci_vcenter` + }, + "handle_cmdb_ci_cluster_member": { + snippets: ["${1:entity}"], + description: `handle_cmdb_ci_cluster_member` + }, + "handle_cmdb_ci_cluster_vip": { + snippets: ["${1:entity}"], + description: `handle_cmdb_ci_cluster_vip` + }, + "handleEntity": { + snippets: ["${1:entity}, ${2:nodes_by_id}, ${3:host_nodes}, ${4:vm_nodes}, ${5:rel_table}, ${6:entities_by_id}"], + description: `Handle a ServiceNow Entity.` + }, + "handleHostEntities": { + snippets: ["${1:entities}, ${2:rel_table}, ${3:nodes_by_id}, ${4:entities_by_id}"], + description: `Handle host entities` + }, + "handleVmEntities": { + snippets: ["${1:entities}, ${2:rel_table}, ${3:nodes_by_id}, ${4:entities_by_id}"], + description: `Handle VM entities` + }, + "handleRelation": { + snippets: ["${1:relation}, ${2:nodes_by_id}, ${3:rel_table}, ${4:entities_by_id}"], + description: `Create relationships.` + } + }, + "Import.SolarWinds": { + "handleVH": { + snippets: ["${1:entity}"], + description: `Handle an ESXi Host entity.\n\nReturns ESXi host.` + }, + "handleVVM": { + snippets: ["${1:host}, ${2:entity}"], + description: `Handle a VirtualMachine entity.` + }, + "handleVC": { + snippets: ["${1:entity}, ${2:version}"], + description: `Handle a vCenter Host entity.\n\nReturns vCenter Server Software Instance` + }, + "handleHost": { + snippets: ["${1:entity}"], + description: `Handle a Host entity.` + } + }, + "Import.SolarWinds2": { + "handleVH": { + snippets: ["${1:entity}"], + description: `Handle an ESXi Host entity.\n\nReturns ESXi host.` + }, + "handleVVM": { + snippets: ["${1:host}, ${2:entity}"], + description: `Handle a VirtualMachine entity.` + }, + "handleVC": { + snippets: ["${1:entity}, ${2:version}"], + description: `Handle a vCenter Host entity.\n\nReturns vCenter Server Software Instance` + }, + "handleHost": { + snippets: ["${1:entity}"], + description: `Handle a Host entity.` + } + }, + "Import.StreamWeaver": { + "isInstanceOf": { + snippets: ["${1:full_type}, ${2:typ}"], + description: `Determine if an import record represents a type\nby searching _meta_full_type` + }, + "isInstanceOfCategory": { + snippets: ["${1:typ}, ${2:category_table}, ${3:category}"], + description: `Determine if type is listed under the category entry in the category_table` + }, + "isEntityInCategory": { + snippets: ["${1:entity}, ${2:category_table}, ${3:category}"], + description: `Determine if an entity's type is listed under the category entry in the category_table` + }, + "isRelTypeAndSrcDstInstanceOf": { + snippets: ["${1:rel}, ${2:rel_type}, ${3:src_type}, ${4:dst_type}"], + description: `Returns true if rel has type rel_type and\nthe source type is an instance of src_type and\nthe destination type is an instance of dst_type` + }, + "handleDeletion": { + snippets: ["${1:external_id}"], + description: `Process deletion.` + }, + "handleDeletions": { + snippets: ["${1:deletions}"], + description: `Process deletions.\n\nEach entry in deletions must have \`_meta_external_id\` as per standard StreamWeaver structure.` + }, + "validateRelationshipSearchResults": { + snippets: ["${1:type}, ${2:from_nodes}, ${3:to_nodes}"], + description: `Validate Relation Search Results.` + }, + "searchAllByExternalId": { + snippets: ["${1:external_id}, ${2:nodes_by_id}"], + description: `Search for a node by external_id.\nFirst search in the nodes_by_id table, then in the database.` + }, + "buildEntitiesById": { + snippets: ["${1:entities}"], + description: `converts a list of entites into table of enties keyed by _meta_external_id` + }, + "addRelationToTableForDirection": { + snippets: ["${1:direction}, ${2:external_id}, ${3:rel}, ${4:by_external_id}"], + description: `Private: Adds a relation to a three level nested table.\n\nouter table is keyed by external_id\n2nd level table is keyed by "incoming" or "outgoing"\n3rd level table is keyed by relation type with a list of relations as the value\n\nexternal_id ->\n"incoming" | "outgoing" ->\nrelation_type -> relations` + }, + "buildRelationsTable": { + snippets: ["${1:relations}"], + description: `converts a list of relations to a three level nested table.\n\nouter table is keyed by external_id\n2nd level table is keyed by "incoming" or "outgoing"\n3rd level table is keyed by relation type with a list of relations as the value\n\nexternal_id ->\n"incoming" | "outgoing" ->\nrelation_type -> relations` + }, + "targetExternalId": { + snippets: ["${1:direction}, ${2:rel}"], + description: `Given a direction and relation object, return the target external ID` + }, + "isEntityInstanceOf": { + snippets: ["${1:entity}, ${2:typ}"], + description: `Determine if an import record represents a type\nby searching entity._meta_fullType` + }, + "findTargetExternalIds": { + snippets: ["${1:external_id}, ${2:direction}, ${3:rel_type}, ${4:other_type}, ${5:rel_table}"], + description: `Search incoming relations for a node given a starting reference (external_id), a direction, a relation type and an optional destination type,` + }, + "findTargetNodes": { + snippets: ["${1:external_id}, ${2:direction}, ${3:rel_type}, ${4:dst_type}, ${5:rel_table}, ${6:nodes_by_id}"], + description: `Find a list of nodes given a starting reference (external_id), a direction, a relation type and an optional destination type` + }, + "findTargetEntities": { + snippets: ["${1:external_id}, ${2:direction}, ${3:rel_type}, ${4:dst_type}, ${5:rel_table}, ${6:entities_by_id}"], + description: `Find a list of entities given a starting reference (external_id), a direction, a relation type and an optional destination type` + }, + "logHandling": { + snippets: ["${1:handleFunction}, ${2:entity}"], + description: `Log details for handle_XXX functions` + }, + "dumpRelationsTable": { + snippets: ["${1:rel_table}"], + description: `Log the contents of the relations table to the log. Useful for debugging` + }, + "dumpRelations": { + snippets: ["${1:relations}, ${2:prefix}"], + description: `Log a list of relations (for debugging)` + }, + "dumpNodesById": { + snippets: ["${1:nodes_by_id}, ${2:prefix}"], + description: `Log the nodes_by_id table (for debugging)` + } + }, + "Import.TSOM": { + "importBusinessService": { + snippets: ["${1:imported}"], + description: `Import TSOM BusinessService data from imported node.\n\nReturns ident string, ModelDefinition node.` + }, + "importGeneric": { + snippets: ["${1:imported}"], + description: `Import TSOM data as a GenericElement node.\n\nReturns ident string, node.` + }, + "findExisting": { + snippets: ["${1:imported}"], + description: `Find an existing node corresponding to the imported node.\n\nReturns [ident string, node] or [none, none].` + }, + "importRelationship": { + snippets: ["${1:imported}, ${2:source}, ${3:dest}"], + description: `Import relationship info.` + } + }, + "Import.VROPS": { + "handle_VirtualCenterServer": { + snippets: ["${1:entity}"], + description: `VMware vCenter Server.\nWe only get VMwareAdapter Instance details from which we infer SI and Host node.` + }, + "handle_cluster": { + snippets: ["${1:entity}, ${2:root_nodes}, ${3:si_nodes}"], + description: `parameters:\nentity - import record\nroot_nodes - vCennter Server hosts.\nsi_nodes - vCenter Adapter instance (Software Instance) to get vCenter SI node to link clusters to - may be none if no SI exists` + }, + "handle_fileSystem": { + snippets: ["${1:entity}, ${2:esx_host}"], + description: `Handle a Vrops DataStore as Filesystem.` + }, + "handle_HostSystem": { + snippets: ["${1:entity}, ${2:properties}"], + description: `Handle a HOST entity.` + }, + "handle_VirtualMachine": { + snippets: ["${1:entity}, ${2:properties}, ${3:host}"], + description: `Handle a Vrops VirtualSystem` + }, + "handleEntity": { + snippets: ["${1:entity}, ${2:vc_si_nodes}"], + description: `Handle a VROPS Entity.` + }, + "handleEntityVVM": { + snippets: ["${1:esx_host}, ${2:entity}"], + description: `Handle a VROPS Entity.` + }, + "handleRelationship": { + snippets: ["${1:relation}, ${2:nodes_by_meta_external_id}"], + description: `Build relationships. between Host and VM` + }, + "handleClusterHostRelationship": { + snippets: ["${1:relation}, ${2:host_nodes}, ${3:cluster_nodes}"], + description: `Build Cluster Host HostContainement relationships.` + }, + "handleFileSystemHostRelationship": { + snippets: ["${1:relation}, ${2:host_nodes}, ${3:filesystem_nodes}"], + description: `Build filesystem_nodes(Datastore) Host File Sysytem Mount relationships.` + } + }, + "Import.Zabbix": { + "single": { + snippets: ["${1:items}"], + description: `Given a list from a key expression, return the first item or\nnone if the list is empty.` + }, + "handleHost": { + snippets: ["${1:entity}"], + description: `Handle a Zabbix Host entity.` + }, + "handleEntity": { + snippets: ["${1:entity}"], + description: `Handle a Zabbix Entity.` + } + }, + "Inedo.ProGet": { + }, + "InfiniBox_Storage": { + "scan": { + snippets: ["${1:discovery_access}, ${2:parent}"], + description: `Perform a storage scan on the given storage device\n\n2023-01-18 Added attributes Status and Status Detail\nto storage system (DRDC1-19552)\n2024-04-16 Added hidden attribute __capability_ids for TKU_2024_07_01\n(DRDC1-23319)\n2024-07-12 Added the attribute dns_domain\nto storage system / storage device (DRDC1-24057)` + } + }, + "InfluxData.InfluxDB": { + "parseInstallRoot": { + snippets: ["${1:host}, ${2:process}"], + description: `Determine the InfluxDB install root and a runnable path for 'influxd'\nbased on the discovered process command.` + }, + "parseConfigFile": { + snippets: ["${1:host}, ${2:install_root}"], + description: `Parse 'influxd.config' output to determine whether HTTP/HTTPS are enabled\nand which bind port is configured.\n\nChange History:\n2026-04-14 - Updated escape sequence (DRDC1-29309)` + } + }, + "Informatica.PowerCenter": { + "path_versioning": { + snippets: ["${1:host}, ${2:process}"], + description: `Obtain path versioning for both Windows and UNIX platforms\n\nChange History:\n2026-04-14 - Updated escape sequence (DRDC1-29309)` + }, + "file_versioning": { + snippets: ["${1:host}, ${2:version_file_path}, ${3:sep}"], + description: `Performs file versioning given path to version.txt\n\nChange History:\n2017-11-16 - Improved efficiency of version regex\n2019-08-22 - Updated to include hotfix number (DRDC1-13755)` + } + }, + "Informatica.UltraMessaging": { + }, + "Informatica.VibeDataStream": { + }, + "Ingres.IngresRDBMS": { + }, + "innovasGmbH.Kolibri": { + }, + "innovasGmbH.Kolumbus": { + }, + "innovas.Kolumbus_Software": { + }, + "Intel.HAXM": { + }, + "Intel.Unite": { + "active_versioning": { + snippets: ["${1:host}, ${2:process}"], + description: `active_versioning performs active versioning` + }, + "package_versioning": { + snippets: ["${1:host}, ${2:si_type}"], + description: `package_versioning performs package versioning` + } + }, + "InterSectAlliance.SnareAgent": { + }, + "IPsec": { + }, + "Isilon.OneFS": { + }, + "Isilon_Storage": { + "updateStoragePools": { + snippets: ["${1:host}, ${2:cmd_locations}, ${3:storage_sys}"], + description: `Create and update a storage pool for each pool and link\nto storage system. The supplied pool_nodes table is updated\nwith the created nodes, keyed by pool name.` + }, + "updateDiskDrives": { + snippets: ["${1:host}, ${2:cmd_locations}, ${3:storage_sys}"], + description: `Create and update the disk drive and link to storage system.\nThe supplied disk_nodes table is updated with the created nodes,\nkeyed by disk name.\n\nHistory\n\n2017-06-27 - Added disk drive location on the disk drive node\nfor TKU_2017_07_01 (DRDC1-8407)\n2018-02-28 - Add vendor and manufacturer information on the disk\ndrive nodes for TKU_2018_03_01 (DRDC1-10855)\n2026-04-09 - Updated escape sequence (DRDC1-29309)` + }, + "getFileSystemSizes": { + snippets: ["${1:fPath}, ${2:onefs}, ${3:quotas_capacities}"], + description: `Keine Beschreibung verfügbar.` + }, + "findOneFS": { + snippets: ["${1:host}"], + description: `Find the OneFS filesystem in the given host node\nusing the conditions below:\nfs_kind: 'LOCAL'\nfs_name: 'OneFS'\nfs_type different from [none, '', 'tmpfs', 'devtmpfs']` + }, + "getQuotasCapacities": { + snippets: ["${1:host}, ${2:cmd_locations}"], + description: `Run the "/usr/bin/isi quota quotas list" command on the given host,\nparse and return the information.\nThis call will return an empty table if the "/usr/bin/isi quota\nquotas list" command fails.\n\nChange History:\n2026-04-09 - Updated escape sequence (DRDC1-29309)` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:parent}, ${3:host}, ${4:cmd_locations}, ${5:ISILON_CLUSTER}"], + description: `Perform a storage scan on the given host.` + } + }, + "Isilon_Storage_REST": { + "oneFSSupportsAddressAttributes": { + snippets: ["${1:major}, ${2:minor}"], + description: `Keine Beschreibung verfügbar.` + }, + "getResumeToken": { + snippets: ["${1:response}"], + description: `Check for the resume value in the json node\nIf not, return none else return the resume value` + }, + "updateDiskDrives": { + snippets: ["${1:isilon_node_records}, ${2:storage_system_nodes}"], + description: `Create and update the disk drive and link to storage system\n\nChange History:\n2019-12-04 - Updated in order to use functions from the\nJSONFunctions module;\n2020-04-21 - Updated in order to calculate the total_disk_space\nattribute value correclty (DRDC1-15066)` + }, + "getFileSystemSizes": { + snippets: ["${1:fs_path}, ${2:cluster_node}, ${3:quota_capacities}"], + description: `Keine Beschreibung verfügbar.` + }, + "getIPAddrsInRange": { + snippets: ["${1:low_addr}, ${2:high_addr}, ${3:ip_addrs}"], + description: `Get the IPv4 addr defined within the range and\nupdate the ip_addrs list.\n\nsc service_addrs: SmartConnect Basic only supports 2 SmartConnect\nservice IPs as range.\n\noutput:\n\n"sc_service_addrs" :\n[\n{\n"high" : "172.26.14.192",\n"low" : "172.26.14.192"\n},\n{\n"high" : "172.26.14.193",\n"low" : "172.26.14.192"\n}\n],\n` + } + }, + "ITPIE.Suite": { + }, + "ITRS.Geneos": { + "getAttrsFromProcess": { + snippets: ["${1:process}"], + description: `Get attributes from DiscoveredProcess node\n\nTakes : DiscoveredProcess node\nReturns : Install_root (string),\nPort (integer)` + }, + "getNameAttr": { + snippets: ["${1:process}"], + description: `Search all other Geneos processes on the host ascertain what is the best\nattribute for humans to use to distinguish this SI from others. This\ncould be port, install_root or username. We'll report this attribute\nin the name\n\nThis function is not intended to discover what attributes to put in the\nSI key. It is about how humans distinguish between two SIs, not how a\ncomputer does\n\nIf no key value is needed because there is only one Geneos process\nthe functions returns ""\n\nIf it is impossible to find a way to uniquely identify the SI the\nfunctions returns ""\n\nTakes : Trigger process node\nReturns : Key value - port, install_root or username` + } + }, + "J2EE.InferredModel": { + "getImplementationAttrs": { + snippets: ["${1:host}, ${2:installation_paths}"], + description: `The function runs command which searches in\n'/META-INF/MANIFEST.MF' files 'Implementation-Title' and 'Implementation-Version' values\nto obtain respectively name and version of the product, embedded in the application.\nIf product name was not extracted, it also deploys another command, as backup method, which reads\n'display-name' value of '/WEB-INF/web.xml' files.\nAs 'display-name' can be changed during the manual application installation, this method is not used as a primary one.\n\nThe function returns the COMMANDS RESULTS. The example of the output is presented in ImplementationAttrsExtraction function's body below.\n\nPlease also check ExtendedTomcatDiscovery, ExtendedWebSphereDiscovery, MF_WebSphere_Details,\nJ2EEWebLogicConfigFileParsing and ExtendedWebLogicDiscovery TPL modules when modyfing this function.\n\nChange History:\n2014-08-26 - Commands to obtain manifest.mf and web.xml updated for QM001853407;\n2014-10-13 - Commands to obtain manifest.mf and web.xml updated (TKU-2413);\n2016-02-08 - Use PRIV_CAT if cat fails (DRDC1-5582)\n2016-05-03 - Bug fix with creation of privileged commands (DRDC1-6120)\n2016-05-24 - Bug fix, installed_product_name is missing in tomcat software components. (DRDC1-6272)\n2016-08-05 - Implemented new common function runUnixCommand()\n2017-05-18 - fixed bug in xml_cmd_root creation(DRDC1-8676)\n2019-03-05 - Updated to use escapePath function\n2020-01-03 - Updated checks on Windows hosts (DRDC1-14451)\n2020-06-23 - Modified command to run on Windows hosts (DRDC1-14754)\n2021-10-14 - Commands on scanner and consolidator could have different\nsequence of arguments, which are calculated dynamically.\nThis is affected by timings, which are different for scanner\nand consolidator. Sorting the list of arguments to make the\ncommands equal for both (DRDC1-17561)\n2025-02-09 - Enhancement for active command (DRDC1-25581)` + }, + "ImplementationAttrsExtraction": { + snippets: ["${1:host}, ${2:manifest_cmd_result}, ${3:xml_cmd_result}, ${4:installation_path}, ${5:sep}, ${6:single}"], + description: `The function parses getImplementationAttrs() output against provided application installation path.\nThen it returns name and version of the product, embedded in the application.\n\nPlease also check ExtendedTomcatDiscovery, ExtendedWebSphereDiscovery, MF_WebSphere_Details,\nJ2EEWebLogicConfigFileParsing and ExtendedWebLogicDiscovery TPL modules when modifying this function\n\nChange History:\n2014-11-07 - Certain characters in installation_path now escaped before variable embedded in regex (Esc 066149)\n2015-06-11 - Added '(' and ')' as another characters for installation_path normalization\n2020-07-21 - Updated installation_path escape sequence to include Unix platforms (DRDC1-15498)\n2020-10-20 - Better handling of case where no installation_path is passed (DRDC1-15968)\n2022-01-05 - Improve regex to extract version (DRDC1-18128)` + }, + "getNonWhitespaceElementList": { + snippets: ["${1:node_values}"], + description: `Takes a parameter node_values which is a list of nodes and returns a list of non white space nodes present in the list` + }, + "OptionalAttributes": { + snippets: ["${1:j2ee_si}, ${2:doc}"], + description: `Obtain and assign some WebLogic attributes such as:\n* listen_tcp_sockets\n* listening_ports\n* cluster_communication_socket\n\nChange History:\n2016-03-02 - 'multicast_address', 'multicast_port' attributes together with unicast address and port details\nwere changed to 'cluster_communication_socket' attribute\n'listen_address' was changed to 'listen_tcp_sockets'\n'listen_port' and 'ssl_listen_port' were moved to 'listening_ports' list\naccording to WebLogic Base Discovery pattern changes;\n2026-04-14 - Updated escape sequence (DRDC1-29309)` + }, + "createComponent": { + snippets: ["${1:j2ee_si}, ${2:type}, ${3:app}, ${4:primary_node}, ${5:running_state}, ${6:installed_product}, ${7:installed_product_ver}, ${8:installation_path}"], + description: `Create/confirm software components nodes.\nTakes arguments:\nj2ee_si - J2EE Application Server SI\ntype - Application SoftwareComponent type\napp - Application name\nprimary_node - Primary Inference Node for the current Application SoftwareComponent\nrunning_state - Demonstrates if the Application is currently running or not.\n(used by IBM WebSphere, Mainframe WebSphere Extended Discovery pattern)\ninstalled_product - The name of the product which is embedded within the Application\ninstalled_product_ver - Version of the product embedded within the Application\ninstallation_path - Application installation directory on the host\n\nReturns:\nkey - The key of the created SoftwareComponent\nnode - Application SoftwareComponent Node\n\nChange History:\n2013-03-26 - Added "__installation_path", "__installed_product_name" and "__installed_product_version" attributes to the SoftwareComponent(TKU-1768);\n2015-01-26 - updated "installed_product_name", "installed_product_version", "installation_path" attributes. Now they are not hidden(TKU-2887)\n2016-01-20 - now Containment link is added to SoftwareCluster Node instead of Application Server SI if it is clustered\nadded short_name attribute\n2016-03-15 - Updated for proper linking of WebLogic Applications\n2016-09-02 - updated "short_name" attribute\n2017-04-20 - replaced stop with return (DRDC1-8585)\n2018-10-18 - Added display attributes (DRDC1-12060)\n2025-05-01 - Add unhashed_key to SoftwareComponent nodes\n\nNOTE: Please also check ExtendedTomcatDiscovery, ExtendedWebSphereDiscovery, MF_WebSphere_Details,\nJ2EEWebLogicConfigFileParsing and ExtendedWebLogicDiscovery TPL modules when modyfing this function` + }, + "parseApplications": { + snippets: ["${1:j2ee_si}, ${2:result}, ${3:parent_xpath}, ${4:doc}"], + description: `Parse the XML and create/confirm J2EE applications.\nSoftware Component Nodes are created for each one and related\nto the application server SI\n\nChange History:\n2017-04-24 - added check for key value before adding it to the list (DRDC1-8585);` + }, + "searchForCluster": { + snippets: ["${1:j2ee_si}, ${2:primary_node}, ${3:jndi_name}"], + description: `The function searches for SoftwareCluster nodes which contain\nthe current Application Server SI node.\n\nReturns the SoftwareCluster node if any or J2EE SI or none.\n\nChange History:\n2016-03-15 - Updated for proper linking of WebLogic Applications\n2026-04-14 - Updated escape sequence (DRDC1-29309)` + }, + "setNameForDetail": { + snippets: ["${1:j2ee_si}, ${2:prefix}, ${3:attribute}, ${4:port}"], + description: `The function sets the Detail name using provided attributes\n\nTakes:\nj2ee_si - The SI name of the J2ERE application\nprefix - For example "JDBC Resource" or "Java Mail Resource"\nattribute - A name which we use to distinguish between instances\n(e.g. mailserver_name)\ndb_port (optional)\n\nReturns:\nThe name of the detail node\n\nChange History:\n2021-08-02 - Add port information (DRDC1-16194)\nRemove unnecessary words from name\nGeneral tidying` + }, + "createDBDetail": { + snippets: ["${1:j2ee_si}, ${2:jndi_name}, ${3:type}, ${4:db_jdbcurl}, ${5:primary_node}, ${6:db_type}, ${7:db_hostname}, ${8:db_ipaddress}, ${9:db_port}, ${10:db_name}, ${11:db_orasid}, ${12:tns_alias}, ${13:service_name}"], + description: `Create/confirm detail nodes.\n\nChange History:\n2014-02-12 - Added service_name attribute for Oracle JDBC Details;\n2016-01-20 - now link is created from Detail to SoftwareCluster Node instead of Application Server SI if it is clustered\ncommon code was moved to setNameForDetail() function\n2016-03-02 - key is updated(DRDC1-5752)\n2017-04-20 - replaced stop with return (DRDC1-8585)\n2025-05-01 - Add unhashed_key to Detail nodes\n2025-07-21 - Add DB Hostname or IP into the key for Cluster or Load Balance setup (DRDC1-26795)` + }, + "parseDatabases": { + snippets: ["${1:j2ee_si}, ${2:result}, ${3:server_xpath}, ${4:parent_xpath}, ${5:doc}"], + description: `Parse the EDM XML result and create/confirm J2EE databases.` + }, + "createMailDetail": { + snippets: ["${1:j2ee_si}, ${2:jndi_name}, ${3:type}, ${4:mailserver_name}, ${5:mailserver_url}, ${6:primary_node}"], + description: `Create/confirm detail nodes.\n\nChange History:\n2016-01-20 - now link is created from Detail to SoftwareCluster Node instead of Application Server SI if it is clustered\ncommon code was moved to setNameForDetail() function\n2017-04-20 - replaced stop with return (DRDC1-8585)\n2025-05-01 - Add unhashed_key to Detail nodes` + }, + "parseMailservers": { + snippets: ["${1:j2ee_si}, ${2:result}, ${3:server_xpath}, ${4:parent_xpath}, ${5:doc}"], + description: `Parse the XML and create/confirm J2EE Mailservers.\n\nChange History:\n2017-04-24 - added check for key value (DRDC1-8585);` + }, + "createCustomDetail": { + snippets: ["${1:j2ee_si}, ${2:jndi_name}, ${3:type}, ${4:resource_type}, ${5:primary_node}"], + description: `Create/confirm detail nodes.\n\nChange History:\n2016-01-20 - now link is created from Detail to SoftwareCluster Node instead of Application Server SI if it is clustered\ncommon code was moved to setNameForDetail() function\n2025-05-01 - Add unhashed_key to Detail nodes` + }, + "createApplicationResourceDependency": { + snippets: ["${1:app_si}, ${2:res_si}"], + description: `Create/confirm relationship between application and resource nodes.` + }, + "removeOldDetails": { + snippets: ["${1:j2ee_si}, ${2:types}, ${3:keys}"], + description: `Remove old detail nodes with the specified types if the keys\nare no in the provided list.` + }, + "removeOldSoftwareComps": { + snippets: ["${1:j2ee_si}, ${2:types}, ${3:keys}"], + description: `Remove old Software Component nodes with the specified types if the keys\nare not in the provided list.` + }, + "getRunningState": { + snippets: ["${1:state}"], + description: `Convert runningState attribute value to taxonomy value.` + } + }, + "J2EE.WeblogicConfigFileParsing": { + "OptionalAttributes": { + snippets: ["${1:host}, ${2:server_si}, ${3:config_xml}, ${4:old_format}"], + description: `Parse config.xml and obtain/assign to WLS Server SI\nsome optional attributes such as:\n* cluster_name\n* listen_tcp_sockets\n* listening_ports\n* cluster_communication_socket\n* cluster_messaging_mode\n\nChange History:\n2013-05-14 - Added support of cluster messaging mode information (QM001787888),\nXpath queries enhanced to work properly with multi-line values\n2016-03-02 - 'multicast_address', 'multicast_port' attributes together with unicast address and port details\nwere changed to 'cluster_communication_socket' attribute\n'listen_address' was changed to 'listen_tcp_sockets'\n'listen_port' and 'ssl_listen_port' were moved to 'listening_ports' list\naccording to WebLogic Base Discovery pattern changes;\nadded 'old_format' variable which determines the xml format the function deals with\n2017-01-24 - updated parseConfigXml() arguments list` + }, + "getDeploymentNode": { + snippets: ["${1:server_si}, ${2:config_xml}, ${3:targets_string}"], + description: `The function determines the Resource Node's target Node (either cluster or standalone SI)\n\nTakes arguments:\nserver_si - WebLogic Server SoftwareInstance Node\nconfig_xml - config.xml file content\ntargets_string - Comma separated list of deployment target Node names(clusters, WL servers, WL virtual hosts)\n\nReturns:\n- SoftwareInstance Node or SoftwareCluster Node\n- 'none' if the target SoftwareInstance Node is linked to multiple clusters(invalid configuration)\nor it is out of the deployment scope` + }, + "processDatabases": { + snippets: ["${1:server_si}, ${2:config_xml}, ${3:config_filename}, ${4:host}, ${5:old_format}"], + description: `Read config.xml file of target Weblogic server and model JDBC information based on it\n\nChange History:\n2013-05-16 - Xpath queries were enhanced to deal safely with multi-line values;\n2014-02-12 - Updated ParsingJ2EE.parseJDBC() function usage,\nadded service_name attribute for Oracle JDBC Details(QM001818485);\n2015-05-15 - Updated the parseJDBC() function module name(TKU-3879);\n2016-03-15 - moved common code to a new function;\nadded 'old_format' variable to display the xml format\nnow the JDBC Resources are properly linked to either WL cluster or standalone SI\n2016-08-31 - Updated function names according to the CommonFunctions changes(DRDC1-6073)\n2017-04-24 - Added check for node value before adding it to the list (DRDC1-8585)` + }, + "processApplications": { + snippets: ["${1:server_si}, ${2:config_xml}, ${3:sep}, ${4:config_file}, ${5:old_format}"], + description: `Parse config.xml and create/confirm J2EE applications.\nSoftware Component Nodes are created for each one and related\nto the application server SI\n\nChange History:\n2013-03-26 - Added "__installation_path", "__installed_product_name" and\n"__installed_product_version" attributes to the SoftwareComponent(TKU-1768)\n2013-04-23 - Virtual-host deployment support was enhanced\nto support virtual-hosts targeting to server (QM001788735),\nXPath queries enhanced to work properly with multi-line values.\n2013-07-24 - now "primary_node" attribute for createComponent() function is sent properly (TKU-1896);\n2015-06-15 - Updated app_locations extraction;\n2016-03-15 - moved common code to a new function;\nadded 'old_format' variable to display the xml format\nnow Application SCs are properly linked to either WL cluster or standalone SI\n2017-04-24 - Added check for node value before adding it to the list (DRDC1-8585)` + }, + "processMailservers": { + snippets: ["${1:server_si}, ${2:config_xml}, ${3:old_format}"], + description: `Parse the config file and create/confirm J2EE Mailservers.\n\nChange History:\n2013-05-14 - Xpath enhanced to work properly with multi-line values.\n2016-03-15 - moved common code to a new function;\nadded 'old_format' variable to display the xml format\nnow the JDBC Resources are properly linked to either WL cluster or standalone SI\n2017-04-24 - Added check for node value before adding it to the list (DRDC1-8585)` + }, + "processJMS": { + snippets: ["${1:server_si}, ${2:config_xml}, ${3:config_filename}, ${4:host}"], + description: `Read config.xml file of target Weblogic server and model JMS information based on it\n\nChange History:\n2025-07-30 - Added MQ connection factories resources (DRDC1-26566)\n2026-04-14 - Updated escape sequence (DRDC1-29309)` + } + }, + "Jamf": { + "skipEmpty": { + snippets: ["${1:value}, ${2:default_value}"], + description: `Returns 'value' if it is not empty, otherwise returns 'default_value'.` + }, + "doRequest": { + snippets: ["${1:target}, ${2:url}"], + description: `Does GET request for \nReturns decoded result (list), link for the next request (pagination),\nand DiscoveredAPIResult node.\nReturns (none, none, result) on error.` + }, + "getPersons": { + snippets: [""], + description: `Get all Person nodes and return a table mapping\nperson username to Person node.` + }, + "processDevices": { + snippets: ["${1:ds}, ${2:decoded_response}"], + description: `Process the decoded response from Jamf API and create/update\nHost and Person nodes. Creates Ownership relationships between\nPerson and Host, and adds external IDs.\n\nChange History:\n2026-07-23 - Added handling for double quotes in device names\n- Added management ID as external ID (DRDC1-30323)` + }, + "importDevices": { + snippets: ["${1:ds}, ${2:url}"], + description: `Does REST API call to fetch managed devices, processes the response,\nand confirms the DiscoveredAPIResult. If pagination exists, adds\nmetadata for worker pattern to continue.` + } + }, + "Janea.Memurai": { + }, + "JavaVM": { + "removeSetlocaleWarning": { + snippets: ["${1:host}, ${2:output}"], + description: `Corrects the output of a command by discarding any line that relates to\na setlocale warning` + }, + "tidyCommandOutput": { + snippets: ["${1:host}, ${2:output}"], + description: `Tidies the output of the ran_pub_cmd command by intelligently removing\nnew lines and carriage returns and joining bits of line back together\n\nChange History:\n2026-04-14 - Updated escape sequence (DRDC1-29309)` + } + }, + "Joram": { + }, + "JSONFunctions": { + "getAttributeValue": { + snippets: ["${1:json_node}, ${2:attribute}"], + description: `Return the value of a json attribute.\nif not found return void` + }, + "buildAttributeLookup": { + snippets: ["${1:json_node}, ${2:requested_attributes}"], + description: `Build a lookup table for the requested attributes of a json node\nRegarding the requested attributes, if an attribute has no value\nSet its value to void.\n\n{\n"active": true,\n"quiesced": false,\n"status": "optimal",\n"controllerRef": "070000000000000000000001",\n"manufacturer": "NETAPP ",\n"manufacturerDate": "1506729600",\n"appVersion": "08.40.00.01",\n"bootVersion": "08.40.00.01",\n"productID": "INF-01-00 ",\n"productRevLevel": "0840",\n"serialNumber": "021730018567 ",\n"boardID": "2806",\n"cacheMemorySize": 3840,\n"processorMemorySize": 1022,\n}\n\nlookup = {"active":true,\n"quiesced":false,\n...}` + } + }, + "Keyfactor.Command": { + }, + "Kofax.LicenseServer": { + }, + "Kofax.TotalAgility": { + }, + "Kognitio.AnalyticalPlatform": { + }, + "Kong": { + "createAPISCs": { + snippets: ["${1:host}, ${2:sc}, ${3:si_key}"], + description: `Creates SoftwareComponents for each REST APIs\n\nTakes : kong_admin SoftwareComponent node\nReturns : List of API SCs` + } + }, + "KubernetesFunctions": { + "identifyHost": { + snippets: ["${1:da}, ${2:cluster_node}, ${3:type}"], + description: `Compares DAs and returns correct Host\nto avoid consolidation issues\n\nInput arguments:\nda - current DA\ncluster_node - Cluster from which we traverse to Host\ntype - type of the node` + }, + "updateContainedSI": { + snippets: ["${1:contained_si}, ${2:full_version}, ${3:product_version}, ${4:si_type}, ${5:hostname}"], + description: `Gets Contained SI, version, type and hostname values.\nUpdates version, product_version, name and short_name\nattributes of ContainedSoftwareInstance, if needed.` + }, + "unlinkOldRemovalGroup": { + snippets: ["${1:node}, ${2:removal_group}"], + description: `Loop through inference relationships of the node\nand sets its old removal_group to void.\nThis function was added to avoid destruction of the existing nodes\nwhen we change removal group for them.\nDRUD1-51237 was raised to improve removal groups behavior.\nThis function can be entirely removed later.\n\nChange History:\n2026-07-16 - Added more checks. (DRUD1-60171)\n- DRUD1-51237 is now fixed for Discovery 25.1.02,\nhence added version condition. (DRDC1-30268)\n` + }, + "createContainerImages": { + snippets: ["${1:image_table}, ${2:removal_group}"], + description: `Gets image_table with image id, image name\nand list of related container nodes.\n\nModels ContainerImage and links\nto SoftwareContainer nodes.\n\nChange History:\n2025-03-12 - Improved the code for image name extraction (DRDC1-26092)\n2025-03-25 - Changed the key. Now it contains digest value (DRDC1-26135)\n2025-05-14 - Improved Image name (DRDC1-26200)\n2026-04-06 - Updated escape sequence (DRDC1-29309)` + }, + "convertCPU": { + snippets: ["${1:initial_value}"], + description: `Gets cpu value from the output.\nReturns value as an integer in millicores.\n\n1k = 1000 = 1000000m = 1000 core\n1 = 1000m = 1 core\n1000m (millicores) = 1 core\n100m (millicores) = 0.1 core\n10m (millicores) = 0.01 core\n\nChange History:\n2023-12-22 - Added check for decimal to CPU value (DRDC1-22507)\nAdded match for CPU values with "k" suffix\nand handling of cases that don't match any of\nthe conditions (DRDC1-22749)` + }, + "convertIntoBytes": { + snippets: ["${1:initial_value}"], + description: `Gets memory value in Mi, M, Ki, K, Gi, G, m, etc and converts it into bytes.\nMillibyte(m): 0,001 bytes\nKilobyte (k): 1,000 bytes\nMegabyte (M): 1,000,000 bytes\nGigabyte (G): 1,000,000,000 bytes\nTerabyte (T): 1,000,000,000,000 bytes\n===============================================\nKibibyte (Ki): 1,024 bytes\nMebibyte (Mi): 1,048,576 bytes\nGibibyte (Gi): 1,073,741,824 bytes\nTebibyte (Ti): 1,099,511,627,776 bytes\n\nChange History:\n2024-02-26 - Added support for millibytes(m) (DRDC1-22936)\n2024-10-31 - Added support for exponential values (DRDC1-24787)\n2026-04-06 - Updated escape sequence (DRDC1-29309)` + }, + "findInferredCluster": { + snippets: ["${1:da}"], + description: `Find inferred cluster node.\n\nChange History:\n2024-01-05 - Updated relationship between DA and Cluster (DRDC1-22621)` + }, + "ageNodeSuccess": { + snippets: ["${1:node}, ${2:da}"], + description: `Age node after successful scan.\n\nChange History:\n2023-06-06 - Renamed this function from ageClusterSuccess to ageNodeSuccess. (DRDC1-20380)` + }, + "ageClusterFailure": { + snippets: ["${1:da}"], + description: `Age cluster and its hosts after failed scan.\n\nChange History:\n2026-01-26 - Added age_count and last_update_failure\nattributes to Host nodes. (DRDC1-28639)` + }, + "ageGhostHost": { + snippets: ["${1:da}, ${2:cluster}, ${3:obsolete_keys}"], + description: `Looking for API hosts which are no more linked to cluster and should be aged.` + }, + "getClusterId": { + snippets: ["${1:host}, ${2:kube_provider}"], + description: `Get the cluster id for a K8s cluster.\nOpenShift cluster gets cluster id via dedicated local function.\n\nChange History:\n2024-03-22 - Added kubeconfig option to kubectl command (DRDC1-23014)\n2024-09-04 - Minor change to function's logic (DRDC1-24412)\n2026-07-10 - Removed OpenShift part (DRDC1-30136)` + }, + "getProviderInfo": { + snippets: ["${1:spec}"], + description: `Extract provider information from spec.providerID\n\nReturns provider, provider_id, label, virtual flag, cloud flag\nIf the provider is unknown returns all values as none` + }, + "getProviderId": { + snippets: ["${1:spec}"], + description: `Extract provider information from spec.providerID\n\nChange History\n2024-04-12 - Updated provider_id assignment for Microsoft Azure provider.(DRDC1-23329)\n2025-03-25 - Replaced with call to getProviderInfo()` + }, + "linkCluster": { + snippets: ["${1:cluster_table}, ${2:cluster}, ${3:related_nodes}, ${4:host}"], + description: `Formerly known as linkNode()\nThe function models uniquerel.SoftwareService\nand HostContainment for the Cluster\n\nChange History:\n2021-02-22 - function was renamed from linkNode to linkCluster (DRDC1-13679)\n- removed management link between Master and Worker nodes (DRDC1-13679)\n- now it doesn't search for Cluster. It gets this node to create links (DRDC1-13679)` + }, + "getMasterNodes": { + snippets: ["${1:cluster_table}, ${2:host}, ${3:server_urls}"], + description: `Looks for corresponding masters by urls\n\nChange history:\n2021-01-15 - Updated LoadBalancerService node detection (DRDC1-16355)` + }, + "getServerUrls": { + snippets: ["${1:cluster_table}, ${2:process}"], + description: `Gets server urls\n\nChange History:\n\n2021-02-21 - this was formerly obtainAndLinkMaster()\n- now this function only looks for server_urls and doesn't\nlink any Masters (DRDC1-16355)\n2026-04-06 - Updated escape sequence (DRDC1-29309)` + }, + "checkAPI": { + snippets: ["${1:data}, ${2:cmd}"], + description: `Function checks if data present and has known API version,\nby default data is output of commands:\noc get all --all-namespaces for OpenShift\nkubectl get all --all-namespaces for Kubernetes\nHere it uses only for debug or error messages\n\nChange History:\n2021-02-22 - updated known_apis list (DRDC1-16355)\n2023-12-23 - moved known_apis to the dedicated table (DRDC1-20920)` + }, + "checkItems": { + snippets: ["${1:data}, ${2:cmd}"], + description: `Function checks if 'items' present in the data\nby default data is output of commands:\noc get --all-namespaces for OpenShift\nkubectl get --all-namespaces for Kubernetes\nHere it uses only for debug or error messages` + }, + "getObjectEntries": { + snippets: ["${1:data}"], + description: `Function checks for expected keys in the data and have values.\nReturn values for default node's keys: meta, spec, status\n\nChange History:\n2021-02-22 - removed checkAPI() call (DRDC1-16355)\n2023-11-29 - now returns emtpy table if we get no values (DRDC1-22348)` + }, + "getClusterInfo": { + snippets: ["${1:host}, ${2:cmd}"], + description: `Get cluster name and server URL\n\nChange History\n2018-04-06 - Added expected regex for running command,\nto avoid potential ECA error (DRDC1-11089)\n2018-11-12 - Added condition to avoid potential ECA (DRDC1-12070)\n2019-01-15 - Added expected value to the runCommand function to\ninitiate privilege run if fail (DRDC1-12483)\n2019-03-25 - Updated to use new functions (DRDC1-11343)\n2024-03-22 - Added kubeconfig option to config_view_cmd command (DRDC1-23014)\n2026-04-06 - Updated escape sequence (DRDC1-29309)` + }, + "validateClusterName": { + snippets: ["${1:data}, ${2:method}, ${3:existing_cluster}"], + description: `Given an existing Cluster node, check if we should update its name\nand short_name attributes.\n\nChange History:\n2025-10-27 - Added logic to pick up better cluster name (DRDC1-26993)\n2026-04-06 - Updated escape sequence (DRDC1-29309)` + }, + "managedByAPI": { + snippets: ["${1:method}, ${2:cluster}"], + description: `Check if K8s Cluster is actively maintained by K8s API method.\n\nChange History:\n2025-10-13 - Now number of days to delay IP scan\nis set in ScanDelay Configuration section.(DRDC1-27741)` + }, + "getClusterNodes": { + snippets: ["${1:host}, ${2:cluster_table}"], + description: `Obtain the list of nodes for a given host.\n\nChange History:\n2024-03-22 - Added kubeconfig option to get_nodes_cmd command (DRDC1-23014)` + }, + "getResources": { + snippets: ["${1:cluster_table}, ${2:host}, ${3:namespace}, ${4:removal_group}"], + description: `Retrieves resources from Kubernetes based cluster.\nReturns a mapping of resources by type with UUID.\n\nChange History\n2018-04-06 - Add expected regex for running command, to avoid\npotential ECA error (DRDC1-11089)\n2018-05-17 - Add condition to handle empty item list (DRDC1-11089)\n2018-11-12 - Add condition to avoid potential ECA (DRDC1-12070)\n2019-01-15 - Added expected value to the runCommand function to\ninitiate privilege run if fail (DRDC1-12483)\n2019-03-25 - Updated to use new functions (DRDC1-11343)\n2019-12-10 - Updated to get only essential resources (DRDC1-12813)\n2020-06-18 - Updated to obtain resources one by one (DRDC1-12813)\n2020-11-06 - Added flag non_priv_errors_check to runActiveCommand call\nto avoid non privilege error check (DRDC1-16036)\n2020-12-14 - Removed iteration break after checkItems(), changed\nto continue (DRDC1-16225)\n2021-02-21 - Updated available_resources list with sts and ds (DRDC1-16355)\n2021-06-17 - Added suppressRemovalGroup\n2021-11-17 - Added support for Ingress resource (DRDC1-17385)\n2023-11-22 - Code refactoring and optimization (DRDC1-20920)\n2024-03-22 - Added kubeconfig option to kubectl commands (DRDC1-23014)\n2025-02-12 - Added option to suppress removal group for each resource separately (DRDC1-25655)\n2025-02-20 - Reduced unnecessary command executions (DRDC1-24415)\n2025-06-04 - Added support for CronJobs (DRDC1-26267)\n2025-11-05 - Removed "rc" resource as not supported (DRDC1-27988)` + }, + "processResources": { + snippets: ["${1:res_table}, ${2:res_by_uid}, ${3:resource}, ${4:results}, ${5:removal_group}"], + description: `Internal function that takes an API call response, checks if it's\nsuccessful and updates the res_table accordingly` + }, + "getClusterResources": { + snippets: ["${1:da}, ${2:namespace}, ${3:removal_group}"], + description: `Retrieves resources from Kubernetes API requests.\nAPI requests for Services, Pods, Deployments, ReplicaSet are\nsplit by namespaces. Used only by KubernetesAPI and OpenShiftAPI patterns.\n\nReturns two mappings:\n- resources by type (Service, Deployment, Pod, ReplicaSet, StatefulSet, DaemonSet, Jobs)\n- resources by UID\n\nChange History:\n2021-11-17 - Added support for Ingress resource (DRDC1-17385)\n2022-10-21 - Updated to support namespaced split queries\nfor Deployments, Pods and Services (DRDC1-19386)\n2023-11-22 - Code refactoring and optimization (DRDC1-20920)\n2025-02-12 - Removal group names are now unique for each resource (DRDC1-25655)\n2025-06-04 - Added support for CronJobs(DRDC1-26267)\n` + }, + "getOwners": { + snippets: ["${1:data}, ${2:res_by_uid}"], + description: `Returns owner data (list)\n\nChange History:\n2023-11-22 - Code refactoring and optimization (DRDC1-20920)` + }, + "getContainerListeningPorts": { + snippets: ["${1:pod_container}, ${2:spec}"], + description: `Worker function that extracts listening ports and listening port\nnames from a given spec table.` + }, + "getContainerCPUAttrs": { + snippets: ["${1:pod_container}, ${2:spec}"], + description: `Worker function that extracts and returns CPU requests and CPU limits\nattributes for a given container.` + }, + "getContainerExtraAttrs": { + snippets: ["${1:container}, ${2:status}, ${3:spec}, ${4:meta}, ${5:pod_container}"], + description: `Service function that takes in container and attributes' tables\nand returns the list of extra attributes to later be added to container.` + }, + "createPods": { + snippets: ["${1:pod_data}, ${2:cluster}, ${3:namespace}, ${4:cluster_table}, ${5:cluster_key}, ${6:host_table}"], + description: `Formerly known as setPodAttributes()\nModels Pods and link to the appropriate Namespace\nLooks for Containers or model Containers if API access method detected\nLinks Pods and related Containers\n\nChange History:\n2021-02-21 - Function was renamed from setPodAttributes\nto createPods (DRDC1-16355)\n- Now it models Software Pod node (DRDC1-16355)\n- Added linkage to Namespace node (DRDC1-16355)\n- Added Containers modeling in case API access\nmethod detected (DRDC1-16355)\n2021-06-01 - Added cpu_requests and cpu_limits attributes\nto SoftwareContainer node (DRDC1-15197)\n2021-06-01 - Updated removal groups (DRDC1-16970)\n- Now it takes cluster_table instead of pod_type value (DRDC1-16970)\n2021-08-12 - Updated related hosts search (DRDC1-17287)\n2021-10-05 - Added memory_limits and memory_requests attributes\nto SoftwareContainer node (DRDC1-17486)\n2021-10-22 - Added listening_port_names attribute to\nSoftwareContainer node (DRDC1-17511)\n2022-06-22 - Added annotations, resource_version, owner_id, creation_time,\nservice_account, phase, start_time attributes to Pod node (DRDC1-19328)\n- Added reason, start_time, finish_time, exit_code,\nrestart_count for Containers (DRDC1-19328)\n2023-09-25 - Added image_id attribute for SoftwareContainer node (DRDC1-21853)\n- Updated to support new convertCPU() and convertIntoBytes() functions (DRDC1-21849)\n2023-11-22 - Code refactoring and optimization (DRDC1-20920)\n2023-11-29 - Updated to check if host node has __all_ip_addrs attribute (DRDC1-22311)\n2024-09-04 - Updated SoftwarePod type to be consistent with ADE patterns (DRDC1-24433)\n2025-01-13 - Added __resource_unit attribute to pods (DRDC1-24921)\n2025-02-12 - Added Pod and Container nodes to separate removal group "Pod" (DRDC1-25655)\n2025-02-07 - Stopped modelling Terminated SoftwareContainer nodes (DRDC1-25156)\n2025-03-05 - Added SoftwareContainer.container_id attribute (DRDC1-25805)\n2025-03-12 - Improved Container-Host linkage (DRDC1-25962)\n2025-03-25 - Added host_table for host mapping (DRDC1-26135)\n- Changed SoftwareContainer key attribute to be consistent with IP discovery. (DRDC1-26135)\n2025-05-14 - Improved ssh-modelled Containers linkage (DRDC1-26483)\n2026-03-16 - Add special pod attributes (hostNetwork/hostPort, hostIPC, hostPID)\n2026-04-06 - Updated escape sequence (DRDC1-29309)\n2026-06-22 - Added persistent_volume_claims attribute to Software Pod (DRDC1-25157)` + }, + "createLBMember": { + snippets: ["${1:lbp}, ${2:pod}, ${3:removal_group}"], + description: `Gets LB Pool, pod, removal_group\nModels LoadBalancerMember\nLinks LB Member to related LB Pool and SoftwarePod\n\nChange History:\n2024-11-11 - Added __suppress_default_linkage (DRDC1-24986)\n2025-12-13 - Removed links to Cluster and Host (DRDC1-25078)\n- Key updated with pod id (DRDC1-25078)\n2025-02-12 - Added LBMember node to separate removal group (DRDC1-25655)\n2025-03-17 - Reduced number of modelled LBMembers. Key change involved. (DRDC1-25258)\n` + }, + "labelsMatch": { + snippets: ["${1:node}, ${2:selector}"], + description: `Returns true if the node matches the given selector` + }, + "createNamespaces": { + snippets: ["${1:cluster_table}, ${2:cluster_key}, ${3:method}, ${4:items}"], + description: `Given the 'items' list containing namespaces' information\nmodel Namespace nodes.\n\nChange History:\n2021-06-01 - Updated removal groups (DRDC1-16970)\n2022-06-22 - Added creation_time, resource_version, annotations (DRDC1-19045)\n2023-03-10 - Moved the SSH part back to the SSH pattern ()\n2023-10-10 - Moved setRemovalGroup to dedicated patterns (DRDC1-21906)\n2023-11-22 - Code refactoring and optimization (DRDC1-20920)` + }, + "extractQuotaValues": { + snippets: ["${1:quota}, ${2:extra_attrs}, ${3:table_key}"], + description: `Worker function that takes a quota dict as an argument and\nupdates the extra_attrs table if requested data is present.` + }, + "createResourceQuota": { + snippets: ["${1:removal_group}, ${2:namespace_mapping}, ${3:host}, ${4:quota_cmd}"], + description: `Runs the command or gets list of Resource Quota from API call.\nModels Resource Quota Detail and links it to related Namespace.\nActual, Desired and Used Quota are supported.\n\nChange History:\n2023-09-25 - Updated to support new convertCPU() and\nconvertIntoBytes() functions (DRDC1-21849)\n2023-11-22 - Code refactoring and optimization (DRDC1-20920)\n2024-02-26 - Added support for used resources (DRDC1-22693)\n2024-03-22 - Added kubeconfig option to resourcequota command (DRDC1-23014)` + }, + "createDeployments": { + snippets: ["${1:cluster_table}, ${2:cluster}, ${3:namespace}, ${4:res_table}, ${5:res_by_uid}"], + description: `Build Deployment nodes for each kubernetes deployment\n\nChange History:\n2018-05-18 - Add condition to avoid ECA (DRDC1-11341)\n2018-08-20 - Updated relationship to Deployment nodes (DRDC1-11662)\n2018-11-16 - Added models for DeploymetConfig and ReplicationController (DRDC1-12296)\n2019-01-15 - Added condition to avoid ECA when 'labels' key does not exist (DRDC1-12485)\n2019-03-25 - Updated to use new functions (DRDC1-12301)\n2019-05-13 - Changed containment type for LoadBalancer service to ContainedService (DRDC1-13116)\n2020-06-11 - Updated to handle Tags consistently to Tags usage (DRDC1-14460)\n2020-08-21 - Updated LoadBalancerMember key. Now contains container ID (DRDC1-15746)\n- Added a check for "ports" value in spec section. (Esc 147003)\n2021-02-21 - Renamed buildDeployments to createDeployments(DRDC1-16355)\n- Updated Deployment type attribute (DRDC1-16355)\n- Added linkage between Deployment and Namespace node (DRDC1-16355)\n- Now calls createPods() and links Software Pods to Cluster (DRDC1-16355)\n- Now links Software Pod to LB Member node(DRDC1-16355)\n- Added linkage between LB Service and Namespace (DRDC1-16355)\n2021-06-01 - Updated removal groups (DRDC1-16970)\n2021-10-22 - Improved linkage between LBService and related Pods (DRDC1-17511)\n2021-11-16 - Added support for Ingress Services (DRDC1-17385)\n2022-02-07 - Added support for alternative json output (DRDC1-18419)\n- Added a check for ports assignment to avoid ECA error (DRDC1-18373)\n2022-09-12 - Updated Ingress section to enable extraction ingress_class value from spec.ingressClassName (DRDC1-19580)\n2022-10-21 - Enhanced linkage between LB Services and related Pods (DRDC1-19386)\n- Updated LoadBalancerService key with namespace value (DRDC1-20121)\n- Added uid attribute to LoadBalancerService node (DRDC1-20121)\n2023-11-10 - Added tags and annotations to the Ingress LB Service (DRDC1-21418)\n2023-11-22 - Code refactoring and optimization (DRDC1-20920)\n2024-04-10 - Improved ip_addr assignment (DRDC1-23317)\n2024-05-28 - Improved service_port extraction for LB Members (Ingress rules)(DRDC1-23706)\n2024-11-11 - Added __suppress_default_linkage (DRDC1-24986)\n2024-11-15 - Updated LBPool key with namespace name. (DRDC1-24914)\n2024-12-13 - Updated LBMember-Pod linkage.(DRDC1-25078)\n- Removed raltionships between cluster and LB Services(including Routes)(DRDC1-25078)\n- Added check for decoded result (DRDC1-25479)\n2025-02-12 - Added LBServices/Pools/Members to their separate removal groups (DRDC1-25655)\n- Added service_host attribute to LBService node\n2025-03-25 - Added host_table() to collect hosts with related IPs. (DRDC1-26135)\n2025-03-30 - Reduced number of Modelled LB Services, Pools and Member. One LB Service per K8s Service now.(DRDC1-25258)\n- Added support for NodePort and LoadBalancer Service types. (DRDC1-25258)\n- Removed code for finding and linkage Ingress Controller LB Instance. (DRDC1-25258)\n- Added service_type attribute to LBService node (DRDC1-25258)\n2025-06-04 - Added support for CronJobs (DRDC1-26267)\n2025-11-05 - Removed ReplicationController-related data. ReplicationController obj is not supported. (DRDC1-27988)\n2025-12-01 - Add scope to Kubernetes Service (LoadBalancerService) nodes\n2026-02-25 - Link SoftwarePods to CNI subnets` + }, + "validateResourceID": { + snippets: ["${1:resource_id}, ${2:type}"], + description: `Validate and fix resource id format` + }, + "parseConfigMaps": { + snippets: ["${1:da}, ${2:config_maps}"], + description: `Extract cluster related data from config maps\n\nChange History:\n2024-10-31 - Added version extraction for Rancher clusters (DRDC1-24271)\n2024-12-12 - added cluster_name extraction for OCI (DRDC1-25219)\nupdated logic to iterate through configs for each known provider to\navoid unexpected results due to different order of config maps and\nprovide separate logic for each provider\n2026-06-10 - Now extracting cluster attributes for Openshift deployed on IBM Cloud (DRDC1-29811)` + } + }, + "Kubernetes.Kubernetes": { + }, + "Kubernetes.KubernetesAPI": { + }, + "Kubernetes.KubernetesCNI": { + "getClusterAndNamespace": { + snippets: ["${1:deployment}"], + description: `Return the Cluster and Namespace nodes for the given Deployment` + }, + "getVersionFromImage": { + snippets: ["${1:deployment}, ${2:container_name_regex}"], + description: `Traverse from the given Deployment via its Pods and Containers to\nfind the ContainerImage. Extract the version from the image tag, stripping\nany leading "v" prefix\n\nIf the image cannot be found or the tag is missing, return void` + } + }, + "Kubernetes.KubernetesCNI.vSphere": { + }, + "Kubernetes.KubernetesCSI": { + "getClusterAndNamespace": { + snippets: ["${1:deployment}"], + description: `Return the Cluster and Namespace nodes for the given Deployment` + }, + "getVersionFromImage": { + snippets: ["${1:deployment}, ${2:container_name_regex}"], + description: `Traverse from the given Deployment via its Pods and Containers to\nfind the ContainerImage. Extract the version from the image tag, stripping\nany leading "v" prefix\n\nIf the image cannot be found or the tag is missing, return void` + } + }, + "Kubernetes.KubernetesPV": { + "getSpecAttributes": { + snippets: ["${1:attrs}, ${2:pv_spec}"], + description: `Gets attrs table and spec section raw data,\nextracts needed attributes,\nand writes them into attrs() table` + } + }, + "Kubernetes.KubernetesWorkload": { + }, + "KVM_Storage": { + "getLvLunIdTable": { + snippets: ["${1:host}, ${2:cmd_locations}, ${3:LUN_ID_REGEXES}"], + description: `Function runs 'lsblk' command and parses its output\nin order to get a table mapping between\nlogical volume UUIDs and LUN IDs.\n\nParameters:\nhost - host node on which commands were run;\ncmd_locations - command locations (from locateCommands());\nLUN_ID_REGEXES - list of LUN ID regex patterns to match against;\n\nReturns: table mapping between logical volume UUID and LUN IDs;` + }, + "getStorageVolume": { + snippets: ["${1:host}, ${2:backing_device}, ${3:serial}, ${4:cmd_locations}, ${5:LUN_ID_REGEXES}"], + description: `Function tries to find LUN ID (NAA ID or EUI) and then searches for StorageVolume node\n\nParameters:\nhost - host node on which commands were run;\nbacking_device - backing device or physical volume name;\nserial - serial number for the device;\ncmd_locations - command locations (from locateCommands());\nLUN_ID_REGEXES - list of regexes to extract LUN ID;\n\nReturns: StorageVolume node or none\n\nChange History:\n\n2020-09-07 - Updated to support EUI LUN identifiers (DRDC1-15457);` + } + }, + "KX.kdb": { + }, + "Layer7.SecureSpanSOAGateway": { + }, + "Layer_2_Discovery": { + "processRemoteSysname": { + snippets: ["${1:remote_sysname}, ${2:msg_prefix}"], + description: `Process remote sysname` + }, + "getLLDPNumNeighbours": { + snippets: ["${1:local_lldp_interfaces}, ${2:msg_prefix}"], + description: `Calculating the number of LLDP neighbours for the device.\n\nChange History:\n\n2023-01-24 - changed in order not to make additional request\nto LLDP remote table (DRDC1-20635)` + }, + "processLLDP": { + snippets: ["${1:device}, ${2:LLDP_RGROUP}, ${3:is_always_edge_client}"], + description: `LLDP processing for the NetworkDevice, SNMPManagedDevice or StorageDevice.\n\nFor the provided device node function finds all the local NetworkInterfaces\nwith __lldp_port_id attribute set.\n\nFor each NetworkInterface found, function tries to find corresponding\nLLDP remote 'neighbour' interface using the LLDP related attributes:\n- '__lldp_remote_sysname' or '__lldp_remote_chassis_id': to find remote 'neighbour' device;\n- '__lldp_remote_port_id' or '__lldp_remote_port_desc' : to find interface on the remote device;\n\nIf remote interface was found, function creates relationships\nbetween local and remote interfaces depending on the following:\n\nFor NetworkDevice nodes:\n\n- does local device has Hosts/Printers/ManagementControllers connected (edge clients) ?\nIf yes, then the attribute '__edge_clients_connected' set to true on the local device.\n\n- number of LLDP neighbours for the device. This number is set\nas '__num_lldp_neighbours' on the local device.\n\nIf both local and remote devices have Hosts/Printers/ManagementControllers connected\n(i.e. '__edge_clients_connected' set to true), then Peer-to-Peer relationship is created between\nlocal and remote interfaces;\n\nIf local device has '__edge_clients_connected' set, but the remote hasn't, then\nthe local interface is EdgeClient and the remote is EdgeDevice;\n\nIf local device doesn't have '__edge_clients_connected' set, but remote does, then\nthe interface is EdgeClient and remote is EdgeDevice;\n\nIn case if none of the devices have Hosts/Printers/ManagementControllers connected,\npercentage difference between '__num_lldp_neighbours' numbers on local and remote devices\nis calculated.\n\nIf the percentage difference between local and remote '__num_lldp_neighbours'\nis bigger then impact_limit (40 % by default), then interface of the device\nwith bigger '__num_lldp_neighbours' is EdgeDevice\nand the one with the smaller number is EdgeClient.\n\nWhen creating relationships we always assume that StorageSystem and SNMPManagedDevice\nare always acting like EdgeClients.\n\nAccess Points are always considered as EdgeClients.\nFor the case of Wireless LAN Controller connected to Switch/Layer 3 Switch,\nWLC is also always considered as EdgeClient.\n\nChange History:\n\n2021-09-29 - Updated to avoid ECA errors when searching remote device\nusing sysname with dots (DRDC1-17496);\n2021-11-11 - Updated in order to properly handle Access Points\nwhen creating relationships (DRDC1-17683);\n2022-05-09 - Done some optimization in order\nto decrease search time (DRDC1-18870);\n2022-11-06 - Added type for NetworkLink relationship (DRDC1-18528);\n2023-01-24 - Another parameter provided\nto the getLLDPNumNeighbours() function (DRDC1-20635);\n2024-10-29 - Updated in order to properly handle\nWLC to switch relationships (DRDC1-24363);\n2024-12-03 - Updated in order to create relationships\nfor Meraki indirect devices (DRDC1-24612);` + }, + "processCDP": { + snippets: ["${1:device}, ${2:CDP_RGROUP}"], + description: `CDP processing for the NetworkDevice, SNMPManagedDevice or ManagmentController.\n\nFor the provided device node function finds all the local NetworkInterfaces\nwith __cdp_port_name attribute set.\n\nFor each NetworkInterface found, function tries to find corresponding\nCDP remote 'neighbour' interface using the CDP related attributes:\n- '__cdp_remote_device_id' or '__cdp_remote_sysname': to find remote 'neighbour' device;\n- '__cdp_remote_port_name' : to find interface on the remote device;\n\nIf remote interface was found, function creates relationships\nbetween local and remote interfaces depending on the following:\n\nFor the case of Wireless LAN Controller connected to Switch/Layer 3 Switch,\nWLC is always considered as EdgeClient.\n\nIf local device capability belongs to client_capabilities table and remote device\ndoes not then the local interface is EdgeClient and remote is EdgeDevice;\n\nIf remote device capability belongs to client_capabilities table and local device\ndoes not then the remote interface is EdgeClient and local is EdgeDevice;\n\nPeer-to-Peer relationship in other cases.\n\nChange History:\n\n2024-10-29 - Updated in order to properly handle\nWLC to switch relationships (DRDC1-24363)` + } + }, + "LenovoXCA": { + }, + "LenovoXCC": { + }, + "Lenovo.ThinkSystem": { + }, + "LexisNexisRiskSolutions.FircoContinuity": { + "directoryVersioning": { + snippets: ["${1:host}, ${2:process}, ${3:component}"], + description: `Gets version from a directory listing\n\ncomponent: One of 'ContinuityCaseManagerAPI', 'ContinuityDataStripping'\nor 'ContinuityDDR'` + }, + "pathVersioning": { + snippets: ["${1:process}"], + description: `Gets version from the trigger process path` + } + }, + "LexisNexisRiskSolutions.HPCCSystems": { + "createSI": { + snippets: ["${1:host}, ${2:si_type}"], + description: `Used to create SI\nPerforms file and package versioning.\n\nChange History:\n2023-01-17 - Updated (?i) flag placement in regular expression (DRDC1-20566)` + }, + "linkRelatedSIs": { + snippets: ["${1:host}, ${2:candidate_ips}, ${3:si}, ${4:type}"], + description: `This function is used to link related SIs to HPCC Cluster` + } + }, + "Liferay.DXP": { + }, + "Lighttpd.Server": { + }, + "LinuxCertificates": { + }, + "LinuxHA": { + "getResourceIPsDNSs": { + snippets: ["${1:cluster_node}, ${2:host}, ${3:section}, ${4:crm_configure_show}"], + description: `obtain IPs and resolve them to dns name\n\nChange History:\n2026-04-14 - Prefix strings that contain a regular expression with regex\n(DRDC1-29352)` + } + }, + "Linux_Storage": { + "getLogicalVolumes": { + snippets: ["${1:host}, ${2:multipath}, ${3:cmd_locations}"], + description: `First check to see if there are any logical volumes defined and then\nrun the "lvs" command to get the set of logical volumes per\nvolume group.\n\nParameters:\nhost - Host to be queried\nmultipath - Multipath info (from getMultipathInfo())\ncmd_locations - Command locations (from locateCommands())\n\nThe return value is a table keyed by logical volume with the\nvolume group as the value. This table may be empty.\n\nThis call may return none if logical volume groups are defined\nbut the "lvs" command cannot be run or returns no output.\n\nChange History:\n\n2015-08-06 lv_name are now strip from any hyphens\n2016-05-24 Updated to support new getMultipathInfo function (DRDC1-6271)\n2017-04-04 Updated to avoid cases where no LVM are in use,\nbut pattern still tries to run LVM commands and then stops (DRDC1-7868);\nSwitched to the new DiscoveryFunctions instead of using deprecated Common_Functions module;\n2018-03-11 Use runFutureActiveCommand` + }, + "getPhysicalVolumes": { + snippets: ["${1:host}, ${2:lvs}, ${3:cmd_locations}"], + description: `Run the "pvs" command to get the list of physical volumes per\nvolume group.\n\nParameters:\nhost - Host to be queried\nlvs - Table of logical volumes to volume groups (may be empty)\ncmd_locations - Command locations (from locateCommands())\n\nThe return value is a table keyed by by the volume group with the\nlist of physcial volumes as the value. This table may be empty.\nIf the command cannot be run or the output cannot be parsed, none\nis returned\n\nChange History:\n\n2017-04-04 Updated in order to extract PV name without partition part (DRDC1-7868);\nSwitched to the new DiscoveryFunctions instead of using deprecated Common_Functions module;\n2019-03-11 Use runFutureActiveCommand` + }, + "getRAIDInfo": { + snippets: ["${1:host}"], + description: `Return a table mapping RAID (md) devices to the component parts\nby examining /proc/mdstat\nThe table is keyed by the RAID (md) device name with each value\nbeing a list of the components of the RAID group.\nThis call will not return none. In the event that /proc/mdstat\ndoesn't exist or cannot be read an empty table will be returned\nas it is assumed that no RAID groups exist.\n\nChange History:\n\n2016-05-18 - Updated to avoid ECA-errors when processing empty /proc/mdstat file (DRDC1-6186)` + }, + "runMultipath": { + snippets: ["${1:host}, ${2:cmd}, ${3:cmd_location}"], + description: `Run the given multipath command and return the output. The command must\ninclude an EXITSTATUS string.\nThis call return none if the command cannot be run or the exit status\nis non zero\n\nChange History:\n2019-03-08 - Use Future.runCommand` + }, + "getMultipathInfo": { + snippets: ["${1:host}, ${2:cmd_locations}, ${3:LUN_ID_REGEXES}, ${4:do_linkage}"], + description: `If multipath support is installed (the binary is available) we need\nto be able to run it to determine what multipaths are configured.\nThere are two values returned:\nThe first is a table keyed by device mapper names (/dev/mapper/xxx)\nwith the associated StorageVolume node as the value. If a matching node\ncannot be found there is no entry in table for the device.\n\nThe second value is a table of the devices which are multipathed across\nall multipath groups.\nIf multipath support is not available or multipath configuration\ncannot be obtained this call will return empty tables.\n\nChange History:\n2015-08-06 Initialize the multipath and device list to\nan empty table and empty list so it won't block or generate errors.\n2016-02-01 The alias value has been updated to handle single path configuration\nDRDC1-5358 Case: 'naa_id '.\n2016-05-24 Updated in order to avoid ECA-errors with returning 'none' as result of the call (DRDC1-6271)\n2016-07-22 Updated to support KVM (DRDC1-4789)\n2016-12-12 Updated to support 8-bytes NAA ID (DRDC1-7537)\n2018-04-16 Updated in order to have mpdevices as table instead of list.\n2019-03-08 Call to runMultipath now requires an extra attribute\n2020-09-07 Updated to support EUI LUN identifiers (DRDC1-15457)\n2022-01-10 Added 'StorageUse' relationship between Host and\nStorageSystem/StorageSystemGroup (DRDC1-17924);` + }, + "getPowerpathInfo": { + snippets: ["${1:host}, ${2:cmd_locations}, ${3:multipath}, ${4:mpdevices}, ${5:storage_providers}"], + description: `Function to get info about EMC PowerPath devices\n(multipath implementation by EMC).\n\nFunction updates multipath table with the information about PowerPath pseudo devices\nand its corresponding Storage Volumes.\nAlso updates mpdevices with the names of the devices\nmaking up the pseudo device (multipathed devices).\n\nChange History:\n2019-03-08 - Use Future.runCommand\n2020-09-07 - Minor updates related to EUI support (DRDC1-15457)\n2022-01-10 - Added 'StorageUse' relationship between Host and\nStorageSystem/StorageSystemGroup (DRDC1-17924);\n2026-04-09 - Updated escape sequence (DRDC1-29309)` + }, + "getPathId": { + snippets: ["${1:host}, ${2:name}, ${3:id_path}"], + description: `Functions process id_path given (from udevadm or udevinfo command output)\n\nParameters:\nhost - host node on which commands were run;\nname - device name;\nid_path - obtained from udevadm or udevinfo command output;\n\nReturns: kvm_path_id\n\nChange History:\n\n2017-12-27 path_id renamed to kvm_path_id to better reflect its purpose` + }, + "getDiskInfo": { + snippets: ["${1:host}, ${2:cmd_locations}"], + description: `Run the "fdisk" command on the given host, parse and return the\ninformation. The return value is a table keyed by disk names\nwith size (in bytes) as the value.\n\nThis call will return none if "fdisk" cannot be run.\n\nChange History:\n2017-04-04 Switched to the new DiscoveryFunctions instead of using deprecated Common_Functions module;\n2019-08-03 Use runFutureActiveCommand instead of runActiveCommand` + }, + "getDiskByMap": { + snippets: ["${1:host}, ${2:what}"], + description: `Returns a table mapping the given what (UUID, id, path, etc) to\na disk name (/dev/sd)` + }, + "extractLUNIDFromSerial": { + snippets: ["${1:serial}, ${2:serial_raw}, ${3:LUN_ID_REGEXES}"], + description: `If the serial number is a NAA ID or EUI, format and return it.\nIf not, this call returns none;\n\nChange History:\n2015-08-06 Updated to check raw naa id since they all start with 60\n2016-12-12 Updated to support 8-bytes NAA ID (DRDC1-7537)\n2020-09-07 Renamed and updated in order to support EUI LUN identifier as well as\nto be able to extract LUN ID from serial_raw (DRDC1-15457);` + }, + "getLUNID": { + snippets: ["${1:host}, ${2:name}, ${3:cmd_locations}, ${4:LUN_ID_REGEXES}"], + description: `Get the LUN ID (NAA ID or EUI) for the given disk on the host. If the LUN ID\ncannot be obtained the call will return none.\n\nChange History:\n\n2016-12-12 Updated to support 8-bytes NAA ID (DRDC1-7537)\n2017-04-04 Switched to the new DiscoveryFunctions instead of using deprecated Common_Functions module;\n2019-03-08 Use runFutureActiveCommand instead of runActiveCommand\n2020-09-07 Renamed and updated to support EUI (DRDC1-15457)` + }, + "extractDeviceName": { + snippets: ["${1:name}"], + description: `Given a string of the form /dev/XXXX, returns the XXXX part\nFor the cciss devices the string is /sys/cciss/cXdY and we want cciss/cXdY part,\nchanged to cciss!cXdY\n\nChange History:\n\n2016-09-02 Updated to support cciss devices (case 00196847);` + }, + "getDiskType": { + snippets: ["${1:host}, ${2:name}"], + description: `Get the type (HDD/SDD) for the given disk on the host.\nReturns void if the value cannot be obtained\n\nChange History:\n\n2016-03-30 Updated to avoid ECA-errors caused by non-integer output from discovery.fileGet function (DRDC1-8136);\n2016-05-03 Updated to avoid using of deprecated attributes (DRDC1-8644);\n2024-02-19 Updated to avoid incorrect values in 'type' attribute (DRDC1-22939);` + }, + "getDiskModel": { + snippets: ["${1:host}, ${2:name}"], + description: `Get the model name for the given disk on the host.\nReturns void if the value cannot be obtained\n\nChange History:\n\n2016-03-30 - Updated to avoid incorrect values in 'model' attribute (DRDC1-8136);\n2023-03-28 - Updated to avoid incorrect values in 'model' attribute (DRDC1-21094);\n2023-05-08 - Updated to avoid incorrect values in 'model' attribute (DRDC1-21204);\n2024-02-19 - Updated to avoid incorrect values in 'model' attribute (DRDC1-22939);` + }, + "getDiskVendor": { + snippets: ["${1:host}, ${2:name}"], + description: `Get the vendor name for the given disk on the host\nReturns void if the value cannot be obtained\n\nChange History:\n\n2016-03-30 - Updated to avoid incorrect values in 'vendor' attribute (DRDC1-8136);\n2023-03-28 - Updated to avoid incorrect values in 'vendor' attribute (DRDC1-21094);\n2023-05-08 - Updated to avoid incorrect values in 'vendor' attribute (DRDC1-21204);\n2024-02-19 - Updated to avoid incorrect values in 'vendor' attribute (DRDC1-22939);` + }, + "getDevInfo": { + snippets: ["${1:host}, ${2:name}, ${3:cmd_locations}, ${4:is_kvm}"], + description: `Get the serial number, volume group name, kvm_path_id (used in KVM Storage),\ndetect if this a locally attached drive for the given block device on the host.\n\nReturns table with the results.\n\nChange History:\n\n2016-04-14 Updated in order to support local disks behind array controller (DRDC1-5940)\n2016-07-22 Renamed from getDiskSerial to getDevInfo to better reflect functionality,\nUpdated with new functionality (DRDC1-4789)\n2017-04-04 Updated in order to get proper serial number for some devices (DRDC1-7868);\nSwitched to the new DiscoveryFunctions instead of using deprecated Common_Functions module;\nSwitched to the new ConversionFunctions instead of using deprecated Common_Functions module;\n2017-11-20 Updated in order to better handle local disks detection (DRDC1-8802);\n2017-12-27 Renamed path_id to kvm_path_id to better show its purpose, added scsi_addr extraction from ID_PATH (DRDC1-9804);\n2018-04-02 Updated in order to better handle model and vendor names\n(part of the DRDC1-10971 update);\n2018-09-28 Regex for scsi_addr extraction updated (DRDC1-11970);\n2019-03-08 Use runFutureActiveCommand instead of runActiveCommand\n2020-09-07 Updated to extract ID_SERIAL_RAW\n2026-05-19 Updated to extract kvm_serial for KVM VMs (DRDC1-28218)` + }, + "getDiskSpeed": { + snippets: ["${1:host}, ${2:name}, ${3:cmd_locations}"], + description: `Get the speed (RPM) for the given disk on the host\nReturns void if the value cannot be obtained\n\nChange History:\n\n2017-04-04 Switched to the new DiscoveryFunctions instead of using deprecated Common_Functions module;\n2019-03-08 Use runFutureActiveCommand instead of runActiveCommand` + }, + "getUUIDList": { + snippets: ["${1:host}, ${2:name}, ${3:cmd_locations}"], + description: `This functions returns list of uuids for the block device given\n\nChange History:\n\n2017-04-04 Switched to the new DiscoveryFunctions instead of using deprecated\nCommon_Functions module;\n2019-03-08 Use runFutureActiveCommand instead of runActiveCommand` + }, + "formatDiskName": { + snippets: ["${1:prefix}, ${2:index}"], + description: `Converts the given index into a disk name.\n\nSCSI disk names starts at sda. The 26th device is sdz and the\n27th is sdaa. The last one for two lettered suffix is sdzz\nwhich is followed by sdaaa.\n\nThis is basically 26 base counting with one extra 'nil' entry\nat the beginning from the second digit on and can be\ndetermined using similar method as 26 base conversion with the\nindex shifted -1 after each digit is computed.` + } + }, + "Logstash.Logstash": { + "create_link": { + snippets: ["${1:host}, ${2:logstash_si}, ${3:si_type}, ${4:addr}, ${5:port}"], + description: `Checks if required SI exists, creates peer to peer link.` + }, + "extract_section_and_create_link": { + snippets: ["${1:host}, ${2:logstash_si}, ${3:si_type}, ${4:sections}"], + description: `Extracts configuration sections, calls create_link function.` + } + }, + "MacOSX_Storage": { + "plistGetValue": { + snippets: ["${1:document}, ${2:key}, ${3:prefix}"], + description: `Get value from plist document for the given key.\n\nAssumes that value is part of the root unless prefix is given` + }, + "getDisks": { + snippets: ["${1:output}"], + description: `Parse the output of "diskutil list -plist" and return a list of\ndisk identifiers` + } + }, + "MailRu.Tarantool": { + }, + "Mainframe.ApplicationComponents.MVTA": { + }, + "Mainframe.ApplicationComponents.WebSphere": { + }, + "Mainframe.ApplicationComponents.WLM": { + }, + "Mainframe.Configuration": { + }, + "Mainframe.Dependency": { + }, + "Mainframe.Infrastructure": { + "createNodeTable": { + snippets: ["${1:_nodes}, ${2:key_attr}"], + description: `Create table of nodes indexed by the provided key attribute name.` + }, + "findInferredMainframes": { + snippets: ["${1:da}"], + description: `Find inferred mainframe nodes.` + }, + "ageMFPartSuccess": { + snippets: ["${1:mfpart}, ${2:da}"], + description: `Age MFPart after successful scan.` + }, + "ageMFPartFailure": { + snippets: ["${1:mainframe}, ${2:mfpart}, ${3:da}"], + description: `Age cluster after failed scan.` + }, + "ageMFParts": { + snippets: ["${1:da}, ${2:mainframes}, ${3:success_mfparts}"], + description: `Age MFParts.` + }, + "selectMFParts": { + snippets: ["${1:mfpart_ids}, ${2:mfpart_table}, ${3:discovery_method}, ${4:name}"], + description: `Keine Beschreibung verfügbar.` + }, + "createMFParts": { + snippets: ["${1:da}, ${2:lpar_results}, ${3:os_results}, ${4:vse_results}"], + description: `Keine Beschreibung verfügbar.` + }, + "createMainframes": { + snippets: ["${1:da}, ${2:mf_results}, ${3:mfpart_table}"], + description: `Create Mainframe nodes.` + }, + "linkMFParts": { + snippets: ["${1:mfpart_table}, ${2:mfpart_key_to_id_table}, ${3:mainframe_table}"], + description: `Link MFParts to parent Mainframe or MFPart.` + }, + "createSysplex": { + snippets: ["${1:da}, ${2:mfpart_table}, ${3:os_results}"], + description: `Create the Sysplex as a Cluster node containing all the member\npartitions regardless of if they are PR/SM or zVM Guest.` + }, + "createCouplingFacility": { + snippets: ["${1:da}, ${2:mfpart_table}, ${3:sysplex_table}"], + description: `Create the CouplingFacility and link it to the MFParts using it and\nto the containing Sysplex.` + }, + "createStorageCollections": { + snippets: ["${1:discovery_method}, ${2:da}, ${3:mfpart_table}"], + description: `Create StorageCollection nodes for the provided discovery method results\nand link them to the appropriate MFParts.` + } + }, + "Mainframe.MessageQueue": { + }, + "Mainframe.Software": { + }, + "Mainframe.Storage": { + }, + "Mainframe.Transaction": { + }, + "MainViewConsoleManagement": { + }, + "ManageEngine.ADManagerPlus": { + }, + "ManageEngine.OpManager": { + }, + "MapR.MapR": { + }, + "MariaDB.MariaDB_RDBMS": { + }, + "MarkLogic.MarkLogic": { + }, + "McAfee.CommonFramework": { + }, + "McAfee.DatabaseSecurity": { + }, + "McAfee.ePolicyOrchestrator": { + }, + "McAfee.HostIntrusionPrevention": { + }, + "McAfee.InventoryAgent": { + }, + "McAfee.MOVE": { + }, + "McAfee.PolicyAuditorAgent": { + "common_versioning": { + snippets: ["${1:host}, ${2:registry_name}"], + description: `Keine Beschreibung verfügbar.` + } + }, + "McAfee.VirusScan": { + }, + "McAfee.VirusScanForLinux": { + }, + "Memcached.Memcached": { + }, + "MemSQL": { + }, + "Mesosphere.Mesosphere": { + "links_management": { + snippets: ["${1:node_si}, ${2:mesos_cluster}, ${3:cluster_id}"], + description: `Function actualizes containment relationships between nodes and clusters` + }, + "get_product_version": { + snippets: ["${1:full_version}"], + description: `Function to extract product version from full version` + }, + "get_version_from_file": { + snippets: ["${1:host}"], + description: `Function to extract product and full version from file` + }, + "get_version_from_cmd": { + snippets: ["${1:host}"], + description: `Function to extract full version from command result` + }, + "get_cluster_id": { + snippets: ["${1:host}"], + description: `Function to extract cluster id from command result` + }, + "dcos_check": { + snippets: ["${1:host}"], + description: `Function does false positive check for DC/OS component installation\n\nChange history:\n2020-11-24 - Updated file contents check for ESC (148360)` + } + }, + "MicroFocus.AccuRev": { + }, + "MicroFocus.DirectoryResourceAdministrator": { + "packageVersioning": { + snippets: ["${1:host}"], + description: `Performs package versioning` + } + }, + "MicroFocus.NetIQIdentityManager": { + }, + "MicroFocus.NetIQPrivilegedAccountManager": { + }, + "Microfocus.SilkCentral": { + }, + "MicroFocus.SilkPerformer": { + "getPackageVersioning": { + snippets: ["${1:host}, ${2:package_regex_list}"], + description: `Keine Beschreibung verfügbar.` + } + }, + "MicroFocus.WorkflowAutomation": { + "packageVersioning": { + snippets: ["${1:host}"], + description: `Performs package versioning` + } + }, + "MicrosoftAzure.Agent": { + "setCloudHosted": { + snippets: ["${1:process}"], + description: `This call sets the cloud = True flag on the Host related\nto the given DiscoveredProcess, assuming one can be found` + } + }, + "MicrosoftAzure.APIManagement": { + }, + "MicrosoftAzure.ApplicationGateway": { + "getIPAddresses": { + snippets: ["${1:result_list}, ${2:frontend_ip_configurations}"], + description: `Function to process public and private IP addresses of the Azure Application Gateway.\nParameters:\n- result_list - Result list of the ApplicationGateways.ListAll call;\n- frontend_ip_configurations - Frontend IP configuration in result of\nthe ApplicationGateways.ListAll call;` + }, + "preparePoolPortsTable": { + snippets: ["${1:backend_settings_list}"], + description: `Prepare Pool ports and protocol table for further modeling.` + }, + "modelLoadBalancerPool": { + snippets: ["${1:da}, ${2:result}, ${3:pool_result}, ${4:rules_tbl}, ${5:ports_tbl}, ${6:lbp_tracker}"], + description: `Model LoadBalancerPool for each backendAddressPool.` + }, + "linkLoadBalancerMemberToVM": { + snippets: ["${1:lb_member}, ${2:vm_service}, ${3:interfaces}"], + description: `Link LoadBalancerMember to the VM or VM scale set.` + }, + "modelLoadBalancerMembers": { + snippets: ["${1:da}, ${2:properties}, ${3:lb_pool}, ${4:lbm_tracker}, ${5:interfaces}, ${6:vm_service}, ${7:app_services}"], + description: `Model LoadBalancermember for each member entry in backendAddresses and backendIPConfigurations.\n\nTarget types: ipAddress, fqdn, VirtualMachine, VMSS, AppService\n\n1. VirtualMachines and VMSS stored in backendIPConfigurations:\nExamples: (?i)/providers/Microsoft.Network/networkInterfaces/tests-linux-vm514/ipConfigurations/ipconfig1\n(?i)/providers/microsoft.Network/networkInterfaces/tests-vmscaleset-vm514/ipConfigurations/ipconfig1\n\n2. ipAddress and fqdn datastored in backendAddresses:\nExamples:\n'backendAddresses': {\n'ipAddress' : [\n'10.0.0.1',\n'10.0.0.2'\n],\n'fqdn': 'blablabla.bmc.net',\n'fqdn': 'blablabla2.bmc.net',\n\n3. AppServices stored as fqdn entry. FQDN entry is a Sis default hostname\n'fqdn': 'blablabla.bmc.net'` + } + }, + "MicrosoftAzure.AppServiceCertificates": { + }, + "MicrosoftAzure.AppServicePlans": { + }, + "MicrosoftAzure.AppServices": { + }, + "MicrosoftAzure.AutomationAccounts": { + }, + "MicrosoftAzure.AvailabilitySets": { + }, + "MicrosoftAzure.CloudHosted": { + }, + "MicrosoftAzure.CognitiveSearch": { + }, + "MicrosoftAzure.CommonFunctions": { + "getSubscriptionName": { + snippets: ["${1:da}"], + description: `Returns the subscription name. If the name cannot be retrieved, returns the subscription ID.\n\nChange History:\n2022-02-07 Added search for Subscription node (DRDC1-18385)` + }, + "_getProviderKey": { + snippets: [""], + description: `Return the provider key` + }, + "getProvider": { + snippets: [""], + description: `Returns the Azure CloudProvider node\n\nChange History:\n2022-05-03 Avoid updating inference relationships on CloudProvider\nnodes (DRDC1-18279)\n` + }, + "_getRegionKey": { + snippets: ["${1:subscription_id}, ${2:code}"], + description: `Return the region key for the given subscription ID and region code` + }, + "getRegion": { + snippets: ["${1:da}, ${2:provider}, ${3:result_location}"], + description: `Returns the CloudRegion node for the given location code or location name,\n\nin most cases it is the value of result.location attribute in response\n\nReturns none in the unlikely event that the location is not known.\n\nChange History:\n2019-05-21 Added check for location name in the REGIONS_MAP (DRDC1-12972)\n2022-02-07 Added new attributes (DRDC1-18385)\n\n2022-05-03 Avoid updating inference relationships on CloudRegion\nnodes (DRDC1-18279)\n2022-08-16 Added check for new Subscription name (DRDC1-19658)\n\n2023-11-14 Added cloud_id attribute to Cloud Region (DRDC1-22103)\n2024-08-20 Added space removal in the region code (DRDC1-24290)` + }, + "_getServiceKey": { + snippets: ["${1:subscription_id}, ${2:region_code}, ${3:code}"], + description: `Return the service key for the given subscription ID and codes` + }, + "getService": { + snippets: ["${1:da}, ${2:region}, ${3:code}, ${4:associate}"], + description: `Returns the CloudService node for the given service code\n\nChange History:\n\n2022-02-07 Added new attributes (DRDC1-18385)\n\n2022-05-03 Avoid updating inference relationships on CloudService\nnodes (DRDC1-18279)\n2022-08-16 Added check for changed subscription name added to the\nregion name (DRDC1-19658)\n2023-01-10 Added confirmation of found CloudService node to make\ncontinuous CMDB sync triggering (DRDC1-20544)\n\n2023-11-14 Added cloud_id attribute to Cloud Service (DRDC1-22103)` + }, + "isKnownRegion": { + snippets: ["${1:code}"], + description: `Returns true if the given code is a known region (location)` + }, + "getRegionCode": { + snippets: ["${1:name}"], + description: `Returns the location code for the given location name\n\nReturns none in the unlikely event that the location is not known.` + }, + "getRelatedTable": { + snippets: ["${1:result_list}, ${2:discovery_method}"], + description: `Builds a table of related results, keyed by id.\n\nReturns none if there are no related results.` + }, + "addTags": { + snippets: ["${1:node}, ${2:result}"], + description: `Add tags to the node from either a set of tag results or the tags\nattribute of a result node. Only "simple" tag names will be added\n(Keys containing alphanumeric and underscore characters)\n\nInput arguments:\nnode - target node\nresult - node of successful API call results` + }, + "vmFindInstance": { + snippets: ["${1:service}, ${2:instance_id}"], + description: `Returns a VirtualMachine node for the given VM instance ID.\n\nReturns none if no VirtualMachine can be found.` + }, + "vmFindVirtualHostForVM": { + snippets: ["${1:vm}"], + description: `Returns a Host node for the given VM instance VirtualMachine.\n\nReturns none if no Host can be found.` + }, + "vmFindVirtualHostsForVMScaleSet": { + snippets: ["${1:vmscaleset}"], + description: `Returns a list of Host nodes for the given VM Scale Set instance VirtualMachine.` + }, + "vmFindVirtualHostForInstance": { + snippets: ["${1:service}, ${2:instance_id}"], + description: `Returns a Host node for the given VM instance ID.\n\nReturns none if no Host can be found.` + }, + "getVMPowerStatus": { + snippets: ["${1:result}"], + description: `Process the response after:\nAzure.VirtualMachines.InstanceView or\nAzure.VirtualMachineScaleSets.VirtualMachines.GetInstanceView calls\nand return Power status of the VM` + }, + "vnetFind": { + snippets: ["${1:service}, ${2:id}"], + description: `Returns a AdminCollection node for the given VNET ID.\n\nReturns none if no AdminCollection can be found.\n\nChange History:\n2024-09-17 - VNet type updated (DRDC1-23707)` + }, + "loadBalancerFind": { + snippets: ["${1:service}, ${2:id}"], + description: `Returns a LoadBalancerService node for the given LB ID.\n\nReturns none if no LoadBalancerService can be found.` + }, + "managedDiskFind": { + snippets: ["${1:service}, ${2:id}"], + description: `Returns a StorageVolume node for the given managed disk ID.\n\nReturns none if no node can be found.` + }, + "sqlServerFind": { + snippets: ["${1:service}, ${2:id}"], + description: `Returns a SoftwareInstance node for the given SQL Server ID.\n\nReturns none if no SI can be found.` + }, + "sqlGetEndpointAndAddress": { + snippets: ["${1:si}"], + description: `Returns the endpoint and address for contacting the given SQL\ninstance\n\nReturn (none, none) if the endpoint or address cannot be determined\n\nChange History:\n2023-11-27 Move define body to Core Common Cloud for independence (DRDC1-22256)` + }, + "sqlExtraAttributes": { + snippets: ["${1:db_provider}"], + description: `Returns a table of extra attributes for use in tagging\nAzure database inferred nodes (Database, DatabaseDetail etc)` + }, + "extractStorageAccount": { + snippets: ["${1:uri}"], + description: `Extracts the storage account from the given uri` + }, + "StorageAccountFind": { + snippets: ["${1:service}, ${2:id}"], + description: `Returns a StorageAccount node for the given storage account ID.\n\nReturns none if no node can be found.` + }, + "extractResourceGroupFromId": { + snippets: ["${1:id}"], + description: `Extracts resource group name from the given ID\n\nReturns none if the resource group name cannot be extracted.` + }, + "resourceGroupLink": { + snippets: ["${1:provider}, ${2:node}, ${3:id}"], + description: `Links the given node to its related Resource Group\n\nReturns none if no AdminCollection can be found.\n\nChange History:\n2019-06-05 The search is expanded to capture cases when\ncontained resources located in a different regions (DRDC1-13339)\n2023-08-15 link node to Subnets and NetworkService 'Azure Network Security Group'\nwhen related attrs are present in the node (DRDC1-16275)\n2026-07-17 - Updated search for subnets (DRDC1-30205)` + }, + "addSubscriptionId": { + snippets: ["${1:node}, ${2:da}"], + description: `Adds the subscription ID to the given node (from the DA)` + }, + "createRemovalTracker": { + snippets: ["${1:da}, ${2:name}, ${3:kind}, ${4:is_rel}"], + description: `Create a removal tracker for the given kind and DA` + }, + "updateFailureTimeForService": { + snippets: ["${1:result}, ${2:service_code}"], + description: `Updates the last_update_failure time on the reqested CloudService\nnode, if it can be found` + }, + "extractNetworkAttributes": { + snippets: ["${1:interfaces}, ${2:public_ips}"], + description: `Function to gather network data for Virtual Machines and Azure VMSS Flexible.\n\ninterfaces is a prepared list of interfaces KVPDicts from which we\nextract the necessary attributes.\n\npublic_ips is a discovered cloud API result table for the request\n"Azure.PublicIPAddresses.ListAll" returned by the azure.getRelatedTable\nfunction, it could be none.\n\nReturn values:\nall_ip_addrs, all_mac_addrs, _private_ip_addrs, _public_ip_addrs\nlists of found mac addresses, all IP addresses, private IP addresses and\npublic IP addresses, respectively.\n\nnetwork_security_group_ids is a list of network security group\nidentifiers in the found network interfaces.\nsubnet_ids is a list of network subnet ids in the found network\ninterfaces.` + }, + "getInterfaces": { + snippets: ["${1:interface_table}, ${2:vm_list}, ${3:only_primary}"], + description: `Function to prepare interfaces list for Virtual Machines and Azure VMSS Flexible.\n\ninterface_table is a discovered cloud API result table for the request\n"Azure.NetworkInterfaces.ListAll" returned by the azure.getRelatedTable\nfunction.\n\nvm_list is a list of virtual machines results for which we will gather\nrelated interfaces.\n\nonly_primary is a boolean flag that signals to gather all interfaces or\nonly those that have the Primari flag.\n\ninterfaces is a returned list of interfaces KVPDict dicts that relate\nto a specific virtual machine or VMSS.\n\nChange History:\n2024-05-25 Added interface_id check (DRDC1-23671)` + }, + "runOnceInFirstEndpoint": { + snippets: ["${1:da}"], + description: `The function determines the order of scan launched and, depending on the\norder (if nedpoint is the first), issues either true or false to launch a\nrequest or subsequent node modelling.\nChange History:\n\n2025-07-01 - Add checking for inferred sync. Return False in case of inferred sync to avoid\ndirect request run (DRDC1-26857)` + }, + "runOnceInLastEndpoint": { + snippets: ["${1:da}"], + description: `The function determines the order of scan launched and, depending on the\norder, issues either true or false to launch a request or subsequent node modelling.` + } + }, + "MicrosoftAzure.ContentDeliveryNetwork": { + }, + "MicrosoftAzure.CosmosDB": { + "getDBThroughputSettings": { + snippets: ["${1:da}, ${2:cosmos_sc}, ${3:db_name}"], + description: `Get database throughput settings` + }, + "getTableThroughputSettings": { + snippets: ["${1:da}, ${2:cosmos_sc}, ${3:db_name}, ${4:table_name}"], + description: `Get table throughput settings` + } + }, + "MicrosoftAzure.Databricks": { + }, + "MicrosoftAzure.DataExplorer": { + }, + "MicrosoftAzure.DataFactory": { + }, + "MicrosoftAzure.DataLakeAnalytics": { + }, + "MicrosoftAzure.DNSZones": { + "modelCloudResource": { + snippets: ["${1:result_list}, ${2:REMOVAL_TRACKER_NAME}, ${3:TYPE}"], + description: `This function models cloud resource\n\nChange History:\n\n2022-02-07 - Added cloud_id attribute (DRDC1-18385)\n2023-11-16 - Replaced 'stop' with 'return' (DRDC1-22238)\n` + } + }, + "MicrosoftAzure.EventGrid": { + }, + "MicrosoftAzure.EventHubs": { + }, + "MicrosoftAzure.ExpressRoute": { + }, + "MicrosoftAzure.ExpressRouteDirect": { + }, + "MicrosoftAzure.ExpressRouteGateway": { + }, + "MicrosoftAzure.Firewall": { + "getIPAddresses": { + snippets: ["${1:public_ips}, ${2:public_ip_addrs}, ${3:private_ip_addrs}, ${4:ip_configuration}"], + description: `Function to process public and private IP addresses of the Azure Firewall.\nParameters:\n- public_ips - Result of the Azure.PublicIPAddresses.ListAll call;\n- public_ip_addrs - List of the Azure Firewall public IPs;\n- private_ip_addrs - List of the Azure Firewall private IPs;\n- ip_configuration - IP config in the Azure.Firewalls.ListAll API response;` + } + }, + "MicrosoftAzure.HDInsight": { + }, + "MicrosoftAzure.IoTHub": { + }, + "MicrosoftAzure.KeyVault": { + }, + "MicrosoftAzure.Kubernetes": { + }, + "MicrosoftAzure.LoadBalancer": { + "createLbMembers": { + snippets: ["${1:lb_id}, ${2:port}, ${3:protocol}, ${4:interfaces}, ${5:backend_ip_configurations}, ${6:subscription_id}, ${7:lbm_tracker}"], + description: `Function create LB members and returns them as a list` + } + }, + "MicrosoftAzure.LogicApps": { + }, + "MicrosoftAzure.MachineLearning": { + }, + "MicrosoftAzure.ManagedInstance": { + "searchTomcatServerAndDetail": { + snippets: ["${1:lookup_db_name}"], + description: `Finds and returns the related Apache Tomcat Detail nodes and related\nApache Tomcat Application Server nodes.` + } + }, + "MicrosoftAzure.ManagementGroups": { + "modelManagementGroup": { + snippets: ["${1:tracker}, ${2:management_group_result}, ${3:tenant_id}"], + description: `Parse all management group attributes form management_group_result\nReturn management_group node\n\nChange History:\n\n2022-02-07 Added new attributes (DRDC1-18385)\n2022-03-17 Pattern refactoring (DRDC1-18542)` + } + }, + "MicrosoftAzure.ManagementGroupsNesting": { + "managementNodes": { + snippets: ["${1:provider}, ${2:type}"], + description: `Returns Cloud Management Group Node list` + }, + "nodesMap": { + snippets: ["${1:nodes_list}"], + description: `Returns Cloud Management Group Node map` + }, + "getDescendants": { + snippets: ["${1:da}, ${2:group}"], + description: `Returns descendants Subscription and Cloud Management Group tables for\neach parent Group` + }, + "linkChildToParent": { + snippets: ["${1:child_to_parent}, ${2:children}, ${3:parents}"], + description: `Create Child To Parent relationships` + } + }, + "MicrosoftAzure.MySQL": { + }, + "MicrosoftAzure.NatGateway": { + }, + "MicrosoftAzure.NotificationHubs": { + }, + "MicrosoftAzure.OperationalInsights": { + }, + "MicrosoftAzure.PostgreSQL": { + }, + "MicrosoftAzure.Purview": { + }, + "MicrosoftAzure.RecoveryServices": { + }, + "MicrosoftAzure.Redis": { + }, + "MicrosoftAzure.ResourceGroups": { + "getNodesOfKind": { + snippets: ["${1:services}, ${2:node_kind}, ${3:ids}"], + description: `This function search related using slices\n\nChange History:\n\n2023-05-01 - LoadBalancerInstance type changed for deep Azure Application\nGateway discovery update (DRDC1-20122)\n2023-05-15 - added support for NetworkService node (DRDC1-20214)\n2023-11-01 - added support for 'Azure Virtual WAN' Collection (DRDC1-18481)\n2026-08-05 - added support for 'Azure Synapse Analytics Workspace' AdminCollection (DRDC1-29216)` + } + }, + "MicrosoftAzure.ServiceBus": { + }, + "MicrosoftAzure.ServiceFabric": { + }, + "MicrosoftAzure.SQLServer": { + }, + "MicrosoftAzure.SqlVirtualClusters": { + }, + "MicrosoftAzure.SqlVirtualMachines": { + }, + "MicrosoftAzure.StorageAccounts": { + }, + "MicrosoftAzure.Storage.Files": { + "linkHostToStorageFiles": { + snippets: ["${1:host}"], + description: `Link REMOTE FileSystems on the Host to StorageFiles` + }, + "linkStorageFileShareToHost": { + snippets: ["${1:fs}"], + description: `Link EXPORTED FileSystem to REMOTE FileSystems on Hosts` + } + }, + "MicrosoftAzure.Storage.ManagedDisks": { + }, + "MicrosoftAzure.Storage.Queues": { + }, + "MicrosoftAzure.StorSimple": { + }, + "MicrosoftAzure.StreamAnalytics": { + }, + "MicrosoftAzure.Subscriptions": { + }, + "MicrosoftAzure.SupportingTables": { + }, + "MicrosoftAzure.SynapseAnalytics": { + "linkWorkspaceResources": { + snippets: ["${1:workspace}, ${2:attrs}, ${3:result}, ${4:rel_tracker}"], + description: `Function links the Synapse Analytics workspace to its Managed ResourceGroup,\nStorage Account and SQL Server instances.` + } + }, + "MicrosoftAzure.Tenants": { + }, + "MicrosoftAzure.VirtualMachines": { + "classifyOS": { + snippets: ["${1:properties}, ${2:instance_view}, ${3:attrs}"], + description: `Given the image OS name and SKU from either an imageReference table or\nthe extended.instanceView dictionary use the OSClassify function to\nobtain the OS attributes for a given VM.\n\nChange History:\n2024-09-03 - Added image_sku, image_version, image_id (DRDC1-24223)\n2025-04-29 - updated logic for ubuntu and window offers (DRDC1-26244)` + } + }, + "MicrosoftAzure.VirtualNetworks": { + "modelSubnets": { + snippets: ["${1:da}, ${2:vnet}, ${3:provider}, ${4:service}, ${5:tracker}, ${6:resource_group}, ${7:subnets}"], + description: `Model Azure subnets as Subnet node\n\nIf subnet contains both IPv4 and IPv6 ranges then\ntwo Subnet nodes will be created accordingly` + }, + "modelNetworkSecurityGroups": { + snippets: ["${1:da}, ${2:provider}, ${3:vnets}, ${4:subnets}, ${5:tracker}"], + description: `Model 'Azure Network Security Group' as NetworkService node` + }, + "modelNetworkPeerings": { + snippets: ["${1:da}, ${2:resource_group}, ${3:vnet}, ${4:tracker}"], + description: `Model 'Microsoft Azure Virtual Network Peering' as NetworkService node` + }, + "modelNetworkGateways": { + snippets: ["${1:da}, ${2:resource_group}, ${3:service}, ${4:tracker}"], + description: `Model 'Azure Virtual Network Gateway' as NetworkService node` + } + }, + "MicrosoftAzure.VMScaleSet": { + "extractMembersList": { + snippets: ["${1:vm_results}, ${2:vmscaleset_id}"], + description: `The function filters only those VM Flexible VMSS results that we need\nfor further processing of network interfaces and IP addresses.\n\nvm_results is a discovered cloud API result table for the request\n"'Azure.VirtualMachines.ListAll'" returned by the\ncloud.getRelatedResults function.\nvmscaleset_id is a string with VMSS id.\n\nReturn values:\nflexible_members is a list of virtual machines results that are members\nof the Flexible VMSS we are looking for.` + }, + "processMemberUUIDS": { + snippets: ["${1:member_uuids}, ${2:instance_id}"], + description: `This function processes a vmscaleset's member_uuids into a list of\npossible uuids for both linux and windows VMs.\n\nReturn values:\nuuids: a list of processed member_uuids from the scaleset.\n\nChange History:\n\n2026-07-09 Added direct UUID matching (DRDC1-30148)` + } + }, + "MicrosoftAzure.VWAN": { + }, + "MicrosoftAzure.WebPubSub": { + }, + "Microsoft.ActiveDirectoryDomainServices": { + }, + "Microsoft.Antigen": { + }, + "Microsoft.AppFabric": { + }, + "Microsoft.ApplicationCenter": { + }, + "Microsoft.Azure.ServiceFabric": { + }, + "Microsoft.BIDS": { + }, + "Microsoft.BizTalkServer": { + }, + "Microsoft.CommerceServer": { + }, + "Microsoft.CommunicationsServer": { + }, + "Microsoft.ConnectedServicesFramework": { + }, + "Microsoft.DHCPServer": { + }, + "Microsoft.DistributedFileSystems": { + }, + "Microsoft.DNSServer": { + }, + "Microsoft.Dynamics.CRM": { + }, + "Microsoft.Exchange": { + "runPowerShell": { + snippets: ["${1:host}, ${2:bin_dir}, ${3:command}"], + description: `Keine Beschreibung verfügbar.` + }, + "getEdition": { + snippets: ["${1:host}, ${2:bin_dir}, ${3:product_version}"], + description: `Find edition of Microsoft Exchange Server\n\nIt is not possible to directly find the edition of the Exchange Server we\nhave just discovered. Instead we must find the internal name of the Exchange\nServer we have just discovered (the cms_name), then query Exchange for a\nlist of all known Exchange Servers with their cms_name and edition.` + } + }, + "Microsoft.ForefrontProtectionServerManagementConsole": { + }, + "Microsoft.ForefrontServerSecurityManagementConsole": { + }, + "Microsoft.HostIntegrationServer": { + }, + "Microsoft.HPCServer": { + }, + "Microsoft.HyperV_Server": { + "generateKeyForVM": { + snippets: ["${1:host}, ${2:vm_uuid}"], + description: `Generate the VM key for a VM running on HyperV` + } + }, + "Microsoft.IdentityLifecycleManager": { + }, + "Microsoft.IIS": { + "getIISVersion": { + snippets: ["${1:host}, ${2:registry_key_location}"], + description: `Get IIS version using Registry or Inferred Versioning based on the version of the OS\n\nChange History:\n2012-11-01 fixed conditions for obtaining of registry values (#16589)\n2013-07-09 Remove false positive checking, the calling patterns are unlikely\nto trigger on a non IIS process\n2015-03-30 Updated function to always extract two levels of product version (TKU-3183)\n2023-03-21 Add powershell versioning (DRDC1-20891)\n2026-04-06 Updated escape sequence (DRDC1-29309)` + } + }, + "Microsoft.IIS_Extended": { + "fix_xml": { + snippets: ["${1:xml_content}"], + description: `Removes occasional "&" characters after built in ADDM passwords encryption` + }, + "getApplicationHostConfig": { + snippets: ["${1:host}, ${2:sys_root}"], + description: `get IIS ApplicationHost configuration using Command or File methods\n\nChange History:\n2013-09-16 - removed special '&' characters from xml file(QM001800629)\n2019-02-12 - updated function to use Future.runCommand\n2019-09-23 - removed password attribute from command output (DRDC1-13955)\n2019-12-24 - updated command to get config (DRDC1-14353)\n2021-05-24 - updated to use DiscoveryFunctions.runPowerShell()\n2026-04-06 - updated escape sequence (DRDC1-29309)` + }, + "getSites": { + snippets: ["${1:host}, ${2:sys_root}, ${3:websites}"], + description: `Keine Beschreibung verfügbar.` + }, + "processConnectionString": { + snippets: ["${1:host}, ${2:connection_string_full}"], + description: `Keine Beschreibung verfügbar.` + }, + "convertBindingsToEndpoints": { + snippets: ["${1:host}, ${2:bindings}"], + description: `Converts IIS bindings to listening ports and endpoints (ip:port)\n\nChange History\n2025-07-21 - Added check if host all_ip_addrs attribute exists (DRDC1-26707)\n2026-04-06 - Updated escape sequence (DRDC1-29309)` + } + }, + "Microsoft.InternetExplorer": { + }, + "Microsoft.Intune": { + "doRequest": { + snippets: ["${1:target}, ${2:url}"], + description: `Does GET request for \nReturns decoded result (list), link for the next request (pagination),\nand DiscoveredAPIResult node.\nReturns (none, none, result) on error.` + }, + "doBulkRequest": { + snippets: ["${1:target}, ${2:ids}, ${3:url}, ${4:expression}"], + description: `Does POST request for bulk API with given list of requests.\nReturns decoded responses (list) on success, none on error.` + }, + "getPersons": { + snippets: [""], + description: `Get all Person nodes and return a table mapping\nperson name to Person node.` + }, + "getMAC": { + snippets: ["${1:mac}"], + description: `Format the given MAC address into a colon-separated format` + }, + "inferPerson": { + snippets: ["${1:person_map}, ${2:person_data}"], + description: `Get or create Person node based on given data. Searches for existing\nPerson by user_id or display_name, updates intune_id if needed, or\ncreates a new Person if not found.` + }, + "processDevices": { + snippets: ["${1:ds}, ${2:decoded_response}"], + description: `Process the decoded response from Intune API and create/update\nHost and Person nodes. Creates Ownership relationships between\nPerson and Host, and adds external IDs.\n\nChange History:\n2026-06-17 - Updated to use doBulkRequest() calls for fetching additional\ndevice details and installed applications (DRDC1-29808)\n2026-07-23 - Added handling for VMware serial numbers and double quotes\nin device names (DRDC1-30323)` + }, + "importDevices": { + snippets: ["${1:ds}, ${2:url}"], + description: `Does REST API call to fetch managed devices, processes the response,\nand confirms the DiscoveredAPIResult. If pagination exists, adds\nmetadata for worker pattern to continue.\n\nChange History:\n2026-06-17 - Updated processDevices() call,\nadded certificates call (DRDC1-29808)` + }, + "processCertificates": { + snippets: ["${1:ds}, ${2:decoded_response}"], + description: `Process the decoded response from Intune API and create\nCertificate nodes.` + }, + "importCertificates": { + snippets: ["${1:ds}, ${2:url}"], + description: `Does REST API call to fetch managed device certificates, processes\nthe response, and confirms the DiscoveredAPIResult. If pagination\nexists, adds metadata for worker pattern to continue.` + } + }, + "Microsoft.ISAServer": { + }, + "Microsoft.LightweightDirectoryServices": { + }, + "Microsoft.LyncClient": { + }, + "Microsoft.LyncClientFunctions": { + "getVersioning": { + snippets: ["${1:process}"], + description: `Versioning from WMI and packages\n\nChange History:\n2023-01-17 - Updated (?i) flag placement in regular expression (DRDC1-20566)` + } + }, + "Microsoft.LyncCommonFunctions": { + "getInstallDir": { + snippets: ["${1:host}, ${2:process_cmd}"], + description: `Function to obtain installation directory\n\nChange History:\n2026-04-06 - Updated escape sequence (DRDC1-29309)` + }, + "determineVersion": { + snippets: ["${1:host}, ${2:installdir}, ${3:full_cmd}, ${4:package_reg}"], + description: `Attempts to identify product version using WMI,\nRegistry and Package method.\nSets product_version to be marketing version\n\nChange History:\n2026-04-06 - Updated escape sequence (DRDC1-29309)` + }, + "modelLicenseDetail": { + snippets: ["${1:host}, ${2:si_node}, ${3:installdir}, ${4:full_cmd}"], + description: `Licensing Function\n\nChange History:\n2014-09-17 - Add short_name to license detail node\n2026-04-06 - Updated escape sequence (DRDC1-29309)` + } + }, + "Microsoft.LyncServer": { + "createServiceDetail": { + snippets: ["${1:global_site}, ${2:service_block}, ${3:site_table}, ${4:pool_table}"], + description: `Create Detail for Lync/SfB Service and link it to related Site.\n\nglobal_site - global site Software Cluster node\nservice_block - service configuration block\nsite_table - central and remote Software Cluster nodes table\npool_table - pool fqdn to computer fqdns table\n\n'Registrar' Service example:\n\nIdentity : Registrar:pool01.\nMonitoringServer :\nMonitoringDatabase : MonitoringDatabase:sqldb-12.\nMirrorMonitoringDatabase :\nArchivingServer :\nArchivingDatabase : ArchivingDatabase:sqldb-12.\nMirrorArchivingDatabase :\nWebServer : WebServer:pool01.\nEdgeServer : EdgeServer:edge.\nUserServer : UserServer:pool01.\nSipPort : 5061\nWebPort : 444\nSipHealthPort :\nSipServerTcpPort :\nSipClientTlsPort :\nLyssWcfMtlsPort : 5077\nXmppGatewaySipPort : 5098\nWinFabClientConnectionPort : 5092\nWinFabLeaseAgentPort : 5091\nWinFabFederationPort : 5090\nWinFabIPCPort : 5093\nWinFabReplicationPort : 5094\nEnableAutomaticFailover : False\nFailbackDetectionInterval :\nFailureDetectionInterval :\nBackupRegistrar :\nDependentServiceList : {ApplicationServer:pool01., EdgeServer:edge., MediationServer:pool01., TrustedApplicationPool:video....}\nServiceId : 1-Registrar-9\nSiteId : Site:SomeSite\nPoolFqdn : pool01.\nVersion : 6\nRole : Registrar\n\nChange History:\n2021-11-09 - Replaced SoftwareComponent node with Detail node (DRDC1-13426)` + }, + "getComputerId": { + snippets: ["${1:host}"], + description: `Get current host pool, fqdn\n\nChange History:\n2021-05-24 - Updated to use DiscoveryFunctions.runPowerShell()` + }, + "getCsConfigurationStoreLocation": { + snippets: ["${1:host}, ${2:client_node}"], + description: `Get Lync ConfigurationStore Databases\n\nChange History:\n2016-10-27 - Updated function names according to the RDBMS_Functions changes (DRDC1-5767)\n2021-05-24 - Updated to use DiscoveryFunctions.runPowerShell()` + }, + "checkForSkype": { + snippets: ["${1:type}, ${2:short_type}, ${3:full_version}"], + description: `Use the latest "Microsoft Skype for Business" product name if full_version >= 6.0` + } + }, + "Microsoft.Microsoft_NET": { + "confirmMatchingPackage": { + snippets: ["${1:host}, ${2:package_versions}, ${3:registry_version}"], + description: `Check if we can confirm registry_version using either a powershell\ncommand or the package list. If we cannot it is likely the\nversion in the registry has been uninstalled.\n\nInputs:\nhost\npackage_versions - A list of .NET versions obtained from the package\nversioning method\nregistry_version - A single .NET version obtained from the registry\nversioning method\n\nOutputs:\nTrue or False dependent on whether the registry version matches any\nof the package versions\n\nChange History:\n2022-03-30 - Now does false positive checking using powershell as well\nas packages\n2022-06-10 - Use better powershell command for versioning (DRDC1-19209)` + }, + "getPackageVersions": { + snippets: ["${1:host}, ${2:package_regexes}"], + description: `Finds a list of valid package versions\n\nTakes: A list of regexes to find package names\nReturns: A list of versions that match that regex` + }, + "PSVersionTable": { + snippets: ["${1:host}, ${2:attr}"], + description: `Run PSVersionTable Powershell command\n\nTakes:\nHost\nAttribute to get from PSVersionTable command (e.g. CLRVersion)\n\nReturns: A list of versions\n\nChange History:\n2026-04-06 - Updated escape sequence (DRDC1-29309)` + } + }, + "Microsoft.MSCluster": { + "_getStatusDescription": { + snippets: ["${1:status_table}, ${2:status_id}"], + description: `Keine Beschreibung verfügbar.` + }, + "getMemberStatus": { + snippets: ["${1:status_id}"], + description: `Keine Beschreibung verfügbar.` + }, + "getServiceStatus": { + snippets: ["${1:status_id}"], + description: `Keine Beschreibung verfügbar.` + }, + "getPaths": { + snippets: ["${1:wmi_results}"], + description: `Keine Beschreibung verfügbar.` + }, + "getServiceGroupType": { + snippets: ["${1:type_id}"], + description: `Keine Beschreibung verfügbar.` + }, + "fixWMIResults": { + snippets: ["${1:type}, ${2:results}"], + description: `Fix corrupted WMI queries (DRDC1-20505)\n- add missing __RELPATH\n- fix PrivateProperties attr value\n- fix GroupComponent attr value\n- fix PartComponent attr value` + }, + "wmiFollowAssociations": { + snippets: ["${1:host}, ${2:namespace}, ${3:initial_paths}, ${4:associations}"], + description: `Starting from initial_paths, a list of WMI source instance paths,\nfollows multiple WMI associations to reach a set of target instances.\n\nEach entry in the association list must be a sub-list of four entries:\n1. Association class name\n2. A pair of attributes to retrieve from each instance in step 1.\nThe first attribute will be used to match the path of the previous\nclass ended up on (or initial_paths if the first time round).\nThe second attribute will be used to match against the path of\ninstances in step 3.\n3. The target class name, reached via the association in step 1.\n4. Attributes to retrieve from the target instances. Attributes\ncan be collected from multiple target classes as associations\nare followed.\n5. An optional list of aliases for the attributes specified above,\nto use in the final results. This allows the same named\nattributes to be collected from different target classes. If\naliases are not used and there are duplicate attribute names,\nthe last retrieved value of the attribute appears in results.\n\nReturns a table mapping from source path to a table of target instances\nthat were reached from each source path. The sub-table is keyed by target\npath, with the values being a list of length two - the target instance,\nand a final table of target attribute names->values.\n\nReturns none if any of the WMI calls failed along the way.\n\nChange History:\n2017-02-01 - Prevented __RELPATH being executed as the only returned attribute in a WMI query (DRDC1-8049)\n2017-05-16 - We now accept a query where _RELPATH is not returned (DRDC1-8556)\n2025-09-11 - If no response to query, separate it into parts (DRDC1-25235)` + }, + "getPossibleOwners": { + snippets: ["${1:owners_results}"], + description: `Get possible_owners for all resources in the form of dictionary:\nresource rel_path -> [member_name1, member_name2, ...]` + }, + "addMemberIPs": { + snippets: ["${1:mem_node}, ${2:network_details_per_node}"], + description: `Get IP attrs to ClusterMember node\n\nmem_node - related ClusterMember node\nnetwork_details_per_node - related item of WMI query result keyed by rel_path:\n` + }, + "modelClusterMembers": { + snippets: ["${1:members}, ${2:cluster}, ${3:network_by_cluster_nodes}"], + description: `Model MS cluster nodes as ClusterMembers for each item in WMI result()\n\nmembers - list of WMI query results with members information\ncluster - Cluster node\nnetwork_by_cluster_nodes - table of member's network info keyed by node rel_path:\n\nReturn all members in the form of dictionary:\nmember rel_path -> member_node` + }, + "getResourceMapping": { + snippets: [""], + description: `Define resource types of interest that should have a ClusterResource\nnode created and the properties that should be stored as attributes.` + }, + "modelClusterResources": { + snippets: ["${1:resources}, ${2:resource_mapping}, ${3:service_node}, ${4:resource_possible_owners}"], + description: `Model MS Resources as a ClusterResource node for each item in\nWMI result () if its type in \n\nresources - a list of WMI query results for ClusterResources\nresource_mapping - a table of supported resource types\nservice_node - related ClusterService node\nresource_possible_owners - a table of resource possible_owners keyed by resource rel_path\n\nChange History:\n2023-09-20 - Handle case where resources contains raw json (DRDC1-21856)` + }, + "getAllPossibleOwners": { + snippets: ["${1:cluster_services}, ${2:member_names}"], + description: `Collect unique set of possible owners with additional information\n- related ClusterMember nodes\n- related ClusterService nodes\n\ncluster_services - a table of all ClusterServices nodes keyed by service rel_path\nmember_names - a list of related ClusterMember names\n\nReturn results in the form of dictionary:\npossible_owners_str -> table(names->[...], services->[...])` + }, + "getNameForGroupCluster": { + snippets: ["${1:service_nodes}"], + description: `Get name for Failover Group Cluster from ClusterService attributes:\n- dns_names (top priority because they are similar to Host names)\n- name` + }, + "modelGroupCluster": { + snippets: ["${1:cluster}, ${2:possible_owners_str}, ${3:service_nodes}"], + description: `Model Microsoft Failover Group as Cluster\n\ncluster - Cluster node\npossible_owners_str - a string of joined list of related possible_owners\nservice_nodes - a list of related ClusterService nodes` + } + }, + "Microsoft.MSMQ": { + "get_product_version": { + snippets: ["${1:source}"], + description: `Keine Beschreibung verfügbar.` + } + }, + "Microsoft_NLB": { + }, + "Microsoft.OfficeCommunicator": { + }, + "Microsoft.OfficeGroove": { + }, + "Microsoft.OfficeProjectPortfolioServer": { + }, + "Microsoft.OfficeWebAppsServer": { + }, + "Microsoft.OperationsManager": { + }, + "Microsoft.PerformancePointServer": { + }, + "Microsoft.PowerAutomate": { + }, + "Microsoft.PowerShell": { + "activeVersioningCore": { + snippets: ["${1:host}"], + description: `Obtains version from command output\n\nChange History:\n2026-04-06 - Updated escape sequence (DRDC1-29309)` + }, + "activeVersioning": { + snippets: ["${1:host}, ${2:script}"], + description: `Keine Beschreibung verfügbar.` + }, + "modelSI": { + snippets: ["${1:host}, ${2:type}, ${3:key_type}, ${4:short_si_type}, ${5:full_version}"], + description: `Keine Beschreibung verfügbar.` + } + }, + "Microsoft.ProClarityAnalyticsServer": { + }, + "Microsoft.ProjectServer": { + }, + "Microsoft.RemoteDesktopServices": { + }, + "Microsoft.RightsManagementServices": { + }, + "Microsoft.SCCMFunctions": { + "get_package_versioning": { + snippets: ["${1:host}, ${2:packages_list}"], + description: `Obtain package versioning\n\nChange History:\n2019-05-30 - Move version mapping code to getProductVersion\n2026-03-26 - Updated logic to obtain greatest version from candidate\npackages and set full_version if only product version\nis obtained (DRDC1-29078)\n2026-03-27 - Fixed elif branch overwriting full_version with a lesser\ncandidate when only product_version matched (DRDC1-29078)` + }, + "getProductVersion": { + snippets: ["${1:full_version}"], + description: `Map full_version to product_version\n\nTakes : Full_version\nReturns : Product_version\n\nChange History:\n2020-05-27 - Updated logic of product_version mapping (DRDC1-15191)` + }, + "get_additional_attributes": { + snippets: ["${1:host}"], + description: `Obtain instance and domain name from the registry\n\nChange History:\n2024-04-11 - Check extra registry keys` + }, + "create_site_server_si": { + snippets: ["${1:host}, ${2:si_type}, ${3:short_si_type}, ${4:full_version}, ${5:product_version}, ${6:instance}, ${7:domain}"], + description: `Define the name and product_version of the Server SI, then create the SI\nusing these and other attributes\n\nChange History:\n2014-08-27 - Added short_name attribute to SI (TKU-2353)` + }, + "create_client_si": { + snippets: ["${1:host}, ${2:si_type}, ${3:short_si_type}, ${4:full_version}, ${5:product_version}, ${6:site_server}, ${7:domain}"], + description: `Define the name and product_version of the Client SI, then create the SI\nusing these and other attributes` + }, + "link_to_database": { + snippets: ["${1:host}, ${2:si}"], + description: `Link to remote database based on value of registry keys\n\nChange History:\n2016-11-11 - Updated function names according to the Common_Functions changes (DRDC1-5767)` + } + }, + "Microsoft.SCCMVersions": { + }, + "Microsoft.SCOMFunctions": { + "get_version": { + snippets: ["${1:host}, ${2:process_cmd}, ${3:package_regexes}"], + description: `Obtain version information from registry and package\nChange History:\n2017-06-13 - Added new reg keys where full_version could be obtained from (DRDC1-8428)\n2019-08-06 - Get version mappings from either local or imported tables (DRDC1-13253)\n2020-08-18 - Use only one version mapping table for modern versions (DRDC1-15460)` + } + }, + "Microsoft.SCOMVersions": { + }, + "Microsoft.SharePoint": { + }, + "Microsoft.SharePointServer_VersionTables": { + }, + "Microsoft.SharePointServices_VersionTables": { + }, + "Microsoft.SpeechServer": { + }, + "Microsoft.SQLAgent": { + "linkAgent": { + snippets: ["${1:host}, ${2:agent_si}"], + description: `Links Agent to Server instance` + }, + "parseLogfile": { + snippets: ["${1:host}, ${2:filename}"], + description: `Parses agent log file\n\nTakes:\nHost, Log file name\n\nReturns:\nFull Version, Product Version, Service Pack, Cumulative Update\n\nChange History:\n2021-11-19 - Replaced fileGet() with runCommand() to avoid processing\nhuge log files (DRDC1-17759)\n2022-05-18 - Use find command not findstr to parse files, find can handle\nunicode files (DRDC1-19018)\n2025-09-16 - Use gen_versioning function from SQLServerFuncs (DRDC1-27140)` + }, + "getVersionFromNode": { + snippets: ["${1:host}, ${2:process}, ${3:instance}"], + description: `Keine Beschreibung verfügbar.` + } + }, + "Microsoft.SQLServer": { + "find_instance_from_registry": { + snippets: ["${1:host}, ${2:process}"], + description: `Get instance name from the registry\n\nWe list all registry keys that could possibly refer to the servername.\nWe then check if each has a port that corresponds to the\nDiscoveredListeningPort of the process. If it does we return that servername` + }, + "expand_process": { + snippets: ["${1:process}"], + description: `Improve the chance the trigger process is fully qualified\n\nTakes : Trigger process (DiscoveredProcess node)\nReturns : A hopefully improved trigger process (two string - cmd & args)` + }, + "gen_versioning": { + snippets: ["${1:full_version}"], + description: `Maps full version to product_version, service_pack and cumulative_update\n\nChange History:\n2017-03-02 - Remove separate parsing for WMI versioning, this is now handled\nin the main pattern (DRDC1-8230)\n2017-04-04 - Bug fix in how we handle 3 level versioning (DRDC1-8482)\nMajor rewrite to use handle split of version tables into modern\nand legacy (DRDC1-7692)\n2018-06-08 - Don't set product_version := full_version if all other methods\nfail, set it to blank (DRDC1-11445)\n2018-10-04 - Find product_version through zero_version if other methods\nfail (DRDC1-12102)\n2020-07-20 - Never check MSSQL_Linux_Version, all this information should\nbe in other versioning tables (DRDC1-15465)\n2022-04-29 - Correctly handle versions like 8.00.0760 (DRDC1-18852)` + }, + "get_registry_queries": { + snippets: ["${1:process}, ${2:instance_name}"], + description: `Get list of registry directories whose subkeys have information about this instance\n\nTakes - Host, Instance name\nReturns - List of directory keys\n\nChange History:\n2024-02-02 - Added additional registry key check (DRDC1-22432)` + }, + "parse_wmi_versioning": { + snippets: ["${1:raw_version}"], + description: `The WMI versioning is in a slightly unusual format, and we need\nto map it to a standard one\nFor legacy versions we map 2007.0100.4000.00 to 10.00.4000.00\nFor 2008 R2 we map 2009.100.6542.0 to 10.50.6542.0\nFor modern versions we map 2014.120.5538.0 to 12.0.5538.0\n2014.120.6439.10 to 12.0.6439.10\n2015.131.5026.0 to 13.0.5026.0` + }, + "db_versioning": { + snippets: ["${1:host}, ${2:bind_address}, ${3:lport}"], + description: `makes SQL request to the database for identity information\n\nChange History:\n2020-06-18 - Only report full_verison and edition, other attributes are\nobtained later in gen_versioning (DRDC1-14846)\n2021-11-15 - Updated to use optional flag for DB queries (DRDC1-17603)\n2025-08-29 - Updated to return sp (DRDC1-27034)` + }, + "extra_port_check": { + snippets: ["${1:host}, ${2:process_pid}, ${3:port_list}"], + description: `Check each port from list in discovery acess node by list of network connections.\nIf port from list is currently listening - return port value.` + }, + "compare_sp": { + snippets: ["${1:list_of_sp}"], + description: `This is the function that compare SPs and return the latest one` + }, + "package_versioning": { + snippets: ["${1:host}"], + description: `Keine Beschreibung verfügbar.` + }, + "find_version": { + snippets: ["${1:process}, ${2:bind_address}, ${3:port}, ${4:servername}"], + description: `Keine Beschreibung verfügbar.` + } + }, + "Microsoft.SQLServerAS": { + }, + "Microsoft.SQLServerIS": { + }, + "Microsoft.SQLServerRS": { + "linkedSIs": { + snippets: ["${1:host}, ${2:instance}"], + description: `Find the linked SQL Server SI. It might be on either a host or a cluster\n\nChange History:\n2020-06-18 - If there is a local SQL Server SI and a SQL Server SI on a\nlinked cluster, return []. We cannot be certain which we\nshould link to (DRDC1-14846)` + }, + "versioning": { + snippets: ["${1:process}, ${2:component}, ${3:instance}"], + description: `Look for version information using DB queries, WMI queries, Registry queries,\nPackage queries\n\nTakes:\n* Trigger process\n* Component (Analysis, Integration, Reporting)\n* Instance name (optional)\n\nReturns\n* linked_si\n* version\n* product_version\n* service_pack\n* cumulative_update\n* edition\n\nChange History:\n2024-11-13 - Improve WMI and package versioning (DRDC1-23954)\n2025-03-25 - Parse WMI versioning to ensure it is in the correct\nformat (DRDC1-25430)\n2025-09-18 - Updated WMI and package versioning\nto separate versions that can be installed on a host. (DRDC1-27520)` + } + }, + "Microsoft.SQLServer_Extended": { + "execute_showDatabasesSelect_query": { + snippets: ["${1:si}"], + description: `Attempt to get list of databases and information about them from database queries\n\nTakes:\nsi - Software Instance to query\n\nReturns:\nA table - Key is db_name, value is a list\n[db_size, compatability_level, physical_names, state, db_id,\nrecovery_model_desc, collation_name, is_auto_close_on,\nis_read_committed_snapshot_on, snapshot_isolation_state_desc]\n\nChange History\n2015-09-01 - DIP call should reference the host the database is running\non, not the local host (QM001885706)\n2015-09-29 - DIP call can use either db_endpoint or port, but must have at\nleast one (QM001889817)\n2017-10-27 - Will always run showSpHelpDbAsSelect, we need this to get\nphysical_name (DRDC1-9608)\n2018-08-01 - Major tidy (DRDC1-10533)\n2019-12-04 - Strip database names (DRDC1-14047)\n2021-10-05 - Report database state (DRDC1-17003)\n2022-04-27 - Use extendedSQLQuery function (DRDC1-18287)\n2024-01-10 - Handle situations where we cannot run sp_databases (DRDC1-21556)\n2024-09-18 - Updated to extract additional attributes (DRDC1-24480)\nupdated to prevent possible ECA error (DRDC1-24802)` + }, + "shouldIgnoreDatabase": { + snippets: ["${1:si}, ${2:db_name}"], + description: `Returns true if the given database name is one we are configured to ignore` + }, + "extractDBSize": { + snippets: ["${1:si}, ${2:db_name}, ${3:row}"], + description: `Extracts the database size from the given row.\n\nsi - MS SQL Server SoftwareInstance\nrow - Query result row\n\nReturns the db size in KB (integer value) or none if the size cannot\nbe extracted` + }, + "getDBListFromCommand": { + snippets: ["${1:host}, ${2:product_version}, ${3:base_dir}, ${4:servername}, ${5:mssql}"], + description: `This function runs the osql.exe command to obtain a list of databases\n\nIt returns a list of the database names, or none if the command fails\n\nChange History:\n\n2015-04-20 - added new configuration option to exclude schema names based on substring\n2015-07-14 - Better parsing of 'SELECT Name FROM sysdatabases'\nto allow for database names containing spaces (QM001882884)\n2015-09-11 - Added an alternative connection option for clustered configuration (QM001886596)\n2015-10-15 - Added an alternative approach of tools_path extraction (QM001887767)(QM001887528)\n2016-03-25 - Improved parameter forming for osql connection string,\nMSSQL cluster name is used to connect to clustered instances(085659)\n2017-06-05 - Update for new Database kind\n2017-07-24 - Refactored to return a list of database names. Now returns\nnone on failures not an empty list.\n2018-07-11 - Improve parsing of osql.exe (DRDC1-10382)\n2018-07-31 - Improve parsing of osql.exe (DRDC1-11727)\n2019-02-26 - Updated pattern to use Future.runCommand() and\nDiscoveryFunctions.escapeArg functions\n2019-08-07 - More robust means of removing header and footer (DRDC1-13691)\n2020-07-13 - added more accurate check for default 'MSSQLSERVER' instance name (DRDC1-15134)\n2021-06-10 - Added support for sqlcmd command (DRDC1-16998)\n` + }, + "queryDatabases": { + snippets: ["${1:si}"], + description: `Run queries to obtain the list of databases in the SQL Server.\n\nTakes: SI to query\n\nReturns a table:\nKey is database name\nValue is [size (in Kb), compatibility_level, physical_names, state, db_id]\n\nChange History:\n2017-08-23 - added compatibility level extraction for databases\n2017-10-27 - Now reports physical_name of databases (DRDC1-9608)\n2018-06-26 - Run showDatabaseSizes or get_db_individ if some database have\nsizes and some don't (DRDC1-11386)\n2018-08-01 - Some processing now moved to showDatabasesSelect_query (DRDC1-10533)\n2019-04-17 - Make sure we exclude databases we've been told to ignore (DRDC1-12734)\n2022-04-27 - Use modern discovery.sqlQuery command (DRDC1-18287)\n2024-01-10 - Ensure sp_helpdb does not overwrite any existing information\non database size (DRDC1-21556)` + }, + "createDatabases": { + snippets: ["${1:si}, ${2:dbs}, ${3:attributes}"], + description: `Create nodes to represent each database.\n\nsi - MS SQL Server SoftwareInstance,\ndbs - Table mapping database name to size and compatibility level,\nattributes - Optional table of extra attributes to set on the nodes.\n\nChange History:\n\n2017-08-23 - added compatibility level to the database attributes\n2017-10-27 - Add physical_name to database node\n2021-10-05 - Database state is now in the attributes, report this on the\ndatabase node (DRDC1-17003)\n2024-11-04 - Added additional attributes (DRDC1-24480)` + }, + "createTables": { + snippets: ["${1:si}, ${2:db}, ${3:tables}, ${4:attributes}"], + description: `Create nodes for the given tables\n\nsi - MS SQL Server SoftwareInstance,\ndb - Database node,\ntables - List of table results,\nattributes - Optional table of extra attributes to set on the nodes.\n\nChange History:\n2025-01-07 - Add table size (DRDC1-23802)` + } + }, + "Microsoft.SQLServer_VersionTables": { + }, + "Microsoft.SQL_Server_Modern_Versions": { + }, + "Microsoft.SystemCenterConfigurationManager": { + }, + "Microsoft.SystemCenterDataProtectionManager": { + }, + "Microsoft.SystemCenterOperationsManager": { + }, + "Microsoft.SystemCenterReportingManager": { + }, + "Microsoft.SystemCenterVirtualMachineManager": { + "get_pv": { + snippets: ["${1:full_version}"], + description: `Obtain ancillary version information from the full_version\n\nTakes: full_version\nReturns: pr_version, service_pack, patch, build` + } + }, + "Microsoft.SystemsManagementServer": { + }, + "Microsoft.ThreatManagementGateway": { + }, + "Microsoft.TMGFunctions": { + "versioning": { + snippets: ["${1:host}"], + description: `Obtains version from package and registry\n\nChange History:\n2023-01-17 - Updated (?i) flag placement in regular expression (DRDC1-20566)` + }, + "createBAI": { + snippets: ["${1:host}, ${2:short_type}"], + description: `Creates a second order SI containing all TMG SIs on the host that includes details of the edition\n(Note: The function creates a second order SI, not a BAI. It is called createBAI for reasons of brevity)` + }, + "createSI": { + snippets: ["${1:host}, ${2:process}, ${3:full_version}, ${4:app_type}"], + description: `Obtains SI attributes such as build, service_pack, product_version and\ncomponent. Then uses this information to create an SI\n\nChange History:\n2023-01-17 - Updated (?i) flag placement in regular expression (DRDC1-20566)` + } + }, + "Microsoft.VisualStudio": { + "versioning_function": { + snippets: ["${1:process}, ${2:host}"], + description: `The common versioning block for shared by Microsoft Visual Studio patterns\n\nChange History:\n2019-03-13 - Allows for full version to more easily match internal\nversion via lookup table (DRDC1-4380)\n2019-03-14 - Added service_pack support (DRDC1-4380)\n2023-01-17 - Updated (?i) flag placement in regular expression (DRDC1-20566)\n2023-09-05 - Better handling of build numbers (DRDC1-21605)\n- Added new buildToFull lookup table (DRDC1-21605)\n` + } + }, + "Microsoft.VisualStudioTeamFoundation": { + "getProductBuild": { + snippets: ["${1:full_version}, ${2:package_name}"], + description: `Discovers product version and build\n\nInput:\nfull_version\npackage_name\nReturn:\nproduct_version\nbuild\n\nChange History:\n2023-02-21 - Added condition in case full version doesn't have '0' after '.' (DRDC1-20783)` + } + }, + "Microsoft.WindowsHost": { + }, + "Microsoft.WindowsSharePointServices": { + }, + "MicroStrategy.MicroStrategy": { + "get_product_version": { + snippets: ["${1:full_version}"], + description: `Function to extract product version from full version` + }, + "package_versioning": { + snippets: ["${1:host}, ${2:package_regex}"], + description: `Function which extracts full_version from package` + }, + "file_versioning": { + snippets: ["${1:host}, ${2:file_path}, ${3:version_regex}"], + description: `Function which extracts full_version\n(and tcp_port for Intelligence Server)\nfrom target file\n` + }, + "reg_file_versioning": { + snippets: ["${1:host}, ${2:install_root}"], + description: `Function which extracts full_version\nfor HealthCare Agents\n` + }, + "setting_name": { + snippets: ["${1:host}, ${2:si_type}, ${3:short_si_type}, ${4:product_version}, ${5:instance}"], + description: `Function which assigns name and short_name attributes` + } + }, + "MinIO.MinIO": { + }, + "Mirantis.MirantisOpenStack": { + }, + "Mongo.CommonFunctions": { + "getRegion": { + snippets: ["${1:da}, ${2:cluster_values}, ${3:global}"], + description: `Returns the CloudRegion node for the given DDD node` + }, + "getService": { + snippets: ["${1:da}, ${2:region}, ${3:cluster_values}"], + description: `Builds or Confirms the CloudService node for the given DA node` + }, + "getCloudService": { + snippets: ["${1:da}, ${2:cluster_values}, ${3:global}"], + description: `Runs getRegion() and getService() to build or confirm Cloud regions and services\nReturns the CloudService node for the given DA node` + }, + "addTags": { + snippets: ["${1:node}, ${2:tags_list:=none}"], + description: `Add tags to the node. Only "simple" tag names will be added\n(Keys containing alphanumeric and underscore characters)\n\nInput arguments:\nnode - target node\ntags_list - list of tags extracted from successful API call\n` + } + }, + "Mongo.SupportingTables": { + }, + "MosaicSmartData.SmartAnalytics": { + }, + "Motorola.AirDefenseAppliance": { + }, + "MuleSoft.Muleruntimeengine": { + }, + "MySQL_AB.MySQL_RDBMS": { + "get_full_path": { + snippets: ["${1:process}"], + description: `Find the full_process_cmd_path that we'll use to find information like\nactive versioning. If the trigger process is fully qualified use that.\nOtherwise, construct full_process_cmd_path from the --basedir attribute\nin process.args\n\nChange History:\n2025-03-03 - Added getExeCwdPath() to retrieve the full path (DRDC1-25920)` + }, + "active_versioning": { + snippets: ["${1:process}"], + description: `Keine Beschreibung verfügbar.` + }, + "package_versioning": { + snippets: ["${1:host}, ${2:si_type}, ${3:full_version}"], + description: `Obtains version from package.\n\nAt first, functions tries to identify real product type by installed packages,\nthen if product types from pattern and from package list are different patterns stops\notherwise it tries to obtain version and edition from the related package.\n\nChange History:\n2017-01-05 - updated function to return si_type (DRDC1-7659)\n2017-11-14 - added Infobright Enterprise Edition SI type search (DRDC1-8026)\n2019-08-21 - updated regex for Maria DB (DRDC1-13777)\n2019-11-15 - Extra packages to check for MySQL (DRDC1-14150)` + }, + "registry_versioning": { + snippets: ["${1:host}, ${2:si_type}"], + description: `Obtain version from registry and assignes si_type\n\nChange History:\n2024-04-10 - Tighten search to find relevant registry key (DRDC1-23175)` + }, + "get_additional_attributes": { + snippets: ["${1:process}, ${2:full_version}"], + description: `Keine Beschreibung verfügbar.` + }, + "get_product_version_edition": { + snippets: ["${1:full_version}, ${2:edition_raw}"], + description: `Obtains product version and edition` + }, + "get_min_dir": { + snippets: ["${1:process}, ${2:attr}, ${3:attr_value}"], + description: `Get the minimum information necessary to distinguish this attribute\n\nTakes:\n* Trigger process node\n* Attr - Either 'datadir' or 'conf_file'\n* attr_value - The value of this attribute, this will be a directory\n(e.g. /foo/bar/datadir)\n\nReturns:\n* The minimal string necessary to uniquely identify this attribute on this host` + }, + "ieeLicensing": { + snippets: ["${1:host}, ${2:full_version}"], + description: `Obtain licensing details for Infobright IEE` + } + }, + "MySQL_AB.MySQL_RDBMS_Extended": { + "queryDatabases": { + snippets: ["${1:si}"], + description: `Returns a list of database names by using a SQL query to the DB instance\n\nTakes:\nsi - MySQL SoftwareInstance,\n\nReturns none if the query fails\n\nChange History:\n2022-09-21 - Use extendedSQLQuery function` + }, + "createDatabases": { + snippets: ["${1:si}, ${2:db_names}, ${3:attributes}"], + description: `Creates database nodes from the list of db names for the given database.\n\nsi - MySQL SoftwareInstance,\ndb_names - List of database names,\nattributes - Optional table of extra attributes to set on the nodes.\n\nChange History:\n2020-08-14 - updated type attribute. Now it gets Server type value. (DRDC1-14748)\n2022-09-09 - added cdm_component_alias_suffix attribute (DRDC1-19786)\n2022-09-21 - add database size (DRDC1-19570)` + }, + "queryTables": { + snippets: ["${1:si}, ${2:db_node}"], + description: `Returns a list of table names for the given database using a SQL query\nto the DB instance\n\nTakes SI and db nodes\nReturns none if the query fails, otherwise a list of databases\n\nChange History:\n2022-09-21 - Use extendedSQLQuery for database queries, includes update to API` + }, + "createTables": { + snippets: ["${1:si}, ${2:db}, ${3:table_names}, ${4:attributes}"], + description: `Create nodes for each table. These are related to the db in the instance\n\nsi - MySQL SoftwareInstance,\ndb - Database node,\ntable_names - List of table names,\nattributes - Optional table of extra attributes to set on the nodes.` + }, + "locateShowCommand": { + snippets: ["${1:host}, ${2:si}"], + description: `Locate the mysqlshow command, returning possible paths, including\nsome hardcoded defaults.\n\nUNIX only.` + } + }, + "Nagios.Suite": { + }, + "NATS.NATS": { + }, + "NCR.Authentic": { + }, + "Neo4j": { + }, + "NetApp.ActiveIQUnifiedManager": { + "buildRelationships": { + snippets: ["${1:host}, ${2:um_si}, ${3:wf_args}, ${4:mysql_host}, ${5:mysql_port}"], + description: `Function that build relationships:\nDependency upon Application Server it is running on, and MySQL DB it is using.\n\nTakes:\n*Host\n*Unified Manager SI,\n*WildFly arguments,\n*MySQL hostname\n*MySQL port listening` + }, + "getUniqueid": { + snippets: ["${1:host}, ${2:uuid_path}"], + description: `Function that takes path to file containing UUID and returns its value` + }, + "parseMysqlconf": { + snippets: ["${1:host}, ${2:conf_file}"], + description: `Function that parses config file with MySQL settings, and web UI ports,\nfurther this information is used for linking.\nTakes:\n*Host\n*Config file path\n\nReturnes:\n*MySQL hostname\n*MySQL listening port\n*Listening Unified Manager ports` + }, + "parseArguments": { + snippets: ["${1:host}, ${2:arguments}"], + description: `Function that parses arguments of java process\nTakes:\n*Host\n*Arguments\n\nReturnes:\n*Listening ports\n*Hostname for MySQL\n*Port for MySQL\n*Path to config file\n*Install root` + } + }, + "NetApp_ESeries_Storage": { + "getDecoded": { + snippets: ["${1:discovery_access}, ${2:request_url}"], + description: `Return a decoded json which is the response to the rest api request.` + }, + "processStoragePools": { + snippets: ["${1:discovery_access}, ${2:pool_table}, ${3:storage_system_nodes}, ${4:storage_system_to_pool_nodes}"], + description: `Create a storage pool and link to the\nappropriate array.\nThe supplied pool_table has the storage system key as key\nand the value is a table of pool nodes elements keyed by pool_id` + }, + "updateFrontEndPorts": { + snippets: ["${1:discovery_access}, ${2:inventory_table}, ${3:storage_system_nodes}, ${4:network_interfaces_by_storage_system}"], + description: `Update the processors for the given set of storage systems in storage_system_nodes.\n\nReturns true if the update succeeds, false otherwise.\n\nChange History:\n2019-12-04 - Updated in order to use functions from the JSONFunctions module;\n2025-05-13 - Get iscsi port information in the list 'network_interfaces_by_storage_system'\nto be created in updateIPAddress() for TKU_2025_06_01` + }, + "createStorageConnections": { + snippets: ["${1:host_id_to_volume_id_list}, ${2:host_result}, ${3:volume_nodes}, ${4:storage_system_node}"], + description: `Create the storage connections for the given set of volumes\n\nChange History:\n2019-12-04 - Updated in order to use functions from the JSONFunctions module;` + }, + "updateHardwareContainers": { + snippets: ["${1:discovery_access}, ${2:inventory_table}, ${3:storage_system_nodes}, ${4:hardware_containers}"], + description: `Create HardwareContainer representing the Main Chassis\nCreate HardWareContainer for each Shelves and link them to Main chassis\nReturns true if the update succeeds, false otherwise.\n\nChange History:\n2019-12-04 - Updated in order to use functions from the JSONFunctions module;` + }, + "updateDiskDrives": { + snippets: ["${1:discovery_access}, ${2:inventory_table}, ${3:storage_system_nodes}, ${4:hardware_containers}"], + description: `Update the disk drives for the given set of storage systems in storage_system_nodes.\n\nReturns true if the update succeeds, false otherwise.\n\nChange History:\n2019-12-04 - Updated in order to use functions from the JSONFunctions module;` + }, + "updateIPAddress": { + snippets: ["${1:parent}, ${2:discovery_access}, ${3:network_interfaces_by_storage_system}, ${4:storage_system_nodes}"], + description: `Update IP Adresses, Network Interfaces for each Storage System\n\nReturns true if the update succeeds, false otherwise.\n\nChange History:\n2019-12-04 - Updated in order to use functions from the JSONFunctions module;\n2020-10-19 - Updated to avoid an ECA error when the network interface node was not created for TKU_2020_10_01 (DRDC1-15949)\n2025-05-13 - Updated to create new network interfaces\nbased on hostinterface information\nand add 'resource_unit' information to network interfaces\nfor TKU_2025_06_01 (DRDC1-26370)` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:parent}, ${3:scope_value}"], + description: `Perform a storage scan on the given endpoint.\nThe endpoint is whether the NetApp E-Series storage device or\nthe NetApp SANtricity Web Services Proxy SoftwareInstance.\n\nChange History:\n2019-12-04 - Updated in order to use functions from the JSONFunctions module;\n\n2020-07-03 - Added scope attribute to StorageSystem node (DRDC1-15299)\n\n2023-01-18 - Added attributes Status and Status Detail to storage system (DRDC1-19552)\n2024-04-16 - Added hidden attribute __capability_ids for TKU_2024_07_01\n(DRDC1-23319)\n\n2024-07-12 Added the attribute dns_domain\nto storage system / storage device (DRDC1-24057)\n` + } + }, + "NetApp.OnCommandInsight": { + "activeVersioning": { + snippets: ["${1:host}"], + description: `Performs active versioning` + } + }, + "NetApp_RESTAPI_Storage": { + "executeRequest": { + snippets: ["${1:discovery_access}, ${2:request_query}"], + description: `Return the decoded json response to the api request\n` + }, + "getAllRecords": { + snippets: ["${1:discovery_access}, ${2:request_query}"], + description: `Return a json content which may be a recursive response to the\nrest api request.\n` + }, + "isNumericValue": { + snippets: ["${1:value}"], + description: `Verify it is a numeric value or not.\nIf not return void\n` + }, + "convertBytesToKB": { + snippets: ["${1:value}"], + description: `Convert the given value into KB\nIf not return void\n` + }, + "isThinProvisioned": { + snippets: ["${1:guarantee_type}"], + description: `Return true if thinly provisioned or false if not thinly provisioned` + }, + "processFCPorts": { + snippets: ["${1:discovery_access}, ${2:scope}"], + description: `Create the FC port node and build a lookup table keyed by\nthe processor name.\n` + }, + "calculateProcessorSpeed": { + snippets: ["${1:processor_type}"], + description: `Calculate the processor speed and return the\nvalue in MHz` + }, + "processExportPolicy": { + snippets: ["${1:discovery_access}"], + description: `Retrieve the policy details and extract the list of clients\nthat request access to the NetApp volume\n\nReturns a table with client list keyed by policy id` + }, + "generateNetappNAAID": { + snippets: ["${1:lun_serial}"], + description: `Generate the NAA ID for the lun using its serial\n` + }, + "updateSubscribedCapacity": { + snippets: ["${1:pool_nodes_by_uuid}, ${2:fs_node_by_pool_id}"], + description: `Update subscribed capacity for pools\n` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:device}, ${3:rgroup}"], + description: `Perform a storage scan on the given storage device\n\nChange History:\n\n2024-11-19: Check aggregate list is not void to avoid\neca error (DRDC1-25043)\n2025-03-14: Updated the pattern to optimize REST API calls\n(DRDC1-26033) for TKU_2025_05_01\n2025-09-12: Link all storage systems (physical and virtual)\nto the storage system group for TKU_2025_11_01` + } + }, + "NetApp.SANtricityWSProxy": { + }, + "NetApp_SolidFire_Storage": { + "generateBodyRequest": { + snippets: ["${1:method_name}, ${2:force}, ${3:id}"], + description: `Return a body request in JSON format which will be sent to the REST Api\n\nbody request format\n{\n"method": "GetHardwareInfo",\n"params": {\n"force" : true\n},\n"id" : 1\n}` + }, + "executeRequest": { + snippets: ["${1:discovery_access}, ${2:body_request}"], + description: `Execute the RESTFul POST request and return the response body in\nJSON format.` + }, + "getDecoded": { + snippets: ["${1:discovery_access}, ${2:method_name}, ${3:force}, ${4:id}"], + description: `Return a JSON content as a response to the REST api request.` + }, + "updateHardwareContainers": { + snippets: ["${1:discovery_access}, ${2:array_nodes}, ${3:hardware_containers}"], + description: `Create HardwareContainer representing the Main Chassis for each array node\nReturns true if the update succeeds, false otherwise.` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:parent}"], + description: `Perform a storage scan on the given endpoint.\nThe endpoint is the NetApp SolidFire storage device\n\nChange History:\n2019-12-04 - Updated in order to use functions from the JSONFunctions module;\n2020-07-03 - Added scope attribute to StorageSystem and StorageSystemGroup node (DRDC1-15299)\n2021-11-25 - Updated in order to set FQDN as the name of storage system / Hardware container (DRDC1-17652)\n2023-09-19 - Updated the storage system node type to include "Physical" in it\nor set the virtual attribute depending on its role for TKU_2023_10_01 (DRDC1-21829)\n2024-04-16 - Added hidden attribute __capability_ids for TKU_2024_07_01\n(DDC1-23319)\n2024-07-12 - Added the attribute dns_domain\nto storage system / storage device (DRDC1-24057)\n` + } + }, + "NetApp_Storage": { + "ONTAPSupportedVersion": { + snippets: ["${1:generation}, ${2:major}"], + description: `Returns a true if the ONTAP version is 8.3 and higher` + }, + "createDisk": { + snippets: ["${1:storage_system}, ${2:disk_info}, ${3:role}, ${4:rgroup}, ${5:block_size}, ${6:enclosure_by_address}"], + description: `Create a DiskDrive node and link it to the storage_system.\nReturn the disk size in bytes.\n\nHistory :\n\n2017-07-07 - added disk location information on the disk drive node for TKU_2017_08_01 (DRDC1-8408)\n2019-01-03 - Modify the createDisk function to add the current status for TKU_2019_01_01 (DRDC1-12265)` + }, + "generateNetappNAAID": { + snippets: ["${1:lun_serial}, ${2:storage_system}"], + description: `Generate the NAA ID for the lun using its serial\n\nChange History:\n2017-05-16 - Updated in order to use ConversionFunctions.convertStringToHex\nfunction for ASCII-string to hex conversion;` + }, + "findHostNameforStorageConnection": { + snippets: ["${1:volume_node}, ${2:host_wwpn}"], + description: `This Function tries to find Host with HBA having given WWPN.\nWe use this host name as conenction name for StorageConnection.` + }, + "addFrontEndPorts": { + snippets: ["${1:fcpTarget_entry}, ${2:processor}, ${3:FrontEndFCP_table}, ${4:NETAPP_RGROUP}"], + description: `Create FC port from info in fcpTarget_entry and link it to the\nProcessor. It also adds FC port to the FrontEndFCP_table.` + }, + "getValue": { + snippets: ["${1:response}, ${2:element}"], + description: `Return the value of a xml element` + }, + "executeRequest": { + snippets: ["${1:discovery_access}, ${2:body_request}"], + description: `Execute the RESTFul POST request and returns the response body in\nxml format.` + }, + "isThinProvisioned": { + snippets: ["${1:space_guarantee}"], + description: `Return true if thinly provisioned or false if not thinly provisioned` + }, + "getPropertyName": { + snippets: ["${1:key}"], + description: `Return the name of the property` + }, + "getInBytes": { + snippets: ["${1:size}"], + description: `Get the value in Bytes` + }, + "buildFileSystemLookupTable": { + snippets: ["${1:discovery_access}, ${2:response_content}, ${3:parent_element}"], + description: `This function is used for system running C-mode.\nBuilds a lookup table keyed by the lookup_key property.\nRecords where the key is missing are dropped and NOT included\nin the lookup table.\n\nReturns the constructed table or none.` + } + }, + "NetApp_StorageGrid": { + "getDecoded": { + snippets: ["${1:discovery_access}, ${2:auth_type}, ${3:url}"], + description: `Return a response in JSON format.\nAll body response starts with the json node 'data'\n\n{\ndata: {\nitem: [{\n...\n},\n{\n...\n}]\n}\n}` + }, + "getSerial": { + snippets: ["${1:discovery_access}, ${2:storagegrid_auth}, ${3:query}"], + description: `Return the serial of the storage system` + } + }, + "NetApp_Storage_Active_IQ": { + "generateNetappNAAID": { + snippets: ["${1:lun_serial}"], + description: `Generate the NAA ID for the lun using its serial` + }, + "isThinProvisioned": { + snippets: ["${1:space_guarantee}"], + description: `Return true if thinly provisioned or false if not thinly provisioned` + }, + "extractCapacities": { + snippets: ["${1:record}"], + description: `Get the size, used and free metrics for the given record` + }, + "executeRequest": { + snippets: ["${1:discovery_access}, ${2:request_url}"], + description: `Execute a REST api call using basic_auth` + }, + "processExportPolicy": { + snippets: ["${1:discovery_access}"], + description: `Retrieve the policy details and extract the list of clients\nthat request access to the NetApp volume\n\nReturns a table with client list keyed by policy key` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:parent}, ${3:scope_value}"], + description: `Perform a storage scan on the given endpoint\n\nChange History:\n2025-09-24 - Updated updateNetappSVM() for TKU_2026_02_01 (DRDC1-27512)\n` + } + }, + "NetApp_Storage_REST": { + "isNumericValue": { + snippets: ["${1:value}"], + description: `Verify it is a numeric value or not/\nIf not return void` + }, + "generateNetappNAAID": { + snippets: ["${1:lun_serial}, ${2:storage_system}"], + description: `Generate the NAA ID for the lun using its serial` + }, + "getValue": { + snippets: ["${1:response}, ${2:element}"], + description: `Return the value of a xml element` + }, + "executeRequest": { + snippets: ["${1:discovery_access}, ${2:body_request}"], + description: `Execute the RESTFul POST request and returns the response body in\nxml format.` + }, + "isThinProvisioned": { + snippets: ["${1:space_guarantee}"], + description: `Return true if thinly provisioned or false if not thinly provisioned` + }, + "getPropertyName": { + snippets: ["${1:key}"], + description: `Return the name of the property` + }, + "getInBytes": { + snippets: ["${1:size}"], + description: `Get the value in Bytes` + }, + "processQtrees": { + snippets: ["${1:qtree_records}, ${2:quota_records}, ${3:all_storage_system_nodes}, ${4:filesystem_nodes}"], + description: `Create Qtree as file system nodes and update it.\nThe supplied filesystem_nodes table is updated with\nthe updated filesystem nodes.\nReturns true if the update succeeds, false otherwise` + }, + "updateQtrees": { + snippets: ["${1:discovery_access}, ${2:all_storage_system_nodes}, ${3:filesystem_nodes}"], + description: `Update qtree as file system node for the given set of storage system nodes\nReturns true if the update succeeds, false otherwise` + }, + "getDiskStatus": { + snippets: ["${1:disk_role}, ${2:disk_name}, ${3:disk_response}"], + description: `calculate the current state of the disk based on the disk role` + }, + "processFCPorts": { + snippets: ["${1:fc_port_records}"], + description: `Create the FC port node and build a lookup table keyed by the processor name.\nReturns the constructed table.` + }, + "calculateProcessorSpeed": { + snippets: ["${1:processor_type}"], + description: `Calculate the processor speed and return the\nvalue in MHz` + }, + "processStorageProcessor": { + snippets: ["${1:storage_system_nodes}, ${2:processor_records}, ${3:fc_port_nodes}"], + description: `Create the StorageProcessor node and relate to FC port, StorageSystem node` + }, + "updateStorageProcessor": { + snippets: ["${1:discovery_access}, ${2:device}, ${3:storage_system_nodes}"], + description: `Update processor and fc ports for the given set of storage system nodes\nReturns true if the update succeeds, false otherwise` + }, + "updateSubscribedCapacity": { + snippets: ["${1:storage_pool_nodes_by_name}, ${2:fs_node_list_by_pool_name}"], + description: `Update subscribed capacity for pools\n` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:device}, ${3:rgroup_cluster}"], + description: `Perform a storage scan on the given storage device\n\nChange History:\n\n2019-09-27 Updating the vserver with new attribute that provides the\nname of the cifs-servers that it belongs to (DRDC1-13510)\n\n2020-03-15 Updated the updateIPAddress function to take into account the network interface group\nand create virtual NetworkInterface node for virtual IPAddress and virtual\nStorageSystem nodes (DRDC1-14788)\n\n2020-03-15 Updated the discoverNetAppCluster function by executing a rest api request to get\nnetapp cluster information instead of getting the information using the StorageDevice\nnode (DRDC1-14822)\n2020-07-03 Added scope attribute to StorageSystem and StorageSystemGroup node (DRDC1-15299)\n\n2021-02-11 Add __capability_ids attribute for StorageSystems (DRDC1-16407)\n\n2021-01-26 Added new function createMetroClusterRelationship() to support the MetroCluster\nconfiguration (DRDC1-16318)\n\n2021-01-02 Duplicate BMC_CLUSTER CIs created during sync of NetApp devices (DRDC1-16409)\n\n2022-06-10 Missing relation between filesystem of host to NetApp storage entity (DRDC1-19184).\n\n2023-01-18 Added attributes Status and Status Detail to storage system (DRDC1-19552)\n\n2025-09-25 Add virtual storage system to the list of storage systems\nbe linked to the storage system group for TKU_2026_02_01 (DRDC1-27512)` + } + }, + "Netflix.Eureka": { + }, + "Netgear_ReadyNAS": { + }, + "NetScalerVPX_LoadBalancer": { + "getTLSRest": { + snippets: ["${1:device}, ${2:partitionname}, ${3:TLS_RGROUP}, ${4:use_http}"], + description: `Build a service-name-to-certificates table.` + }, + "createTLSCertificate": { + snippets: ["${1:service}, ${2:service_tls_table}"], + description: `A worker function that creates a TLS Certificate node and links it to\nthe LoadBalancerService.` + } + }, + "NetScout.nGeniusReal_TimeMonitor": { + }, + "NetworkAdapterSettings.Windows": { + "updateAdapterSettings": { + snippets: ["${1:host}, ${2:di}, ${3:keyname}, ${4:lookup}"], + description: `Get Windows adapter settings from the registry. Uses the given keyname\nto retrieve a value which is then looked up in the given lookup table.\n\nReturns True if a value was retrieved.` + } + }, + "Network.BasicStackDevice": { + "getBasicInfo": { + snippets: ["${1:CHASSIS_HW_TYPES}"], + description: `Function do the following:\n- looks for the 'main' stack device;\n- sets/removes 'stack' attribute for it;\n- gets chassis, cards and ports lists for the stack device.\n\nChange History:\n2019-09-18 - Some parameter names renamed;\n2020-09-04 - Updated in order to skip stack processing for Cisco WLCs (DRDC1-15757);\n2021-01-22 - added removal group anchoring in order to fix issue with previously\nwrongly created stack members not being removed (DRDC1-16370);\n2022-06-07 - Removed removal group anchoring from the function;\n2025-07-09 - Removed stack attribute withdrawal from the function\nas it is now handled by StackRemoval pattern (DRDC1-26373);` + }, + "processStackMembers": { + snippets: ["${1:stack_member_devices_list}, ${2:cards_list}, ${3:ports_list}"], + description: `Function creates links between Network Interfaces on the main stack device\nand stack member device.\nFunction also sets os_version attribute for the stack member devices from the child\ncard if needed.\n\nChange History:\n2019-09-18 - Some parameter names renamed;\n2021-01-05 - Added new method to create link from chassis to interfaces over nested\nmultiple cards (DRDC1-12228);\n2022-06-07 - Removed removal group usage;\n2022-10-24 - Function renamed;\nAdded os_version extraction from the child card (DRDC1-14393);\n2023-08-05 - Added special case for Huawei devices card detection (DRDC1-20135);` + }, + "createStackMembers": { + snippets: ["${1:chassis_list}, ${2:stack_device}, ${3:stack_serial_suffix}"], + description: `Function creates stack member devices and\nlinks them with the stack device\n\nChange History:\n2018-07-17 - Function refactored and renamed,\nkey for Cisco's Fabric Extenders (FEX) stack members\nupdated to support multi-homed installations\n(one FEX module connected to different Nexus switches)\n(DRDC1-11211);\n2019-01-09 - Updated in order to assign dedicated capabilities for\nCisco FEX stack members (DRDC1-12263);\nSearching for existing FEX stack members devices removed,\ninstead devices created/confirmed every time\nmain stack device scanned;\n2019-03-19 - Attribute 'name' for stack member devices changed\nto include name of the stack;\n2019-09-18 - Stack master detection changed as the serial for stack device\nsuffixed with STACK_SERIAL_SUFFIX (DRDC1-13138);\nSome parameter names renamed;\n2019-10-09 - New 'Product ID' attribute added to stack member NetworkDevice (DRDC1-12349);\n2020-02-10 - Updated 'partition_id' attribute to include VDC ID\nin order to avoid duplicated partition_ids (DRDC1-14695);\n2020-03-17 - Model name for stack members now extracted from the product_id if possible (DRDC1-11656);\nDevice name for Cisco FEX devices now includes FEX-number and serial (DRDC1-14067);\nModel name for Cisco FEX devices updated in order to report more correct ones (DRDC1-13435);\n2020-07-01 - Added scope attribute to NetworkDevice node (DRDC1-15292);\n2020-07-20 - Cisco FEX devices processing improved (DRDC1-15449);\nCatalyst FEXs (like Catalyst 6800IA) now processed the same way as Nexus FEXs -\ni.e. name includes FEX number and capability types set to 'Bridge/Extender';\n2020-11-10 - Firmware version for stack members now extracted without Code Name (DRDC1-15159);\n2022-06-07 - Added aging to avoid immediate stack member deletion\nin case of a network/device glitch (DRDC1-19073);\n2022-12-08 - Stripped vendor and SW version from model name (DRDC1-20394)\n2023-01-03 - Added description for FEX devices (DRDC1-19156)\n2023-04-27 - Updated (?i) flag placement in regular expression (DRDC1-20566)\n2023-05-16 - Added stack_member_number attribute for Cisco stack members (DRDC1-21260)\n2023-08-05 - Updated stack master detection for Huawei stack members (DRDC1-20135)\n2024-07-11 - Updated type assignment for stack member devices (DRDC1-22986)\n2025-01-06 - Added __resource_unit attribute for stack member devices (DRDC1-24921)\n2026-04-06 - Updated escape sequence (DRDC1-29309)` + } + }, + "Network.Hardware_Components": { + "findParentCandidate": { + snippets: ["${1:hierarchy_table}, ${2:cards}, ${3:parent_id}"], + description: `Loop through device cards hierarchy to find actual\nparent candidate id for card\n\nhierarchy_table - keeps device card hierarchy (card_id -> parent_id)\ncards - keeps mapping for valid cards (card_id to card)` + } + }, + "NewRelic.APM": { + "logFileVersioning": { + snippets: ["${1:host}, ${2:log_file_cmd}"], + description: `Gets version from log file search command\n\nChange History:` + }, + "getParameters": { + snippets: ["${1:host}, ${2:config_file_path}"], + description: `Obtain parameters from NewRelic config file\n\nChange History:` + } + }, + "NewRelic.Infrastructure": { + }, + "NewRelic.Servers": { + }, + "NexentaStor_Storage": { + "getNextQuery": { + snippets: ["${1:decoded_response}"], + description: `check for the next value in the rel json node\nIf not, return none else return the href value` + } + }, + "NginxWebserver": { + "cleanConfig": { + snippets: ["${1:config_file}"], + description: `Cleaning file from comments (starts with #).\nIf symbol '#' go after 'space', ';', '{', '}' or first symbol in line - this is a comment.\nSymbol '#' in other place: location ~ .(png|gif|ico|jpg|jpeg)(?#regex_for_pics)$ - this is not a comment` + }, + "splitConfig": { + snippets: ["${1:clean_config_file}"], + description: `Splitting configuration by section: from '{' to corresponding '}' or to ';' if there are no '{}'\nChecking if '{' and '}' not a quoted by '\'` + }, + "getIncludePath": { + snippets: ["${1:host}, ${2:config_file_root}, ${3:include}"], + description: `Function extracts file path from include string.\nSupports wildcards in file name.\nReturns full file path.` + }, + "getAllConfigFiles": { + snippets: ["${1:host}, ${2:config_file_path}"], + description: `Finds all relevant config_files from the main_config_file\n\nTakes - config_file_path (text, must be escaped first)\nReturns - all_config_files (list of text)\n\nChange History:\n2026-07-02 - moving include files processing into getIncludePath\nfunction (DRDC1-26911)` + }, + "findIpPort": { + snippets: ["${1:host}, ${2:address}"], + description: `Finding IP address and port in address string\n\nChange History:\n2020-10-26 - updated to support domain names and localhost. (DRDC1-15605)\n2021-04-14 - added check for data type (DRDC1-16710)\n2021-10-12 - added approach to extract port in case of socket with variable (DRDC1-17556)` + } + }, + "Nginx_LoadBalancer": { + }, + "NICE.Engage": { + }, + "Nimble_Storage": { + "getDecoded": { + snippets: ["${1:discovery_access}, ${2:request_url}"], + description: `Return a decoded json which is the response to the rest api request.` + }, + "buildMultiRecordLookup": { + snippets: ["${1:discovery_access}, ${2:request_url}, ${3:requested_attributes}, ${4:key}"], + description: `Queries the given url and build a lookup of records from the json result.\nEach value in the lookup table is a list of the values, and each value in the list\nis a lookup table.\nWhen building the record using the requested attributes as keys,\nwe set void if a requested attribute is not found in the decoded json` + }, + "buildRecordLookup": { + snippets: ["${1:discovery_access}, ${2:request_url}, ${3:requested_attributes}, ${4:key}"], + description: `Queries the given url and build a lookup of records from the json result\nWhen building the record using the requested attributes as keys,\nwe set void if a requested attribute is not found in the decoded json` + }, + "extractUniqueID": { + snippets: ["${1:volume_record}, ${2:serial}"], + description: `Generate the LUN’s Extended Unique Identifier EUI ID for the given logical device` + }, + "updateStorageVolumes": { + snippets: ["${1:discovery_access}, ${2:parent}, ${3:pool_id_to_systems}, ${4:pool_nodes}, ${5:volume_nodes}, ${6:initiator_group_id_to_volumes}, ${7:storage_system_group_node}"], + description: `Update the volumes for the given set of storage systems.\n\nReturns true if the update succeeds, false otherwise.\n\nThe given volume_nodes table is populated with the volumes nodes\ncreated/updated but is only valid if the result is true.\n\nHistory :\n2019-01-15 - Update the relationship and removal group for TKU_2019_02_01 (DRDC1-12268)\nStorageVolume now linked to the storage system group and\nSet the removal to be the storage system group removal group.` + }, + "updateStorageConnections": { + snippets: ["${1:discovery_access}, ${2:parent}, ${3:volume_nodes}, ${4:pool_nodes}, ${5:pool_id_to_systems}, ${6:initiator_group_id_to_volumes}, ${7:storage_system_group_node}"], + description: `Update the storage connectons for the given set of volumes\n\nReturns true if the update succeeds, false otherwise.\n\nHistory :\n2019-01-23 - Update the removal group. StorageConnection now set in the\nstorage system group removal group for TKU_2019_02_01 (DRDC1-12268)` + }, + "updateStoragePools": { + snippets: ["${1:discovery_access}, ${2:parent}, ${3:pool_id_to_systems}, ${4:pool_nodes}, ${5:storage_system_group_node}"], + description: `Update the pools for the given set of storage systems in pool_id_to_systems.\n\nReturns true if the update succeeds, false otherwise.\n\nThe given pool_nodes table is populated with the pool nodes\ncreated/updated but is only valid if the result is true.\n\nHistory :\n2019-01-15 - Update the relationship and removal group for TKU_2019_02_01 (DRDC1-12268)\nStoragePool now linked to the storage system group and\nSet the removal to be the storage system group removal group.` + }, + "updateDiskDrives": { + snippets: ["${1:discovery_access}, ${2:storage_system_nodes}"], + description: `Update the disk drives for the given set of storage systems in storage_system_nodes.\n\nReturns true if the update succeeds, false otherwise.\nHistory :\n2019-01-15 - Update the removal group for TKU_2019_02_01 (DRDC1-12268)\nSet the removal to be the storage system removal group instead of the storage system group removal group.\n\n2021-07-06 - Updated DiskDrive node by not setting the virtual attribute (DRDC1-17129)\n` + }, + "updateFrontEndFCPorts": { + snippets: ["${1:discovery_access}, ${2:storage_systems_by_serials}, ${3:storage_systems_by_names}"], + description: `Updates the fibre channels ports for the given set of storage systems\nReturns true if the update succeeds, false otherwise.\n\nHistory :\n2019-01-15 - Update the removal group for TKU_2019_02_01 (DRDC1-12268)\nSet the removal to be the storage system removal group\ninstead of the storage system group removal group.` + }, + "updateStorageSystems": { + snippets: ["${1:discovery_access}, ${2:parent}, ${3:storage_system_group_node}, ${4:storage_system_encryption}"], + description: `Perform a storage scan on the given endpoint.\nThe endpoint is the storage device.\n\nChange History:\n2020-07-20 - Fixed DRDC1-15450 : Fixed the discovery failure of disk drives when FC ports discovery failed\n2021-08-18 - Added encryption attribute to StorageSystem node (DRDC1-17286)\n2023-01-18 - Added attributes Status and Status Detail to storage system (DRDC1-19552)\n2024-04-16 - Added hidden attribute __capability_ids for TKU_2024_07_01\n(DRDC1-23319)\n2024-07-12 - Added the attribute dns_domain\nto storage system / storage device (DRDC1-24057)\n` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:parent}"], + description: `Perform a storage system group discovery\nThe groups are not supported until NimbleOS 2.3.1\n\nHistory\n2019-01-15 - Update to discover first the storage system group instead of the storage systems for TKU_2019_02_01 (DRDC1-12268)\n2020-07-03 - Added scope attribute to StorageSystem and StorageSystemGroup node (DRDC1-15299)\n\n2021-08-18 - Added encryption attribute to StorageSystem node (DRDC1-17286)` + } + }, + "NodeJs.NodeJs": { + }, + "Novell.eDirectory": { + }, + "NRGGlobal.Appswatch": { + }, + "NRGGlobal.ScenarioBuilder": { + }, + "NuoDB.NuoDB": { + }, + "Nutanix.NutanixBlock": { + }, + "Nutanix.NutanixCluster": { + "clusterListFromCentral": { + snippets: ["${1:host}"], + description: `Gets list of Nutanix Clusters inside of Multicluster registered on\nthis Prism central.\nCluster list obtained using command:\n/ncli multicluster get-cluster-state\n\nChange History:\n2022-03-15 - cluster_id_list renamed to cluster_uuid_list to match the real environment (DRDC1-18654).` + } + }, + "Nutanix.NutanixClusterRest": { + }, + "Nutanix.NutanixFunctions": { + "updateSSHHostAttributes": { + snippets: ["${1:host_node}, ${2:data}"], + description: `Update specific Nutanix ESXi hypervisor attributes that are not\navailable to platform scripts and vSphere APIs.\nUpdate specific Nutanix Acropolis hypervisor attributes that are not\navailable to platform scripts and vSphere APIs.\n\nChange History:\n\n2025-02-20 - Adding os_version for heuristic Acropolis hosts (DRDC1-24660).\n2026-01-10 - Adding logic to prevent hostid and uuid changes and fixing\npreviously changed data for the VMware platform.(DRDC1-28484 & DRDC1-27883)\n2026-05-06 - Fixing logic for updated ssh Hosts (DRDC1-29803)\n2025-04-20 - Changing vendor extractiong logic (DRDC1-29010).\n2026-05-26 - Protecting uuid, serial, local_fqdn and product_model for\nWindows/Hyper-V hosts from REST overwrite (DRDC1-24759).` + }, + "findOrCreateHost": { + snippets: ["${1:data}, ${2:source_node}, ${3:target_type}"], + description: `Find ESXi and Acropolis hosts modeled by vSphere patterns, platform\nscripts or created using Imports.inferHost(). Creating new one if we\nhave not found previously created. Destruction of previously modeled\nheuristic host if its ssh /nutanix cli/VMware version was found.\n\nChange History:\n\n2023-12-10 - Updated with functionality for Acropolis hosts to unificate\nRest and SSH model and prevent duplicate creation (DRDC1-19313).` + }, + "connectVCenterCluster": { + snippets: ["${1:managed_hosts}, ${2:sc_cluster_node}"], + description: `Finds the associated vCenter cluster for the Nutanix ESXi software\ncluster and create a Management relationship to it.` + }, + "modelNutanixHypervisorSI": { + snippets: ["${1:host_list}, ${2:nutanix_cluster}"], + description: `Function models Nutanix Hypervisor SI for Nutanix Rest modeled Hosts.\n\nProduct versioning obtained from host kernel.\n\nThe key is based on software type and host.key.\n\nPattern associates created SI and Nutanix node.\n\nChange History:\n\n2024-01-07 - SI shortname logic fixed (DRDC1-22697).` + }, + "ageNodeSuccess": { + snippets: ["${1:node}, ${2:da}"], + description: `Age node after successful scan.` + }, + "findInferredCluster": { + snippets: ["${1:da}"], + description: `Find inferred cluster node.` + }, + "ageClusterFailure": { + snippets: ["${1:da}"], + description: `Age cluster after failed scan.` + }, + "getObjectEntries": { + snippets: ["${1:data}"], + description: `Function checks for expected keys in the data and have values.\nReturn values for default node's keys: meta, spec, status` + }, + "getSubObjectEntries": { + snippets: ["${1:data}"], + description: `The function checks the expected keys in the data and the available values.\nReturn values for default node's keys: config, network, nodes` + }, + "hostListFromCVM": { + snippets: ["${1:host}"], + description: `Gets Host list with cluster attributes\nhost list obtained using command:\n/ncli host list\n\nChange History:\n2026-01-08 - Moved from NutanixCluster (DRDC1-26379).` + }, + "getAhvVMs": { + snippets: ["${1:host}"], + description: `Function tries to obtain VM list with correct names for each vm_uuid\nrunning command on Control Virtual Machine in acli (Acropolis command\nline interface) \n\nChange History:\n2021-08-01 - skip blank lines after splitting (DRDC1-16723)\n2026-01-08 - Moved from NutanixCluster (DRDC1-26379).` + }, + "getDataFromAPI": { + snippets: ["${1:da}, ${2:request_urls}, ${3:flat}"], + description: `Perform rest request and return decoded_response or none.\nBoolean flag used for specific requests` + } + }, + "Nutanix.NutanixHostsRest": { + "modelNutanixBlocks": { + snippets: ["${1:members_table}, ${2:host_list}"], + description: `Model container_nodes to represent Nutanix Block\n\nChange History:\n\n2023-12-10 - The host selection logic has been updated to only add\nhosts from current Block (DRDC1-19313).` + } + }, + "Nutanix.NutanixMulticluster": { + }, + "Nutanix.NutanixStorage": { + "modelStorageSystem": { + snippets: ["${1:discovery_access}, ${2:nutanix_cluster}"], + description: `Creates Nutanix Storage System from given Nutanix SoftwareCluster\n\nChange History:\n2024-04-16 Added hidden attribute __capability_ids for TKU_2024_07_01\n(DRDC1-23319)\n\n2024-07-12 Added the attribute dns_domain\nto storage system / storage device (DRDC1-24057)\n2024-11-01 Added check if Host has DiscoveryAccess (DRDC1-24845)` + }, + "updateStoragePools": { + snippets: ["${1:host}, ${2:storage_sys}, ${3:nutanix_cluster}"], + description: `Create and update a Nutanix Storage Pool as StoragePool node running command\non Control Virtual Machine in ncli (Nutanix command line interface)\n'', parse and return the information. Link Storage Pool to Storage System\n\nChange History:\n\n2022-03-15 - cluster_id replaced with cluster_uuid to maintain integrity with the real enviroment\n2022-08-14 - Refactored to unify with the RestApi pattern and speed up work (DRDC1-18258)` + }, + "builtContainerLookupTable": { + snippets: ["${1:host}"], + description: `Create lookup table for Nutanix Containers running command on Control\nVirtual Machine in ncli (Nutanix command line interface) '',\nparse and return the information.\n\nChange History:\n\n2019-24-12 - Updated context regex and text.split to match new outputs (DRDC1-14447)\n2022-03-15 - cluster_id replaced with cluster_uuid to maintain integrity with the real enviroment\n2022-08-14 - Added suppressRemovalGroup, removed unnecessary cluster_uuid initialization (DRDC1-18258)` + }, + "updateChildStoragePools": { + snippets: ["${1:container_lookup_table}, ${2:parent_pools}, ${3:storage_sys}"], + description: `Create and update a Nutanix Storage Containers as child Storage Pools\nusing container_lookup_table and link them to parent Storage Pools\n\nChange History:\n\n2022-03-15 - cluster_id replaced with cluster_uuid to maintain integrity with the real enviroment\n2022-08-14 - Refactored to unify with the RestApi pattern and speed up work (DRDC1-18258)` + }, + "updateDiskDrives": { + snippets: ["${1:host}, ${2:hypervisor_list}, ${3:storage_sys}, ${4:parent_pools}"], + description: `Create and update disk drive nodes running command on Control Virtual Machine in ncli (Nutanix command\nline interface) and link to storage system, parent storage pool and hypervisor host.\n\nChange History:\n\n2019-11-11 - Added check if storage_pool_nodes is not empty (DRDC1-13783)\n2022-03-15 - cluster_id replaced with cluster_uuid to maintain integrity with the real enviroment\n2022-08-14 - Refactored to unify with the RestApi pattern and speed up work (DRDC1-18258)` + }, + "updateNFSDatastores": { + snippets: ["${1:host}, ${2:hypervisor_list}, ${3:storage_sys}, ${4:child_pools}, ${5:vm_nodes}"], + description: `Create and update NFS Datstores as StorageVolume nodes running command on Control Virtual Machine in ncli (Nutanix command\nline interface) and link to storage system.\nFunction creates StorageUse relationship between StorageVolume and related FileSystems on ESXi hosts.\n\n will run only on ESXI Controll Virtual machines\n\nChange History:\n\n2022-03-15 - removed unused extracting of cluster_id\n2022-08-14 - Refactored to unify with the RestApi pattern and speed up work (DRDC1-18258)` + }, + "updateVirtualDiskDrives": { + snippets: ["${1:host}, ${2:hypervisor_list}, ${3:storage_sys}, ${4:vm_nodes}, ${5:hypervisor_type}"], + description: `Create and update virtual disk nodes running command on Control Virtual Machine in ncli (Nutanix command\nline interface) '' and link them to virtual machines.\n\nCommand will work on Acropolis and ESXi Control virtual machines\n\nChange History:\n\n2021-08-01 - Updated regex (DRDC1-14830)\n2022-08-14 - Refactored to unify with the RestApi pattern and speed up work (DRDC1-18258)` + } + }, + "Nutanix.NutanixVMsRest": { + "preparingVMTable": { + snippets: ["${1:api_version}, ${2:entities}, ${3:previous_data}, ${4:previous_uuids}"], + description: `Preparing a new or supplemented table with attributes from the API\nresponse passed to the function.\n\napi_version - Nutanix API version used in the request\nentities - decoded json file obtained from the response\nprevious_data - an already processed table from a previous function run\nprevious_uuids - Nutanix clusters uuid list prepared in the previous\nfunction run\nreturned data:\nvm_table - Table with selected required attributes\ncluster_uuids - Nutanix clusters uuid list new or updated from the\nprevious function run` + }, + "fetchAllPostResult": { + snippets: ["${1:da}, ${2:url}, ${3:api_version}"], + description: `Running a series of subsequent post requests to retrieve all results.\nThis is necessary due to the very large response rate, even for a\nmoderately sized cluster.\n\nda - Discovery access\nurl - Nutanix Api request url\napi_version - Nutanix Api version used in request\n\nbatch_size - the number of results we want to get in the first and each\nsubsequent request. With a large number, the processing\ntime between requests and the size of the response itself\nbegin to have an impact. The average response for one\nvirtual machine is 360 lines.\n\nreturned data:\nvm_table - Finalised table with selected required attributes\ncluster_uuids - Nutanix clusters uuid list` + } + }, + "Nutanix.Nutanix_Storage_Rest": { + "searchHypervisorList": { + snippets: ["${1:nutanix_cluster}"], + description: `Search all hypervisor hosts from Nutanix Cluster, Management Controller\nor directly using search if previous methods failed.` + }, + "getDataFromAPI": { + snippets: ["${1:da}, ${2:request_urls}, ${3:flat:=false}"], + description: `Perform rest request and return decoded_response or none\nBoolean flag used for specific requests` + }, + "modelStoragePools": { + snippets: ["${1:da}, ${2:defaults}"], + description: `Create and update a Nutanix Storage Pool as StoragePool node running Rest Api\nrequest '' or '' request,\nparse and return the information.\nLink Storage Pool to Storage System.` + }, + "modelChildStoragePools": { + snippets: ["${1:da}, ${2:parent_pools}, ${3:defaults}"], + description: `Create and update a Nutanix Storage Containers as child Storage Pools\nusing parent_pools table and Rest Api response from\n'' or '' requests.\nAnd link them to parent Storage Pools.` + }, + "modelDiskDrives": { + snippets: ["${1:da}, ${2:hypervisor_list}, ${3:parent_pools}, ${4:defaults}"], + description: `Create and update disk drive nodes running Rest Api request\n'' or '' request,\nand link to storage system, parent storage pool, hypervisor host and CVM host.\n\nChange History:\n2023-05-01 - Hypervisor search logic updated for VMWare specific (DRDC1-20468)` + }, + "modelVirtualDiskDrives": { + snippets: ["${1:da}, ${2:hypervisor_list}, ${3:child_pools}, ${4:storage_sys}, ${5:vm_nodes}, ${6:hypervisor_type}"], + description: `Create and update virtual disk nodes running Rest Api request\n'' or\n'' request, and link them to virtual machines\nand storage system.\n\nChange History:\n2023-05-01 - VM search and vm_id attribute updated for VMWare specific (DRDC1-20468)` + }, + "modelNFSDatastores": { + snippets: ["${1:da}, ${2:hypervisor_list}, ${3:storage_sys}, ${4:child_pools}, ${5:vm_nodes}"], + description: `Create and update NFS Datstores as StorageVolume nodes running Rest Api request\n'' or\n'' and link them to storage system,\nstorage pool, file system and virtual disks.\n\nWill run only on ESXI Nutanix Clusters` + } + }, + "Objectivity.ObjectivityDB": { + }, + "ObserveIT.ObserveIT": { + }, + "OceanStor_9000_Storage": { + "updateDiskDrives": { + snippets: ["${1:discovery_access}, ${2:array_nodes}"], + description: `Update the Disk Drives for the given set of arrays\n\nReturns true if the update succeeds, false otherwise.` + }, + "processFileSystems": { + snippets: ["${1:share_records}, ${2:type}, ${3:cluster_by_serial}"], + description: `process the file systems for the given cluster` + }, + "updateFileSystems": { + snippets: ["${1:discovery_access}, ${2:cluster_by_serial}"], + description: `Update the file systems for the cluster\n\nReturns true if the update succeeds, false otherwise.` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:parent}"], + description: `Perform a storage scan on the given endpoint.\nThe endpoint is the Software Instance.\n\n2020-07-03 Added scope attribute to StorageSystem and StorageSystemGroup node (DRDC1-15299)\n2024-04-16 Added hidden attribute __capability_ids for TKU_2024_07_01 (DRDC1-23319)\n` + } + }, + "OceanStor_9000_Storage_REST": { + "extractIPS": { + snippets: ["${1:business_ip}"], + description: `Extract ip address list from given business_ip` + }, + "ip_to_int": { + snippets: ["${1:ip}"], + description: `Function to convert an IP address to an integer` + }, + "int_to_ip": { + snippets: ["${1:ip_int}"], + description: `Function to convert integer back to ip address` + }, + "getListAddresses": { + snippets: ["${1:ip_address_start}, ${2:ip_address_end}"], + description: `Return ip addresses from ip_address_start to\nip_address_end` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:parent}, ${3:rg_group}"], + description: `Perform a storage scan on the given endpoint\n` + } + }, + "OceanStor_Pacific_REST": { + "getSPN": { + snippets: ["${1:discovery_access}, ${2:dns_list}"], + description: `Get SPN (Service Principal Name) from kerberos interface` + }, + "getFullDomains": { + snippets: ["${1:discovery_access}, ${2:dns_list}"], + description: `Get Full domain of access zones` + }, + "getVersionsByNode": { + snippets: ["${1:discovery_access}, ${2:parent}"], + description: `Get os version, firmware by nodes` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:parent}, ${3:rg_group}"], + description: `Perform a storage scan on the given endpoint\n` + } + }, + "OCI.ApiGateway": { + }, + "OCI.Applications": { + }, + "OCI.AutonomousDatabase": { + }, + "OCI.Bastion": { + }, + "OCI.BlockStorage": { + }, + "OCI.CacheWithRedis": { + }, + "OCI.CommonFunctions": { + "getProvider": { + snippets: [""], + description: `Returns the OCI CloudProvider node\n\nChange History:\n2023-07-31 removed trailing whitespace from short_name (DRDC1-21617)\n2025-03-07 Avoid updating inference relationships on CloudService\nnodes (DRDC1-18279), added confirmation of found CloudService\nnode to make continuous CMDB sync triggering (DRDC1-20544)` + }, + "getCompartmentName": { + snippets: ["${1:da}"], + description: `Extract compartment name for a given DA\n\nChange History:\n2022-07-21 - re-use call from standard_discovery requests` + }, + "getRegion": { + snippets: ["${1:da}"], + description: `Returns the CloudRegion node for the given DDD node\n\nChange History:\n2025-03-07 Added cloud_id attribute to Cloud Service (DRDC1-22103)\nAvoid updating inference relationships on CloudService\nnodes (DRDC1-18279), added confirmation of found CloudService\nnode to make continuous CMDB sync triggering (DRDC1-20544)` + }, + "_getServiceKey": { + snippets: ["${1:da}, ${2:service_code}"], + description: `Return the service key for the given service code` + }, + "getService": { + snippets: ["${1:da}, ${2:code}, ${3:region}, ${4:associate}"], + description: `Return Oracle CloudService node\n\nChange History:\n2025-03-07 Added cloud_id attribute to Cloud Service (DRDC1-22103)\nAvoid updating inference relationships on CloudService\nnodes (DRDC1-18279), added confirmation of found CloudService\nnode to make continuous CMDB sync triggering (DRDC1-20544)\n2025-01-27 Added system_tags modelling in addTags() function (DRDC1-28500)` + }, + "findRegionVCNs": { + snippets: ["${1:region}"], + description: `Find all VCNs in given region` + }, + "regionSubnetToVCN": { + snippets: ["${1:region}"], + description: `Return mapping of subnet_id to vcn node in given region` + }, + "vpcLink": { + snippets: ["${1:da}, ${2:node}, ${3:subnet_to_vcn_map:=none}"], + description: `Links the given node to its related VPCs\n\nChange History:\n2023-10-17 - use pre-defined subnet_to_vcn_map to decrease number of needed\nsearches for services with big number of resources (DRDC1-21948)` + }, + "createRemovalTracker": { + snippets: ["${1:da}, ${2:name}, ${3:kind}, ${4:is_rel}, ${5:global}"], + description: `Create a removal tracker for the given kind and DA` + }, + "updateFailureTimeForService": { + snippets: ["${1:result}, ${2:service_code}"], + description: `Updates the last_update_failure time on the requested CloudService\nnode, if it can be found` + }, + "addTags": { + snippets: ["${1:node}, ${2:result}"], + description: `Add Tags for specified node\n\nChange history:\n2022-09-28 add tags for default oracle 'defined_tags'\n2022-11-28 add tags for custom tag namespace (DRDC1-20279)\n2023-10-10 function returns tag_set now (DRDC1-21902)\n2026-01-27 added modelling of system_tags (DRDC1-28500)` + }, + "getConnectionStrings": { + snippets: ["${1:result}"], + description: `Parse connection_strings attribute to eaxtract\nconnection_strings and service_names\n\nChange History:\n2023-05-04 - added check if all_connection_strings exists (DRDC1-21297)` + }, + "modelDatabase": { + snippets: ["${1:DBTYPE}, ${2:db_result}, ${3:si}, ${4:service}, ${5:tracker_db}, ${6:dbhomes_result}"], + description: `Model Databases for given cdbs\n\nChange History:\n2024-12-10 - added time_created attrs (DRDC1-25003)\n2025-12-24 - added check existing not cloud scanned DB to get key (DRDC1-28401)\n2026-02-27 - Changes to the database version selection logic.\nIf a version is missing in Database list output, the\nversion from the Oracle.ListDbHomes output will be\nselected. Added db_system_id attribute. (DRDC1-26964)` + }, + "modelPluggableDatabases": { + snippets: ["${1:pdb_results}, ${2:cdb_to_si_map}, ${3:service}, ${4:tracker_db}"], + description: `Model Pluggable Databases for given cdbs\n\nChange History:\n2024-12-10 - added time_created attrs (DRDC1-25003)` + }, + "getIPInfo": { + snippets: ["${1:da}, ${2:db_node_result}"], + description: `Extract IP addresses based on ip_ids in db_node` + }, + "inferDbNode": { + snippets: ["${1:da}, ${2:db_node_result}, ${3:tracker_cl_host}"], + description: `Find or model Host for Db node` + }, + "modelOraSIs": { + snippets: ["${1:da}, ${2:dbhomes_results}, ${3:clusters}, ${4:service}, ${5:tracker_si}, ${6:tracker_db}, ${7:db_systems}"], + description: `Model 'Oracle Database Server' as SIs\nmodel default 'Oracle Database' as Database node\n\nChange History:\n2025-02-11 changed key for Oracle SI to make it compatible with on-prem\nclustered Oracle SI and helps to avoid duplicated nodes (DRDC1-24264)\n2025-08-26 updated function to check for existing SIs (DRDC1-26816)\n2026-01-13 Add listening_ports for connection linker\n2026-03-08 updated ListDatabases and ListExaDatabases calls.\n2026-02-27 Changes to the Si version selection logic.\nThe primary source for all types except ExaData will be\nthe DBSystem version, not the DBHome version, as it was\nbefore TKU 08.2025.\n2026-04-01 Updated the default port value in attrs table to 0 (DRDC1-29292)\n2026-04-01 Now Oracle SIs inherit tags from OCI Oracle DB System Cluster,\nrather than from DB (DRDC1-29136)\n` + }, + "processClusters": { + snippets: ["${1:result_list}, ${2:TRACKER}"], + description: `Process results from Oracle Database services (Exadata or DB Systems)` + } + }, + "OCI.Compartments": { + }, + "OCI.ContainerInstances": { + }, + "OCI.DNS": { + "modelNetworkService": { + snippets: ["${1:results}, ${2:valid_zone_states}, ${3:removal_tracker_name}, ${4:type}, ${5:code}, ${6:da}"], + description: `This function models network service` + } + }, + "OCI.ExadataInfrastructure": { + }, + "OCI.FastConnect": { + }, + "OCI.FileSystem": { + }, + "OCI.Firewall": { + }, + "OCI.LB": { + }, + "OCI.Mysql": { + }, + "OCI.Nosql": { + }, + "OCI.ObjectStorage": { + }, + "OCI.OKE": { + }, + "OCI.OpenSearch": { + }, + "OCI.OracleSystem": { + }, + "OCI.Policies": { + }, + "OCI.Stream": { + }, + "OCI.SupportingTables": { + }, + "OCI.VCN": { + "modelSubnets": { + snippets: ["${1:da}, ${2:service}, ${3:subnet_results}, ${4:vcns}, ${5:tracker}"], + description: `Model OCI subnets as Subnet node\n\nIf OCI subnet contains both IPv4 and IPv6 ranges then\nmultiple Subnet nodes will be created accordingly\nChange History:\n2024-05-24 - Updated name attribute format (DRDC1-29015)\n2026-07-17 - Removed wrong link to CloudService (DRDC1-30205)` + }, + "modelSecurityGroups": { + snippets: ["${1:da}, ${2:service}, ${3:sg_results}, ${4:vcns}, ${5:tracker}"], + description: `Model OCI Network Security Groups as NetworkService nodes\n` + }, + "linkVCNtoNodes": { + snippets: ["${1:vcns}, ${2:subnet_to_vcn_map}, ${3:rel_tracker}, ${4:da}"], + description: `This function is used to ensure bidirectional relationships between the VCN and related nodes\nthat may have been created before the VCN pattern runs.\n\nChange History:\n2026-07-07 - Added links to Redis, ApiGateway, and MySQL SoftwareInstance nodes (DRDC1-28517)` + } + }, + "OCI.VM": { + "getAttrs": { + snippets: ["${1:result}"], + description: `Get Attrs\n\nChange history:\n2022-09-07 - added image and os info for each vm\n2022-09-28 - add support for oracle defined tags\n2023-03-13 - add support for cpu/memory info\n2023-10-17 - if display_name is missing then use instance id as vm name (DRDC1-22013)` + }, + "createRelationship": { + snippets: ["${1:vm}, ${2:host}"], + description: `Creates the relationship from the VM to the virtual Host\nChange History:\n2023-12-12 - Added __cdm_override_token_id attribute to host (DRDC1-21925)\n2024-01-17 - Added cloud_instance attribute to host (DRDC1-22690)` + }, + "addImageInfo": { + snippets: ["${1:da}, ${2:vms}"], + description: `Function adds the following attributes to VirtualMachine node:\nImage info:\nimage_name\nOS info:\nos_type, os, os_version, os_class, os_arch\n\nReport:\nsearch\nVirtualMachine\nwhere\nvm_type has substring 'OCI'\norder by\nos_type, os_version\nshow\nname, vm_type,\nos_type, os_version, os, os_class, os_arch,\nimage_name\n` + } + }, + "Octopus.Deployment": { + }, + "Opengear_CS": { + }, + "OpenLDAP.OpenLDAP": { + }, + "OpenNMS.Horizon": { + }, + "OpenSearch.OpenSearch": { + }, + "OpenShiftFunctions": { + "processNICs": { + snippets: ["${1:api_result}, ${2:request_type}"], + description: `Processes NodesNetworkState and BareMetalHost API outputs\nand returns interfaces_table` + } + }, + "OpenSource.Jenkins": { + }, + "OpenSource.Tripwire": { + }, + "OpenStack.Cinder": { + }, + "OpenStack.CommonFunctions": { + "_getProviderKey": { + snippets: ["${1:da}"], + description: `Return the cloud provider key` + }, + "_getProjectKey": { + snippets: ["${1:project_id}"], + description: `creates project key` + }, + "_getServiceKey": { + snippets: ["${1:region}, ${2:service_code}"], + description: `Return the cloud service key` + }, + "_getDomainKey": { + snippets: ["${1:da}, ${2:domain_id}"], + description: `Return the domain key` + }, + "getProviderAndRegion": { + snippets: ["${1:da}, ${2:project_id:=none}"], + description: `Returns the OpenStack CloudProvider & CloudRegion nodes for the given DA` + }, + "getService": { + snippets: ["${1:da}, ${2:region}, ${3:code}, ${4:associate}"], + description: `Returns the OpenStack CloudService node\nChange History:\n2022-05-03 Avoid updating inference relationships on CloudService\nnodes (DRDC1-18279)\n2023-01-10 Added confirmation of found CloudService node to make\ncontinuous CMDB sync triggering (DRDC1-20544)` + }, + "projectLink": { + snippets: ["${1:node}, ${2:project_id}"], + description: `Links the given node to a Project` + }, + "createProjects": { + snippets: ["${1:da}, ${2:results}, ${3:domains}"], + description: `Creates all projects and links them\nReturns a list of projects for future linking with regions\n\nChange History:\n2023-06-22 - Updated search expression (DRDC1-21503)` + }, + "linkRegionsToProjects": { + snippets: ["${1:da}, ${2:created_projects_list}"], + description: `Function searches regions that belongs to given projects and links to them\nWe do not expect too many projects, so such search should be fine\n!!! This approach does not help at all!!!!!\n\nChange History:\n2023-06-22 - Updated search expression (DRDC1-21503)` + }, + "novaFindVM": { + snippets: ["${1:service}, ${2:instance_id}"], + description: `Returns a VirtualMachine node for the given Nova compute server.\n\nReturns none if no VirtualMachine can be found.` + }, + "novaFindVMWithIP": { + snippets: ["${1:service}, ${2:ip_addr}"], + description: `Returns a VirtualMachine node with the given IP address.\n\nReturns none if no VirtualMachine can be found.` + }, + "novaFindVirtualHostForVM": { + snippets: ["${1:vm}, ${2:instance_id}"], + description: `Returns a Host node for the given Nova Compute VirtualMachine.\n\nReturns none if no Host can be found.` + }, + "createRemovalTracker": { + snippets: ["${1:da}, ${2:name}, ${3:kind}, ${4:is_rel}"], + description: `Create a removal tracker for the given kind and DA` + }, + "updateFailureTimeForService": { + snippets: ["${1:result}, ${2:service_code}"], + description: `Updates the last_update_failure time on the reqested CloudService\nnode, if it can be found` + }, + "checkIfLBunique": { + snippets: ["${1:lb_results}"], + description: `Check if LB name is unique or not` + } + }, + "OpenStack.Heat": { + }, + "OpenStack.Manila": { + "linkComputeToManilaShare": { + snippets: ["${1:host}"], + description: `Link REMOTE FileSystems on the Host to Manila shares` + } + }, + "OpenStack.Neutron.LBAAS": { + "findExistingHAProxyLBService": { + snippets: ["${1:instance_id}, ${2:ip_addr}, ${3:port}"], + description: `Find a LoadBalancerService node that matches the given instance_id,\nip_addr, port and is being maintained by the HAProxy load\nbalancer pattern.\n\ninstance_id - instance id to find,\nip_addr - IP address to find,\nport - port to find.\n\nReturns LoadBalancerService node or none.` + }, + "findExistingHAProxyLBPool": { + snippets: ["${1:existing_service}, ${2:instance_id}"], + description: `Find a LoadBalancerPool node that matches the given instance_id and is\nbeing maintained by the HAProxy load balancer pattern.\n\nexisting_service - HAProxy maintained LoadBalancerService node,\ninstance_id - instance id to find.\n\nReturns LoadBalancerPool node or none.` + }, + "findExistingHAProxyLBMember": { + snippets: ["${1:existing_pool}, ${2:instance_id}"], + description: `Find a LoadBalancerMember node that matches the given instance_id and is\nbeing maintained by the HAProxy load balancer pattern.\n\nexisting_pool - HAProxy maintained LoadBalancerPool node,\ninstance_id - instance id to find.\n\nReturns LoadBalancerMember node or none.` + } + }, + "OpenStack.Nova": { + "linkVirtualHost": { + snippets: ["${1:host}, ${2:instance_id}"], + description: `Marks the given Host as virtual and attempts to link it to the\nVirtualMachine` + }, + "linkHostToVM": { + snippets: ["${1:vm}"], + description: `Looks for Host using VirtualMachine instance_id, marks it as virtual\nand attempts to link it to the VirtualMachine\n\nChange History:\n2021-12-08 - Added linkage to Host scanned via API provider (DRDC1-18006)` + } + }, + "OpenStack.Octavia.LBAAS": { + }, + "OpenStack.OpenStack": { + "common_versioning": { + snippets: ["${1:host}, ${2:process}, ${3:bin_path}, ${4:regex_for_package}"], + description: `This function is used for versioning for almost\nall OpenStack components` + }, + "db_relations": { + snippets: ["${1:host}, ${2:conf_path}, ${3:si}"], + description: `This function is used for relation creation between\nOpenStack component and database` + }, + "keystone_relations": { + snippets: ["${1:host}, ${2:conf_path}, ${3:si}"], + description: `This function is used for relation creation between\nOpenStack component and Keystone` + }, + "rabbitMQ_relations": { + snippets: ["${1:host}, ${2:conf_path}, ${3:si}"], + description: `This function is used for relation creation between\nOpenStack component and RabbitMQ\n\nRabbitMQ is used in next OpenStack components:\n-Nova\n-Ceilometer\n-Cinder` + } + }, + "OpenStack.ProjectsandDomains": { + }, + "OpenStack.Software.AODH": { + "createInstance": { + snippets: ["${1:process}, ${2:bin_path}"], + description: `Create AODH instance` + } + }, + "OpenStack.Software.Ceilometer": { + "createInstance": { + snippets: ["${1:process}, ${2:bin_path}, ${3:package_regex}"], + description: `Functions to create a Ceilometer Instance on the host` + } + }, + "OpenStack.Software.Cinder": { + "createInstance": { + snippets: ["${1:process}, ${2:bin_path}"], + description: `Create the Cinder instance` + } + }, + "OpenStack.Software.Common": { + "getVersionInfo": { + snippets: ["${1:host}, ${2:bin_path}, ${3:package_regex}, ${4:release_table}"], + description: `This function obtains version information for the service by running the given command using --version (bin_path)\nIf that fails, it looks at packages.\n\nThe version is then looked up in the release table to give the release name.\n\nChange History:\n2019-02-18 - Updated to use modern runCommand functions\n2026-05-15 - Updated to use DiscoveryFunctions.runFutureActiveCommand() (DRDC1-29686)` + }, + "isTopProcess": { + snippets: ["${1:process}, ${2:expression}"], + description: `Checks to see if the process is the top in a group of processes` + }, + "getConfigValue": { + snippets: ["${1:config}, ${2:section}, ${3:key}, ${4:expression}"], + description: `Return the value of "key" from the section of the configuration\napplying any optional extraction regex\n\nReturns none if the value cannot be found` + }, + "createLinks": { + snippets: ["${1:host}, ${2:si}, ${3:process}, ${4:default_path}"], + description: `This function retrieves configuration files, parses them and tries to\nextract links to other OpenStack components like the database, Keystone service,\nRabbit MQ etc` + }, + "associateProcesses": { + snippets: ["${1:si}, ${2:process}, ${3:cmd}, ${4:args}, ${5:descendents}"], + description: `Find all the associated processes and link them to the SI\n\nIncludes all the descendents unless disabled.\nChange History:\n2023-12-05 The function updated to not create assisiate relationship to trigger process (DRDC1-22276)` + } + }, + "OpenStack.Software.Glance": { + "createInstance": { + snippets: ["${1:process}, ${2:bin_path}"], + description: `Create the Glance instance` + } + }, + "OpenStack.Software.Heat": { + }, + "OpenStack.Software.Keystone": { + "createInstance": { + snippets: ["${1:process}, ${2:bin_path}, ${3:package_regex}"], + description: `Create the Keystone Software Instance` + } + }, + "OpenStack.Software.Magnum": { + }, + "OpenStack.Software.Manila": { + }, + "OpenStack.Software.Neutron": { + }, + "OpenStack.Software.Nova": { + }, + "OpenStack.Software.Swift": { + }, + "OpenStack.Software.Trove": { + }, + "OpenStack.SupportingTables": { + }, + "OpenStack.Zun.Container": { + }, + "OpenSVC.OpenSVC": { + "appResource": { + snippets: ["${1:cluster_service_node}, ${2:cluster_node}, ${3:resource_body}"], + description: `Models Application Cluster Resource` + }, + "poolResource": { + snippets: ["${1:cluster_service_node}, ${2:cluster_node}, ${3:resource_body}"], + description: `Models Pool Cluster Resource` + }, + "fsResource": { + snippets: ["${1:cluster_service_node}, ${2:cluster_node}, ${3:resource_body}"], + description: `Models Filesystem Cluster Resource` + }, + "ipResource": { + snippets: ["${1:cluster_service_node}, ${2:cluster_node}, ${3:resource_body}"], + description: `Models IP Cluster Resource` + }, + "diskResource": { + snippets: ["${1:cluster_service_node}, ${2:cluster_node}, ${3:resource_body}"], + description: `Models Disk Cluster Resource` + }, + "volumeResource": { + snippets: ["${1:cluster_service_node}, ${2:cluster_node}, ${3:resource_body}"], + description: `Models Volume Cluster Resource` + }, + "containerResource": { + snippets: ["${1:cluster_service_node}, ${2:cluster_node}, ${3:resource_body}"], + description: `Models Container Cluster Resource` + } + }, + "OpenText.EnCaseForensic": { + }, + "OpenText.FaxServer": { + }, + "OpenText.VerastreamHostIntegrator": { + "getVersionPublisher": { + snippets: ["${1:process}"], + description: `Get version and publisher information\n\nChange History:\n2023-07-07 - Add WMI versioning (DRDC1-21476)` + } + }, + "OpenText.WEM": { + }, + "OpenVMS.Galaxy": { + }, + "OpenVZ": { + }, + "OperatingSystem.RedHatEnterpriseLinux.EUS": { + "parseInstalledProductStatus": { + snippets: ["${1:content}"], + description: `Parses product status.\nExample:\n+-------------------------------------------+\nInstalled Product Status\n+-------------------------------------------+\nProduct Name: Red Hat Enterprise Linux for x86_64 - Update\nServices for SAP Solutions\nProduct ID: 387\nVersion: 8.8\nArch: x86_64\nStatus: Subscribed\nStatus Details:\nStarts: 03/01/2023\nEnds: 03/01/2026\n\nProduct Name: Red Hat Enterprise Linux for SAP Solutions for\nx86_64 - Update Services for SAP Solutions\nProduct ID: 389\nVersion: 8.8\nArch: x86_64\nStatus: Subscribed\nStatus Details:\nStarts: 03/01/2023\nEnds: 03/01/2026\n\nProduct Name: Red Hat Enterprise Linux for x86_64\nProduct ID: 479\nVersion: 8.8\nArch: x86_64\nStatus: Subscribed\nStatus Details:\nStarts: 03/01/2023\nEnds: 03/01/2026\n\nChange History:\n2026-04-06 - Updated escape sequence (DRDC1-29309)` + } + }, + "OperatingSystem.Windows.ESU": { + "getActiveESULicenseIDs": { + snippets: ["${1:host}, ${2:esu_id_list}"], + description: `Discovers the ESU license for a given ESU ID.\n\nTakes a list of candidate IDs that indicate the presence of an ESU license.\n\nReturns a list of those candidate IDs that match ESU licenses present on\nthe host: e.g. ['77db037b-95c3-48d7-a3ab-a9c6d41093e0']\n\nChange History:\n2024-05-01 - Corrected ECA error (DRDC1-23446)` + }, + "getOSExtendedUpdate": { + snippets: ["${1:host}, ${2:esu_table}"], + description: `Discovers active ESU licenses.\nReturns the latest ESU license found.` + } + }, + "OracleApplicationServer.ExtendedDiscovery": { + "jdbc_details": { + snippets: ["${1:appsrv_si}, ${2:conf_file_content}, ${3:jdbc_dts}"], + description: `The function extracts JDBCResource details from the file content,\nmodels JDBC Details\nand returns the updated Details list back to the SI.\n\nChange History:\n2015-05-15 - Updated the parseJDBC() function module name(TKU-3879);\n2017-04-24 - Added check for node value (DRDC1-8585);\n` + } + }, + "Oracle.AccessManager": { + }, + "Oracle.ActiveDataGuard": { + "get_active_data_feature": { + snippets: ["${1:host}, ${2:ora_si}"], + description: `Identify 'Active' Dataguard from SQL query\n\nChange History:\n2018-11-21 - service_name query approach updated. (DRDC1-12155)\n2021-08-23 - instance query approach updated. (DRDC1-17327)\n2025-01-09 - instance query approach updated. (DRDC1-25404)` + } + }, + "Oracle.AdaptiveAccessManager": { + }, + "Oracle.AirlinesDataModel": { + }, + "Oracle.APIGateway": { + "get_port": { + snippets: ["${1:host}, ${2:install_root}, ${3:si_type}"], + description: `This function parses topology file in 2 ways:\nfirst is for Core Server, second is for Management Node\n\nChange History:\n2019-08-05 - Updated for Axway API Gateway (DRDC1-13684)` + }, + "get_full_version": { + snippets: ["${1:host}, ${2:process}, ${3:install_root}, ${4:si_type}"], + description: `This function performs file, path versioning\nand returns full_version\n\nChange History:\n2019-08-05 - Updated file and path versioning approach (DRDC1-13666)\n2019-10-10 - Added alternative versioning method (DRDC1-13015)\n2023-12-11 - Added active versioning method (DRDC1-22288)\n- Now function also returns product_version (DRDC1-22288)\n2026-04-07 - Updated escape sequence (DRDC1-29309)` + }, + "get_nodemanagers_hosts": { + snippets: ["${1:host}, ${2:install_root}"], + description: `This function extracts node manager's hosts and returns them as a list` + } + }, + "Oracle.ApplicationExpress": { + }, + "Oracle.ApplicationServer": { + "pathVersion": { + snippets: ["${1:cmd_args}"], + description: `Performs path versioning on command-line and args, returns version obtained from path\n\nChange History:\n2013-04-30 - Update to path regexes used in versioning\n2014-02-19 - Updated table OracleAS_PathVersions_Mapping used by this function` + }, + "productVersion": { + snippets: ["${1:full_version}"], + description: `Derive product_version from full_version\n\nChange History:\n2013-04-30 - Update to use local table of mappings and version mapping of Oracle AS\nis not the same as that of Oracle RDBMS and a number of other Oracle products` + } + }, + "Oracle.ApplicationServerPortal": { + }, + "Oracle.ApplicationTestingSuite": { + "install_root_via_registry": { + snippets: ["${1:host}, ${2:process_cmd}"], + description: `install_root_via_registry gets installation root from the OATS_HOME environment variable via Windows Registry` + }, + "file_versioning": { + snippets: ["${1:host}, ${2:install_root}"], + description: `file_versioning attempts to get versioning information from a file` + } + }, + "Oracle.AuditVaultandDatabaseFirewall": { + "attributes_extraction": { + snippets: ["${1:host}, ${2:si_type}, ${3:short_si_type}, ${4:full_version}"], + description: `Current function extracts product_version and sets the name\n\nChange History:\n2013-12-06 - OracleVersions table mapping is no longer used (TKU-2021);\n2014-09-16 - 'short_name' added (TKU-2353);` + } + }, + "Oracle.BerkeleyDB": { + }, + "Oracle_Blade": { + "findHostViaControllerWithMAC": { + snippets: ["${1:mac}"], + description: `Find a Host node via it's management controller which has a\nnetwork interface matching the given mac.\n\nReturns none if the host cannot be found` + }, + "findHardwareComponent": { + snippets: ["${1:host}"], + description: `Find a HardwareComponent node from the host.\nThis requires a connected ManagementController which has a\nNetworkInterface.\n\nReturns none if the hardware component cannot be found\n\nChange History:\n2022-10-04 - HardwareDetail node replaced with HardwareComponent (DRDC1-19201)` + }, + "findHostForILOM": { + snippets: ["${1:ilom}"], + description: `Find the Host node from the ilom.\n\nReturns none if the host cannot be found` + }, + "findHardwareComponentFromILOM": { + snippets: ["${1:ilom}"], + description: `Find a HardwareComponent node from the ilom.\n\nReturns none if the hardware component cannot be found\n\nChange History:\n2022-10-04 - HardwareDetail node replaced with HardwareComponent (DRDC1-19201)` + }, + "destroyHostLink": { + snippets: ["${1:hw_component}, ${2:container}"], + description: `Destroy any link between the given container and a host a\nmanagement controller with the given mac address.\nThis relies on a HardwareUse relationship between the\nHardwareComponent node and the host linked to the container because of it.\n\nChange History:\n2022-10-04 - HardwareDetail node replaced with HardwareComponent (DRDC1-19201)` + } + }, + "Oracle.BusinessActivityMonitoring": { + }, + "Oracle.BusinessIntelligence": { + "get_product_version": { + snippets: ["${1:full_version}"], + description: `Get product_version from full_version\n\nChange History:\n2021-06-25 - Added one more level for version mapping (DRDC1-17062)` + } + }, + "Oracle.BusinessIntelligenceDiscoverer": { + "pattern_body": { + snippets: ["${1:process}, ${2:executable}, ${3:si_type}, ${4:short_si_type}"], + description: `Local function to process Desktop and Administrator patterns and build the SIs\n\nChange History:\n2019-02-21 - Updated to use escapePath function\n2026-04-07 - Updated escape sequence (DRDC1-29309)` + } + }, + "Oracle.BusinessIntelligencePublisher": { + "get_product_version": { + snippets: ["${1:full_version}"], + description: `Get product_version from full_version\n\nChange History:\n2026-04-07 - Updated escape sequence (DRDC1-29309)` + } + }, + "Oracle.BusinessProcessManagement": { + }, + "Oracle.BusinessTransactionManagement": { + }, + "Oracle.CloudFileSystem": { + }, + "Oracle.Clusterware": { + "assemble_properties": { + snippets: ["${1:status_file_content}"], + description: `Parses status file content for a partial resource and assemble a dictionary of its properties\n\nChange History:\n2019-08-20 - Updated to avoid possible ECA error if DESCRIPTION is not set in output (DRDC1-13769)` + }, + "filterErrors": { + snippets: ["${1:content}, ${2:stop_string}"], + description: `Function filter errors from command output.\n\n2>/dev/null is not redirecting all errors from command output, for this product.\nExample:\nLinux-x86_64 Error: 13: Permission denied\nAdditional information: 16893\n([all diagnostic data retrieved from ADR])] <-- after this line should go useful output\ncluster_id\nCLSD: An internal logic error was encountered ...\n\nAfter useful data in command output usually happens more error lines.\nThey could be filtered by stop_string agrument.\n\nAgruments:\ncontent - string, command output, contains useful data mixed with errors\nstop_string - string, line where the useful data in output should end\n\nChange History:\n2026-07-30 - updated to skip more error lines (DRDC1-30332)` + } + }, + "Oracle.Coherence": { + }, + "Oracle.CommunicationsBillingAndRevenueManagement": { + }, + "Oracle.CommunicationsDataModel": { + }, + "Oracle.ConnectionManager": { + }, + "Oracle.ContentDB": { + }, + "Oracle.DatabaseLite": { + }, + "Oracle.DataIntegrator": { + }, + "Oracle.DataServiceIntegrator": { + }, + "Oracle.DeveloperSuite": { + }, + "Oracle.DirectoryServer": { + }, + "Oracle.eBusiness.BusinessApplications": { + }, + "Oracle.eBusiness.SoftwareInstances": { + "parse_config_file": { + snippets: ["${1:as_si}, ${2:config_file}"], + description: `Parse configuration file and obtain database connection information and full_version\nFind related Oracle Database SI.\n\nChange History\n2013-11-19 - related_rdbms_sis_search() is replaced with related_rdbms_sis_search_extended() since now only this function supports domain_lookup() function\n2016-11-17 - Updated function names according to the RDBMS_Functions changes (DRDC1-5767)\n2018-01-17 - Updated database_sis for cases when db_sid = ora_service_name (DRDC1-10577)` + }, + "sql_query_versioning": { + snippets: ["${1:db_si}"], + description: `Run sql query to obtain version\n\nChange History:\n2016-02-12 - Add oracle credential support for known virtual IP with no port.\n2016-03-25 - Updated Oracle DB queries (DRDC1-4759)\n2016-11-21 - Updated function names according to the Common_Functions changes (DRDC1-5767)\n2018-11-19 - success_login_cred changed to success_login_credential (DRDC1-12155)` + }, + "get_all_related_sis": { + snippets: ["${1:as_si}, ${2:db_si}"], + description: `Find related SIs depending on values in SQL query columns:\nif the 'row.support_forms' is set to 'Y':\n'Oracle Application Server'\n'Oracle Internet Application Server'\nif the 'row.support_web' is set to 'Y':\n'Oracle HTTP Server'\n\nChange History:\n2013-11-18 - identify_host() is replaced with identify_host_extended() since now only this function supports domain_lookup() function\n2016-02-12 - Add oracle credential support for known virtual IP with no port.\n2016-11-21 - Updated function names according to the Common_Functions changes (DRDC1-5767)\n2018-11-19 - success_login_cred changed to success_login_credential (DRDC1-12155)` + }, + "model_eBusiness_application": { + snippets: ["${1:host}, ${2:ebs_si}, ${3:db_si}"], + description: `Determine which application are running\nRun a database query to determine which applications and modules are running\nThe applications have individual SIs, the modules have SoftwareComponent nodes on the SIs\n\nChange History:\n\n2014-09-15 - 'short_name' SI attribute added (TKU-2353);\n2016-02-12 - Add oracle credential support for known virtual IP with no port.\n2015-12-14 - for modelled BusinessApp SIs added link to Hosted Hosts (DRDC1-5632)\n2016-03-25 - Updated Oracle DB queries (DRDC1-4759)\n2016-11-21 - Updated function names according to the Common_Functions changes (DRDC1-5767)\n2018-02-26 - 'eBusiness_si_management' function replaced with 'setRemovalGroup' (DRDC1-10594)\n2018-11-19 - success_login_cred changed to success_login_credential (DRDC1-12155)` + } + }, + "Oracle.EngineeredSystems": { + "runIpmitool": { + snippets: ["${1:host}"], + description: `Run ipmitool tool:\n\nipmitool sunoem cli "show /SP system_identifier"\nConnected. Use ^D to exit.\n-> show /SP system_identifier\n\n/SP\nProperties:\nsystem_identifier = Exadata Database Machine X3-2 AK00097035\n-> Session closed\nDisconnected\n\nExamples:\nsystem_identifier = Sun Oracle Database Machine 1020AK2107\nsystem_identifier = Oracle Zero Data Loss Recovery Appliance X5 AK12345678 - https://docs.oracle.com/cd/E55822_01/AMOGD/E37432-20.pdf\nsystem_identifier = Oracle Big Data Appliance AK00086253 - https://docs.oracle.com/cd/E55905_01/doc.40/e55796/config_expansion.htm#BIGOG76893\nsystem_identifier = Oracle Exalytics XXXXXXXXX - https://oraclemva.wordpress.com/2015/09/01/configure-virtualized-exalytics-host-for-enterprise-manager-cloud-control-discovery-and-how-to-save-you-from-a-4-3-gb-download/\nsystem_identifier = Oracle Virtual Compute Appliance X4-2 AK00244041 - http://manualzz.com/doc/6542079/oracle%C2%AE-private-cloud-appliance\n\nChange History:\n2018-01-12 - updated expected_content_regex for ipmitool command (DRDC1-10328)\n2020-06-02 - added command 'ipmitool sunoem cli "show /System serial_number"' to get\nrack_serial (DRDC1-14224)\n2026-04-07 - Updated escape sequence (DRDC1-29309)` + }, + "runDmidecode": { + snippets: ["${1:host}, ${2:system_type}"], + description: `Run dmidecode command and try to identify Oracle System type\n\nExadata:\n\n# dmidecode 2.12\nSMBIOS 2.7 present.\n\nHandle 0x00A0, DMI type 129, 8 bytes\nOEM-specific Type\nHeader and Data:\n81 08 A0 00 01 02 03 04\nStrings:\nOracle Corporation\nExadata X4-2\nExadata X4-2\nAK001XXXXX\n\n# dmidecode 2.11\nSMBIOS 2.7 present.\n\nHandle 0x00A0, DMI type 129, 8 bytes\nOEM-specific Type\nHeader and Data:\n81 08 A0 00 01 02 03 04\nStrings:\nOracle Corporation\nExadata X3-2\nExadata X3-2\nAK001XXXXX\n\nOracle Big Data X4-2:\n\n# dmidecode 2.12\nSMBIOS 2.7 present.\n112 structures occupying 5791 bytes.\nTable at 0x000E9C00.\n\nHandle 0x00A2, DMI type 129, 8 bytes\nOEM-specific Type\nHeader and Data:\n81 08 A2 00 01 02 03 04\nStrings:\nOracle Corporation\nBDA X4-2 starter\nBDA X4-2 starter\nAK001XXXXX\n\nExalogic X3-2:\n# dmidecode 2.10\nSMBIOS 2.7 present.\n\nHandle 0x00A0, DMI type 129, 8 bytes\nOEM-specific Type\nHeader and Data:\n81 08 A0 00 01 02 03 04\nStrings:\nOracle Corporation\nExalogic X3-2\nExalogic X3-2\nAK001XXXXX\n\nOracle PCA/VCA\nHandle 0x00A0, DMI type 129, 8 bytes\nOEM-specific Type\nHeader and Data:\n81 08 A0 00 01 02 03 04\nStrings:\nOracle Corporation\nOVCA X4-2 Base\nOVCA X4-2 Base\nAK00244051\n\nBut these items are not present\non Exadata X2-2:\n\n# dmidecode 2.11\nSMBIOS 2.6 present.\n\non Exalogic X2-2:\n\n# dmidecode 2.11\nSMBIOS 2.6 present.\n\nChange History:\n2017-09-11 - added support for Oracle Virtual Compute Appliance\n2022-05-11 - updated regex for model extraction (DRDC1-18897)` + }, + "identifyByPackage": { + snippets: ["${1:host}"], + description: `Identify system by installed package name.\nExamples:\nexadata-base 11.2.3.3.0.131014.1\nexalogic 2.0.6.2.0\nbda 4.5.0\n` + }, + "identifyByConfFile": { + snippets: ["${1:host}, ${2:system_type}"], + description: `Identify system by existence of related configuration file.\n\nChange History:\n2017-03-29 system_model can be extracted from config file (DRDC1-8616)\n2019-08-09 added sanity check (DRDC1-13693)\n2022-05-11 updated model extraction regex (DRDC1-18897)\n2025-01-02 added check if file_serial_regex is not empty (DRDC1-25307)` + }, + "modelSystem": { + snippets: ["${1:host}, ${2:system_type}, ${3:system_model}, ${4:rack_serial}, ${5:system_name}"], + description: `model HardwareContainer for Oracle System\n\nChange History:\n2017-10-17 - Changed HostContainer name attribute to be system name, or if empty, rack serial (Esc 111986)\n2019-01-15 - Added filter out for zero rack_serial number (DRDC1-12490)\n2023-12-01 - Updated HardwareContainer key (DRDC1-22176)\n2025-04-17 - use serial_number discovered in another Host which is part of the same HardwareContainer (DRDC1-26184)\n` + }, + "getSystemName": { + snippets: ["${1:host}, ${2:compute_nodes}, ${3:storage_nodes}"], + description: `Get system name based on common part of compute and cell/storage node names\n\nNodes namings example:\n/var/exalogic/one-command/config/exalogic_current.conf\nRACK_NAME el01\nCNODE_PREFIX cn\nSNODE_PREFIX sn\n\nCompute Nodes el01cn01, el01cn02, el01cn03, el01cn04, el01cn05, el01cn06, el01cn07, el01cn08\nStorage Nodes el01sn01, el01sn02\n\nwhich means that system name is: el01` + }, + "linkSystemNodes": { + snippets: ["${1:host}, ${2:system_node}, ${3:compute_nodes}, ${4:storage_nodes}"], + description: `Link related System nodes to the HardwareContainer\n\nChange History:\n2021-02-05 - Function updated in order to find Storage Ssytem and\nStorage Device nodes (DRDC1-16389)` + }, + "linkNetworkNodes": { + snippets: ["${1:host}, ${2:system_node}, ${3:ciscos}, ${4:ibs}"], + description: `Link related Network Device nodes to the HardwareContainer\n\nsystem_node - HardwareContainer node\nciscos and ibs - list of NetworkDevice nodes` + }, + "createExadata": { + snippets: ["${1:host}, ${2:system_type}, ${3:system_model}, ${4:rack_serial}"], + description: `Collect additional information from Exadata config file and model System HardwareContainer\n\nExample of databasemachine.xml:\n\n\n\n\n2\ndb_name\ndb\ncustomer\ncel\n2\n3\n600G\nexample.com\nEurope\nTRUE\n\n\n00000000\n273\nSSC Fully Populated Rack T5 HC 4TB 4HCA 4\n13\n5\n\n...\n\n\ncomputenode\nadmin_name\n10.11.12.13\nilom_name\n10.11.12.25\nclient_name\n10.12.13.14\n5\n3\n\n\n...\n\n\n\n...\n\n\n\n\n\nChange History:\n2020-06-02 - updated to handle databasemachine.xml configuration file that contains\nseveral racks (DRDC1-14935)\n2020-06-30 - updated to prevent possible ECA error (DRDC1-15420)\n2021-02-05 - updated in order to link Network Device (DRDC1-16389)\n2023-11-16 - replaced 'stop' with 'return' (DRDC1-22238)\n2023-12-01 - updated system_model (DRDC1-22176)` + }, + "createExalogic": { + snippets: ["${1:host}, ${2:system_type}, ${3:system_model}, ${4:rack_serial}"], + description: `Collect additional information from Exalogic config file and model System HardwareContainer\n\nFile /var/exalogic/one-command/config/exalogic_current.conf:\n\nCountry America\nTimezone America/Boston\nNameServers 1.8.2.3\nNTP 1.8.3.3\nDomain us.oracle.com\nSearchDomains 1.8.4.3\nDefaultGateway 155.155.155.200\n\nNetType Netmask Gateway\nNet.ilom _NOCHANGE _NOCHANGE\nNet.eth0 _NOCHANGE _NOCHANGE\nNet.bond0 _NOCHANGE _NOCHANGE\nNet.bond1 _NOCHANGE _NOCHANGE\nStorage.ilom _NOCHANGE _NOCHANGE\nStorage.eth0 _NOCHANGE _NOCHANGE\nStorage.bond0ipmp1 _NOCHANGE _NOCHANGE\nSwitch.net0 _NOCHANGE _NOCHANGE\n\nNode Type Hostname Management IP [ILOM] Management IP [net0] Client Access IP [bond1] Privatename Private IP [bond0/ipmp1] ILOM Name\ncnode1 rachnamecn01 192.168.1.101 192.168.1.1 _NOCHANGE rachnamecn01-priv 192.168.10.1 rachnamecn01-c\ncnode2 rachnamecn02 192.168.1.102 192.168.1.2 _NOCHANGE rachnamecn02-priv 192.168.10.2 rachnamecn02-c\ncnode3 rachnamecn03 192.168.1.103 192.168.1.3 _NOCHANGE rachnamecn03-priv 192.168.10.3 rachnamecn03-c\ncnode4 rachnamecn04 192.168.1.104 192.168.1.4 _NOCHANGE rachnamecn04-priv 192.168.10.4 rachnamecn04-c\ncnode5 rachnamecn05 192.168.1.105 192.168.1.5 _NOCHANGE rachnamecn05-priv 192.168.10.5 rachnamecn05-c\ncnode6 rachnamecn06 192.168.1.106 192.168.1.6 _NOCHANGE rachnamecn06-priv 192.168.10.6 rachnamecn06-c\ncnode7 rachnamecn07 192.168.1.107 192.168.1.7 _NOCHANGE rachnamecn07-priv 192.168.10.7 rachnamecn07-c\ncnode8 rachnamecn08 192.168.1.108 192.168.1.8 _NOCHANGE rachnamecn08-priv 192.168.10.8 rachnamecn08-c\nsnode1 rachnamesn01 192.168.1.115 192.168.1.15 _NOTAPPLICABLE rachnamesn01-priv 192.168.10.15 rachnamesn01-c\nsnode2 rachnamesn02 192.168.1.116 192.168.1.16 _NOTAPPLICABLE rachnamesn02-priv 192.168.10.16 rachnamesn02-c\n\nSwitchNode Type Switch Name Management IP [net0]\nswnode1 rachnamegw01 192.168.1.201\nswnode2 rachnamegw02 192.168.1.202\n\nRACK_TYPE 1\nRACK_NAME rachname\nCNODE_PREFIX cn\nSNODE_PREFIX sn\n\nChange History:\n2020-06-30 - updated to prevent possible ECA error (DRDC1-15420)\n2021-02-05 - updated in order to link Network Device (DRDC1-16389)\n2023-11-16 - replaced 'stop' with 'return' (DRDC1-22238)` + }, + "createPCA": { + snippets: ["${1:host}, ${2:system_type}, ${3:system_model}, ${4:rack_serial}"], + description: `Extract list of complute nodes using command:\npca-admin list compute-node\n\nCompute_Node IP_Address Node_State ILOM_MAC ILOM_State\n------------ ---------- ---------- -------- ----------\novcaXXXr1 192.168.1.9 RUNNING 00:10:e0:65:2f:b7 running\novcaXXXr1 192.168.1.10 RUNNING 00:10:e0:62:31:81 running\novcaXXXr1 192.168.1.7 RUNNING 00:10:e0:65:2f:cf running\novcaXXXr1 192.168.1.8 RUNNING 00:10:e0:40:cb:59 running\novcaXXXr1 192.168.1.11 RUNNING 00:10:e0:62:ca:09 running\novcaXXXr1 192.168.1.12 RUNNING 00:10:e0:65:30:f5 running\novcaXXXr1 192.168.1.5 RUNNING 00:10:e0:31:49:1d running\novcaXXXr1 192.168.1.6 RUNNING 00:10:e0:65:2f:3f running\n----------------\n\nhttps://docs.oracle.com/cd/E55813_01/E56837/html/admin-cli-commands.html#admin-cli-commands-list\n\nChange History:\n2017-09-27 - function should stop if system_node is not created (Esc 111270)\n2019-08-09 - added compute nodes in DEAD state (DRDC1-13693)\n2023-11-16 - replaced 'stop' with 'return' (DRDC1-22238)` + }, + "createSupercluster": { + snippets: ["${1:host}, ${2:system_type}, ${3:system_model}, ${4:rack_serial}"], + description: `Collect additional information from Supercluster config file and model System HardwareContainer\n\nAccording to https://docs.oracle.com/cd/E50790_01/doc/doc.121/e27442/ch2_deployment.htm#EMXIG291\nSuperCluster uses databasemachine.xml config file as well.` + }, + "createBDA": { + snippets: ["${1:host}, ${2:system_type}, ${3:system_model}, ${4:rack_serial}"], + description: `Collect additional information from Oracle BDA config file and model System HardwareContainer\n\nhttp://docs.oracle.com/bigdata/bda46/BIGOG/preface.htm#BIGOG101\n\nOracle Big Data Appliance Configuration Generation Utility\n\nThis utility generates two new configuration files: network.json: Supersedes BdaDeploy.json.\nFor software upgrades, Mammoth converts the existing BdaDeploy.json to network.json.\nNew installations must have network.json.\nnetworkexpansion.json: Supersedes BdaExpansion.json.\n\nChange History:\n2020-06-30 - Updated to prevent possible ECA error (DRDC1-15420)\n2021-02-05 - Updated in order to link Network Device\n- Updated regex to parse config file (DRDC1-16389)\n2022-03-28 - Updated to use rack-natwork.json file (DRDC1-17781)\n2023-11-16 - Replaced 'stop' with 'return' (DRDC1-22238)` + } + }, + "Oracle.EnterpriseDataQuality": { + }, + "Oracle.EnterpriseManager": { + "commandVersioning": { + snippets: ["${1:command_result}, ${2:oraem_type}"], + description: `Obtain the versioning information and type for Oracle EM and Oracle EM Agent.\n\nChange History:\n2019-08-14 - Updated for cases where we could get spaces as a part of cmd_type,\nremoved product version from cmd_type so it would not be recurrent\nin the resulting product name (DRDC1-13739)` + }, + "alternativeCommandVersioning": { + snippets: ["${1:host}, ${2:ora_instance}, ${3:oracle_home}, ${4:oraem_type}"], + description: `Compose the alternative versioing command, obtain the versioning information\nand type for Oracle EM and Oracle EM Agent.` + } + }, + "Oracle.EnterpriseRepository": { + }, + "Oracle.EnterpriseServiceBus": { + }, + "Oracle.EnterpriseSingleSignOn": { + "package_versioning": { + snippets: ["${1:host}, ${2:regexes}"], + description: `package_versioning preforms package versioning\n\nChange History:\n2019-12-11 - Updated to use DiscoveryFunctions (DRDC1-14358)` + }, + "set_product_version": { + snippets: ["${1:full_version}"], + description: `set_product_version sets the product version based on the full version and the Oracle Versions table\n\nChange History:\n2019-12-11 - Updated product_version assignment (DRDC1-14358)` + }, + "set_name": { + snippets: ["${1:host}, ${2:si_type}, ${3:product_version}, ${4:short_si_type}"], + description: `set_name sets the name for the created SoftwareInstance\nChange History:\n2014-10-06 - small update in attributes ordering (QM001860550).` + }, + "create_si": { + snippets: ["${1:host}, ${2:si_type}, ${3:name}, ${4:short_name}, ${5:full_version}, ${6:product_version}"], + description: `create_si creates a SoftwareInstance` + }, + "create_logon_manager_communication_link": { + snippets: ["${1:host}, ${2:si_node}"], + description: `create_logon_manager_communication_link creates a client-server communication link between the given SI and the Oracle ESSO Logon Manager SI` + } + }, + "Oracle.EntitlementsServer": { + }, + "Oracle.Essbase": { + "file_path_versioning": { + snippets: ["${1:host}, ${2:common_conf_dir}"], + description: `Parses all files in a given directory for "version" using grep or an equivalent\nFrom this result obtains the full version\n\nTakes:\nHost\nDirectory to parse\n\nReturns:\nFull version\n\nChange History:\n2016-02-09 - Remove -r option from grep, it is not needed (DRDC1-5588)\n2019-02-25 - Updated to use DiscoveryFunctions.escapePath() function` + } + }, + "Oracle.ExaLogic": { + }, + "Oracle.Express": { + }, + "Oracle.FinancialServices": { + }, + "Oracle.Forms": { + }, + "Oracle.FusionMiddleware.CommonCode": { + "productVersion": { + snippets: ["${1:full_version}"], + description: `Derive product_version from full_version\n` + } + }, + "Oracle.FusionMiddleware.OPMN": { + }, + "Oracle.FusionMiddleware.WebCache": { + }, + "Oracle.GlassfishOpenMessageQueue": { + }, + "Oracle.GoldenGateVeridata": { + "active_versioning": { + snippets: ["${1:host}, ${2:install_root}, ${3:si_version}"], + description: `Function extracts full_version from veridataweb.log or veridata.log file in /shared/logs directory\n\nChange History:\n2019-02-25 - Updated to use DiscoveryFunctions.escapePath() function\n2019-05-16 - Remove cmd /c from runCommand (DRDC1-12533)` + }, + "package_versioning": { + snippets: ["${1:host}, ${2:si_version}"], + description: `function extracts full_version from list of packages` + }, + "get_rdbms_si": { + snippets: ["${1:host}, ${2:install_root}"], + description: `function obtains database information from veridata.cfg file\n\nChange History:\n2013-09-09 - updated format of related_rdbms_sis_search() function (TKU-1911)\n2016-11-17 - Updated function names according to the Common_Functions changes (DRDC1-5767)` + } + }, + "Oracle.GoldenGate_Director": { + }, + "Oracle.HadoopLoader": { + }, + "Oracle.HyperionDataRelationshipManagement": { + }, + "Oracle.HyperionFinancialDataQualityManagement": { + }, + "Oracle.HyperionFinancialManagement": { + }, + "Oracle.HyperionFinancialReporting": { + }, + "Oracle.HyperionFoundationServices": { + "fileVersioning": { + snippets: ["${1:host}, ${2:process}, ${3:install_root}, ${4:query}"], + description: `extracts version from .oracle.products file\nor from EPMSystem directory\n\nChange History:\n2019-10-01 - added version extraction from the EPMSystem folder name.(DRDC1-12799)` + }, + "nameAssignment": { + snippets: ["${1:host}, ${2:full_version}, ${3:si_type}, ${4:short_si_type}"], + description: `extracts product_version from full_version\nreturns name, short_name, product_version attributes\n\n2019-12-11 - Updated product_version assignment (DRDC1-14358)` + } + }, + "Oracle.HyperionInteractiveReporting": { + }, + "Oracle.HyperionPlanning": { + }, + "Oracle.iAS": { + }, + "Oracle.IdentityAnalytics": { + }, + "Oracle.IdentityManager": { + }, + "Oracle_ILOM": { + }, + "Oracle.InternetDirectory": { + }, + "Oracle.JavaWebConsole": { + }, + "Oracle.Jolt": { + }, + "Oracle.LinuxManager": { + }, + "Oracle.LinuxVirtualizationManager": { + "apiCall": { + snippets: ["${1:host}, ${2:request}"], + description: `runs API request` + }, + "convertTextToBoolean": { + snippets: ["${1:attrs}"], + description: `Function converts text values 'True', 'true', 'False', 'false' to boolean` + } + }, + "Oracle.NoSQLDatabase": { + }, + "Oracle.OracleASM": { + "getDiskGroups": { + snippets: ["${1:host}, ${2:ora_home}, ${3:asm_sid}"], + description: `Get information on disk_gropus from acsfutil and asmcmd commands` + }, + "getAsmSidOraHome": { + snippets: ["${1:host}, ${2:process}"], + description: `Obtain asm_sid and ora_home from trigger process` + } + }, + "Oracle.OracleMGMT_Packs": { + }, + "Oracle.OracleProC": { + }, + "Oracle.OracleRDBMS": { + "get_ip_addresses": { + snippets: ["${1:sockets}"], + description: `extract IP addresses from list of listen sockets` + }, + "escape_special_chars": { + snippets: ["${1:string}"], + description: `Escape special chars\n\nChange History:\n2026-04-08 - Updated escape sequence (DRDC1-29309)` + }, + "get_ora_home_from_oratab": { + snippets: ["${1:host}, ${2:ora_sid}, ${3:db_unique_name}, ${4:clustered}"], + description: `Get ora_home from oratab file\n\nChange History:\n2015-02-15 - regex for extracting ora_home updated\n2016-04-26 - regex for extracting ora_home updated (DRDC1-6119)` + }, + "get_ora_home_from_process_id": { + snippets: ["${1:process}"], + description: `Obtain ora_home from /proc/ or lsof \n\nChange History:\n2014-12-10 - use standard get_exe_cwd_path() function\n2016-08-31 - Updated function names according to the CommonFunctions changes (DRDC1-6073)` + }, + "get_clusterware_info": { + snippets: ["${1:host}, ${2:crs_home}"], + description: `Gets clusterware info from crsctl status resource command\n\nRuns legacy crs_stat command if that fails\n\nReturns result of command\n\nChange History:\n2014-12-10 - run ulimit based command in subshell (DRDC1-25797)` + }, + "active_versioning": { + snippets: ["${1:host}, ${2:ora_home}"], + description: `Active Versioning for Windows and Unix\n\nChange History:\n2017-11-13 - Updated function to use runActiveCommand (DRDC1-9987)\n2019-05-08 - Updated to include the new versioning command for 18c+ (DRDC1-12994)\n2019-05-29 - Active versioning updated\n2020-03-26 - Active versioning regex updated (DRDC1-14999)` + }, + "path_versioning": { + snippets: ["${1:host}, ${2:ora_home}, ${3:process}"], + description: `Extract version from ora_home or process.cmd\n\nChange History:\n2018-09-14 - Updated version regexes (DRDC1-12032)\n2019-10-02 - Updated version regexes in cases where we can get product version in the path (DRDC1-14031)\n2022-03-09 - Updated version regex (DRDC1-18623)\n2022-04-20 - Updated version regex (DRDC1-18875)\n2024-03-05 - Added additional regexes (DRDC1-23064)` + }, + "package_versioning_xe": { + snippets: ["${1:process}"], + description: `Extract version for Oracle express edition from packages` + }, + "package_versioning": { + snippets: ["${1:process}"], + description: `Extract version for Oracle 18c+ from package name` + }, + "get_sid_from_windows_srvs": { + snippets: ["${1:process}"], + description: `Extract and from Windows services\n\nChange History:\n2014-05-15 - fixed ECA error caused by absent cmdline attribute in DiscoveredService node (QM001827709)` + }, + "get_crs_home": { + snippets: ["${1:host}"], + description: `try to obtain CRS_HOME from appropriate Clusterware SI` + }, + "get_crs_info": { + snippets: ["${1:process}, ${2:ora_sid_norm}, ${3:ora_home}"], + description: `function provides 'clustered' evidence on Windows and value for DB_UNIQUE_NAME attribute by means of 'crs_stat -v' command\n\nChange history:\n2014-04-02 - added extraction of RAC host nodes (QM001822455)\n2014-05-30 - added check of the error message 'cannot open' (HP UX case) (QM001848072)\n2014-07-22 - fixed wrong names for RAC SI located on single host (QM001851127)\n2014-10-29 - the process, which indicates clustered Oracle instance, is changed from ora_lmon_ to ora_lms0_ (QM001854578)\n2014-11-24 - Privileged execution of crs_stat -v is now performed where user doesn't have enough privilege to perform such operation (Esc 066719)\n2014-12-25 - Updated crs_cmd extraction. Always tries to run with PRIV_RUNCMD (TKU-2342)\n2015-11-20 - adding support for Oracle RAC running on single node (ESC 082587)\n2016-07-12 - added 'crsctl status resource -f' command which replace 'crs_stat -v' in oracle version >= 11.2\n2016-08-31 - runActiveCommand() common function is now deployed,\nUpdated function names according to the CommonFunctions changes(DRDC1-6073)\n2016-11-10 - updated regex for rac host nodes extraction for Oracle 10g (Esc: 096943)\nadded additional check for non empty delimiter(Esc: 097446)\n2016-12-07 - "crsctl status resource -f" command now rerun just in case infrastructure error encountered (Esc 094983)\n2017-01-07 - reverted updates for Esc 094983\n2019-04-24 - added scan_listeners extraction (DRDC1-11102)\n2019-07-18 - domain and ora_home extraction added (DRDC1-13246)\n2019-07-10 - full_version extraction added (DRDC1-14031)\n2020-05-13 - domain extraction updated (DRDC1-15120)\n2020-08-27 - domain extraction additionally updated (DRDC1-15120)\n2020-09-10 - added extraction of rac_instances (DRDC1-14608)\n2022-07-19 - added clustered check (DRDC1-19162)\n2023-06-06 - added 'ulimit -c 0' to crsctl commands (DRDC1-14481)\n2023-06-08 - added ora_base extraction (DRDC1-21252)\n2023-12-01 - removed extra code (DRDC1-22302)\n2024-05-07 - Move command to run crsctl to common function (DRDC1-23132)` + }, + "get_srvctl_info": { + snippets: ["${1:host}, ${2:ora_home}, ${3:ora_base}, ${4:db_unique_name}"], + description: `Obtain service_names from srvctl command for clustered Instances\n\nCommands example:\n[root@racone ~]# /u01/app/11.2.0/grid/bin/srvctl config database -d newgdbn\n...\nDatabase unique name: newgdbn\nDatabase name: newgdbn\nDomain: new-domain.com\nDatabase instances: newsid1,newsid2\nServices: newgdbn_sales_service,only4newsid1\n\nChange History:\n2016-07-15 - global_db_name is kept in lower case(DRDC1-6197)\n2017-11-13 - Updated function to use runActiveCommand (DRDC1-9987)\n2018-02-19 - Updated command for AIX 7.1 (DRDC1-10673)\n2018-06-20 - Updated commands for AIX 7.1 and Solaris 11.3 (esc 120222, 120308)\n2018-07-19 - Updated the execution of the srvctl command to prevent core dumps,\nif they are enabled while user is not in required group (DRDC1-11693)\n2019-02-19 - Updated to run commands successfully in ksh (DRDC1-12639)\n2020-03-05 - Updated to exclude duplicate domain part on service names (DRDC1-14735)\n2023-04-27 - Added additional command (DRDC1-21252)\n2026-01-20 - Added db_name extraction from srvctl command (DRDC1-27916)` + }, + "getSCANName": { + snippets: ["${1:host}, ${2:ora_home}"], + description: `Obtains SCAN name\n\nSingle Client Access Name (SCAN) is a feature used in RAC env that provides\na single name for clients to access any Oracle Database running in a cluster.\n\nCommands example:\n[root@racone ~]#(ORACLE_HOME=/home/soft/oracle; export ORACLE_HOME; ulimit -c 0 && /home/soft/oracle/bin/srvctl config scan)\n...\nSCAN name: rac18cluster-scan.domain.fake, Network: 1\n` + }, + "clean_value": { + snippets: ["${1:value}, ${2:key}"], + description: `Function removes extra symbols from value\n\nTakes:\n* Value - Value to tidy\n* key (optional) - If this value is part of a key value pair, specify the key\n\nChange History:\n2016-06-29 - added handler for values in double quotes (ESC 091587)\n2019-11-18 - added additional handler for cases where\nthe quotes are not closed on some values (DRDC1-14253)\n2020-03-01 - fixed regex - unexpected group is removed\n2023-04-14 - remove unnecessary whitespace as part of cleaning (DRDC1-21177)\n2023-05-24 - Better error handling for spfiles with no useful\ninformation (DRDC1-21327)\n2023-06-29 - Handle numbers and booleans (DRDC1-21429)\n2023-10-19 - Don't tidy values that don't need tidying (DRDC1-21916)` + }, + "parse_config_file": { + snippets: ["${1:input}, ${2:no_tidy}"], + description: `Converts the raw output of a configuraton file to a table\n\nAll other entries are of one of the following formats\nExample: db_name = SOMEDBNAME\n*.db_name='SOMEDBNAME'#Reset to original value by RMAN\n*.db_domain=NULL\nor\ndb_name = "SOMEDBNAME"\ndb_domain=dbdomain\n\nWe parse the values of the table using function clean_value.\nSo output["MyAttr"] = "'True'" becomes output["MyAttr"] = true\nIf the value isn't a simple string, number or boolean please add it to no_tidy\nFor example, an attribute value of "dg_config=(FOO)" will be too complicated\nfor clean_value to parse\n\nTakes : Contents of configuration file\nReturns : Table with key value pairs of configuration data\n\nChange History:\n2023-09-29 - Use the new API for function clean_value (DRDC1-21916)` + }, + "get_oracle_parameters": { + snippets: ["${1:host}, ${2:ora_home}, ${3:ora_sid}"], + description: `function tries to read oracle parameter files like 'spfile.ora' or 'init.ora'\n\nChange History:\n2014-10-15 - Added check for invalid command output(QM001861749)\n2016-05-04 - added handling for extracted value from ora file (DRDC1-6038)\n2016-06-08 - added 'strings' command for .ora file reading to eliminate binary symbols (DRDC1-6197)\n2016-07-10 - changed command for reading of spfile/init.ora files\nadded commands with and without sudo privileges (DRDC1-6197)\n2016-08-31 - Updated function names according to the CommonFunctions changes(DRDC1-6073)\nrunActiveCommand() common function is now deployed\n2017-04-11 - added compatibility option extraction (DRDC1-7353)\n2018-02-01 - returns content of spfiles now as well\n2018-07-19 - added service_names extraction (DRDC1-10989)\n2019-02-28 - Escape ora_sid paths\n2020-02-28 - updated regexes to avoid data extraction from next line\n2023-03-20 - Improve parsing of spfile (DRDC1-20932)\n2023-05-24 - Better error handling for spfiles with no useful\ninformation (DRDC1-21327)\n2023-06-29 - Use function to parse SP File (DRDC1-21429)\n2023-10-19 - Use new api for function clean_value (DRDC1-21916)\n2025-07-21 - Updated to return db_name (DRDC1-26753)\n2025-07-24 - service name processing updated (DRDC1-26862)` + }, + "extractOrahomeFromListener": { + snippets: ["${1:host}, ${2:ora_sid}, ${3:ora_sid_norm}"], + description: `Extract from "TNS Listener" SI:\n- from content of \n- from listener_si.ora_home\n\nUsually Oracle SI and Listener SI are installed in the same location, but\nexistance of more than 1 Listener could indicate that Listeners could\nbe installed in different locations, so function proceed only if one\nListener SI is found.\n\nChange History:\n2021-10-11 - Updated to check paths for several listeners linked to one DB (DRDC1-17506)` + }, + "getListenSocketsFromListeners": { + snippets: ["${1:listeners}"], + description: `Get ListenSockets from Listener SIs` + }, + "getSockets": { + snippets: ["${1:listeners}, ${2:scan_listener_names}"], + description: `Get sockets from Listener SIs\n\nSockets are used later in SQL queries, so sockets from SCAN Listeners\nshould be first because they are more preferable to run SQL queries:\n- it is oracle recomended way to connect to database\n- it enhances chances that Discovery can connect to database\n- the same connection information (record data) will be re-used during scan of different cluster members` + }, + "getServicesFromServingListeners": { + snippets: ["${1:instances}, ${2:listeners}"], + description: `Get service_names which are related to Oracle from SIs` + }, + "get_listeners_info": { + snippets: ["${1:host}, ${2:ora_sid}"], + description: `function tries to obtain information from TNS Listeners which serve specific \n\nChange History:\n2016-07-15 - service_name is kept in lower case (DRDC1-6197)\n2017-04-07 - added "order by" for listener search to have predicted order in listeners_tcp_sockets(DRDC1-8016)\n2017-05-23 - create link between Oracle and Listener instances running on Clusters (DRDC1-8844)\n2017-12-12 - added an alternative method of ora_home extraction (DRDC1-10283)\n2020-04-13 - added check for related listeners for clustered instances` + }, + "get_edition_from_registry": { + snippets: ["${1:host}, ${2:ora_home}, ${3:full_version}"], + description: `Keine Beschreibung verfügbar.` + }, + "get_edition_from_response_dir": { + snippets: ["${1:host}, ${2:ora_home}"], + description: `Get edition information for Oracle 11.2, 12.1 (and above) from\n- file name in "%ora_home%/inventory/response" directory, file names examples:\noracle.server_EE.rsp or oracle.server_SE.rsp or oracle.server_PE.rsp or oracle.crs_Complete.rsp (XE?)\n\n- from content of the file %ora_home%/inventory/response/oracle.crs_Complete.rsp, content examples:\noracle_install_db_InstallEdition="EE" or "STD"/"SE" or "PE" (XE?)\n\nreturns edition\n\nChange History:\n2017-11-13 - Updated function to use runActiveCommand (DRDC1-9987)` + }, + "get_version_from_Components21_dir": { + snippets: ["${1:host}, ${2:ora_home}"], + description: `Return the highest available '%version_subdir%' inside of:\n#1: %ora_home%/inventory/Components21/oracle.rdbms\n#2: %ora_home%/inventory/Components21/oracle.server\nexamples: 12.1.0.1.0, 11.2.0.1.0, 10.2.0.1.0, 9.2.0.1.0\nNote: Path #2 DOES NOT EXIST for Oracle 12.X !!!\n\n'unique_version' is 'true' only if there is just one subdirectory !!!\n\nChangeHistory:\n2016-08-31 - Updated function names according to the CommonFunctions changes(DRDC1-6073)\nrunActiveCommand() common function is now deployed` + }, + "get_edition_from_context_xml_file_on_unix": { + snippets: ["${1:host}, ${2:ora_home}, ${3:version_subdir}"], + description: `Get edition information from context.xml file on Unix for Oracle 11.1 and below:\n\nAlgorithm:\nfor 11.1.X and below:\nedition from: %ora_home%/inventory/Components21/oracle.server/11.1.0.1.0/context.xml | grep -w s_serverInstallType\nif not edition or edition = 'Custom'\nedition from: %ora_home%/inventory/Components21/oracle.rdbms/11.1.0.1.0/context.xml | grep -w s_nameOfBundle\n\nOracle 9.X, 10.X, 11.1\n#1. PRIV_CAT /space/essora/oracle/product/9.2.0.1/inventory/Components21/oracle.server/9.2.0.1.0/context.xml | grep -w s_serverInstallType\n\n#2. PRIV_CAT /space/essora/oracle/product/9.2.0.1/inventory/Components21/oracle.rdbms/9.2.0.1.0/context.xml | grep -w s_nameOfBundle\n\n\nPROBLEMS - sometimes commands show different results for the same Oracle installation:\nexample for "SE" and "EE":\n#1. "SE" - PRIV_CAT /local/oracle/product/10.2.0/db_1/inventory/Components21/oracle.server/10.2.0.1.0/context.xml | grep -w s_serverInstallType\n None\n#2. "EE" - PRIV_CAT /local/oracle/product/10.2.0/db_1/inventory/Components21/oracle.rdbms/10.2.0.1.0/context.xml | grep -w s_nameOfBundle\n\n\nexample for "Custom" and "EE":\n#1. "Custom" - PRIV_CAT /data1/app/oracle/product/10gR2/inventory/Components21/oracle.server/10.2.0.1.0/context.xml | grep -w s_serverInstallType\n\n#2. "EE" - PRIV_CAT /data1/app/oracle/product/10gR2/inventory/Components21/oracle.rdbms/10.2.0.1.0/context.xml | grep -w s_nameOfBundle\n\n\nAdditional NOTES:\nOracle 11.2\n#1. PRIV_CAT /u01/app/11.2.0/grid/inventory/Components21/oracle.server/11.2.0.1.0/context.xml | grep -w s_serverInstallType\n- NO 's_serverInstallType' entry in context.xml file!!!\n#2. PRIV_CAT /u01/app/11.2.0/grid/inventory/Components21/oracle.rdbms/11.2.0.1.0/context.xml | grep -w k\n- ALLWAYS RETURN 'EE' even if this is 'SE' or 'PE' installation!!!\n\nOracle 12.X\n#1. PRIV_CAT /data2/oracle/product/12.1.0/grid/inventory/Components21/oracle.server/12.1.0.1.0/context.xml | grep -w s_serverInstallType\n- NO 's_serverInstallType' entry in context.xml file!!!\n#2. PRIV_CAT /data2/oracle/product/12.1.0/grid/inventory/Components21/oracle.rdbms/12.1.0.1.0/context.xml | grep -w s_nameOfBundle\n- RETURN 'EE' even if this is 'SE' or 'PE' installation!!!\n\nGeneric query for research:\nSearch DiscoveredCommandResult WHERE (cmd has substring 'Components21' or cmd has substring 'response')\nOrder By #DiscoveryResult:DiscoveryAccessResult:DiscoveryAccess:DiscoveryAccess.key, cmd\nSHOW #DiscoveryResult:DiscoveryAccessResult:DiscoveryAccess:DiscoveryAccess.key , cmd, result\n\nChange History:\n2013-03-07 - Adding additional path candidate to context.xml file for Oracle RDBMS 9 (QM001784245)\n2013-05-08 - Better handling of paths to context.xml file (QM001789943)\n2013-08-21 - function get_edition_on_unix() is renamed to get_edition_from_context_xml_file_on_unix\nremoved commands for Oracle 11.2 since new approach in get_edition_from_response_dir() function is used instead\nremoved grep command which used wildcard in file path\nupdated commands for edition extraction and added usage of PRIV_CAT and PRIV_LS(TKU-1840)\n2017-11-13 - Updated function to use runActiveCommand (DRDC1-9987)` + }, + "associate_unix_processes": { + snippets: ["${1:process}, ${2:ora_si}, ${3:ora_sid_norm}"], + description: `function associates all related oracle process on Unix\n\nChange History:\n2013-10-17 - added support for Oracle Express Edition on Unix.\n2016-02-05 - Excluded ora_lmon_* process (DRDC1-5250)\n2023-01-17 - Updated (?i) flag placement in regular expression (DRDC1-20566)` + }, + "resolve_named_address": { + snippets: ["${1:process}, ${2:listener_tcpip_sockets_raw}"], + description: `function resolves host_name/domain_name to IP address.\nIt is required when Oracle listens on IP address other then IP which is used for host scan.\nIn this situation 'resolved' IP is used as 'address' parameter in SQL query.\n\nIf HOST_ADDRESS is host_alias/domain_name, then pattern tries to resolve it using only one of the available methods:\n- "Listening Port List"\nIn "Listening Port List" pattern tries to find address which tnslsr process listen on.\nIf it is valid IP addresses, then it is used for SQL queries.\nIf it is '*', or '::', "0.0.0.0" it means that connection can be opened to any IP address on the host\n\nif "Listening Port List" method identified listening socket as '*:1521' then:\n- no 'address' parameter will be used in SQL query.\n- ADDM will try to run SQL query through IP address which is used for host discovery.\n\n- "Network Interfaces" (ONLY when "DiscoveredListeningPort" nodes are not created in ADDM!)\nPattern picks up IPs for all interfaces which FQDNs starts with "HOST_ADDRESS" extracted from lsnrctl command.\nIt means that all detected IP addresses will be tried to run SQL query with.\n\nSo if HOST_ADDRESS was not resolved to IP or it is '*', '::' or "0.0.0.0" then IP address which was used to scan the host will be used to run SQL query.\nIf listening sockets contains a couple of IP addresses, then all of them are tried to run SQL query until connection is successfully opened.\n\nChange History:\n2013-01-25 - updated hostname extraction regex for ip_to_fqdns_map table (TKU-1761)\n2013-02-28 - added the case when address obtained from NetworkConnectionList is (i.e "0.0.0.0" and "::") (TKU-1788)\n2016-02-04 - changed order for resolve method. "Network Interfaces" based method is tried only when "DiscoveredListeningPort" nodes are not created in ADDM (DRDC1-5894)\n2017-01-16 - enhanced listening socket resolution method for the case when there is no process.pid -> listening_socket mapping (RFE DRDC1-7822)\n2017-07-21 - fqdn method is tried if NetworkConnectionList based methos failes (DRDC1-9073)\nif listener in listening on all host ip addresses then such named_address resolved to 0.0.0.0 (DRDC1-9074)` + }, + "sort_sockets": { + snippets: ["${1:host}, ${2:listen_tcp_sockets}"], + description: `function sorts and filters available oracle listen sockets\n\nSockets with higher priority has better chance that it is accessible by ADDM for successful SQL query.\nPriority:\n1 ip_based_sockets:\n1.1 endpoint IP address\n1.2 IPs in the same network with endpoint IPv4 address\n1.3 rest IPs\n1.4 IPs from link-local networks: 169.254.*.*, fe80::\n2 host_based_ports\n\nFiltered out sockets:\nlocal (127.0.0.1, '::1', 'localhost')\n\nExample:\nHost endpoint: 172.1.1.2 (__all_ip_addrs: 172.1.1.2, 172.1.1.55, 10.1.1.2)\n\nlisten_tcp_sockets input example:\n['bla.com:1521', '10.1.1.2:1522', 'host_alias:1526', '172.1.1.55:1521',\n'172.1.1.2:1521', ':1528', '127.0.0.1:1528', '137.2.2.2:2150'];\n\nReturned:\n-> ip_based_sockets: '172.1.1.2:1521', '172.1.1.55:1521', '137.2.2.2:2150', '10.1.1.2:1522'\n-> host_based_ports: 1521, 1526, 1528\n\nSkipped:\nlocal: 127.0.0.1:1528\n\nChange History:\n2016-03-20 - IP based sockets are sorted by priority it is used in SQL queries. (DRDC1-5894)\n2016-04-11 - fixed bug in endpoint determination (DRDC1-5923)\n2020-09-10 - Removed filter of remote IP address, such IPs are handled by\nfindDatabaseHostNode function now.` + }, + "get_net_service_names": { + snippets: ["${1:host}, ${2:ora_home}, ${3:ora_sid_norm}, ${4:service_name}"], + description: `function tries to read oracle tnsnames.ora file and obtains all sections(net_service_names) which points to current Oracle Instance\n\nChange History:\n2013-11-06 - added code from DatabaseServer pattern\n2026-04-08 - Updated escape sequence (DRDC1-29309)` + }, + "get_product_version": { + snippets: ["${1:full_version}"], + description: `get product_version from full_version\n\nChange History:\n2013-11-06 - product version assignment updated (DRDC1-14358)\n2026-04-08 - Updated escape sequence (DRDC1-29309)` + }, + "get_listener_file_content": { + snippets: ["${1:process}, ${2:listener_name}, ${3:ora_home}"], + description: `Function detects a number of possible paths to listener.ora file and tries to read each file until section for "listener_name" is found\n\nChange History:\n2013-10-17 - added support for Oracle Express Edition on Unix.\n2020-03-11 - updated to exclude possible domain parts (DRDC1-14735)\n2024-10-10 - SID extraction updated (DRDC1-24574)\n2025-06-03 - condition for listener.ora updated (DRDC1-26639)\n2025-10-27 - added additional path for listener.ora (DRDC1-27759)` + }, + "assignPatchesVersion": { + snippets: ["${1:psu_version}, ${2:dbbp_version}, ${3:ru_version}, ${4:candidate_version}, ${5:type}, ${6:description}, ${7:id}"], + description: `Function assigns patch version for a specific bundle.\n\nPSU version for version 11 only.\nPSU, DBBP, RU/RUR version for 12+\n\nChange History:\n2021-05-04 - updated id assignment (DRDC1-16673)` + }, + "validateSuccessLoginCredential": { + snippets: ["${1:success_login_credential}, ${2:service_names}, ${3:listeners_tcp_sockets}"], + description: `Check if info in success_login_credential is contained in service_names and listeners_tcp_sockets` + }, + "getPreviousSQLCredentials": { + snippets: ["${1:host}, ${2:ora_sid}, ${3:service_names}, ${4:listeners_tcp_sockets}"], + description: `get SQL credentials from Oracle SI created in previous scans.\nFor clustered setups we prioritse local credentail as\nthose are last successfully used on the currently scanning host.\n\nENV:\n"Oracle Clusterware Cluster" contains\n- HostA with "Oracle Worker 1" SI which uses sockets1 (ips belong to HostA only)\n- HostB with "Oracle Worker 2" SI which uses sockets2 (ips belong to HostB only)\n---> clustered Oracle SI with sockets = sockets1 + sockets2\n\nPROBLEM:\nDRDC1-25402 during SQL queries:\nstep1:\nscan HostA, 'success_login_credential' attr is created with sockets1\nstep2:\nscan HostB, try to re-use 'success_login_credential' but since IPs of sockets1\nbelong to HostA, SQL requests fail with "java.sql.SQL.Exception\nNetwork adatapter could not establish the connection"\nor "Timeout error"\n\nNote: problem is not reproducable locally and happens on customer enviroment only\n\nSOLUTION:\nfor clustered setups, we should use credentials of current "Worker" SI to avoid\nusage of IP addresses which does not belong to current Host.\n\nChange History:\n2025-02-13 - Added check for local worker credentials (DRDC1-25402)` + }, + "findDatabaseHostNode": { + snippets: ["${1:host}, ${2:ip}"], + description: `Find Database Host Node which actually has ` + }, + "runSqlVersioningQuery": { + snippets: ["${1:host}, ${2:db_host:=none}, ${3:success_login_credential:=none}, ${4:ip:=''}, ${5:port:=''}, ${6:instance:=''}, ${7:service:=''}"], + description: `run query\n\nWe can't use ExtendedSQLQuery as that requires a db_node with\nsuccess_login_credential. And we call this function to check what to put\nin success_login_credential\n\nChange History:\n2021-08-23 - Updated instance assignment (DRDC1-17327)\n2022-05-05 - Use discovery.sqlQuery (DRDC1-18964)\n2022-08-05 - Fix bug with calls to discovery.sqlQuery (DRDC1-19296)\n2026-03-12 - Updated to use new local function for running SQL query (DRDC1-26024)` + }, + "convertSocketsForSQLQuery": { + snippets: ["${1:listeners_tcp_sockets}, ${2:host}"], + description: `Convert sockets for SQL query:\nfrom: [':', ...]\nto: [table(ip:='', port:=''), ...]` + }, + "runSqlVersioningQueryWithCredentialsDiscovery": { + snippets: ["${1:host}, ${2:instance}, ${3:service_names}, ${4:listeners_tcp_sockets}"], + description: `Function tries to run sql queries to obtain version and edition information\n\nif HOST_ADDRESS in listeners_tcp_sockets was not resolved to IP or it is '*', '::' or "0.0.0.0"\nthen no 'address' parameter is used (endpoint host IP address will be used to run SQL query)\nIf listening sockets contains a couple of IP addresses,\nthen all of them are tried in priority defined by sort_sockets() function until connection is successfully opened\n\nChange History:\n2014-06-03 - switched order of sql queries for better support of Oracle 12c - query with service name is tried first now (QM001822230)\n2016-03-25 - Updated Oracle DB queries (DRDC1-4759)\n2016-08-31 - Updated function names according to the CommonFunctions changes(DRDC1-6073)\n2017-04-12 - run sql query on the db_host which resides listening IP address, if IP is provided (DRDC1-8337)\nadded check for type of returned HostingNode(DRDC1-8499)\n2017-10-24 - function now uses multiple service_names for service related queries (DRDC1-12155)\n2019-05-23 - updated listeners_tcp_sockets based exctraction ()\n2023-12-08 - Check an IP is valid before using it (DRDC1-22231)` + }, + "getVersionFromQuery": { + snippets: ["${1:query_results}"], + description: `Extract version from SQL query results\n\nChange History:\n2021-11-19 - edition extraction updated ()` + }, + "sqlVersioning": { + snippets: ["${1:host}, ${2:ora_sid}, ${3:service_names}, ${4:listeners_tcp_sockets}"], + description: `Run basic SQL queries to get version and edition information\n\nIf the queries are successful we return the full_version and edition that\nwe found. We also return success_login_credential so we know to use this\ncredential in subsequent discovery runs\n\nWrapper function for runSqlVersioningQuery and\nrunSqlVersioningQueryWithCredentials\n\nChange History:\n2022-05-05 - Limit number of SQL calls made to the minimum. We don't do\nfurther checks after we have established success_login_credential\n(DRDC1-18964)` + }, + "sql_versioning_by_vip": { + snippets: ["${1:host}, ${2:hosting_node}, ${3:ora_sid}, ${4:db_instance}, ${5:service_names}, ${6:listeners_tcp_sockets}"], + description: `Keine Beschreibung verfügbar.` + }, + "merge_all_service_names": { + snippets: ["${1:global_db_name}, ${2:service_names_from_listeners}, ${3:service_names_from_srvctl}, ${4:service_names_from_spfile}"], + description: `Create service_names attributes.\nConform attribute, where first element will be used for 'sql queries',\nand all other just for 'search queries', add them in the following order:\n1. global_db_name (if it is in the list of service_names_from_listeners)\n2. service_names_from_listeners\n3. global_db_name (if it is NOT in the list of service_names_from_listeners)\n4. service_names_from_srvctl\n\nNOTE: services from service_names_from_listeners are guaranteed can be used for sql queries\nsince Listeners are aware about them so we put them on the first place.\n\nChange History:\n2016-07-25 - changed the way of service_names creation (DRDC1-6197)\n2018-07-19 - added service name extraction from spfile*.ora files (DRDC1-10989)` + }, + "linked_oracle_instances": { + snippets: ["${1:host}, ${2:ora_si}"], + description: `Obtain connection information about Linked Oracle instances from sql query.\n\nObtained connection information could be:\n- just net_service_name from tnsnames.ora file\n- net_service_name string: (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP) (HOST=some.host.name)(PORT=1485))) (CONNECT_DATA=(SERVICE_NAME=SOMESID)))\n- jdbc connection string: some.host.name:1451/SOMESID\n\nCreate Client-Server Communication Link with Oracle Instances linked by 'DB Link'. (RFE QM001721280) QM001811016\n\nChange History:\n2015-10-12 - Legacy code removed\n2016-02-12 - Add oracle credential support for known virtual IP with no port.\n2016-03-25 - Updated Oracle DB queries (DRDC1-4759)\n2016-08-31 - Updated function names according to the CommonFunctions changes(DRDC1-6073)\n2017-07-12 - Added code that prevents link SI to itself (DRDC1-9174)\n2019-05-10 - Updated to link local Oracle RAC instances (DRDC1-11102)\n2020-10-10 - updated code for success_login_credential attribute access\n2021-03-10 - removed duplicated entries in list of connection_strings(DRDC1-16455)` + }, + "getOpatchCommandPath": { + snippets: ["${1:host}, ${2:ora_home}, ${3:oraInst_loc_file_path}"], + description: `function composes command for obtaining patch information\n\nChange History:\n2016-08-31 - Updated function names according to the CommonFunctions changes(DRDC1-6073)\n2017-08-02 - Update condition and put timeout for and kill command for HP-UX os type (DRDC1-9493)` + }, + "getPatches": { + snippets: ["${1:host}, ${2:ora_home}"], + description: `Function obtains patch information\n\nChange History:\n2016-07-28 - added privileged execution option (DRDC1-6577);\n2016-08-31 - Updated function names according to the CommonFunctions changes(DRDC1-6073)\nrunActiveCommand() common function is now deployed\n2019-05-15 - Updated to use Future commands\n2019-08-02 - Updated to look for PSU number\n2019-10-28 - Updated to look for RU number (DRDC1-14176)\n2020-03-11 - Updated regex for RU number (DRDC1-14793)` + }, + "getPatchesExtended": { + snippets: ["${1:full_version}, ${2:orcl_si}"], + description: `Function obtains patch information using SQL queries\n\nExample output:\nAction Status Target_version Target_build_description Description Patch_type\nAPPLY SUCCESS 19.9.0.0.0 Release_Update Database Release Update : 19.9.0.0.201020 (31771877) RU\n\nACTION STATUS VERSION DESCRIPTION BUNDLE_SERIES\nAPPLY SUCCESS 12.2.0.1 DATABASE OCT 2020 RELEASE UPDATE 12.2.0.1.201020 DBRU\n\nChange History:\n2021-08-23 - Updated instance assignment (DRDC1-17327)\n2022-05-05 - Use extended_SQL_Query function (DRDC1-18964)` + }, + "modelParametersDetail": { + snippets: ["${1:orcl_si}, ${2:paramfile_content}"], + description: `Extract oracle Parameters from:\n- v$parameter table\n- v$database table\n- spfile file\n\nChange History:\n2019-07-18 - updated to include db_unique_name check and update SI naming if necessary,\nmoved link creation outside of the function scope (DRDC1-13246);\n2020-10-10 - update code for success_login_credential attribute access\n2021-08-23 - updated instance assignment (DRDC1-17327)\n2022-05-05 - use extended_sql_query function (DRDC1-18964)\n2023-06-29 - use function to parse paramfile_content (DRDC1-21429)\n2023-10-19 - use new API for function clean_value (DRDC1-21916)` + }, + "checkUniqueName": { + snippets: ["${1:parameters_dt}, ${2:db_unique_name}, ${3:global_db_name}, ${4:db_domain}"], + description: `For clustered databases related to Oracle Data Guard we check "Db Unique Name" and update the SI accordingly.\n\nChange History:\n2019-11-19 - updated check for db_unique_name (DRDC1-14253)\n2023-10-19 - Use new API for function clean_value (DRDC1-21916)` + }, + "getEnvHosts": { + snippets: ["${1:host}"], + description: `Return Hosts where Oracle Env could be deployed.\n\nOptions:\n#1 - Standalone:\ncurrent node\n\n#2 - Cluster (Cluster -> ClusterMembers):\nall cluster member Hosts (with current node)\n\n#3 - 'Veritas Cluster' Cluster (Cluster -> ClusterMembers -> VM Hosts):\nall cluster member Hosts ('global' Solaris zones) +\nall VMs Hosts (with current node) which are managed by cluster members Hosts\n(SIs can be deployed on both levels)\n\nChange History:\n2021-05-14 - added more accurate query to support special case with Veritas Cluster env.\nOtherwise function could return incorrect results in another cluster envs (like vCenter Cluster).` + }, + "findRacInstances": { + snippets: ["${1:env_hosts}, ${2:global_db_name_norm}"], + description: `Find all RAC instances from Oracle Worker based on similar ` + }, + "getRacListeners": { + snippets: ["${1:env_listeners}, ${2:instance_listeners}, ${3:rac_instances}, ${4:ora_sid}"], + description: `Get Listeners which serve whole Oracle RAC (serve each Oracle SID)` + }, + "checkSIKey": { + snippets: ["${1:hosting_node}, ${2:db_instance}, ${3:on_cluster}"], + description: `Check if a SoftwareInstance with a given db_instance exists\nin hosting_node.\n\nChange History:\n2025-12-24 - return table with si_key and si_name of existing SI.` + }, + "find_version": { + snippets: ["${1:process}, ${2:ora_home}, ${3:ora_sid}"], + description: `Find full version using active, registry and path methods\n\nFin edition from registry, command or file` + } + }, + "Oracle.OracleRDBMS_Extended": { + "updatePDBMaps": { + snippets: ["${1:pdb_maps}, ${2:query_results}"], + description: `Update and build mapping of pluggable databases (PDBs)\n\nquery_results - Results of running the PDB SQL query\npdb_maps - table with maps for discovered PDB names\n\nUpdates the pdb_maps table with the results from the database query.\nReturns a table which maps the PDB name to a list of service names.\n\nChange History:\n2019-09-18 - updated for all service names scenario (DRDC1-13923)\n2020-07-07 - service name check updated (DRDC1-15421)` + }, + "createDatabases": { + snippets: ["${1:si}, ${2:pdb_maps:=none}, ${3:attributes}, ${4:query_results:=}"], + description: `Creates nodes for each database in the pluggable database (PDB) map\n\nsi - Oracle SoftwareInstance,\npdb_maps - PDB map (PDB name -> [service names]),\nattributes - Optional table of extra attributes to set on the nodes.\nquery_results - raw SQL query results for creation of PDB map\n\nChange History:\n2019-02-04 - updated for Oracle RAC model changes (DRDC1-11102)\n2019-09-16 - Added ComponentAliases suffix (DRUD1-27186)\n2020-10-01 - Database nodes are aged by pattern code instead of removal groups\ndomain name is added for each service_name\nuse more meaningfull global_db_name in the name of CDB$ROOT Database node (DRDC1-16386)\n2021-05-14 - reverted key changes for modelling 'default' Database node for\nclustered Oracle SI.instance = global_db_name = .\n2025-07-21 - added db_name to Database node (DRDC1-26753)\n2025-12-24 - find existing cloud scaned DBs to get key (DRDC1-28401)\n2026-03-12 - updated to assign individual credentails for databases (DRDC1-26024)` + }, + "createDefaultDatabase": { + snippets: ["${1:ora_si}, ${2:cdb:=false}"], + description: `create defaut Database node for:\n- all oracle 11.3 and below\n- non-cdb oracle 12 and above\n\nChange History:\n2023-04-27 - Updated to include all associated\nservice names to standalone databases (DRDC1-21196)` + }, + "getPDBsFromSQLQuery": { + snippets: ["${1:ora_si}, ${2:host}, ${3:service_names}, ${4:existing_pdbs}"], + description: `Get a list of PDBs\n\nWe screen existing_pdbs nodes to make sure they are valid. We're not\ninterested in nodes without success_login_credentials, with invalid\nsuccess_login_credentials (perhaps from old scans) or nodes with credentials\nwe've already tried\n\nWe then run SELECT NAME, PDB FROM V$SERVICES ORDER BY PDB, NAME against\nall valid nodes and createDatabases\n\nFunction handles the following configurations:\n- service + SQL credentials with access to ALL pdbs:\npdb_name1 -> services: [pdb_name1, custom_service1]\npdb_name2 -> services: [pdb_name2, custom_service2, custom_service2_1]\n...\npdb_nameX -> services: [pdb_nameX, custom_serviceX]\n\n- service + SQL credentials with access to 1 pdb only:\npdb_nameY -> services: [pdb_name1, custom_service1]\n\n- service + SQL credentials with no access to 1 pdb\n\nChange History:\n2021-07-10 - fixed modelling of PDBs for Oracle SIs without service_name\n2021-08-23 - instance assignment for SQL queries updated (DRDC1-17327)\n2021-11-16 - SID based credential updated (DRDC1-17742)\n2022-01-25 - Use SQLQuery.extendedSQLQuery (DRDC1-18312)\n2023-07-17 - Updated service names check (DRDC1-21504)\n2023-11-15 - Updated to not use internal service names by default (DRDC1-22116)\n2025-02-13 - Updated local worker credential check (DRDC1-25402)` + }, + "getPDBsFromDirectoryListing": { + snippets: ["${1:ora_si}, ${2:host}, ${3:pdbs}"], + description: `Extract PDBs from /oradata// directory listing\n\nNote: method is not 100% reliable but in the most of cases PDBs are located in:\n/oradata//` + }, + "getPDBs": { + snippets: ["${1:ora_si}, ${2:service_names}, ${3:existing_pdbs}"], + description: `get PDBs using SQL and directory listing methods` + }, + "createSchemas": { + snippets: ["${1:si}, ${2:db}, ${3:results}, ${4:multitenant}, ${5:attributes}, ${6:schema_sizes}"], + description: `Create DatabaseDetail nodes for the given schema results,\nexcept those which are configured to be ignored.\n\nsi - Oracle SoftwareInstance,\ndb - Database node,\nresult - Results of schemas SQL query,\nmultitenent - If true, adds additional relationships,\nattributes - Optional table of extra attributes to set on the nodes,\nschema_sizes - Optional table to populate sizes for schemas.\n\nChange History:\n2020-08-17 - Updated type attribute (DRDC1-14748)\n2023-09-15 - Added optional size extraction (DRDC1-21329)` + }, + "createTables": { + snippets: ["${1:si}, ${2:schema}, ${3:tables}, ${4:attributes}"], + description: `Create DatabaseDetail nodes for the given table results\n\nsi - Oracle SoftwareInstance,\nschema - Schema DatabaseDetail,\ntables - Results of tables SQL query,\nattributes - Optional table of extra attributes to set on the nodes.\n\nChange History:\n2024-09-26 - Add table size (DRDC1-23787)\n2025-12-17 - Add partitioned attribute (DRDC1-28390)` + }, + "createTablespaces": { + snippets: ["${1:si}, ${2:db}, ${3:tablespaces}, ${4:tablespace_sizes}, ${5:multitenant}, ${6:attributes}"], + description: `Create DatabaseDetail nodes for the given tablespace results\n\nsi - Oracle SoftwareInstance,\ndb - Database node,\ntablespaces - Results of tablespace SQL query,\ntablespace_sizes - Optional, tablespace sizes in MB,\nmultitenent - If true, adds additional relationships,\nattributes - Optional table of extra attributes to set on the nodes.\n\nChange History:\n2022-11-05 - Added optional attribute for tablespace sizes (DRDC1-19124)` + }, + "createDatafiles": { + snippets: ["${1:si}, ${2:tablespace}, ${3:datafiles}, ${4:attributes}"], + description: `Create DatabaseDetail nodes for the given datafile results\n\nsi - Oracle SoftwareInstance,\ntablespace - Tablespace DatabaseDetail,\ndatafiles - Results of data files SQL query,\nattributes - Optional table of extra attributes to set on the nodes.` + } + }, + "Oracle.OracleRDBMS_Options": { + "run_option_usage_sql_query": { + snippets: ["${1:host}, ${2:db_si}, ${3:options_and_packs}, ${4:target_database:=''}"], + description: `Options that can be identified by option_usage.sql query:\nActive Data Guard\nAdvanced Compression\nAdvanced Security\nData Mining\nDatabase Vault\nExadata\nLabel Security\nOLAP\nPartitioning\nReal Application Clusters\nReal Application Testing\nSpatial\nTotal Recall\n\nMultitenant (>12c)\nAdvanced Replication\nReal Application Cluster One Node\nOracle Database In-Memory (>12.1.0.2 feature mapping is based on info from https://blogs.oracle.com/In-Memory/entry/getting_started_with_oracle_database)\n\nPacks:\nChange Management Pack\nData Masking Pack\nDiagnostic Pack\nTuning Pack\nWebLogic Server Management Pack Enterprise Edition\nConfiguration Management Pack for Oracle Database\nProvisioning and Patch Automation Pack for Database\nProvisioning and Patch Automation Pack\n\nInput arguments:\ndb_si - related Oracle Database SI\noptions_and_packs - table with installed_options\n\nReturns:\ninstalled_options - which is a table of option or pack names with related paramenters:\noptions_and_packs[option or pack name] := [is_enabled, version, is_used, features, last_sample_date, first_usage_date, last_usage_date];\n\nTODO: options/pack that cannot be identified by current SQL query:\n\nOracle 12: https://support.oracle.com/CSP/main/article?cmd=show&type=NOT&id=1317265.1\nOption\nTimesTen Application-Tier Database Cache - is modelled as 'Oracle TimesTen In-Memory Database Server' SI\nPacks\nOracle Cloud Management Pack for Oracle Database\nOracle Database Lifecycle Management Pack for Oracle Database\n\nDOCS:\nTracking Database Feature Usage (DBA_FEATURE_USAGE_STATISTICS):\nhttps://oracle-base.com/articles/misc/tracking-database-feature-usage#feature-availability-by-edition\nOracle 12c1: 'Feature -> Option' mapping\nhttps://support.oracle.com/CSP/main/article?cmd=show&type=NOT&id=1317265.1\n\nChange History:\n2016-02-12 - Add oracle credential support for known virtual IP with no port for TKU_2016_02_01.\n2016-03-25 - Updated Oracle DB queries (DRDC1-4759)\n2016-10-18 - Added query for Oracle Packs/Options extraction for Oracle 11.1 and below, which is\nbased on old query but LISTAGG() sql function is replaced with COUNT() function (093790)\n2017-06-01 - Added query based on options_packs_usage_statistics.sql (MOS Note 1317265.1)(DRDC1-8489)\n2018-04-25 - Updated query based on options_packs_usage_statistics.sql (DRDC1-10709)\n2018-06-14 - Updated endpoint verification for clustered databases (DRDC1-11428)\n2018-10-01 - Updated setting used status (DRDC1-11983)\n2018-11-19 - success_login_cred changed to success_login_credential (DRDC1-12155)\n2019-07-16 - related_host search updated (DRDC1-13459)\n2019-08-16 - related_host search updated (DRDC1-13757)\n2021-07-08 - usage processing updated (DRDC1-17088)\nfeatures modelling updated (DRDC1-17089)\n2021-08-23 - instance assignment for SQL queries updated (DRDC1-17327)\n2021-09-17 - description updated (DRDC1-17451)\n2022-01-19 - usage reporting updated (DRDC1-18037)\n2023-09-28 - just return all rows for query which shows information for each individual feature (DRDC1-21833)\n2025-02-13 - Added check for local database credentials (DRDC1-25402)\n2026-07-13 - Updated check for database version (DRDC1-30234)` + }, + "get_options_from_comps_xml_file": { + snippets: ["${1:host}, ${2:ora_home}, ${3:options_and_packs}"], + description: `Function extracts Oracle Options from %ora_home%/inventory/ContentsXML/comps.xml file\n\nSupported options:\n- Oracle OLAP\n- Oracle Partitioning\n\nChange History:\n2016-01-14 - Use PRIV_CAT to parse comps.xml if unprivileged access fails (QM001893276)\n2016-02-01 - fixed grep command for AIX OS (DRUD1-16700)\n2017-06-01 - added empty values for entries in options_and_packs (DRDC1-8489)\nupdated logic for options extraction from comps.xml file\n2018-04-25 - updated to be consistent with run_option_usage_sql_query (DRDC1-10709)\n2019-02-05 - escaped path for discovery.runCommand` + } + }, + "Oracle.OracleReports": { + }, + "Oracle.OracleVM": { + "readOVSAgentDBFile": { + snippets: ["${1:host}"], + description: `A function to read ovs-agent db files:\n\n/etc/ovs-agent/db/server\n/etc/ovs-agent/db/master.db (may be obsolete)` + }, + "getDomainHostName": { + snippets: ["${1:host}, ${2:domain_uuid_str}, ${3:repository_id}, ${4:repository_ids}"], + description: `Read vm.cfg file, path:\n/OVS/Repositories//VirtualMachines//vm.cfg\n/OVS/Repositories//vm.cfg\n/OVS/Repositories//VirtualMachines//vm.cfg\n\nhttps://www.itfromallangles.com/2013/01/oracle-vm-3-orphaned-vms/:\n/OVS/Repositories/ [UUID of REPO] /VirtualMachines/ [UUID of VM] /vm.cfg\n\nChange History:\n2019-04-05 - Updated to use DiscoveryFunctions.escapePath() function` + } + }, + "Oracle.OracleVMConsolidation": { + }, + "Oracle.OTMQ": { + }, + "Oracle.PeopleSoft.PIA": { + "pathVersioning": { + snippets: ["${1:path}"], + description: `Takes the path, returns the version derived from the path\n\nChange History:\n2025-01-28 - Added new regex to pathVersioning (DRDC1-25527)` + }, + "relateDBs": { + snippets: ["${1:host}, ${2:appsrv_pr_args}, ${3:domain_path}"], + description: `Links the Application Server SI to the relevant Oracle Database Server\n\n2013-11-06 - Disregard case of instance when linking to Oracle Database\n2016-11-17 - Updated function names according to the RDBMS_Functions changes (DRDC1-5767)\n2019-02-28 - Use modern Future.runCommand` + } + }, + "Oracle.Rdb": { + }, + "Oracle.RealApplicationClusters": { + }, + "Oracle.RealApplicationTesting": { + }, + "Oracle.RetailDataModel": { + }, + "Oracle.SALT": { + "get_comps": { + snippets: ["${1:host}, ${2:ora_dir}"], + description: `get_comps performs file versioning.` + }, + "get_context": { + snippets: ["${1:host}, ${2:ora_dir}"], + description: `get_context performs file versioning.\n\nChange History:\n2019-02-05 - escaped path for discovery.runCommand` + } + }, + "Oracle.SecureEnterpriseSearch": { + }, + "Oracle.SecureGlobalDesktop": { + }, + "Oracle.ServiceOrientedArchitecture": { + }, + "Oracle.ServiceRegistry": { + }, + "Oracle.SiebelCRM": { + "fileVersioning": { + snippets: ["${1:host}, ${2:path}"], + description: `Keine Beschreibung verfügbar.` + }, + "activeVersioning": { + snippets: ["${1:host}, ${2:install_root}"], + description: `Function obtains version information\n` + } + }, + "Oracle.SolarisZoneCluster": { + "linkMembers": { + snippets: ["${1:zone_container}"], + description: `Find and link members\n\nChange History:\n2021-01-15 - log level updated (DRDC1-16359)` + } + }, + "Oracle.SQLConnectorHDFS": { + }, + "Oracle.SQLDeveloperDataModeler": { + }, + "Oracle_TapeLibrary": { + }, + "Oracle.TimesTen": { + }, + "Oracle.TMA": { + }, + "Oracle.TrafficDirector": { + }, + "Oracle.TransparentGateways": { + }, + "Oracle.TSAM_Plus": { + }, + "Oracle.UCM.ContentServer": { + }, + "Oracle.UCM.DocumentManagement": { + }, + "Oracle.UnifiedDirectory": { + }, + "Oracle.UtilitiesDataModel": { + }, + "Oracle.Vantive": { + }, + "Oracle.WebCenterPortal": { + "attributes_extraction": { + snippets: ["${1:full_version}, ${2:type}"], + description: `Current function extracts product_version, name and short_name attributes\n\nChange History:\n2019-12-11 - Updated product_version assignment (DRDC1-14358)\n2026-04-10 - Updated escape sequence (DRDC1-29309)` + }, + "pattern_body": { + snippets: ["${1:app_sc}, ${2:si_type}"], + description: `Main body block, common for all the patterns in the module\n\nChange History:\n2017-09-19 - Updated primary SI's search in case it is running on cluster(DRDC1-8358)\n2019-12-11 - loging updated (DRDC1-14358)\n2023-11-16 - Replaced 'stop' with 'return' (DRDC1-22238)` + } + }, + "Oracle.WebCenterSites": { + }, + "Oracle.Workflow": { + }, + "Oracle_ZFS": { + "addFileSystem": { + snippets: ["${1:share_entry}, ${2:storage_system}, ${3:zfsgroup}"], + description: `Find or create a FileSystem node from the info in share_entry and link\nit to the StorageSystem node.\n\nChange History:\n\n2020-09-18 - Fixed DRDC1-15810 : Add free_percentage, used_percentage attributes to FileSystem node\n` + } + }, + "Oracle_ZFS_Storage_REST": { + "getDevicebyInterface": { + snippets: ["${1:discovery_access}"], + description: `Get device by name` + }, + "getPoolDetails": { + snippets: ["${1:discovery_access}, ${2:pool_lookup}"], + description: `Return details for each Pool` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:parent}, ${3:rg_group}"], + description: `Perform a storage scan on the given storage device\n\nChange History:\n2024-04-16 - Added hidden attribute __capability_ids for TKU_2024_07_01\n(DRDC1-23319)\n2024-07-12 - Added the attribute dns_domain\nto storage system / storage device (DRDC1-24057)\n2025-02-25 - Corrected serial number in storage system (DRDC1-25781)` + } + }, + "OrientTechnologiesLtd.OrientDB": { + }, + "OS.MacOSX.SimpleIdentifiers": { + }, + "OS.NetWare.SimpleIdentifiers": { + }, + "OS.OS400.SimpleIdentifiers": { + }, + "OS.UNIX_Linux.SimpleIdentifiers": { + }, + "OS.Windows.SimpleIdentifiers": { + }, + "OxfordSemanticTechnologies.RDFox": { + }, + "PaloAlto.CortexXDR": { + }, + "PaloAlto.CortexXdrAgent": { + }, + "Palo_Alto_Panorama": { + }, + "Palo_Alto_VSYS": { + }, + "Panasas_Storage": { + "updateFileSystems": { + snippets: ["${1:discovery_access}, ${2:storage_system_group_node}, ${3:pool_nodes}"], + description: `Update the volumes of the Panasas Cluster\n\nReturns true if the update succeeds, false otherwise.\n` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:device}"], + description: `Perform a storage scan on the given storage device\n\nChange History:\n2024-04-16 Added hidden attribute __capability_ids for TKU_2024_07_01\n(DRDC1-23319)\n2024-07-12 Added the attribute dns_domain\nto storage system / storage device (DRDC1-24057)\n` + } + }, + "Paradigm4.SciDB": { + }, + "Parallels.VirtuozzoContainers": { + }, + "Patroni.Patroni": { + "findHostsInYml": { + snippets: ["${1:host}, ${2:yml_file}, ${3:heading}"], + description: `Find remote SIs from .yml file\n\nWe expect .yml to be passed in the form\nattribute : value\nzookeeper:\nhosts:\n- host1:1234\n- host2\nattribute2: value2\n\nOr\netcd3:\nattribute: value\nhost: host1:5680\nattribute2: value2\n\nTakes: host name\nyml file content (string)\nheading of yml file where we should look\n\nReturns - List of hosts hosting remote SIs (list of strings)\n\nChange History:\n2026-01-13 - Updated to remove quotes from addresses (DRDC1-28528)` + } + }, + "PegasusCIMServer": { + "createDellCompellentCIMServerSI": { + snippets: ["${1:host}, ${2:type}"], + description: `Creates a SoftwareInstance of type 'Dell Compellent Enterprise Manager CimServer'\nor type 'Dell Storage Manager CimServer'\n\nChange history:\n2020-02-19 - Replaced full_version attribute with version (DRDC1-14544)` + }, + "createIBMDSCIMServerSI": { + snippets: ["${1:host}, ${2:type}, ${3:process}"], + description: `Creates a SoftwareInstance of type 'IBM CIM Agent for the DS Open API'\n\nChange History:\n2020-02-19 - Replaced full_version attribute with version (DRDC1-14544)` + }, + "getCIMServerVersion": { + snippets: ["${1:host}, ${2:process}"], + description: `Uses active command versioning method to get the Pegasus CIM Server version number\n\nChange History:\n2019-02-22 - Updated to use Future.runCommand and escapePath function` + } + }, + "Pentaho.BI_Suite": { + }, + "Pepperdata.Pepperdata": { + }, + "Percona.Percona_RDBMS": { + }, + "Perforce.Helix": { + }, + "Pexip.Infinity": { + "decodeJsonFile": { + snippets: ["${1:host}, ${2:file_fullpath}"], + description: `returns decoded json from configuration file` + }, + "file_versioning": { + snippets: ["${1:host}, ${2:version_file_fullpath}"], + description: `extracts full version and build from json file` + } + }, + "PHP_FPM": { + }, + "Phusion.Passenger": { + "getPassengerVersion": { + snippets: ["${1:host}"], + description: `Function to get current version information\n\nChange History:\n2022-02-06 - updated regex for full_version (DRDC1-19150)\n2022-08-19 - updated regex for full_version and packageVersioning (DRDC1-19668)` + }, + "lookupPassengerLogFile": { + snippets: ["${1:host}"], + description: `Find app launched on Passenger and take its name from log directory` + }, + "lookupApacheConfigFile": { + snippets: ["${1:host}"], + description: `Find apache config files connected with Passenger\nand take names of Passenger apps` + }, + "lookupNginxConfigFile": { + snippets: ["${1:host}"], + description: `Find nginx config files connected with Passenger\nand take names of Passenger apps` + } + }, + "Pivotal.GemFire": { + "get_install_root": { + snippets: ["${1:host}, ${2:process_args}"], + description: `Finds install_root from classpath` + }, + "get_version": { + snippets: ["${1:host}, ${2:process}, ${3:gemfire_install_root}"], + description: `get_version performs command, file and path versioning.\n\nChange History:\n\n2019-02-01 - Updated to use new runCommand functions.\n2022-07-26 - Added new method for command versioning using JAVA_HOME (DRDC1-18838)\n2023-12-28 - Added file versioning approach (DRDC1-22244)\n2025-03-07 - Switched Future.runCommand() for DiscoveryFunctions.runFutureActiveCommand() (DRDC1-25942)\n2026-02-19 - Updated packageVersioning (DRDC1-28541)` + } + }, + "Pivotal.GemFireXD": { + "get_version": { + snippets: ["${1:host}, ${2:process}"], + description: `get_version performs command and path versioning.\n\nChange History:\n2019-03-01 - Updated to use Future.runCommand function` + }, + "get_bind_address_and_ports": { + snippets: ["${1:host}, ${2:process}, ${3:install_root}"], + description: `get_bind_address_and_ports searches for bind address and port` + } + }, + "Pivotal.Greenplum": { + }, + "Pivotal.RabbitMQ": { + }, + "Podman": { + }, + "Polycom.RPPlatformDirector": { + }, + "Polycom.SoundStation": { + }, + "PostgreSQL_Extended": { + "getAdminUsers": { + snippets: ["${1:base_si}, ${2:conf_dir}"], + description: `Get admin users.\n\nIf adminuser is specified in base_si return that adminuser (single entry list)\n\nIf adminuser can be found in pg_hba.conf returns a list of possible adminusers\n\nIf adminuser is specified in the configuration return that (single entry list)\n\nOtherwise return empty list\n\nChange History\n2025-03-18 - Return multiple possible adminusers (DRDC1-25544)\n2025-07-24 - Better handling of default adminuser (DRDC1-26843)` + }, + "runPGCommand": { + snippets: ["${1:host}, ${2:base_si}, ${3:adminuser}, ${4:port}"], + description: `Assemble and run pg_dumpall command\n\nChange History:\n2026-03-18 - Bug fix regarding how we report port (DRDC1-28983)` + }, + "getPGDumpall": { + snippets: ["${1:base_si}, ${2:adminuser}"], + description: `Returns the output of pg_dumpall\n\nChange History:\n2016-08-31 - Added port support in pg_dumpall (DRDC1-6283)\n2018-06-19 - Changed data_dir to conf_dir (DRDC1-11434)\n2019-02-26 - Updated to use Future.runCommand() function\n2024-03-20 - Use runFutureActiveCommand (DRDC1-22466)\n2025-01-07 - Updated to use custom ports (DRDC1-21648)\n2025-04-03 - Move adminuser code to a separate function (DRDC1-25407)\n- Add -w option to pg_dumpall command so it never prompts\nfor a password (DRDC1-25407)\n2025-04-29 - Run command with multiple possible adminusers (DRDC1-25544)` + }, + "parsePGDumpall": { + snippets: ["${1:cmd_output}"], + description: `Keine Beschreibung verfügbar.` + }, + "getPGPSQL": { + snippets: ["${1:base_si}, ${2:adminusers}"], + description: `Returns the output of the psql command\n\n2019-02-26 - Updated to use Future.runCommand() function\n2021-04-28 - Updated to use -w flag for psql, to avoid discovery\ntimeout on a password prompt (DRUD1-32537)\n2021-12-13 - "Permission denied" check added in cmd output (DRDC1-17915)\n2025-04-03 - Try psql with privileged execution if non privileged\nexecution fails (DRDC1-25407)\n2025-03-18 - Run command with multiple possible adminusers (DRDC1-25544)\n2025-07-24 - Improve expected content regex for psql call (DRDC1-27029)\n2026-03-17 - Add extra argument to psql call (DRDC1-28826)` + }, + "parsePGPSQL": { + snippets: ["${1:input}"], + description: `Parse output of psql command to get database names\nSample output:\nmydb | my_postgres_8243_owner | SQL_ASCII | C | C |\n""Shall ! compare thee"" said Shakespeare | my_postgres_8243_owner | SQL_ASCII | C | C |"\n"DB with spaces" | postgres | UTF8 | libc | en_US.UTF-8 | en_US.UTF-8 | | |\n\nChange History:\n2026-08-07 - Tighten rules on which output lines to check for database\ninformation (DRDC1-29999)` + }, + "queryDatabases": { + snippets: ["${1:si}"], + description: `Returns a list of databases using a SQL query to the DB instance\nReturns none if the query fails\n\nChange History:\n2022-04-06 - Use Discovery.extendedSQLQuery function (DRDC1-18312)\n2022-12-14 - Updated request in case when we discover the instance or edb_instance from main SI (DRDC1-20421)` + }, + "createDatabases": { + snippets: ["${1:si}, ${2:db_names}, ${3:attributes}, ${4:instance}"], + description: `Create nodes for the given database names\n\nTakes:\nsi - PostgreSQL SoftwareInstance,\ndb_names - List of database names,\nattributes - Optional table of extra attributes to set on the nodes.\ninstance - Optional attribute for setting 'cdm_component_alias_suffix' (DRDC1-16691)\n\nReturns:\nA list of created Database nodes\n\nChange History:\n2021-07-27 - Added 'instance' attribute (DRDC1-16691)\n2022-08-05 - Return list of created database nodes (DRDC1-19032)` + }, + "querySchemas": { + snippets: ["${1:si}, ${2:db_name}"], + description: `Returns a list of schemas for the given database using a SQL query\nto the DB instance\nReturns none if the query fails\n\nChange History:\n2022-04-06 - Use extendedSQLQuery (DRDC1-18312)` + }, + "createSchemas": { + snippets: ["${1:si}, ${2:db}, ${3:schemas}, ${4:attributes}"], + description: `Create nodes for the given schemas\n\nsi - PostgreSQL SoftwareInstance,\ndb - Database node,\nschmes - List of schema names,\nattributes - Optional table of extra attributes to set on the nodes.\n\nChange History:\n2020-08-17 - Updated type attribute (DRDC1-14748)` + }, + "queryTables": { + snippets: ["${1:si}, ${2:db_name}, ${3:schema_name}"], + description: `Returns a list of tables for the given database and schema using a SQL query\nto the DB instance\nReturns none if the query fails\n\nChange History:\n2022-04-06 - Use extendedSQLQuery (DRDC1-18312)` + }, + "createTables": { + snippets: ["${1:si}, ${2:db}, ${3:schema}, ${4:table_names}, ${5:attributes}"], + description: `Create nodes for the given tables\n\nsi - PostgreSQL SoftwareInstance,\ndb - Database node,\ntable_names - List of table names,\nattributes - Optional table of extra attributes to set on the nodes.\n\nChange History:\n2020-08-17 - Updated type attribute (DRDC1-14748)` + } + }, + "PostgreSQL.PostgreSQL": { + "getDataRobotActiveCommand": { + snippets: ["${1:host}, ${2:pg_data_path}"], + description: `If we have a datarobot installation we can find WORKON_HOME from the\ndatarobot profile file. Add %workon_home% --version to the list of\nactive version commands to try\n\nTakes : pg_data_path\nReturns : Extra command to try for active versioning if applicable,\notherwise nothing` + }, + "activeVersioning": { + snippets: ["${1:host}, ${2:pg_bin_path}, ${3:pg_data_path}, ${4:process_cmd}"], + description: `Active versioning - command execution` + }, + "getAttrsFromArgs": { + snippets: ["${1:process}"], + description: `Keine Beschreibung verfügbar.` + }, + "fileVersioning": { + snippets: ["${1:host}, ${2:pg_data_path}"], + description: `Obtains version from PG_VERSION file\n\nIf multiple levels are obtained we return output in the full_version\nattribute. If only one level is obtained we return output in the\nsuboptimal_version attribute. We will only use suboptimal_version if\nalternatives are not available` + }, + "getState": { + snippets: ["${1:si_node}"], + description: `Ascertain if instance refered to in si_node is a production or a standby\ndatabase\n\n2023-10-18 - Correct database query (DRDC1-21415)\n2024-01-15 - Updated to use DiscoveryFunctions for command run (DRDC1-21415)` + }, + "getKey": { + snippets: ["${1:host}, ${2:process}, ${3:si_type}, ${4:pg_data_path_key}, ${5:port}"], + description: `Create key for SI\n\nIf we already have an SI with a plausible key use that. Then we will\nconfirm an existing SI, not add a new one\n\nIf we don't have an existing SI, create a new key based on a distinguishing\nfeature (data_path if we have it, port if we don't), type and host key\n\nTakes : host, process, si_type, pg_data_path_key, port\nReturns : key - The key to use either in a instance based on grouped SI\nkey_group - The key_group to be used, "" if no key_group should be set` + } + }, + "PowerMax_Storage_Rest": { + "getAPIVersion": { + snippets: ["${1:discovery_access}, ${2:auth_type}, ${3:port}"], + description: `Get API version\nThe version is needed for further request\nThe url for the request is build with the version in it\nFor example if the version 9.2.0,\nThe url to get information on the storage system will be\nhttps://{IP}:{PORT}/univmax/restapi/92/system\nIf the version is 8.3, the url will be\nhttps://{IP}:{PORT}/univmax/restapi/83/system\n\nChange History:\n2023-01-18 - Updated (?i) flag placement in regular expression (DRDC1-20566)\n2026-02-27 - Now request univmax/restapi/version to get the api version\nfor TKU_2026_05_01 (DRDC1-28942)` + }, + "buildLookupList": { + snippets: ["${1:json_nodes}, ${2:key_attr}, ${3:attributes}"], + description: `Build a lookup table keyed by key_attr` + }, + "getPoolCapacityMetrics": { + snippets: ["${1:pool_capacity}"], + description: `Keine Beschreibung verfügbar.` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:parent}, ${3:version}, ${4:auth_type}, ${5:port}"], + description: `Main function that creates Storage System nodes\n\nCall all the other function to create and update the other component\nfor PowerMax\n\nChange History:\n2022-09-27 Update the variable "storage_device" to be "parent"\nas it can be either a storage device or a software instance\nfor TKU_2022_11_01 (DRDC1-19901)\n2022-12-30 Update the Storage System name with the ID attribute\nif the "display-name" return by the REST API is void\nfor TKU_2023_02_01 (DRDC1-20492)\n2023-09-27 Update the code to account for different body responses\nfor the capacity metrics for TKU_2023_10_01 (DRDC1-21763)\n2023-12-04 Update to take into account the locality of each\nPowerMax system (remote or local) with the configuration\nto disable or not the discovery of such systems\nfor TKU_2024_01_01 (DRDC1-22262)\n2024-01-03 Add the attribute total_logical_consumed_capacity\nfor TKU_2024_03_01 (DRDC1-22592)\n2024-04-03 Add the attribute dns_domain\nto storage system / storage device (DRDC1-23285)\n2024-04-15 Added hidden attribute __capability_ids for TKU_2024_07_01\n(DRDC1-23319)\n2025-01-13 Use the powerAPI to get the volumes when\nthe Unisphere version is 10.1 or higher\nfor TKU_2025_03_01 (DRDC1-24206)\n2025-03-07 Remove "allocated_capacity" attribute as it is now deprecated\nfor TKU_2025_04_01\n2025-08-29 Add firmware, sw_version to storage system node\nfor TKU_2025_10_01 (DRDC1-27296)\n2026-04-29 Updated to take into account the new configuration option\ndisable_rest_request_masking_view to create or not the\nstorage connections for TKU_2026_07_01 (DRDC1-29452)\n2026-07-21 Add cache_size to storage system node\nfor TKU_2026_09_01 (DRDC1-30190)` + } + }, + "Precisely.Connect": { + "getInstallRoot": { + snippets: ["${1:process}"], + description: `Obtain installation root from trigger process` + }, + "activeVersioning": { + snippets: ["${1:host}, ${2:install_root}"], + description: `activeVersioning performs active versioning` + } + }, + "PrismTech.Xtradyne.JacORB": { + }, + "ProcessorInfo.AIX": { + "lsdev_parser": { + snippets: ["${1:proc_info}, ${2:lsdev_result}"], + description: `Parse output of lsdev -Cc processor command.\n\nproc0 Available 00-00 Processor\nproc4 Available 00-04 Processor\nproc8 Available 00-08 Processor\nproc12 Available 00-12 Processor\nproc16 Available 00-16 Processor\nproc20 Available 00-20 Processor\nproc24 Available 00-24 Processor\nproc28 Available 00-28 Processor ---> 8 cores\n\nReturn ` + }, + "lsattr_parser": { + snippets: ["${1:proc_info}, ${2:lsattr_result}"], + description: `Parses output of lsdev -Cc processor command.\n\n// frequency 3108000000 Processor Speed False\n// smt_enabled true Processor SMT enabled False\n// smt_threads 4 Processor SMT threads False -> 4 threads per core\n// state enable Processor state False\n// type PowerPC_POWER7 Processor type False\n\nReturns , , ` + }, + "lscfg_parser": { + snippets: ["${1:proc_info}, ${2:lscfg_result}"], + description: `Parses output of lscfg command.\n\nproc0 Processor -> 8 cores\nproc4 Processor\nproc8 Processor\nproc12 Processor\nproc16 Processor\nproc20 Processor\nproc24 Processor\nproc28 Processor\n\nReturns ` + }, + "smtctl_parser": { + snippets: ["${1:proc_info}, ${2:smtctl_result}"], + description: `Parses output of smtctl command.\n\nThis system is SMT capable.\nThis system supports up to 4 SMT threads per processor\nSMT is currently enabled.\nSMT boot mode is not set.\nSMT threads are bound to the same virtual processor.\n\nproc0 has 4 SMT threads.\nBind processor 0 is bound with proc0\nBind processor 1 is bound with proc0\nBind processor 2 is bound with proc0\nBind processor 3 is bound with proc0\n...\nproc28 has 4 SMT threads.\nBind processor 4 is bound with proc4\nBind processor 5 is bound with proc4\nBind processor 6 is bound with proc4\nBind processor 7 is bound with proc4\n\nor\nThis system is SMT capable.\nThis system supports up to 2 SMT threads per processor.\nSMT is currently enabled.\nSMT boot mode is not set.\nSMT threads are bound to the same virtual processor.\n\nor\nThis system is SMT capable.\nSMT is currently enabled.\nSMT boot mode is not set.\nSMT threads are bound to the same virtual processor.\n\nproc0 has 2 SMT threads.\nBind processor 0 is bound with proc0\nBind processor 1 is bound with proc0\n\nor\nsmtctl: SMT is not supported on this system\n\nReturns , , \n\nChange History:\n2019-03-19 - Fixed num_cores attribute in case of failed smtctl output\n` + }, + "bindprocessor_parser": { + snippets: ["${1:proc_info}, ${2:bindprocessor_result}"], + description: `Keine Beschreibung verfügbar.` + }, + "prtconf_parser": { + snippets: ["${1:proc_info}, ${2:prtconf_result}"], + description: `Parses output of prtconf command.\n\nSystem Model: IBM,9117-MMB OR System Model: IBM,7895-22X\nMachine Serial Number: 0XXXXXP Machine Serial Number: Not Available\nProcessor Type: PowerPC_POWER7 Processor Type: Not Available\nProcessor Implementation Mode: POWER 7 Processor Implementation Mode: POWER 7\nProcessor Version: PV_7_Compat\nNumber Of Processors: 8\nProcessor Clock Speed: 3108 MHz\nLPAR Info: 12 es001aia\nPlatform Firmware level: AM730_049\nFirmware Version: IBM,AM730_049\n\n+ proc0 Processor\n+ proc4 Processor\n+ proc8 Processor\n+ proc12 Processor\n+ proc16 Processor\n+ proc20 Processor\n+ proc24 Processor\n+ proc28 Processor\n\nReturn , , ` + }, + "lparstat_parser": { + snippets: ["${1:proc_info}, ${2:lparstat_result}, ${3:cpu_resource_type}"], + description: `Parses output of lparstat command.\n\nNode Name : HOSTNAME\nPartition Name : HOSTNAME\nPartition Number : 40\nType : Shared-SMT-4 Indication whether the LPAR is using dedicated or shared CPU resource. Possible values are:\n• Dedicated: Processors are dedicated to the partition and simultaneous multi-threading mode is off.\n• Dedicated-SMT: Processors are dedicated to the partition and simultaneous multi-threading mode is on.\n• Shared: Partition is configured for Micro-Partitioning and simultaneous multi-threading mode is off.\n• Shared-SMT: Partition is configured for Micro-Partitioning and simultaneous multi-threading mode is on.\nMode : Uncapped The partition mode can be:\n• Capped: Partition is not allowed to consume idle cycles from the shared pool. Dedicated LPAR is implicitly capped.\n• Uncapped: Partition can use idle cycles from the shared pool if needed.\n• Donating: Dedicated Partition donates its idle cycles to the Shared Processor Pool.\nPartition Group-ID : 32808\nShared Pool ID : 0\n\nOnline Virtual CPUs : 1 (Number of CPUs (virtual engines) currently online, and the maximum and minimum limits.)\nDesired Virtual CPUs : 1\nMaximum Virtual CPUs : 4\nMinimum Virtual CPUs : 1\n\nActive Physical CPUs in system : 44 (The current number of active physical CPUs in the system containing this LPAR.)\nMaximum Physical CPUs in system : 64 (The maximum possible number of physical CPUs in the system containing this LPAR)\nShared Physical CPUs in system : 44 (The number of physical CPUs available for use by shared processor LPARs)\nPhysical CPU Percentage : 50.00%\n\nActive CPUs in Pool : 44 (The current number of physical CPUs in the Shared Processor Pool being used by this LPAR (that is,online physical processors in pool).)\nMaximum Capacity of Pool : 4400\nEntitled Capacity of Pool : 4187\n\nEntitled Capacity : 0.50 (Number of processing units this LPAR is entitled to receive.)\nDesired Capacity : 0.50\nMinimum Capacity : 0.25 (the range of the number of processing units this LPAR can have. Entitled capacity can be reduced down to the minimum value or increased up to the maximum value.)\nMaximum Capacity : 2.00\nUnallocated Capacity : 0.00\nCapacity Increment : 0.01\n\nVariable Capacity Weight : 200 (The priority weight assigned to this LPAR, which controls how extra (idle) capacity is allocated to it.)\nDesired Variable Capacity Weight: 200\n\nReturn for HostContainers,\n, - for Host partition\n\nChange History:\n2020-07-06 - Updated to extract num_sockets (DRDC1-15346)\n2022-01-17 - Updated not to extract num_sockets (DRDC1-17558)\n2022-08-31 - Updated to extract entitled_capacity (DRDC1-19744)\n2024-01-08 - Updated to rewrite threads_per_core as lparstat provides correct value (DRDC1-25252)` + }, + "lscfgvp_parser": { + snippets: ["${1:proc_info}, ${2:cores_per_socket_result}"], + description: `Parse output of lscfg -vp processor command.\nExamples:\n\n10B-WAY CUOD CPU:\n8 WAY PROC CUOD:\n8 WAY PROC CUOD:\n\nEach line shows the number of cores per socket,\nThe quantity of such lines shows amount of sockets.\n\nReturn , ` + } + }, + "ProcessorInfo.AIXLPAR": { + }, + "ProcessorInfo.BSD": { + "sysctl_parser": { + snippets: ["${1:proc_info}, ${2:sysctl_result}"], + description: `Parse output of 'sysctl' command.\n\nhw.machine: amd64\nhw.model: Intel(R) Core(TM) i5 CPU 650 @ 3.20GHz\nhw.ncpu: 4\nhw.machine_arch: amd64\n\nhw.clockrate: 2393\nhw.cpuspeed=2394\n\nReturns: , , ` + }, + "dmesg_parser": { + snippets: ["${1:proc_info}, ${2:dmesg_boot_result}"], + description: `Parse output of 'dmesg' and 'cat /var/run/dmesg.boot'.\n\nhttps://forums.freebsd.org/threads/number-of-cpus-and-cores.41299/\nFreeBSD/SMP: Multiprocessor System Detected: 24 CPUs\nFreeBSD/SMP: 2 package(s) x 6 core(s) x 2 SMT threads\nFreeBSD/SMP: 1 package(s) x 4 core(s)\n\nOn FreeBSD:\nCPU: Intel(R) Core(TM) i5 CPU 650 @ 3.20GHz (3199.98-MHz K8-class CPU)\nLogical CPUs per core: 2\nFreeBSD/SMP: Multiprocessor System Detected: 4 CPUs\ncpu0 (BSP): APIC ID: 0\ncpu1 (AP/HT): APIC ID: 1\ncpu2 (AP): APIC ID: 4\ncpu3 (AP/HT): APIC ID: 5\ncpu0: on acpi0\ncoretemp0: on cpu0\nest0: on cpu0\np4tcc0: on cpu0\ncpu1: on acpi0\ncoretemp1: on cpu1\nest1: on cpu1\np4tcc1: on cpu\n\nor\n\nTimecounter "i8254" frequency 1193182 Hz quality 0\nCPU: Intel(R) Xeon(R) CPU E5620 @ 2.40GHz (2393.53-MHz 686-class CPU)\nOrigin = "GenuineIntel" Id = 0x206c2 Stepping = 2\nFeatures=0xfebfbff\nFeatures2=0x82982203,SSSE3,CX16,,,,,>\nAMD Features=0x28100000\nAMD Features2=0x1\n\non OpenBSD:\n\ncpu0 at mainbus0: apid 0 (boot processor)\ncpu0: Intel(R) Xeon(R) CPU E5620 @ 2.40GHz, 2393.78 MHz\ncpu0: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,SSE3,PCLMUL,SSSE3,CX16,SSE4.1,SSE4.2,POPCNT,AES,NXE,LONG\ncpu0: 256KB 64b/line 8-way L2 cache\ncpu0: apic clock running at 65MHz\ncpu1 at mainbus0: apid 1 (application processor)\ncpu1: Intel(R) Xeon(R) CPU E5620 @ 2.40GHz, 2416.60 MHz\ncpu1: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,SSE3,PCLMUL,SSSE3,CX16,SSE4.1,SSE4.2,POPCNT,AES,NXE,LONG\ncpu1: 256KB 64b/line 8-way L2 cache\n\nAnother examples:\nAMD\nCPU: AMD Athlon(tm) II Neo N36L Dual-Core Processor (1297.87-MHz K8-class CPU)\nFreeBSD/SMP: Multiprocessor System Detected: 2 CPUs\ncpu0 (BSP): APIC ID: 0\ncpu1 (AP): APIC ID: 1\ncpu0: on acpi0\ncpu1: on acpi0\n\nIntel Itanium\nCPU: Madison (1500 MHz Itanium 2)\nOrigin = "GenuineIntel" Revision = 5\nFreeBSD/SMP: Multiprocessor System Detected: 2 CPUs\ncpu0: ACPI Id=0, SAPIC Id=0, SAPIC Eid=0 (BSP)\ncpu1: ACPI Id=1, SAPIC Id=1, SAPIC Eid=0\ncpu0: on acpi0\ncpu1: on acpi0\n\nCPU: Madison II (1600 MHz Itanium 2)\nOrigin = "GenuineIntel" Revision = 2\nFreeBSD/SMP: Multiprocessor System Detected: 2 CPUs\n\nCPU: Montecito (1594.66-Mhz Itanium 2)\nOrigin = "GenuineIntel" Revision = 7\nFreeBSD/SMP: Multiprocessor System Detected: 2 CPUs\n\nReturns: , , ,\n, \n\nChange History:\n2024-03-25 - Updated parser for command output (DRDC1-22398)\n2024-04-23 - Updated parser for command output (DRDC1-23384)` + } + }, + "ProcessorInfo.CPUModels": { + "division": { + snippets: ["${1:a}, ${2:b}"], + description: `Function perform validation for integer division\n\nresult = a / b, validation: a = b * result\n\nThreads/Cores/Sockets must be aliquot integers!` + }, + "get_itanium_number_or_family_model_ids": { + snippets: ["${1:cpu_type}"], + description: `Returns Itanium model_number or family_id and model_id\nIntel Itanium 2\nDual-Core Intel(R) Itanium(R) Processor 9140M\nIntel(R) Itanium(R) Processor 9310\nIntel(R) Itanium 2 9000 series\nIntel(R) Itanium 2 9100 series processor (1.59 GHz, 9 MB)` + }, + "proc_info_itanium_extended_init": { + snippets: [""], + description: `Initialize proc_info_itanium_extended table` + }, + "itanium_details_to_model_mapping": { + snippets: ["${1:proc_info_itanium_extended}"], + description: `Map proc_info_itanium_extended table to particular known Itanium cpu_type` + }, + "_get_multicore_INTEL_info": { + snippets: ["${1:cpu_type}"], + description: `Get information from CPU TYPE\n\nChange History:\n2024-04-02 - Added regex for Xeon Scalable Processors (DRDC1-23187)\n2026-03-11 - Added regex for model_number extraction,\nwhich now handles string without 'CPU' part (DRDC1-26295)` + }, + "_get_multicore_AMD_info": { + snippets: ["${1:cpu_type}"], + description: `List of all AMD processors:\nhttp://en.wikipedia.org/wiki/List_of_AMD_microprocessors\n\nA lot of examples of /proc/cpuinfo:\nhttp://openbenchmarking.org/s/AMD%20FX-8150%20Eight-Core\nmodel name : AMD Phenom(tm) II X3 710 Processor\nmodel name : AMD FX(tm)-8150 Eight-Core Processor\n\n!!! ATTENTION !!!\n* CMT (Clustered Multi-Thread) "BULLDOZER Core" - this "module" is midway between a true dual-core processor and a single core processor that has the SMT ability\nhttp://en.wikipedia.org/wiki/Bulldozer_%28microarchitecture%29#BULLDOZER_Core_.28aka_Module.29\n\nPattern gets based on:\n\n- words in : "Dual", "X2", "X3", "Quad", "X4", "Four-Core", "Six-Core", "X6", "Eight-Core", "Twelve-Core", "Sixteen-Core"\n* !!! ATTENTION !!! some desktop/mobile multi-core processors could be still unidentified by this method\n\n- for SERVER processors - "Opteron"\n* Pattern contains all multi-core s released before "December 4, 2012"\nhttp://en.wikipedia.org/wiki/List_of_AMD_Opteron_microprocessors -\nhttp://www.amd.com/us/products/pricing/Pages/server-opteron.aspx\nsupport from 1 to 16 cores !!!\n\nChange History:\n2026-07-27 - Updated multithreading for AMD EPYC Processors (DRDC1-30169)` + }, + "_get_multicore_SPARC_info": { + snippets: ["${1:cpu_type}"], + description: `` + }, + "_get_multicore_RISC_info": { + snippets: ["${1:cpu_type}"], + description: `` + }, + "_get_multicore_POWER_info": { + snippets: ["${1:cpu_type}"], + description: `` + }, + "compare_with_vendor_specification": { + snippets: ["${1:proc_info}"], + description: `Function validates obtained values of and :\n\nSince situation when VM is not marked as virtual is very common\nWe need to verify obtained data from /proc/cpuinfo with data based on (for AMD and Intel only)\n\n- Validation based on information obtain from :\nFor AMD:\n100% validation:\n and must be equal\n\nFor Intel: (DEMO)\ndue to unknown 'HyperThreading' state only the following checks can be done:\n must be equal or grater than \n must be an aliquot part of \n\nfor Sparc, Power:\nmethod does not work because is already a main source of information for such processors\n\n- arithmetical validation:\nFor All:\n must be equal or grater than X \n\n// TODO\n// This function should NOT be called for HARD-PARTITIONING VMs!!!!\n` + }, + "get_vendor_specification": { + snippets: ["${1:cpu_type}"], + description: `get vendor specification based on cpu_type\n\nChange History:\n2016-08-22 - added support for IBM/S390 processors(DRDC1-6637)` + }, + "get_vendor_from_cpu_type": { + snippets: ["${1:cpu_type}"], + description: `Get vendor from cpu type` + }, + "normalize_cpu_vendor": { + snippets: ["${1:cpu_vendor}"], + description: `Get official vendor name` + } + }, + "ProcessorInfo.ESX": { + "cpuinfo_parser": { + snippets: ["${1:proc_info}, ${2:cpuinfo_result}"], + description: `Parse output of cpuinfo.\n\nReturns: , , ` + }, + "vim_parser": { + snippets: ["${1:proc_info}, ${2:vim_result}"], + description: `Parse output of 'vim-cmd hostsvc/hosthardware'.\n\ncpuInfo = (vim.host.CpuInfo) {\ndynamicType = ,\nnumCpuPackages = 2,\nnumCpuCores = 12,\nnumCpuThreads = 24,\nhz = 2659999580,\n},\ncpuPkg = (vim.host.CpuPackage) [\n(vim.host.CpuPackage) {\ndynamicType = ,\nindex = 0,\nvendor = "intel",\nhz = 2659999580,\nbusHz = 132999979,\ndescription = "Intel(R) Xeon(R) CPU X5650 @ 2.67GHz",\nthreadId = (short) [\n0,\n1,\n2,\n3,\n4,\n5,\n6,\n7,\n8,\n9,\n10,\n11\n],\n(vim.host.CpuPackage) {\ndynamicType = ,\nindex = 1,\nvendor = "intel",\nhz = 2659999580,\nbusHz = 132999979,\ndescription = "Intel(R) Xeon(R) CPU X5650 @ 2.67GHz",\nthreadId = (short) [\n12,\n13,\n14,\n15,\n16,\n17,\n18,\n19,\n20,\n21,\n22,\n23\n],\nReturns: , , , ` + }, + "esxcfg_parser": { + snippets: ["${1:proc_info}, ${2:esxcfg_result}"], + description: `Keine Beschreibung verfügbar.` + }, + "smbios_parser": { + snippets: ["${1:proc_info}, ${2:smbios_result}"], + description: `Parse output of '/sbin/smbiosDump'.\n\nProcessor Info: #1024\nPayload length: 0x28\nSocket: "CPU1"\nSocket Type: 0x19 (Socket LGA1366)\nSocket Status: Populated\nType: 0x03 (CPU)\nFamily: 0xb3 (Xeon)\nManufacturer: "Intel"\nVersion: "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz"\nProcessor ID: 0xbfebfbff000206c2\nStatus: 0x01 (Enabled)\nVoltage: 1.2 V\nExternal Clock: 5860 MHz\nMax. Speed: 3600 MHz\nCurrent Speed: 2400 MHz\nL1 Cache: #1792\nL2 Cache: #1793\nL3 Cache: #1794\nCore Count: #4\nCore Enabled Count: #4\nThread Count: #8\nProcessor Info: #1025\nPayload length: 0x28\nSocket: "CPU2"\nSocket Type: 0x19 (Socket LGA1366)\nSocket Status: Populated\nType: 0x03 (CPU)\nFamily: 0xb3 (Xeon)\nManufacturer: "Intel"\nVersion: "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz"\nProcessor ID: 0xbfebfbff000206c2\nStatus: 0x04 (Idle)\nVoltage: 1.2 V\nExternal Clock: 5860 MHz\nMax. Speed: 3600 MHz\nCurrent Speed: 2400 MHz\nL1 Cache: #1795\nL2 Cache: #1796\nL3 Cache: #1797\nCore Count: #4\nCore Enabled Count: #4\nThread Count: #8\n\nReturns: , , , ` + }, + "getCPUInfoSummary_parser": { + snippets: ["${1:proc_info}, ${2:Summary}"], + description: `Apply results of getCPUInfoSummary query` + } + }, + "ProcessorInfo.functions": { + "proc_info_table_init": { + snippets: [""], + description: `proc_info table initialization\n\nChange History:\n2022-08-31 - Added entitled_capacity attribute(DRDC1-19744)\n2023-01-24 - Added cache_size and cpu_family attributes(DRDC1-15048)` + }, + "reset_empty_values_to_void": { + snippets: ["${1:proc_info}"], + description: `Reset empty values (none, 0 or '') to void\n\nChange History:\n2022-08-31 - Added entitled_capacity attribute(DRDC1-19744)\n2023-01-24 - Added cache_size and cpu_family attributes(DRDC1-15048)` + }, + "gaps_detected": { + snippets: ["${1:proc_info}, ${2:command_profile}"], + description: `Detect if proc_info dictionary has any empty fields that can be filled by next command\n\n- don't check for , since they are derived from \n- if proc_info['multiple_cpu_types'] exists then there is no gaps to fill.\n\nUsage:\ncommand_profile := ['cpu_type', 'multiple_cpu_types', 'num_threads', 'num_sockets', 'num_cores', 'cores_per_socket', 'threads_per_core', 'threads_per_socket' ];\nif processor_functions.gaps_detected(proc_info, command_profile) then\n(run next command)\nend if;\n\nReturn : true or false\n\nChange History:\n2022-08-31 - Added entitled_capacity attribute(DRDC1-19744)\n2023-01-24 - Added cache_size and cpu_family attributes(DRDC1-15048)` + }, + "cmd_errors": { + snippets: ["${1:cmd_result}"], + description: `Function returns 'true' if error substring is found and 'false' otherwise\n\nExamples:\n\ncat: : No such file or directory\n\n/usr/bin/sudo: /bmc/patrol/patrol3/PatrolAgent: command not found\nsudo: vparstatus: command not found\n\n-bash: /usr//bgs/bin/bgsagent: Permission denied\n-sh: /usr/tibco/tibco/ems/7.0/bin/tibemsd: Permission denied\n-bash: /apps/oracle/product/11.2.0.4/dbhome_1/bin/sqlplus: Permission denied\n\nksh: /products/oradb/rdbms1120_pccli0/112040/OPatch/opatch: cannot execute\nCannot execute /home/oracle/Middleware/oms/bin/emctl.pl since its userid does not match yours.\n\n[sudo] Sorry, user tideway is not allowed to execute '/bin/cat /usr/local/cmplst.txt' as root on hostname.\nSorry, user addmuser is not allowed to execute '/opt/OV//bin/opcagt -version' as root on dcxsa305.\n\nldapaddm is not in the sudoers file. This incident will be reported.\n\nvparstatus: Error: Superuser privileges required.\n` + }, + "multiple_cpu_types_table": { + snippets: ["${1:all_cpus}"], + description: `Convert list of:\n[0:cpu_type, 1:speed(int), 2:threads, 3:cores, 4:sockets] OR additional [.., 5:core_id, 6:chip_id]\ninto table with cpu_type as a key\n\nChange history:\n2017-02-17 - Excluded cpu speed from key for AMD processors. (DRDC1-8120)\n2023-06-02 - Excluded cpu speed from key (DRDC1-21376)` + }, + "get_proc_info_summary": { + snippets: ["${1:proc_info}, ${2:proc_summary_table}"], + description: `Creates CPUInfo Detail\n\n2020-09-11 - Updated to use DiscoveryFunctions.sortList (DRDC1-13139)` + }, + "get_cpu_resource_type": { + snippets: ["${1:host}"], + description: `Set cpu_resource_type to :\n- PARTIAL - for all partition hosts and Solaris Zones\n- VIRTUAL - for all virtual hosts except of Solaris Zones\n- PHYSICAL -for rest hosts (by default)\n` + }, + "get_info_from_contained_partition": { + snippets: ["${1:host}, ${2:proc_info}"], + description: `In order to create ProcessorInfo node for HostContainer node try to get additional Processor Info from container Host node` + }, + "normalize_cpu_type": { + snippets: ["${1:proc_info}"], + description: `Processor type normalization` + }, + "normalize_cpu_speed_to_MHZ": { + snippets: ["${1:cpu_speed}"], + description: `Normalization:\n'string' convert to int (MHZ)\n'3200.56' (MHZ) convert to 3200 (MHZ)\n'2.30' (GHZ) convert to 2300 (MHZ)\n'2' (GHZ) convert to 2000 (MHZ)` + }, + "normalize_cpu_headers": { + snippets: ["${1:proc_info}"], + description: `Fix/Obtain/Normalize cpu_type, cpu_speed, cpu_vendor` + }, + "get_values_logically": { + snippets: ["${1:proc_info}"], + description: `Get 'num_' and '_per_' vales based on logical conclusions` + }, + "get_per_values": { + snippets: ["${1:proc_info}"], + description: `Get '_per_' values based on arithmetical operations` + }, + "get_num_values": { + snippets: ["${1:proc_info}"], + description: `Get 'num_' values based on arithmetical operations` + }, + "try_to_use_vendor_specs": { + snippets: ["${1:proc_info}"], + description: `try to use values from vendor specification` + }, + "model_detail": { + snippets: ["${1:proc_info}, ${2:main_object}, ${3:object_type}"], + description: `Create ProcessorInfo node and link it to Host/HostContainer\n\nChange History:\n2022-08-31 - Added entitled_capacity attribute(DRDC1-19744)\n2023-01-24 - Added cache_size and cpu_family attributes(DRDC1-15048)` + }, + "create_proc_info_detail": { + snippets: ["${1:host}, ${2:host_container}, ${3:proc_info}, ${4:cpu_raw_info}"], + description: `Creates CPUInfo Detail\n\n- performs final cores/sockets number calculation (total_cpu_cores, total_cpu_sockets)\n- performs calculations based on quantity of cpu cores and threads to\ndetermine if cpu threading is enabled or not.\n- performs final validation by comparing results obtained from host with CPU specifications\n- if not validated - resets cores/sockets numbers and adds debug logs\n\n- creates Detail\n\nReturns \n\nChange history:\n2017-08-29 - OpenVMS pattern has been updated to get CPU threading information\nfrom 'cpuconfig' command, therefore, adding a check to this function,\nto be aware if CPU threading has been already extracted. (DRDC1-6779)\n2023-11-16 - Replaced 'stop' with 'return' (DRDC1-22238)\n2024-12-3 - Added suppressRemovalGroup to prevent ProcessorInfo removal\nwhen some commands are failing to run (DRDC1-24511)` + } + }, + "ProcessorInfo.HPNPAR": { + "parstatus_parser": { + snippets: ["${1:proc_info}, ${2:parstatus_result}"], + description: `Parse output of parstatus command.\n\nReturn ` + } + }, + "ProcessorInfo.HPUX": { + "get_itanium_extended_info": { + snippets: ["${1:proc_info}, ${2:machinfo_result}, ${3:proc_info_itanium_extended}"], + description: `Function extracts extended information for Intel Itanium Processor\n\nChange History:\n2016-08-22 - added handler for float number of CPU cache (DRDC1-6703)` + }, + "machinfo_parser": { + snippets: ["${1:proc_info}, ${2:machinfo_result}"], + description: `Parse output of machinfo command.\n\nCOMMENT!!!\nInside of vPar, macinfo may show 'Total number of configured cores' for correspondent nPar in 'Number of CPUs' field. So we should rely on ioscan commands results.\n\nmacinfo commands shows wrong results for vPars if it is in format of :\nCPU info:\nNumber of CPUs = 16\nClock speed = 1398 MHz\nBus speed = 399 MT/s\n\n'16' CPUs are actually related to correspondent nPar which is configured with 16 cores.\n\nSo we should rely on ioscan commands results.\n\n'/usr/contrib/bin/machinfo' | 'icapstatus'\n|\nCPU info: | Local Virtual Partition Status\nNumber of CPUs = 8 | ------------------------------\nNumber of enabled CPUs = 4 | Total number of assigned cores: 4\nNumber of enabled sockets = 3 | Number of active assigned cores: 4\nCores per socket = 2 | Number of inactive assigned cores: 0\n| Additional cores that can be assigned with current usage rights: 0\n| Number of cores that could be assigned with additional usage rights: 0\n| Number of cores that can be assigned with temporary capacity: 0\n| Number of cores that are deconfigured or attached to inactive cells: 0\n|\n| Local nPartition Status\n| -----------------------\n| Total number of configured cores: 8\n| Number of Intended Active cores: 0\n| Number of active cores: 4\n| Number of inactive cores: 4\n\nCPU info:\n32 Intel(R) Itanium(R) Processor 9340s (1.6 GHz, 20 MB)\n4.79 GT/s QPI, CPU version E0\n127 logical processors\nor\n\nvPar\n\nCPU info:\nIntel(R) Itanium 2 9000 series processor (1.6 GHz, 18 MB)\n2 cores, 2 logical processors per socket\n533 MT/s bus, CPU version C2\nActive processor count:\n7 sockets\n12 cores (1 to 2 per socket)\n\nCPU info:\nIntel(R) Itanium 2 9000 series processor (1.6 GHz, 18 MB)\n2 cores, 2 logical processors per socket\n533 MT/s bus, CPU version C2\nActive processor count:\n3 sockets\n4 cores (1 to 2 per socket)\n\nCPU info:\nIntel(R) Itanium(R) Processor 9340 (1.6 GHz, 20 MB)\n4 cores, 8 logical processors per socket\n4.79 GT/s QPI, CPU version E0\nActive processor count:\n4 sockets\n16 cores (4 per socket)\n16 logical processors (4 per socket)\nLCPU attribute is disabled\n\nReturn , , , , , , , \n\nReturns Combination:\n, , \n, , , , \n, , , , \n, , , , ` + }, + "ioscan_parser": { + snippets: ["${1:proc_info}, ${2:ioscan_result}"], + description: `Parse output of ioscan command.\n\nComment:\nFor nPar, ioscan shows sum of\n'Number of active cores'\n+\n'Additional cores that can be activated with current usage rights'\n= 31 (CPUS=CORES) !!!!!!!!!!!!\n\nicapstatus command:\n\nLocal nPartition Status (Mon, Sep 28, 2015 08:18:24 PM)\n-------------------------------------------------------\nTotal number of configured cores: 32\nNumber of Intended Active cores: 20\nNumber of active cores: 20\nNumber of inactive cores: 12\nAdditional cores that can be activated with current usage rights: 11\nNumber of cores that could be activated with additional usage rights: 0\nNumber of cores that can be activated with temporary capacity: 0\nNumber of cores that are deconfigured or attached to inactive cells: 1\n\nmacinfo command:\nPA-RISC 8700/8750 processor (875 MHz, 1.5 MB)\n1 core, 1 logical processor per socket\nCPU version 5\nActive processor count:\n20 sockets\n20 cores !!!!!!!!!!!!!!!\n\nReturn ` + }, + "kctune_parser": { + snippets: ["${1:proc_info}, ${2:kctune_result}"], + description: `Parse output of kctune command.\n\nTunable Value Expression Changes\nlcpu_attr 0 Default Auto\n\nComments:\n- *Hyperthreading works only with 11.31.\n- 'setboot' command just enables ability to use HT, actually HT is turned on by 'kctune lcpu_attr=1' command.\n\nReturn ` + }, + "setboot_parser": { + snippets: ["${1:proc_info}, ${2:setboot_result}"], + description: `Parse output of setboot command.\n\nAutoboot is ON (enabled)\nHyperthreading : ON\n: ON (next boot)\n\nOr\n\nAutoboot is ON (enabled)\nHyperthreading : OFF\n: OFF (next boot)\n\nComments:\n- *Hyperthreading works only with 11.31.\n- 'setboot' command just enables ability to use HT, actually HT is turned on by 'kctune lcpu_attr=1' command.\n\nReturn ` + }, + "icapstatus_parser": { + snippets: ["${1:proc_info}, ${2:icapstatus_result}, ${3:cpu_resource_type}"], + description: `Parse output of icapstatus command.\n\non nPAR:\n\nSoftware version: B.08.01\nSystem ID: XXX\nSerial number: DXXXXXXXX6\nProduct number: A6093A\nUnique ID: Z3e1033e4ec0992da\n\nLocal nPartition Status\n-----------------------\nTotal number of configured cores: 8\nNumber of Intended Active cores: 8\nNumber of active cores: 8\nNumber of inactive cores: 0\nAdditional cores that can be activated with current usage rights: 0\nNumber of cores that could be activated with additional usage rights: 0\nNumber of cores that can be activated with temporary capacity: 0\nNumber of cores that are deconfigured or attached to inactive cells: 0\n\n...\n\nAllocation of Instant Capacity Resources among the nPartitions\n--------------------------------------------------------------\nIntended Actual\nnPar Total Active Active =======Inactive======= Runs\nID Cores Cores Cores Cores Memory Cells iCAP nPar Name\n==== ===== ======== ====== ====================== ==== ======================\n0 8 8 8 0 0.0 GB 0 Yes Partition 0 (local)\nN/A 0 N/A N/A N/A 0.0 GB 0 N/A Unassigned Cells\n\nOR\n\non VPAR:\n\nSoftware version: B.11.31.10.03.00.06 |-> Macinfo: CPU info:\nSystem ID: EEEEEEEE | Number of CPUs = 16\nSerial number: DXXXXXXXX6 | Clock speed = 1598 MHz\nProduct number: A9834A |--> ioscan: 12 cpus\nUnique ID: ffffffff-ffff-ffff-ffff-ffffffffffff\n\nLocal Virtual Partition Status\n------------------------------\nTotal number of assigned cores: 12\nNumber of active assigned cores: 12\nNumber of inactive assigned cores: 0\nAdditional cores that can be assigned with current usage rights: 0\nNumber of cores that could be assigned with additional usage rights: 4\nNumber of cores that can be assigned with temporary capacity: 0\nNumber of cores currently unavailable for assignment: 0\n\nLocal nPartition Status (Wed, Jul 22, 2015 11:13:44 PM)\n-------------------------------------------------------\nTotal number of configured cores: 16\nNumber of Intended Active cores: # 16\nNumber of active cores: 12\nNumber of inactive cores: 4\n\nInstant Capacity Resource Summary\n---------------------------------\nNumber of cells without usage rights: 0\nNumber of inactive cells: 0\nNumber of cores without usage rights: 0\nNumber of inactive cores: * 36\nNumber of cores that must be deactivated (insufficient usage rights): 0\nTemporary capacity available: 0 days, 0 hours, 0 minutes\n\nAllocation of Instant Capacity Resources among the nPartitions\n--------------------------------------------------------------\nIntended Actual\nnPar Total Active Active =======Inactive======= Runs\nID Cores Cores Cores Cores Memory Cells iCAP nPar Name\n==== ===== ======== ====== ====================== ==== ======================\n0 8 66 4 4 0.0 GB 0 Yes asdfasdf\n1 8 # 8 4 4 0.0 GB 0 Yes asdfawef\n2 16 # 16 0 16 0.0 GB 0 Yes weasdf\n3 8 # 8 4 4 0.0 GB 0 Yes afsdfwefas\n4 32 # 32 32 0 0.0 GB 0 Yes afwefasdf\n5 8 # 8 8 0 0.0 GB 0 Yes asfawefasdf\n6 16 # 16 12 4 0.0 GB 0 Yes awefasdfaf\n7 16 # 16 12 4 0.0 GB 0 Yes EEEEEEEE (local) !!!!\n8 8 # 8 * 8 * 0 0.0 GB 0 No safasdf\n9 8 # 8 * 8 * 0 0.0 GB 0 No asfdasdfa\nN/A 0 N/A N/A N/A 0.0 GB 0 N/A Unassigned Cells\n\nOR\n\nLocal nPartition Status (Mon, Sep 28, 2015 08:18:24 PM) |-> Macinfo cmd: CPU info:\n------------------------------------------------------- | PA-RISC 8700/8750 processor (875 MHz, 1.5 M\nTotal number of configured cores: 32 | 1 core, 1 logical processor per socket\nNumber of Intended Active cores: 20 | CPU version 5\nNumber of active cores: 20 | Active processor count:\nNumber of inactive cores: 12 | 20 sockets\nAdditional cores that can be activated with current usage rights: 11 | 20 cores\nNumber of cores that could be activated with additional usage rights: 0 |-> Ioscan -> 32 cpus\nNumber of cores that can be activated with temporary capacity: 0\nNumber of cores that are deconfigured or attached to inactive cells: 1\n\nInstant Capacity Resource Summary\n---------------------------------\nNumber of cells/blades without usage rights: 0\nNumber of inactive cells/blades: 0\nAmount of memory without usage rights: 0.0 GB\nAmount of inactive memory: 0.0 GB\nNumber of cores without usage rights: 0\nNumber of inactive cores: 12\nNumber of cores that must be deactivated (insufficient usage rights): 0\nTemporary capacity available: 0 days, 0 hours, 0 minutes\n\nAllocation of Instant Capacity Resources among the nPartitions\n--------------------------------------------------------------\nIntended Actual\nnPar Total Active Active =======Inactive======= Runs\nID Cores Cores Cores Cores Memory Cells iCAP nPar Name\n==== ===== ======== ====== ====================== ==== ======================\n1 32 20 20 12 0.0 GB 0 Yes WWWWWWW (local)\nN/A 0 N/A N/A N/A 0.0 GB 0 N/A Unassigned Cells\n\nReturn num_cores for HostContainer,\nnum_cores for Host partition` + }, + "vparstatus_parser": { + snippets: ["${1:proc_info}, ${2:vparstatus_result}"], + description: `Parse output of vparstatus command.\n\n[Virtual Partition Details]\nName: asdfasdfasfdasdf\nState: Up\nOS Version: B.11.31\nAttributes: Dynamic,Autoboot,Nosearch\nKernel Path: /stand/vmunix\nBoot Opts: -lq\n\n[CPU Details]\nMin/Max: 12/16\nUser assigned [Path]:\nBoot processor [Path]: 10.121\nMonitor assigned [Path]: 10.122\n10.123\n10.124\n10.125\n10.126\n10.127\n15.120\n15.121\n15.122\n15.123\n15.124\n\nNon-cell-specific:\nUser assigned [Count]: 0\nMonitor assigned [Count]: 12` + }, + "cpu_chip_type_parser": { + snippets: ["${1:proc_info}, ${2:cpu_chip_type_result}"], + description: `Parse output of vparstatus command.\n\nReturn: cpu_type\n\nChange History:\n2026-04-10 - Updated escape sequence (DRDC1-29309)` + }, + "server_model_parser": { + snippets: ["${1:proc_info}, ${2:server_model_result}"], + description: `Parse output of 'model' command.\n\nReturn: cpu_type` + }, + "cstm_parser": { + snippets: ["${1:proc_info}, ${2:cstm_result}"], + description: `Parse output of 'echo "selclass qualifier cpu;info;wait;infolog" | cstm' command.\n\n'echo "selclass qualifier cpu;info;wait;infolog" | cstm' - SUCCESS\n\n.... : 10.X.X.X ....\n\nHardware path: 128\n\nProduct ID: CPU Module Type: 0\nHardware Model: 0x895 Software Model: 0x4\nHardware Revision: 0 Software Revision: 0\nHardware ID: 0 Software ID: 2418034903\nBoot ID: 0x2 Software Option: 0x91\nProcessor Number: 0 Path: 128\nHard Physical Address: 0xfffffffffe780000 Soft Physical Address: 0\n\nSlot Number: 0 Software Capability: 0x100000f0\nPDC Firmware Revision: 45.44 IODC Revision: 0\nInstruction Cache [Kbyte]: 768 Processor Speed: N/A\nProcessor State: CPU Present Configured\nMonarch: Yes Active: Yes\nData Cache [Kbyte]: 768\nInstruction TLB [entry]: 240 Processor Chip Revisions: 3.2\nData TLB Size [entry]: 240 2nd Level Cache Size:[KB] 65536\nSerial Number: XXXXXXXXXXXXXXXXXX\n...\nFRU INFORMATION || IMPORTANT! '/usr/contrib/bin/machinfo' - SUCCESS\n||\nModule Revision || CPU info:\n------ -------- || 1 PA-RISC 8800 processor (800 MHz, 64 MB)\nPA 8900 CPU Module 3.2 || CPU version 5\nPA 8900 CPU Module 3.2 || 2 logical processors (2 per socket)\n... ||\nBoard Info!\nFormat Version : 0x1 Language Code : 0x0\nMfg Date : Mfg Name : JABIL\nProduct Name : rp3440 SYSTEM BOARD\nSerial Number : 52JAPE4618005812\nPart Number : A7136-60101\nFru File Tp/Len : 0x1 Fru File : \nRevision : A1 Eng Date Code : 4606\nArtwork Rev : D Fru Info :\n\n=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=\nHardware path: 129\n\nProduct ID: CPU Module Type: 0\nHardware Model: 0x895 Software Model: 0x4\nHardware Revision: 0 Software Revision: 0\nHardware ID: 0 Software ID: 2418034903\nBoot ID: 0x2 Software Option: 0x91\nProcessor Number: 1 Path: 129\nHard Physical Address: 0xfffffffffe781000 Soft Physical Address: 0\n\nSlot Number: 0 Software Capability: 0x100000f0\nPDC Firmware Revision: 45.44 IODC Revision: 0\nInstruction Cache [Kbyte]: 768 Processor Speed: N/A\nProcessor State: CPU Present Configured\nMonarch: No Active: Yes\nData Cache [Kbyte]: 768\nInstruction TLB [entry]: 240 Processor Chip Revisions: 3.2\nData TLB Size [entry]: 240 2nd Level Cache Size:[KB] 65536\nSerial Number: 45b4914dc43f0704\n\nFRU INFORMATION\n\nModule Revision\n------ --------\nPA 8900 CPU Module 3.2\nPA 8900 CPU Module 3.2\n\nBoard Info!\nFormat Version : 0x1 Language Code : 0x0\nMfg Date : Mfg Name : JABIL\nProduct Name : rp3440 SYSTEM BOARD\nSerial Number : 52JAPE4618005812\nPart Number : A7136-60101\nFru File Tp/Len : 0x1 Fru File : \nRevision : A1 Eng Date Code : 4606\nArtwork Rev : D Fru Info :\n\n============================================================================\n\nAnother examples:\n\nModule Revision\n------------------- --------\nSystem Board 0\nPA 8500-8500 CPU 2.1\nMem/IO Controller 2.1\nOR\n\nI/O Module Error Log Information ------------\nNo I/O module errors logged\n\nModule Revision\n------ --------\nSystem Board A24245\nPA 8700 CPU Module 2.3\nPA 8700 CPU Module 2.3\nOR\n\nFRU INFORMATION\n\nModule Revision\n------ --------\nPA 8900 CPU Module 3.2\nPA 8900 CPU Module 3.2\nBoard Info!\n\nOR\n\nFRU INFORMATION\n\nModule Revision\n------ --------\nPA 8800 CPU Module 3.2\nPA 8800 CPU Module 3.2\n\nBoard Info!\n\nOR\n\nModule Revision\n------------------- --------\nSystem Board 0\nPA 8500-8500 CPU 2.3\nMem/IO Controller 2.1\n\nreturn cpu_type, cpu_speed, num_threads` + } + }, + "ProcessorInfo.Intel": { + }, + "ProcessorInfo.IRIX": { + "sysconf_parser": { + snippets: ["${1:proc_info}, ${2:sysconf_result}"], + description: `Parse output of sysconf.\n\nNUM_PROCESSORS 1\nPROCESSORS R12000 3.5\nAVAIL_PROCESSORS 1\n\nReturns: , ` + }, + "hinv_parser": { + snippets: ["${1:proc_info}, ${2:hinv_result}"], + description: `Parse output of hinv -vm.\n\nhinv -vv\n1 400 MHZ IP30 Processor\nHeart ASIC: Revision E\nCPU: MIPS R12000 Processor Chip Revision: 3.5\nFPU: MIPS R12010 Floating Point Chip Revision: 0.0\nMain memory size: 1024 Mbytes\nXbow ASIC: Revision 1.3\nInstruction cache size: 32 Kbytes\nData cache size: 32 Kbytes\nSecondary unified instruction/data cache size: 2 Mbytes\n\nhinv -t cpu\nCPU: MIPS R12000 Processor Chip Revision: 3.5\n\nhinv -c processor\n1 400 MHZ IP30 Processor\nCPU: MIPS R12000 Processor Chip Revision: 3.5\nFPU: MIPS R12010 Floating Point Chip Revision: 0.0\n\nhinv -vm\n32 400 MHZ IP35 Processors\nCPU: MIPS R12000 Processor Chip Revision: 3.5\nFPU: MIPS R12010 Floating Point Chip Revision: 0.0\nCPU 0 at Module 001c10/Slot 0/Slice A: 400 Mhz MIPS R12000 Processor Chip (enabled)\nProcessor revision: 3.5. Secondary cache: Size 8 MB Speed 266 Mhz\nCPU 1 at Module 001c10/Slot 0/Slice B: 400 Mhz MIPS R12000 Processor Chip (enabled)\nProcessor revision: 3.5. Secondary cache: Size 8 MB Speed 266 Mhz\n...\nCPU 31 at Module 001c35/Slot 0/Slice D: 400 Mhz MIPS R12000 Processor Chip (enabled)\nProcessor revision: 3.5. Secondary cache: Size 8 MB Speed 266 Mhz\n\n12 200 MHZ IP19 Processors\nCPU: MIPS R4400 Processor Chip Revision: 6.0\nFPU: MIPS R4010 Floating Point Chip Revision: 0.0\nData cache size: 16 Kbytes\nInstruction cache size: 16 Kbytes\nSecondary unified instruction/data cache size: 4 Mbytes\n\nA multiprocessor system returns information similar to the following in its hinv output:\n\nProcessor 0: 40 MHZ IP7\nProcessor 1: 36 MHZ IP7\nProcessor 2: 40 MHZ IP7\nProcessor 3: 40 MHZ IP7\nProcessor 4: 40 MHZ IP7\nProcessor 5: 40 MHZ IP7\nProcessor 6: 40 MHZ IP7\nProcessor 7: 40 MHZ IP7\n\nOr, alternately, output similar to the following:\n\n8 40 MHZ IP7 Processors\n\nA single-processor system returns information similar to the following for the hinv command:\n\n1 100 MHZ IP22 Processor\n\nIf you have only one processor on your system (and the vast majority of systems have only one processor), this command still operates, though it has no useful purpose.\n\n1 600 MHZ IP35 Processor\nCPU: MIPS R14000 Processor Chip Revision: 2.3\nFPU: MIPS R14010 Floating Point Chip Revision: 2.3\nMain memory size: 1024 Mbytes\n\n1 180 MHZ IP27 Processor\nCPU: MIPS R10000 Processor Chip Revision: 2.6\nFPU: MIPS R10010 Floating Point Chip Revision: 2.6\nMain memory size: 2048 Mbytes\nInstruction cache size: 32 Kbytes\nData cache size: 32 Kbytes\nSecondary unified instruction/data cache size: 1 Mbyte\n\n1 100 MHZ IP22 Processor\nFPU: MIPS R4000 Floating Point Coprocessor Revision: 0.0\nCPU: MIPS R4400 Processor Chip Revision: 5.0\n\nReturns: , , ` + } + }, + "ProcessorInfo.Linux": { + "cpu_header_parser": { + snippets: ["${1:proc_info}, ${2:cpuinfo_block}"], + description: `Parse output of cpuinfo.\n\nChange History:\n2016-08-08 - added support for mainframes (RFE DRDC1-6637)\n\nReturns: , , ` + }, + "cpuinfo_parser": { + snippets: ["${1:proc_info}, ${2:cpuinfo_result}"], + description: `Parse output of cpuinfo.\n\nChange History:\n2016-08-08 - added support for mainframes (RFE DRDC1-6637)\n2017-02-17 - fixed core id for AMD Opteron (DRDC1-8120)\n2017-06-01 - added additional check for AMD and Intel (DRDC1-8722)\n2023-01-24 - Added cache_size and cpu_family attributes(DRDC1-15048)\n2026-07-27 - Updated multithreading for AMD EPYC Processors (DRDC1-30169)\n\nReturns: , , ` + }, + "lscpu_parser": { + snippets: ["${1:proc_info}, ${2:lscpu_result}"], + description: `Parse output of lscpu\nReturns: , , , , \n\nChange History:\n2021-02-09 - Updated to extract maximum CPU speed (DRDC1-16393)\n2025-08-28 - Added extract for num_threads (DRDC1-24337)` + }, + "xe_parser": { + snippets: ["${1:proc_info}, ${2:xe_result}"], + description: `Parse output of '/opt/xensource/bin/xe host-cpu-info ' processor command.\n\n[root@localhost ~]# /opt/xensource/bin/xe host-cpu-info\ncpu_count : 32\nsocket_count: 2\nvendor: GenuineIntel\nspeed: 2600.056\nmodelname: Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz\nfamily: 6\nmodel: 45\nstepping: 7\nflags: fpu de tsc msr pae mce cx8 apic sep mtrr mca cmov pat clflush acpi mmx fxsr sse sse2 ss ht nx constant_tsc nonstop_tsc aperfmperf pni pclmulqdq vmx est ssse3 sse4_1 sse4_2 x2apic popcnt aes hypervisor ida arat tpr_shadow vnmi flexpriority ept vpid\nfeatures: 17bee3ff-bfebfbff-00000001-2c100800\nfeatures_after_reboot: 17bee3ff-bfebfbff-00000001-2c100800\nphysical_features: 17bee3ff-bfebfbff-00000001-2c100800\nmaskable: no\n\nReturns: , , , \n\nChange History:\n2016-06-08 - function parses output for 'xe host-cpu-info' command instead of 'xe host-cpu-list'(DRDC1-6404)\n2020-09-09 - updated to look for socket_count value (DRDC1-13139)` + }, + "lparcfg_parser": { + snippets: ["${1:proc_info}, ${2:lparcfg_result}, ${3:cpu_resource_type}"], + description: `Parse output of 'cat /proc/ppc64/lparcfg' command.\n\nlparcfg 1.7\nserial_number=IBM,0XXXXXX1\nsystem_type=IBM,8203-E4A\npartition_id=4\nR4=0x28\nR5=0x0\nR6=0x80040000\nR7=0x800000020004\nBoundThrds=1\nCapInc=1\nDisWheRotPer=5120000\nMinEntCap=10\nMinEntCapPerVP=10\nMinMem=128\nMinProcs=1\npartition_max_entitled_capacity=50\nsystem_potential_processors=4\nDesEntCap=40\nDesMem=768\nDesProcs=4\nDesVarCapWt=128\nDedDonMode=0\n\npartition_entitled_capacity=40\ngroup=32772\nsystem_active_processors=4\npool=0\npool_capacity=200\npool_idle_time=21493922324160115\npool_num_procs=2\nunallocated_capacity_weight=0\ncapacity_weight=128\ncapped=0\nunallocated_capacity=0\npurr=668421983923096\npartition_active_processors=4\npartition_potential_processors=4\nshared_processor_mode=1\nslb_size=64\n\nReturn: - for HostContainer, - for Host partition` + }, + "xm_parser": { + snippets: ["${1:proc_info}, ${2:xm_result}"], + description: `Parse output of xm info\nReturns: , , , ` + } + }, + "ProcessorInfo.MacOS": { + "sysctl_parser": { + snippets: ["${1:proc_info}, ${2:sysctl_result}"], + description: `Keine Beschreibung verfügbar.` + }, + "system_profiler_parser": { + snippets: ["${1:proc_info}, ${2:system_profiler_result}"], + description: `Parse output of system_profiler SPHardwareDataType.\n\nsystem_profiler SPHardwareDataType\nModel Name: MacBook Pro\nModel Identifier: MacBookPro6,2\nProcessor Name: Intel Core i7\nProcessor Speed: 2,66 GHz\nNumber Of Processors: 1\nTotal Number Of Cores: 2\nL2 Cache (per core): 256 KB\nL3 Cache: 4 MB\nMemory: 4 GB\nProcessor Interconnect Speed: 4.8 GT/s\nBoot ROM Version: MBP61.0057.B0C\nSMC Version (system): 1.58f16\nSerial Number (system): W80253LDAGZ\nHardware UUID: 598781DD-929A-1337-F00D-EF19A1B625F8\nSudden Motion Sensor:\nState: Enabled\n\nsystem_profiler SPHardwareDataType\nModel Name: iMac\nModel Identifier: iMac7,1\nProcessor Name: Intel Core 2 Duo\nProcessor Speed: 2.4 GHz\nNumber of Processors: 1\nTotal Number of Cores: 2\nL2 Cache: 4 MB\nMemory: 4 GB\nBus Speed: 800 MHz\n\nsystem_profiler SPHardwareDataType\nMachine Name: Power Mac G5\nMachine Model: PowerMac7,3\nCPU Type: PowerPC G5 (3.0)\nNumber Of CPUs: 2\nCPU Speed: 2.5 GHz\nL2 Cache (per CPU): 512 KB\nMemory: 2 GB\nBus Speed: 1.25 GHz\nBoot ROM Version: 5.1.8f7\nSerial Number: XXXXXXXXXXX\n\nReturns: cpu_type, cpu_speed, num_threads, num_cores, num_sockets` + } + }, + "ProcessorInfo.OpenVMS": { + "get_itanium_extended_info": { + snippets: ["${1:show_cpu_result}, ${2:proc_info_itanium_extended}"], + description: `History:\n2015-12-30: L3cache_per_socket_str changed to L3cache_per_core_str` + }, + "show_cpu_parser": { + snippets: ["${1:proc_info}, ${2:show_cpu_result}"], + description: `Parse output of pipe.\n\n$ pipe show cpu/full |sea sys$pipe 21164\nType...........: EV56 (21164A), Pass 2\nType...........: EV56 (21164A), Pass 2\n\nDLXDV2 $ PIPE SHOW CPU /FULL | SEARCH SYS$INPUT /NOHIGHLIGHT "COThd:","Type","Speed"\nType...........: EV68 (21264/EV68A 21264B), Minor = 4\nSpeed..........: 833 Mhz\nType...........: EV68 (21264/EV68A 21264B), Minor = 4\nSpeed..........: 833 Mhz\n\n$ SHOW CPU\nMYNODE, a Compaq AlphaServer ES40\nMultiprocessing is ENABLED. Streamlined synchronization image loaded.\nMinimum multiprocessing revision levels: CPU = 1\nPRIMARY CPU = 00\nCPU sets:\nActive 00 01\nConfigure 00 01\nPotential 00 01\nAutostart 00 01\nFailover None\nFrom ECP:\nNode Name : MYNODE\nCPU Type : 1818\nOS : OpenVMS\n\n$ show cpu/full\n\nSystem: MYNODE, Digital Personal WorkStation\n\nSMP execlet = 3 : Disabled : Uniprocessing.\nConfig tree = None\nPrimary CPU = 0\nHWRPB CPUs = 1\nPage Size = 8192\nRevision Code =\nSerial Number =\nDefault CPU Capabilities:\nSystem: QUORUM RUN\nDefault Process Capabilities:\nSystem: QUORUM RUN\n\nCPU 0 State: RUN CPUDB: 81C38000 Handle: * None *\nProcess: PAUL PID: 20200468\nCapabilities:\nSystem: PRIMARY QUORUM RUN RAD0\nSlot Context: 855181C0\nCPU - State..........: RC, PA, PP, CV, PV, PMV, PL\nType...........: EV56 (21164A), Reserved\nSpeed..........: 598 Mhz\nVariation......: VAX FP, IEEE FP, Primary Eligible\nSerial Number..:\nRevision.......:\nHalt Request...: 0\nSoftware Comp..: 5.5\nPALCODE - Revision Code..: 1.20-01\nCompatibility..: 0\nMax Shared CPUs: 1\n\n$ SHOW CPU/FULL (http://h71000.www7.hp.com/doc/84final/9996/9996pro_180.html)\nSYSTEM: EUROS, HP RX2600 (900MHZ/1.5MB)\n\nSMP EXECLET = 3 : ENABLED : STREAMLINED.\nCONFIG TREE = VERSION 6\nPRIMARY CPU = 0\nHWRPB CPUS = 2\nPAGE SIZE = 8192\nREVISION CODE =\nSERIAL NUMBER = US30464615\nDEFAULT CPU CAPABILITIES:\nSYSTEM: QUORUM RUN\nDEFAULT PROCESS CAPABILITIES:\nSYSTEM: QUORUM RUN\n\nCPU 0 STATE: RUN CPUDB: 8901C000 HANDLE: 00005D70\nOWNER: 000004C8 CURRENT: 000004C8 PARTITION 0 (EUROS)\nCHGCNT: 1 STATE: PRESENT, PRIMARY, REASSIGNABLE\nPROCESS: TEST11 PID: 20201185\nCAPABILITIES:\nSYSTEM: PRIMARY QUORUM RUN RAD0\nUSER: USR1 USR2\nSLOT CONTEXT: 901EB000\nCPU - STATE..........: RC, PA, PP, CV, PV, PMV, PL\nTYPE...........: ITANIUM MAJOR = 31, MINOR = 0\nSPEED..........: 900 MHZ\nLID............: 00000000\nVARIATION......: IEEE FP, PRIMARY ELIGIBLE\nSERIAL NUMBER..: 0001A968930A1A25\nREVISION.......:\nHALT REQUEST...: 0\nSOFTWARE COMP..: 7.0\nPALCODE - REVISION CODE..: 1.1\nCOMPATIBILITY..: 0\nMAX SHARED CPUS: 0\n\nCPU 1 STATE: RUN CPUDB: 89163480 HANDLE: 00005E80\nOWNER: 000004C8 CURRENT: 000004C8 PARTITION 0 (EUROS)\nCHGCNT: 1 STATE: PRESENT, REASSIGNABLE\nPROCESS: * NONE *\nCAPABILITIES:\nSYSTEM: QUORUM RUN RAD0\nSLOT CONTEXT: 901EC000\nCPU - STATE..........: RC, PA, PP, CV, PV, PMV, PL\nTYPE...........: ITANIUM MAJOR = 31, MINOR = 0\nSPEED..........: 900 MHZ\nLID............: 01000000\nVARIATION......: IEEE FP\nSERIAL NUMBER..: 000363B4B0C5C862\nREVISION.......:\nHALT REQUEST...: 0\nSOFTWARE COMP..: 7.0\nPALCODE - REVISION CODE..: 1.1\nCOMPATIBILITY..: 0\nMAX SHARED CPUS: 0\n\n$ show cpu /full\n\nSystem: CARBON, HP rx2660 (1.59GHz/9.0MB)\n\nSMP execlet = 3 : Enabled : Streamlined.\nConfig tree = Version 6\nPrimary CPU = 0\nHWRPB CPUs = 8\nPage Size = 8192\nRevision Code =\nDefault CPU Capabilities:\nSystem: QUORUM RUN\nDefault Process Capabilities:\nSystem: QUORUM RUN\n\nCPU 0 State: RUN CPUDB: 89026000 Handle: 00005D70\nOwner: 000004C8 Current: 000004C8 Partition 0 (CARBON)\nChgCnt: 1 State: Present, Primary, Reassignable\nCothd: 4\nProcess: * None *\nCapabilities:\nSystem: PRIMARY QUORUM RUN RAD0\nSlot Context: 922C1000\nCPU - State..........: RC, PA, PP, CV, PV, PMV, PL\nType...........: Itanium Major = 32, Minor = 0\nSpeed..........: 1595 Mhz\nLID............: 00000000\nVariation......: IEEE FP, Primary Eligible\nSerial Number..: 00004081328A604C\nRevision.......:\nHalt Request...: 0\nSoftware Comp..: 7.0\nPALCODE - Revision Code..: 1.1\nCompatibility..: 0\nMax Shared CPUs: 0\nBindings: * None *\nFastpath:\nEIA0\nFeatures:\nAutostart - Enabled.\nFastpath - Selection enabled as Preferred CPU.\n\nCPU 1 State: RUN CPUDB: 890D6780 Handle: 00005E80\nOwner: 000004C8 Current: 000004C8 Partition 0 (CARBON)\nChgCnt: 2 State: Present, Reassignable\nCothd: 5\nProcess: * None *\nCapabilities:\nSystem: QUORUM RUN RAD0\nSlot Context: 922C2000\nCPU - State..........: RC, PA, PP, CV, PV, PMV, PL\nType...........: Itanium Major = 32, Minor = 0\nSpeed..........: 1595 Mhz\nLID............: 02000000\nVariation......: IEEE FP\nSerial Number..:\nRevision.......:\nHalt Request...: 0\nSoftware Comp..: 7.0\nPALCODE - Revision Code..: 1.1\nCompatibility..: 0\nMax Shared CPUs: 0\nBindings: * None *\nFastpath:\nFGA0\nBG0\nFeatures:\nAutostart - Enabled.\nFastpath - Selection enabled as Preferred CPU.\n\n...\n\nCPU 7 State: RUN CPUDB: 890E9980 Handle: 000064E0\nOwner: 000004C8 Current: 000004C8 Partition 0 (CARBON)\nChgCnt: 2 State: Present, Reassignable\nCothd: 3\nProcess: SYSTEM PID: 00000417\nCapabilities:\nSystem: QUORUM RUN RAD0\nSlot Context: 922C8000\nCPU - State..........: RC, PA, PP, CV, PV, PMV, PL\nType...........: Itanium Major = 32, Minor = 0\nSpeed..........: 1595 Mhz\nLID............: 07000000\nVariation......: IEEE FP\nSerial Number..:\nRevision.......:\nHalt Request...: 0\nSoftware Comp..: 7.0\nPALCODE - Revision Code..: 1.1\nCompatibility..: 0\nMax Shared CPUs: 0\nBindings: * None *\nFastpath:\nEIB0\nFeatures:\nAutostart - Enabled.\nFastpath - Selection enabled as Preferred CPU.\n\nshow cpu/full on OpenVMS VAX 7.2:\n\nSTAR72, a MicroVAX 3100-90\nMultiprocessing is DISABLED. Uniprocessing synchronization image loaded.\n\nPRIMARY CPU = 00\n\nCPU 00 is in RUN state\nCurrent Process: DISCOVERY PID = 00001CAD\nCapabilities of this CPU:\nPRIMARY QUORUM RUN\nProcesses which can only execute on this CPU:\n*** None ***\n\nReturns: , , ` + }, + "cpuconfig_parser": { + snippets: ["${1:proc_info}, ${2:show_cpu_result}"], + description: `Parse output of pipe.\n\nShell> cpuconfig\nPROCESSOR MODULE INFORMATION\n# of L3 L4 Family/\nCPU Logical Cache Cache Model Processor\nModule CPUs Speed Size Size (hex.) Rev State\n------ ------- -------- ------ ------ ------- --- ------------\n0 2 1.4 GHz 6 MB None 20/00 C2 Active\n1 2 1.4 GHz 6 MB None 20/00 C2 Active\n2 2 1.4 GHz 6 MB None 20/00 C2 SW Deconf\n3 2 1.4 GHz 6 MB None 20/00 C2 Active\nCPU threads are turned off.\n\nShell> cpuconfig\nPROCESSOR MODULE INFORMATION\n# of L3 L4 Family/\nCPU Logical Cache Cache Model Processor\nModule CPUs Speed Size Size (hex.) Rev State\n------ ------- -------- ------ ------ ------- --- ------------\n0 4 1.4 GHz 6 MB None 20/00 C2 Active\n1 4 1.4 GHz 6 MB None 20/00 C2 Active\n2 4 1.4 GHz 6 MB None 20/00 C2 SW Deconf\n3 4 1.4 GHz 6 MB None 20/00 C2 Active\nCPU threads are turned on.\n\nReturns: , , ` + } + }, + "ProcessorInfo.POWER_HMC": { + }, + "ProcessorInfo.Solaris": { + "prtconf_parser": { + snippets: ["${1:proc_info}, ${2:prtconf_result}"], + description: `Parse output of 'prtconf' command.\n\nSPARC (with SPARC-T4 64/8/1 ) or Sun-Fire (with UltraSPARC-IV+ 1500MHz 2/2/1) SPARC-Enterprise (with SPARC64-VII 1500MHz 8/4/1)\n\nSystem Configuration: Oracle Corporation sun4v System Configuration: Oracle Corporation sun4u\nMemory size: 16384 Megabytes Memory size: 65536 Megabytes\nSystem Peripherals (Software Nodes): System Peripherals (Software Nodes):\n\nORCL,SPARC-T4-1B SUNW,Sun-Fire-V890 SUNW,SPARC-Enterprise\ncpu (driver not attached) cmp (driver not attached) cmp (driver not attached)\ncpu (driver not attached) cpu (driver not attached) core (driver not attached)\ncpu (driver not attached) cpu (driver not attached) cpu (driver not attached)\ncpu (driver not attached) memory-controller, instance #0 cpu (driver not attached)\ncpu (driver not attached) cmp (driver not attached) core (driver not attached)\ncpu (driver not attached) cpu (driver not attached) cpu (driver not attached)\ncpu (driver not attached) cpu (driver not attached) cpu (driver not attached)\ncpu (driver not attached) memory-controller, instance #1 core (driver not attached)\ncpu (driver not attached)\n... (total 8 times) -> 8 sockets cpu (driver not attached)\ncore (driver not attached)\ncmp (driver not attached) cpu (driver not attached)\ncpu (driver not attached) cpu (driver not attached)\ncpu (driver not attached)\nmemory-controller, instance #7\n\n!!\nImportant - for LPAR "ORCL,SPARC-T4-2" system command shows all available logical_cpus in the system.\n!!\n\nReturns: cpu_type, , num_cores, ` + }, + "prtdiag_parser": { + snippets: ["${1:proc_info}, ${2:prtdiag_result}"], + description: `Parse output of prtdiag processor command.\n\n/usr/platform/\`uname -i\`/sbin/prtdiag or /usr/sbin/prtdiag !!!!!\n\nSystem Configuration: Sun Microsystems sun4v T5240\nMemory size: 2048 Megabytes\n================================ Virtual CPUs ================================\nCPU ID Frequency Implementation Status\n------ --------- ---------------------- -------\n0 1165 MHz SUNW,UltraSPARC-T2+ on-line\n1 1165 MHz SUNW,UltraSPARC-T2+ on-line\n2 1165 MHz SUNW,UltraSPARC-T2+ on-line\n3 1165 MHz SUNW,UltraSPARC-T2+ on-line\n\nor\n\nSystem Configuration: VMware, Inc. VMware Virtual Platform\nBIOS Configuration: Phoenix Technologies LTD 6.00 07/09/2012\n==== Processor Sockets ====================================\nVersion Location Tag\n-------------------------------- --------------------------\nPentium(R) Pro CPU socket #0\nPentium(R) Pro CPU socket #1\n\nor\n\nSystem Configuration: Sun Microsystems sun4u Sun Fire V100 (UltraSPARC-IIe 548MHz)\nSystem clock frequency: 100 MHz\nMemory size: 1024 Megabytes\n========================= CPUs =========================\nRun Ecache CPU CPU\nBrd CPU Module MHz MB Impl. Mask\n--- --- ------- ----- ------ ------ ----\n0 0 0 548 0.5 13 3.3\n\nor\n\nSystem Configuration: Sun Microsystems sun4u Sun Fire V240\nSystem clock frequency: 160 MHZ\nMemory size: 3GB\n\n==================================== CPUs ====================================\nE$ CPU CPU Temperature\nCPU Freq Size Implementation Mask Die Amb. Status Location\n--- -------- ---------- ------------------- ----- ---- ---- ------ --------\n0 1280 MHz 1MB SUNW,UltraSPARC-IIIi 2.4 - - online MB/P0\n1 1280 MHz 1MB SUNW,UltraSPARC-IIIi 2.4 - - online MB/P1\n\nor\n\nSystem Configuration: Oracle Corporation sun4v SPARC T4-1B\nMemory size: 8192 Megabytes\n================================ Virtual CPUs ================================\nCPU ID Frequency Implementation Status\n------ --------- ---------------------- -------\n0 2848 MHz SPARC-T4 on-line\n1 2848 MHz SPARC-T4 on-line\n2 2848 MHz SPARC-T4 on-line\n3 2848 MHz SPARC-T4 on-line\n4 2848 MHz SPARC-T4 on-line\n5 2848 MHz SPARC-T4 on-line\n6 2848 MHz SPARC-T4 on-line\n7 2848 MHz SPARC-T4 on-line\n-> Detail: Physical - '64/8/1', Allocated - 8/1/1\n\nOR\n\n==================================== CPUs ====================================\n\nCPU CPU Run L2$ CPU CPU\nLSB Chip ID MHz MB Impl. Mask\n--- ---- ---------------------------------------- ---- --- ----- ----\n00 0 0, 1, 2, 3, 4, 5, 6, 7 2530 5.5 7 161\n00 1 8, 9, 10, 11, 12, 13, 14, 15 2530 5.5 7 161\n00 2 16, 17, 18, 19, 20, 21, 22, 23 2660 5.5 7 193\n00 3 24, 25, 26, 27, 28, 29, 30, 31 2660 5.5 7 193\n-> Detail: Physical - '32/16/4'\n\nReturns: , , , , , ` + }, + "psrinfo_parser": { + snippets: ["${1:proc_info}, ${2:psrinfo_result}"], + description: `Parse output of commands\n- /usr/sbin/psrinfo -v\nor\n- /usr/sbin/psrinfo -vp\n\nReturns , , , , , ` + }, + "kstat_cpu_header_parser": { + snippets: ["${1:proc_info}, ${2:kstat_block}"], + description: `Parse output of kstat command.\n\nReturns: , , ` + }, + "kstat_parser": { + snippets: ["${1:proc_info}, ${2:kstat_result}"], + description: `Parse output of kstat command.\n\nReturns: , , , , , ` + }, + "showboards_parser": { + snippets: ["${1:proc_info}, ${2:showboards_result}"], + description: `Parse output of showboards command for SUNFIRE DOMAINS.\nhttp://4bcad.com/doc/misc/solaris_domains\nhttp://docs.oracle.com/cd/E19102-01/n1280.srvr/817-7811-10/sccommands.html#pgfId-1025368\n\n"showboards -p cpu" - Can see all cpu boards on a 6800 via\n"showboards -d a -p cpu" - can see all cpus in a domain via for domain 'a'.\n\nlom>showboards -p cpu\nComponent Description\n--------- -----------\n/N0/SB0/P0 UltraSPARC-III+, 900MHz, 8M ECache\n/N0/SB0/P1 UltraSPARC-III+, 900MHz, 8M ECache\n/N0/SB0/P2 UltraSPARC-III+, 900MHz, 8M ECache\n/N0/SB0/P3 UltraSPARC-III+, 900MHz, 8M ECache\n/N0/SB2/P0 UltraSPARC-III+, 900MHz, 8M ECache\n/N0/SB2/P1 UltraSPARC-III+, 900MHz, 8M ECache\n/N0/SB2/P2 UltraSPARC-III+, 900MHz, 8M ECache\n/N0/SB2/P3 UltraSPARC-III+, 900MHz, 8M ECache\n\nhttps://docs.oracle.com/cd/E19415-01/E21618-01/Domains.html\n\nReturns: ` + } + }, + "ProcessorInfo.SolarisLDOM": { + "ldm_parser": { + snippets: ["${1:proc_info}, ${2:ldm_result}"], + description: `Parse output of 'ldm ls-devices -a cpu' processor command.\nVCPU\nPID %FREE\n0 0\n...\n127 100 --> 128 total logical cpus\n\nReturns: ` + } + }, + "ProcessorInfo.Tru64": { + "psrinfo_parser": { + snippets: ["${1:proc_info}, ${2:psrinfo_result}"], + description: `Parse output of psrinfo -v.\n\npsrinfo -v\nStatus of processor 0 as of: 05/23/00\nProcessor has been on-line since 05/23/2000 15:08:04\nThe alpha EV5.6 (21164A) processor operates at 465 MHz,\nand has an alpha internal floating point processor.\nStatus of processor 1 as of: 05/23/00 15:47:40\nProcessor has been on-line since 05/23/2000 15:08:04\nThe alpha EV5.6 (21164A) processor operates at 465 MHz,\nand has an alpha internal floating point processor.\nStatus of processor 2 as of: 05/23/00 15:47:40\nProcessor has been off-line since 05/23/2000 15:08:04\nThe alpha EV5.6 (21164A) processor operates at 465 MHz,\nand has an alpha internal floating point processor.\nStatus of processor 3 as of: 05/23/00 15:47:40\nProcessor has been on-line since 05/23/2000 15:14:00\nThe alpha EV5.6 (21164A) processor operates at 465 MHz,\nand has an alpha internal floating point processor.\n\npsrinfo -v\nStatus of processor 0 as of: 05/19/03 14:30:40\nProcessor has been on-line since 10/14/2002 16:33:27\nThe alpha EV5 (21164) processor operates at 250 MHz,\nhas a cache size of 4194304 bytes,\nand has an alpha internal floating point processor.\n\npsrinfo -v\nStatus of processor 0 as of: 05/19/03 14:30:40\nProcessor has been on-line since 10/14/2002 16:33:27\nThe alpha EV6 (21264) processor operates at 500 MHz,\nand has an alpha internal floating point processor.\n\nReturns: , , \n` + } + }, + "ProcessorInfo.UnixWare": { + "uname_machine_parser": { + snippets: ["${1:proc_info}, ${2:uname_machine_result}"], + description: `Parse output of uname machine.\n# uname machine:\nPentium III\n\nReturns: ` + }, + "uname_num_cpu_parser": { + snippets: ["${1:proc_info}, ${2:uname_num_cpu_result}"], + description: `Parse output of uname num_cpu.\n\n# uname num_cpu\n1\n\nReturns: ` + }, + "psrinfo_parser": { + snippets: ["${1:proc_info}, ${2:psrinfo_result}"], + description: `Parse output of psrinfo -v.\n\n# psrinfo -v\nStatus of processor as of: MM/DD/YY HH:MM:SS\nProcessor has been [on|off]-line since MM/DD/YY HH:MM:SS.\nThe [] processor [has an |has no] floating point processor.\nThe following conditions exist:\nDevice drivers are [not] bound to this processor.\n\n# psrinfo -v\nStatus of processor 0 as of 08/24/01 15:13:12\nProcessor has been on-line since 08/24/01 15:10:19.\nThe Pentium_Pro processor has a i387 floating point processor.\nThe following conditions exist:\nDevice drivers are not bound to this processor.\n\nStatus of processor 1 as of 08/24/01 15:13:12\nProcessor has been off-line since 01/01/70 00:00:00.\nThe ???? processor has a i387 floating point processor.\nThe following conditions exist:\nDevice drivers are not bound to this processor.\n\n# psrinfo -v\nStatus of processor 0 as of 04/26/04 09:32:28\nProcessor has been on-line since 04/26/04 07:31:00.\nThe Pentium 4 XEON processor has a i387 floating point processor.\nThe following conditions exist: Device drivers are bound to this processor. -\n\n# psrinfo -v\nStatus of processor 0 as of 10/22/15 19:26:01\nProcessor has been on-line since 12/01/14 20:31:24.\nThe Pentium III processor has a i387 floating point processor.\nThe following conditions exist:\nDevice drivers are bound to this processor.\n\nReturns: , ` + } + }, + "ProcessorInfo.Windows": { + "wmi_win32_processor_parser": { + snippets: ["${1:proc_info}, ${2:win32_processor_results}, ${3:socket_number_error}"], + description: `Parses output of SELECT * FROM Win32_Processor processor command.\n\nReturns , , , , ` + }, + "wmic_parser": { + snippets: ["${1:proc_info}, ${2:wmic_result}, ${3:socket_number_error}"], + description: `Keine Beschreibung verfügbar.` + }, + "systeminfo_parser": { + snippets: ["${1:proc_info}, ${2:systeminfo_result}, ${3:socket_number_error}"], + description: `Parse output of systeminfo command.\nProcessor(s): 1 Processor(s) Installed.\n[01]: EM64T Family 6 Model 15 Stepping 8 GenuineIntel ~1995 Mhz\n\nProcessor(s): 2 Processor(s) Installed.\n[01]: Intel64 Family 6 Model 26 Stepping 4 GenuineIntel ~2199 Mhz\n[02]: Intel64 Family 6 Model 26 Stepping 4 GenuineIntel ~2199 Mhz --> 2 sockets\n\nProcessor(s): 4 Processor(s) Installed.\n[01]: EM64T Family 15 Model 4 Stepping 3 GenuineIntel ~3192 Mhz\n[02]: EM64T Family 15 Model 4 Stepping 3 GenuineIntel ~3192 Mhz\n[03]: EM64T Family 15 Model 4 Stepping 3 GenuineIntel ~3192 Mhz\n[04]: EM64T Family 15 Model 4 Stepping 3 GenuineIntel ~3192 Mhz --> 4 sockets\n\nReturn , ` + }, + "registry_parser": { + snippets: ["${1:proc_info}, ${2:host}"], + description: `Keine Beschreibung verfügbar.` + } + }, + "Progress.MOVEitTransfer": { + "createLicenseNodes": { + snippets: ["${1:host}, ${2:si}"], + description: `Create License nodes using the information contained in the license file\nfound at HKEY_LOCAL_MACHINE\\SOFTWARE\\Standard Networks\\siLock\\LicenseFile\n\nBackground to licensing at https://community.progress.com/s/article/MOVEit-License-FAQ\n\nTakes : Host node\nSI to link license detail to\nReturns : Nothing` + }, + "findLinkedDatabases": { + snippets: ["${1:host}, ${2:si}"], + description: `Find linked database nodes from the registry\n\nTakes : Host node\nSoftware Instance to link to` + } + }, + "Progress.ObjectStore": { + }, + "Progress.OpenEdge_RDBMS": { + }, + "Progress.OpenEdge_RDBMS_Extended": { + }, + "Prometheus": { + }, + "Proofpoint.ProtectionServer": { + "get_version": { + snippets: ["${1:host}, ${2:install_root}"], + description: `This function tries to obtain versioning information.\nUses path, package versioning methods.` + } + }, + "Proxmox.PVE": { + }, + "Puppet.Puppet": { + }, + "PureStorage_FlashArray_Rest": { + "getAPIVersion": { + snippets: ["${1:discovery_access}"], + description: `Function that request the URL /api/api_version and return the api_version\n\nChange History:\n10-27-2023 - Get rid of the authentication type as we don't need to\nauthenticate to perform the GET request for the api version` + }, + "getDecoded": { + snippets: ["${1:discovery_access}, ${2:auth_type}, ${3:url}"], + description: `Return a response in JSON format.\nAll body response starts with the json nodes 'items'\n\n{\nitems: [{\n...\n},\n{\n...\n}]\n}` + }, + "buildHostGroupTable": { + snippets: ["${1:host_table}"], + description: `Build a table of hosts keyed by host group name` + }, + "hardwareList": { + snippets: ["${1:hardware_decoded}"], + description: `Build different list of hardware information\nkeyed by their respective names\nList build:\n- hardware container\n- storage processor\n- disk drive\n- ports` + }, + "updateStorageSystemCapacity": { + snippets: ["${1:storage_system_capacity}, ${2:capacity_metrics}"], + description: `Update the storage system capacity metrics` + }, + "getArraySerialNumber": { + snippets: ["${1:chassis_list}"], + description: `Get the serial number of the main hardware controller\nIt will be the serial number for the storage system` + }, + "getArrayModel": { + snippets: ["${1:controllers_list}"], + description: `Get the model of the storage processor as\nit will also be the model for the storage system` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:auth_type}, ${3:version}, ${4:storage_device}"], + description: `Function that creates Storage System nodes\n\nCall all the other functions to create and\nupdate the other component for PureStorage\n\nChange History:\n2024-01-15 - Delete the attribute "allocated capacity" as it was never\ncompute in the code for TKU_2024_03_01 (DRDC1-22592)\n2024-04-16 - Added hidden attribute __capability_ids for TKU_2024_07_01\n(DRDC1-23319)\n2024-07-12 - Added the attribute dns_domain\nto storage system / storage device (DRDC1-24057)` + } + }, + "PureStorage_FlashBlade_Rest": { + "getAPIVersion": { + snippets: ["${1:discovery_access}"], + description: `Function that request the URL /api/api_version\nand return the api_version` + }, + "getDecoded": { + snippets: ["${1:discovery_access}, ${2:url}"], + description: `Return a response in JSON format.\nAll body response starts with the json nodes 'items'\n\n{\nitems: [{\n...\n},\n{\n...\n}]\n}` + }, + "hardwareList": { + snippets: ["${1:hardware_decoded}"], + description: `Keine Beschreibung verfügbar.` + }, + "getArraySerialNumber": { + snippets: ["${1:chassis_list}"], + description: `Get the serial number of the main hardware controller\nIt will be the serial number for the storage system` + }, + "getArrayModel": { + snippets: ["${1:controllers_list}"], + description: `Get the model of the storage processor as\nit will also be the model for the storage system` + }, + "getStorageSystemCapacity": { + snippets: ["${1:ss_capacity}, ${2:metrics_record}"], + description: `Extract the storage system capacity metrics from the JSON response` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:storage_device}, ${3:version}, ${4:FB_REMOVAL_GROUP}"], + description: `Function that creates Storage System nodes\n\nCall all the other functions to create and\nupdate the other components for PureStorage\n\nChange History:\n01-15-2024 - Fix typo on attribute total_logical_consumed_capacity\nfor TKU_2024_02_01\n2024-04-16 - Added hidden attribute __capability_ids for TKU_2024_07_01\n(DRDC1-23319)\n2024-07-12 - Added the attribute dns_domain\nto storage system / storage device (DRDC1-24057)` + } + }, + "Pure_Storage": { + "updateStorageConnections": { + snippets: ["${1:discovery_access}, ${2:array_nodes}, ${3:volume_nodes}, ${4:storage_systems_by_volume}"], + description: `Update the storage connectons for the given set of volumes\n\nReturns true if the update succeeds, false otherwise.` + }, + "getPhysicalDisk": { + snippets: ["${1:drive_path}, ${2:realizes}, ${3:physical_disks_lookup}"], + description: `Get associated physical disk for the given drive path` + }, + "updateTotalDiskSpace": { + snippets: ["${1:array_nodes}, ${2:totals}"], + description: `Update total_disk_space for the given arrays` + }, + "computeDiskSize": { + snippets: ["${1:drive_record_path}, ${2:media_presents}, ${3:disk_extents_lookup}"], + description: `Compute disk size in bytes for the given drive_record_path` + }, + "queryPhysicalDisk": { + snippets: ["${1:discovery_access}"], + description: `Query PURESTORAGE_PhysicalDisk and PURESTORAGE_RealizesDisk association so we can relate the PURESTORAGE_DiskDrive to the\nPURESTORAGE_PhysicalDisk to retrieve Disk information: Model, Manufacturer and SerialNumber.\nNone is not returned.` + }, + "queryDiskExtent": { + snippets: ["${1:discovery_access}"], + description: `Query PURESTORAGE_DiskExtent and PURESTORAGE_DiskMediaPresent association\nso we can relate the PURESTORAGE_DiskDrive to the\nPURESTORAGE_DiskExtent to compute disk sizes.\nNone is not returned.` + }, + "queryDiskLocation": { + snippets: ["${1:discovery_access}"], + description: `Query PURESTORAGE_DiskLocation and PURESTORAGE_PhysicalDiskLocation association\nso we can relate the disk location to the physical disk.\nNone is not returned.` + }, + "queryEnclosure": { + snippets: ["${1:discovery_access}"], + description: `Query PURESTORAGE_ExpansionShelfPackage and PURESTORAGE_DiskInExpansionShelf\nso we can relate the physical disk to the enclosure.\nNone is not returned.` + }, + "updateIPAddress": { + snippets: ["${1:discovery_access}, ${2:array_nodes}, ${3:array_records}, ${4:storage_device}"], + description: `update IPAddress node from PURESTORAGE_Array class:\n-ip type (IPv4/IPv6)\n-ip address` + }, + "updateFibreChannelPorts": { + snippets: ["${1:discovery_access}, ${2:array_nodes}, ${3:volume_nodes}"], + description: `Update the Fibre Channel ports for the given set of arrays and relate them to volumes\n\nReturns true if the update succeeds, false otherwise.` + }, + "getNAAID": { + snippets: ["${1:volume_record}"], + description: `Generate the NAA ID for the given logical device` + }, + "getLinkRecords": { + snippets: ["${1:discovery_access}"], + description: `Query the link records (CIM_AllocatedFromStoragePool)` + }, + "processStoragePools": { + snippets: ["${1:discovery_access}, ${2:array_nodes}, ${3:pool_records}, ${4:pool_nodes}"], + description: `Create a storage pool for each pool and link to the\nappropriate array. The supplied pool_nodes table is updated with\nthe created nodes, keyed by instance name.\n\nThe storage pool follow this path: "-> array -> HostedStoragePool -> StoragePool"\n\nChange History\n2021-07-07 Added total_consumed_capacity to StorageSystem node(DRDC1-17141)` + }, + "querySoftwareIdentity": { + snippets: ["${1:discovery_access}"], + description: `Query installed software identity firmware information and build two lookups\nSystem -> InstalledSoftware (InstanceID) and InstanceID -> VersionString\nNone is not returned.` + }, + "queryArrayPackage": { + snippets: ["${1:discovery_access}"], + description: `Query PURESTORAGE_ArrayPackage and PURESTORAGE_ArrayPackaging association so we can relate the PURESTORAGE_Array to the\nPURESTORAGE_ArrayPackage to retrieve storage system information: model, vendor and serial number` + }, + "getInstalledSoftwareIdentityVersion": { + snippets: ["${1:ss_path}, ${2:installed_sw_table}, ${3:sw_identity_table}"], + description: `Get Software version for the passed storage system path` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:parent}"], + description: `Perform a storage scan on the given endpoint.\nThe endpoint is the storage device.\n\n2016-10-11 Fixed DRDC1-7481: Pure Storage optimization : remove WBEM association class PURESTORAGE_ArrayStorageVolume\n2017-08-04 Added encryption information for storage system For TKU_2018_01_01 (DRDC1-9386)\n2020-06-22 Updated the serial number of the storage system for TKU_2020_08_01 (DRDC1-15124)\n2020-07-03 Added scope attribute to StorageSystem node (DRDC1-15299)\n2021-03-16 Update the call to the rest function to update the storage device serial for tku_2021_05_01 (DRDC1-16856)\n2021-07-07 Added total_capacity / total_consumed_capacity / total_available_capacity / total_subscribed_capacity\nto StorageSystem node (DRDC1-17141)\n2021-08-02 Update the scan call to the PureStorage Rest Pattern for TKU_2021_09_01 (DRDC1-17232)\n2021-10-20 Update the storage system name to remove "Pure Storage" in front for TKU_2021_11_01 (DRDC1-17604)\n2023-01-18 Added attributes Status and Status Detail to storage system (DRDC1-19552)\n2023-04-14 Add coexistence with the pure storage flash array pattern for TKU_2023_06_01 (DRDC1-21027)\n2023-11-02 Update the parameter for getAPIVersion() as it changed in the REST pattern for TKU_2023_12_01 (DRDC1-22089)\n2023-12-18 Update the rest api version to be at least 2.4 and\nnot lower using getMaxVersion() from DiscoveryFunctions\nfor TKU_2024_01_01 (DRDC1-22476)\n2024-04-16 Added hidden attribute __capability_ids for TKU_2024_07_01\n(DRDC1-23319)\n2024-07-12 Added the attribute dns_domain\nto storage system / storage device (DRDC1-24057)\n2026-04-09 Updated escape sequence (DRDC1-29309)` + } + }, + "Pure_Storage_Rest": { + "getAPIVersion": { + snippets: ["${1:discovery_access}"], + description: `Function that request the URL /api/api_version and return the api_version\n\nChange History:\n2021-08-02 - Update to get the last 1.x version available in the system for TKU_2021_09_01 (DRDC1-17263)` + }, + "updateSerialNumber": { + snippets: ["${1:discovery_access}, ${2:array_nodes_by_names}, ${3:storage_device}, ${4:disk_drives_by_name}"], + description: `Update the Serial number of the storage system node\n\nChange History:\n2021-03-16 Update the storage device serial number for tku_2021_05_01 (DRDC1-15856)\n2021-08-02 Update the serial number of the disk drives for TKU_2021_09_01 (DRDC1-17232)` + } + }, + "Python.RuntimeEnvironment": { + "getInstallRoot": { + snippets: ["${1:process_cmd}, ${2:sep}"], + description: `Split process.cmd into install_root and python_cmd\n\nChange History:\n2024-05-08 - Add support for Windows network paths` + }, + "packageVersioning": { + snippets: ["${1:host}, ${2:cmd}, ${3:path_version}"], + description: `Keine Beschreibung verfügbar.` + }, + "getEdition": { + snippets: ["${1:host}, ${2:product_version}, ${3:vendor}"], + description: `Get the edition based on identified version and vendor.\n\nAn edition of 'RHEL8' means this version will be supported as long\nas RHEL8 is. Likewise an edition of 'RHEL9'.` + } + }, + "QlikTech.Attunity": { + }, + "Qnap": { + "updatePools": { + snippets: ["${1:device}, ${2:storage_sys}, ${3:pool_nodes}"], + description: `Update the Pools for Storage System none` + }, + "updateDiskDrives": { + snippets: ["${1:device}, ${2:storage_sys}, ${3:hardware_containers}"], + description: `Update the Disk Drives for Storage System none` + } + }, + "Qualys.CloudAgent": { + }, + "Quantum_TapeLibrary": { + }, + "Quest.ActiveRolesManagementShellForActiveDirectory": { + }, + "Quest.ActiveRolesServer": { + }, + "Quest.Foglight": { + }, + "Quest.Journal": { + }, + "Quest.MigrationManagerForExchange": { + }, + "Quest.PerformaSure": { + }, + "Quest.RecoveryManager": { + }, + "Quest.RecoveryManagerAD": { + }, + "Quest.Reporter": { + }, + "Quest.ReportingConsole": { + }, + "Quest.ShareplexforOracle": { + }, + "Quest.Spotlight": { + }, + "Quest.SQLOptimizerForDB2LUW": { + }, + "Quest.SQLOptimizerForOracle": { + }, + "Quest.SQLOptimizerForSQLServer": { + }, + "Quest.SQLOptimizerForSybaseASE": { + }, + "Quest.Toad": { + }, + "Radware.Alteon.LoadBalancer": { + }, + "Radware.AppDirector.LoadBalancer": { + }, + "Rancher.Rancher": { + }, + "Rapidseven.Nexpose": { + }, + "RDBMSFunctions": { + "parseSection": { + snippets: ["${1:candidate_section}"], + description: `This function tries to parse relevant section for oracleOraFileParser\nfunction\n\nInput arguments:\ncandidate_section - section to parse\n\nOutput value:\nsection - parsed section` + }, + "oracleOraFileParser": { + snippets: ["${1:section_name}, ${2:oracle_ora_file_content}"], + description: `The function tries to obtain full section of Net Service name definition\nfrom Oracle listener.ora or tnsnames.ora files\n\nInput arguments:\nsection_name - Net Service name which section is searched\noracle_ora_file_content - tnsnames.ora or listener.ora file content\n\nOutput values:\nsection - extracted section from the file\n\nChange History:\n2017-04-04 - added check for illegal symbols in section_name which could lead to ECA error (Esc 103870)\n2022-08-31 - updated special chars regexes (DRDC1-19701)\n2025-10-27 - updated to handle multiple sections (DRDC1-27759)\n2026-04-06 - updated to use regex.escape() (DRDC1-29309)` + }, + "oracleNetServiceNameSearch": { + snippets: ["${1:host}, ${2:net_service_name}, ${3:tnsnames_file_full_location}"], + description: `Keine Beschreibung verfügbar.` + }, + "dsnRdbmsServers": { + snippets: ["${1:host}, ${2:dsn_name}"], + description: `Function returns related RDBMS SI details by its DSN (Data Source Name) value. For WINDOWS ONLY!\n\nInput arguments:\nhost - Host which initiated the search(Node)\ndsn_name - DSN(string)\nSupported RDBMS SI types:\n* Oracle Database Server\n* Microsoft SQL Server\n* IBM DB2 Database Server\n\nOutput arguments:\ndb_host - either alphanumeric name(for example Host name or Host alias) or\nIP address of the sought-for Server\ndb_type - type of the searched RDBMS Software\ndb_instance - instance attribute of RDBMS SI\nNOTE: Oracle SID should be sent using 'db_name' attribute\nora_service_name - service name of the Oracle RDBMS instance or Oracle pluggable database\ndb_port - listening port\ndb_name - instance name of the related DatabaseDetail\nor Oracle SID\nChange History:\n2019-02-05 - escaped path for discovery.runCommand` + }, + "parseJDBC": { + snippets: ["${1:url}"], + description: `Parses a JDBC URL and extract the details\n\nInput arguments:\nurl - JDBC URL\n\nOutput arguments:\ndb_type - type of the searched RDBMS Software\ndb_host - either alphanumeric name(for example Host name or Host alias) or\nIP address of the sought-for Server\ndb_port - listening port\ndb_name - instance name of the related DatabaseDetail\nor Oracle SID\noracle_tns_alias - net service name of the Oracle RDBMS instance\noracle_service_name - service name of the Oracle RDBMS instance or Oracle pluggable database\n\nChange History:\n2016-11-03 - Updated regexes for oracle dbs\n2020-07-06 - Added MariaDB support (DRDC1-15442)\n2021-04-12 - Make certain regexes case insensitive (DRDC1-16743)\n2023-01-18 - Updated (?i) flag placement in regular expression (DRDC1-20566)\n2026-04-06 - Updated escape sequence (DRDC1-29309)` + } + }, + "Redfish.API": { + }, + "RedHat.AMQ": { + }, + "RedHat.Ansible": { + }, + "RedHat.ApacheStronghold": { + }, + "RedHat.CFME": { + "version_based_check": { + snippets: ["${1:version}"], + description: `Makes CloudFroms component check based on version\nexample: 5.6.3.3 - is CloudFroms installation\nexample: euwe-2 or darga-4.1 - is ManageIQ installation` + } + }, + "RedHat.ClusterSuite": { + }, + "RedHat.DataGrid": { + }, + "RedHat.DirectoryServer": { + }, + "RedHat.GFS": { + }, + "RedHat.Hibernate": { + }, + "RedHat.HornetQ": { + "log_check": { + snippets: ["${1:host}, ${2:folder}, ${3:install_root}"], + description: `log_check performs log filesize check and log extraction\non Windows\n\nChange History:\n2019-02-15 - Updated to use DiscoveryFunctions.escapePath() function` + } + }, + "RedHat.Infinispan": { + }, + "RedHat.JBoss": { + }, + "RedHat.JBossExtendedDiscovery": { + "extractProperty": { + snippets: ["${1:jboss_conf_file_content}, ${2:property_name}"], + description: `Retrieves a JMS resource adapter configuration property from a JBoss config file via XPath` + }, + "processMQ": { + snippets: ["${1:jboss_conf_file_content}, ${2:jboss_si}"], + description: `Function to read WebSphere MQ Series information from JBoss config file and create relationship between JBoss SI and MQ SI\nhttps://docs.redhat.com/en/documentation/red_hat_jboss_enterprise_application_platform/7.4/html/configuring_messaging/resource_adapters#deploy_the_ibm_mq_resource_adapter\n\nParses JBoss configuration to extract IBM WebSphere MQ connection details (host, port, queue manager, channel),\nsearches for matching MQ Queue Managers and channels, and models a communication relationship between\nthe JBoss Software Instance and the identified MQ instance.` + }, + "get_linked_si": { + snippets: ["${1:app_server_si}"], + description: `Checks which SI to link the detail or software component nodes to\n\nTakes: App Server SI\nReturns: JBoss Server Group SI if the Application Server is linked to it\nApplication Server SI otherwise\n\nChange History:\n2016-06-16 - updated linked_sis search (DRDC1-5987);` + }, + "getAppsFromDir": { + snippets: ["${1:host}, ${2:apps_path}, ${3:applications_list}"], + description: `Keine Beschreibung verfügbar.` + }, + "processApplications": { + snippets: ["${1:doc}, ${2:jboss_si}, ${3:xpath_base}, ${4:deploy_base}, ${5:prim_process}, ${6:host}, ${7:sep}"], + description: `Process Applications based on XPath DOM object, base xpath and target JBoss SI given\nChange History:\n2015-11-03 - Added an alternative method of applications_list extraction (QM001887298);\n2017-07-24 - Added code to support JBoss 7+ (DRDC1-9091)\n2018-12-05 - Use listDirectory instead of PRIV_LS (DRDC1-12239)\n2019-04-02 - Updated to handle "relative-to" paths in configuration files (DRDC1-12596)\n2023-05-26 - Now using new getAppsFromDir() function (DRDC1-21372)` + }, + "processJDBCUrl": { + snippets: ["${1:jboss_si}, ${2:jndi}, ${3:jdbc_urls}, ${4:enabled_state}"], + description: `Parse each JDBC Url and create related 'JDBCResource' Details\n\nChange History:\n2025-05-26 - Enhancement for failover mode (DRDC1-25325);` + }, + "processJDBCResources": { + snippets: ["${1:doc}, ${2:jboss_si}, ${3:xpath_base}"], + description: `Process JDBC Resources based on XPath DOM object, base xpath and target JBoss SI given\n\nChange History:\n2014-02-12 - Updated ParsingJ2EE.parseJDBC() function usage,\nadded service_name attribute for Oracle JDBC Details(QM001818485);\ntns_alias is no longer reset to none, the behaviour of the pattern has altered;\n2015-05-15 - Updated the parseJDBC() function module name(TKU-3879);\n2016-06-30 - Updated function names according to CommonFunctions changes\n2016-11-29 - added ability to support multiple jdbc_urls for each jndi (DRDC1-7527)` + }, + "createApplication": { + snippets: ["${1:jboss_si}, ${2:app}"], + description: `Process Applications based on XPath DOM object, base xpath and target JBoss SI given` + }, + "processJDBCResource": { + snippets: ["${1:jboss_si}, ${2:host}, ${3:file_name}"], + description: `Process JDBC Resources based on XPath DOM object, base xpath and target JBoss SI given\n\nChange History:\n2014-02-12 - Updated ParsingJ2EE.parseJDBC() function usage,\nadded service_name attribute for Oracle JDBC Details();\ntns_alias is no longer reset to none, the behaviour of the pattern has altered;\n2015-05-15 - Updated the parseJDBC() function module name(TKU-3879);\n2016-06-30 - Updated function names according to CommonFunctions changes\n2016-11-29 - added ability to support multiple jdbc_urls for each jndi(DRDC1-7527)` + }, + "processMailResource": { + snippets: ["${1:jboss_si}, ${2:host}, ${3:file_name}"], + description: `Process JDBC Resources based on XPath DOM object, base xpath and target JBoss SI given` + } + }, + "RedHat.JBossFuncs": { + "parseClassPath": { + snippets: ["${1:host}, ${2:args}"], + description: `Parses classpath from process.args\nReturns either the classpath block or an empty string` + }, + "parseInstallDir": { + snippets: ["${1:host}, ${2:classpath_block}"], + description: `Parses out install_dir from the classpath\nReturns either the path or an empty string` + }, + "checkXP": { + snippets: ["${1:host}, ${2:base_dir}, ${3:sep}"], + description: `Function to define if version has extended pack` + }, + "pathVersionConversion": { + snippets: ["${1:obtained_version}"], + description: `Converting full_version of format 'abc' into 'a.b.c'` + } + }, + "RedHat.JBossMessaging": { + }, + "RedHat.JBossPortal": { + }, + "RedHat.JBossRules": { + }, + "RedHat.JBossWebServer": { + }, + "RedHat.KVM": { + "get_dump_xml": { + snippets: ["${1:host}, ${2:esc_vm_name}"], + description: `Function runs dumpxml command, provides it's output.` + } + }, + "RedHat.MRG": { + }, + "RedHat.OpenShift": { + "getClusterID": { + snippets: ["${1:host}"], + description: `Takes host.\nExecutes commands:\n"oc get clusterversion -o jsonpath={.items[].spec.clusterID}"- for versions 4.0+\n"oc get ns kube-system -o jsonpath={.metadata.uid}" - for versions <=3.11.\nReturns cluster id value.` + }, + "getNamespaceID": { + snippets: ["${1:host}"], + description: `Run the command\n"oc get ns kube-system -o jsonpath={.metadata.uid}"\non a host and extract the namespace UUID from it.\n\nChange History:\n2022-11-16 - Added embedded Command/File Matrix entry (DRDC1-20100)` + } + }, + "RedHat.OpenShiftAPI": { + }, + "RedHat.OpenShift.Networking": { + }, + "RedHat.RHEV": { + "getRequest": { + snippets: ["${1:target}, ${2:url}"], + description: `Returns an XML which is the response to the REST API request` + } + }, + "RedHat.RKT": { + }, + "RedHat.SSSD": { + }, + "Redis.Redis": { + "activeVersioning": { + snippets: ["${1:bindir_path}, ${2:host}, ${3:process}"], + description: `Active versioning` + }, + "getVersion": { + snippets: ["${1:bindir_path}, ${2:host}, ${3:process}"], + description: `Get version using active/path/package methods` + }, + "parseStatusCommand": { + snippets: ["${1:rladmin_status_all}"], + description: `Parse output of 'rladmin status extra all' and split each block, like\nCLUSTER, CLUSTER NODES, DATABASES, ENDPOINTS, SHARDS\n\nredislabs@hostname:/opt$ rladmin status extra all\nCLUSTER:\nOK. Cluster master: 1 (172.17.0.2)\nCluster health: OK, [0, 0.0, 0.0]\nfailures/minute - avg1 0.00, avg15 0.00, avg60 0.00.\n\nCLUSTER NODES:\nNODE:ID ROLE ADDRESS EXTERNAL_ADDRESS HOSTNAME MASTERS SLAVES OVERBOOKING_DEPTH SHARDS CORES FREE_RAM PROVISIONAL_RAM VERSION SHA RACK-ID STATUS\n*node:1 master 172.17.0.2 hostname 3 0 947.38MB 3/100 6 2.16GB/5.8GB 947.38MB/4.76GB 6.2.8-64 591d9c - OK\n\nDATABASES:\nDB:ID NAME TYPE STATUS SHARDS PLACEMENT REPLICATION PERSISTENCE ENDPOINT EXEC_STATE EXEC_STATE_MACHINE BACKUP_PROGRESS MISSING_BACKUP_TIME REDIS_VERSION\ndb:1 redisdb1 redis active 2 dense disabled disabled redis-12036.cluster.local:12036/redis-12036.internal.cluster.local:12036 N/A N/A N/A N/A 6.0.13\ndb:2 redisdb2 redis active 1 dense disabled disabled redis-14369.cluster.local:14369/redis-14369.internal.cluster.local:14369 N/A N/A N/A N/A 6.0.13\n\nENDPOINTS:\nDB:ID NAME ID NODE ROLE SSL WATCHDOG_STATUS\ndb:1 redisdb1 endpoint:1:1 node:1 single No OK\ndb:2 redisdb2 endpoint:2:1 node:1 single No OK\n\nSHARDS:\nDB:ID NAME ID NODE ROLE SLOTS USED_MEMORY BACKUP_PROGRESS RAM_FRAG WATCHDOG_STATUS STATUS\ndb:1 redisdb1 redis:1 node:1 master 0-8191 1.96MB N/A 13.95MB OK OK\ndb:1 redisdb1 redis:2 node:1 master 8192-16383 1.96MB N/A 14.33MB OK OK\ndb:2 redisdb2 redis:3 node:1 master 0-16383 2.04MB N/A 17.83MB OK OK\n` + }, + "getNodesInfo": { + snippets: ["${1:status}"], + description: `Extract nodes related information from its block, example:\nCLUSTER NODES:\nNODE:ID ROLE ADDRESS EXTERNAL_ADDRESS HOSTNAME SHARDS CORES FREE_RAM PROVISIONAL_RAM VERSION STATUS\n*node:1 master 10.1.0.101 ol85n1 0/100 1 1.57GB/3.83GB 896.76MB/3.14GB 6.2.8-50 OK\nnode:2 slave 10.1.0.102 ol85n2 2/100 1 2.07GB/3.83GB 1.18GB/3.14GB 6.2.8-50 OK\nnode:3 slave 10.1.0.103 ol85n3 2/100 1 2.07GB/3.83GB 1.18GB/3.14GB 6.2.8-50 OK` + }, + "getDBsInfo": { + snippets: ["${1:status}"], + description: `Extract databases related information from its block, example:\nDATABASES:\nDB:ID NAME TYPE STATUS SHARDS PLACEMENT REPLICATION PERSISTENCE ENDPOINT\ndb:2 testdb1 redis active 1 dense disabled disabled redis-11257.cluster-fqdn-name.com:11257\ndb:3 testdb2 redis active 1 dense disabled disabled redis-10598.cluster-fqdn-name.com:10598\ndb:5 test-db-4 redis active 1 dense disabled disabled redis-18636.cluster-fqdn-name.com:18636\ndb:6 memcached-db memcached active 1 dense disabled disabled memcached-16191.cluster-fqdn-name.com:16191` + }, + "modelDBs": { + snippets: ["${1:dbs}, ${2:cluster_node}"], + description: `Model DB details` + }, + "getBinDir": { + snippets: ["${1:process}, ${2:host}"], + description: `Get bin dir\n\nChange History:\n2024-05-13 - Updated to handle error output (DRDC1-23509)\n2024-09-09 - Updated to use DiscoveryFunctions.getExeCwdPath()\nfor finding bin directory (DRDC1-24465)` + }, + "getConfigContent": { + snippets: ["${1:host}, ${2:config_file_path}"], + description: `Get content of redis config file` + }, + "getShardInfo": { + snippets: ["${1:status}, ${2:current_shard_id}"], + description: `Extract shards related information from its block, example:\nSHARDS:\nDB:ID NAME ID NODE ROLE SLOTS USED_MEMORY BACKUP_PROGRESS RAM_FRAG WATCHDOG_STATUS STATUS\ndb:1 redisdb1 redis:1 node:1 master 0-8191 1.96MB N/A 13.95MB OK OK\ndb:1 redisdb1 redis:2 node:1 master 8192-16383 1.96MB N/A 14.33MB OK OK\ndb:2 redisdb2 redis:3 node:1 master 0-16383 2.04MB N/A 17.83MB OK OK` + } + }, + "Redline.InRushTickerPlant": { + }, + "Redline.OrderExecutionGateway": { + }, + "Revitas.CARS": { + }, + "Ricoh.StreamlineNX": { + }, + "RIM.BlackBerryEnterprise": { + }, + "Rocket.DataIntelligence": { + }, + "RSA.Archer": { + "getRole": { + snippets: ["${1:process}"], + description: `Find role based on services running on the system` + }, + "versioning": { + snippets: ["${1:host}"], + description: `Get version information from registry and package\n\nTakes : Host node\nReturns : Full version\n\nChange History:\n2023-06-22 - Updated (?i) flag placement in regular expression (DRDC1-21502)\n2024-09-04 - Re-prioritised versioning (DRDC1-24471)\npackage versioning updated (DRDC1-24444)` + } + }, + "Rubrik": { + "ipToLong": { + snippets: ["${1:ip_addr}"], + description: `Converts an IPv4 address string to a long integer` + }, + "inIPRange": { + snippets: ["${1:ip_addr}, ${2:range}"], + description: `Check if an IP address falls within a specified range` + } + }, + "Rubrik.Backup": { + }, + "RunC.RunC": { + }, + "Rundeck.Rundeck": { + }, + "Sadas.Engine": { + }, + "SafeNet.SentinelLM": { + }, + "Sage.FixedAssets": { + }, + "Sailpoint.IdentityIQ": { + }, + "SaltStack.Salt": { + }, + "SANSwitch_FCPorts": { + "findEdgePort": { + snippets: ["${1:wwpn}"], + description: `Return a FibreChannelPort node for the given WWPN.\n\nReturns none if the node cannot be found. If multiple\nnodes are found, the "first" one is returned.` + }, + "updateEdgeConnection": { + snippets: ["${1:device}, ${2:port}, ${3:login_entry}, ${4:vsan_entry}"], + description: `update the connection between the switch port (FC Port) <--> storage system (FC Port)\nand between the switch port <--> host (FC HBA)` + }, + "updateChassisSerial": { + snippets: ["${1:device}"], + description: `Display the chassis serial information only for\nbackbone SAN switches.` + }, + "updateDeviceModel": { + snippets: ["${1:device}"], + description: `Update the device model with more appropriate value\n\nChange History:\n\n2025-07-24 - Update the model only if it differs from\nthe device name (DRDC1-27004)\n` + }, + "updateSupportedClasses": { + snippets: ["${1:port}, ${2:value}, ${3:lookup}"], + description: `\nConvert the given MIB value into a list of supported classes and update\n\nthe port\n` + } + }, + "SAP.BusinessExplorerBI": { + }, + "SAP.BusinessObjects.DataIntegrator": { + }, + "SAP.HANA": { + }, + "SAP.HANA_Extended": { + }, + "SAP.HANA_XSE": { + }, + "SAP.MaxDB": { + "wmi_query_versioning": { + snippets: ["${1:host}, ${2:cmd}, ${3:wmi_ns}"], + description: `Keine Beschreibung verfügbar.` + }, + "file_versioning": { + snippets: ["${1:host}, ${2:component}, ${3:base_root}"], + description: `Keine Beschreibung verfügbar.` + } + }, + "SAP.NetWeaverEnterprisePortal": { + }, + "SAP.NetWeaverProcessIntegration": { + }, + "SAP.NetWeaverProcessOrchestration": { + }, + "SAP.SAPR3": { + "extract_values_from_args": { + snippets: ["${1:process_args}, ${2:si_type}"], + description: `extract_values_from_args extracts values from the arguments of the trigger process\n\nChange History:\n2018-02-05 - General code tidy` + }, + "read_profile_file": { + snippets: ["${1:process}, ${2:profile_filepath}, ${3:profile_dir}, ${4:default_profile_name}"], + description: `read_profile_file reads the profile file\nChange History:\n2014-04-03 - The correct filepath of the profile file from which message server host is extracted is now returned (Esc 054673)` + }, + "package_versioning": { + snippets: ["${1:host}, ${2:system_name}"], + description: `Gets version from package\n\nTakes : host\nsystem_name (optional)\nReturns : full_version` + }, + "process_manifest_file": { + snippets: ["${1:manifest_file_content}, ${2:specific_patch_string}"], + description: `Process manifest file for file versioning` + }, + "unix_file_versioning": { + snippets: ["${1:host}, ${2:install_root}, ${3:specific_patch_string}"], + description: `unix_file_versioning obtains version information from a file on the UNIX platform\n\nChange History:\n2022-03-17 - Updated to query /exe paths (DRDC1-18625)` + }, + "unix_active_versioning": { + snippets: ["${1:host}, ${2:install_root}"], + description: `unix_active_versioning returns version and patch information by executing a command on the UNIX platform\n\nChange History:\n2015-11-13 - Fixed unprotected uses of export in runCommand (DRDC1-4926)\n2019-02-08 - Updated function to use Future.runCommand()\n` + }, + "set_component_version": { + snippets: ["${1:full_version}, ${2:component_sis}"], + description: `Keine Beschreibung verfügbar.` + }, + "set_si_name": { + snippets: ["${1:si_type}, ${2:short_si_type}, ${3:product_version}, ${4:instance_name}, ${5:instance_number}, ${6:server_role}, ${7:system_name}, ${8:host}"], + description: `Keine Beschreibung verfügbar.` + }, + "get_product_version": { + snippets: ["${1:full_version}"], + description: `Keine Beschreibung verfügbar.` + }, + "link_si_to_central_services": { + snippets: ["${1:si}, ${2:instance_name}, ${3:system_name}, ${4:message_server_host}"], + description: `Create containment relationship to Central Services SI\n\nChange History:\n2016-05-19 - Create containment relationship, not peer to peer relationship (DRDC1-5403)\n2017-09-08 - Change setContainment to addContainment for TKU_2017_09_01 (DRDC1-9783)` + } + }, + "SAP.TREX": { + "active_versioning": { + snippets: ["${1:host}, ${2:process}, ${3:instance_number}, ${4:root_dir}"], + description: `Get version from a command\n\nFor modern versions we run the sapcontrol command. This produces a comma\nseparated list of fields for the pattern to parse\n\nIf this fails we run command "TREX version". This works for some legacy\nversions\n\nTakes : host,\nprocess,\ninstance_number (optional, uses 00 if no value given)\nReturns : full_version, revision, patch, build\n\nChange History:\n2018-01-10 - Add modern versions of active versioning\n2018-02-05 - Should use default instance number if none is passed in\n2019-02-11 - Updated function to use Future.runCommand` + } + }, + "SAS.FoundationServices": { + }, + "SAS.Server": { + }, + "scality_ring_storage": { + "getNextQuery": { + snippets: ["${1:response}"], + description: `Check for the next value in the _links json node\nIf not, return none else return the next value\n` + }, + "getCapacities": { + snippets: ["${1:ssg_node}"], + description: `Get the size, used and free metrics\n` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:parent}, ${3:scope}, ${4:rgroup}"], + description: `Perform a storage scan on the given endpoint\n` + } + }, + "Scality.Supervisor": { + }, + "ScapaTechnologies.ScapaTPP": { + }, + "ScheduledTasksInfo.TaskScheduler": { + "mailToList": { + snippets: ["${1:email_line}"], + description: `Parses MAILTO line which contains email, or several emails\nChecks if there are more then one email, separated by comma\nExamples:\nMAILTO=user1@domain --> ['user1@domain']\nMAILTO = 'user1@domain, user2@domain' --> ['user1@domain', 'user2@domain']\nMAILTO="user1@domain,user2@domain" --> ['user1@domain', 'user2@domain']\nReturns email list or void.` + } + }, + "SchneiderElectric.OASySDynamicNetworkofApplications": { + }, + "Scribe.Insight": { + }, + "Scylla.Scylla": { + "ParsePropFile": { + snippets: ["${1:host}, ${2:process}"], + description: `Find properties file and parse it\n\nTakes: Host node\nTrigger process node\nReturns: A table. Key is the attributes from the properties file\n\nChange History:\n2025-12-16 - Check attributes have correct type (DRDC1-28246)` + } + }, + "SearchFunctions": { + "findContainerImages": { + snippets: ["${1:digest}, ${2:digest_extended}"], + description: `Takes clean digest and extended digest values.\nSearches for already created Container Image node.\nReturns ContainerImage key and ContainerImage id\n` + }, + "_validateHostAddressFormat": { + snippets: ["${1:rel_host_address}"], + description: `Keine Beschreibung verfügbar.` + }, + "_isIPAddress": { + snippets: ["${1:rel_host_address}"], + description: `Returns\nTrue - if rel_host_address is in IPv4/6 formats\nFalse - if rel_host_address is a named address (domain, hostname)` + }, + "findNetworkDeviceByIP": { + snippets: ["${1:source}, ${2:ip_addr}"], + description: `Find a list of NetworkDevice nodes by IP address\nwithin a scope of source node` + }, + "findHostByIP": { + snippets: ["${1:source}, ${2:ip_addr}"], + description: `Find a list of Host nodes by IP address\nwithin a scope of source node\n\nChange History:\n2022-09-07 - Better handling of situations where we have no source\nattribute (DRDC1-19776)` + }, + "findHostByIPs": { + snippets: ["${1:source}, ${2:ip_addrs}"], + description: `Find a list of Host nodes by list of IP addresses\nwithin a scope of source node\n\nChange History:\n2020-10-27 - Replaced searches with efficient versions.\n2020-11-19 - Fixed performance regressions (DRDC1-16124)` + }, + "findLoadBalancerMemberByIP": { + snippets: ["${1:source}, ${2:ip_addrs}"], + description: `Find a list of LoadBalancerMember nodes by IP address\nwithin a scope of source node\n\nChange History:\n2020-11-19 - Fixed performance regressions (DRDC1-16124)` + }, + "findLoadBalancerServiceByIP": { + snippets: ["${1:source}, ${2:ip_addr}"], + description: `Find a list of LoadBalancerService nodes by IP address\nwithin a scope of source node\n\nChange History:\n2020-11-19 - Fixed performance regressions (DRDC1-16124)` + }, + "findLoadBalancerServiceByIPs": { + snippets: ["${1:source}, ${2:ip_addrs}"], + description: `Find a list of LoadBalancerServices nodes by list of IP addresses\nwithin a scope of source node\n\nChange History:\n2020-11-19 - Fixed performance regressions (DRDC1-16124)` + }, + "getNodeIp": { + snippets: ["${1:host}, ${2:rel_host_address_domain}"], + description: `Function resolves domain to IP address using "nslookup" command\n\nChange History:\n2017-01-24 - Added host name format validation(esc 101108)\n2018-01-02 - Added _isIPAddress() and code refactoring\n2020-05-15 - Added one more method to resolve IP - getent (DRDC1-15187)\n2021-02-12 - Updated to always resolve 'localhost' to '127.0.0.1'\n2025-10-27 - Added command output validation (DRDC1-27774)` + }, + "isLocalNode": { + snippets: ["${1:host}, ${2:node_address}"], + description: `Check if node_address actually belongs to local Host node\n\nChange History:\n2021-05-16 - Updated to consider whole 127.0.0.0/8 block as loopback (DRDC1-16912)\n2023-01-18 - Updated (?i) flag placement in regular expression (DRDC1-20566)` + }, + "findHostNodeByName": { + snippets: ["${1:host}, ${2:node_address}, ${3:hosts_scope}"], + description: `Find host using named node_address (hostname/domain) by checking Host attributes:\n- name\n- local_fqdn\n- __all_dns_names\n\nChange history:\n2020-07-14 - Updated search to consider scope (DRDC1-15300)\n2020-10-27 - Replaced inefficient searches with efficient versions (DRDC1-16021)\n2026-04-06 - Updated to use regex.escape() (DRDC1-29309)` + }, + "findHostNodeByIP": { + snippets: ["${1:host}, ${2:node_address}, ${3:hosts_scope}"], + description: `Find host using IP node_address (hostname/domain) by checking Host attributes:\n- __all_ip_addrs\n- virtual\n\nChange History:\n2020-07-13 - Updated to use findHostByIP() function (DRDC1-15362);\n2024-06-27 - Updated the return to prevent ECA error (DRDC1-23842)` + }, + "getHostingNodes": { + snippets: ["${1:host}, ${2:node_address}, ${3:balancer_port}"], + description: `Function that searches for the related Server Nodes.\nReturns found Nodes and their type.\n\nInput arguments:\nhost - Host Node which initiated the search\nnode_address - either alphanumeric name(for example Host name or Host alias)\nor IP address of the sought-for Server\nbalancer_port - LoadBalancerService port(for v10.1+ only)\n\nOutput arguments:\nhosting_nodes - either Host or ClusterService or LoadBalancerService Nodes\nfound by the provided node_address(Node set)\nnodes_type - either 'Host' or 'LoadBalancerService' or 'ClusterService'(str)\n\nChange History:\n2017-02-28 - now VM Host is returned instead of Host Container if two Hosts contain the same IP address(DRDC1-8229)\n2017-12-28 - added Host search using named address (DRDC1-8229)\n2020-07-13 - updated to use findLoadBalancerServiceByIP() function (DRDC1-15362)\n2022-08-30 - Check function was passed populated attributes (DRDC1-19641)\n\n///////////////////////////////////////////////////////////////////////////\nNOTE: Please update relatedSisSearchOnMultipleHosts() function as well\nif any changes are implemented for the current one.\n///////////////////////////////////////////////////////////////////////////` + }, + "_performAppSrvsSearch": { + snippets: ["${1:si_nodes}, ${2:port}, ${3:instance}, ${4:listen_tcp_socket}"], + description: `Searches for the related Application Server SoftwareComponent.\nFirst it narrows the search using provided port value of the SI.\nIf the provided SI is a member of the SoftwareCluster the function proceeds the search within this Node\nas well as within the SoftwareInstance.\nThen searches for the SoftwareComponent itself by 'port', 'listen_tcp_socket' or 'instance' attribute.\nReturns either SoftwareComponent or its parent SI if the search for SoftwareComponent failed.\n\nInput arguments:\nsi_nodes - Node set of the Application Server SIs provided by the wrapper function\nport - port of the Application Server SI\ninstance - instance attribute of the searched SoftwareComponent\nlisten_tcp_socket - listening TCP socket of the searched SoftwareComponent\n(should be in a format ':')\n\nOutput arguments:\napp_srv_software - SoftwareComponent or SoftwareInstances(Node set)` + }, + "getSI": { + snippets: ["${1:related_node}, ${2:si_types_raw}"], + description: `The function returns SoftwareInstance Node.\nIt takes the Node of one of four types:\nSoftwareInstance, DatabaseDetail, SoftwareComponent or LoadBalancerService.\nReturns the SI Node: the one which it was provided with\nor the one running behind the provided LoadBalancerService Node\nor DatabaseDetail or SoftwareComponent.\n\nInput arguments:\nrelated_node - SoftwareInstance or LoadBalancerService or SoftwareComponent or DatabaseDetail(Node)\nsi_types_raw - either expected SoftwareInstance type(s) which are searched\nor one of pre-defined Software groups name:\n'rdbms_server_types', 'application_server_types'(list)\nExamples: ['rdbms_server_types'], ['application_server_types'],\n['BMC CONTROL-M/Server', 'IBM Document Manager']\n\nOutput values:\nrelated_si - SoftwareInstance(Node)` + }, + "relatedSisSearchOnMultipleHosts": { + snippets: ["${1:host}, ${2:rel_host_addresses}, ${3:rel_si_type}"], + description: `Searches for SIs with specific type on multiple hosts.\nReturns found SI Nodes\n\nInput arguments:\nhost - Host Node which initiated the search\nrel_host_addresses - list of either alphanumeric names (for example Host names or Host aliases)\nor IP addresses of the Servers where sought-for SIs are located\nrel_si_type - type of the SI the function searches for\n\nOutput values:\nrelated_sis - SI Node set\n\nChange History:\n2017-02-28 - now VM Host is returned instead of Host Container if two Hosts contain the same IP address(DRDC1-8229)\n2017-12-28 - added Host search using named address, removed domain resolution (DRDC1-8229)\n2020-07-14 - Updated search to consider scope (DRDC1-15300)\n2020-11-02 - More efficient searches (DRDC1-16027)\n` + }, + "identifyHostWithUuid": { + snippets: ["${1:uuid}, ${2:source_host}"], + description: `Function returns host with searched UUID.\nsource_host is the Host the caller is searching in the context of.\n\nChange History:\n\n2018-09-28 Updated approach to search for hosts by uuid:\nwithout distinction by OS class (Unix/Windows) (DRDC1-11970);\n2020-07-13 Updated search to consider scope (DRDC1-15362)\n2024-12-06 Added optional search for API hosts (DRDC1-25181)\n` + }, + "findProcessesWhichMatch": { + snippets: ["${1:cmd}, ${2:args}, ${3:container_id}"], + description: `Find processes by checking Process attributes:\n- cmd\n- args\n- container_id\n\nReturn list of matched processes` + } + }, + "SearchK8sFunctions": { + "findK8sClustersLog": { + snippets: ["${1:clusters}, ${2:msg}"], + description: `Log names of found clusters` + }, + "findK8sClustersByUrl": { + snippets: ["${1:cluster_url}, ${2:subtype}, ${3:ignore_keys}"], + description: `Find K8s Cluster by cluster_url.\n\nIt is possible to have the same cluster_url in different clusters, so\nuse subtype to narrow down results to one provider` + } + }, + "Security.Management.ESM": { + "pattern_body": { + snippets: ["${1:process}, ${2:type}, ${3:short_si_type}"], + description: `Current function does package and path versioning and creates the Symantec ESM SI, depending on type\n\nChange History\n2017-10-26 - Added additional package regex for agent (Esc 112400)\n2023-06-15 - Added additional package regex for agent, product version updated (DRDC1-21346)` + } + }, + "SEH.UTNManager": { + "getFirmwareVersion": { + snippets: ["${1:host}, ${2:install_root}"], + description: `Function to get firmware versioning information` + }, + "packageVersioning": { + snippets: ["${1:host}"], + description: `Package Versioning\n\nChange History:\n2023-07-24 - Package versioning updated (DRDC1-21505)` + } + }, + "Sensu.Sensu": { + "package_versioning": { + snippets: ["${1:host}"], + description: `Checks for the packages and extracts full_version` + }, + "set_attributes": { + snippets: ["${1:host}, ${2:si_type}, ${3:full_version}"], + description: `Extracts product version from full_version and assigns name and short name attributes` + } + }, + "SentinelOneAgent": { + }, + "Skybox.View": { + }, + "SnapLogic.SnapLogic": { + }, + "Snort": { + }, + "SoftwareAG.DeveloperPortal": { + }, + "SoftwareAG.EventReplicatorTargetAdapter": { + }, + "SoftwareAG.IntegrationServer": { + }, + "SoftwareAG.MywebMethodsServer": { + "getwbpath": { + snippets: ["${1:argument}, ${2:server_name}"], + description: `Used for constructing partial path to the config directory` + }, + "getListeningPorts": { + snippets: ["${1:listening_ports}, ${2:port}"], + description: `Used for populating listening ports` + } + }, + "SoftwareAG.PlatformManager": { + }, + "SoftwareAG.webMethodsBroker": { + }, + "SoftwareAG.webMethods.OptimizeforInfrastructure": { + }, + "SoftwareHouse.CCURE9000": { + "package_versioning": { + snippets: ["${1:host}, ${2:package_regexes}"], + description: `package_versioning performs package versioning.` + } + }, + "software_instance_model.BII4Patrol": { + }, + "software_instance_model.BII4Patrol_NSA": { + }, + "software_instance_model.BMC_Perfomance_Manager_Central_Operator": { + }, + "software_instance_model.CheckpointClient": { + }, + "software_instance_model.Cortex_XDR_Agent": { + }, + "software_instance_model.Deployment_Server": { + }, + "software_instance_model.Docker_Proxy": { + }, + "software_instance_model.EFT_Server": { + }, + "software_instance_model.Elastic_Filebeat": { + }, + "software_instance_model.filebeat": { + }, + "software_instance_model.GSX_Monitor": { + }, + "software_instance_model.GSX_Monitor_for_Domino": { + }, + "software_instance_model.GSX_Scan_Engine": { + }, + "software_instance_model.GSX_Web_Snmp": { + }, + "software_instance_model.Helic_bereinigungs_Skript": { + }, + "software_instance_model.Helic_Cockpit_History_Server": { + }, + "software_instance_model.Helic_OCR_Dienst": { + }, + "software_instance_model.Helic_OCR_Dienst_Starter": { + }, + "software_instance_model.Helic_Postverteilung": { + }, + "software_instance_model.Helic_RecoUserHistoryService": { + }, + "software_instance_model.Helic_Servicebus_Wrapper___AU": { + }, + "software_instance_model.Helic_Servicebus_Wrapper___csv": { + }, + "software_instance_model.Helic_Servicebus_Wrapper___dta": { + }, + "software_instance_model.Helic_Servicebus_Wrapper___finanzlisten": { + }, + "software_instance_model.Helic_Servicebus_Wrapper___om": { + }, + "software_instance_model.Helic_Servicebus_Wrapper___scan": { + }, + "software_instance_model.Helic_Servicebus_Wrapper___upload": { + }, + "software_instance_model.Helic_Servicebus_Wrapper____archfromela": { + }, + "software_instance_model.Helic_Servicebus_Wrapper____au_archiv": { + }, + "software_instance_model.Helic_Servicebus_Wrapper____rl": { + }, + "software_instance_model.Helic_Servicebus_Wrapper____scanextern": { + }, + "software_instance_model.Kolumbus_WebService2": { + }, + "software_instance_model.Lightweight_Directory_Access_Protocol": { + }, + "software_instance_model.PatrolAgent_WE101SM0712": { + }, + "software_instance_model.PatrolAgent_WE101SM0755": { + }, + "software_instance_model.PatrolAgent_WE101SM315": { + }, + "software_instance_model.puppet": { + }, + "software_instance_model.qt4risk_ATAQ_Anwendung": { + }, + "software_instance_model.Report_Builder": { + }, + "software_instance_model.windows_filebeat": { + }, + "software_instance_model.winlogbeat": { + }, + "Solaris_Storage": { + "getKeyData": { + snippets: ["${1:lookup_table}, ${2:primaryKey}, ${3:secondaryKey}"], + description: `Returns specific data from a table based on a key` + }, + "createLocalDisk": { + snippets: ["${1:host}, ${2:disk_label}, ${3:disk_stat}, ${4:LOCAL_DRIVES}"], + description: `Creates LOCAL Disk node\n\nChange History:\n2016-05-06 - function updated (DRDC1-5777);\n2020-09-16 - updated to support LDOM and Virtualbox virtual drives (DRDC1-14028);` + }, + "getFormattedDiskInformation": { + snippets: ["${1:host}, ${2:cmd_locations}"], + description: `Gets basic disk information using 'iostat'-based shell script command.\n\nShell script output:\nc0t2d0;Soft;Errors:;0;Hard;Errors:;0;Transport;Errors:;0;Vendor:;LSILOGIC;Product:;Logical;Volume;Revision:;3000;Serial;No:;Size:;73.27GB;<73273646592;bytes>$\nc1t0d0;Soft;Errors:;0;Hard;Errors:;0;Transport;Errors:;1;Vendor:;MATSHITA;Product:;CD-RW;CW-8124;Revision:;DZ13;Serial;No:;Size:;0.00GB;<0;bytes>$\nc3t500000E0126F9230d0;Soft;Errors:;0;Hard;Errors:;0;Transport;Errors:;0;Vendor:;FUJITSU;Product:;MAY2073RCSUN72G;Revision:;0401;Serial;No:;0630S04AEF;Size:;73.41GB;<73407865856;bytes>$\nc3t500000E0126F9F00d0;Soft;Errors:;0;Hard;Errors:;0;Transport;Errors:;0;Vendor:;FUJITSU;Product:;MAY2073RCSUN72G;Revision:;0401;Serial;No:;0630S04AK8;Size:;73.41GB;<73407865856;bytes>$\nc4t50000974C0118158d0;Soft;Errors:;0;Hard;Errors:;9;Transport;Errors:;0;Vendor:;EMC;Product:;SYMMETRIX;Revision:;5874;Serial;No:;Size:;0.00GB;<2949120;bytes>$\n\nOutput formatted as:\nformatted_disk_information[disk_label] ['Vendor'] := 'FUJITSU';\nformatted_disk_information[disk_label] ['Serial'] := '0630S04AEF';\nformatted_disk_information[disk_label] ['Size'] := '73407865856';\n\nChange History:\n2016-01-19 - function updated (DRDC1-5402)\n2016-05-06 - function updated (DRDC1-5777)\n2019-03-08 - use Future.runCommand\n2020-09-16 - function updated to support different iostat outputs (DRDC1-14028)` + }, + "hardwareRaidInformation": { + snippets: ["${1:host}, ${2:cmd_locations}"], + description: `Get the Hardware Raid information.\n\nChange History:\n2016-01-19 - function updated (DRDC1-5402)\n2016-05-06 - function updated (DRDC1-5777)\n2017-01-17 - added PRIV_RUNCMD for 'raidctl' command (DRDC1-6368, DRDC1-6665, DRDC1-6554);\n2019-01-31 - changed hard-coded raidctl path to the dynamically obtained one (DRDC1-12556);\n2018-03-08 - use new Future.runCommand` + }, + "analyzeDiskInformation": { + snippets: ["${1:host}, ${2:cmd_locations}, ${3:hardware_path_to_volume_table}, ${4:LOCAL_DRIVES}"], + description: `Get Disk info\nThis function is mandatory, in order to do a FS -> "local" disk drive -> FC SAN LUN\n\nChange History:\n2016-01-19 - function updated (DRDC1-5402)\n2016-05-06 - function updated (DRDC1-5777)\n2017-01-17 - command updated command to support different shells,\nnon-privileged execution removed (DRDC1-6368, DRDC1-6665, DRDC1-6554);\n2020-09-16 - updated to better handle LUN labels;` + }, + "createStorageVolumes": { + snippets: ["${1:host}, ${2:cmd_locations}, ${3:STORAGE_PROVIDERS}"], + description: `Creates the LUNs that belong to this Host\n\nChange History:\n2016-01-19 - function updated (DRDC1-5402);\n2019-03-08 - use new Future.runCommand\n2022-01-10 - Added 'StorageUse' relationship between Host\nand StorageSystem/StorageSystemGroup (DRDC1-17924);\n2026-01-22 - Updated to use common findVolume() function when\nsearching for Storage Volumes by NAA ID (DRDC1-28313);` + }, + "metaDeviceParentChildrenRelationship": { + snippets: ["${1:metadevice_name}, ${2:sub_meta_device}, ${3:metadevice_table}, ${4:meta_device_without_disk_table}"], + description: `Updates parent child relationship.\nThe functions is called from inside the updateMetaDeviceDependencyTable() function` + }, + "updateMetaDeviceDependencyTable": { + snippets: ["${1:metadevice_table}, ${2:meta_device_list}, ${3:did_devices_table}"], + description: `Function called from inside the metaDeviceToDiskDependency() function\nUpdates a table that will holds the relationship between a meta device and a disk label.\n\nParameters:\nmetadevice_table - table that holds the relationship between a meta device and a disk label(s), e.g.\nmetadevice_table[d50] := ['c8t1d0', 'c8t2d0', 'c8t3d0'];\nmeta_device_list - lines from the 'metastat -ca' output, with and without physical devices,\nsee examples below and the example of the 'metastat -ca' in the metaDeviceToDiskDependency;\ndid_devices_table - mapping between DID device name and the list of device label(s), e.g.\ndid_devices_table[d5] := [c0t60000970000295700586533031383846d0,];\n\nReturns:\nmeta_device_without_disk_table - mapping table with mappings between metadevice and its sub-metadevices\n\nExample of the meta_device_list:\nInput type 1 (physical devices only):\n\nd11 s 3.0GB c2t0d0s0\nd12 s 3.0GB c2t1d0s0\nd40 s 2.0GB c2t2d0s1 c2t3d0s1\nd21 s 1.0GB c2t0d0s3\nd22 s 1.0GB c2t1d0s3\nd30 s 2.0GB c2t2d0s0 c2t3d0s0\ntest_diskset/d111 s 3.0GB c2t4d0s0\ntest_diskset/d112 s 3.0GB c2t5d0s0\n\nand with DID devices (d232s, d238):\n\nbmadbi01/d1063 s 10GB d232s0\nbmadbi01/d1064 s 10GB d238s0\nInput type 2 (mapping md disk to other md devices):\n\nd103 p 500MB d10\nd102 p 500MB d10\nd101 p 500MB d10\nd10 m 3.0GB d11 d12\nd400 p 1.0GB d40\nd20 m 1.0GB d21 d22\n\ntest_diskset/d100 m 3.0GB test_diskset/d111 test_diskset/d112\nbmadbi01/d6 m 10GB bmadbi01/d1063 bmadbi01/d1064\n\nChange History:\n2016-01-19 - function updated (DRDC1-5402)\n2017-01-17 - function updated to support new 'metastat' command\nin metaDeviceToDiskDependency() function (DRDC1-6368, DRDC1-6665, DRDC1-6554);` + }, + "updateOrphanMetaDevice": { + snippets: ["${1:metadevice_table}, ${2:meta_device_without_disk_table}"], + description: `Function called from inside the updateMetaDeviceDependencyTable() function\n\nUpdates metadevice to disk information for metadevice that depends on other metadevice.\n\nParameters:\nmetadevice_table - table that holds the relationship between a meta device and a disk label(s), e.g.\nmetadevice_table[d50] := ['c8t1d0', 'c8t2d0', 'c8t3d0'];\nmeta_device_without_disk_table - mapping table with mappings between metadevice and its sub-metadevices\n\nReturns:\nnew_device_without_disk_table - mapping table for metadevices;` + }, + "getDIDdevices": { + snippets: ["${1:host}, ${2:cmd_locations}"], + description: `Function called from inside the metaDeviceToDiskDependency() function\nUsed to get mapping between DID device name and real devices it represents\n\nReturns:\ndid_devices_table - mapping table DID device name <-> real device it represents;\n\nExample:\ndid_devices_table[d50] := c0t60000970000295700586533031383846d0\n\nChange History:\n2019-03-08 - Use new Future.runCommand` + }, + "metaDeviceToDiskDependency": { + snippets: ["${1:host}, ${2:cmd_locations}"], + description: `Get mappings between the metadevice and the list of real device(s) it represents.\nFunction runs shell script with the 'metastat -ca' command and then process the output.\nThe following functions might be called during the processing:\n- getDIDdevices();\n- updateMetaDeviceDependencyTable();\n- updateOrphanMetaDevice();\nFunction might return empty table in the case of the failure in getting/processing information\n\nExample:\nmetadevice_table[d50] := ['c8t1d0', 'c8t2d0', 'c8t3d0'];\n\nChange History:\n2016-01-19 - function updated (DRDC1-5402)\n2017-01-17 - function updated in order to use 'metastat -ca' command (DRDC1-6368, DRDC1-6665, DRDC1-6554);\n2019-03-08 - use new Future.runCommand` + }, + "zPoolDependencyTable": { + snippets: ["${1:host}, ${2:cmd_locations}"], + description: `Get mappings between the ZFS pool and the list of real device(s) it represents.\nFunction runs shell script with the 'zpool list' and 'zpool status' commands and then process the output.\nFunction might return empty table in the case of the failure in getting/processing information\n\nReturns:\nzpool_dependency_table[zpool] := ['physical disk', 'meta device', 'LUN'];\n\nChange History:\n2016-01-19 - function updated (DRDC1-5402);\n2016-05-06 - function updated (DRDC1-5777);\n2017-01-17 - function updated in order to harden awk regex (DRDC1-6367),\nsmall updates in disk label extraction regex (DRDC1-6368, DRDC1-6665, DRDC1-6554);\n2019-03-08 - Use new Future.runCommand;\n2020-09-16 - Updated in order to properly extract disk label from the command output;\n2026-04-09 - Updated escape sequence (DRDC1-29309)` + }, + "sortDependencies": { + snippets: ["${1:disk_label_table_to_node_list}, ${2:metadevice_table}, ${3:zpool_dependency_table}"], + description: `Sort dependencies ( md, zpool, ect.. to list of disk nodes and/or list of LUNs)\nFunction might return empty table in the case of the failure in getting/processing information\n\nReturns (example):\ndependencies_sorted[md_label] := ['disk_node', 'storage_system_volume_node'];` + }, + "updateFsToDiskOrStorageModel": { + snippets: ["${1:host}, ${2:filesystem}, ${3:filesystem_label}, ${4:disk_label_table_to_node_list}, ${5:logical_dependencies_sorted}, ${6:STORAGE_PROVIDERS}"], + description: `Update ADDM model:\n- create StorageUse relationships between filesystems and storage nodes,\n- adds relationship to the removal group.\nCalled from the linkFileSystemToDiskOrStorage().\n\nChange History:\n2017-01-17 - function updated in order to support SVM metasets (DRDC1-6368, DRDC1-6665, DRDC1-6554);` + }, + "updateFsToDiskOrStorageModelZone": { + snippets: ["${1:host}, ${2:filesystem}, ${3:filesystem_label}, ${4:STORAGE_PROVIDERS}, ${5:zone_fs_to_storage_nodes_table}"], + description: `Used to update ADDM model for the Solaris Zones hosts:\n- create StorageUse relationships between filesystem(s) and storage nodes,\n- adds relationship to the removal group.\nCalled from the linkFileSystemToDiskOrStorage().\n\nParameters:\nfilesystem - FileSystem node;\nfilesystem_label - fs_name for the FileSystem node;\nSTORAGE_PROVIDERS - removal group name;\nzone_fs_to_storage_nodes_table - mapping table between File System label and list of device nodes providing storage to the FS (LUNs, Disks);\n` + }, + "linkFileSystemToDiskOrStorage": { + snippets: ["${1:host}, ${2:disk_label_table_to_node_list}, ${3:logical_dependencies_sorted}, ${4:STORAGE_PROVIDERS}, ${5:LOCAL_DRIVES}, ${6:zone_fs_to_storage_nodes_table}, ${7:FS_TYPES_TO_SKIP}"], + description: `Updates/creates the link between a FS and the Disk and/or LUN behind it\nCalls the following functions:\n- updateFsToDiskOrStorageModel();\n- updateFsToDiskOrStorageModelZone();\n\nChange History:\n\n2017-01-17 - changed in order to support Solaris Zones HSL (DRDC1-6368, DRDC1-6665, DRDC1-6554);\n2023-11-29 - Replace stop by return for TKU_2024_01_01 (DRDC1-22356)` + }, + "getMetasetDevices": { + snippets: ["${1:host}, ${2:cmd_locations}, ${3:metaset_name}"], + description: `Get information about the devices used in the metaset.\nUsed from inside the getZoneInfo() function.\nFunction runs 'metaset -s %metaset_name%' command and then process the output.\nFunction might run getDIDdevices() to get DID devices mapping.\n\nReturns:\nmetaset_devices - list of devices in the metaset (might be empty)\n\nChange History:\n2019-03-08 - Use new Future.runCommand with escaped arguments` + }, + "getZoneInfo": { + snippets: ["${1:host}, ${2:cmd_locations}, ${3:metadevice_table}, ${4:zpool_dependency_table}, ${5:DETAIL_TYPE}"], + description: `Function collects the Solaris Zone(s) information using 'zonecfg -z info' command,\nthen creates Zone Storage Resource Detail and attaches it to the Zone Containes Software Instance.\nOnly used on the physical host ('global' zone)!!!!\nRuns the following function:\n- getMetasetDevices();\n\nParameters:\nmetadevice_table - mappings between SVM metadevice(s) and its physical device(s) (disks, LUNs);\nzpool_dependency_table - mappings between ZFS pool(s) and its physical device(s) (disks, LUNs);\nDETAIL_TYPE - constant, representing Zone Storage Resource Detail type;\n\nReturns:\nNothing. Output it is a detail node ('Zone Storage Resource' detail) written to the datastore;\n\nChange History:\n2017-04-07 - Added support for new VirtualMachine kind (DRDC1-8149);\n2019-03-08 - Use new Future.runCommand with escaped arguments;\n2020-09-16 - Updated in order to support Host-side linking for LDOMs (DRDC1-14028);` + }, + "processZoneInfo": { + snippets: ["${1:host}, ${2:cmd_locations}, ${3:zonename}, ${4:DETAIL_TYPE}, ${5:STORAGE_PROVIDERS}"], + description: `Function processes information obtained from the Zone Storage Resource Detail and from the zPoolDependencyTable() function;\nOnly used on the virtual host (non-global zone).\nCreates the StorageUse links between the Solaris Zone host and the storage node(s) (disk, LUN)\nRuns the following function:\n- zPoolDependencyTable();\n\nParameters:\nzonename - Zone name;\nDETAIL_TYPE - constant, representing Zone Storage Resource Detail type;\nSTORAGE_PROVIDERS - removal group name;\n\nReturns:\nzone_fs_to_storage_nodes_table - mapping table between File System label and list of device nodes providing storage to the FS (LUNs, Disks),\nmight be empty in case of the failure;\n\nChange History:\n\n2017-04-07 - Added support for new VirtualMachine kind (DRDC1-8149);\n2022-01-10 - Added 'StorageUse' relationship between Host and\nStorageSystem/StorageSystemGroup (DRDC1-17924);` + }, + "processLDOM": { + snippets: ["${1:host}, ${2:disk_label_to_node_list}, ${3:logical_dependencies_sorted}, ${4:STORAGE_PROVIDERS}"], + description: `Function gets LDOM HSL info and updates reference tables.\n\nChange History:\n\n2022-01-10 - Added 'StorageUse' relationship between guest domain host and\nStorageSystem/StorageSystemGroup (DRDC1-17924);` + } + }, + "SolarWinds.IPAddressManager": { + }, + "SolarWinds.NetworkConfigurationManager": { + }, + "SolarWinds.NetworkPerformanceMonitor": { + }, + "SolarWinds.OrionAgent": { + }, + "SolarWinds.ServerandApplicationMonitor": { + }, + "SolarWinds.StorageResourceMonitor": { + }, + "SolarWinds.VirtualizationManager": { + }, + "SolarWinds.WebHelpDesk": { + }, + "Sonar.SonarQube": { + }, + "Sophos.AntiVirus": { + }, + "Spectra_Stack_REST": { + "executeRequest": { + snippets: ["${1:discovery_access}, ${2:request_url}"], + description: `Execute GET REST API call using spectra_stack_auth.` + }, + "updateCapacity": { + snippets: ["${1:discovery_access}, ${2:storage_system_node}"], + description: `Calculate Spectra Stack capacity from media information.` + }, + "getLibraryStatus": { + snippets: ["${1:discovery_access}"], + description: `Get Spectra Stack library status from /library/status.` + }, + "updateStorageSystem": { + snippets: ["${1:discovery_access}, ${2:parent}, ${3:rg_group}, ${4:scope}"], + description: `Keine Beschreibung verfügbar.` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:parent}, ${3:rg_group}"], + description: `Main Spectra Stack scan.` + } + }, + "Splunk": { + "createLicenseDetail": { + snippets: ["${1:host}, ${2:install_root}, ${3:si_node}, ${4:removal_group}"], + description: `Run the splunk show license command and create a license detail node with the results\n\nSample output of the show license command is\nCurrent Daily Usage Amount: 0\nExpiration date: 2010-04-22T14:42:04-0700\nExpiration State: 7\nLicense level: 100 MB\nProduct: Enterprise\n\nTakes:\n* Host\n* Install_root\n* si_node for a Splunk SI\n* The name of the removal group\n\nReturns:\nNothing\n\nChange History:\n2015-11-13 - Run modern command "splunk list licenses"\nas well as legacy command "splunk show licenses" (DRDC1-5066)\nRun license command with privileged execution if non privileged option does not work (DRDC1-5066)\n2016-06-30 - Updated function names according to CommonFunctions changes(DRDC1-6073)\nrunActiveCommand() common function is now deployed\n2016-09-01 - Removed "use_priv_runcmd" attribute\n2019-02-25 - Updated to use modern discovery functions\n2026-04-10 - Updated escape sequence (DRDC1-29309)` + }, + "createSI": { + snippets: ["${1:host}, ${2:process}, ${3:si_type}, ${4:full_version}, ${5:build}, ${6:port}, ${7:install_root}"], + description: `Creates an SI for the specified type\n\nTakes:\n* Host node the SI should be created on\n* Type of the SI to be created\n* Version of the SI to be created\n* Port of the SI to be created\n* Install root\n\nReturns:\nThe node of the created SI.\n\nChange History:\n2021-11-15 - Added 'install_root' attribute to SI model (DRDC1-17737)\n2022-09-07 - Obtain receiver_port to link Splunk Indexer with Forwarder (DRDC1-18351)\n2022-10-06 - Added association of descendents with SI (DRDC1-18843)` + }, + "getInstallRoot": { + snippets: ["${1:host}, ${2:process}"], + description: `Get install root\n\nWe can try to get to get it from the trigger process, but will probably fail\n\nGetting install root from a grandchild process works some of the time\n\nGetting install root via pmap or equivalent (get_exe_cwd_path) might work\n\nIf this fails we look in standard locations\n\nTakes: Host, Process\nReturns: Install Root\n\nChange History:\n2016-06-30 - Updated function names according to CommonFunctions changes(DRDC1-6073)\n2017-01-13 - Updated Unix install_root extraction regex\nextracted with help of getExeCwdPath() function(DRDC1-7805)` + }, + "getVersion": { + snippets: ["${1:host}, ${2:install_root}, ${3:forwarder}"], + description: `Get version information\n\nThe function tried three methods:\n* Active versioning - Using the "splunk version" command\n* File versioning - Using the "splunk.version" file\n* Package versioning - Using the "splunk" package (or possibly the UniversalForwarder\npackage if we're certain we're looking at a forwarder)\n\nTakes:\nInstall_root (optional, default is blank)\nForwarder - Set to true if this is called for a forwarder SI. Default is false\n\nReturns:\nFull_version\nBuild\n\nChange History:\n2016-06-30 - Updated function names according to CommonFunctions changes(DRDC1-6073)\nrunActiveCommand() common function is now deployed\n2016-09-01 - Removed "use_priv_runcmd" attribute\n2019-02-25 - Updated to use modern discovery functions\n2023-01-18 - Updated (?i) flag placement in regular expression (DRDC1-20566)` + }, + "listForwarderServerRestAPI": { + snippets: ["${1:host}, ${2:process}, ${3:install_root}"], + description: `Main method of getting the list of servers\nwhere the data is forwarded (indexer servers).\nsplunkd_port is obtained for REST API calls\nusing CLI for both Unix & Windows OS,\nin other case default port is used.\n\nTakes: host, process, install_root\nReturns: rest_forwarders_list\n\nChange History:\n2023-05-25 - Added further check to avoid ECA Error (DRDC1-21362)` + } + }, + "SSH.Tectia": { + }, + "SSLDiscovery": { + "getCertDt": { + snippets: ["${1:host}, ${2:listen_ssl_tcp_socket}, ${3:pem_file}"], + description: `Function makes openssl call to TLS socket, returns TLS Certificate Detail node.\n\nChange History:\n2020-08-18 - extended to extract more attributes\n2021-09-27 - updated to read .pem files if such are passed (DRDC1-16963)\n2021-11-19 - updated to extract issuer value more accurate (DRDC1-17782)\n2021-11-29 - chaged the order of args in pem_file command to enable configuration of sudoers file (DRDC1-17879)\n2021-12-02 - updated to use getCertificate function (DRDC1-17103)\n2022-01-24 - updated logic to unblock second openssl comand execution (DRDC1-18291)\n2022-05-26 - updated regex to extract sha_256_fingerprint (DRDC1-19088)\n2022-07-26 - Enhancement for specific IP addresses (DRDC1-19427)\n2022-10-10 - Updated to use sha_256_fingerprint value from discovery.getCertificate()(DRDC1-19883)\n2023-10-31 - Updated to skip link-local IPv6 address (DRDC1-22112)\n2023-11-10 - Updated to add more attributes for UNIX (DRDC1-21749)\n2024-03-20 - Updated self_signed attribute assignment(DRDC1-22448)\n2024-08-05 - Updated subject_alternative_names attribute (DRDC1-24078)` + }, + "getCertDetails": { + snippets: ["${1:host}, ${2:websites}, ${3:si}"], + description: `Function gets host and sites or SI on this host that listens on HTTPS ports.\nIt will run the command on the target host that should return TLS certificate details for each ssl_socket.\nThe function will return the list of details.` + } + }, + "SSLDiscovery.Extended": { + }, + "SterlingCommerce.ConnectDirect": { + }, + "SterlingCommerce.ControlCenter": { + "active_versioning": { + snippets: ["${1:process}, ${2:install_root}"], + description: `Function tries to extract version from log file names in and/or /UninstallerData directories` + }, + "package_versioning": { + snippets: ["${1:process}"], + description: `Obtain version from "Sterling Control Center" package` + }, + "get_version": { + snippets: ["${1:process}, ${2:install_root}"], + description: `Obtain version using active, package and path versioning methods` + } + }, + "StichtingNLnetLabs.Routinator": { + }, + "Storix.SystemBackupAdministrator": { + }, + "Sumologic.Sumologic": { + }, + "SunGard.CMS_LDRPS": { + }, + "Sun.GlassFish_Enterprise": { + "active_versioning": { + snippets: ["${1:host}, ${2:command}, ${3:path}"], + description: `active_versioning performs the active command versioning method.\n\nChange History:\n2019-02-21 - Updated to use Future.runCommand function\n- Added path variable required by Future.runCommand\n2020-03-17 - Added Open Source Edition support (DRDC1-13862)\n2020-08-18 - Updated versioning regex (DRDC1-15634)\n2021-06-03 - Added Payara Server support (DRDC1-16848)` + }, + "file_versioning": { + snippets: ["${1:host}, ${2:installRoot}, ${3:sep}"], + description: `file_versioning performs the file versioning method.\n\nChange History:\n2021-06-03 - Added Payara Server support (DRDC1-16848)` + }, + "set_si_type": { + snippets: ["${1:si_type}, ${2:full_version}, ${3:custom_product}"], + description: `set_si_type updates the SI type based on the full version\n\nChange History:\n2020-03-17 - Added Open Source Edition support (DRDC1-13862)\n2020-07-15 - Fixed si_type generating (DRDC1-15529)\n2021-06-03 - Added Payara Server support (DRDC1-16848)` + } + }, + "Sun.JavaSystemDirectoryServer": { + }, + "Sun.JavaSystemWebserver": { + "get_full_version": { + snippets: ["${1:host}, ${2:ver_cmds}, ${3:type}, ${4:library_path}"], + description: `Gets version from command based on path and software type\n\nChange history:\n2019-02-21 - Update to use Future.runCommand\n2019-06-10 - Fixed restrict path argument` + } + }, + "Sun.JavaWebProxyServer": { + }, + "Sun.ManagementCenter": { + }, + "Sun.SolarisCluster": { + "fixLineEndings": { + snippets: ["${1:host}, ${2:content}"], + description: `Skips the line if it starts from #\nSkips empty lines\nRemoves \r at the end of the line, if it exists\nInserts \n at the end of each line` + } + }, + "Sun.SolarisLDom": { + "updateLdomAttributes": { + snippets: ["${1:host}, ${2:ldom_name}, ${3:ldom_role}"], + description: `Populate 'ldom_name', 'ldom_role' and 'partition' attributes in Solaris LDom Host node.\n\nChange History:\n2016-09-13 - updated code for removing incorrectly set values by old pattern(ESC 093482)` + }, + "createLdomContainer": { + snippets: ["${1:host}, ${2:si_type}"], + description: `Create LDOM HostContainer based on 'control' LDOM\n\nChange History:\n2017-10-17 - Updated HostContainer name and short_name attributes to only include host serial, or if empty, host ID (Esc 111986)\n2017-12-22 - Updated in order to avoid ECA errors (caused by Host.ProductModel.hostcontainer_product_model pattern)\nwhere host has no vendor attribute (DRDC1-10531)\n2018-06-25 - Added anchorRemovalGroup to avoid stale LDOM links (DRDC1-11496)\n2021-05-04 - Added RAM attribute to HostContainer (DRDC1-15402)\n2024-01-26 - Updated HostContainer name (DRDC1-22737)\n2024-06-06 - Added prefix to HostContainer name (DRDC1-23690)` + }, + "getVersion": { + snippets: ["${1:host}, ${2:search_list}"], + description: `Get version from packages\n\nChange History:\n2017-12-14 - moved package regex to the function arguments as different components\nshould extract their versions from different packages (DRDC1-10361)` + }, + "getProductName": { + snippets: ["${1:host}"], + description: `Get product version using package versioning` + }, + "getGuestLdoms": { + snippets: ["${1:host}"], + description: `Get 'guest' LDOM Host nodes using 'ldm list-domain -l -p' command\n'guest' LDOMs are identified using ldom name and ldom mac_addr extracted from 'ldm list-domain -l -p' command\n\n'ldm list-domain -l -p' command output:\nDOMAIN|name=primary|state=active|flags=normal,control,vio-service|cons=UART|ncpu=8|mem=17179869184|...\nUUID|uuid=3aXXXX-XXXX-XXXX-XXXX-XXXXXXXX6b ---> PARTITION_id\nMAC|mac-addr=XX:XX:XX:XX:XX:XX\nHOSTID|hostid=0xXXXXXXX ---> hostid\nVNET|name=net0|dev=network@0|service=primary-vsw0@primary|mac-addr=XX:XX:XX:XX:XX:d8|mode=|pvid=1|vid=|mtu=1500|linkprop=|id=0|alt-mac-addrs=|maxbw=|pvlan=\nVNET|name=vnet1|dev=network@1|service=primary-vsw1@primary|mac-addr=XX:XX:XX:XX:XX:78|mode=|pvid=1|vid=|mtu=1500|linkprop=|id=1|alt-mac-addrs=|maxbw=|pvlan=\n....\nDOMAIN|name=guest2-ldom5|state=active|flags=normal|cons=5017|ncpu=8|mem=15032385536|util=1.9|uptime=14326752|norm_util=1.9|softstate=Solaris running\nUUID|uuid=edXXXX-XXXX-XXXX-XXXX-XXXXXXXX45\nMAC|mac-addr=XX:XX:XX:XX:XX:da\nHOSTID|hostid=0xXXXXXXX\nVNET|name=vnet0|dev=network@0|service=primary-vsw0@primary|mac-addr=XX:XX:XX:XX:XX:81|mode=|pvid=1|vid=|mtu=1500|\n\nChange History:\n2023-11-16 - Replaced 'stop' with 'return' (DRDC1-22238)\n2025-07-29 - Added partition_id to guest LDOM search (DRDC1-27031)` + } + }, + "Sun.StorageTekACSLS": { + }, + "Sun.StorageTekCAM": { + }, + "Sun_StorageTek_Storage": { + "updateCapacityAttribute": { + snippets: ["${1:attribute_value}, ${2:gib}"], + description: `For Capacity attribute such as Total Capacity, Available Capacity, etc\nConvert its value into byte.\n\nThe cmd result gives an output of 100.0 MB and we need this value in byte.\n\nreturn the converted value` + }, + "updatePools": { + snippets: ["${1:host}, ${2:cmd_location}, ${3:storage_system_by_name}, ${4:storage_pools}, ${5:cmd_body}"], + description: `Create and update StoragePools for the Sun StorageTek storage system` + }, + "updateDiskDrive": { + snippets: ["${1:host}, ${2:cmd_location}, ${3:storage_system_by_name}, ${4:virtual_disk_by_disks}, ${5:cmd_body}"], + description: `Create and update StorageVolumes for Sun StorageTek storage system` + }, + "updateProcessorAndIPAddress": { + snippets: ["${1:host}, ${2:cmd_location}, ${3:storage_system_by_name}, ${4:processors}, ${5:cmd_body}"], + description: `Create and update StorageProcessors and IPAddresses for Sun StorageTek storage system\n\nChange History:\n10-31-2023 - Fix the netmask to not be a subnet node\n12-06-2025 - Now call the function updateIPAddress to create the IP Addresses\nfor TKU_2025_07_01` + }, + "updateFrontEndPorts": { + snippets: ["${1:host}, ${2:cmd_location}, ${3:storage_system_by_name}, ${4:processors}, ${5:cmd_body}"], + description: `Create and update FibreChannelPorts and network interfaces\nfor Sun StorageTek storage system\n\nChange History:\n06-12-2025 - Added the update of iSCSI port as network interface and IP Addresses\nfor TKU_2025_07_01 (DRDC1_26624)` + }, + "updateVDisk": { + snippets: ["${1:host}, ${2:cmd_location}, ${3:storage_system_by_name}, ${4:virtual_disk_by_disks}, ${5:virtual_disk_by_volumes}, ${6:cmd_body}"], + description: `Create and update virtual disks for Sun StorageTek storage system` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:si}, ${3:host}, ${4:cmd_location}, ${5:unix}"], + description: `Primary function that creates the storage system for Sun StorageTek system\nPerform two commands to get information about the array\n\nHistory Changes:\n12-10-2021 - Update the command to discover StorageTek with UNIX command for TKU_2021_11_01 (DRDC1-17500)\n2024-04-16 - Added hidden attribute __capability_ids for TKU_2024_07_01 (DRDC1-23319)\n2024-07-12 - Added the attribute dns_domain\nto storage system / storage device (DRDC1-24057)\n2024-08-30 - Fixed the check of the serial number to avoid an\nECA error for TKU_2024_10_01 (DRDC1-24367)` + } + }, + "Sun.Virtualization.Zones": { + }, + "Sun.xVM.VirtualBox": { + }, + "SupportDetail.Cluster": { + }, + "SupportDetail.CommonFunctions": { + "destroySupportDetailRel": { + snippets: ["${1:node}, ${2:sd_type}"], + description: `Destroy any existing SupportDetail relationship with a node.` + }, + "identifyCloudProvider": { + snippets: ["${1:relevant_nodes}"], + description: `Identify the cloud provider that one of the provided relevant_nodes is running on.` + } + }, + "SupportDetail.HardwareComponent": { + "destroySupportDetailRel": { + snippets: ["${1:node}, ${2:sd_type}"], + description: `Destroy any existing SupportDetail relationship with a HardwareComponent\nnode.` + } + }, + "SupportDetail.HardwareContainer": { + "destroySupportDetailRel": { + snippets: ["${1:node}, ${2:sd_type}"], + description: `Destroy any existing SupportDetail relationship with a HardwareContainer\nnode.` + } + }, + "SupportDetail.Host": { + "destroySupportDetailRel": { + snippets: ["${1:node}, ${2:sd_type}"], + description: `Destroy any existing SupportDetail relationship with a Host node.` + } + }, + "SupportDetail.HostContainer": { + "destroySupportDetailRel": { + snippets: ["${1:node}, ${2:sd_types}"], + description: `Destroy any existing SupportDetail relationship with a HostContainer\nnode.` + } + }, + "SupportDetail.ManagementController": { + "destroySupportDetailRel": { + snippets: ["${1:node}, ${2:sd_type}"], + description: `Destroy any existing SupportDetail relationship with a ManagementController node.` + } + }, + "SupportDetail.NetworkDevice": { + "destroySupportDetailRel": { + snippets: ["${1:node}, ${2:sd_type}"], + description: `Destroy any existing SupportDetail relationship with a NetworkDevice node.` + } + }, + "SupportDetail.OperatingSystem": { + "get_known_names": { + snippets: ["${1:publisher}, ${2:product}"], + description: `Gets a list of known names for the given publisher and product` + }, + "destroySupportDetailRel": { + snippets: ["${1:node}, ${2:sd_type}"], + description: `Destroy any existing OS SupportDetail relationship with a Host, Network\nDevice or Storage Device node.` + } + }, + "SupportDetail.OS.Canonical.Ubuntu_Linux": { + }, + "SupportDetail.OS.CentOS.Linux": { + }, + "SupportDetail.OS.Debian_Project.Debian_Linux": { + }, + "SupportDetail.OS.FreeBSD_Foundation.FreeBSD": { + }, + "SupportDetail.OS.HP.HP_UX": { + }, + "SupportDetail.OS.HP.OpenVMS": { + }, + "SupportDetail.OS.HP.Tru64_UNIX": { + }, + "SupportDetail.OS.IBM.AIX": { + }, + "SupportDetail.OS.IBM.POWER_HMC": { + }, + "SupportDetail.OS.IBM.VIO": { + }, + "SupportDetail.OS.Microsoft.Windows": { + }, + "SupportDetail.OS.Novell.NetWare": { + }, + "SupportDetail.OS.Novell.SUSE_Linux": { + }, + "SupportDetail.OS.OpenBSD_Foundation.OpenBSD": { + }, + "SupportDetail.OS.Oracle.Oracle_Enterprise_Linux": { + }, + "SupportDetail.OS.Oracle.Oracle_Linux": { + }, + "SupportDetail.OS.Oracle.Solaris": { + }, + "SupportDetail.OS.Red_Hat.Fedora_Linux": { + }, + "SupportDetail.OS.Red_Hat.Red_Hat_Enterprise_Linux": { + }, + "SupportDetail.OS.Red_Hat.Red_Hat_Linux": { + }, + "SupportDetail.OS.Red_Hat.RHEL_Generated_Tables": { + }, + "SupportDetail.OS.Scientific_Linux.Scientific_Linux": { + }, + "SupportDetail.OS.Sun_Microsystems.Solaris": { + }, + "SupportDetail.OS.VMware.ESXi_Server": { + }, + "SupportDetail.OS.VMware.ESX_Server": { + }, + "SupportDetail.OS.VMware.vCenter_Server": { + }, + "SupportDetail.Printer": { + "destroySupportDetailRel": { + snippets: ["${1:node}, ${2:sd_type}"], + description: `Destroy any existing SupportDetail relationship with a Printer node.` + } + }, + "SupportDetail.RE.JavaVirtualMachine": { + }, + "SupportDetail.RuntimeEnvironment": { + "destroySupportDetailRel": { + snippets: ["${1:node}, ${2:sd_type}"], + description: `Destroy any existing SupportDetail relationship with a SoftwareInstance\nnode.` + } + }, + "SupportDetail.SI.Ab_Initio_Co_Operating_System": { + }, + "SupportDetail.SI.Ab_Initio_Enterprise_Meta_Environment": { + }, + "SupportDetail.SI.Ab_Initio_Graphical_Development_Environment": { + }, + "SupportDetail.SI.Acresso_FLEXnet_Publisher": { + }, + "SupportDetail.SI.Actuate_BIRT_Designer_Pro": { + }, + "SupportDetail.SI.Actuate_BIRT_iServer": { + }, + "SupportDetail.SI.Actuate_BIRT_Spreadsheet_Designer": { + }, + "SupportDetail.SI.Actuate_e_Reports": { + }, + "SupportDetail.SI.Actuate_Formula_One": { + }, + "SupportDetail.SI.Adobe_Acrobat_Distiller_Server": { + }, + "SupportDetail.SI.Adobe_Acrobat_Elements_Server": { + }, + "SupportDetail.SI.Adobe_ColdFusion": { + }, + "SupportDetail.SI.Adobe_Connect": { + }, + "SupportDetail.SI.Adobe_CQ": { + }, + "SupportDetail.SI.Adobe_LiveCycle": { + }, + "SupportDetail.SI.Aerospike_Database": { + }, + "SupportDetail.SI.AirWatch_Mobile_Device_Management": { + }, + "SupportDetail.SI.AirWatch_Mobile_Email_Management": { + }, + "SupportDetail.SI.Apache_Accumulo": { + }, + "SupportDetail.SI.Apache_ActiveMQ": { + }, + "SupportDetail.SI.Apache_Ambari": { + }, + "SupportDetail.SI.Apache_Cassandra": { + }, + "SupportDetail.SI.Apache_Chukwa": { + }, + "SupportDetail.SI.Apache_CloudStack": { + }, + "SupportDetail.SI.Apache_CouchDB": { + }, + "SupportDetail.SI.Apache_CXF": { + }, + "SupportDetail.SI.Apache_Derby_RDBMS": { + }, + "SupportDetail.SI.Apache_Drill": { + }, + "SupportDetail.SI.Apache_Falcon": { + }, + "SupportDetail.SI.Apache_Flume": { + }, + "SupportDetail.SI.Apache_Hadoop": { + }, + "SupportDetail.SI.Apache_HBase": { + }, + "SupportDetail.SI.Apache_Hive": { + }, + "SupportDetail.SI.Apache_Hue": { + }, + "SupportDetail.SI.Apache_Ignite": { + }, + "SupportDetail.SI.Apache_JMeter": { + }, + "SupportDetail.SI.Apache_Kafka": { + }, + "SupportDetail.SI.Apache_Mesos": { + }, + "SupportDetail.SI.Apache_Oozie": { + }, + "SupportDetail.SI.Apache_Pig": { + }, + "SupportDetail.SI.Apache_Qpid": { + }, + "SupportDetail.SI.Apache_Solr": { + }, + "SupportDetail.SI.Apache_Spark": { + }, + "SupportDetail.SI.Apache_Sqoop": { + }, + "SupportDetail.SI.Apache_Storm": { + }, + "SupportDetail.SI.Apache_Subversion": { + }, + "SupportDetail.SI.Apache_Tika": { + }, + "SupportDetail.SI.Apache_Tomcat": { + }, + "SupportDetail.SI.Apache_Webserver": { + }, + "SupportDetail.SI.Apache_Zookeeper": { + }, + "SupportDetail.SI.Atlassian_Bamboo": { + }, + "SupportDetail.SI.Atlassian_Confluence": { + }, + "SupportDetail.SI.Atlassian_JIRA": { + }, + "SupportDetail.SI.Atlassian_Jira_Service_Desk": { + }, + "SupportDetail.SI.Atlassian_Stash": { + }, + "SupportDetail.SI.Attachmate_Reflection_for_Secure_IT": { + }, + "SupportDetail.SI.Automic_ONE_Automation": { + }, + "SupportDetail.SI.Autonomy_DiSH": { + }, + "SupportDetail.SI.Autonomy_IDOL": { + }, + "SupportDetail.SI.Autonomy_Interwoven_OpenDeploy": { + }, + "SupportDetail.SI.Autonomy_Interwoven_TeamSite": { + }, + "SupportDetail.SI.Autonomy_Interwoven_Universal_Search": { + }, + "SupportDetail.SI.Avnet_Seamless_Data_Pump": { + }, + "SupportDetail.SI.Axway_SecureTransport": { + }, + "SupportDetail.SI.Basho_Riak_KV": { + }, + "SupportDetail.SI.Beanstalkd": { + }, + "SupportDetail.SI.BEA_AquaLogic_Business_Process_Management": { + }, + "SupportDetail.SI.BEA_AquaLogic_Enterprise_Security": { + }, + "SupportDetail.SI.BEA_AquaLogic_User_Interaction": { + }, + "SupportDetail.SI.BEA_MessageQ": { + }, + "SupportDetail.SI.BEA_Tuxedo": { + }, + "SupportDetail.SI.BEA_WebLogic_Application_Server": { + }, + "SupportDetail.SI.BEA_WebLogic_Enterprise": { + }, + "SupportDetail.SI.BEA_WebLogic_Real_Time": { + }, + "SupportDetail.SI.BeyondTrust_PowerBroker_Desktops": { + }, + "SupportDetail.SI.BMC_Analytics_for_BSM": { + }, + "SupportDetail.SI.BMC_Atrium_CMDB": { + }, + "SupportDetail.SI.BMC_Atrium_Discovery_and_Dependency_Mapping": { + }, + "SupportDetail.SI.BMC_Atrium_Orchestrator": { + }, + "SupportDetail.SI.BMC_Atrium_SSO": { + }, + "SupportDetail.SI.BMC_Batch_Impact_Manager": { + }, + "SupportDetail.SI.BMC_BladeLogic_Client_Automation": { + }, + "SupportDetail.SI.BMC_BladeLogic_Database_Automation": { + }, + "SupportDetail.SI.BMC_BladeLogic_Server_Automation_Suite": { + }, + "SupportDetail.SI.BMC_Capacity_Optimization": { + }, + "SupportDetail.SI.BMC_Cloud_Lifecycle_Management": { + }, + "SupportDetail.SI.BMC_CONTROL_M": { + }, + "SupportDetail.SI.BMC_Control_M_Batch_Discovery": { + }, + "SupportDetail.SI.BMC_CONTROL_M_Business_Process_Integration_Suite": { + }, + "SupportDetail.SI.BMC_CONTROL_M_CM_for_Advanced_File_Transfer": { + }, + "SupportDetail.SI.BMC_CONTROL_M_Enterprise_Manager": { + }, + "SupportDetail.SI.BMC_CONTROL_M_Forecast": { + }, + "SupportDetail.SI.BMC_CONTROL_M_for_Hadoop": { + }, + "SupportDetail.SI.BMC_CONTROL_M_WebAccess": { + }, + "SupportDetail.SI.BMC_Corporate_Directory_Manager": { + }, + "SupportDetail.SI.BMC_Dashboards_for_Business_Service_Management": { + }, + "SupportDetail.SI.BMC_Decision_Support_for_Server_Automation": { + }, + "SupportDetail.SI.BMC_Event_Manager": { + }, + "SupportDetail.SI.BMC_FootPrints_Asset_Core": { + }, + "SupportDetail.SI.BMC_FootPrints_Service_Core": { + }, + "SupportDetail.SI.BMC_HR_Case_Management": { + }, + "SupportDetail.SI.BMC_Impact_Manager": { + }, + "SupportDetail.SI.BMC_IT_Service_Management": { + }, + "SupportDetail.SI.BMC_Middleware_Management___Performance_and_Availability": { + }, + "SupportDetail.SI.BMC_Mobile_Device_Management": { + }, + "SupportDetail.SI.BMC_MyIT": { + }, + "SupportDetail.SI.BMC_Network_Automation": { + }, + "SupportDetail.SI.BMC_Patrol_Agent": { + }, + "SupportDetail.SI.BMC_PATROL_DashBoard": { + }, + "SupportDetail.SI.BMC_Patrol_Enterprise_Manager": { + }, + "SupportDetail.SI.BMC_PATROL_Visualis_Fault_Manager": { + }, + "SupportDetail.SI.BMC_Performance_Analyzer_for_Servers": { + }, + "SupportDetail.SI.BMC_Performance_Assurance_for_Server": { + }, + "SupportDetail.SI.BMC_Performance_Manager_for_Business_Applications": { + }, + "SupportDetail.SI.BMC_Performance_Manager_for_Citrix_Presentation_Server": { + }, + "SupportDetail.SI.BMC_Performance_Manager_for_Databases": { + }, + "SupportDetail.SI.BMC_Performance_Manager_for_Hardware_by_Sentry_Software": { + }, + "SupportDetail.SI.BMC_Performance_Manager_for_Informix": { + }, + "SupportDetail.SI.BMC_Performance_Manager_for_Internet_Servers": { + }, + "SupportDetail.SI.BMC_Performance_Manager_for_Microsoft_Exchange_Servers": { + }, + "SupportDetail.SI.BMC_Performance_Manager_for_Oracle_Tuxedo": { + }, + "SupportDetail.SI.BMC_Performance_Manager_for_Servers": { + }, + "SupportDetail.SI.BMC_Performance_Manager_for_Virtual_Servers": { + }, + "SupportDetail.SI.BMC_Performance_Manager_for_Web_Application_Servers": { + }, + "SupportDetail.SI.BMC_Performance_Manager_Monitoring_Studio_by_Sentry_Software": { + }, + "SupportDetail.SI.BMC_Performance_Manager_Portal": { + }, + "SupportDetail.SI.BMC_Performance_Perceiver": { + }, + "SupportDetail.SI.BMC_ProactiveNet_Analytics": { + }, + "SupportDetail.SI.BMC_Recovery_Manager_for_Databases": { + }, + "SupportDetail.SI.BMC_Release_Lifecycle_Management": { + }, + "SupportDetail.SI.BMC_Release_Process_Management": { + }, + "SupportDetail.SI.BMC_Remedy_AR_System": { + }, + "SupportDetail.SI.BMC_Remedy_Migrator": { + }, + "SupportDetail.SI.BMC_Remedy_Single_Sign_On": { + }, + "SupportDetail.SI.BMC_SQL_BackTrack_for_DB2_Universal_Database": { + }, + "SupportDetail.SI.BMC_SQL_BackTrack_for_Oracle": { + }, + "SupportDetail.SI.BMC_Track_It_": { + }, + "SupportDetail.SI.BMC_Transaction_Management_Application_Response_Time": { + }, + "SupportDetail.SI.BMC_TrueSight_App_Visibility_Manager": { + }, + "SupportDetail.SI.BMC_TrueSight_IT_Data_Analytics": { + }, + "SupportDetail.SI.BMC_TrueSight_Middleware_Administrator": { + }, + "SupportDetail.SI.BMC_TrueSight_Operations_Management": { + }, + "SupportDetail.SI.BMC_TrueSight_Operations_Management_Presentation_Server": { + }, + "SupportDetail.SI.BMC_Virtual_Chat": { + }, + "SupportDetail.SI.Borland_CaliberRM": { + }, + "SupportDetail.SI.Borland_Gauntlet": { + }, + "SupportDetail.SI.Borland_License_Server": { + }, + "SupportDetail.SI.Borland_SilkMeter": { + }, + "SupportDetail.SI.Borland_SilkTest": { + }, + "SupportDetail.SI.Borland_StarTeam": { + }, + "SupportDetail.SI.Borland_Together": { + }, + "SupportDetail.SI.Borland_VisiBroker": { + }, + "SupportDetail.SI.BusinessObjects_InfoView": { + }, + "SupportDetail.SI.Business_Objects_Broadcast_Agent": { + }, + "SupportDetail.SI.Business_Objects_BusinessObjects": { + }, + "SupportDetail.SI.Business_Objects_BusinessObjects_Enterprise": { + }, + "SupportDetail.SI.Business_Objects_BusinessObjects_OLAP_Intelligence": { + }, + "SupportDetail.SI.Business_Objects_BusinessObjects_Web_Intelligence": { + }, + "SupportDetail.SI.Business_Objects_Crystal_Enterprise": { + }, + "SupportDetail.SI.Business_Objects_Crystal_Reports": { + }, + "SupportDetail.SI.Business_Objects_Crystal_Xcelsius": { + }, + "SupportDetail.SI.Caucho_Resin_Application_Server": { + }, + "SupportDetail.SI.CA_Access_Control": { + }, + "SupportDetail.SI.CA_ARCserve_Backup": { + }, + "SupportDetail.SI.CA_Audit": { + }, + "SupportDetail.SI.CA_Clarity": { + }, + "SupportDetail.SI.CA_DataMinder": { + }, + "SupportDetail.SI.CA_Directory": { + }, + "SupportDetail.SI.CA_DLP": { + }, + "SupportDetail.SI.CA_eHealth": { + }, + "SupportDetail.SI.CA_Enterprise_Communicator": { + }, + "SupportDetail.SI.CA_ERwin_Data_Modeler": { + }, + "SupportDetail.SI.CA_ERwin_Data_Model_Validator": { + }, + "SupportDetail.SI.CA_ERwin_Process_Modeler": { + }, + "SupportDetail.SI.CA_eTrust_Admin": { + }, + "SupportDetail.SI.CA_eTrust_Antivirus": { + }, + "SupportDetail.SI.CA_Service_Desk": { + }, + "SupportDetail.SI.CA_SiteMinder": { + }, + "SupportDetail.SI.CA_Software_Change_Manager": { + }, + "SupportDetail.SI.CA_Spectrum": { + }, + "SupportDetail.SI.CA_Unicenter_AutoSys_Job_Management": { + }, + "SupportDetail.SI.CA_Wily_Introscope": { + }, + "SupportDetail.SI.CA_Workload_Automation": { + }, + "SupportDetail.SI.CA_XCOM_Data_Transport": { + }, + "SupportDetail.SI.Celery": { + }, + "SupportDetail.SI.CFEngine": { + }, + "SupportDetail.SI.Check_Point_Firewall_1_VPN_1": { + }, + "SupportDetail.SI.Check_Point_Provider_1_SiteManager_1": { + }, + "SupportDetail.SI.Cisco_Secure_Access_Control_Server__ACS_": { + }, + "SupportDetail.SI.Citrix_EdgeSight": { + }, + "SupportDetail.SI.Citrix_Presentation_Server__MetaFrame_": { + }, + "SupportDetail.SI.Citrix_XenApp": { + }, + "SupportDetail.SI.Citrix_XenDesktop": { + }, + "SupportDetail.SI.Citrix_XenServer": { + }, + "SupportDetail.SI.Cloudera_CDH": { + }, + "SupportDetail.SI.Cloudera_Impala": { + }, + "SupportDetail.SI.Cloudera_Manager": { + }, + "SupportDetail.SI.ClusterLabs_Pacemaker": { + }, + "SupportDetail.SI.Clustrix_ClustrixDB": { + }, + "SupportDetail.SI.Commvault_Virtual_Server_Protection": { + }, + "SupportDetail.SI.Corosync_Cluster_Engine": { + }, + "SupportDetail.SI.Couchbase_Server": { + }, + "SupportDetail.SI.DataStax_DevCenter": { + }, + "SupportDetail.SI.DataStax_Enterprise": { + }, + "SupportDetail.SI.DataStax_OpsCenter": { + }, + "SupportDetail.SI.Deep_Information_Sciences_Deep_Engine": { + }, + "SupportDetail.SI.Dell_OpenManage_Server_Administrator": { + }, + "SupportDetail.SI.Docker": { + }, + "SupportDetail.SI.Eclipse_Foundation_Eclipse": { + }, + "SupportDetail.SI.Eclipse_Jetty": { + }, + "SupportDetail.SI.Edge_enPortal": { + }, + "SupportDetail.SI.Elasticsearch": { + }, + "SupportDetail.SI.Embarcadero_Change_Manager": { + }, + "SupportDetail.SI.Embarcadero_DBArtisan": { + }, + "SupportDetail.SI.Embarcadero_DSAuditor": { + }, + "SupportDetail.SI.Embarcadero_ER_Studio_Business_Architect": { + }, + "SupportDetail.SI.Embarcadero_ER_Studio_Data_Architect": { + }, + "SupportDetail.SI.Embarcadero_ER_Studio_Portal": { + }, + "SupportDetail.SI.Embarcadero_ER_Studio_Software_Architect": { + }, + "SupportDetail.SI.Embarcadero_InterBase_SMP": { + }, + "SupportDetail.SI.Embarcadero_Performance_Center": { + }, + "SupportDetail.SI.EMC_Avamar": { + }, + "SupportDetail.SI.EMC_ControlCenter_StorageScope": { + }, + "SupportDetail.SI.EMC_Documentum": { + }, + "SupportDetail.SI.EMC_Ionix_ControlCenter": { + }, + "SupportDetail.SI.EMC_Isilon_OneFS": { + }, + "SupportDetail.SI.EMC_NetWorker": { + }, + "SupportDetail.SI.EMC_PowerPath": { + }, + "SupportDetail.SI.EMC_Unisphere": { + }, + "SupportDetail.SI.EnterpriseDB_Postgres_Advanced_Server": { + }, + "SupportDetail.SI.Entrust_GetAccess": { + }, + "SupportDetail.SI.Entuity_Entuity": { + }, + "SupportDetail.SI.Entuity_Eye_of_the_Storm": { + }, + "SupportDetail.SI.Fiorano_FioranoMQ": { + }, + "SupportDetail.SI.Flowerfire_Sawmill": { + }, + "SupportDetail.SI.Fox_Technologies_BoKS__Keon_": { + }, + "SupportDetail.SI.Fujitsu_ServerView_Operations_Manager": { + }, + "SupportDetail.SI.GemTalk_Systems_GemStone_S_Object_Server": { + }, + "SupportDetail.SI.Git": { + }, + "SupportDetail.SI.GitHub_Enterprise": { + }, + "SupportDetail.SI.GridGain": { + }, + "SupportDetail.SI.HashiCorp_Consul": { + }, + "SupportDetail.SI.HashiCorp_Vagrant": { + }, + "SupportDetail.SI.HelpSystems_Stand_Guard_Anti_Virus": { + }, + "SupportDetail.SI.Hitachi_Dynamic_Link_Manager": { + }, + "SupportDetail.SI.Hortonworks_Data_Platform": { + }, + "SupportDetail.SI.HP_Apache_based_Web_Server": { + }, + "SupportDetail.SI.HP_Business_Availability_Center": { + }, + "SupportDetail.SI.HP_Business_Process_Monitor": { + }, + "SupportDetail.SI.HP_Client_Automation": { + }, + "SupportDetail.SI.HP_Connect_It": { + }, + "SupportDetail.SI.HP_Data_Protector": { + }, + "SupportDetail.SI.HP_DevInspect": { + }, + "SupportDetail.SI.HP_Diagnostics": { + }, + "SupportDetail.SI.HP_Discovery_and_Dependency_Mapping": { + }, + "SupportDetail.SI.HP_Integrity_Virtual_Machines": { + }, + "SupportDetail.SI.HP_LoadRunner": { + }, + "SupportDetail.SI.HP_Mercury_SiteScope": { + }, + "SupportDetail.SI.HP_Mercury_TestDirector": { + }, + "SupportDetail.SI.HP_Network_Automation": { + }, + "SupportDetail.SI.HP_OpenView_AssetCenter": { + }, + "SupportDetail.SI.HP_OpenView_Operations__OVO_": { + }, + "SupportDetail.SI.HP_OpenView_Performance_Agent__OVPA_": { + }, + "SupportDetail.SI.HP_OpenView_Performance_Manager__OVPM_": { + }, + "SupportDetail.SI.HP_OpenView_ServiceCenter": { + }, + "SupportDetail.SI.HP_OpenView_Storage_Area_Manager": { + }, + "SupportDetail.SI.HP_Performance_Agent": { + }, + "SupportDetail.SI.HP_Performance_Insight": { + }, + "SupportDetail.SI.HP_Performance_Manager": { + }, + "SupportDetail.SI.HP_QAInspect": { + }, + "SupportDetail.SI.HP_Quality_Center": { + }, + "SupportDetail.SI.HP_QuickTest_Professional": { + }, + "SupportDetail.SI.HP_Server_Automation": { + }, + "SupportDetail.SI.HP_ServiceGuard": { + }, + "SupportDetail.SI.HP_Systems_Insight_Manager": { + }, + "SupportDetail.SI.HP_Vertica": { + }, + "SupportDetail.SI.HP_Virtual_Machine_Management_Pack": { + }, + "SupportDetail.SI.HP_WebInspect": { + }, + "SupportDetail.SI.HP_WinRunner": { + }, + "SupportDetail.SI.HSQL_Development_Group_HyperSQL": { + }, + "SupportDetail.SI.IBM_Business_Process_Manager": { + }, + "SupportDetail.SI.IBM_CICS_Client": { + }, + "SupportDetail.SI.IBM_CICS_Multiplatform": { + }, + "SupportDetail.SI.IBM_Cognos_BI_Metrics_Server": { + }, + "SupportDetail.SI.IBM_Cognos_Business_Intelligence": { + }, + "SupportDetail.SI.IBM_Cognos_Business_Viewpoint": { + }, + "SupportDetail.SI.IBM_Cognos_Controller": { + }, + "SupportDetail.SI.IBM_Cognos_Data_Manager": { + }, + "SupportDetail.SI.IBM_Cognos_Express": { + }, + "SupportDetail.SI.IBM_Cognos_Finance": { + }, + "SupportDetail.SI.IBM_Cognos_Impromptu": { + }, + "SupportDetail.SI.IBM_Cognos_Impromptu_Web_Reports": { + }, + "SupportDetail.SI.IBM_Cognos_Mobile": { + }, + "SupportDetail.SI.IBM_Cognos_NoticeCast": { + }, + "SupportDetail.SI.IBM_Cognos_Now": { + }, + "SupportDetail.SI.IBM_Cognos_Planning": { + }, + "SupportDetail.SI.IBM_Cognos_PowerPlay": { + }, + "SupportDetail.SI.IBM_Cognos_ReportNet": { + }, + "SupportDetail.SI.IBM_Cognos_TM1": { + }, + "SupportDetail.SI.IBM_Cognos_TM1_Executive_Viewer": { + }, + "SupportDetail.SI.IBM_CommonStore": { + }, + "SupportDetail.SI.IBM_Content_Analytics": { + }, + "SupportDetail.SI.IBM_Content_Collector_for_Microsoft_SharePoint": { + }, + "SupportDetail.SI.IBM_Content_Integrator": { + }, + "SupportDetail.SI.IBM_Database_Encryption_Expert": { + }, + "SupportDetail.SI.IBM_Data_Studio": { + }, + "SupportDetail.SI.IBM_DB2_Alphablox": { + }, + "SupportDetail.SI.IBM_DB2_Connect": { + }, + "SupportDetail.SI.IBM_DB2_Content_Manager": { + }, + "SupportDetail.SI.IBM_DB2_Content_Manager_OnDemand": { + }, + "SupportDetail.SI.IBM_DB2_High_Performance_Unload": { + }, + "SupportDetail.SI.IBM_DB2_Performance_Expert": { + }, + "SupportDetail.SI.IBM_DB2_Query_Patroller": { + }, + "SupportDetail.SI.IBM_DB2_RDBMS": { + }, + "SupportDetail.SI.IBM_DB2_Recovery_Expert": { + }, + "SupportDetail.SI.IBM_DB2_Table_Editor": { + }, + "SupportDetail.SI.IBM_Device_Runtime_Environment": { + }, + "SupportDetail.SI.IBM_Director": { + }, + "SupportDetail.SI.IBM_Document_Manager": { + }, + "SupportDetail.SI.IBM_Endpoint_Manager": { + }, + "SupportDetail.SI.IBM_Enterprise_Records": { + }, + "SupportDetail.SI.IBM_FileNet_Business_Process_Manager": { + }, + "SupportDetail.SI.IBM_FileNet_Capture_Professional": { + }, + "SupportDetail.SI.IBM_FileNet_Content_Federation_Services_Server_for_Image_Services": { + }, + "SupportDetail.SI.IBM_FileNet_Content_Manager": { + }, + "SupportDetail.SI.IBM_FileNet_Content_Services": { + }, + "SupportDetail.SI.IBM_FileNet_eForms": { + }, + "SupportDetail.SI.IBM_FileNet_Fax": { + }, + "SupportDetail.SI.IBM_FileNet_IDM_Desktop": { + }, + "SupportDetail.SI.IBM_FileNet_Image_Import": { + }, + "SupportDetail.SI.IBM_FileNet_Image_Services": { + }, + "SupportDetail.SI.IBM_FileNet_Image_Services_Resource_Adapter": { + }, + "SupportDetail.SI.IBM_FileNet_Print": { + }, + "SupportDetail.SI.IBM_FileNet_Process_Analyzer": { + }, + "SupportDetail.SI.IBM_FileNet_Remote_Capture_Services": { + }, + "SupportDetail.SI.IBM_FileNet_Rendition_Engine": { + }, + "SupportDetail.SI.IBM_FileNet_System_Monitor": { + }, + "SupportDetail.SI.IBM_Forms_Designer": { + }, + "SupportDetail.SI.IBM_Forms_Server": { + }, + "SupportDetail.SI.IBM_General_Parallel_FileSystem": { + }, + "SupportDetail.SI.IBM_HACMP": { + }, + "SupportDetail.SI.IBM_HTTP_Server": { + }, + "SupportDetail.SI.IBM_ILOG_CPLEX_Optimization_Studio": { + }, + "SupportDetail.SI.IBM_ILOG_Elixir_Enterprise": { + }, + "SupportDetail.SI.IBM_ILOG_JViews_Enterprise": { + }, + "SupportDetail.SI.IBM_ILOG_ODM_Enterprise": { + }, + "SupportDetail.SI.IBM_Information_Center": { + }, + "SupportDetail.SI.IBM_Informix_4GL_Compiler": { + }, + "SupportDetail.SI.IBM_Informix_4GL_Interactive_Debugger": { + }, + "SupportDetail.SI.IBM_Informix_4GL_Rapid_Development_System": { + }, + "SupportDetail.SI.IBM_Informix_Data_Director_for_Web": { + }, + "SupportDetail.SI.IBM_Informix_Dynamic_Server": { + }, + "SupportDetail.SI.IBM_Informix_Enterprise_Gateway_Manager_with_DRDA": { + }, + "SupportDetail.SI.IBM_Informix_I_Spy": { + }, + "SupportDetail.SI.IBM_Informix_MaxConnect": { + }, + "SupportDetail.SI.IBM_Informix_SQL_Development": { + }, + "SupportDetail.SI.IBM_Informix_SQL_Runtime": { + }, + "SupportDetail.SI.IBM_InfoSphere_BigInsights": { + }, + "SupportDetail.SI.IBM_InfoSphere_Big_Match_for_Hadoop": { + }, + "SupportDetail.SI.IBM_InfoSphere_Business_Glossary": { + }, + "SupportDetail.SI.IBM_InfoSphere_Change_Data_Capture": { + }, + "SupportDetail.SI.IBM_InfoSphere_DataStage": { + }, + "SupportDetail.SI.IBM_InfoSphere_Data_Event_Publisher": { + }, + "SupportDetail.SI.IBM_InfoSphere_Discovery": { + }, + "SupportDetail.SI.IBM_InfoSphere_Enterprise_Records": { + }, + "SupportDetail.SI.IBM_InfoSphere_Federation_Server": { + }, + "SupportDetail.SI.IBM_InfoSphere_Guardium_Data_Redaction": { + }, + "SupportDetail.SI.IBM_InfoSphere_Guardium_S_TAP": { + }, + "SupportDetail.SI.IBM_InfoSphere_Information_Analyzer": { + }, + "SupportDetail.SI.IBM_InfoSphere_Information_Server": { + }, + "SupportDetail.SI.IBM_InfoSphere_Master_Data_Management_Server": { + }, + "SupportDetail.SI.IBM_InfoSphere_Replication_Server": { + }, + "SupportDetail.SI.IBM_InfoSphere_Streams": { + }, + "SupportDetail.SI.IBM_InfoSphere_Warehouse": { + }, + "SupportDetail.SI.IBM_Installation_Manager": { + }, + "SupportDetail.SI.IBM_License_Metric_Tool": { + }, + "SupportDetail.SI.IBM_Lotus_1_2_3": { + }, + "SupportDetail.SI.IBM_Lotus_Connections": { + }, + "SupportDetail.SI.IBM_Lotus_Domino_Document_Manager": { + }, + "SupportDetail.SI.IBM_Lotus_Expeditor": { + }, + "SupportDetail.SI.IBM_Lotus_Notes_and_Domino": { + }, + "SupportDetail.SI.IBM_Lotus_Organizer": { + }, + "SupportDetail.SI.IBM_Lotus_Quickr": { + }, + "SupportDetail.SI.IBM_Lotus_Sametime": { + }, + "SupportDetail.SI.IBM_Maximo_Asset_Management": { + }, + "SupportDetail.SI.IBM_Mobile_Portal_Accelerator": { + }, + "SupportDetail.SI.IBM_MQ": { + }, + "SupportDetail.SI.IBM_Netezza_Platform_Software": { + }, + "SupportDetail.SI.IBM_NetQuestion": { + }, + "SupportDetail.SI.IBM_Network_Installation_Management": { + }, + "SupportDetail.SI.IBM_OmniFind_Discovery_Edition": { + }, + "SupportDetail.SI.IBM_OmniFind_Enterprise_Edition": { + }, + "SupportDetail.SI.IBM_Operational_Decision_Manager": { + }, + "SupportDetail.SI.IBM_Optim_Performance_Manager": { + }, + "SupportDetail.SI.IBM_Personal_Communications": { + }, + "SupportDetail.SI.IBM_Rational_AppScan_Enterprise_Edition": { + }, + "SupportDetail.SI.IBM_Rational_AppScan_Source_Edition": { + }, + "SupportDetail.SI.IBM_Rational_Asset_Analyzer": { + }, + "SupportDetail.SI.IBM_Rational_Asset_Manager": { + }, + "SupportDetail.SI.IBM_Rational_Build_Forge": { + }, + "SupportDetail.SI.IBM_Rational_Business_Developer": { + }, + "SupportDetail.SI.IBM_Rational_ClearCase": { + }, + "SupportDetail.SI.IBM_Rational_ClearQuest": { + }, + "SupportDetail.SI.IBM_Rational_Functional_Tester": { + }, + "SupportDetail.SI.IBM_Rational_Host_On_Demand": { + }, + "SupportDetail.SI.IBM_Rational_Jazz_Server": { + }, + "SupportDetail.SI.IBM_Rational_Method_Composer": { + }, + "SupportDetail.SI.IBM_Rational_Policy_Tester": { + }, + "SupportDetail.SI.IBM_Rational_Requirements_Composer": { + }, + "SupportDetail.SI.IBM_Rational_RequisitePro": { + }, + "SupportDetail.SI.IBM_Rational_Robot": { + }, + "SupportDetail.SI.IBM_Rational_Rose": { + }, + "SupportDetail.SI.IBM_Rational_Rose_Developer_for_UNIX": { + }, + "SupportDetail.SI.IBM_Rational_Software_Analyzer": { + }, + "SupportDetail.SI.IBM_Rational_Team_Concert": { + }, + "SupportDetail.SI.IBM_Records_Manager": { + }, + "SupportDetail.SI.IBM_Red_Brick_Warehouse": { + }, + "SupportDetail.SI.IBM_Spectrum_Scale": { + }, + "SupportDetail.SI.IBM_Sterling_B2B_Integrator": { + }, + "SupportDetail.SI.IBM_Sterling_File_Gateway": { + }, + "SupportDetail.SI.IBM_Sterling_Secure_Proxy": { + }, + "SupportDetail.SI.IBM_Systems_Director": { + }, + "SupportDetail.SI.IBM_Tivoli_Access_Manager_for_Business_Integration": { + }, + "SupportDetail.SI.IBM_Tivoli_Access_Manager_for_eBusiness": { + }, + "SupportDetail.SI.IBM_Tivoli_Access_Manager_for_Enterprise_Single_Sign_On": { + }, + "SupportDetail.SI.IBM_Tivoli_Access_Manager_for_Operating_Systems": { + }, + "SupportDetail.SI.IBM_Tivoli_Application_Dependency_Discovery_Manager": { + }, + "SupportDetail.SI.IBM_Tivoli_CAM_for_SOA_Platform": { + }, + "SupportDetail.SI.IBM_Tivoli_CAM_for_Transactions": { + }, + "SupportDetail.SI.IBM_Tivoli_Change_and_Configuration_Management_Database": { + }, + "SupportDetail.SI.IBM_Tivoli_Composite_Application_Manager_for_Application_Diagnostics": { + }, + "SupportDetail.SI.IBM_Tivoli_Composite_Application_Manager_for_Internet_Service_Monitoring": { + }, + "SupportDetail.SI.IBM_Tivoli_Composite_Application_Manager_for_J2EE": { + }, + "SupportDetail.SI.IBM_Tivoli_Composite_Application_Manager_for_Response_Time": { + }, + "SupportDetail.SI.IBM_Tivoli_Composite_Application_Manager_for_Response_Time_Tracking": { + }, + "SupportDetail.SI.IBM_Tivoli_Composite_Application_Manager_for_WebSphere": { + }, + "SupportDetail.SI.IBM_Tivoli_Data_Exchange": { + }, + "SupportDetail.SI.IBM_Tivoli_Data_Warehouse": { + }, + "SupportDetail.SI.IBM_Tivoli_Directory_Integrator": { + }, + "SupportDetail.SI.IBM_Tivoli_Directory_Server": { + }, + "SupportDetail.SI.IBM_Tivoli_Enterprise_Console": { + }, + "SupportDetail.SI.IBM_Tivoli_Integrated_Portal": { + }, + "SupportDetail.SI.IBM_Tivoli_Intelligent_Orchestrator": { + }, + "SupportDetail.SI.IBM_Tivoli_IntelliWatch": { + }, + "SupportDetail.SI.IBM_Tivoli_Key_Lifecycle_Manager": { + }, + "SupportDetail.SI.IBM_Tivoli_License_Compliance_Manager": { + }, + "SupportDetail.SI.IBM_Tivoli_Management_Framework": { + }, + "SupportDetail.SI.IBM_Tivoli_Monitoring": { + }, + "SupportDetail.SI.IBM_Tivoli_Monitoring_for_Virtual_Environments": { + }, + "SupportDetail.SI.IBM_Tivoli_Netcool_Impact": { + }, + "SupportDetail.SI.IBM_Tivoli_Netcool_OMNIbus": { + }, + "SupportDetail.SI.IBM_Tivoli_Netcool_Reporter": { + }, + "SupportDetail.SI.IBM_Tivoli_Netcool_Webtop": { + }, + "SupportDetail.SI.IBM_Tivoli_NetView": { + }, + "SupportDetail.SI.IBM_Tivoli_Network_Manager_IP_Edition": { + }, + "SupportDetail.SI.IBM_Tivoli_OMEGAMON_XE_for_Messaging": { + }, + "SupportDetail.SI.IBM_Tivoli_Provisioning_Manager": { + }, + "SupportDetail.SI.IBM_Tivoli_Remote_Control": { + }, + "SupportDetail.SI.IBM_Tivoli_Security_Compliance_Manager": { + }, + "SupportDetail.SI.IBM_Tivoli_Service_Automation_Manager": { + }, + "SupportDetail.SI.IBM_Tivoli_Service_Request_Manager": { + }, + "SupportDetail.SI.IBM_Tivoli_Storage_FlashCopy_Manager": { + }, + "SupportDetail.SI.IBM_Tivoli_Storage_Manager": { + }, + "SupportDetail.SI.IBM_Tivoli_Storage_Manager_for_Databases": { + }, + "SupportDetail.SI.IBM_Tivoli_Storage_Manager_for_ERP": { + }, + "SupportDetail.SI.IBM_Tivoli_Storage_Manager_for_Mail": { + }, + "SupportDetail.SI.IBM_Tivoli_Storage_Manager_for_Storage_Area_Networks": { + }, + "SupportDetail.SI.IBM_Tivoli_Storage_Manager_for_System_Backup_and_Recovery": { + }, + "SupportDetail.SI.IBM_Tivoli_Storage_Productivity_Center": { + }, + "SupportDetail.SI.IBM_Tivoli_System_Automation_for_Integrated_Operations_Management": { + }, + "SupportDetail.SI.IBM_Tivoli_System_Automation_for_Multiplatforms": { + }, + "SupportDetail.SI.IBM_Tivoli_Usage_and_Accounting_Manager": { + }, + "SupportDetail.SI.IBM_Tivoli_Workload_Scheduler": { + }, + "SupportDetail.SI.IBM_TXSeries_Multiplatform": { + }, + "SupportDetail.SI.IBM_UniData": { + }, + "SupportDetail.SI.IBM_Watson_Explorer": { + }, + "SupportDetail.SI.IBM_WebSphere_Application_Server": { + }, + "SupportDetail.SI.IBM_WebSphere_Application_Server_Liberty_Core": { + }, + "SupportDetail.SI.IBM_WebSphere_Business_Events": { + }, + "SupportDetail.SI.IBM_WebSphere_Business_Modeler": { + }, + "SupportDetail.SI.IBM_WebSphere_Business_Monitor": { + }, + "SupportDetail.SI.IBM_WebSphere_Communications_Server": { + }, + "SupportDetail.SI.IBM_WebSphere_Enterprise_Service_Bus": { + }, + "SupportDetail.SI.IBM_WebSphere_Extended_Deployment": { + }, + "SupportDetail.SI.IBM_WebSphere_Extended_Deployment_Compute_Grid": { + }, + "SupportDetail.SI.IBM_WebSphere_ILOG_JRules_BRMS": { + }, + "SupportDetail.SI.IBM_WebSphere_Integration_Developer": { + }, + "SupportDetail.SI.IBM_WebSphere_InterChange_Server": { + }, + "SupportDetail.SI.IBM_WebSphere_MQ": { + }, + "SupportDetail.SI.IBM_WebSphere_MQ_Message_Broker": { + }, + "SupportDetail.SI.IBM_WebSphere_MQ_Workflow": { + }, + "SupportDetail.SI.IBM_WebSphere_Partner_Gateway": { + }, + "SupportDetail.SI.IBM_WebSphere_Portal_Server": { + }, + "SupportDetail.SI.IBM_WebSphere_Process_Server": { + }, + "SupportDetail.SI.IBM_WebSphere_Service_Registry_and_Repository": { + }, + "SupportDetail.SI.IBM_WebSphere_Studio": { + }, + "SupportDetail.SI.IBM_WebSphere_Transformation_Extender": { + }, + "SupportDetail.SI.IBM_WebSphere_Translation_Server": { + }, + "SupportDetail.SI.IBM_Worklight": { + }, + "SupportDetail.SI.IBM_Workload_Manager": { + }, + "SupportDetail.SI.Informatica_PowerCenter": { + }, + "SupportDetail.SI.Informatica_Vibe_Data_Stream": { + }, + "SupportDetail.SI.Ingres_Database": { + }, + "SupportDetail.SI.InterSect_Alliance_Snare_Agent": { + }, + "SupportDetail.SI.JacORB": { + }, + "SupportDetail.SI.Jenkins": { + }, + "SupportDetail.SI.Kognitio_Analytical_Platform": { + }, + "SupportDetail.SI.Kubernetes": { + }, + "SupportDetail.SI.LexisNexis_Risk_Solutions_HPCC_Systems": { + }, + "SupportDetail.SI.Lighttpd_Web_Server": { + }, + "SupportDetail.SI.Logstash": { + }, + "SupportDetail.SI.Macromedia_JRun": { + }, + "SupportDetail.SI.Mail_Ru_Tarantool": { + }, + "SupportDetail.SI.MapR": { + }, + "SupportDetail.SI.MariaDB_Server": { + }, + "SupportDetail.SI.MarkLogic": { + }, + "SupportDetail.SI.McAfee_Common_Framework": { + }, + "SupportDetail.SI.McAfee_Common_Management_Agent": { + }, + "SupportDetail.SI.McAfee_ePolicy_Orchestrator": { + }, + "SupportDetail.SI.McAfee_Host_Intrusion_Prevention": { + }, + "SupportDetail.SI.McAfee_MOVE": { + }, + "SupportDetail.SI.McAfee_Policy_Auditor": { + }, + "SupportDetail.SI.McAfee_VirusScan": { + }, + "SupportDetail.SI.Memcached": { + }, + "SupportDetail.SI.MemSQL": { + }, + "SupportDetail.SI.Mesosphere_DC_OS": { + }, + "SupportDetail.SI.Microsoft_Active_Directory_Domain_Services": { + }, + "SupportDetail.SI.Microsoft_Antigen": { + }, + "SupportDetail.SI.Microsoft_Application_Center": { + }, + "SupportDetail.SI.Microsoft_BizTalk_Server": { + }, + "SupportDetail.SI.Microsoft_Cluster_Server": { + }, + "SupportDetail.SI.Microsoft_Commerce_Server": { + }, + "SupportDetail.SI.Microsoft_Connected_Services_Framework": { + }, + "SupportDetail.SI.Microsoft_DNS_Server": { + }, + "SupportDetail.SI.Microsoft_Dynamics_CRM": { + }, + "SupportDetail.SI.Microsoft_Exchange_Server": { + }, + "SupportDetail.SI.Microsoft_Forefront_Identity_Manager": { + }, + "SupportDetail.SI.Microsoft_Forefront_Protection_Server_Management_Console": { + }, + "SupportDetail.SI.Microsoft_Forefront_Server_Security_Management_Console": { + }, + "SupportDetail.SI.Microsoft_Forefront_Threat_Management_Gateway": { + }, + "SupportDetail.SI.Microsoft_Host_Integration_Server": { + }, + "SupportDetail.SI.Microsoft_Hyper_V_Server": { + }, + "SupportDetail.SI.Microsoft_Identity_Lifecycle_Manager": { + }, + "SupportDetail.SI.Microsoft_Internet_Information_Services": { + }, + "SupportDetail.SI.Microsoft_ISA_Server": { + }, + "SupportDetail.SI.Microsoft_Lightweight_Directory_Services": { + }, + "SupportDetail.SI.Microsoft_Lync": { + }, + "SupportDetail.SI.Microsoft_Message_Queuing": { + }, + "SupportDetail.SI.Microsoft_Office_Communications_Server": { + }, + "SupportDetail.SI.Microsoft_Office_Communicator": { + }, + "SupportDetail.SI.Microsoft_Office_Groove": { + }, + "SupportDetail.SI.Microsoft_Office_Project_Portfolio_Server": { + }, + "SupportDetail.SI.Microsoft_Office_Web_Apps_Server": { + }, + "SupportDetail.SI.Microsoft_Operations_Manager__MOM_": { + }, + "SupportDetail.SI.Microsoft_PerformancePoint_Server": { + }, + "SupportDetail.SI.Microsoft_ProClarity_Analytics_Server": { + }, + "SupportDetail.SI.Microsoft_Project_Server": { + }, + "SupportDetail.SI.Microsoft_SharePoint": { + }, + "SupportDetail.SI.Microsoft_SharePoint_Foundation": { + }, + "SupportDetail.SI.Microsoft_Speech_Server": { + }, + "SupportDetail.SI.Microsoft_SQL_Server": { + }, + "SupportDetail.SI.Microsoft_SQL_Server_Analysis_Services": { + }, + "SupportDetail.SI.Microsoft_SQL_Server_Integration_Services": { + }, + "SupportDetail.SI.Microsoft_SQL_Server_Reporting_Services": { + }, + "SupportDetail.SI.Microsoft_Systems_Management_Server": { + }, + "SupportDetail.SI.Microsoft_System_Center_Configuration_Manager": { + }, + "SupportDetail.SI.Microsoft_System_Center_Data_Protection_Manager": { + }, + "SupportDetail.SI.Microsoft_System_Center_Operations_Manager": { + }, + "SupportDetail.SI.Microsoft_System_Center_Reporting_Manager": { + }, + "SupportDetail.SI.Microsoft_System_Center_Virtual_Machine_Manager": { + }, + "SupportDetail.SI.Microsoft_Visual_Studio": { + }, + "SupportDetail.SI.Microsoft_Visual_Studio_Team_Foundation_Server": { + }, + "SupportDetail.SI.Microsoft_Windows_HPC_Server": { + }, + "SupportDetail.SI.Microsoft_Windows_Rights_Management_Services": { + }, + "SupportDetail.SI.Microsoft_Windows_SharePoint_Services": { + }, + "SupportDetail.SI.Microsoft__NET": { + }, + "SupportDetail.SI.Micro_Focus_Silk_Performer": { + }, + "SupportDetail.SI.Mirantis_OpenStack": { + }, + "SupportDetail.SI.MongoDB": { + }, + "SupportDetail.SI.MuleSoft_Mule_runtime_engine": { + }, + "SupportDetail.SI.MySQL_RDBMS": { + }, + "SupportDetail.SI.Neo4j": { + }, + "SupportDetail.SI.Netflix_Eureka": { + }, + "SupportDetail.SI.New_Relic_Infrastructure": { + }, + "SupportDetail.SI.New_Relic_Servers": { + }, + "SupportDetail.SI.Nginx_Webserver": { + }, + "SupportDetail.SI.Novell_eDirectory": { + }, + "SupportDetail.SI.NRG_Global_AppsWatch": { + }, + "SupportDetail.SI.NRG_Global_ScenarioBuilder": { + }, + "SupportDetail.SI.NuoDB": { + }, + "SupportDetail.SI.Objectivity_Objectivity_DB": { + }, + "SupportDetail.SI.ObserveIT": { + }, + "SupportDetail.SI.OpenLDAP": { + }, + "SupportDetail.SI.OpenStack": { + }, + "SupportDetail.SI.OpenText_Fax_Server": { + }, + "SupportDetail.SI.OpenText_Portal": { + }, + "SupportDetail.SI.Open_Source_etcd": { + }, + "SupportDetail.SI.Open_Source_Tripwire": { + }, + "SupportDetail.SI.Opscode_Chef": { + }, + "SupportDetail.SI.Oracle_Access_Manager": { + }, + "SupportDetail.SI.Oracle_Airlines_Data_Model": { + }, + "SupportDetail.SI.Oracle_API_Gateway": { + }, + "SupportDetail.SI.Oracle_Application_Express": { + }, + "SupportDetail.SI.Oracle_Application_Server": { + }, + "SupportDetail.SI.Oracle_Application_Testing_Suite": { + }, + "SupportDetail.SI.Oracle_Audit_Vault_and_Database_Firewall": { + }, + "SupportDetail.SI.Oracle_Berkeley_DB": { + }, + "SupportDetail.SI.Oracle_Business_Activity_Monitoring": { + }, + "SupportDetail.SI.Oracle_Business_Intelligence": { + }, + "SupportDetail.SI.Oracle_Business_Intelligence_Publisher": { + }, + "SupportDetail.SI.Oracle_Business_Process_Management": { + }, + "SupportDetail.SI.Oracle_Business_Transaction_Management": { + }, + "SupportDetail.SI.Oracle_Cloud_File_System": { + }, + "SupportDetail.SI.Oracle_Clusterware": { + }, + "SupportDetail.SI.Oracle_Coherence": { + }, + "SupportDetail.SI.Oracle_Communications_Billing_and_Revenue_Management": { + }, + "SupportDetail.SI.Oracle_Connection_Manager": { + }, + "SupportDetail.SI.Oracle_Content_DB": { + }, + "SupportDetail.SI.Oracle_Database_Lite": { + }, + "SupportDetail.SI.Oracle_Data_Integrator": { + }, + "SupportDetail.SI.Oracle_Data_Service_Integrator": { + }, + "SupportDetail.SI.Oracle_Directory_Server": { + }, + "SupportDetail.SI.Oracle_Enterprise_Data_Quality": { + }, + "SupportDetail.SI.Oracle_Enterprise_Manager": { + }, + "SupportDetail.SI.Oracle_Enterprise_Repository": { + }, + "SupportDetail.SI.Oracle_Enterprise_Service_Bus": { + }, + "SupportDetail.SI.Oracle_Enterprise_Single_Sign_On": { + }, + "SupportDetail.SI.Oracle_Entitlements_Server": { + }, + "SupportDetail.SI.Oracle_Essbase": { + }, + "SupportDetail.SI.Oracle_Express": { + }, + "SupportDetail.SI.Oracle_E_Business_Suite": { + }, + "SupportDetail.SI.Oracle_Forms": { + }, + "SupportDetail.SI.Oracle_for_Financial_Services": { + }, + "SupportDetail.SI.Oracle_Fusion_Middleware": { + }, + "SupportDetail.SI.Oracle_Gateways": { + }, + "SupportDetail.SI.Oracle_GlassFish_Server": { + }, + "SupportDetail.SI.Oracle_GoldenGate": { + }, + "SupportDetail.SI.Oracle_GoldenGate_Veridata": { + }, + "SupportDetail.SI.Oracle_HTTP_Server": { + }, + "SupportDetail.SI.Oracle_Hyperion_Business_Intelligence_Plus": { + }, + "SupportDetail.SI.Oracle_Hyperion_Data_Relationship_Management": { + }, + "SupportDetail.SI.Oracle_Hyperion_Financial_Data_Quality_Management": { + }, + "SupportDetail.SI.Oracle_Hyperion_Financial_Management": { + }, + "SupportDetail.SI.Oracle_Hyperion_Planning": { + }, + "SupportDetail.SI.Oracle_Identity_Analytics": { + }, + "SupportDetail.SI.Oracle_Identity_Manager": { + }, + "SupportDetail.SI.Oracle_Internet_Application_Server": { + }, + "SupportDetail.SI.Oracle_Internet_Directory": { + }, + "SupportDetail.SI.Oracle_Jolt": { + }, + "SupportDetail.SI.Oracle_Loader_for_Hadoop": { + }, + "SupportDetail.SI.Oracle_MySQL_Server": { + }, + "SupportDetail.SI.Oracle_NoSQL_Database": { + }, + "SupportDetail.SI.Oracle_RDBMS": { + }, + "SupportDetail.SI.Oracle_Real_Application_Clusters": { + }, + "SupportDetail.SI.Oracle_Reports": { + }, + "SupportDetail.SI.Oracle_Retail_Data_Model": { + }, + "SupportDetail.SI.Oracle_Secure_Enterprise_Search": { + }, + "SupportDetail.SI.Oracle_Secure_Global_Desktop": { + }, + "SupportDetail.SI.Oracle_Service_Oriented_Architecture": { + }, + "SupportDetail.SI.Oracle_Service_Registry": { + }, + "SupportDetail.SI.Oracle_Siebel_CRM": { + }, + "SupportDetail.SI.Oracle_SQL_Connector_for_HDFS": { + }, + "SupportDetail.SI.Oracle_SQL_Developer_Data_Modeler": { + }, + "SupportDetail.SI.Oracle_TimesTen_In_Memory_Database": { + }, + "SupportDetail.SI.Oracle_Traffic_Director": { + }, + "SupportDetail.SI.Oracle_Transparent_Gateways": { + }, + "SupportDetail.SI.Oracle_Tuxedo_Message_Queue": { + }, + "SupportDetail.SI.Oracle_Tuxedo_System_and_Application_Monitor_Plus": { + }, + "SupportDetail.SI.Oracle_UCM": { + }, + "SupportDetail.SI.Oracle_Utilities_Data_Model": { + }, + "SupportDetail.SI.Oracle_Vantive": { + }, + "SupportDetail.SI.Oracle_VM": { + }, + "SupportDetail.SI.Oracle_VM_Server_for_SPARC": { + }, + "SupportDetail.SI.Oracle_VM_VirtualBox": { + }, + "SupportDetail.SI.Oracle_WebCenter_Content": { + }, + "SupportDetail.SI.Oracle_WebCenter_Interaction": { + }, + "SupportDetail.SI.Oracle_WebCenter_Portal": { + }, + "SupportDetail.SI.Oracle_WebCenter_Sites": { + }, + "SupportDetail.SI.Oracle_WebLogic_Integration": { + }, + "SupportDetail.SI.Oracle_WebLogic_Server": { + }, + "SupportDetail.SI.Oracle_Workflow": { + }, + "SupportDetail.SI.Orient_Technologies_Ltd_OrientDB": { + }, + "SupportDetail.SI.OW2_Joram": { + }, + "SupportDetail.SI.Paradigm4_SciDB": { + }, + "SupportDetail.SI.Parallels_Virtuozzo_Containers": { + }, + "SupportDetail.SI.Percona_Server": { + }, + "SupportDetail.SI.Perforce_Helix": { + }, + "SupportDetail.SI.Pivotal_GemFire": { + }, + "SupportDetail.SI.Pivotal_GemFire_XD": { + }, + "SupportDetail.SI.Pivotal_Greenplum_Database": { + }, + "SupportDetail.SI.Pivotal_RabbitMQ": { + }, + "SupportDetail.SI.PostgreSQL_RDBMS": { + }, + "SupportDetail.SI.Progress_ObjectStore": { + }, + "SupportDetail.SI.Progress_OpenEdge_RDBMS": { + }, + "SupportDetail.SI.Proxmox_Virtual_Environment": { + }, + "SupportDetail.SI.Puppet_Labs_Puppet": { + }, + "SupportDetail.SI.Qualys_Cloud_Agent": { + }, + "SupportDetail.SI.Quest_ActiveRoles_Server": { + }, + "SupportDetail.SI.Quest_Foglight": { + }, + "SupportDetail.SI.Quest_Migration_Manager_for_Exchange": { + }, + "SupportDetail.SI.Quest_PerformaSure": { + }, + "SupportDetail.SI.Quest_Recovery_Manager_for_SharePoint": { + }, + "SupportDetail.SI.Quest_Reporter": { + }, + "SupportDetail.SI.Quest_Shareplex_for_Oracle": { + }, + "SupportDetail.SI.Quest_Spotlight": { + }, + "SupportDetail.SI.Quest_SQL_Optimizer_for_DB2_LUW": { + }, + "SupportDetail.SI.Quest_SQL_Optimizer_for_Oracle": { + }, + "SupportDetail.SI.Quest_SQL_Optimizer_for_SQL_Server": { + }, + "SupportDetail.SI.Quest_SQL_Optimizer_for_Sybase_ASE": { + }, + "SupportDetail.SI.Quest_Toad_for_DB2": { + }, + "SupportDetail.SI.Quest_Toad_for_MySQL": { + }, + "SupportDetail.SI.Quest_Toad_for_Oracle": { + }, + "SupportDetail.SI.Quest_Toad_for_SQL_Server": { + }, + "SupportDetail.SI.Rapid7_Nexpose": { + }, + "SupportDetail.SI.Rational_Performance_Tester": { + }, + "SupportDetail.SI.RedHat_Apache_Stronghold_Webserver": { + }, + "SupportDetail.SI.RedHat_CloudForms_Management_Engine": { + }, + "SupportDetail.SI.Redis_Redis": { + }, + "SupportDetail.SI.Red_Hat_Cluster_Suite": { + }, + "SupportDetail.SI.Red_Hat_Directory_Server": { + }, + "SupportDetail.SI.Red_Hat_Enterprise_Virtualization": { + }, + "SupportDetail.SI.Red_Hat_Global_File_System": { + }, + "SupportDetail.SI.Red_Hat_Hibernate": { + }, + "SupportDetail.SI.Red_Hat_HornetQ": { + }, + "SupportDetail.SI.Red_Hat_JBoss_Application_Server": { + }, + "SupportDetail.SI.Red_Hat_JBoss_Enterprise_Web_Server": { + }, + "SupportDetail.SI.Red_Hat_JBoss_Messaging": { + }, + "SupportDetail.SI.Red_Hat_JBoss_Portal": { + }, + "SupportDetail.SI.Red_Hat_JBoss_Rules": { + }, + "SupportDetail.SI.Red_Hat_KVM": { + }, + "SupportDetail.SI.Red_Hat_MRG": { + }, + "SupportDetail.SI.Revitas_CARS": { + }, + "SupportDetail.SI.RIM_BlackBerry_Enterprise_Server": { + }, + "SupportDetail.SI.Rocket_UniData": { + }, + "SupportDetail.SI.Rundeck": { + }, + "SupportDetail.SI.SafeNet_Sentinel_License_Manager": { + }, + "SupportDetail.SI.Sailpoint_IdentityIQ": { + }, + "SupportDetail.SI.SaltStack_Salt": { + }, + "SupportDetail.SI.SAP_BusinessObjects_Data_Integrator": { + }, + "SupportDetail.SI.SAP_Business_Explorer_BI": { + }, + "SupportDetail.SI.SAP_Business_Suite": { + }, + "SupportDetail.SI.SAP_ECC": { + }, + "SupportDetail.SI.SAP_HANA": { + }, + "SupportDetail.SI.SAP_MaxDB": { + }, + "SupportDetail.SI.SAP_NetWeaver": { + }, + "SupportDetail.SI.SAP_Netweaver_Suite": { + }, + "SupportDetail.SI.SAP_R_3": { + }, + "SupportDetail.SI.SAP_TREX": { + }, + "SupportDetail.SI.SAS_Foundation_Services": { + }, + "SupportDetail.SI.SAS_Server": { + }, + "SupportDetail.SI.Scribe_Insight": { + }, + "SupportDetail.SI.Sensu_Sensu": { + }, + "SupportDetail.SI.SnapLogic_SnapLogic": { + }, + "SupportDetail.SI.Snort": { + }, + "SupportDetail.SI.Software_AG_Event_Replicator_Target_Adapter": { + }, + "SupportDetail.SI.Software_AG_webMethods_Broker": { + }, + "SupportDetail.SI.Software_AG_webMethods_Integration_Server": { + }, + "SupportDetail.SI.Software_AG_webMethods_Optimize_for_Infrastructure": { + }, + "SupportDetail.SI.SolarWinds_IP_Address_Manager": { + }, + "SupportDetail.SI.SolarWinds_Network_Configuration_Manager": { + }, + "SupportDetail.SI.SolarWinds_Network_Performance_Monitor": { + }, + "SupportDetail.SI.SolarWinds_Server_and_Application_Monitor": { + }, + "SupportDetail.SI.SolarWinds_Virtualization_Manager": { + }, + "SupportDetail.SI.SolarWinds_Web_Help_Desk": { + }, + "SupportDetail.SI.Sophos_Anti_Virus": { + }, + "SupportDetail.SI.Splunk": { + }, + "SupportDetail.SI.Sterling_Commerce_Connect_Direct": { + }, + "SupportDetail.SI.Sterling_Commerce_Control_Center": { + }, + "SupportDetail.SI.Sumo_Logic": { + }, + "SupportDetail.SI.SunGard_CMS_LDRPS": { + }, + "SupportDetail.SI.Sun_GlassFish_Enterprise_Server": { + }, + "SupportDetail.SI.Sun_Java_System_Directory_Server": { + }, + "SupportDetail.SI.Sun_Java_System_Webserver": { + }, + "SupportDetail.SI.Sun_Java_System_Web_Proxy_Server": { + }, + "SupportDetail.SI.Sun_Management_Center": { + }, + "SupportDetail.SI.Sun_MySQL_Database_Server": { + }, + "SupportDetail.SI.Sun_Solaris_Cluster": { + }, + "SupportDetail.SI.Sybase_Adaptive_Server_Enterprise": { + }, + "SupportDetail.SI.Sybase_Adaptive_Server_IQ": { + }, + "SupportDetail.SI.Sybase_Direct_Connect_for_Oracle": { + }, + "SupportDetail.SI.Sybase_Enterprise_Application_Server": { + }, + "SupportDetail.SI.Sybase_Enterprise_Connect_Data_Access": { + }, + "SupportDetail.SI.Sybase_jConnect_for_JDBC": { + }, + "SupportDetail.SI.Sybase_Mirror_Activator": { + }, + "SupportDetail.SI.Sybase_OpenSwitch": { + }, + "SupportDetail.SI.Sybase_Open_Server": { + }, + "SupportDetail.SI.Sybase_PowerBuilder": { + }, + "SupportDetail.SI.Sybase_PowerDesigner": { + }, + "SupportDetail.SI.Sybase_Replication_Agent_software": { + }, + "SupportDetail.SI.Sybase_Replication_Server": { + }, + "SupportDetail.SI.Sybase_SQL_Anywhere__ASA_": { + }, + "SupportDetail.SI.Symantec_Altiris_Patch_Management_Solution_Linux": { + }, + "SupportDetail.SI.Symantec_Altiris_Patch_Management_Solution_Windows": { + }, + "SupportDetail.SI.Symantec_Anti_Virus": { + }, + "SupportDetail.SI.Symantec_Backup_Exec": { + }, + "SupportDetail.SI.Symantec_Backup_Exec_System_Recovery": { + }, + "SupportDetail.SI.Symantec_Control_Compliance_Suite": { + }, + "SupportDetail.SI.Symantec_Critical_System_Protection": { + }, + "SupportDetail.SI.Symantec_Deployment_Solution": { + }, + "SupportDetail.SI.Symantec_Endpoint_Protection": { + }, + "SupportDetail.SI.Symantec_Enterprise_Security_Manager": { + }, + "SupportDetail.SI.Symantec_Intruder_Alert": { + }, + "SupportDetail.SI.Symantec_Inventory_Solution": { + }, + "SupportDetail.SI.Symantec_License_Inventory_Manager": { + }, + "SupportDetail.SI.Symantec_Management_Platform": { + }, + "SupportDetail.SI.Symantec_NetBackup_PureDisk": { + }, + "SupportDetail.SI.Symantec_Security_Information_Manager": { + }, + "SupportDetail.SI.Symantec_Server_Management_Suite": { + }, + "SupportDetail.SI.Symantec_Software_Management_Solution": { + }, + "SupportDetail.SI.Symantec_VERITAS_Cluster_Server": { + }, + "SupportDetail.SI.Symantec_VERITAS_CommandCentral_Storage": { + }, + "SupportDetail.SI.Symantec_Veritas_Configuration_Manager": { + }, + "SupportDetail.SI.Symantec_VERITAS_Enterprise_Administrator": { + }, + "SupportDetail.SI.Symantec_VERITAS_Enterprise_Vault": { + }, + "SupportDetail.SI.Symantec_VERITAS_NetBackup": { + }, + "SupportDetail.SI.Symantec_VERITAS_Replication_Exec": { + }, + "SupportDetail.SI.Symantec_VERITAS_SANPoint_Control": { + }, + "SupportDetail.SI.Symantec_VERITAS_Storage_Foundation": { + }, + "SupportDetail.SI.Symantec_Veritas_Storage_Foundation_Cluster_File_System": { + }, + "SupportDetail.SI.Symantec_VERITAS_Storage_Foundation_File_System": { + }, + "SupportDetail.SI.Symantec_VERITAS_Storage_Foundation_for_Windows": { + }, + "SupportDetail.SI.Symantec_VERITAS_Volume_Manager": { + }, + "SupportDetail.SI.Symantec_VERITAS_Volume_Replicator": { + }, + "SupportDetail.SI.Symantec_Workflow": { + }, + "SupportDetail.SI.Symphony_EYC_GAIA_Application_Server": { + }, + "SupportDetail.SI.Talend_Studio": { + }, + "SupportDetail.SI.Teradata_Aster_Database": { + }, + "SupportDetail.SI.Teradata_Database": { + }, + "SupportDetail.SI.Terracotta_BigMemory_Max": { + }, + "SupportDetail.SI.Terracotta_Universal_Messaging": { + }, + "SupportDetail.SI.Terrastore": { + }, + "SupportDetail.SI.TIBCO_ActiveMatrix_BusinessWorks": { + }, + "SupportDetail.SI.TIBCO_ActiveSpaces": { + }, + "SupportDetail.SI.TIBCO_Adapter_for_COM": { + }, + "SupportDetail.SI.TIBCO_Adapter_for_Files": { + }, + "SupportDetail.SI.TIBCO_Adapter_for_iSeries": { + }, + "SupportDetail.SI.TIBCO_Adapter_for_PeopleSoft": { + }, + "SupportDetail.SI.TIBCO_Adapter_for_Remedy": { + }, + "SupportDetail.SI.TIBCO_Administrator": { + }, + "SupportDetail.SI.TIBCO_BusinessConnect": { + }, + "SupportDetail.SI.TIBCO_BusinessEvents": { + }, + "SupportDetail.SI.TIBCO_Enterprise_Message_Service": { + }, + "SupportDetail.SI.TIBCO_Hawk_Agent": { + }, + "SupportDetail.SI.TIBCO_iProcess": { + }, + "SupportDetail.SI.TIBCO_Master_Data_Management": { + }, + "SupportDetail.SI.TIBCO_Rendezvous": { + }, + "SupportDetail.SI.TIBCO_Runtime_Agent": { + }, + "SupportDetail.SI.Tideway_Foundation": { + }, + "SupportDetail.SI.Trend_Micro_Deep_Security": { + }, + "SupportDetail.SI.Trend_Micro_Smart_Protection_Server": { + }, + "SupportDetail.SI.Tripwire_Enterprise": { + }, + "SupportDetail.SI.UC4_Operations_Manager": { + }, + "SupportDetail.SI.Varnish_Cache": { + }, + "SupportDetail.SI.Versant_Object_Database": { + }, + "SupportDetail.SI.VMware_Consolidated_Backup": { + }, + "SupportDetail.SI.VMware_ESX_Server": { + }, + "SupportDetail.SI.VMware_GSX_Server": { + }, + "SupportDetail.SI.VMware_High_Availability": { + }, + "SupportDetail.SI.VMware_Horizon": { + }, + "SupportDetail.SI.VMware_Server": { + }, + "SupportDetail.SI.VMware_vCenter_Server": { + }, + "SupportDetail.SI.VMware_vCloud_Director": { + }, + "SupportDetail.SI.VMware_Virtual_Center": { + }, + "SupportDetail.SI.VMware_Virtual_Machine_software": { + }, + "SupportDetail.SI.VMware_vMotion": { + }, + "SupportDetail.SI.VMware_vRealize_Operations": { + }, + "SupportDetail.SI.VMware_vSphere_Big_Data_Extensions": { + }, + "SupportDetail.SI.VMware_Workstation": { + }, + "SupportDetail.SI.VoltDB": { + }, + "SupportDetail.SI.ZeroFault_Group_ZeroFault_Debugger": { + }, + "SupportDetail.SNMPManagedDevice": { + "destroySupportDetailRel": { + snippets: ["${1:node}, ${2:sd_type}"], + description: `Destroy any existing SupportDetail relationship with a SNMPManagedDevice node.` + } + }, + "SupportDetail.SoftwareCluster": { + }, + "SupportDetail.SoftwareInstance": { + }, + "SupportDetail.StorageDevice": { + "destroySupportDetailRel": { + snippets: ["${1:node}, ${2:sd_type}"], + description: `Destroy any existing SupportDetail relationship with a StorageDevice or\nStorageSystem node.` + }, + "createStorageSupportdetailNode": { + snippets: ["${1:storage_node}, ${2:sd_type}, ${3:details}"], + description: `Create a SupportDetail node for a StorageDevice or StorageSystem node\n\nChange History\n2024-11-26 - Default Retirement Date Flag now set independently of Retirement Date (DRDC1-24773)\n2025-03-06 - Avoids calling uniquerel if relationship already exists (DRDC1-25884)` + } + }, + "SupportDetail.VirtualMachine": { + "destroySupportDetailRel": { + snippets: ["${1:node}, ${2:sd_type}"], + description: `Destroy any existing SupportDetail relationship with a SoftwareInstance\nnode.` + } + }, + "SupportingFiles.Atrium_CMDB_Support": { + }, + "SupportingFiles.BMC_Functions": { + "parse_BMC_product_registry_file": { + snippets: ["${1:host}, ${2:product_key}"], + description: `This function obtains version from the ProductRegistry.xml file. This should work for all BMC products\n\nTakes: Host node\nProduct Identifier (e.g. productITDA for BMC TrueSight IT Data Analytics)\nReturns: Full version\n\nChange History:\n2018-01-26 - Updated version extraction (DRDC1-10704)\n2020-09-14 - Updated XML parsing for patched version obtaining (DRDC1-15779)\n2021-03-23 - Updated XML parsing for patched version obtaining (DRDC1-16523)` + }, + "versionFromConfigFile": { + snippets: ["${1:version_file}, ${2:product_key}"], + description: `Get version from a configuration file such as SmartReportingInstalledConfiguration.xml\n\nTakes : version_file - discovery.fileGet object of file to parse\nproduct_key\nReturns : version` + } + }, + "SupportingFiles.CDM_Mapping": { + }, + "SupportingFiles.Cluster.Support": { + "escapeSpecialChars": { + snippets: ["${1:string}"], + description: `Escape special chars\n\nChange History:\n2026-04-06 - Updated to use regex.escape() (DRDC1-29309)` + }, + "getClustersRules": { + snippets: [""], + description: `Function returns a table with rules for matching:\n- Cluster/ClusterService/ClusterResource Attributes (attr) to\n- input arguments (arg) such as instance, path, ip\n\nChange History:\n2017-09-01 - fixed rules for "ip" argument matching to ClusterService ipv4_addrs/ipv6_addrs attributes (DRDC1-9423)\nadded '(', ')' and ' ' delimiter to sub_match_i regex\nadded rule for Cluster node, added MSCluster specific rule (DRDC1-9440, DRDC1-9432)\n2022-07-19 - added cluster rule for Red Hat Cluster (DRDC1-19162)\n2022-10-25 - added strict rules for MSCluster and MS SQL server\nto prevent incorrect identification of some SIs are clustered` + }, + "compareNodeAttrsWithArguments": { + snippets: ["${1:node_kind}, ${2:node_groups}, ${3:arguments}, ${4:clusters_rules}, ${5:strict_mode}"], + description: `Function compares attributes with input based on:\n- common rules (for all clusters)\n- rules for some particular cluster type \n\nReturns:\nnode - with found evidence(can be none)\nmsg - message with debug information\n\nChange History:\n2017-09-01 - updated log messages (DRDC1-9423)\nescaped special symbols in values for regexes\n2020-07-07 - Matching rules shoud be applied to all Resources of the same type at once.\nChanged order of applying matching rules (from highest to lower priority):\nbefore:\nfor each Cluster\n- in ClusterResources\n- in ClusterServices\n- in Cluster\nnow:\n- in ClusterResources of all Clusters\n- in ClusterServices of all Clusters\n- in all Clusters\nIt provides more accurate results in finding correct resources.\n2022-10-25 - added strict mode to prevent applying of 'All' rules\nto prevent incorrect identification of some SIs as clustered` + }, + "traverseThroughCluster": { + snippets: ["${1:host}, ${2:arguments}, ${3:si_type}"], + description: `Function iterates through all Clusters in depth to ClusterResources and\nattempts to find any possible evidence that given SI is clustered\n\nReturns:\nnode:\n- ClusterResource node with contained evidence OR\n- none if ClusterResource are not modelled and evidence are found in ClusterService\nevidence_found:\n- true - if evidence is found in ClusterResource or ClusterService node kinds OR\n- false - if no evidence are found at all\n\nChange History:\n2017-09-18 - added evidence check in Cluster nodes (DRDC1-9440, DRDC1-9432)\n2018-07-03 - check for virtual host related cluster resource found on the contining host cluster\n2020-07-07 - changed order of applying matching rules:\nbefore:\nfor each Cluster\n- in ClusterResources\n- in ClusterServices\n- in Cluster\nnow:\n- in ClusterResources of all Clusters\n- in ClusterServices of all Clusters\n- in all Clusters\n- refactored code for the case when Veritas Cluster manages\nSoftware by running it inside of Solaris Zones.\n2022-10-25 - added strict rules for well known pairs of clusters and clustered software\nto prevent incorrect identification of some SIs are clustered` + }, + "add_resource_attrs": { + snippets: ["${1:resource}, ${2:resource_type}, ${3:resource_properties}, ${4:resource_mapping}"], + description: `Add resource attributes of interest to the cluster resource node along with a standardised\nresource type attribute.\n\nresource : cluster resource node,\nresource_type : type of resource being processed,\nresource_properties : table of all resource properties,\nresource_mapping : mapping of resource attributes of interest.` + }, + "get_cluster_dns_names": { + snippets: ["${1:cluster}, ${2:ipv4_addrs}, ${3:ipv6_addrs}, ${4:host:=none}"], + description: `Get DNS names associated with the hosts of a cluster.\n\ncluster : cluster node to search from,\nipv4_addrs : list of ipv4 addresses to search dns names for,\nipv6_addrs : list of ipv6 addresses to search dns names for,\nhost : optional host node being scanned that is part of the cluster\n(useful on first scan of the host as the relationship to\nthe cluster may not have been committed to the datastore).` + }, + "get_cluster_service_vip": { + snippets: ["${1:si}"], + description: `Obtain the virtual ip address of the provided SoftwareInstance node\nif it is related to a ClusterService node. Also return the port if\nreported.\n\nChange History:\n2016-07-04 - Updated function names according to CommonFunctions changes(DRDC1-6073)` + }, + "get_si_host": { + snippets: ["${1:si}, ${2:ip_addr}"], + description: `Obtain the host related to the provided SoftwareInstance node.\nIf the SoftwareInstance is related to multiple hosts due to the\nsoftware running on a cluster, then it selects the host based on\nthe host currently supporting the provided IP address and the host\nknown to be actively running the clustered software.\n\nChange History:\n2020-07-22 - Added checks for associated IP address to host (DRDC1-13115)\n2021-09-14 - Updated to avoid ECA Error (DRDC1-17407)` + }, + "linkClusterMemberToHost": { + snippets: ["${1:member}, ${2:cluster}"], + description: `Find a Host in the Cluster that has the same name/ip_address as the ClusterMember\nCreate relationship between the ClusterMember and the Host.\n\nChange History:\n2023-03-21 - Check host.__all_ip_addrs exists before accessing it (DRDC1-21008)\n2023-07-13 - use ClusterMember.host_name if Host has different name (DRDC1-21164)` + } + }, + "SupportingFiles.Mainframe.Support": { + "findMFParts": { + snippets: ["${1:mfpart_ids}"], + description: `Find the MFPart nodes with the provided ids.` + }, + "findSoftwareInstances": { + snippets: ["${1:si_keys}"], + description: `Find the SoftwareInstance nodes with the provided keys.` + }, + "findSysplex": { + snippets: ["${1:sysplex_id}"], + description: `Find the Sysplex Cluster node with the provided key.` + }, + "maintainStorageRelationships": { + snippets: ["${1:storage}, ${2:collection_type}, ${3:mfparts}"], + description: `Maintain the relationships for the provided storage node.` + }, + "getResults": { + snippets: ["${1:result_list}"], + description: `Returns the member results associated with the result list.\nReturns none if the call failed (failure_reason is set)` + }, + "getRelatedResults": { + snippets: ["${1:ddd_node}, ${2:discovery_method}"], + description: `Returns the related member results for the same DA.\nReturns none if the call failed (failure_reason is set).` + }, + "createTapeStorage": { + snippets: ["${1:result_list}, ${2:filter}"], + description: `Takes a getTapeDrive result list and creates or updates a corresponding\nStorage node and associated relationships for each result.` + }, + "createDiskStorage": { + snippets: ["${1:result_list}, ${2:filter}"], + description: `Takes a getDiskDrive result list and creates or updates a corresponding\nStorage node and associated relationships for each result.` + }, + "createTransactionProgram": { + snippets: ["${1:ddd_trn}, ${2:trn}, ${3:existing_table}"], + description: `Takes a discovered transaction result node and its corresponding\ninferred Detail node representing a transaction and create or update a\nDetail node that represents the first program used by the transaction.` + }, + "createTransactions": { + snippets: ["${1:result_list}, ${2:filter}, ${3:create_programs}"], + description: `Takes a getCICSTransaction or getIMSTransaction result list and creates\nor updates a corresponding Detail node and associated relationships for\neach result.` + }, + "createMQDetails": { + snippets: ["${1:result_list}, ${2:filter}"], + description: `Takes a getMQQueue, getMQChannel or getMQListener result list and\ncreates or updates a corresponding Detail node and associated\nrelationships for each result.` + }, + "createApplicationDetail": { + snippets: ["${1:si}, ${2:result}, ${3:type}"], + description: `Takes an SI node and a DiscoveredMainframeViewResult node and\ncreates or updates a corresponding Detail node and associated\nrelationships.` + }, + "createSoftware": { + snippets: ["${1:result_list}, ${2:software_types}, ${3:type_mapping}"], + description: `Create SoftwareInstance nodes.` + }, + "createDependencies": { + snippets: ["${1:result_list}"], + description: `Create communication dependency relationships between SoftwareInstance nodes.` + } + }, + "SupportingFiles.MSVersions": { + }, + "SupportingFiles.NVD_Database_Linking": { + "getNVDURLPart": { + snippets: ["${1:cpe_string}"], + description: `Work out link to NVD website. In python we could use urllib.parse.quote\nWe don't have that function in .tpl so we use a weakening` + }, + "addDataToNode": { + snippets: ["${1:node}, ${2:node_type}"], + description: `Add a CPE ID and a CPE String to a given node (a host node or a Software Instance node\n\nTakes: Node\nNode type (SI or Host)\n\nReturns: Nothing, output is to the node\n\nChange History:\n2016-09-22 - Fix bug "NVD can refer to a product by two names" - DRDC1-6672\n2016-10-14 - Bug fix with previous commit - DRDC1-7006\n2017-02-07 - Fix small bug with syntax - DRDC1-8005\n2017-10-04 - Handle versions with service pack information (DRDC1-8974)\n2017-10-27 - Bug fix for previous version (DRDC1-10119)\n2018-05-21 - cpe_string is now passed in NVD_Data table, we don't need\nto compute it directly (DRDC1-11307)\n2018-09-24 - Check version of the form os_version.os_service_pack, needed\nfor old versions of SuSE Linux (DRDC1-10121)\n2019-03-06 - Model CPE strings with architecture information (DRDC1-12024)\n2019-03-26 - Model CPE strings with OS information (DRDC1-12749)\n2020-07-27 - Add CPE 2.3 strings (DRDC1-12249)\n2020-10-28 - Minor bug fix (DRDC1-16023)\n2020-11-11 - Handle versions of the form "2008 r2" (DRDC1-12752)\n2020-12-04 - Minor bug fix (DRDC1-16196)\n2021-04-13 - Handle nodes with edition (DRDC1-12751)\n2021-05-20 - Add nvd_url_part to node (DRDC1-16384)\n2024-12-03 - Use text.lower(version) for searching (DR206-508)\n2025-07-04 - Use standard function to find URL on NVD website (DRDC1-27019)\n- Handle SIs with build attribute (DRDC1-27020)\n2025-07-25 - Handle MFPart OS version (DRDC1-27021)\n2026-04-13 - Add regex directive before all regex strings (DRDC1-29309)` + }, + "removeNVDData": { + snippets: ["${1:node}, ${2:nvd_failure}"], + description: `Tidying necessary after removing NVD data` + } + }, + "SupportingFiles.NVD_Tables": { + }, + "SupportingFiles.RDBMS_Functions": { + "oracle_ora_file_parser": { + snippets: ["${1:section_name}, ${2:oracle_ora_file_content}"], + description: `function tries to obtain full section from Oracle listener.ora or tnsnames.ora files\n\nChange history:\n2012-10-30 - added section_name normalization\n2023-01-18 - updated (?i) flag placement in regular expression (DRDC1-20566)\n2026-04-07 - updated to use regex.escape() (DRDC1-29309)` + }, + "perform_rdbms_sis_search": { + snippets: ["${1:related_sis_raw}, ${2:rel_si_type}, ${3:instance}, ${4:port}, ${5:db_name}, ${6:extended}"], + description: `This internal function is used by related_rdbms_sis_search() and related_rdbms_sis_search_extended() and\nsearches for specific RDBMS SI "rel_si_type" TYPE on "rel_host_address" host,\nwhich can be uniquely identified by attribute (depends on RDBMS Type)\n- instance, port, db_name\n- extended, which is a dictionary which could contain the following entries:\nextended["domain_lookup"] - enables domain lookup functionality (true/false)\nextended["ora_service_name"] - "service_names" for Oracle\nextended["db2_copy_name"] - "copy_name" for DB2\n\nSupported RDBMS Type: - SI attributes are sorted in descending order of their importance:\n - <- related function \n"Oracle Database Server" - service_names <- extended["ora_service_name"], instance/db_name, listen_tcp_sockets <- port, (net_service_name)\n"Microsoft SQL Server" - instance, port, port_list, (bind_address), db_name\n"IBM DB2 Database Server" - port, db_name/db_alias, copy_name <- extended["db2_copy_name"], instance\n"Sybase ASE Database Server" - instance, port, (bind_address), db_name\n"IBM Informix Dynamic Server" - server_name <- instance, ports, db_name\n"MySQL Database Server" - port, (bind_address), db_name\n"MariaDB Database Server" - port, (bind_address), db_name\n"Percona Database Server" - port, (bind_address), db_name\n"PostgreSQL Database Server" - port, db_name\n*not_fully_supported* - instance, port, db_name. If none of such argument is specified then function searches just by rel_si_type.\n\nExplanations:\n() - means that can be used in search queries but currently this is not realized\n <- extended["db2_copy_name"] - means that value for is passed via "extended" argument\ndb_name - using this argument means that searches based on it are valid only if one SI instance is found.\n\nFunction returns:\n- empty list [] - if no SI is found or if >1 SIs are found (but not for Oracle Cluster)\n- node set containing 1 SI\n- node set containing >1 SIs - only for Oracle/MSSQL Cluster!\n\nChange History:\n2013-05-28 - Added another search method for Oracle when JDBC URL is set in upper case (QM001790681);\n2013-05-30 - Updated RDBMS search by db_name(TKU-1865);\n2013-09-04 - type of "extended" attribute changed from list to dictionary;\nadded ability to resolve domains\nadded support for clustered MSSQL SIs\n2013-11-15 - Oracle "service_name" attribute is replaced with "service_names" (QM001805145, QM001805624);\n2014-03-17 - Clustered DB search for Oracle now has highest priority;\n2014-03-17 - Added support for MariaDB and Percona (QM001817560 & QM001817561)\n2014-05-15 - Changed order for DB2 search queries (QM001829711)\n2014-06-27 - Oracle instances are searched by all available attributes if provided\n2015-05-18 - Added check for port valuu to avoid possible esa-errors (TKU-3980)` + }, + "related_rdbms_sis_search": { + snippets: ["${1:host}, ${2:rel_host_address}, ${3:rel_si_type}, ${4:instance}, ${5:port}, ${6:db_name}, ${7:extended}"], + description: `Function searches for specific RDBMS SI "rel_si_type" TYPE on "rel_host_address" host\n\nFunction returns:\n- empty list [] - if no SI is found or if >1 SIs are found (but not for Oracle Cluster)\n- node set containing 1 SI\n- node set containing >1 SIs - only for Oracle/MSSQL Cluster!\n\nChange History:\n2013-05-28 - Added another search method for Oracle when JDBC URL is set in upper case (QM001790681);\n2013-05-30 - Updated RDBMS search by db_name(TKU-1865);\n2013-09-04 - type of "extended" attribute changed from list to dictionary;\nadded ability to resolve domains\nadded support for clustered MSSQL SIs\n2013-11-15 - Oracle "service_name" attribute is replaces with "service_names"\n- moved part with main search queries to separated perform_rdbms_sis_search() function\nremoved call of related_sis_search_extended() -> identify_host_extended() -> domain_lookup() function in order to prevent creation of big .pq files.\nFunction does not process extended["domain_lookup"] argument any more\n2014-10-23 - added special behaviour for Mysql Database Server (TKU-2319)` + }, + "related_rdbms_sis_search_extended": { + snippets: ["${1:host}, ${2:rel_host_address}, ${3:rel_si_type}, ${4:instance}, ${5:port}, ${6:db_name}, ${7:extended}"], + description: `Function searches for specific RDBMS SI "rel_si_type" TYPE on "rel_host_address" host\n\nExtended functionality:\nFunction tries to resolve domain to IP address if initial search is not successful and extended["domain_lookup"] is specified.\nrelated_sis_search_extended() -> identify_host_extended() -> domain_lookup()\n\nFunction returns:\n- empty list [] - if no SI is found or if >1 SIs are found (but not for Oracle/MSSQL Clusters)\n- node set containing 1 SI\n- node set containing >1 SIs - only for Oracle/MSSQL Cluster!\n\nChange History:\n2014-10-23 - added special behaviour for Mysql Database Server (TKU-2319)` + }, + "oracle_net_service_name_search": { + snippets: ["${1:host}, ${2:net_service_name}, ${3:tnsnames_file_full_location}"], + description: `Function returns Oracle Database SI which is end point for local .\n\nPattern tries to read "net_service_name" section of local Oracle Client using the following methods:\n1. tries to read "tnsnames.ora" from location () found in config files of related Application (which uses local Oracle Client)\nexample: "/some/path/to/application/oracle_client/tnsnames.ora"\n2. tries to obtain env variable and read file: "/tnsnames.ora"\n3. tries to obtain env variable and:\n3.1. run command: "/bin/tnsping "\n3.2. read file: "/network/admin/tnsnames.ora"\n4. tries to read "tnsnames.ora" from standard location "/etc/tnsnames.ora"\n5. as a last try - search related Oracle SI which has in its "net_ser vice_names" attribute.\nAttention!!! This method is not accurate since local and remote "tnsnames.ora" files are not related and\nlocal could be actually pointed to some other Oracle SIs.\n\nComment 1:\n"local tnsnames.ora" - is local file for Application which uses local Oracle client to connect to remote Oracle Database Server\n"remote tnsnames.ora" - is tnsnames.ora file set up on Oracle Database Server side.\n- both files are not related but usually DBAs make them similar.\nComment 2:\nfunction could work incorrectly if is set up with extended load-balancing/failover/backup abilities\n\nChange History\n2013-04-18 - added new method of searching of "tnsnames.ora" file location based on env variable\n2013-09-04 - updated arguments for related_rdbms_sis_search() function (TKU-1911)\n2019-02-05 - replace discovery.runCommand with Future.runCommand\nescaped path for discovery.runCommand` + }, + "dsn_rdbms_servers": { + snippets: ["${1:host}, ${2:dsn_name}"], + description: `Function returns related RDBMS SI by its DSN (Data Source Name) value. For WINDOWS ONLY!\n\nSupported RDBMS SI types:\n- Oracle Database Server\n- Microsoft SQL Server\n- IBM DB2 Database Server\n\nChange history:\n2012-12-25 - additional "Server" registry key is used for RDBMS server information extraction;\n2013-12-10 - Updated code for DB2 Server: now the regexes are much lesser greedy;\nNow the pattern handles the local DB2 instances much easily;\n2019-02-05 - escaped path for discovery.runCommand` + }, + "parseJDBC": { + snippets: ["${1:url}"], + description: `Parse a JDBC URL and extract the details\n\nChange history:\n2016-03-15 - added values for H2 database (DRDC1-5307)\n2016-03-30 - added values for MySQL database (DRDC1-4603)\n2023-01-18 - Updated (?i) flag placement in regular expression (DRDC1-20566)\n2026-04-07 - Updated escape sequence (DRDC1-29309)` + }, + "jdbc_search": { + snippets: ["${1:host}, ${2:jdbc_url}"], + description: `Function returns related RDBMS SI by JDBC URL value.\nFirst it parses the JDBC URL(the function from j2eeinferredmodel module was taken as a basis),\nthen it uses related_rdbms_sis_search or oracle_net_service_name_search function\nto find the related RDBMS SIs.\nSupported RDBMS: MSSQL, Oracle, DB2, MySQL, PostgreSQL, Ingres DB, Sybase ASE, Informix.\n\nChange History:\n2013-05-28 - Updated Oracle JDBC URL regexes to support oci8 driver (QM001790925);\n2014-02-12 - Fixed issue where Oracle service_name was extracted as tns_alias(QM001818485);\n2014-04-15 - Updated Oracle JDBC URL regexes(QM001823904)\n2014-06-27 - for new format of the Oracle JDBC URL last bit is now considered as SID or service_name(QM001829931);\n2014-09-02 - fixed bug in code related to Oracle service_name extraction(QM001857051)\nadded regexes for "Teradata Database" and 'Teradata Aster Database' jdbc strings.\n2015-03-13 - Updated Oracle JDBC URL regexes(QM001874603)\n2015-04-01 - Added regexes for HyperSQL Database jdbc strings(TKU-3655)\n2015-05-14 - Excluded RDBMS details extraction into separate parseJDBC() function(TKU-3879)` + }, + "find_db_server": { + snippets: ["${1:host}, ${2:server_address}, ${3:port}, ${4:si_type}, ${5:db_details}"], + description: `Keine Beschreibung verfügbar.` + } + }, + "SupportingFiles.SAPBOVers": { + }, + "SupportingFiles.Tables": { + }, + "Swift.Alliance": { + "getFileVersion": { + snippets: ["${1:host}, ${2:install_root}, ${3:filter}, ${4:version_regex}"], + description: `Function returns the max version from installation.log content.\n\nChange History:\n2026-06-17 - Replaced cat command with grep command;\nAdded filtering for Unix command results;\nUpdated quoting logic (DRDC1-29917)` + } + }, + "Swift.AllianceWarehouse": { + }, + "Swift.mySWIFT": { + }, + "Sybase.AdaptiveServerIQ": { + "findDatabaseFromArgs": { + snippets: ["${1:process_args}, ${2:instance}"], + description: `Get database name from process args.\n\nWe should handle all of the following examples\n* -n INSTANCE mydb.db -otheropts\n* -n INSTANCE mycfg.cfg mydb.db\n* -n INSTANCE mydb\n* mycfg.cfg mydb.db -otheropts\n* mydb` + } + }, + "Sybase.DirectConnect": { + }, + "Sybase.EAServer": { + }, + "Sybase.jConnectJDBC": { + }, + "Sybase.MirrorActivator": { + }, + "Sybase.OpenServer": { + }, + "Sybase.OpenSwitch": { + }, + "Sybase.PowerBuilder": { + }, + "Sybase.PowerDesigner": { + }, + "Sybase.ReplicationAgentSoftware": { + }, + "Sybase.ReplicationServer": { + }, + "Sybase.SDK": { + }, + "Sybase.SQLAnywhere": { + }, + "Sybase.SybaseASE": { + "get_install_root": { + snippets: ["${1:host}, ${2:process}"], + description: `The function extracts installation root and base directory\nfrom either process arguments or cmd line\n\nChange History:\n2014-03-28 - Added new method and updated the old ones to extarct install_root and base_dir (QM001822936);\n2014-04-23 - regexes for base_path and install_root extraction were updated;\n2014-08-18 - Remove obtaining install_root from -M argument as it gives incorrect result(QM001855657);\n2014-10-06 - Rolled back previous changes, updated install_root extraction from '-e' argument(QM001855657);\n2014-11-06 - Modified regex to extract installation root containing /sybase from -e option in args (Esc 066008);\n2015-06-11 - Re-prioritize obtaining install_root from -M argument as it may give incorrect result(QM001880963);\n2017-05-08 - Major update, we now check for install_root in:\n- process.cmd\n- -c option of process.args\n- -e option of process.args` + }, + "get_interface_path": { + snippets: ["${1:host}, ${2:process}, ${3:base_path}"], + description: `Keine Beschreibung verfügbar.` + }, + "read_interfaces_file": { + snippets: ["${1:host}, ${2:interfaces_file_path}, ${3:srv_name}, ${4:hostname}, ${5:host_all_ip_addrs}, ${6:host_fqdns}, ${7:install_root}"], + description: `read_interfaces_file extracts port and bind address information from the interfaces file\n\nChange History:\n2014-01-27 - Now obtains a potential master bind address to prevent IP\naddress being obtained from last header seen where current\nsection's header missing\n- All host's FQDNs now passed in.\n2015-03-11 - IP address for host FQDN now obtained via search rather than\nas nth position in host_all_ip_addrs list (QM001875626)\n2015-07-17 - Catch-all assignment of bind address from earlier_header_line\nis now only performed if IP Address in host_all_ip_addrs list\n(QM001883100)\n2015-08-11 - Bind address is now reset if set to loopback address '127.0.0.1' (Esc 078537)\n2015-01-15 - Set PRIV_CAT explicitly, not via a configuration option\n2016-02-08 - Updated to get bind_address more correctly via normalizing it from hostname format(Esc 085602)\n2016-03-07 - Interface file is now read with PRIV_CAT under more failure circumstances (DRDC1-5831)\n2016-04-07 - Added IP address extraction for host name(DRDC1-6007)\n2016-09-20 - Bind address is now reset if set to loopback address '0.0.0.0' (DRDC1-6973)\n2017-03-01 - runActiveCommand() function is now implemented\n2017-04-01 - updated port extraction regex (DRDC1-8573)\n2017-05-01 - added bind_address and port extraction from hexademical string (DRDC1-8574)\n2019-02-22 - Update to use new path escape function\n2019-02-28 - Updated regex to parse configuration with multiple spaces as separator (DRDC1-12772)\nUpdated function to read configuration, relative to path\n2023-01-18 - Updated (?i) flag placement in regular expression (DRDC1-20566)\n2025-03-28 - Improve parsing of sql.ini to find port and bind address\n(DRDC1-25816)\n2026-04-08 - Updated escape sequence (DRDC1-29309)` + } + }, + "Sybase.SybaseASE_ClusterEdition": { + }, + "Sybase.SybaseASE_Extended": { + }, + "Sybase.SybaseASE_Options": { + }, + "Symantec.AltirisPatchManagementSolution": { + }, + "Symantec.AntiVirus": { + "WMI_version": { + snippets: ["${1:host}, ${2:process_cmd}"], + description: `Keine Beschreibung verfügbar.` + }, + "registry_version": { + snippets: ["${1:process}"], + description: `Keine Beschreibung verfügbar.` + }, + "package_version": { + snippets: ["${1:host}, ${2:regex_list}"], + description: `Keine Beschreibung verfügbar.` + } + }, + "Symantec.BackupExec": { + }, + "Symantec.BackupExecSystemRecovery": { + "package_versioning": { + snippets: ["${1:host}, ${2:regex_list}, ${3:product_regex}"], + description: `Keine Beschreibung verfügbar.` + } + }, + "Symantec.ControlComplianceSuite": { + }, + "Symantec.CriticalSystemProtection": { + }, + "Symantec.DeploymentSolution": { + }, + "Symantec.IntruderAlert": { + }, + "Symantec.InventorySolution": { + }, + "Symantec.LicenseInventoryManager": { + }, + "Symantec.ManagementPlatform": { + }, + "Symantec.NetBackupPureDisk": { + }, + "Symantec.SecurityInformationManager": { + }, + "Symantec.ServerManagementSuite": { + }, + "Symantec.SoftwareManagementSolution": { + }, + "Symantec.VERITASConfigurationManager": { + }, + "Symantec.VERITAS.ClusterFileSystem": { + }, + "Symantec.VERITAS.ClusterServer": { + "removeComments": { + snippets: ["${1:content}, ${2:comment_sign}"], + description: `Function removed single line comments from provided content\n\nInput variables:\ncontent - original content\ncomment_sign - comment sign, like # or //\n\nOutput variables:\nContent without comments` + }, + "createClusterMembers": { + snippets: ["${1:cluster_node}, ${2:host}, ${3:bin_dir}, ${4:cluster_hosts}, ${5:cl_type}"], + description: `create ClusterMember for each host member in 'hasys -display ' command\n\nChange History:\n2021-01-15 - ClusterMember type added (DRDC1-16359)\n2023-08-21 - extract host_name attribute, which represents real host name (DRDC1-21164)\n2024-05-29 - cluster member population updated (DRDC1-23554)` + }, + "modelClusterService": { + snippets: ["${1:cluster_node}, ${2:service_group}, ${3:service_status}"], + description: `Model ClusterServices` + }, + "modelClusterResource": { + snippets: ["${1:cluster_service_node}, ${2:resource_name}, ${3:resource_type}, ${4:resource_properties}, ${5:resource_mapping}"], + description: `Model ClusterResource` + }, + "parseHACommands": { + snippets: ["${1:cluster_node}, ${2:host}, ${3:resource_mapping}, ${4:bin_dir}, ${5:cluster_members}"], + description: `Extract ClusterService from\n'/hastatus -summary' command output.\n\nExtract information clusterResource details for each ClusterService\n/hares -display -group \n\nChange History\n2017-10-04 - Fixed ECA error caused by parsing of "hasys -list" not creating all cluster members (DRDC1-9966)\n2023-07-13 - extract container zone information if enabled (DRDC1-21164)` + }, + "parseMainCFFile": { + snippets: ["${1:cluster_node}, ${2:host}, ${3:resource_mapping}"], + description: `Keine Beschreibung verfügbar.` + }, + "assemble_si_name": { + snippets: ["${1:host}, ${2:si_type}, ${3:short_si_type}, ${4:product_version}, ${5:cluster_name}"], + description: `Assemble SI name and short_name attributes\n\nChange History\n2015-11-24 - Changed 'part of cluster:' to 'part of' (TA386095)` + }, + "remove_cluster": { + snippets: ["${1:vcs_si}"], + description: `If the last SI in the cluster is removed, the Cluster should be removed. Currently implemented as explicit removal until issue #11942 is addressed\n\nChange History\n2018-11-26 - product re-branding (DRDC1-11969)\n2020-01-15 - product re-branding updated (DRDC1-14464)` + } + }, + "Symantec.VERITAS.ClusterServer_Agents": { + }, + "Symantec.VERITAS.CommandCentralStorage": { + }, + "Symantec.VERITAS.EnterpriseAdministrator": { + }, + "Symantec.VERITAS.EnterpriseVault": { + "getNames": { + snippets: ["${1:host}, ${2:si_type}, ${3:short_si_type}, ${4:product_version}"], + description: `Keine Beschreibung verfügbar.` + } + }, + "Symantec.VERITAS.Filesystem": { + }, + "Symantec.VERITAS.NetBackup": { + }, + "Symantec.VERITAS.ReplicationExec": { + }, + "Symantec.VERITAS.SANPointControl": { + }, + "Symantec.VERITAS.StorageFoundation": { + "getLicenseInfo": { + snippets: ["${1:host}, ${2:product}"], + description: `Finds licensing details for all Veritas products on a particular host\n\nTakes : Host node\nReturns : Licenses - Key = License key, Value = A dictionary of attributes\n\nChange History:\n2019-10-25 - Added command without -e option for newer versions` + }, + "createLicenseDetails": { + snippets: ["${1:licenses}, ${2:si}, ${3:special_attr}"], + description: `Creates license details nodes and attach them to the relevant SI\n\nWe also put the license details in a removal group linked to the relevant SI\n\nTakes : Licenses - Key = License key, Value = A dictionary of attributes\nSI - The SI to link License nodes to\nspecial_attr - Only find license keys whose name matches special_attr\nReturns : Nothing\n\nChange History:\n2019-10-25 - Updated edition assignment` + } + }, + "Symantec.VERITAS.StorageFoundationWindows": { + }, + "Symantec.VERITAS.VolumeManager": { + }, + "Symantec.VERITAS.VolumeReplicator": { + }, + "Symantec.WorkflowSolutions": { + }, + "SymphonyEYC.GAIAApplicationServer": { + }, + "Synology": { + }, + "syslog_ng.syslog_ng": { + }, + "System": { + "runCommand": { + snippets: ["${1:target}, ${2:command}, ${3:restrict_paths}"], + description: `discovery.runCommand has been updated to take an optional new parameter\nrestrict_paths. This will be matched against the user configured\nplatform path restrictions to decide if the command will be run. If not\nrun this will return none otherwise it will return the result of trying\nto run the command on the target.\n\ntarget - target to run request, DDD or Host node.\ncommand - command to run.\nrestrict_paths - paths to check (none, a string or a list of strings).` + } + }, + "SystemsAndInfrastructureSoftware.SimpleIdentifiers": { + }, + "Tableau.Tableau": { + "getSep": { + snippets: ["${1:host}"], + description: `Returns separator depending on Host os class` + }, + "getClusterId": { + snippets: ["${1:process}"], + description: `Check, if clustercontroller is running on host and reads\ncluster_id from configuration file.\nReturns cluster_id and worker_hosts.\n\nChange History:\n2020-02-14 - added worker_hosts extraction (DRDC1-14374)\n2020-06-09 - now pattern will first try to get configuration file path\nfrom process arguments (DRDC1-15296)\n2020-07-21 - updated cluster_id and worker_hosts regexes\nto avoid matching carriage return symbol (DRDC1-15535)\n2021-01-06 - small updates to support Unix platforms (DRDC1-16282)\n` + }, + "active_versioning": { + snippets: ["${1:host}"], + description: `Obtains the version from a run command` + }, + "file_versioning": { + snippets: ["${1:host}, ${2:install_root}"], + description: `Obtains version from the buildversion file\n\nChange History:\n2021-01-06 - small updates to support Unix platforms (DRDC1-16282)` + }, + "package_versioning": { + snippets: ["${1:host}"], + description: `Obtains the version from the package\n\nChange History:\n2020-02-14 - used getMaxVersion() function\nin case multiple packages are installed (DRDC1-14374)\n2021-01-06 - added "tableau-server" package name (DRDC1-16282)\n2023-08-07 - added packageVersioning method (DRDC1-24226)` + }, + "path_versioning": { + snippets: ["${1:path}"], + description: `Obtains the version from the trigger process\n\nChange History:\n2021-01-06 - updated with new a regex to get version (DRDC1-16282)` + }, + "model_si": { + snippets: ["${1:process}, ${2:si_type}, ${3:short_si_type}"], + description: `Models SI\n\nChange History:\n2018-10-16 - Added active versioning (DRDC1-12220)\n2018-11-27 - Updated to link child processes (DRDC1-11380)\nAdded cluster_id attribute to SI (DRDC1-11380)\n2019-10-25 - Updated product_version extraction for modern versions (DRDC1-14122)\n2020-01-14 - Updated to use new getClusterId() function (DRDC1-14374)\n- Updated product version extraction approach (DRDC1-14374)\n2020-03-20 - Updated version assignment approach for versions 18.x, 19.x and 20.x (DRDC1-14844)\n2021-01-06 - Updated with new a regex option to get product version (DRDC1-16282)\n- Updated to get install_root for Unix (DRDC1-16282)\n2023-02-09 - Updated version regexes to cover more versioning cases (DRDC1-20761)` + }, + "get_primary": { + snippets: ["${1:process}"], + description: `Obtains primary server address\n\nChange History:\n2021-01-06 - updated to support Unix platforms (DRDC1-16282)` + } + }, + "Talend.Studio": { + }, + "Tanium.CorePlatform": { + "configList": { + snippets: ["${1:host}, ${2:process}"], + description: `runs ' config list' command\nand returns the output\n\nChange History:\n2021-12-01 - Updated to use escapePath function (DRDC1-17913);` + }, + "regVersioning": { + snippets: ["${1:host}, ${2:component_name}"], + description: `retrieves version from registry` + }, + "packageVersioning": { + snippets: ["${1:host}, ${2:packages}"], + description: `retrieves version from packages` + }, + "regPort": { + snippets: ["${1:host}, ${2:component_name}"], + description: `retrieves port from registry` + }, + "regServerName": { + snippets: ["${1:host}, ${2:component_name}"], + description: `retrieves server_name from registry` + }, + "setAttributes": { + snippets: ["${1:host}, ${2:full_version}, ${3:si_type}, ${4:short_si_type}"], + description: `retrieves product version\ninitializes name and short_name attributes\nreturns product_version, name, short_name` + } + }, + "Technosis.ATAQ_Logging_Service": { + "nslookup_check": { + snippets: ["${1:host}, ${2:host_value}"], + description: `return the verified hostname from DNS` + }, + "odbc_check": { + snippets: ["${1:host}, ${2:serverSi}, ${3:db_server_name}"], + description: `relate si to discovered databases in odbc.ini` + } + }, + "Tenable.Nessus": { + }, + "tengen.MongoDB": { + "active_versioning": { + snippets: ["${1:host}, ${2:process}, ${3:install_root}"], + description: `active_versioning performs active versioning\n\nChange History:\n2017-11-17 - Added support for obtaining edition (DRDC1-9909)\n2019-02-13 - Updated to use Future.runCommand function\n2019-10-15 - Run commands updated (DRDC1-14059)\n2023-01-24 - Added alternative versioning for Splunk Servers (DRDC1-20604)\n2023-03-31 - Added alternative versioning for Splunk Servers (DRDC1-21058)\n2024-04-24 - Added command without Libray path value (DRDC1-23434)\nEdition assignment updated (DRDC1-23382)\n2024-07-09 - Added support for lib64 in active command (DRDC1-24026)\n2025-09-09 - Updated regex for version extraction (DRDC1-27042)\n2026-04-10 - Updated escape sequence (DRDC1-29309)` + }, + "read_log_file": { + snippets: ["${1:host}, ${2:pid}, ${3:log_filepath}"], + description: `Read the log file and return its contents\n\nChange History:\n2019-02-13 - Updated to use escapePath function` + }, + "searchSoftwareCluster": { + snippets: ["${1:host}, ${2:cluster_type}, ${3:cluster_instance}, ${4:hosts_in_cluster}"], + description: `Function to search SoftwareCluster by its type, member hosts and custom attributes\n\nInput:\ncluster_type (str) - 'type' attribute of SoftwareCluster we are looking for\ncluster_instance (str) - 'replica_cluster_name' attribute of SoftwareCluster\nhosts_in_cluster (list) - list of hosts (ip/hostname/FQDN) this cluster is running on\n\nOutput:\ncluster - SoftwareCluster node` + } + }, + "tengen.MongoDB.Atlas": { + "processDatabases": { + snippets: ["${1:da}, ${2:database_list}, ${3:cluster_values}, ${4:cluster_node}, ${5:tracker_cluster_databases}"], + description: `Processes and builds databases.` + } + }, + "tengen.MongoDB_Extended": { + }, + "Teradata.AsterDatabase": { + }, + "Teradata.Database": { + }, + "Teradata.Teradata_Extended": { + }, + "Teradata.Viewpoint": { + }, + "Terracotta.BigMemoryMax": { + }, + "Terracotta.UniversalMessaging": { + }, + "Terrastore.Terrastore": { + }, + "Thales.VormetricDataSecurityPlatform": { + }, + "TIBCO.ActiveMatrixBusinessWorks": { + "packageVersioning": { + snippets: ["${1:host}"], + description: `Performs package versioning\n\nTakes:\nhost\n\nReturns:\nfull_version\n\nChange History:\n2023-01-18 - Updated (?i) flag placement in regular expression (DRDC1-20566)` + }, + "processTraFile": { + snippets: ["${1:host}, ${2:process}"], + description: `Find tra_long_name and then domain, port, collect_jobstats from file\ncontents\n\nTakes:\nhost\nprocess - The trigger process of the calling pattern\n\nReturns:\ntra_long_name - The leafname of the .tra file as extracted\nfrom the trigger process args' propFile option\ndomain\nport\nlistening_ports\ncollect_jobstats\nfull_version\nbw_home\n\nChange History:\n2023-05-09 - Now returns bw_home (DRDC1-20260)` + } + }, + "TIBCO.ActiveSpaces": { + "active_versioning": { + snippets: ["${1:host}, ${2:process}, ${3:install_root}"], + description: `Obtains version and edition from as-convert process\n\nChange History:\n2015-11-13 - Fixed unprotected uses of export in runCommand (DRDC1-4926)\n2019-02-19 - Updated to use Future.runCommand() and\nDiscoveryFunctions.escapePath() functions\n2022-03-07 - Get java_home from common function (DRDC1-18504)` + }, + "package_versioning": { + snippets: ["${1:host}, ${2:path_version}"], + description: `Performs package versioning seeded by path version if available.\nVersioning is normally returned to three levels.\n\nChange History:\n2019-02-19 - Updated to use DiscoveryFunctions.getMaxVersion()\ninstead of the similar function from the Common_Functions` + }, + "file_versioning": { + snippets: ["${1:host}, ${2:install_root}, ${3:path_version}"], + description: `Ascertains version by looking for a particular version folder in the containers folder, seeded by path version if available.\nVersioning is normally returned to three levels.\n\nChange History:\n2019-02-19 - Updated to use DiscoveryFunctions.getMaxVersion()\ninstead of the similar function from the Common_Functions` + } + }, + "TIBCO.Adapters": { + "setNameAttr": { + snippets: ["${1:host}, ${2:si_type}, ${3:short_si_type}, ${4:full_version}, ${5:application}"], + description: `Extracts product version and sets name and short_name attributes\n\nChange history:\n2018-09-27 - Updated to include application name (DRDC1-12045)` + }, + "createSI": { + snippets: ["${1:host}, ${2:si_type}, ${3:short_si_type}, ${4:full_version}, ${5:tibco_home}, ${6:domain}, ${7:application}"], + description: `Create an Adapter SI\n\nChange history:\n2018-09-27 - Updated to include domain and application name (DRDC1-12045)` + }, + "getTibcoHome": { + snippets: ["${1:process}"], + description: `Takes process\n\nReturns:\nfull_path - Fully qualified path to process. Obtained directly from process\nif possible, from getExeCwdPath function if not\ntibco_home - Obtained by parsing full_path\n\n2017-08-10 - Update to use new DiscoveryFunction - getExeCwdPath\n2018-10-03 - Updated to extract domain and application (DRDC1-12045)\n2023-01-18 - Updated (?i) flag placement in regular expression (DRDC1-20566)` + }, + "pluginVersioning": { + snippets: ["${1:host}, ${2:jar_file}, ${3:tibco_home}"], + description: `Extracts full version for Tibco Plug-ins\nUses active and path versioning approaches.\n\nChange history:\n2019-02-19 - Updated to use Future.runCommand() function` + }, + "createPluginSC": { + snippets: ["${1:host}, ${2:si_type}, ${3:short_si_type}, ${4:full_version}, ${5:tibco_home}, ${6:key}, ${7:trigger_si}"], + description: `Creates Tibco Plug-in Software Component` + } + }, + "TIBCO.Administrator": { + }, + "TIBCO.AMXSG": { + }, + "TIBCO.BPMEnterprise": { + }, + "TIBCO.BusinessConnect": { + }, + "TIBCO.BusinessEventsEngine": { + }, + "TIBCO.BusinessEventsRulesManagementServer": { + }, + "Tibco.BusinessWorksEngine": { + }, + "TIBCO.EMS": { + }, + "TIBCO.HawkAgent": { + }, + "TIBCO.iProcess": { + }, + "TIBCO.ManagedFileTransfer": { + }, + "TIBCO.MasterDataManagement": { + }, + "TIBCO.Rendezvous": { + "TibcoHomeProcs": { + snippets: ["${1:process}, ${2:cmd_args}"], + description: `Takes the string to parse for tibco_home\nReturns tibco_home and all processes running in tibco_home\n\nChange History:\n2013-07-30 - updated regex to match all possible trigger processes (QM001794855)\n2016-07-28 - Update regex to match 32 bit trigger processes (DRDC1-6559)\n2016-10-07 - Slight tidying of the code to check which daemons are present (DRDC1-6631)` + } + }, + "TIBCO.RuntimeAgent": { + }, + "TIBCO.Spotfire": { + }, + "Tideway.Foundation": { + "createProxySI": { + snippets: ["${1:host}, ${2:full_version}, ${3:product_version}, ${4:release}, ${5:proxy_type}, ${6:proxy_name}, ${7:port}"], + description: `Creates Discovery Proxy SI\n\nChange History\n2013-08-15 - SI type is now set to modern product if version is not known;\n2014-06-19 - changed "proxy_name" to "instance" (TKU-2288);\n2014-08-11 - Added listening_ports attribute to SI (TKU-2355)\n- Added short_name attribute to SI (TKU-2353)\n2014-08-28 - Updated short_name\n2016-01-29 - Updated SI type (DRDC1-5473)\n2016-10-05 - Updated to use new Discovery functions (DRDC1-7068)\n2020-01-29 - Updated to set product and publisher information (DRDC1-13528)\n2021-03-25 - Added check for proxy type (DRDC1-16680)\n2026-06-19 - Rebranded to BMC Helix (DRDC1-29997)` + } + }, + "TigerGraph.TigerGraph": { + }, + "Tintri_VMstore_Storage": { + "updateDiskDrives": { + snippets: ["${1:appliance_default_response}, ${2:storage_system_node}"], + description: `Create and update the disk drive and link to storage system` + }, + "updateStorageProcessor": { + snippets: ["${1:appliance_default_response}, ${2:storage_system_node}"], + description: `Create the storage processor and link it to the appropriate storage system node\n\nChange History:\n2022-07-26 - Replaced Containment relationship between ethernet port\nand processor nodes with DeviceInterface(DRDC1-19483)` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:device}, ${3:tintri_auth}, ${4:scope_value}"], + description: `Perform a scan on the given stroage device\n\nChange History:\n2024-04-16 - Added hidden attribute __capability_ids for TKU_2024_07_01\n(DRDC1-23319)\n2024-07-12 - Added the attribute dns_domain\nto storage system / storage device (DRDC1-24057)` + } + }, + "TLS_Detail": { + "getCertificate": { + snippets: ["${1:host}"], + description: `Use the getCertificate function to obtain the TLS certificate for\na given ManagementController.\nChangeHistory:\n2025-04-04 - Attribute changed to organizational_unit\n2026-06-23 - Updated to use CertificateCommonFunctions (DRDC1-29288)` + } + }, + "Tomcat.ExtendedDiscovery": { + "addToListInTable": { + snippets: ["${1:table_object}, ${2:key}, ${3:value}"], + description: `Add a value to a list in a table` + }, + "searchAzureDBandInstance": { + snippets: ["${1:lookup_db_name}"], + description: `Finds and returns the related Database node with type\n'Azure Managed Database', and related 'Azure SQL Database managed\ninstance' node.` + } + }, + "TrendMicro.DeepSecurity": { + "get_package_versioning": { + snippets: ["${1:host}, ${2:package_regex_list}"], + description: `Keine Beschreibung verfügbar.` + }, + "getProductVersion": { + snippets: ["${1:component}, ${2:full_version}"], + description: `Sets product version to marketing version based on build number\nSee https://help.deepsecurity.trendmicro.com/software-feature-releases.html` + } + }, + "TrendMicro.OfficeScan": { + }, + "TrendMicro.ServerProtect": { + }, + "TrendMicro.SmartProtectionServer": { + }, + "Tripwire.TripwireEnterprise": { + }, + "TrueNAS_Storage": { + "executeRequest": { + snippets: ["${1:discovery_access}, ${2:request_query}"], + description: `Return the decoded json response to the api request\n` + }, + "updateDiskDrives": { + snippets: ["${1:discovery_access}, ${2:ss_node}, ${3:rgroup}"], + description: `Update the disk drives for the given set of array\n` + }, + "updatePoolCapacities": { + snippets: ["${1:ds_records}, ${2:pool_nodes_by_name}"], + description: `Update the storage pools capacities\n` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:device}, ${3:rgroup}"], + description: `Perform a storage scan on the given endpoint\n` + } + }, + "UC4.ApplicationManager": { + "agent_linking": { + snippets: ["${1:host}, ${2:install_root}, ${3:si_node}"], + description: `Link to remote agents\n\nChange History:\n2019-02-20 - Updated to use Future.runCommand() function` + }, + "file_versioning": { + snippets: ["${1:host}, ${2:process_args}"], + description: `File Versioning Function\n\nChange History:\n2019-02-20 - Updated to use DiscoveryFunctions.escapePath() function\n2026-04-09 - Updated escape sequence (DRDC1-29309)` + } + }, + "UC4.OperationsManager": { + }, + "Umbraco.Umbraco": { + }, + "UnixHost": { + }, + "Unix.BashVulnerability": { + }, + "Varnish_Cache.Varnish_Cache": { + "create_link": { + snippets: ["${1:host}, ${2:varnish_cache_si}, ${3:addr}, ${4:port}"], + description: `Checks if required SI exists, creates client - server link.\n\nChange History:\n2025-08-28 - Updated create_link for modeling a communication relationship (DRDC1-27308)` + }, + "connect_extract": { + snippets: ["${1:connect_string}"], + description: `Extracts interface and port from connection string.\nString examples: 1.2.3.4:5678, host.name:123` + } + }, + "VAST_DATA_REST": { + }, + "Veeam.Backup": { + }, + "Veritas.Merge1": { + }, + "Versant.ObjectDatabase": { + }, + "VictoriaMetrics": { + "getVersion": { + snippets: ["${1:host}, ${2:process}, ${3:version_regex}"], + description: `get_version tries to get version from command output.\n` + } + }, + "Vignette.Portal": { + }, + "VirtualDeviceLinking": { + "findVMByMacAddr": { + snippets: ["${1:device}"], + description: `Finds corresponding VirtualMachine\nby comparing mac addresses\n` + }, + "findVMByIPAddr": { + snippets: ["${1:device}"], + description: `Finds corresponding VirtualMachine\nby comparing IP addresses\n` + }, + "findVm": { + snippets: ["${1:device}"], + description: `Finds corresponding VirtualMachine by using:\n1. UUID extracted from the serial of the device.\n2. Combination of the vm_management_ip and guest_full_name attributes.\n\nChange history:\n2019-06-02 - Function updated in order to use additional attributes\nto find corresponding virtual machine (DRDC1-12774).\n2020-07-10 - Updated search to consider scope (DRDC1-15362)\n2020-10-28 - Added additional check of attributes before calling\nsearch() function (DRDC1-16034)\n2021-08-10 - Added search for virtual machine by the combination of the\n'vm_management_ip' and 'hostname' VM attributes (DRDC1-16776)\n2023-01-31 - Added search for virtual machine by the combination of the\n'vm_management_ip' and hostname part of the device's name\n(DRDC1-20653)\n2025-02-17 - Added search when we don't have management IP or serial but\nall MAC addresses of the device can be present in mac_addrs\nof VM (DRDC1-25308)\n2025-09-04 - Replaced mac_addrs search with findVMByMacAddr() function (DRDC1-27353)` + }, + "findDevice": { + snippets: ["${1:virtual_machine}"], + description: `Finds virtual device (NetworkDevice, SNMPManagedDevice or StorageDevice)\nusing either virtual machine UUID,\nor combination of vm_management_ip and guest_full_name.\n\nChange history:\n2020-07-10 - Updated pattern to use findHostByIP() function (DRDC1-15362);\n- Updated search to consider scope (DRDC1-15362)\n2020-09-23 - Pattern updated in order to prevent ECA error in 12.1+\nwhen accessing host.scope attribute, but the host is none\n2020-10-27 - Search efficiency improvements (DRDC1-16021)\n2020-10-28 - Added additional check of attributes before calling\nsearch() function (DRDC1-16034)\n2021-08-10 - Added search for virtual device by the combination of the\n'vm_management_ip' and 'hostname' VM attributes (DRDC1-16776)\n2023-01-31 - Added search for virtual Network Device by the combination of the\n'vm_management_ip', and 'guest_full_name' matching the hostname\npart of the device's name (DRDC1-20653)\n2023-10-04 - Updated in order to search for device by using VM 'guest_full_name'\nand device '__all_dns_names' (DRDC1-21564);\n2026-04-10 - Updated escape sequence (DRDC1-29309)` + } + }, + "VirtualDeviceLinkingF5": { + "findVMByUUID": { + snippets: ["${1:device}, ${2:uuid_word}, ${3:vm_uuid_regex}"], + description: `Return VirtualMachine node when searching by UUID.\n\nChange history:\n2025-07-21 - Updated to return single VirtualMachine node\ninstead of a search result list.` + } + }, + "VirtualDeviceLinking.AcmePacket": { + }, + "VirtualDeviceLinking.Infoblox": { + }, + "VirtualDeviceLinking.PaloAlto": { + }, + "VisualSVN": { + }, + "VMwareVM": { + }, + "VMwareVM.Events": { + }, + "VMware.BigDataExtensions": { + }, + "VMware.CarbonBlack.EDRServer": { + "getPorts": { + snippets: ["${1:conf_file}"], + description: `Get list of ports from configuration file\n\nTakes : Config File content (as string)\nReturns : Listening Ports (list of integers)` + } + }, + "VMware.ConsolidatedBackup": { + }, + "VMware_Event_Functions": { + "getEventChain": { + snippets: ["${1:event}"], + description: `Return the chain of events related to the specified event.\nEvents are returned in time order (oldest first).` + }, + "findEventInChain": { + snippets: ["${1:events}, ${2:type}, ${3:optional}"], + description: `Find an event of the requested type in the event chain.\n\nReturns the first event found with the requested type. Events are\nchecked in time order (oldest first). If the event is not optional\n(the default) an error will be logged.\n\nReturns none if the event cannot be found.` + }, + "findHost": { + snippets: ["${1:vcenter_key}, ${2:host_vsphere_id}"], + description: `Returns the ESXi Host for the given vCenter and HostSystem` + }, + "findVMInstance": { + snippets: ["${1:vcenter_key}, ${2:host_vsphere_id}, ${3:vm_vsphere_id}"], + description: `Returns the VM instance for the vCenter, HostSystem and VirtualMachine\n\nChange History:\n\n2017-02-02 - Renamed this function` + }, + "findVirtualHost": { + snippets: ["${1:vm_instance}"], + description: `Find any virtual Host linked to the VM instance` + }, + "moveVM": { + snippets: ["${1:existing_instance}, ${2:virtual_host}, ${3:source_host}, ${4:dest_host}"], + description: `Move the VM container from source to destination host. This is done\nby creating a new relationship to the destination host and then\ndestroying the existing relationship to the source host.\n\nChange History:\n2017-02-02 - Updated for VirtualMachine node kind\n2022-01-18 - Updated to keep VM node unchanged (DRDC1-18091)\n2022-05-04 - Reverted changes for DRDC1-18091\n2023-06-15 - Updated to keep VM node unchanged (DRDC1-18091)` + }, + "getPhysicalDisks": { + snippets: ["${1:host}, ${2:datastore_id}"], + description: `Returns the list of physical disks or storage volumes for the given ESX host and\ndatastore ID\n\nChange History:\n\n2018-04-19 - Updated in order to return as well Storage Volume(s) for the given ESX host and datastore ID(DRDC1-10750)` + }, + "moveStorage": { + snippets: ["${1:virtual_host}, ${2:virtual_disks}, ${3:source_devices}, ${4:dest_devices}"], + description: `Move storage for the virtual host from a source to destination datastore\n\nChange History:\n\n2018-04-19 - Updated in order to handle links between virtual host and\nbacking storage provider(s) (DRDC1-10750)` + }, + "crossVCenterVMotion": { + snippets: ["${1:src_event}, ${2:dest_event}"], + description: `Handle moving a VM between two vCenters\n\nReturns true if the move is successful.` + } + }, + "VMware_Functions": { + "generateKeyForESXVM": { + snippets: ["${1:host}, ${2:vm_uuid}"], + description: `Generate the SI key for a VM running on ESX` + }, + "generateKeyForESXiVM": { + snippets: ["${1:host}, ${2:vm_uuid}, ${3:si_type}"], + description: `Generate the SI key for a VM running on ESXi` + }, + "generateKeyForVM": { + snippets: ["${1:host}, ${2:vm_uuid}, ${3:si_type}"], + description: `Generate the correct SI key` + }, + "addCustomAttributes": { + snippets: ["${1:node}, ${2:data}"], + description: `Gets a node and vSphere query result.\nParses the given data\nand assigns custom_attributes attribute to the node.` + } + }, + "VMware.HighAvailability": { + }, + "VMware.Horizon": { + }, + "VMware.NSX": { + "findNode": { + snippets: ["${1:device}, ${2:node_ip_addrs}"], + description: `Returns Host or Network device by list of IP addresses` + } + }, + "VMware.PlatformServicesController": { + }, + "VMware.Tools": { + }, + "VMware.vCenterHA": { + "convertString": { + snippets: ["${1:input_str}"], + description: `Converts input string from 'ABC' to 'Abc'` + }, + "getNodeAttrs": { + snippets: ["${1:node}"], + description: `Extracts uuid, role, state, failover IP address and\nHA IP address from node data:\n\n"failover_ip":{\n"ip_family":"IPV4",\n"ipv4":{\n"address":"10.10.10.10"\n}\n},\n"runtime":{\n"role":"ACTIVE",\n"placement":{\n"bios_uuid":"4fd5f6b8-60fd-4552-a539-107eadb7e119"\n},\n"state":"UP"\n},\n"ha_ip":{\n"ip_family":"IPV4",\n"ipv4":{\n"address":"10.10.10.11"\n}\n}` + } + }, + "VMware.vCloudDirector": { + }, + "VMware.VirtualCenter": { + "deduplicate": { + snippets: ["${1:duplicate}"], + description: `A function to deduplicate a list\n\nChange history:\n2022-01-31 - Updated to filter out non numeric values (DRDC1-18359)` + }, + "create_cluster": { + snippets: ["${1:root_node}, ${2:root_key}, ${3:si}"], + description: `Query the vCenter API and create a cluster, linking ESXi Host nodes to their clusters.\nparameters:\nroot_node - node to use for discovery calls\nroot_key - unique key to use as the basis for node keys\nsi - vCenter SI node to link clusters to - may be none if no SI exists\nChange history:\n2018-01-25 - Search optimization (DRDC1-10740)\n2018-11-30 - Added support for drs_enabled and ha_enabled attributes (DRDC1-9941)\n2018-12-11 - Updated search of ESX host and its linkage to the Cluster.(DRDC1-10022)\n- Added model.destroy option for obsolete Cluster-Host relations\nwhich are created by HostTovCenterCluster pattern but not destroyed when\nESX host is moved out of the Cluster. (DRDC1-10022)\n2019-09-26 - Add ComponentAliases for TrueSight. (DRUD1-27186)\n2019-11-21 - Changed description to type for ClusterMember (DRDC1-14272)\n2020-07-06 - Updated search to consider scope (DRDC1-15362)\n2020-10-27 - More efficient searches for scope (DRDC1-16021)\n\n2021-01-29 - ClusterMember type updated (DRDC1-16359)\n2021-12-15 - Removed failover attribute (DRDC1-18084)\n2022-01-11 - Modeled Resource Pool and Network as Collection (DRDC1-17571)\n2022-04-07 - Fixed ECA Error (DRDC1-18807)\n2022-05-13 - Reverted update for DRDC1-17571\n2025-04-02 - Added custom_attributes (DRDC1-26182)` + } + }, + "VMware.VirtualCenter.ResourcePools": { + }, + "VMware.VirtualCenter.vMotionEvents": { + }, + "VMware.VMDetails": { + }, + "VMware.VMotion": { + }, + "VMware.VMStorage": { + "createVirtualDiskDrive": { + snippets: ["${1:running_vm}, ${2:vm_disks}, ${3:fs_table}, ${4:vm_drives}, ${5:virtual_disk_type}, ${6:rdm_disk_type}"], + description: `Function creates virtual Disk Drive and link it with the Virtual Machine\nand backing storage devices (like physical Disk Drives and Storage Volumes).\n\nChange History:\n2021-02-04 - Fixed ECA Error (DRDC1-16456);\n2021-06-22 - Added io_allocation_limit attribute (DRDC1-16765);` + } + }, + "VMware.vRealizeAutomation": { + }, + "VMware.vRealizeLogInsight": { + }, + "VMware.vRealizeOrchestrator": { + }, + "VMware.VROPS": { + }, + "VMware.vSAN": { + "getDiskInfo": { + snippets: ["${1:host}, ${2:storage_system_node}, ${3:disk_mapping}"], + description: `Get the information of the local disks that were used\nin the creation of vSAN. If the mapped disk found relate\nto the storage system.` + } + }, + "VMware.vShieldManager": { + }, + "VMware.vSphereTags": { + "runRequest": { + snippets: ["${1:host}, ${2:type}, ${3:url}, ${4:request_body}, ${5:headers}"], + description: `Run REST API queries using restfulPost and restfulGet discovery functions.\nReturns decoded response_value or none in case of failure.\n\nChange History:\n2023-07-06 - Updated to return none in case of failure (DRDC1-21547)` + } + }, + "VoltDB.VoltDB": { + "pkg_versioning": { + snippets: ["${1:host}"], + description: `VoltDB package versioning.` + }, + "active_versioning": { + snippets: ["${1:host}, ${2:bin}"], + description: `VoltDB active versioning.` + } + }, + "Wazuh.Agent": { + }, + "WebLogic.ExtendedDiscovery": { + "ConfirmWeblogicServer": { + snippets: ["${1:server}, ${2:listen_address}, ${3:trigger_weblogic_si}, ${4:domain}, ${5:host}, ${6:use_deep_search}"], + description: `Confirm the existence of processed Weblogic Server in Infrastructure\n\nChange History:\n2015-07-17 - added additional check for server_si to avoid ECA Error (TKU-2681);\n2020-02-06 - added listen_address to find correct SIs (DRDC1-14605)\n2021-04-09 - added check based on partial listen_address (DRDC1-16712)\n2023-03-02 - added check based on partial host name (DRDC1-20560)` + } + }, + "WebSphere.ExtendedDiscovery": { + "xpathValue": { + snippets: ["${1:xml}, ${2:path}"], + description: `read a single value from xml DOM object or file using xpath\nReturns an empty string if there zero or more than one result returned` + }, + "getProperty": { + snippets: ["${1:xml}, ${2:template}, ${3:name}, ${4:attr}"], + description: `Keine Beschreibung verfügbar.` + }, + "lookupDBType": { + snippets: ["${1:provider_type}"], + description: `convert a providerType attribute read from the XML into a\na human-readable string consistent with that from the\nParsingJ2EE.parseJDBC function and a template for faking the URL.` + }, + "getJdbcResources": { + snippets: ["${1:doc}, ${2:resource_file}, ${3:found_jdbcs}, ${4:jdbc_attributes}"], + description: `Parses given DOM object (obtained from resources.xml file) for JDBC Resource information.\nAdds the name of the Resource to the found_jdbcs list (if it is not there already)\nAdds a list of attributes to the jdbc_attributes list\n\nChange History:\n2014-02-12 - Updated ParsingJ2EE.parseJDBC() function usage,\nadded service_name attribute for Oracle JDBC Details(QM001818485);\n2015-05-15 - Updated the parseJDBC() function module name(TKU-3879);\n2016-05-31 - Updated function names according to the CommonFunctions changes(DRDC1-6073)` + }, + "getMailResources": { + snippets: ["${1:doc}, ${2:resource_file}, ${3:found_mail}, ${4:mail_attributes}"], + description: `Parses given DOM object (obtained from resources.xml file) for Mail Resource information.\nAdds the name of the Resource to the found_mail list (if it is not there already)\nAdds a list of attributes to the mail_attributes list` + }, + "getJCAResources": { + snippets: ["${1:doc}, ${2:resource_file}, ${3:found_jca}, ${4:jca_attributes}"], + description: `Parses given DOM object (obtained from resources.xml file) for JCA Resource information.\nAdds the name of the Resource to the found_jca list (if it is not there already)\nAdds a list of attributes to the jca_attributes list` + }, + "getJMSMQResources": { + snippets: ["${1:doc}, ${2:resource_file}, ${3:found_jms_mqs}, ${4:jms_mq_attributes}"], + description: `Parses given DOM object (obtained from resources.xml file) for JMS Resource information.\nAdds the name of the Resource to the found_jms_mqs list (if it is not there already)\nAdds a list of attributes to the jms_mq_attributes list` + }, + "addToListTable": { + snippets: ["${1:table_of_lists}, ${2:key}, ${3:value}"], + description: `Append value to list of values indexed by key.\nCreates the list if the key does not yet exist in the table.` + }, + "linkAppsAndResource": { + snippets: ["${1:jndi_to_apps}, ${2:node}, ${3:jndi}"], + description: `Keine Beschreibung verfügbar.` + }, + "createJCADetail": { + snippets: ["${1:j2ee_si}, ${2:type}, ${3:param_list}"], + description: `Creates JCA Resource Details from the provided list of attributes.` + }, + "createJMSMQDetail": { + snippets: ["${1:j2ee_si}, ${2:param_list}"], + description: `Creates JMS MQ Resource Details from the provided list of attributes.` + } + }, + "Western_Digital_Openflex": { + }, + "WilkenSoftwareGroup.Reportbuilder": { + }, + "WindowsCertificates": { + }, + "WindowsServerRescan": { + }, + "Windows_Storage": { + "extract_naa_id": { + snippets: ["${1:device_identifier_page_value}, ${2:start}, ${3:length}"], + description: `Extract the naa id from device_identifier_page\n\nTwo NAA ID formats are currently supported:\n- IEEE Registered Extended format, i.e. starts with 6h, 16 bytes long.\nFirst byte in decimal will be from 96 to 111 (0x60 to 0x6F).\n\n- IEEE Registered format, i.e. starts with 5h, 8 bytes long.\nFirst byte in decimal will be from 80 to 95 (0x50 to 0x5F).\n\nWe are just getting values from device_identifier_page\nstarting from index 8 to index %limit%\n\nParameters are:\ndevice_identifier_page_value - list of decimal values obtained from the registry;\nstart - Position in device_identifier_page_value where to start looking for NAA ID,\n8 by default;\nlength - Total length of the values we need to grab from the device_identifier_page_value\n(16 for IEEE Registered Extended and 8 for IEEE Registered, but in some tricky cases can be different),\nnone by default;\n\nReturns:\nNAA ID extracted or empty string\n\nChange History:\n\n2016-06-17 - Updated in order to avoid possible ECA-errors (DRDC1-9164);\n2021-07-19 - Check device_identifier_page_value is a list\nbefore processing (DRDC1-17106)` + }, + "updateLinkTables": { + snippets: ["${1:host}, ${2:filesystems}, ${3:wmiNS}, ${4:table_fs_to_disk_drive}, ${5:filesystem_nodes}"], + description: `Updates the association between:\n- fs and disk\n- fs per mount\n\nChange History:\n\n2016-06-17 - Updated in order to avoid possible ECA-errors (DRDC1-4699).` + }, + "retrieve_ascii_device_id": { + snippets: ["${1:host}, ${2:root_reg_path}"], + description: `- Extract the serial number from the windows registry.\n- Extract the hex number for the serial number that represent the device id.\n- Convert this device id into its ascii code.\n\nExample:\n90112 000 from SerialNumber\n'005A' -> info we care about\n\n005A -> convert to ASCII HEX CODE -> 30 30 35 41\n\nChange History:\n\n2016-06-22 - Updated in order to remove unused parameters;\n2017-05-16 - Updated in order to use ConversionFunctions.convertStringToHex\nfunction for ASCII-string to hex conversion;\n2026-04-09 - Updated escape sequence (DRDC1-29309)` + }, + "retrieve_device_identifier_page": { + snippets: ["${1:host}, ${2:root_reg_path}"], + description: `Get the DeviceIdentifierPage value from the registry\n\nChange History:\n\n2016-06-22 - Updated in order to remove unused parameters;\n2026-04-09 - Updated escape sequence (DRDC1-29309)` + }, + "extract_disk_array_type": { + snippets: ["${1:host}, ${2:root_reg_path}"], + description: `return the disk array type, model and serial\n\nChange History:\n\n2016-06-22 - Updated in order to remove unused parameters;\n2017-02-09 - Updated to support Hitachi HUS special cases (DRDC1-7134);\n2020-07-16 - Updated search to consider scope (DRDC1-15362)\n2026-04-09 - Updated escape sequence (DRDC1-29309)` + }, + "generate_naa_id_hitachi": { + snippets: ["${1:host}, ${2:root_reg_path}"], + description: `Return a Hitachi compatible naa id\n\nChange History:\n\n2016-06-22 - Updated in order to remove unused parameters;\n2017-02-09 - Updated to support Hitachi HUS special cases (DRDC1-7134);\n` + }, + "generate_naa_id_emc": { + snippets: ["${1:host}, ${2:root_reg_path}"], + description: `Specifically design to generate the EMC naa id based on multiple input\n\nThe EMC naa id is made of the Lun DeviceIdentifierPage and SerialNumber.\n\nexample:\nDeviceIdentifierPage = 00 83 00 1C 01 03 00 10 '60 00 09 70 00 02 94 90 11 20 53' 30 30 30 32 43 01 14 00 04\nSerialNumber = 90112'005A'000\n\nnadd id is the concatenation of '60 00 09 70 00 02 94 90 11 20 53' and '30 ' and 005A in ASCII HEX CODE\nnaa id = 60 00 09 70 00 02 94 90 11 20 53 30 30 30 35 41\n\nChange History:\n\n2016-06-22 - Updated in order to remove unused parameters;\n` + }, + "generate_naa_ibm_xiv": { + snippets: ["${1:host}, ${2:root_reg_path}"], + description: `Return a XIV compatible naa id\n\nhttps://urldefense.proofpoint.com/v2/url?u=http-3A__pic.dhe.ibm.com_infocenter_flexsys_information_index.jsp-3Ftopic-3D-252Fcom.ibm.acc.4939.doc-252Fsvc-5Fxivnextralogicalunitstargetports-5F3xhh4r.html&d=BQIGAg&c=UrUhmHsiTVT5qkaA4d_oSzcamb9hmamiCDMzBAEwC7E&r=eiCTTkxvjXoWzqyGgUHtRaGl2lvQktQ_nJT7X2BA0UE&m=2yGrvCqxZiVQEwVPJVI1CRKhLkp53aqKifjKIFZMGxU&s=tueuu0H5Q6JjoCiFB7tlhODiJBQTvxnhtZuNlCQg53s&e=\n\nTarget ports on XIV N extra systems\nXIV N extra systems are single-rack systems. All XIV N extra WWNNs include zeros as the last two hexadecimal digits.\nIn the following example, WWNN 2000001738279E00 is IEEE extended; the WWNNs that start with the number 1 are IEEE 48 bit:\nWWNN 2000001738279E00\nWWPN 1000001738279E13\nWWPN 1000001738279E10\nWWPN 1000001738279E11\nWWPN 1000001738279E12\n\nTarget ports on IBM XIV Type Number 2810 systems\nIBM XIV Storage System Type Number 2810 systems are multi-rack systems, but only single racks are supported.\nAll IBM XIV Storage System Type Number 2810 WWNNs include zeros as the last four hexadecimal digits. For example:\nWWNN 5001738000030000\nWWPN 5001738000030153\nWWPN 5001738000030121\n\nIn the NAA id case, all NAA id start with "001738" + disk serial number.\n\nChange History:\n\n2016-06-22 - Updated in order to remove unused parameters;\n2020-08-31 - Defaults NAA id to none instead of empty string;\n2026-04-09 - Updated escape sequence (DRDC1-29309)` + }, + "generate_naa_id_vmware": { + snippets: ["${1:host}, ${2:root_reg_path}"], + description: `Check if this is a VMWare Virtual Disk\n\nChange History:\n\n2016-06-22 - Updated in order to remove unused parameters;\n` + }, + "generate_naa_id_netapp": { + snippets: ["${1:host}, ${2:root_reg_path}"], + description: `Generate NAA ID for some (discovered via REST API) NetApp storage systems.` + }, + "generate_naa_id_ieee_extended": { + snippets: ["${1:host}, ${2:root_reg_path}"], + description: `Function to generate naa id for the following vendors/products,\nwhich use IEEE Registered Extended format for NAA ID:\n- Huawei (tested on OceanStor);\n- Pure FlashArrays;\n- EMC Symmetrix;\n\nChange History:\n\n2016-06-22 - Updated in order to remove unused parameters;\n2016-08-16 - Updated in order to support device_identifier_page as a string (DRDC1-6204);\n2016-06-17 - Updated in order to avoid possible ECA-errors (DRDC1-9164);\n2023-01-06 - Updated in order to properly extract NAA ID from the string\ndevice_identifier_page.value (DRDC1-20418);` + }, + "generate_naa_id": { + snippets: ["${1:host}, ${2:root_reg_path}"], + description: `Check if this is a EMC/Hitachi/IBM FC disk\n\nChange History:\n\n2016-04-14 - Updated in order to support Huawei systems (DRDC1-6014)\n2016-06-22 - Updated in order to support Pure Storage FlashArrays system (DRDC1-6362)\nUpdated in order to remove unused parameters;\n2016-08-16 - Removed special cases for Huawei, Pure, P2000 system to use general generate_naa_id_ieee_extended(),\nnaa.id extraction for EMC Symmerix is changed to general approach (DRDC1-6558);\n2016-12-14 - Updated in order to support XtremIO systems with 8-bytes NAA ID (DRDC1-7537)\n2020-08-31 - Updated in order to support NetApp systems discovered via REST API (DRDC1-15760)\n2026-04-09 - Updated escape sequence (DRDC1-29309)` + }, + "updateVolumeNodeTable": { + snippets: ["${1:volume_nodes_table}, ${2:disk_id}, ${3:volume_or_local_disk}"], + description: `Update the volume to disk relation per disk id.\nIt can be disk id to storageVolume or\ndisk id to local disk drive.` + }, + "getPathId": { + snippets: ["${1:host}, ${2:interface_type}, ${3:disk_bus}, ${4:disk_lun}, ${5:disk_port}, ${6:disk_target_id}, ${7:disk_id}"], + description: `Function creates path_id (used for KVM HSL) from the parameters given,\ndepending of the interface type.\n\nReturns: path_id or void if no path_id was found.` + }, + "updateVolumeToDiskLink": { + snippets: ["${1:host}, ${2:wmiNS}, ${3:STORAGE_PROVIDERS}, ${4:LOCAL_DRIVES}, ${5:volume_nodes_table}, ${6:disk_device_table}, ${7:logical_drive_regex}, ${8:is_kvm}"], + description: `Update Volume to Physical Disk ID relation table\n\nChange History:\n\n2015-09-11 - Move updateDiskModel function to after NAA.ID is generated\nInclude naa.id in variables passed through to updateDiskModel function\n2016-06-17 - Updated in order to avoid possible ECA-errors (DRDC1-4699)\n2016-07-22 - Updated in order to support 'logical' drives provided by HW RAID controllers,\nAdded 'support' for local virtual drives - XEN, Citrix, KVM (DRDC1-4789, Case #00164258);\n2017-01-19 - Updated with adding conversion to number for the disk size (DRDC1-7305);\n2017-02-09 - Updated to avoid possibility of the ECA errors when converting size to number;\n2020-11-17 - Added primary inference to WMI command (DRDC1-15914);\n2021-10-13 - Use information obtained from the MSFT_Disk class\nas fallback method for NAA.ID detection (DRDC1-17272);\n2022-01-10 - Added 'StorageUse' relationship between Host and\nStorageSystem/StorageSystemGroup (DRDC1-17924);\n2023-11-29 - Replace stop by return for TKU_2024_01_01 (DRDC1-22356)\n2026-01-22 - Updated to use common findVolume() function when\nsearching for Storage Volumes by NAA ID (DRDC1-28313)\n2026-04-09 - Updated escape sequence (DRDC1-29309)` + }, + "updateModel": { + snippets: ["${1:STORAGE_PROVIDERS}, ${2:table_fs_to_disk_drive}, ${3:filesystem_nodes}, ${4:volume_nodes_table}"], + description: `Update ADDM relationship model (FS to LUN)` + }, + "getDiskDeviceInfo": { + snippets: ["${1:host}, ${2:storageNS}"], + description: `Collect disk device info using MSFT_Disk class.\n\nChange History:\n2023-11-29 - Replace stop by return for TKU_2024_01_01 (DRDC1-22356)` + } + }, + "Wordpress": { + "file_versioning": { + snippets: ["${1:host}, ${2:install_root}"], + description: `Obtains version from the version file` + }, + "database_linking": { + snippets: ["${1:host}, ${2:si}, ${3:file_content}"], + description: `Creates the link between Wordpress SI and related database` + } + }, + "WSO2.APIManager": { + }, + "XenDesktopAppFunctions": { + "si_listening_ports": { + snippets: ["${1:process}"], + description: `Obtains listening ports from command output\n\nChange History:\n2019-02-05 - replace discovery.runCommand with Future.runCommand\n` + }, + "package_versioning": { + snippets: ["${1:host}, ${2:package_name_regex}"], + description: `performs package versioning` + }, + "si_attributes": { + snippets: ["${1:host}, ${2:si_type}, ${3:short_si_type}, ${4:full_version}"], + description: `assigns SI attributes\n\nChange History:\n2023-03-15 - product_version now set to marketing version (DRDC1-20972)` + } + }, + "XenDomainConsolidation": { + }, + "XenVM": { + }, + "XtremIO_Storage": { + "updateTotalDiskSpace": { + snippets: ["${1:storage_system_nodes}, ${2:totals}"], + description: `Update total_disk_space for the given arrays` + }, + "queryDiskExtent": { + snippets: ["${1:discovery_access}"], + description: `Keine Beschreibung verfügbar.` + }, + "queryDiskModule": { + snippets: ["${1:discovery_access}"], + description: `Query XMIO_Realizes_DM_DD associations so we can relate\nthe XMIO_DiskDrive to the\nXMIO_DiskModule to retrieve Disk information:\nModel, Manufacturer and SerialNumber.\nNone is not returned.` + }, + "queryChassisDiskModulesAsso": { + snippets: ["${1:discovery_access}"], + description: `Query XMIO_Container_AC_DM associations so we can relate\nthe XMIO_DiskModule to the\nXMIO_ArrayChassis to retrieve Chassis information : ElementName` + }, + "querySSDLocation": { + snippets: ["${1:discovery_access}"], + description: `Keine Beschreibung verfügbar.` + }, + "updateNI": { + snippets: ["${1:discovery_access}, ${2:ss_by_processor_id}"], + description: `Update the network interface for the given set of\nstorage system nodes` + }, + "getLinkRecords": { + snippets: ["${1:discovery_access}"], + description: `Query the link records (CIM_AllocatedFromStoragePool)` + }, + "generateNAAID": { + snippets: ["${1:volume_record}"], + description: `Generate the NAA ID for the given logical device` + }, + "updateStoragePools": { + snippets: ["${1:discovery_access}, ${2:storage_system_nodes}, ${3:pool_nodes}"], + description: `Update the pools for the given set of storage systems.\n\nReturns true if the update succeeds, false otherwise.\n\nThe given pool_nodes table is populated with the pools nodes\ncreated/updated but is only valid if the result is true.` + }, + "querySoftwareIdentity": { + snippets: ["${1:discovery_access}"], + description: `Keine Beschreibung verfügbar.` + }, + "queryArrayChassis": { + snippets: ["${1:discovery_access}"], + description: `Query XMIO_ArrayChassis so we can relate the XMIO_StorageSystem instance\nto the XMIO_ArrayChassis instances to get the list of the array chassis\nserial numbers.\nNone is not returned.` + }, + "queryProtocolEndPoints": { + snippets: ["${1:discovery_access}"], + description: `Keine Beschreibung verfügbar.` + }, + "queryServiceCapabilities": { + snippets: ["${1:discovery_access}"], + description: `Query the XMIO_StorageConfigurationServiceCapabilities\nso that we can relate the\nstorage system to the configuration service capabilities\nto extract the encryption value.\nNone is not returned` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:parent}"], + description: `Perform a storage scan on the given endpoint.\nThe endpoint is the storage device.\n\nHistory:\n\n2017-10-03 DRDC1-9385: Added the encryption to the storage system node\nfor TKU_2018_01_01\n2019-26-06 DRDC1-12175: Added HardwareContainer update\nfor XMIO storage system for TKU_2019_09_01\n2020-07-03 Added scope attribute to StorageSystem node (DRDC1-15299)\n\n2020-10-16 Passing the table storage_system_nodes_by_volume keyed by\nvolume path in the function linkPoolsAndVolumes (DRDC1-15952)\n\n2021-03-23 Handle the cohabitation between Rest Pattern and\nWBEM Pattern for TKU_2021_05_01 (DRDC1-13988)\n2024-04-03 Add the attribute dns_domain\nto storage system / storage device (DRDC1-23285)\n2024-04-16 Added hidden attribute __capability_ids for TKU_2024_06_01\n(DRDC1-23319)` + } + }, + "XtremIO_Storage_Rest": { + "getDecoded": { + snippets: ["${1:discovery_access}, ${2:BASE_URL}, ${3:type}, ${4:identifier}"], + description: `Return a decoded json which is the response to the rest api request.` + }, + "getInBytes": { + snippets: ["${1:size}"], + description: `Get the value in Bytes` + }, + "updateStoragePool": { + snippets: ["${1:cluster_node}, ${2:cluster_content}, ${3:pools_by_id}"], + description: `Create the storage pool node and update the volume_in_pools list` + }, + "scan": { + snippets: ["${1:discovery_access}, ${2:storage_device}, ${3:BASE_URL}"], + description: `Main function that creates Storage Systems and Storage System Group\n\nChange History:\n2021-03-17 - Added Input parameter cluster-name to REST request\nto work on multi-clustered environment (DRDC1-18631)\n2024-04-03 - Added the attribute dns_domain\nto storage system / storage device (DRDC1-23285)\n2024-04-16 - Added hidden attribute __capability_ids for TKU_2024_07_01\n(DRDC1-23319)` + } + }, + "Yellowfin.Yellowfin": { + }, + "YSQL_Extended": { + "queryDatabases": { + snippets: ["${1:si}, ${2:endpoint}, ${3:port}"], + description: `Returns a list of databases using a SQL query to the DB instance\n\nsi - YugabyteDB SoftwareInstance,\nendpoint - The endpoint node for the instance (Host, DA etc),\nport - The port for the instance.\n\nReturns none if the query fails` + }, + "createDatabases": { + snippets: ["${1:si}, ${2:db_names}, ${3:attributes}"], + description: `Create nodes for the given database names\n\nsi - YugabyteDB SoftwareInstance,\ndb_names - List of database names,\nattributes - Optional table of extra attributes to set on the nodes.` + }, + "querySchemas": { + snippets: ["${1:si}, ${2:endpoint}, ${3:port}, ${4:db_name}"], + description: `Returns a list of schemas for the given database using a SQL query\nto the DB instance\n\nsi - YugabyteDB SoftwareInstance,\nendpoint - The endpoint node for the instance (Host, DA etc),\nport - The port for the instance,\ndb_name - database name.\n\nReturns none if the query fails` + }, + "createSchemas": { + snippets: ["${1:si}, ${2:db}, ${3:schemas}, ${4:attributes}"], + description: `Create nodes for the given schemas\n\nsi - YugabyteDB SoftwareInstance,\ndb - Database node,\nschmes - List of schema names,\nattributes - Optional table of extra attributes to set on the nodes.` + }, + "queryTables": { + snippets: ["${1:si}, ${2:endpoint}, ${3:port}, ${4:db_name}, ${5:schema_name}"], + description: `Returns a list of tables for the given database and schema\nusing SQL query to the DB instance\n\nsi - YugabyteDB SoftwareInstance,\nendpoint - The endpoint node for the instance (Host, DA etc),\nport - The port for the instance,\ndb_name - database name,\nschema_name - schema name.\n\nReturns none if the query fails` + }, + "createTables": { + snippets: ["${1:si}, ${2:db}, ${3:schema}, ${4:table_names}, ${5:attributes}"], + description: `Create nodes for the given tables\n\nsi - YugabyteDB SoftwareInstance,\ndb - Database node,\ntable_names - List of table names,\nattributes - Optional table of extra attributes to set on the nodes.` + }, + "versioning_using_query": { + snippets: ["${1:si}, ${2:endpoint}, ${3:port}"], + description: `Function that obtains version using sql query.` + } + }, + "YugabyteDB.YugabyteDB": { + "clusterAttr": { + snippets: ["${1:host}, ${2:process}, ${3:install_root}"], + description: `Obtains required attributes for cluster\nArguments:\nhost, process, install_root\nReturns:\nnode_addrs_list - sorted list of Master endpoints\nyugabyte_cluster_id - ID of the cluster` + }, + "modelSI": { + snippets: ["${1:host}, ${2:process}, ${3:SI_TYPE}, ${4:SHORT_SI_TYPE}"], + description: `Arguments:\nhost, process, SI_TYPE, SHORT_SI_TYPE\n\nSupports active, file and path versioning.\n\nModels SoftwareInstance.` + } + }, + "Zabbix.Zabbix": { + "getVersion": { + snippets: ["${1:process}, ${2:package_regexes}"], + description: `Does active and package versioning\n\nTakes : Trigger process node\nA list of regular expressions to use for package versioning\nReturns : Full version\n\nChange History:\n2025-10-13 - Updated active versioning and regex for it, as well as package versioning (DRDC1-27675)` + }, + "normalizeEndpoints": { + snippets: ["${1:raw_endpoints}"], + description: `Normalize endpoint values to host names.\n\nSupports values like:\nhost\nhost:10051\n[ipv6]:10051` + }, + "parseConfigFile": { + snippets: ["${1:process}"], + description: `Find listening port and servers from configuration file\n\nTakes: Trigger process node\n\nReturns : List of listening_ports (integers)\nList of servers (text)\nConfiguration file raw text (text)` + } + }, + "ZeroFaultGroup.ZeroFaultDebugger": { + }, + "zLinux_VM": { + } +}; diff --git a/src/providers/TplHoverProvider.ts b/src/providers/TplHoverProvider.ts index b541cb4..44c0e30 100644 --- a/src/providers/TplHoverProvider.ts +++ b/src/providers/TplHoverProvider.ts @@ -1,5 +1,9 @@ import * as vscode from 'vscode'; import { tplBuiltIns } from '../data/TplBuiltIns'; +import { generatedTplBuiltIns } from '../data/GeneratedTplBuiltIns'; // Pfad ggf. anpassen + +// Beide Datenquellen zusammenführen +const allTplFunctions: Record = { ...tplBuiltIns, ...generatedTplBuiltIns }; export class TplHoverProvider implements vscode.HoverProvider { public async provideHover(document: vscode.TextDocument, position: vscode.Position, token: vscode.CancellationToken): Promise { @@ -14,13 +18,13 @@ export class TplHoverProvider implements vscode.HoverProvider { const importBase = parts[0]; const funcName = parts.length > 1 ? parts[1] : word; - // 1. BMC BUILT-INS DYNAMISCH AUSLESEN - const bmcNamespaces = Object.keys(tplBuiltIns); + // 1. BMC BUILT-INS & TKU DEFINES DYNAMISCH AUSLESEN + const bmcNamespaces = Object.keys(allTplFunctions); if (bmcNamespaces.includes(importBase)) { // Wenn die Methode in der Datei existiert, zeige die echte Doku! - if (funcName !== importBase && tplBuiltIns[importBase][funcName]) { - const bmcDoc = tplBuiltIns[importBase][funcName]; + if (funcName !== importBase && allTplFunctions[importBase][funcName]) { + const bmcDoc = allTplFunctions[importBase][funcName]; const md = new vscode.MarkdownString(); // Wir zeigen den echten Methodennamen als Code-Block @@ -30,7 +34,7 @@ export class TplHoverProvider implements vscode.HoverProvider { return new vscode.Hover(md); } // Fallback, wenn man nur über dem Namespace (z.B. "discovery") hovert - return new vscode.Hover(new vscode.MarkdownString(`**${word}**\n\n*(BMC Built-in Namespace)*`)); + return new vscode.Hover(new vscode.MarkdownString(`**${word}**\n\n*(BMC Built-in / TKU Namespace)*`)); } // 2. Lokale Defines @@ -88,4 +92,4 @@ export class TplHoverProvider implements vscode.HoverProvider { return null; } -} \ No newline at end of file +} diff --git a/src/providers/completions/LocalContextCompletion.ts b/src/providers/completions/LocalContextCompletion.ts index 215e8dc..6eb10e1 100644 --- a/src/providers/completions/LocalContextCompletion.ts +++ b/src/providers/completions/LocalContextCompletion.ts @@ -1,6 +1,9 @@ import * as vscode from 'vscode'; import { CompletionStrategy } from './CompletionStrategy'; import { tplBuiltIns } from '../../data/TplBuiltIns'; +import { generatedTplBuiltIns } from '../../data/GeneratedTplBuiltIns'; // Pfad ggf. anpassen + +const allTplFunctions: Record = { ...tplBuiltIns, ...generatedTplBuiltIns }; export class LocalContextCompletion implements CompletionStrategy { public async provideCompletions(document: vscode.TextDocument, position: vscode.Position, linePrefix: string): Promise { @@ -12,7 +15,8 @@ export class LocalContextCompletion implements CompletionStrategy { if (dotMatch) { const prefix = dotMatch[1]; - const bmcNamespaces = Object.keys(tplBuiltIns); + // Auf erweitertes Dictionary prüfen + const bmcNamespaces = Object.keys(allTplFunctions); if (bmcNamespaces.includes(prefix)) { return undefined; // Überlässt das Feld komplett der BuiltInCompletion! } @@ -99,4 +103,4 @@ export class LocalContextCompletion implements CompletionStrategy { } return items; } -} \ No newline at end of file +}