import org.openecomp.core.utilities.CommonMethods;
import org.openecomp.core.utilities.file.FileContentHandler;
import org.openecomp.sdc.common.errors.CoreException;
-import org.openecomp.sdc.common.errors.ErrorCode;
import org.openecomp.sdc.common.utils.SdcCommon;
import org.openecomp.sdc.datatypes.configuration.ImplementationConfiguration;
import org.openecomp.sdc.heat.datatypes.manifest.FileData;
import org.openecomp.sdc.heat.datatypes.manifest.ManifestFile;
import org.openecomp.sdc.heat.datatypes.model.Resource;
import org.openecomp.sdc.tosca.datatypes.model.NodeTemplate;
-import org.openecomp.sdc.tosca.datatypes.model.RequirementAssignment;
import org.openecomp.sdc.tosca.datatypes.model.ServiceTemplate;
import org.openecomp.sdc.tosca.services.ToscaUtil;
import org.openecomp.sdc.translator.datatypes.heattotosca.to.TranslatedHeatResource;
import org.openecomp.sdc.translator.services.heattotosca.ConfigConstants;
import org.openecomp.sdc.translator.services.heattotosca.Constants;
import org.openecomp.sdc.translator.services.heattotosca.NameExtractor;
+import org.openecomp.sdc.translator.services.heattotosca.errors.DuplicateResourceIdsInDifferentFilesErrorBuilder;
import org.openecomp.sdc.translator.services.heattotosca.globaltypes.GlobalTypesGenerator;
import java.io.InputStream;
}
if(nodeAbstractNodeTemplateIdMap.containsKey(originalNodeTemplateId)){
- throw new CoreException((new ErrorCode.ErrorCodeBuilder())
- .withMessage("Resource with id "
- + originalNodeTemplateId + " occures more than once in different addOn files")
- .build());
+ throw new CoreException(new DuplicateResourceIdsInDifferentFilesErrorBuilder(originalNodeTemplateId).build());
}
nodeAbstractNodeTemplateIdMap.put(originalNodeTemplateId, abstractNodeTemplateId);
this.getUnifiedSubstitutionData().get(serviceTemplateFileName).setNodesRelatedAbstractNode(
import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.PortTemplateConsolidationData;
import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.RequirementAssignmentData;
import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.TypeComputeConsolidationData;
+import org.openecomp.sdc.translator.services.heattotosca.errors.DuplicateResourceIdsInDifferentFilesErrorBuilder;
import java.util.ArrayList;
import java.util.Collection;
if(isNestedResourceIdOccuresInDifferentNestedFiles(context, nestedHeatFileName,
nestedNodeTemplateId)){
- throw new CoreException((new ErrorCode.ErrorCodeBuilder())
- .withMessage("Resource with id "
- + nestedNodeTemplateId + " occures more than once in different addOn "
- + "files").build());
+ throw new CoreException(new DuplicateResourceIdsInDifferentFilesErrorBuilder(nestedNodeTemplateId).build());
}
ConsolidationData consolidationData = context.getConsolidationData();
import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.PortTemplateConsolidationData;
import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.RequirementAssignmentData;
import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.TypeComputeConsolidationData;
+import org.openecomp.sdc.translator.services.heattotosca.errors.DuplicateResourceIdsInDifferentFilesErrorBuilder;
import java.util.ArrayList;
import java.util.Collection;
NodeTemplate startingPortNodeTemplate = nodeTemplates.get(portNodeTemplateIdList.get(0));
if (Objects.isNull(startingPortNodeTemplate)) {
- throw new CoreException((new ErrorCode.ErrorCodeBuilder())
- .withMessage("Resource with id "
- + portNodeTemplateIdList.get(0) + " occures more than once in different addOn files")
- .build());
+ throw new CoreException(
+ new DuplicateResourceIdsInDifferentFilesErrorBuilder(portNodeTemplateIdList.get(0)).build());
}
for (int i = 1; i < portNodeTemplateIdList.size(); i++) {
NodeTemplate portNodeTemplate = nodeTemplates.get(portNodeTemplateIdList.get(i));
if (Objects.isNull(portNodeTemplate)) {
- throw new CoreException((new ErrorCode.ErrorCodeBuilder())
- .withMessage("Resource with id "
- + portNodeTemplateIdList.get(i) + " occures more than once in different addOn "
- + "files").build());
+ throw new CoreException(
+ new DuplicateResourceIdsInDifferentFilesErrorBuilder(portNodeTemplateIdList.get(i)).build());
}
if (!isPropertySimilarBetweenNodeTemplates(propertyToCheck, portNodeTemplateIdList, nodeTemplates)) {
for (int i = 1; i < entityNodeTemplateIds.size(); i++) {
NodeTemplate currentNodeTemplate = idToNodeTemplate.get(entityNodeTemplateIds.get(i));
if (Objects.isNull(currentNodeTemplate)) {
- throw new CoreException((new ErrorCode.ErrorCodeBuilder())
- .withMessage("Resource with id "
- + entityNodeTemplateIds.get(i) + " occures more than once in different addOn files").build());
+ throw new CoreException(
+ new DuplicateResourceIdsInDifferentFilesErrorBuilder(entityNodeTemplateIds.get(i)).build());
}
if(propertyExistCondition != isPropertyExistInNodeTemplate(propertyToCheck, currentNodeTemplate)){
return false;
--- /dev/null
+package org.openecomp.sdc.translator.services.heattotosca.errors;
+
+import org.openecomp.sdc.common.errors.BaseErrorBuilder;
+import org.openecomp.sdc.common.errors.ErrorCategory;
+
+public final class DuplicateResourceIdsInDifferentFilesErrorBuilder extends BaseErrorBuilder {
+
+ private static final String DUPLICATE_RESOURCE_ID_MSG = "Resource with id %s occurs more than once in " +
+ "different addOn files";
+
+ public DuplicateResourceIdsInDifferentFilesErrorBuilder(String resourceId) {
+ getErrorCodeBuilder().withId(TranslatorErrorCodes.DUPLICATE_RESOURCE_ID_IN_DIFFERENT_FILES)
+ .withCategory(ErrorCategory.APPLICATION)
+ .withMessage(String.format(DUPLICATE_RESOURCE_ID_MSG, resourceId));
+ }
+}
"REFERENCE_TO_UNSUPPORTED_RESOURCE";
public static final String NOT_IN_SYNC_NUMBER_OF_INTERFACES = "NOT_IN_SYNC_NUMBER_OF_INTERFACES";
public static final String INVALID_PROPERTY_VALUE = "INVALID_PROPERTY_VALUE";
+ public static final String DUPLICATE_RESOURCE_ID_IN_DIFFERENT_FILES = "DUPLICATE_RESOURCE_ID_IN_DIFFERENT_FILES";
}
import org.junit.Assert;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
+import org.junit.rules.ExpectedException;
+import org.openecomp.sdc.common.errors.CoreException;
import org.openecomp.sdc.logging.api.Logger;
import org.openecomp.sdc.logging.api.LoggerFactory;
import org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.BaseFullTranslationTest;
// do not delete this function. it prevents the superclass setup from running
}
+ @Rule
+ public ExpectedException exception = ExpectedException.none();
+
@Test
public void testMixPatterns() throws IOException {
inputFilesPath =
@Test
public void testDuplicateResourceIdsInDiffAddOnFiles() throws IOException {
+ exception.expect(CoreException.class);
+ exception.expectMessage("Resource with id lb_0_int_oam_int_0_port occurs more " +
+ "than once in different addOn files");
+
inputFilesPath =
"/mock/services/heattotosca/fulltest/mixPatterns/duplicateResourceIdsInDiffAddOnFiles/in";
-
- try {
- testTranslationWithInit();
- }catch(Exception e){
- log.debug("",e);
- Assert.assertEquals(e.getMessage(), "Resource with id lb_0_int_oam_int_0_port occures more " +
- "than once in different addOn files");
- }
+ testTranslationWithInit();
}
@Test