{
    "name"  : "检查配置错误",
    "precondition" : ["name"],
    "problems" : {
        "problem1" : {
            "desc"      : "【问题】用户没有开启加速",
            "advice"    : "【建议】开启加速，在全局模式，执行was  enable，第一次开启会提示重启"
        },
		"problem2" : {
			"desc"      : "【问题】重复数据删除(dre)模块没有配置peer",
            "advice"    : "【建议】配置peer，在全局模式，执行was dre peer (对端设备ip地址) Password"
		},
		"problem2_1" : {
			"desc"      : "【问题】无",
            "advice"    : "【建议】该型号不支持执行本步骤"
		},
		"problem3" : {
			"desc"      : "【问题】密码配置错误",
            "advice"    : "【建议】请检查密码的配置（注意大小写）"
		},
		"problem4" : {
			"desc"      : "【问题】两台设备网络不通，导致dre配对不成功",
            "advice"    : "【建议】请检查线路是否连接正常，要求两台设备能够ping互通"
		},
		"problem4_1" : {
			"desc"      : "【问题】无",
            "advice"    : "【建议】该型号不支持执行本步骤"
		},
		"problem5" : {
			"desc"      : "【问题】没配置匹配规则，流量不走双边加速",
            "advice"    : "【建议】配置静态匹配规则，在全局模式下，执行in-path rule auto-discovery optimization normal accelerate http dstport port (端口) dstaddr (ip地址 + 掩码) rulenum start"
		}
    }
}
---------------------------code-------------------------------
#检查是否开启加速---ok
result=cli("show was status")
reg=(/off/)
result=(result.split(/\r?\n/))
result =result[1]
if reg.test(result) :
	add_problem("problem1")
	return "warn"
end

#检查dre模块是否配置peer---ok
result=cli('show was dre peer info')
version=(/eg2000k/)
if version.test(result) :
	add_problem('problem2_1')
	return 'warn'
end
result=result.split(/\r?\n/)
length=len(result)
if length<=2 :
	add_problem('problem2')
	return 'warn'
end

#检查dre模块密码配置是否正确---ok
result=cli('show logging')
result=result.split(/\r?\n/)
num=len(result)-3
result=result[num]
print '!!!!'+result+'!!!!'
check=(/%DRE-4-PEER_NEGOTATION:\sPassword\serror/)
if check.test(result) :
	add_problem('problem3')
	return 'warn'
end

#检查dre模块是否正常---ok
result=cli('show was dre peer info | inc is ready')
print '!!!'+result+'!!!'
version=(/eg2000k/)
if version.test(result) :
	add_problem('problem4_1')
	return 'warn'
end
result=result.split(/\r?\n/)
fd=(/is\sready/)
str=''
foreach item in result :
	if fd.test(item) :
		str=item
		break
	end
end
flag=(/false/)
if flag.test(str) :
	add_problem('problem4')
	return 'warn'
end

#检查是否配置静态匹配规则---ok
result=cli('show run | inc optimization')
result=result.split(/\r?\n/)
result=len(result)
if result<=2 :
	add_problem('problem5') 
	return 'warn'
end
return 'success'
