rule {
name 'NDCB-AAI-attribute-comparison'
category 'INVALID_VALUE'
- description 'Verify that every attribute in Network-Discovery is the same as in AAI'
- errorText 'Some attributes in Network-Discovery are not equal to attributes in AAI'
+ description 'Verify that all attributes in Network-Discovery are the same as in AAI'
+ errorText 'Error found with attribute "{0}"; value "{1}" does not exist in Network-Discovery'
severity 'ERROR'
attributes 'ndcbItems', 'aaiItems'
validate '''
java.util.Map aai = getAttributes(slurper.parseText(aaiItems.toString()))
boolean result = true
+ List<String> details = new ArrayList<>();
ndcb.any{ ndcbKey, ndcbValueList ->
def aaiValueList = aai.get("$ndcbKey")
aaiValueList.each{ aaiValue ->
if(!ndcbValueList.any{ it == "$aaiValue" }) {
result = false
+ details.add("$ndcbKey")
+ details.add("$aaiValue")
}
}
if(result == false) {
return true
}
}
- return result
+ return new Tuple2(result, details)
'''
-}
+}
\ No newline at end of file