From 8d9e717828d97237754a3fce252566ad7e8a554e Mon Sep 17 00:00:00 2001 From: Pierre Rioux Date: Thu, 27 Sep 2018 09:38:31 -0400 Subject: adding dynamic err message support for violations Change-Id: I80c1a0cade46ef623fce91921449642d8eafb2f6 Issue-ID: LOG-683 Signed-off-by: Pierre Rioux --- .../etc/rules/poa-event/default-rules.groovy | 168 --------------------- 1 file changed, 168 deletions(-) delete mode 100644 bundleconfig/etc/rules/poa-event/default-rules.groovy (limited to 'bundleconfig/etc') diff --git a/bundleconfig/etc/rules/poa-event/default-rules.groovy b/bundleconfig/etc/rules/poa-event/default-rules.groovy deleted file mode 100644 index 8397abd..0000000 --- a/bundleconfig/etc/rules/poa-event/default-rules.groovy +++ /dev/null @@ -1,168 +0,0 @@ -/* - * ============LICENSE_START=================================================== - * Copyright (c) 2018 Amdocs - * ============================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END===================================================== - */ - -entity { - name 'POA-EVENT' - indexing { - indices 'default-rules' - } - validation { - useRule { - name 'Verify AAI nf-naming-code' - attributes 'context-list.aai.vf-list[*]' - } - useRule { - name 'port-mirroring-AAI-has-valid-vnfc' - attributes 'context-list.sdc.vf-list[*]', 'context-list.aai.vf-list[*]' - } - useRule { - name 'port-mirroring-SDC-vnfc-types-missing' - attributes 'context-list.sdc.vf-list[*]', 'context-list.aai.vf-list[*]' - } - useRule { - name 'port-mirroring-AAI-vnfc-type-exists-in-SDC-SUCCESS' - attributes 'context-list.sdc.vf-list[*]', 'context-list.aai.vf-list[*]' - } - } -} - -rule { - name 'Verify AAI nf-naming-code' - category 'INVALID_VALUE' - description 'Validate that nf-naming-code exists and is populated in AAI VNF instance' - errorText 'The nf-naming-code is not populated in AAI VNF instance' - severity 'CRITICAL' - attributes 'vfList' - validate ''' - def parsed = new groovy.json.JsonSlurper().parseText(vfList.toString()) - for (vf in parsed) { - String nfNamingCode = vf."nf-naming-code" - if (nfNamingCode == null || nfNamingCode.equals("")) { - return false - } - } - return true - ''' -} - -rule { - name 'port-mirroring-AAI-has-valid-vnfc' - category 'INVALID_VALUE' - description 'Validate that each VNFC instance in AAI conforms to a VNFC type defined in SDC model' - errorText 'AAI VNFC instance includes non-specified type in design SDC model' - severity 'ERROR' - attributes 'sdcVfList', 'aaiVfList' - validate ''' - def slurper = new groovy.json.JsonSlurper() - def parsedSdc = slurper.parseText(sdcVfList.toString()) - def parsedAai = slurper.parseText(aaiVfList.toString()) - - // gather all SDC nfc-naming-codes - List sdcNfcNamingCodeList = new ArrayList<>() - parsedSdc.each { - for(sdcVnfc in it.vnfc) { - String sdcNfcNamingCode = sdcVnfc."nfc-naming-code" - if(sdcNfcNamingCode != null) { - sdcNfcNamingCodeList.add(sdcNfcNamingCode) - } - } - } - - // check that all SDC nfc-naming-codes exist in AAI - parsedAai.each { - for(aaiVnfc in it.vnfc) { - String aaiNfcNamingCode = aaiVnfc."nfc-naming-code" - if(aaiNfcNamingCode != null) { - if(!sdcNfcNamingCodeList.contains(aaiNfcNamingCode)) { - return false - } - } - } - } - return true - ''' -} - - -rule { - name 'port-mirroring-SDC-vnfc-types-missing' - category 'INVALID_VALUE' - description 'Validate that each VNFC type specified in SDC model exists in AAI' - errorText 'Design has specified types but not all of them exist in AAI' - severity 'WARNING' - attributes 'sdcVfList', 'aaiVfList' - validate ''' - def getNfcNamingCodeSet = { parsedEntity -> - Set namingCodeSet = new HashSet<>() - parsedEntity.each { - for(vnfcItem in it."vnfc") { - println "vnfc: " + vnfcItem - String namingCode = vnfcItem."nfc-naming-code" - if(namingCode != null) { - namingCodeSet.add(namingCode) - } - } - } - return namingCodeSet - } - - // gather all unique nfc-naming-codes from AAI and SDC - def slurper = new groovy.json.JsonSlurper() - def aaiNfcNamingCodeSet = getNfcNamingCodeSet(slurper.parseText(aaiVfList.toString())) as java.util.HashSet - def sdcNfcNamingCodeSet = getNfcNamingCodeSet(slurper.parseText(sdcVfList.toString())) as java.util.HashSet - - println "AAI: " + aaiNfcNamingCodeSet - println "SDC: " + sdcNfcNamingCodeSet - - // check that all nfc-naming-codes in SDC exist in AAI - return aaiNfcNamingCodeSet.containsAll(sdcNfcNamingCodeSet) - ''' -} - - -rule { - name 'port-mirroring-AAI-vnfc-type-exists-in-SDC-SUCCESS' - category 'SUCCESS' - description 'Verify that every vnfc in sdc has been created in AAI' - errorText 'Every vnfc type specified in sdc has been created in AAI' - severity 'INFO' - attributes 'sdcVfList', 'aaiVfList' - validate ''' - def getNfcNamingCodeSet = { parsedEntity -> - Set namingCodeSet = new HashSet<>() - parsedEntity.each { - for(vnfcItem in it."vnfc") { - String namingCode = vnfcItem."nfc-naming-code" - if(namingCode != null) { - namingCodeSet.add(namingCode) - } - } - } - return namingCodeSet - } - - // gather all unique nfc-naming-codes from AAI and SDC - def slurper = new groovy.json.JsonSlurper() - def aaiNfcNamingCodeSet = getNfcNamingCodeSet(slurper.parseText(aaiVfList.toString())) as java.util.HashSet - def sdcNfcNamingCodeSet = getNfcNamingCodeSet(slurper.parseText(sdcVfList.toString())) as java.util.HashSet - - // check that all nfc-naming-codes in SDC exist in AAI - // return false if all SDC naming codes exist in AAI to trigger an INFO violation - return !aaiNfcNamingCodeSet.containsAll(sdcNfcNamingCodeSet) - ''' -} -- cgit 1.2.3-korg