•Create
omultiple flash probes for device
osupport compound variable
osupport reference variable of the feature as parser parameter
osupport reference GB dynamic rule
•Trigger
otrigger flash probe of the same device
flash_probes: # Definition for generating Flash Probe.
- name: BGP_Flapping#{ $ip1 }
display_name: BGP_Flapping#{ $ip1 } # display name, optional
description: xxxx
target_type: Interface # Device or Interface
target_interface: $intfName # target interface name, valid for target_type=Interface, null means all interfaces
qulification: | # qulification to filter the Device/Interface
$device.subTypeName=="Cisco Router" && $intf.name!="e0" && $intf.xxx=="xx"
conflict_mode: Skip # support values: Override and Skip, the default value is Skip
type: Primary # Primary or Secondary or External
trigger_type: AlertBased # AlertBased or TimerBased, AlertBased is the default value, valid for type=Primary
alert_source: ServiceNow # valid for type=External, such as ServiceNow...
frequency_multiple: 16 # multiple of the period of the base frequency valid for target_type=Device&&type=Primary&&trigger_type=TimerBased
variable_defines: # the variables that may be used in rule or alert_message, valid for type=Primary|Secondary&&trigger_type=AlertBased
- parser: "Built-in Files/CLI Command/Cisco IOS/Ping [Cisco IOS]"
parameters:
vrf: $xx
ip: $ip1
variables: # the variables that want to use in rule or alert_message
- name: status # variable full name
alias: status # alias that is actually used when referenced in Rule and alert_Message, same as 'name' if alias have no value
monitor: # It indicates this variable needs to be monitored
display_name: xxx_status # display name which show up on the map data view.
unit: xxx_status # unit which show up on the map data view.
- parser: "Built-in Files/CLI Command/Cisco IOS/Interface xxx"
variables:
- name: intf.status
alias: intfStatus
- compound_variable: xxx1
expression: $status
- compound_variable: xxx2
expression: $status+3
rule: # valid for type=Primary|Secondary&&trigger_type=AlertBased
loop_table_rows: false
conditions:
- operand1: $status
operator: NotEqual # 1. UseGB, 2...
operand2: "Success"
- operand1: $status
operator: NotEqual
operand2: $status[last]
boolean_expression: A or B
alert_message: have bgp flapping alert $status # alert meessage, support variables, valid for type=Primary|Secondary&&trigger_type=AlertBased
triggered_by: # flash probe list that triggered by, valid for type=Secondary&&trigger_type=AlertBased
- name: FlashProbe1 # flash probe name, device level, same device&interface
target_type: Device # Device or SameLevel, SameLevel is the default value
enable: true # whether to enable
send_email: # send email when alert occurs.
enable: true
emails:
- [email protected]; [email protected]
trigger_event_template: New Template # optional, name of event template that will trigger when send email
enable: true # whether to enable, the default is true
Property Name |
Type |
Required |
Definition |
name |
string |
Y |
Flash name |
display_name |
string |
N |
It shows in IE Probe Flash UI. The default is the same with the name parameter. |
description |
string |
N |
The flash probe description |
target_type |
enum |
N |
There are 2 target types: •Device(default) •Interface |
target_interface |
string |
N |
If the target type is Interface, this parameter is available. It also references the feature variable as the value, such as $IntfName. |
qualification |
string |
N |
The qualification of the flash probe. It can use the GDR variable or feature variable as a condition, such as :$device.subTypeName=="Cisco Router" && $intf.name!="e0" && $intf.xxx=="xx" It supports device GDR attribute and physical interface GDR attribute. |
conflict_mode |
string |
N |
Override or Skip(default) |
type |
string |
N |
Primary(default), Secondary and External are supported. |
trigger_type |
string |
N |
This parameter is valid if the type parameter is Primary. It supports AlertBased (default)and TimerBased. |
alert_source |
string |
N |
This parameter is valid if the type parameter is External, such as 'ServiceNow'. |
frequency_multiple |
int |
Y |
Multiple of the period of the base frequency. It is valid for target_type=Device&&type=Primary&&trigger_type=TimerBased |
variables_defines |
object |
N |
It may be used in rule or alert_message. It is valid for type=Primary|Secondary&&trigger_type=AlertBased. |
variables_defines.parser |
list |
N |
Parser path |
variable_defines.parameters.{var1} |
string |
N |
The parser parameter variable,and {var1} is the variable name. |
variable_defines.variables |
object |
N |
The variables to be used in rule or alert_message |
variable_defines.variables.name |
string |
N |
The variable of the parser full name |
variable_defines.variables.alias |
string |
N |
The alias actually used when referenced in rule and alert_Message, same as 'name' if alias has no value. |
variable_defines.varaibles.monitor |
object |
N |
It indicates that this variable needs to be monitored. |
variable_defines.varaibles.monitor.display_name |
string |
N |
Display the name which shows up on the map data view. |
variable_defines.varaibles.monitor.unit |
string |
N |
As a variable unit and shows up on the map data view. |
variable_defines.compound_variable |
object |
N |
The compound variable name, and defining multiple compound variables is supported. |
variable_defines.compound_variable.expression |
string |
N |
Define the compound variable expression such as $var > 0 and $var2 !=None. |
rule |
object |
N |
Define rule for the flash probe . It is valid for type=Primary|Secondary&&trigger_type=AlertBased |
rule.loop_table_rows |
bool |
N |
The default is true. It will be set as true if the variable is the table. |
rule.conditions |
object |
N |
The rule condition |
rule.conditions.operand1 |
string |
N |
|
rule.conditions.operator |
object |
N |
The rule condition operator expression, such as Equal, Not Equal. It supports dynamic GB rule as well. |
rule.conditions.operand2 |
string |
N |
|
rule.conditions.boolean_expression |
string |
N |
The rule bool expression |
alert_message |
string |
N |
The alert message, which supports variable input such as $status. It is valid for type=Primary|Secondary&&trigger_type=AlertBased. |
triggered_by |
object |
N |
The triggered flash probe list It is valid for type=Secondary&&trigger_type=AlertBased. |
triggered_by.name |
string |
N |
The triggered flash probe name |
triggered_by.target_type |
string |
N |
Device#Device or SameLevel(default) |
enable |
bool |
N |
Whether to enable the flash probe being created or not The default is true. |
send_mail |
object |
N |
Setting email content for flash probe. |
send_mail.enable |
bool |
N |
The default is true when there is the send_email tag and at least one valid email address is filled in. |
emails |
list |
N |
The email address list |
trigger_event_template |
string |
N |
The name of the event template to be triggered when sending an email . |
•Create
ocreate a NI by feature decode
ocreate a default NI if the "create_default_NI" tag is true
•Trigger
network_intents: # Definition for generating NI.
ref_label: ospf
path: All Network Intents/General_BGP_{$crossRelationHash} # the path to generate NI, here can use variables of FIG level
conflict_mode: Skip # support values: Override and Skip, the default is Skip
lock_after_created: true # the default is false
create_default_NI: true # Whether to create Default NI for the FIG, the default is false.
baseline_update_type: LatestFromDE # support values: LatestFromDE(Relative to the time of running FID), LiveFromNextRun, the default is LatestFromDE.
ni_template: "./NI_template1.ni" # Relative path of the NI Template file, NI will be generated from the NITemplate when create_default_NI=false.
ni_inputs:
devices:
R1:
# repeat: false # Whether to generate the Device in NI for all Device of FIG replication that meets the criteria, the default is false.
device_condition: order('$bgp')==1 # FIG Device to NI Device Mapping condition.
# If repeat=true and there are multiple devices that meet this condition, the NI Device will be copied to generate.
parameters:
intf: $intfName1
ip: $ip1
# here can use variables and functions of device level
# line pattern va riables and GDR variables are available here
# line pattern variable write like this: $bgp, without a prefix.
# GDR variable write like this, $device.subType, with prefix $device.
R2:
device_condition: order('$bgp')==2
parameters:
intf: $intfName1
ip: $ip1
common_role_variables:
- name: roleVarible1
from_role: role1 # role which the variable come from
device_condition: true # optional, take the first device in the role that meets the condition
variable: "Conmand2.var3"
analysis_devices:
- device_role: role1
device_condition: expression($fi.xxx)=="yyyy1"
local_role_variables:
- name: roleVarible2
from_role: Role2 # role which the variable come from
variable: "Conmand2.var3"
device_condition: $device.xxx == $ni.role2.current.device.xxx
commands:
- type: Command # Command or Config
id: Conmand1 # samle: cmd1, config1
command: show interface { $fi.intfName1 } # only for type=Command
description: xxxxx
parser: "./VisualParser.xpar"
compound_variables:
- name: var1 # Must be unique in the all compound variables in this NI
value_type: string # string or number
expression: $Config1.version+"_"+$ni.roleVarible1 + $ni.roleVarible2.GetLength() # only support the single variables from current device
merged_tables: # table cannot be used across devices
- name: vlan_table3
table1:
table: Command1.Paragraph1 # table cannot be used across devices
paired_keys: [intf, key2] # suport multi key fields, the order of the fields must match with right join_keys
table2:
table: Command2.Table2
paired_keys: [ip, key2]
table_keys: [Command1.Paragraph1.intf, Command2.Table2.column2]
# columns: # not supported in v10.0a and will be supported in the next version
# - name: intf11
# orig_col_name: Command1.Paragraph1.intf # the column full name from table1 or table2
# is_table_key: true
diagnoses:
- anchor: Paragraph1.intf_name # optional, only support the variables from current config/command
note: xxxxxxxx # donot support variable
- anchor: Paragraph1.ip
name: Check IP
description: check the ip accuracy
if:
rule:
loop_table_rows: true # the default is false
conditions:
- operand1: Command1.Paragraph1.ip[Current] # [] support values: Current,Last,Baseline, the default is Current
operator: Does Not Equal # Equals, Contains....
operand2_type: ConstFromFITExp # support types: Auto, Const, Var, ConstFromFITExp, the default is Auto, Auto will be automatically recognized
operand2: "abc"+$fi.var1 # support to use FI or GDR variables if operand2_type=ConstFromFITExp
- operand1: Command1.Paragraph2.mask
operator: Does Not Equal
operand2: ni.roleVarible1[Current]
boolean_expression: not (A or B)
then:
note:
color: red # supports red, green and other color values, the default is red
text: Diagnosis Alert $Command1.Paragraph2.mask,$ni.roleVarible1
status_code_for_this_device:
enable: true # the default is false
type: Alert # Success or Alert, the default is Alert
status_code_for_ni:
enable: true # the default is false
type: Alert # Success or Alert, the default is Alert
note: Diagnosis Alert $Paragraph1.ip
else: # optional
note:
color: green # supports red, green and other color values, the default is green
text: Diagnosis Success
status_code_for_this_device:
enable: true
type: Success # Success or Alert, the default is Success
status_code_for_ni:
enable: true
type: Success # Success or Alert, the default is Success
note: Diagnosis Success
- device_role: role2
Property Name |
Type |
Required |
Definition |
path |
string |
Y |
The path to generate the Network Intent. Only use the crossRelationHash variable here. |
ref_label |
string |
N |
Define a label that can be referenced by other assets. |
conflict_mode |
string |
N |
Skip(default) or Override Verify if the asset being created have already existed. |
create_default_NI |
bool |
N |
Whether to create the Default Network Intent for the FIG. The default value is false. The parameter is valid if the the Network Intent template does not exist or None |
lock_after_created |
bool |
N |
Lock the created Network Intent. The default value is false. |
baseline_update_type |
string |
N |
LatestFromDE(compared to the time of running FIT) or LiveFromNextRun, The default value is LatestFromDE. |
ni_template |
string |
N |
The relative path of the Network Intent Template file. |
ni_inputs |
object |
N |
Devices included in the Network Intent. |
ni_inputs.devices.R1 |
string |
N |
Satisfy R1 condition. |
ni_inputs.devices.R1.device_condition |
string |
N |
FIG Device to NI Device Mapping condition. |
ni_inputs.devices.R1.parameter |
string |
N |
|
common_role_variables |
object |
N |
Define one or more common variable(s). |
common_role_variables.name |
string |
N |
A Common role variable name |
common_role_variables.from_role |
string |
N |
The role name from which the variable comes |
common_role_variables.device_condition |
string |
N |
The common role variable condition |
common_role_variables.variable |
string |
N |
The variable from which the command comes |
analysis_devices |
obejct |
Y |
|
analysis_devices.device_role |
string |
Y |
Define the device role name. |
analysis_devices.device_condition |
string |
Y |
Define the condition for device analysis. |
analysis_devices.local_role_variables |
object |
N |
|
analysis_devices.local_role_variables.name |
string |
N |
The local variable name |
analysis_devices.local_role_variables.from_role |
string |
N |
The role name from which the local common variable comes |
analysis_devices.local_role_variables.variable |
string |
N |
|
analysis_devices.local_role_variables.device_condition |
string |
N |
|
analysis_devices.commands |
object |
N |
|
analysis_devices.commands.type |
string |
Y |
There are two types: •Command •Config |
analysis_devices.commands.id |
string |
Y |
The command id. |
analysis_devices.commands.description |
string |
N |
|
analysis_devices.commands.parser |
string |
N |
Reference the path of the parser. |
analysis_devices.commands.compound_variables |
object |
N |
Define the compound variable for this NI. |
analysis_devices.commands.compound_variables.name |
string |
N |
The compound variable name |
analysis_devices.commands.compound_variables.value_type |
string |
N |
Two types: •String •Number |
analysis_devices.commands.compound_variables.expression |
string |
N |
|
analysis_devices.commands.merged_tables |
object |
N |
Define the merged table for this NI. |
analysis_devices.commands.merged_tables.name |
string |
N |
|
analysis_devices.commands.merged_tables.table1 |
object |
N |
|
analysis_devices.commands.merged_tables.table1.table |
string |
N |
|
analysis_devices.commands.merged_tables.table1.paired_keys |
list |
N |
|
analysis_devices.commands.merged_tables.table2 |
object |
N |
|
analysis_devices.commands.merged_tables.table2.table |
string |
N |
|
analysis_devices.commands.merged_tables.table2.paired_keys |
list |
N |
|
analysis_devices.commands.merged_tables.table2.table_keys |
list |
N |
|
analysis_devices.commands.diagnoses |
object |
Y |
Define the diagnoses for this NI |
analysis_devices.commands.diagnoses.anchor |
string |
Y |
Define the anchor for this diagnoses. The anchor is optional. |
analysis_devices.commands.diagnoses.note |
string |
Y |
Must define either note or name. |
analysis_devices.commands.diagnoses.name |
string |
Y |
Must define either note or name. |
analysis_devices.commands.diagnoses.description |
string |
N |
|
analysis_devices.commands.diagnoses.if |
string |
Y |
The definition of the diagnoses starts here. |
analysis_devices.commands.diagnoses.if.rule |
string |
Y |
|
analysis_devices.commands.diagnoses.if.rule.loop_table_rows |
string |
N |
The default is false. |
analysis_devices.commands.diagnoses.if.rule.conditions |
string |
Y |
|
analysis_devices.commands.diagnoses.if.rule.conditions.operand1 |
string |
Y |
|
analysis_devices.commands.diagnoses.if.rule.conditions.operator |
string |
Y |
|
analysis_devices.commands.diagnoses.if.rule.conditions.operand2_type |
N |
The supported types: •Auto(default, and will be automatically recognized) •Const •Var •ConstFromFITExp |
|
analysis_devices.commands.diagnoses.if.rule.conditions.operand2 |
string |
N |
|
analysis_devices.commands.diagnoses.if.rule.boolean_expression |
string |
Y |
|
analysis_devices.commands.diagnoses.if.then |
object |
Y |
|
analysis_devices.commands.diagnoses.if.then.note |
string |
Y |
|
analysis_devices.commands.diagnoses.if.then.note.color |
string |
Y |
Colors supported: red,green or other colors(using RGB value) |
analysis_devices.commands.diagnoses.if.then.note.text |
string |
Y |
|
analysis_devices.commands.diagnoses.if.then.status_code_for_this_device |
object |
N |
|
analysis_devices.commands.diagnoses.if.then.status_code_for_this_device.enable |
bool |
N |
•true •false(default) |
analysis_devices.commands.diagnoses.if.then.status_code_for_this_device.type |
enum |
N |
Alert(default) or Success |
analysis_devices.commands.diagnoses.if.then.status_code_for_ni.enable |
bool |
N |
•true •false(default) |
analysis_devices.commands.diagnoses.if.then.status_code_for_ni.type |
enum |
N |
Alert(default) or Success |
analysis_devices.commands.diagnoses.if.then.status_code_for_ni.note |
string |
N |
|
analysis_devices.commands.diagnoses.if.else |
object |
N |
|
analysis_devices.commands.diagnoses.if.else.note |
string |
N |
|
analysis_devices.commands.diagnoses.if.else.note.color |
string |
N |
Colors supported: red,green or other colors(using RGB value) |
analysis_devices.commands.diagnoses.if.else.note.text |
string |
N |
|
analysis_devices.commands.diagnoses.if.else.status_code_for_this_device |
object |
N |
|
analysis_devices.commands.diagnoses.if.else.status_code_for_this_device.enable |
bool |
•true •false |
|
analysis_devices.commands.diagnoses.if.else.status_code_for_this_device.type |
enum |
N |
Alert or Success(default) |
analysis_devices.commands.diagnoses.if.else.status_code_for_ni.enable |
bool |
N |
•true •false |
analysis_devices.commands.diagnoses.if.else.status_code_for_ni.type |
enum |
N |
Alert or Success(default) |
•Install Triggered Automation
oCreate trigger automation asset:
▪The Network Intent
▪The Flash Probe
triggered_automations:
- description: xxxx
automations:
network_intents:
- Public NIs/BGP/General HSRP
auto_append_created_ni: true # Whether to automatically add the created NI by this FIT
auto_append_created_ni_with_ref_labels: [ospf, xxxxx]
external_assets:
- from_fit: fit1/FIT_Root # The FIT to which the asset to be referenced belongs.
auto_append_created_ni: false # Whether to add all the created NI by specified FIT, the default is false
auto_append_created_ni_with_ref_labels: [ospf] # ref the NIs with the ref_labels from the specified FIT.
triggered_by_flash_probes: # flash probe list that triggered by
- name: FlashProbe1 # flash probe name
qualification: | # qulification to filter the Device/Interface
$device.subTypeName=="Cisco Router" && $intf.name!="e0" && $intf.xxx=="xx"
note: Check bgp # note on decision tree
playbooks: [BGP, HSRP] # note on decision tree
trigger_rule:
run_type: Once # Once or Continuously
frequency: # run frequency for Continuously
interval: 20
times: 3
suppression:
enable: true
wont_run_twice_within: 15
conflict_mode: Skip # support values: Override and Skip, the default value is Skip
Property Name |
Type |
Required |
Definition |
description |
string |
N |
The triggered automation description |
automation |
object |
Y |
Include the NI definition. Supports to reference current YAML created NI. |
automation.network_intents |
list |
Y |
References the NI path. Supports multiple NIs. |
automations.auto_append_created_ni |
bool |
N |
Whether to automatically add the NI created by this FIT. The default is true. |
automations.auto_append_created_ni_with_ref_labels |
list |
N |
Add the NI with the same labels |
automations.external_assets |
object |
N |
Add external assets |
automations.external_assets.from_fit |
string |
N |
The external FIT path |
automations.external_assets.auto_append_created_ni |
true |
N |
Whether to automatically add the created NI The default is true. |
automations.external_assets.auto_append_created_ni_with_ref_labels |
list |
N |
Add the NI with the same labels |
triggered_by_flash_probes |
list object |
Y |
The triggered Flash Probe list. |
triggered_by_flash_probes.name |
string |
Y |
The Flash probe name |
triggered_by_flash_probes.qualification |
string |
N |
The qualification can use the GDR variable or feature variable as a condition, such as :$device.subTypeName=="Cisco Router" && $intf.name!="e0" && $intf.xxx=="xx" It supports device GDR attribute and physical interface GDR attribute. |
triggered_by_flash_probes.note_on_decision_tree |
string |
N |
A note displayed on decision tree |
triggered_by_flash_probes.trigger_rule |
object |
Y |
The Trigger rule definition |
triggered_by_flash_probes.trigger_rule.run_type |
string |
Y |
Once or Continuously |
triggered_by_flash_probes.trigger_rule.frequency |
object |
Y |
The run frequency for Continuously |
triggered_by_flash_probes.trigger_rule.frequency.interval |
int |
Y |
The unit is minute. |
triggered_by_flash_probes.trigger_rule.frequency.times |
int |
Y |
The repeated run times. |
triggered_by_flash_probes.trigger_rule.suppression |
object |
N |
The unit is minute. |
triggered_by_flash_probes.trigger_rule.suppression.enable |
bool |
N |
|
triggered_by_flash_probes.trigger_rule.suppression.wont_run_twice_within |
string |
N |
|
conflict_mode |
string |
N |
To verify if the triggered automation has a conflict. Override or Skip (default) |
enable |
bool |
N |
Boolean value: true (default) or false |
send_mail |
object |
N |
Setting email content. |
send_mail.enable |
bool |
N |
The default is true when there is the send_email tag and at least one valid email address is filled in. |
emails |
list |
N |
The email address list |
trigger_event_template |
string |
N |
The name of the event template to be triggered when an email is sent. |
•Create
oCreate a Data View Template.
•Schedule
oScheduled a Data View Template.
•Install Recommended Automation
oRecommend Automation of installing Data View Template.
dataview_templates: # DVTs that need to create
- path: ">>Data View Templates>Public Data View Templates>xxxx_{$fi.eigen1}"
create_for_level: FIG # FIG or Global, the default is Global
ref_label: "refLabel1"
tags: [BGP, HSRP]
default_data_source:
type: LiveRegularly # LiveOnce, LiveRegularly, CurrentBaseline, the default is CurrentBaseline
frequency: # for LiveRegularly
every: 2 # unit is minute
repeat_times: 3 # repeat run times, if null means no repeat
qualified_devices: # support all the GDR properties that ES supports
dynamic_search:
conditions:
- property: subTypeName
values: [Cisco IOS Switch]
- property: name
operator: Contains # support types: Contains, Match, NotCotrains, NotMatch
values: "BJ"
- property: _nb_feature
operator: Contains # support types: Contains, Match, NotCotrains, NotMatch
values: "BJ"
boolean_expression: A and B
static_include:
auto_append_matched_devices: false # the default is false
devices: [R1, R2]
static_exclude:
auto_append_matched_devices: false # the default is false
devices: [R3, R4]
recommended_automations: # dvt level recommended automations
- auto_append_created_ni: true # Whether to automatically add the created NI by this FIT, the default is false
- auto_append_created_ni_for_same_FIG: true # the default is true
- auto_append_created_ni_with_ref_labels: [refLabel1, xxxxx]
- auto_append_created_rbt: true # Whether to automatically add the created RBT by this FIT, the default is false
- auto_append_created_rbt_with_ref_labels: [refLabel1]
- auto_append_created_rbt_for_same_FIG: true
- external_assets:
- from_fit: fit1/FIT_Root # The FIT to which the asset to be referenced belongs.
auto_append_created_ni: false # Whether to add all the created NI by specified FIT, the default is false
auto_append_created_ni_with_ref_labels: [ospf] # ref the NIs with the ref_labels from the specified FIT.
auto_append_created_rbt: false # the default is false
auto_append_created_rbt_with_ref_labels: [ospf]
- name: Basic Commands
type: CLI # support types: CLI, RunbookTemplate
commands: # cli commands
- "show verson"
- "show standby {$fi.xxxx}"
auto_append_feature_commands: true
description: xxxx
- name: Troubleshooting OSPF Neighbor State1
type: RunbookTemplate # support types: CLI, RunbookTemplate
path: "Built-in Runbook Templates/Sample Runbook/Troubleshooting/Troubleshooting OSPF Neighbor State" # runbook template path
description: xxxx
- name: NI1
type: NetworkIntent # support types: CLI, RunbookTemplate
path: "HSRP/General HSRP2" # runbook template path
description: xxxx
input_variables:
- type: ParserParameter
parser: "Built-in Files/CLI Command/Aruba WLC/IP Interface Brief [Aruba WLC]"
parameters:
- name: para1
display_name: para1
value: ($fi.eigen1+2)
allow_manual_input: false # the default is false
- name: para2
value: $fi.eigen2
- name: para3
value: '"GDR:$vlan"'
device_positions:
- parser: "Built-in Files/CLI Command/HP ProCurve Switch/NTP Status [HP ProCurve Switch]"
variable: sntp_mode
- parser: "Built-in Files/CLI Command/Aruba WLC/IP Interface Brief [Aruba WLC]"
variable: ip_intfs
- parser: "Built-in Files/CLI Command/Aruba WLC/IP Interface Brief [Aruba WLC]"
variable: ip_intfs1
index: 5 # the dataview position index, if not set, the positions are set in array order by default.
- type: Text # Text or ParserVariable, the default is ParserVariable
title: "ospf: {$fi.var1}" # GDR property name, not display name
content: xxxxxxxxxxxxxx{$fi.var1}xx
- type: GDR # support types: GDR or Parser, the default is Parser
variable: subTypeName # GDR property name, not display name
interface_positions:
- interface_type: IPv4 Interface
positions:
- parser: "Built-in Files/CLI Command/Aruba WLC/IP Interface Brief [Aruba WLC]"
variable: ip_intfs.intf
- type: Text # Text or ParserVariable, the default is ParserVariable
title: "ospf: {$fi.var1}" # GDR property name, not display name
content: xxxxxxxxxxxxxx{$fi.var1}xx
Property Name |
Type |
Required |
Definition |
path |
string |
Y |
The Data View Template full path |
create_for_level |
string |
N |
•Global(default) •FIG |
ref_label |
string |
N |
|
tags |
string |
N |
|
default_data_source |
object |
Y |
|
default_data_source.type |
string |
Y |
•LiveOnce •LiveRegularly •CurrentBaseline(default) |
default_data_source.frequency |
string |
N |
It is valid if the type is LiveRegularly, and to set the frequency. |
default_data_source.frequency.type |
string |
N |
It is valid for LiveRegularly. |
default_data_source.frequency.every |
string |
N |
It is valid for LiveRegularly. |
default_data_source.frequency.repeat_times |
string |
It is valid for LiveRegularly. |
|
qualified_devices |
object |
Y |
|
qualified_devices.dynamic_search |
object |
N |
|
qualified_devices.dynamic_search.conditions |
object |
N |
|
qualified_devices.dynamic_search.conditions.property |
string |
N |
|
qualified_devices.dynamic_search.conditions.operator |
string |
N |
|
qualified_devices.dynamic_search.conditions.value |
string |
N |
|
qualified_devices.dynamic_search.boolean_expression |
string |
Y |
|
qualified_devices.static_include |
object |
N |
|
qualified_devices.static_include.auto_append_matched_devices |
bool |
N |
Whether to automatically add the devices matched by Feature Decode false(default) or true |
qualified_devices.static_include.devices |
list |
N |
Input a hostname. |
qualified_devices.static_exclude |
object |
N |
|
qualified_devices.static_exclude.auto_append_matched_devices |
bool |
N |
Whether to automatically exclude the devices matched by Feature Decode false(default) or true |
qualified_devices.static_exclude.devices |
list |
N |
Input a hostname. |
input_variables |
object |
N |
|
input_variables.type |
object |
N |
Only supports: ParserParameter |
input_variables.parser |
string |
Y |
It is a must tag if defining input_variables object. |
input_variables.parameters |
object |
Y |
It is a must tag if defining input_variables object. |
input_variables.parameters.name |
string |
Y |
The parameter name. Keep the name here the same as the one in parser command. |
input_variables.parameters.display_name |
string |
N |
|
input_variables.parameters.value |
string |
Y |
|
input_variables.parameters.allow_manual_input |
string |
N |
|
recommended_automations |
object |
N |
Currently only supports: •Execute CLI Commands. •Runbook Template. •Network Intent |
recommended_automations.auto_append_created_ni |
bool |
N |
false(default) or true |
recommended_automations.auto_append_created_ni_with_ref_labels |
list |
N |
|
recommended_automations.auto_append_created_ni_for_same_fig |
bool |
N |
|
recommended_automations.auto_append_created_rbt |
bool |
N |
•false(default) •true |
recommended_automations.auto_append_created_rbt_with_ref_labels |
list |
N |
|
recommended_automations.auto_append_created_rbt_for_same_fig |
bool |
N |
|
recommended_automations.external_assets |
object |
N |
|
recommended_automations.external_assets.from_fit |
string |
Y |
|
recommended_automations.external_assets.auto_append_created_ni |
bool |
N |
false(default) or true |
recommended_automations.external_assets.auto_append_created_ni_with_ref_labels |
list |
N |
|
recommended_automations.external_assets.auto_append_created_rbt |
bool |
N |
false(default) or true |
recommended_automations.external_assets.auto_append_created_rbt_with_ref_labels |
list |
N |
|
recommended_automations.name |
list-string |
N |
The Runbook template full path |
recommended_automations.type |
enum |
N |
•CLI •RunbookTemplate •NetworkIntent |
recommended_automations.commands |
list |
N |
It is valid if the type is CLI. |
recommended_automations.auto_append_feature_commands |
bool |
N |
It is valid if the type is CLI. |
recommended_automations.description |
string |
N |
|
recommended_automations.path |
string |
N |
The Runbook Template or Network Intent path |
device_positions |
object |
N |
|
device_positions.parser |
string |
N |
The parser path |
device_positions.variable |
string |
N |
The variable name |
device_positions.index |
enum |
N |
The data view position: 0, 1, 2 or 3, ...19. |
device_positions.type |
enum |
N |
GDR or Text |
interface_positions |
object |
N |
|
interface_positions.interface_type |
enum |
N |
•IPv4 Interface •Interface •IPv6 Interface •IPsec VPN Interface •GRE VPN Interface |
interface_positions.positions |
object |
N |
|
interface_positions.positions.parser |
string |
N |
The parser path |
interface_positions.positions.variable |
string |
N |
The variable name |
interface_positions.positions.index |
enum |
N |
The data view position: 0, 1, 2 or 3, ...23. |
•Create
oCreate Golden Baseline, Define a Golden Baseline Template. When running YAML, the matched device or interface will be automatically instanced. Note that all GB rules defined here are Auto and do not support Manual Rule in current version.
golden_baselines:
- parser: Built-in Files/Network Vendors/Cisco/Cisco IOS/show standby [Cisco IOS]
variable: intfs.state
enable_dynamic: true
- parser: Built-in Files/Network Vendors/Cisco/Cisco Nexus/show hsrp [Cisco Nexus Switch]
variable: intfs.priority
enable_dynamic: true
Property Name |
Type |
Required |
Definition |
parser |
string |
Y |
The parser path |
variable |
string |
Y |
The variable name |
enable_dynamic |
bool |
N |
Boolean value: true(default) or false |
•Schedule
oScheduled CLI command in the backend.
schedule_cli_tasks: # create Schedule CLI Task
- command: show interface {$ip1}
frequency_type: Low # Heigh or Medium or Low
description: FID-General HSRP-Schedule CLI
enable: true # whether to enable, true is default value
conflict_mode: Skip # support values: Override and Skip, the default value is Skip
Property Name |
Type |
Required |
Definition |
command |
string |
Y |
Show the command. |
frequency_type |
enum |
N |
High, Medium or Low(default) |
description |
string |
N |
Describe the scheduled command. |
enable |
bool |
N |
Boolean value: true(default) or false |
conflict_mode |
enum |
N |
Override or Skip(default) |
•Schedule
oScheduled Parser or data view template task.
schedule_tasks: # create Schedule Task
- name: FID-General HSRP-Schedule Task
auto_append_created_DVT: true # Whether to automatically add the created DVT by this FIT
dataview_templates: # the DVTs that need to install by schdule task
- ">>Data View Templates>Built-in Data View Templates>Cisco ACI>Fabric Health and Faults [Cisco ACI]"
- ">>Data View Templates>Built-in Data View Templates>GeneralHSRP"
parsers: # the parsers that need to install by schdule task
- "Built-in Files/Configuration/Cisco IOS/EIGRP Configuration [Cisco IOS]"
frequency:
type: Daily # support values: Hourly, Daily and Weekly.
time: 20:58:25
day_of_week: Monday # support values: Monday, Tuesday, Wednesday, Thursday, Friday, Saturday and Sunday, valid when type=Weekly.
timezone: Eastern Standard Time # see time zone: https://www.timeanddate.com/time/zones/
Property Name |
Type |
Required |
Definition |
name |
string |
Y |
The schedule task name |
auto_append_created_DVT |
bool |
N |
Boolean value: true or false(default) |
dataview_templates |
list |
N |
The list of Data View Templates |
parsers |
list |
N |
The list of parsers |
frequency |
object |
Y |
Define the frequency. |
frequency.type |
enum |
Y |
It supports values: Hourly, Daily, and Weekly. |
frequency.time |
string |
Y |
An example: 20:58:25 |
frequency.day_of_week |
enum |
Y |
It is valid when the type is Weekly. It supports values: Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, and Sunday. |
frequency.timezone |
enum |
Y |
See time zone: https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/default-time-zones |
•Create
oCreate a Runbook template.
•Install Recommended Automation
oRecommend Automation of installing Runbook Template.
runbook_templates:
- path: "Shared Runbook Templates/{$fit.currentDomain}/xxx_{$fi.eigen1}"
create_for_level: FIG # FIG or Global, the default is Global
ref_label: "refLabel1"
tags: [BGP, HSRP]
qualified_devices: # support all the GDR properties that ES supports
dynamic_search:
conditions:
- property: subTypeName
values: [Cisco IOS Switch]
- property: name
operator: Contains # support types: Contains, Match, NotCotrains, NotMatch
values: "BJ"
boolean_expression: A and B
static_include:
auto_append_matched_devices: false # the default is false
devices: [R1, R2]
static_exclude:
auto_append_matched_devices: false # the default is false
devices: [R3, R4]
nodes:
- auto_append_created_dvt: true # Whether to automatically add the created RBT by this FIT, the default is false
- auto_append_created_dvt_with_ref_labels: [refLabel1]
- auto_append_created_dvt_for_same_FIG: true
- external_assets:
- from_fit: fit1/FIT_Root # The FIT to which the asset to be referenced belongs.
auto_append_created_dvt: false # Whether to add all the created DVT by specified FIT, the default is false
auto_append_created_dvt_with_ref_labels: [ospf] # ref the DVTs with the ref_labels from the specified FIT.
- type: DataviewTemplate # support types: DataviewTemplate, OverallHealthMonitoring, CLI, Qapp
path: ">>Data View Templates>Built-in Data View Templates>_Built-in Data for LWAP"
name: Data for LWAP
description: xxxx # optional
- type: Qapp # support types: DataviewTemplate, CLI, Qapp, OverallHealthMonitor, OverallHealthView
path: "Built-in Qapp/Qapp1"
name: Qapp1
description: xxxx # optional
qualified_devices: # optional
dynamic_search: ~
static_include: ~
static_exclude: ~
- type: OverallHealthMonitor
name: Overall Health Monitor
description: xxxx # optional
- type: OverallHealthView
name: Overall Health View
description: xxxx # optional
- type: CLI
name: Command List
description: xxxx # optional
auto_append_feature_commands: true # whether to automatically append the commands of feature to RunbookTemplate Nodes, only for the commands that not include line pattern variables
commands:
- command: show version # the format for a command with note
note: note for command
- show interface # the format without note
- "show standby {$fi.xxxx}"
qualified_devices: # optional
dynamic_search: # support all the GDR properties that ES supports
conditions:
- property: subTypeName
values: [Cisco IOS Switch]
- property: name
operator: Contains # support types: Contains, Match, NotCotrains, NotMatch
values: "BJ"
boolean_expression: A and B
static_include:
auto_append_matched_devices: false # the default is false
devices: [R1, R2]
static_exclude:
auto_append_matched_devices: false # the default is false
devices: [R3, R4]
conflict_mode: Skip # support values: Override and Skip, the default is Skip
Property Name |
Type |
Required |
Definition |
path |
string |
Y |
The Runbook Template full path |
create_for_level |
enum |
Y |
•Global(default) •FIG |
ref_label |
string |
N |
|
tags |
list |
N |
|
qualified_devices |
object |
Y |
|
qualified_devices.dynamic_search |
object |
N |
|
qualified_devices.dynamic_search.conditions |
object |
N |
|
qualified_devices.dynamic_search.conditions.property |
string |
N |
|
qualified_devices.dynamic_search.conditions.operator |
string |
N |
|
qualified_devices.dynamic_search.conditions.value |
string |
N |
|
qualified_devices.dynamic_search.boolean_expression |
string |
Y |
|
qualified_devices.static_include |
object |
N |
|
qualified_devices.static_include.auto_append_matched_devices |
bool |
N |
Whether to automatically add the devices matched by Feature Decode: •false(default) •true |
qualified_devices.static_include.devices |
list |
N |
Input a hostname. |
qualified_devices.static_exclude |
object |
N |
Whether to automatically add the devices matched by Feature Decode |
qualified_devices.static_exclude.auto_append_matched_devices |
bool |
N |
•false(default) •true |
qualified_devices.static_exclude.devices |
list |
N |
Input a hostname. |
nodes |
object |
Y |
Add runbook nodes. Currently supports: •DataviewTemplate •Qapp •OverallHealthMonitor •OverallHealthView •CLI |
nodes.auto_append_created_dvt |
bool |
N |
•false(default) •true |
nodes.auto_append_created_dvt_with_ref_labels |
list |
N |
|
nodes.auto_append_created_dvt_for_same_fig |
bool |
N |
|
nodes.external_assets |
object |
N |
|
nodes.external_assets.from_fit |
string |
Y |
|
nodes.external_assets.auto_append_created_dvt |
bool |
N |
•false(default) •true |
nodes.external_assets.auto_append_created_dvt_with_ref_labels |
list |
N |
|
nodes.type |
enum |
Y |
Currently supports: •DataviewTemplate •Qapp •OverallHealthMonitor •OverallHealthView •CLI |
nodes.path |
string |
N |
|
nodes.name |
string |
N |
|
nodes.description |
string |
N |
|
nodes.commands |
object |
N |
|
nodes.commands.command |
list |
N |
|
nodes.commands.note |
string |
N |
|
nodes.auto_append_feature_commands |
bool |
N |
Whether to automatically append the commands of feature to RunbookTemplate Nodes; only for the commands not including line pattern variables. •true(default) •false |
conflict_mode |
enum |
N |
It supports value: Override or Skip(default) |
•Create
ogenerate DVT and its recommended assets relationship
ocreate hypothesis
guidebooks:
- name: guidebook1 under ({ $fig.GetDeviceNamesStr() })
create_for_level: FIG # FIG or Global, the default is Global
category: "nb3"
description: xxxx
qualified_devices: # support all the GDR properties that ES supports
dynamic_search:
conditions:
- property: subTypeName
values: [Cisco IOS Switch]
- property: name
operator: Contains # support types: Matches, Does not match, Contains, Does not contain, Is/is
values: "BJ"
boolean_expression: A and B
static_include:
auto_append_matched_devices: false # the default is false
devices: [R1, R2]
# qualification: $fi.xxx !="xxxxx"
static_exclude:
auto_append_matched_devices: false # the default is false
devices: [R3, R4]
# qualification: $fi.xxx =="xxxxx1"
automations:
- type: DataviewTemplate # Support types: DataviewTemplate or Hypothesis
auto_append_created_dvt: false # Whether to add all the created DVT by this FID, the default is false
auto_append_created_dvt_with_ref_labels: [refLabel1]
auto_append_created_dvt_for_same_FIG: true
external_assets:
- from_fit: fit1/FIT_Root # The FIT to which the asset to be referenced belongs.
auto_append_created_dvt: false # Whether to add all the created DVT by specified FID, the default is false
auto_append_created_dvt_with_ref_labels: [refLabel1]
dataview_templates:
- ">>Data View Templates>Built-in Data View Templates>Cisco ACI>Fabric Health and Faults [Cisco ACI]"
- ">>Data View Templates>Built-in Data View Templates>GeneralHSRP"
- type: Hypothesis
name: Hypothesis1_BGP
auto_append_created_ni: false # Whether to add all the created NI by this FIT, the default is false
auto_append_created_ni_with_ref_labels: [ospf, xxxxx] # refer NI by ref_label
auto_append_created_ni_for_same_FIG: true # Whether to add the created NI for same FIG, only for create_for_level=FIG, the default is false
auto_append_created_rbt: false # Whether to add all the created RBT by this FIT, the default is false
auto_append_created_rbt_with_ref_labels: [ospf] # refer RBT by ref_label
auto_append_created_rbt_for_same_FIG: true # the default is false
external_assets:
- from_fit: fit1/FIT_Root # The FIT to which the asset to be referenced belongs.
auto_append_created_ni: false # Whether to add all the created NI by specified FIT, the default is false
auto_append_created_ni_with_ref_labels: [ospf] # ref the NIs with the ref_labels from the specified FIT.
auto_append_created_rbt: false # the default is false
auto_append_created_rbt_with_ref_labels: [ospf]
network_intents:
- "HSRP/General HSRP1" # static NI
runbook_templates:
- "Built-in RBTs/BGP/General HSRP" # static RBT
conflict_mode: Skip # support values: Override and Skip, the default is Skip
Property Name |
Type |
Required |
Definition |
name |
string |
Y |
The guidebook name |
create_for_level |
enum |
Y |
•Global(default) •FIG |
category |
string |
Y |
The Guidebook category. The requirement of the category: a.Can have the maximum number of 8 characters. b.Only letters and numbers are allowed. c. The last character cannot be a number. |
description |
string |
N |
|
qualified_devices |
object |
Y |
|
qualified_devices.dynamic_search |
object |
N |
|
qualified_devices.dynamic_search.conditions |
object |
N |
|
qualified_devices.dynamic_search.conditions.property |
string |
N |
|
qualified_devices.dynamic_search.conditions.operator |
string |
N |
|
qualified_devices.dynamic_search.conditions.value |
string |
N |
|
qualified_devices.dynamic_search.boolean_expression |
string |
Y |
|
qualified_devices.static_include |
object |
N |
|
qualified_devices.static_include.auto_append_matched_devices |
bool |
N |
Whether to automatically add the devices matched by Feature Decode |
qualified_devices.static_include.devices |
list |
N |
Input a hostname. |
qualified_devices.static_exclude |
object |
N |
Whether to automatically exclude the devices matched by Feature Decode |
qualified_devices.static_exclude.auto_append_matched_devices |
bool |
N |
|
qualified_devices.static_exclude.devices |
list |
N |
Input a hostname. |
automations |
object |
Y |
|
automations.type |
enum |
Y |
DataviewTemplate or Hypothesis |
automations.auto_append_created_dvt |
bool |
N |
It is a valid tag if the type is DataviewTemplate.
|
automations.auto_append_created_dvt_with_ref_labels |
list |
N |
It is a valid tag if the type is DataviewTemplate. |
automations.auto_append_created_dvt_for_same_fig |
bool |
N |
It is a valid tag if the type is DataviewTemplate. |
automations.auto_append_created_ni |
bool |
N |
It is a valid tag if the type is Hypothesis. |
automations.auto_append_created_ni_with_ref_labels |
list |
N |
It is a valid tag if the type is Hypothesis. |
automations.auto_append_created_ni_for_same_fig |
bool |
N |
It is a valid tag if the type is Hypothesis. |
automations.auto_append_created_rbt |
bool |
N |
It is a valid tag if the type is Hypothesis. |
automations.auto_append_created_rbt_with_ref_labels |
list |
N |
It is a valid tag if the type is Hypothesis. |
automations.auto_append_created_rbt_for_same_fig |
bool |
N |
It is a valid tag if the type is Hypothesis. |
automations.external_assets |
object |
N |
|
automations.external_assets.from_fit |
string |
Y |
|
automations.external_assets.auto_append_created_dvt |
bool |
It is a valid tag if the type is DataviewTemplate. •false(default) •true |
|
automations.external_assets.auto_append_created_dvt_with_ref_labels |
list |
N |
It is a valid tag if the type is DataviewTemplate. |
automations.external_assets.auto_append_created_ni |
bool |
N |
It is a valid tag if the type is Hypothesis. •false(default) •true |
automations.external_assets.auto_append_created_ni_with_ref_labels |
list |
N |
It is a valid tag if the type is Hypothesis. |
automations.external_assets.auto_append_created_rbt |
bool |
N |
It is a valid tag if the type is Hypothesis. •false(default) •true |
automations.external_assets.auto_append_created_rbt_with_ref_labels |
list |
N |
It is a valid tag if the type is Hypothesis. |
automations.dataview_templates |
list |
N |
It is a valid tag if the type is DataviewTemplate. |
automations.network_intents |
list |
N |
It is a valid tag if the type is Hypothesis. |
automations.runbook_templates |
lsit |
N |
It is a valid tag if the type is Hypothesis. |
conflict_mode |
bool |
N |
Supports values: •Override •Skip(default) |