'''
1. construct query by code
# condition = qualify_condition()
# condition.schema = 'hasBGPConfig'
# condition.operator = qualify_opt.Equal
# condition.expression = 'true' # gdr = gdr_qualification()
# gdr.conditions.append(condition)
# gdr.expression = 'A'
2. construct by a dict
s = {
"gdr": {
"conditions" : [{
"expression" : "true",
"operator" : qualify_opt.Equal, ## if operator is not support by schema datatype, no result would return
"schema" : "hasBGPConfig"
}],
"expression" : "A"
},
#"patterns": [r'interface $intfName1', r'ip address $ip2 $mask', r"router ospf $process_id\r\n neighbor $nbr_ip area $area_id"], # only support this syntax
#"patterns": [r'ip address $ip2 $mask'],
"patterns": [r'no ip $address ip access-group'],
"regexes": [r'regex:hostname (\S+)', r'mregex:^interface .+\n\s+description']
#"dev_ids":['some device ids'] #device_ids MUST be list of device ids, or backend will ignore this field treat as whole domain devices
} r = qualify_device(qualification(**s))
pluginfw.AddLog(str(r.success), pluginfw.DEBUG)
pluginfw.AddLog(str(r.error), pluginfw.DEBUG)
pluginfw.AddLog(json.dumps(r.devices), pluginfw.DEBUG)
'''