summaryrefslogtreecommitdiffstats
path: root/openecomp-be
AgeCommit message (Expand)AuthorFilesLines
2017-11-20Adding error codes to HEAT ValidatorAbhai Singh13-74/+234
2017-11-20NovaServer NamingConventionGuideLineValidatormojahidi90-174/+807
2017-11-20NeutronPort validatormojahidi17-64/+178
2017-11-20ContrailServiceTemplate validatormojahidi7-42/+124
2017-11-20Naming Convetion validatorsmojahidi4-25/+96
2017-11-19heal all scriptayalaben11-25/+248
2017-11-19Adding common changes for all HEAT Validatorsmojahidi4-0/+73
2017-11-19import tosca bugtalio16-74/+6052
2017-11-16nova server validatortalio2-10/+28
2017-11-15import toscatalio3-10/+63
2017-11-15Merge "Casandra data center and consistency level"Vitaly Emporopulo2-4/+5
2017-11-15Casandra data center and consistency levelshalomb2-4/+5
2017-11-15Error message is not reported to calling functionsshrek20007-12/+146
2017-11-15Casandra data center and consistency levelshalomb1-1/+4
2017-11-15Casandra data center and consistency levelshalomb8-45/+161
2017-11-14Merge "forwarder test"Avi Gaffa19-2/+4656
2017-11-14Merge "Fixing update HEAT"Avi Gaffa5-319/+614
2017-11-14forwarder testtalio19-2/+4656
2017-11-14Fixing update HEATojasdubey5-319/+614
2017-11-14forwarder test fixtalio461-5089/+11353
2017-11-13port validatortalio1-22/+23
2017-11-13forwarder healertalio3-9/+134
2017-11-13forwardertalio7-12/+148
2017-11-08Fixed response if unknown onboarding methodolegb1-33/+14
2017-11-07Test Cases for the Port scaling Utilitysiddharth09052-1/+77
2017-11-06duplicate idstalio224-35266/+35393
2017-11-05Port scaling not working properlyvempo78-4248/+16655
2017-11-05Merge "nested node templates"Vitaly Emporopulo5-41/+76
2017-11-05dynamic portstalio23-0/+3687
2017-11-05dynamic portstalio7-163/+34
2017-11-02dynamic portstalio2-40/+65
2017-11-02Fix Zusammen Configurationtalig1-4/+1
2017-11-01nested node templatestalio5-41/+76
2017-11-01Merge "component name prefix"Vitaly Emporopulo1-33/+12
2017-11-01component name prefixtalio1-33/+12
2017-10-31duplicate idstalio6-29/+39
2017-10-25uploadtalio6-15/+19
2017-10-24Fix VSP resubmit all impltalig2-70/+45
2017-10-24Merge "Submit"Vitaly Emporopulo1-1/+3
2017-10-24Finished fixing unreleased resources in testsvempo5-115/+107
2017-10-24Submittalio1-1/+3
2017-10-24Merge "Upload"Avi Gaffa3-1/+35
2017-10-24Fixed resources not being closed in testsvempo7-140/+250
2017-10-24Uploadtalio3-1/+35
2017-10-24Merge "Reset Tool throws an exception"Avi Gaffa1-4/+14
2017-10-23Merge "Artifacts in CSAR"Avi Gaffa2-2/+15
2017-10-23Artifacts in CSARtalio2-2/+15
2017-10-23Finished fixing critical static analysis issuesvempo2-22/+25
2017-10-23Reset Tool throws an exceptionshrek20001-4/+14
2017-10-23Fixed resources not being released, code cleanupvempo7-192/+172
"n">String, FileData.Type> fileTypeMap, ContrailResourcesMappingTo contrailResourcesMappingTo, GlobalValidationContext globalContext) { handleContrailV1AndContrailV2ResourceMerging(fileName, fileTypeMap, contrailResourcesMappingTo, globalContext); validateNoContrailResourceTypeIsInUse(fileName, globalContext); } private void handleContrailV1AndContrailV2ResourceMerging(String fileName, Map<String, FileData.Type> fileTypeMap, ContrailResourcesMappingTo contrailResourcesMappingTo, GlobalValidationContext globalContext) { mdcDataDebugMessage.debugEntryMessage("file", fileName); Optional<ContrailResourcesMappingTo> fileContrailResourcesMappingTo = collectHeatFileContrailResources(globalContext, fileName); if (fileContrailResourcesMappingTo.isPresent()) { contrailResourcesMappingTo.addAll(fileContrailResourcesMappingTo.get()); } addContrailMergeValidationMessageToGlobalContext(globalContext, contrailResourcesMappingTo); mdcDataDebugMessage.debugExitMessage("file", fileName); } private void addContrailMergeValidationMessageToGlobalContext( GlobalValidationContext globalContext, ContrailResourcesMappingTo contrailResourcesMappingTo) { mdcDataDebugMessage.debugEntryMessage(null, null); if (!MapUtils.isEmpty(contrailResourcesMappingTo.getContrailV1Resources()) && !MapUtils.isEmpty(contrailResourcesMappingTo.getContrailV2Resources())) { globalContext.addMessage( contrailResourcesMappingTo.getContrailV1Resources().keySet().iterator().next(), ErrorLevel.WARNING, ErrorMessagesFormatBuilder.getErrorWithParameters( ERROR_CODE_CTL_2, Messages.MERGE_OF_CONTRAIL2_AND_CONTRAIL3_RESOURCES.getErrorMessage(), contrailResourcesMappingTo.fetchContrailV1Resources(), contrailResourcesMappingTo.fetchContrailV2Resources()), LoggerTragetServiceName.MERGE_OF_CONTRAIL_2_AND_3, LoggerErrorDescription.MERGE_CONTRAIL_2_AND_3); } mdcDataDebugMessage.debugExitMessage(null, null); } private Optional<ContrailResourcesMappingTo> collectHeatFileContrailResources( GlobalValidationContext globalContext, String fileName) { Optional<InputStream> fileContent = globalContext.getFileContent(fileName); if (!fileContent.isPresent()) { globalContext.addMessage(fileName, ErrorLevel.ERROR, ErrorMessagesFormatBuilder .getErrorWithParameters(ERROR_CODE_CTL_1, Messages.INVALID_HEAT_FORMAT_REASON .getErrorMessage(), "The file '" + fileName + "' has no content"), LoggerTragetServiceName.VALIDATE_HEAT_FORMAT, LoggerErrorDescription.INVALID_HEAT_FORMAT); return Optional.empty(); } return fetchContrailResourcesMapping(fileName, fileContent.get(), globalContext); } private Optional<ContrailResourcesMappingTo> fetchContrailResourcesMapping(String fileName, InputStream fileContent, GlobalValidationContext globalContext) { mdcDataDebugMessage.debugEntryMessage("file", fileName); ContrailResourcesMappingTo contrailResourcesMappingTo = new ContrailResourcesMappingTo(); HeatOrchestrationTemplate heatOrchestrationTemplate; try { heatOrchestrationTemplate = new YamlUtil().yamlToObject(fileContent, HeatOrchestrationTemplate.class); } catch (Exception ignored) { logger.debug("",ignored); // the HeatValidator should handle file that is failing to parse mdcDataDebugMessage.debugExitMessage("file", fileName); return Optional.empty(); } if( !MapUtils.isEmpty(heatOrchestrationTemplate.getResources())) { heatOrchestrationTemplate.getResources().entrySet() .forEach(entry -> { if (entry.getValue().getType().startsWith(HeatConstants.CONTRAIL_RESOURCE_PREFIX)) { contrailResourcesMappingTo.addContrailV1Resource(fileName, entry.getKey()); } else if (entry.getValue().getType() .startsWith(HeatConstants.CONTRAIL_V2_RESOURCE_PREFIX)) { contrailResourcesMappingTo.addContrailV2Resource(fileName, entry.getKey()); } }); } mdcDataDebugMessage.debugExitMessage("file", fileName); return Optional.of(contrailResourcesMappingTo); } private void validateNoContrailResourceTypeIsInUse(String fileName, GlobalValidationContext globalContext) { mdcDataDebugMessage.debugEntryMessage("file", fileName); globalContext.setMessageCode(ERROR_CODE_CTL_4); HeatOrchestrationTemplate heatOrchestrationTemplate = ValidationUtil.checkHeatOrchestrationPreCondition(fileName, globalContext); if (heatOrchestrationTemplate == null) { return; } validateResourcePrefix(fileName, globalContext, heatOrchestrationTemplate); mdcDataDebugMessage.debugExitMessage("file", fileName); } private void validateResourcePrefix(String fileName, GlobalValidationContext globalContext, HeatOrchestrationTemplate heatOrchestrationTemplate) { mdcDataDebugMessage.debugEntryMessage("file", fileName); Map<String, Resource> resourcesMap = heatOrchestrationTemplate.getResources(); if(!MapUtils.isEmpty(resourcesMap)) { for (Map.Entry<String, Resource> resourceEntry : resourcesMap.entrySet()) { String type = resourceEntry.getValue().getType(); if (Objects.nonNull(type) && type.startsWith(HeatConstants.CONTRAIL_RESOURCE_PREFIX)) { globalContext.addMessage(fileName, ErrorLevel.WARNING, ErrorMessagesFormatBuilder .getErrorWithParameters(ERROR_CODE_CTL_3, Messages.CONTRAIL_2_IN_USE.getErrorMessage(), resourceEntry.getKey()), LoggerTragetServiceName.CONTRAIL_2_IN_USE, LoggerErrorDescription.CONTRAIL_2_IN_USE); } } } mdcDataDebugMessage.debugExitMessage("file", fileName); } }