From a80a2e20ab5414c35a948fd58613df33d3bee3d3 Mon Sep 17 00:00:00 2001 From: "andre.schmid" Date: Thu, 10 Oct 2019 17:39:03 +0100 Subject: Validate non-mano software information artifact Change-Id: Ie9fabd6af821b830e211ff1068fb287357fd38ee Issue-ID: SDC-2619 Signed-off-by: andre.schmid --- openecomp-be/lib/openecomp-common-lib/pom.xml | 129 +++--- .../org/openecomp/sdc/common/errors/Messages.java | 446 +++++++++++---------- .../openecomp-tosca-converter-core/pom.xml | 7 + .../parser/ConversionDefinitionYamlParserTest.java | 9 +- .../PnfdConversionStrategyYamlParserTest.java | 9 +- .../impl/ToscaDefinitionImportHandlerTest.java | 50 ++- .../org/openecomp/core/util/TestResourcesUtil.java | 103 ----- .../java/org/openecomp/core/util/YamlTestUtil.java | 3 +- 8 files changed, 349 insertions(+), 407 deletions(-) delete mode 100644 openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/util/TestResourcesUtil.java (limited to 'openecomp-be/lib') diff --git a/openecomp-be/lib/openecomp-common-lib/pom.xml b/openecomp-be/lib/openecomp-common-lib/pom.xml index 71e41425fa..794796cd4b 100644 --- a/openecomp-be/lib/openecomp-common-lib/pom.xml +++ b/openecomp-be/lib/openecomp-common-lib/pom.xml @@ -1,68 +1,73 @@ - + - 4.0.0 + 4.0.0 - org.openecomp.sdc.core - openecomp-common-lib - openecomp-common-lib + org.openecomp.sdc.core + openecomp-common-lib + openecomp-common-lib - - openecomp-sdc-lib - org.openecomp.sdc - 1.6.0-SNAPSHOT - + + openecomp-sdc-lib + org.openecomp.sdc + 1.6.0-SNAPSHOT + - - - org.openecomp.sdc.core - openecomp-utilities-lib - ${project.version} - - - org.openecomp.sdc - openecomp-sdc-datatypes-lib - ${project.version} - - - javax.ws.rs - javax.ws.rs-api - provided - - - ch.qos.logback - logback-classic - runtime - - - commons-io - commons-io - - - org.apache.commons - commons-lang3 - - - org.apache.commons - commons-text - - - com.fasterxml.jackson.core - jackson-core - - - com.fasterxml.jackson.core - jackson-databind - - - com.amdocs.zusammen - zusammen-datatypes - ${zusammen.version} - - - org.testng - testng - - + + + org.openecomp.sdc.core + openecomp-utilities-lib + ${project.version} + + + org.openecomp.sdc + openecomp-sdc-datatypes-lib + ${project.version} + + + javax.ws.rs + javax.ws.rs-api + provided + + + ch.qos.logback + logback-classic + runtime + + + commons-io + commons-io + + + org.apache.commons + commons-lang3 + + + org.apache.commons + commons-text + + + com.fasterxml.jackson.core + jackson-core + + + com.fasterxml.jackson.core + jackson-databind + + + com.amdocs.zusammen + zusammen-datatypes + ${zusammen.version} + + + org.testng + testng + + + org.projectlombok + lombok + + diff --git a/openecomp-be/lib/openecomp-common-lib/src/main/java/org/openecomp/sdc/common/errors/Messages.java b/openecomp-be/lib/openecomp-common-lib/src/main/java/org/openecomp/sdc/common/errors/Messages.java index 5e5f82862e..ea507f54e2 100644 --- a/openecomp-be/lib/openecomp-common-lib/src/main/java/org/openecomp/sdc/common/errors/Messages.java +++ b/openecomp-be/lib/openecomp-common-lib/src/main/java/org/openecomp/sdc/common/errors/Messages.java @@ -16,228 +16,232 @@ package org.openecomp.sdc.common.errors; +import lombok.AllArgsConstructor; +import lombok.Getter; + +@AllArgsConstructor +@Getter public enum Messages { - CANT_LOAD_HEALING_CLASS("Can't load healing class %s."), - - VERSION_UPGRADE("Item %s is of old version. A check out was made in order to get new " + - "functionalities"), - - PACKAGE_PROCESS_ERROR("Could not process package '%s'"), - PACKAGE_INVALID_EXTENSION("Invalid package '%s' extension. Expecting %s."), - PACKAGE_EMPTY_ERROR("The given package is empty '%s'"), - PACKAGE_PROCESS_INTERNAL_PACKAGE_ERROR("Could not process internal package '%s'"), - PACKAGE_INVALID_ERROR("Invalid package content '%s'"), - PACKAGE_MISSING_INTERNAL_PACKAGE("Missing expected internal package"), - INVALID_ZIP_FILE("Invalid zip file"), - INVALID_CSAR_FILE("Invalid csar file"), - CSAR_FILE_NOT_FOUND("Each CSAR file must contain %s file."), - CSAR_DIRECTORIES_NOT_ALLOWED("Directory : %s , is not allowed."), - CSAR_FILES_NOT_ALLOWED("File : %s , are not allowed."), - MANIFEST_INVALID_LINE("Manifest contains invalid line: %s: %s"), - MANIFEST_START_METADATA("Manifest must starts with 'metadata:'"), - MANIFEST_NO_METADATA("Manifest must contain metadata"), - MANIFEST_NO_SOURCES("Manifest must contain Source"), - MANIFEST_METADATA_MISSING_ENTRY("Manifest metadata missing entry %s"), - MANIFEST_INVALID_NAME("Manifest file %s and TOSCA definitions file %s must have the same name"), - MANIFEST_INVALID_EXT("Manifest file must have extension \".mf\" "), - MANIFEST_METADATA_INVALID_ENTRY("Manifest metadata should only have pnf or vnf entries"), - MANIFEST_METADATA_INVALID_ENTRY1("Invalid Manifest metadata entry: '%s'."), - MANIFEST_METADATA_DUPLICATED_ENTRY("Duplicated Manifest metadata entry: '%s'."), - MANIFEST_METADATA_UNEXPECTED_ENTRY_TYPE("Manifest metadata should have either pnf or vnf entries, not both together"), - MANIFEST_INVALID_PNF_METADATA("%s TOSCA.meta file is applicable for VF only"), - MANIFEST_INVALID_NON_MANO_KEY("Invalid non mano key '%s'"), - MANIFEST_EMPTY_NON_MANO_KEY("Expecting a 'Source' entry for the non mano key '%s'"), - MANIFEST_EMPTY_NON_MANO_SOURCE("Empty non mano source"), - MANIFEST_EXPECTED_HASH_ENTRY("Expected Hash entry"), - MANIFEST_EXPECTED_HASH_VALUE("Expected Hash entry value"), - MANIFEST_EXPECTED_SOURCE_PATH("Expected Source entry path"), - MANIFEST_EXPECTED_ALGORITHM_VALUE("Expected Algorithm entry value"), - MANIFEST_EXPECTED_ALGORITHM_BEFORE_HASH("Expected 'Algorithm' entry before 'Hash' entry"), - MANIFEST_SIGNATURE_DUPLICATED("Duplicated manifest signature"), - MANIFEST_SIGNATURE_LAST_ENTRY("The manifest signature must be the last entry of the manifest."), - MANIFEST_METADATA_DOES_NOT_MATCH_LIMIT("Manifest metadata must only have the required number [%s] of entries"), - MANIFEST_EMPTY("The manifest is empty"), - MANIFEST_ERROR_WITH_LINE("%s;%nAt line %s: '%s'."), - MANIFEST_PARSER_INTERNAL("Invalid manifest file"), - MANIFEST_UNEXPECTED_ERROR("An unexpected error occurred while validating manifest '%s': %s"), - METADATA_PARSER_INTERNAL("Invalid Metadata file"), - METADATA_MISSING_OPTIONAL_FOLDERS("Missing folder %s in package"), - METADATA_UNSUPPORTED_ENTRY("Following entry not supported in TOSCA.meta %s"), - METADATA_INVALID_VERSION("Invalid entry %s value %s"), - METADATA_INVALID_VALUE("Invalid value %s in TOSCA.meta file"), - METADATA_MISSING_ENTRY("TOSCA.meta file in TOSCA-metadata directory missing entry %s"), - METADATA_NO_ENTRY_DEFINITIONS("TOSCA.meta must contain Entry Definitions"), - METADATA_INVALID_ENTRY_DEFINITIONS("TOSCA.meta must contain key:value entries"), - FAILED_TO_VALIDATE_METADATA("Failed to validate metadata file"), - ARTIFACT_INVALID_SIGNATURE("Invalid signature '%s' provided for artifact '%s'"), - ARTIFACT_SIGNATURE_VALIDATION_ERROR( + CANT_LOAD_HEALING_CLASS("Can't load healing class %s."), + + VERSION_UPGRADE("Item %s is of old version. A check out was made in order to get new " + + "functionalities"), + + PACKAGE_PROCESS_ERROR("Could not process package '%s'"), + PACKAGE_INVALID_EXTENSION("Invalid package '%s' extension. Expecting %s."), + PACKAGE_EMPTY_ERROR("The given package is empty '%s'"), + PACKAGE_PROCESS_INTERNAL_PACKAGE_ERROR("Could not process internal package '%s'"), + PACKAGE_INVALID_ERROR("Invalid package content '%s'"), + PACKAGE_MISSING_INTERNAL_PACKAGE("Missing expected internal package"), + INVALID_ZIP_FILE("Invalid zip file"), + INVALID_CSAR_FILE("Invalid csar file"), + CSAR_FILE_NOT_FOUND("Each CSAR file must contain %s file."), + CSAR_DIRECTORIES_NOT_ALLOWED("Directory : %s , is not allowed."), + CSAR_FILES_NOT_ALLOWED("File : %s , are not allowed."), + MANIFEST_INVALID_LINE("Manifest contains invalid line: %s: %s"), + MANIFEST_START_METADATA("Manifest must starts with 'metadata:'"), + MANIFEST_NO_METADATA("Manifest must contain metadata"), + MANIFEST_NO_SOURCES("Manifest must contain Source"), + MANIFEST_METADATA_MISSING_ENTRY("Manifest metadata missing entry %s"), + MANIFEST_INVALID_NAME("Manifest file %s and TOSCA definitions file %s must have the same name"), + MANIFEST_INVALID_EXT("Manifest file must have extension \".mf\" "), + MANIFEST_METADATA_INVALID_ENTRY("Manifest metadata should only have pnf or vnf entries"), + MANIFEST_METADATA_INVALID_ENTRY1("Invalid Manifest metadata entry: '%s'."), + MANIFEST_METADATA_DUPLICATED_ENTRY("Duplicated Manifest metadata entry: '%s'."), + MANIFEST_METADATA_UNEXPECTED_ENTRY_TYPE( + "Manifest metadata should have either pnf or vnf entries, not both together"), + MANIFEST_INVALID_PNF_METADATA("%s TOSCA.meta file is applicable for VF only"), + MANIFEST_INVALID_NON_MANO_KEY("Invalid non mano key '%s'"), + MANIFEST_EMPTY_NON_MANO_KEY("Expecting a 'Source' entry for the non mano key '%s'"), + MANIFEST_EMPTY_NON_MANO_SOURCE("Empty non mano source"), + MANIFEST_EXPECTED_HASH_ENTRY("Expected Hash entry"), + MANIFEST_EXPECTED_HASH_VALUE("Expected Hash entry value"), + MANIFEST_EXPECTED_SOURCE_PATH("Expected Source entry path"), + MANIFEST_EXPECTED_ALGORITHM_VALUE("Expected Algorithm entry value"), + MANIFEST_EXPECTED_ALGORITHM_BEFORE_HASH("Expected 'Algorithm' entry before 'Hash' entry"), + MANIFEST_DUPLICATED_CMS_SIGNATURE("Duplicated CMS signature"), + MANIFEST_SIGNATURE_DUPLICATED("Duplicated manifest signature"), + MANIFEST_SIGNATURE_LAST_ENTRY("The manifest signature must be the last entry of the manifest."), + MANIFEST_METADATA_DOES_NOT_MATCH_LIMIT("Manifest metadata must only have the required number [%s] of " + + "entries"), + MANIFEST_EMPTY("The manifest is empty"), + MANIFEST_ERROR_WITH_LINE("%s;%nAt line %s: '%s'."), + MANIFEST_PARSER_INTERNAL("Invalid manifest file"), + MANIFEST_UNEXPECTED_ERROR("An unexpected error occurred while validating manifest '%s': %s"), + METADATA_PARSER_INTERNAL("Invalid Metadata file"), + METADATA_MISSING_OPTIONAL_FOLDERS("Missing folder %s in package"), + METADATA_UNSUPPORTED_ENTRY("Following entry not supported in TOSCA.meta %s"), + METADATA_INVALID_VERSION("Invalid entry %s value %s"), + METADATA_INVALID_VALUE("Invalid value %s in TOSCA.meta file"), + METADATA_MISSING_ENTRY("TOSCA.meta file in TOSCA-metadata directory missing entry %s"), + METADATA_NO_ENTRY_DEFINITIONS("TOSCA.meta must contain Entry Definitions"), + METADATA_INVALID_ENTRY_DEFINITIONS("TOSCA.meta must contain key:value entries"), + + EMPTY_SW_INFORMATION_NON_MANO_ERROR( + "Non-mano Software Information artifact was declared in the manifest, but not provided"), + UNIQUE_SW_INFORMATION_NON_MANO_ERROR("Only one software information non-mano artifact is allowed. " + + "Found %s."), + INVALID_SW_INFORMATION_NON_MANO_ERROR("Invalid software information non-mano artifact: '%s'"), + INCORRECT_SW_INFORMATION_NON_MANO_ERROR( + "Incorrect software information non-mano artifact. The software version information is missing " + + "or it has one or more incorrect software version entries: '%s'"), + FAILED_TO_VALIDATE_METADATA("Failed to validate metadata file"), + ARTIFACT_INVALID_SIGNATURE("Invalid signature '%s' provided for artifact '%s'"), + ARTIFACT_SIGNATURE_VALIDATION_ERROR( "Could not validate signature '%s' provided for artifact '%s' with certificate '%s': %s"), - FAILED_TO_TRANSLATE_ZIP_FILE("Failed to translate zip file"), - ZIP_NOT_EXIST("Zip file doesn't exist"), - - PERMISSIONS_ERROR("Permissions Error. The user does not have permission to perform this action."), - PERMISSIONS_OWNER_ERROR("Permissions Error. Only one owner is allowed."), - - ENTITY_NOT_FOUND("Incorrect item/version details provided."), - SUB_ENTITY_NOT_FOUND("Incorrect sub entity details provided."), - FAILED_TO_SYNC("Non existing version cannot be synced."), - FAILED_TO_PUBLISH_OUT_OF_SYNC("Publish is not allowed since the version status is Out of sync"), - - DELETE_VSP_ERROR("VSP has been certified and cannot be deleted."), - DELETE_VLM_ERROR("VLM has been certified and cannot be deleted."), - - - ZIP_SHOULD_NOT_CONTAIN_FOLDERS("Zip file should not contain folders"), - VES_ZIP_SHOULD_CONTAIN_YML_ONLY( - "Wrong VES EVENT Artifact was uploaded - all files contained in Artifact must be YAML files" + - " (using .yaml/.yml extensions)"), - MANIFEST_NOT_EXIST("Manifest doesn't exist"), - MANIFEST_NOT_FOUND("Manifest file %s referenced in TOSCA.meta does not exist"), - FILE_TYPE_NOT_LEGAL("File type not legal as data for other file"), - MODULE_IN_MANIFEST_NO_YAML("Module '%s', has no yaml file reference"), - NO_MODULES_IN_MANIFEST("At least one Base/Module must be defined \n"), - MODULE_IN_MANIFEST_VOL_ENV_NO_VOL("Module '%s', has volume Env. reference with no Volume " + - "reference"), - ILLEGAL_MANIFEST("Illegal Manifest"), - NO_FILE_WAS_UPLOADED_OR_FILE_NOT_EXIST("no %s file was uploaded or file doesn't exist"), - MAPPING_OBJECTS_FAILURE("Failed to map object %s to %s. Exception message: %s"), - MORE_THEN_ONE_VOL_FOR_HEAT("heat contains more then one vol. selecting only first vol"), - FILE_CONTENT_MAP("failed to load %s content"), - CREATE_MANIFEST_FROM_ZIP("cannot create manifest from the attached zip file"), - CANDIDATE_PROCESS_FAILED("Candidate zip file process failed"), - FOUND_UNASSIGNED_FILES("cannot process zip since it has unassigned files"), - GENERATED_ARTIFACT_IN_USE("Artifact with file name %s is generated by SDC. " - + "Please remove this artifact from manifest and zip files"), - - /* Monitor uploads related errors*/ - ILLEGAL_MONITORING_ARTIFACT_TYPE("Illegal monitoring artifact type for component id %s, vsp id " + - "%s"), - - - /* manifest errors*/ - MISSING_FILE_IN_ZIP("Missing file in zip"), - MISSING_FILE_IN_MANIFEST("Missing file in manifest"), - MISSING_FILE_NAME_IN_MANIFEST("Missing file name in manifest"), - MISSING_NESTED_FILE("Missing nested file - %s"), - MISSING_ARTIFACT("Missing artifact - %s"), - MISSING_MANIFEST_SOURCE("%s artifact %s referenced in manifest file does not exist"), - MISSING_MANIFEST_REFERENCE("'%s' artifact is not being referenced in manifest file"), - MISSING_METADATA_FILES("%s file referenced in TOSCA.meta does not exist"), - WRONG_HEAT_FILE_EXTENSION("Wrong HEAT file extension - %s"), - WRONG_ENV_FILE_EXTENSION("Wrong ENV file extension - %s"), - INVALID_MANIFEST_FILE("invalid manifest file"), - INVALID_FILE_TYPE("Missing or Unknown file type in Manifest"), - ENV_NOT_ASSOCIATED_TO_HEAT("ENV file must be associated to a HEAT file"), - CSAR_MANIFEST_FILE_NOT_EXIST("CSAR manifest file does not exist"), - CSAR_FAILED_TO_READ("CSAR file is not readable"), - TOSCA_PARSING_FAILURE("Invalid tosca file. Error code : %s, Error message : %s/"), - - /*definition errors*/ - MISSING_DEFINITION_FILE("Definition file %s referenced in TOSCA.meta does not exist"), - MISSING_IMPORT_FILE("Package must contain the referenced import file '%s'"), - INVALID_IMPORT_STATEMENT("Definition file '%s' contains an invalid import statement: '%s'"), - INVALID_YAML_EXTENSION("Expecting yaml or yml extension for file: %s"), - - - /* content errors*/ - INVALID_YAML_FORMAT("Invalid YAML format: %s"), - INVALID_YAML_FORMAT_1("Invalid YAML format in file '%s'. Format error:%n%s"), - INVALID_YAML_FORMAT_REASON("Invalid YAML format Problem - [%s]"), - EMPTY_YAML_FILE("empty yaml"), - EMPTY_YAML_FILE_1("The yaml file '%s' is empty"), - GENERAL_YAML_PARSER_ERROR("general parser error"), - GENERAL_HEAT_PARSER_ERROR("general parser error"), - INVALID_HEAT_FORMAT_REASON("Invalid HEAT format problem - [%s]"), - MISSING_RESOURCE_IN_DEPENDS_ON("a Missing resource in depend On, Missing Resource ID [%s]"), - REFERENCED_PARAMETER_NOT_FOUND("Referenced parameter - %s - not found, used in resource [%s]"), - GET_ATTR_NOT_FOUND("get_attr attribute not found, Attribute name [%s], Resource ID [%s]"), - MISSING_PARAMETER_IN_NESTED( - "Referenced parameter not found in nested file - %s, parameter name [%s], Resource ID [%s]"), - NESTED_LOOP("Nested files loop - %s"), - MORE_THAN_ONE_BIND_FROM_NOVA_TO_PORT("Resource Port %s exceed allowed relations from NovaServer"), - SERVER_NOT_DEFINED_FROM_NOVA("Missing server group definition - %s, %s"), - WRONG_POLICY_IN_SERVER_GROUP("Wrong policy in server group - %s"), - MISSING_IMAGE_AND_FLAVOR("Missing both Image and Flavor in NOVA Server, Resource ID [%s]"), - ENV_INCLUDES_PARAMETER_NOT_IN_HEAT("Env file %s includes a parameter not in HEAT - %s"), - PARAMETER_ENV_VALUE_NOT_ALIGN_WITH_TYPE("Parameter env value %s not align with type"), - PARAMETER_DEFAULT_VALUE_NOT_ALIGN_WITH_TYPE( - "Parameter - %s default value not align with type %s"), - INVALID_RESOURCE_TYPE("A resource has an invalid or unsupported type - %s, Resource ID [%s]"), - ARTIFACT_FILE_NOT_REFERENCED("Artifact file is not referenced."), - RESOURCE_NOT_IN_USE("%s not in use, Resource Id [%s]"), - PORT_NO_BIND_TO_ANY_NOVA_SERVER("Port not bind to any NOVA Server, Resource Id [%s]"), - INVALID_GET_RESOURCE_SYNTAX( - "invalid get_resource syntax is in use - %s , get_resource" - + " function should get the resource id of the referenced resource"), - INVALID_RESOURCE_GROUP_TYPE( - "OS::Heat::ResourceGroup resource with resource_def which is not pointing to " - + "nested heat file is not supported, Resource ID [%s], resource_def type [%s]"), - WRONG_VALUE_TYPE_ASSIGNED_NESTED_INPUT( - "Wrong value type assigned to a nested input parameter, nested resource [%s]," - + " property name [%s], nested file [%s]"), - NOVA_NAME_IMAGE_FLAVOR_NOT_CONSISTENT( - "Nova Server naming convention in image, flavor and name properties is not " - + "consistent, Resource ID [%s]"), - RESOURCE_GROUP_INVALID_INDEX_VAR( - "Wrong value assigned to a ResourceGroup index_var property (functions are not allowed" - + " but only strings), Resource ID [%s]"), - CONTRAIL_2_IN_USE("Contrail 2.x deprecated resource is in use, Resource ID [%s]"), - - /* warnings */ - REFERENCED_RESOURCE_NOT_FOUND("Referenced resource - %s not found"), - MISSING_GET_PARAM("Missing get_param in %s, Resource Id [%s]"), - - /*OPENECOMP Guide lines*/ - MISSING_NOVA_SERVER_METADATA("Missing Nova Server Metadata property, Resource ID [%s]"), - MISSING_NOVA_SERVER_VNF_ID("Missing VNF_ID in Metadata property, Resource ID [%s]"), - MISSING_NOVA_SERVER_VF_MODULE_ID("Missing VF_MODULE_ID in Metadata property, Resource id [%s]"), - NETWORK_PARAM_NOT_ALIGNED_WITH_GUIDE_LINE( - "Network Parameter Name not aligned with Guidelines, Parameter Name [%s] Resource ID [%s]"), - MISSIN_BASE_HEAT_FILE( - "Missing Base HEAT. Pay attention that without Base HEAT, there will be no shared resources"), - MULTI_BASE_HEAT_FILE("Multi Base HEAT. Expected only one. Files %s."), - RESOURCE_NOT_DEFINED_IN_OUTPUT( - "Resource is not defined as output and thus cannot be Shared, Resource ID [%s]"), - RESOURCE_CONNECTED_TO_TWO_EXTERNAL_NETWORKS_WITH_SAME_ROLE( - "A resource is connected twice to the same network role, Network Role [%s]," - + " Resource ID [%s]"), - VOLUME_HEAT_NOT_EXPOSED("Volume is not defined as output and thus cannot be attached %s"), - FORBIDDEN_RESOURCE_IN_USE("%s is in use, Resource ID [%s]"), - PARAMETER_NAME_NOT_ALIGNED_WITH_GUIDELINES( - "%s '%s' Parameter Name not aligned with Guidelines, Parameter Name [%s], Resource ID [%s]." - + " As a result, VF/VFC Profile may miss this information"), - /* Contrail validator messages*/ - MERGE_OF_CONTRAIL2_AND_CONTRAIL3_RESOURCES( - "HEAT Package includes both Contrail 2 and Contrail 3 resources. " - + "Contrail 2 resources can be found in %s. Contrail 3 resources can be found in %s"), - CONTRAIL_VM_TYPE_NAME_NOT_ALIGNED_WITH_NAMING_CONVENSION( - "Service Template naming convention in Image and Flavor " - + "properties is not consistent in Resource, Resource ID %s"), - - /* Notifications */ - FAILED_TO_MARK_NOTIFICATION_AS_READ("Failed to mark notifications as read"), - FAILED_TO_UPDATE_LAST_SEEN_NOTIFICATION("Failed to update last seen notification for user %s"), - FAILED_TO_VERIFY_SIGNATURE("Could not verify signature of signed package."); - - private String errorMessage; - - Messages(final String errorMessage) { - this.errorMessage = errorMessage; - } - - public String getErrorMessage() { - return errorMessage; - } - - /** - * Formats the message with the given parameters. - * - * @param params The message string parameters to apply - * @return - * The formatted message. - */ - public String formatMessage(final Object... params) { - return String.format(errorMessage, params); - } + FAILED_TO_TRANSLATE_ZIP_FILE("Failed to translate zip file"), + ZIP_NOT_EXIST("Zip file doesn't exist"), + + PERMISSIONS_ERROR("Permissions Error. The user does not have permission to perform this action."), + PERMISSIONS_OWNER_ERROR("Permissions Error. Only one owner is allowed."), + + ENTITY_NOT_FOUND("Incorrect item/version details provided."), + SUB_ENTITY_NOT_FOUND("Incorrect sub entity details provided."), + FAILED_TO_SYNC("Non existing version cannot be synced."), + FAILED_TO_PUBLISH_OUT_OF_SYNC("Publish is not allowed since the version status is Out of sync"), + + DELETE_VSP_ERROR("VSP has been certified and cannot be deleted."), + DELETE_VLM_ERROR("VLM has been certified and cannot be deleted."), + + ZIP_SHOULD_NOT_CONTAIN_FOLDERS("Zip file should not contain folders"), + VES_ZIP_SHOULD_CONTAIN_YML_ONLY( + "Wrong VES EVENT Artifact was uploaded - all files contained in Artifact must be YAML files" + + " (using .yaml/.yml extensions)"), + MANIFEST_NOT_EXIST("Manifest doesn't exist"), + MANIFEST_NOT_FOUND("Manifest file %s referenced in TOSCA.meta does not exist"), + FILE_TYPE_NOT_LEGAL("File type not legal as data for other file"), + MODULE_IN_MANIFEST_NO_YAML("Module '%s', has no yaml file reference"), + NO_MODULES_IN_MANIFEST("At least one Base/Module must be defined \n"), + MODULE_IN_MANIFEST_VOL_ENV_NO_VOL("Module '%s', has volume Env. reference with no Volume " + + "reference"), + ILLEGAL_MANIFEST("Illegal Manifest"), + NO_FILE_WAS_UPLOADED_OR_FILE_NOT_EXIST("no %s file was uploaded or file doesn't exist"), + MAPPING_OBJECTS_FAILURE("Failed to map object %s to %s. Exception message: %s"), + MORE_THEN_ONE_VOL_FOR_HEAT("heat contains more then one vol. selecting only first vol"), + FILE_LOAD_CONTENT_ERROR("Failed to load file '%s' content"), + CREATE_MANIFEST_FROM_ZIP("cannot create manifest from the attached zip file"), + CANDIDATE_PROCESS_FAILED("Candidate zip file process failed"), + FOUND_UNASSIGNED_FILES("cannot process zip since it has unassigned files"), + GENERATED_ARTIFACT_IN_USE("Artifact with file name %s is generated by SDC. " + + "Please remove this artifact from manifest and zip files"), + + /* Monitor uploads related errors*/ + ILLEGAL_MONITORING_ARTIFACT_TYPE("Illegal monitoring artifact type for component id %s, vsp id " + + "%s"), + /* manifest errors*/ + MISSING_FILE_IN_ZIP("Missing file in zip"), + MISSING_FILE_IN_MANIFEST("Missing file in manifest"), + MISSING_FILE_NAME_IN_MANIFEST("Missing file name in manifest"), + MISSING_NESTED_FILE("Missing nested file - %s"), + MISSING_ARTIFACT("Missing artifact - %s"), + MISSING_MANIFEST_SOURCE("%s artifact %s referenced in manifest file does not exist"), + MISSING_MANIFEST_REFERENCE("'%s' artifact is not being referenced in manifest file"), + MISSING_METADATA_FILES("%s file referenced in TOSCA.meta does not exist"), + WRONG_HEAT_FILE_EXTENSION("Wrong HEAT file extension - %s"), + WRONG_ENV_FILE_EXTENSION("Wrong ENV file extension - %s"), + INVALID_MANIFEST_FILE("invalid manifest file"), + INVALID_FILE_TYPE("Missing or Unknown file type in Manifest"), + ENV_NOT_ASSOCIATED_TO_HEAT("ENV file must be associated to a HEAT file"), + CSAR_MANIFEST_FILE_NOT_EXIST("CSAR manifest file does not exist"), + CSAR_FAILED_TO_READ("CSAR file is not readable"), + TOSCA_PARSING_FAILURE("Invalid tosca file. Error code : %s, Error message : %s/"), + + /*definition errors*/ + MISSING_DEFINITION_FILE("Definition file %s referenced in TOSCA.meta does not exist"), + MISSING_IMPORT_FILE("Package must contain the referenced import file '%s'"), + INVALID_IMPORT_STATEMENT("Definition file '%s' contains an invalid import statement: '%s'"), + INVALID_YAML_EXTENSION("Expecting yaml or yml extension for file: %s"), + + /* content errors*/ + INVALID_YAML_FORMAT("Invalid YAML format: %s"), + INVALID_YAML_FORMAT_1("Invalid YAML format in file '%s'. Format error:%n%s"), + INVALID_YAML_FORMAT_REASON("Invalid YAML format Problem - [%s]"), + EMPTY_YAML_FILE("empty yaml"), + EMPTY_YAML_FILE_1("The yaml file '%s' is empty"), + GENERAL_YAML_PARSER_ERROR("general parser error"), + GENERAL_HEAT_PARSER_ERROR("general parser error"), + INVALID_HEAT_FORMAT_REASON("Invalid HEAT format problem - [%s]"), + MISSING_RESOURCE_IN_DEPENDS_ON("a Missing resource in depend On, Missing Resource ID [%s]"), + REFERENCED_PARAMETER_NOT_FOUND("Referenced parameter - %s - not found, used in resource [%s]"), + GET_ATTR_NOT_FOUND("get_attr attribute not found, Attribute name [%s], Resource ID [%s]"), + MISSING_PARAMETER_IN_NESTED( + "Referenced parameter not found in nested file - %s, parameter name [%s], Resource ID [%s]"), + NESTED_LOOP("Nested files loop - %s"), + MORE_THAN_ONE_BIND_FROM_NOVA_TO_PORT("Resource Port %s exceed allowed relations from NovaServer"), + SERVER_NOT_DEFINED_FROM_NOVA("Missing server group definition - %s, %s"), + WRONG_POLICY_IN_SERVER_GROUP("Wrong policy in server group - %s"), + MISSING_IMAGE_AND_FLAVOR("Missing both Image and Flavor in NOVA Server, Resource ID [%s]"), + ENV_INCLUDES_PARAMETER_NOT_IN_HEAT("Env file %s includes a parameter not in HEAT - %s"), + PARAMETER_ENV_VALUE_NOT_ALIGN_WITH_TYPE("Parameter env value %s not align with type"), + PARAMETER_DEFAULT_VALUE_NOT_ALIGN_WITH_TYPE( + "Parameter - %s default value not align with type %s"), + INVALID_RESOURCE_TYPE("A resource has an invalid or unsupported type - %s, Resource ID [%s]"), + ARTIFACT_FILE_NOT_REFERENCED("Artifact file is not referenced."), + RESOURCE_NOT_IN_USE("%s not in use, Resource Id [%s]"), + PORT_NO_BIND_TO_ANY_NOVA_SERVER("Port not bind to any NOVA Server, Resource Id [%s]"), + INVALID_GET_RESOURCE_SYNTAX( + "invalid get_resource syntax is in use - %s , get_resource" + + " function should get the resource id of the referenced resource"), + INVALID_RESOURCE_GROUP_TYPE( + "OS::Heat::ResourceGroup resource with resource_def which is not pointing to " + + "nested heat file is not supported, Resource ID [%s], resource_def type [%s]"), + WRONG_VALUE_TYPE_ASSIGNED_NESTED_INPUT( + "Wrong value type assigned to a nested input parameter, nested resource [%s]," + + " property name [%s], nested file [%s]"), + NOVA_NAME_IMAGE_FLAVOR_NOT_CONSISTENT( + "Nova Server naming convention in image, flavor and name properties is not " + + "consistent, Resource ID [%s]"), + RESOURCE_GROUP_INVALID_INDEX_VAR( + "Wrong value assigned to a ResourceGroup index_var property (functions are not allowed" + + " but only strings), Resource ID [%s]"), + CONTRAIL_2_IN_USE("Contrail 2.x deprecated resource is in use, Resource ID [%s]"), + + /* warnings */ + REFERENCED_RESOURCE_NOT_FOUND("Referenced resource - %s not found"), + MISSING_GET_PARAM("Missing get_param in %s, Resource Id [%s]"), + + /*OPENECOMP Guide lines*/ + MISSING_NOVA_SERVER_METADATA("Missing Nova Server Metadata property, Resource ID [%s]"), + MISSING_NOVA_SERVER_VNF_ID("Missing VNF_ID in Metadata property, Resource ID [%s]"), + MISSING_NOVA_SERVER_VF_MODULE_ID("Missing VF_MODULE_ID in Metadata property, Resource id [%s]"), + NETWORK_PARAM_NOT_ALIGNED_WITH_GUIDE_LINE( + "Network Parameter Name not aligned with Guidelines, Parameter Name [%s] Resource ID [%s]"), + MISSIN_BASE_HEAT_FILE( + "Missing Base HEAT. Pay attention that without Base HEAT, there will be no shared resources"), + MULTI_BASE_HEAT_FILE("Multi Base HEAT. Expected only one. Files %s."), + RESOURCE_NOT_DEFINED_IN_OUTPUT( + "Resource is not defined as output and thus cannot be Shared, Resource ID [%s]"), + RESOURCE_CONNECTED_TO_TWO_EXTERNAL_NETWORKS_WITH_SAME_ROLE( + "A resource is connected twice to the same network role, Network Role [%s]," + + " Resource ID [%s]"), + VOLUME_HEAT_NOT_EXPOSED("Volume is not defined as output and thus cannot be attached %s"), + FORBIDDEN_RESOURCE_IN_USE("%s is in use, Resource ID [%s]"), + PARAMETER_NAME_NOT_ALIGNED_WITH_GUIDELINES( + "%s '%s' Parameter Name not aligned with Guidelines, Parameter Name [%s], Resource ID [%s]." + + " As a result, VF/VFC Profile may miss this information"), + /* Contrail validator messages*/ + MERGE_OF_CONTRAIL2_AND_CONTRAIL3_RESOURCES( + "HEAT Package includes both Contrail 2 and Contrail 3 resources. " + + "Contrail 2 resources can be found in %s. Contrail 3 resources can be found in %s"), + CONTRAIL_VM_TYPE_NAME_NOT_ALIGNED_WITH_NAMING_CONVENSION( + "Service Template naming convention in Image and Flavor " + + "properties is not consistent in Resource, Resource ID %s"), + + /* Notifications */ + FAILED_TO_MARK_NOTIFICATION_AS_READ("Failed to mark notifications as read"), + FAILED_TO_UPDATE_LAST_SEEN_NOTIFICATION("Failed to update last seen notification for user %s"), + FAILED_TO_VERIFY_SIGNATURE("Could not verify signature of signed package."); + + private String errorMessage; + + /** + * Formats the message with the given parameters. + * + * @param params The message string parameters to apply + * @return The formatted message. + */ + public String formatMessage(final Object... params) { + return String.format(errorMessage, params); + } } diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/pom.xml b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/pom.xml index f1e0ae5b4c..5067c4a7c8 100644 --- a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/pom.xml +++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/pom.xml @@ -24,6 +24,13 @@ openecomp-sdc-translator-core ${project.version} + + org.openecomp.sdc.be + common-be + ${project.version} + test-jar + test + org.hamcrest hamcrest diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/pnfd/parser/ConversionDefinitionYamlParserTest.java b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/pnfd/parser/ConversionDefinitionYamlParserTest.java index cb901b6f3c..b57bf74571 100644 --- a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/pnfd/parser/ConversionDefinitionYamlParserTest.java +++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/pnfd/parser/ConversionDefinitionYamlParserTest.java @@ -29,22 +29,25 @@ import static org.openecomp.core.converter.pnfd.model.PnfTransformationToken.TO_ import java.io.IOException; import java.io.InputStream; +import java.nio.file.Path; +import java.nio.file.Paths; import java.util.HashMap; import java.util.Map; import java.util.Optional; import org.junit.Test; import org.openecomp.core.converter.pnfd.model.ConversionDefinition; import org.openecomp.core.converter.pnfd.model.ConversionStrategyType; -import org.openecomp.core.util.TestResourcesUtil; import org.openecomp.core.util.YamlTestUtil; +import org.openecomp.sdc.be.test.util.TestResourcesHandler; public class ConversionDefinitionYamlParserTest { @Test public void shouldBuildDefinition() { final Map definitionYaml; - final String definitionYamlFilePath = "transformation/conversionDefinition/conversionDefinitionWithReplaceStrategy.yaml"; - try (final InputStream resourceInputStream = TestResourcesUtil.getFileResourceAsStream(definitionYamlFilePath)) { + final Path definitionYamlFilePath = + Paths.get("transformation", "conversionDefinition", "conversionDefinitionWithReplaceStrategy.yaml"); + try (final InputStream resourceInputStream = TestResourcesHandler.getResourceAsStream(definitionYamlFilePath)) { definitionYaml = (Map) YamlTestUtil.read(resourceInputStream); } catch (final IOException e) { fail(String.format("Could not load %s", definitionYamlFilePath)); diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/pnfd/parser/PnfdConversionStrategyYamlParserTest.java b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/pnfd/parser/PnfdConversionStrategyYamlParserTest.java index 1eab214980..18d10436be 100644 --- a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/pnfd/parser/PnfdConversionStrategyYamlParserTest.java +++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/converter/impl/pnfd/parser/PnfdConversionStrategyYamlParserTest.java @@ -25,20 +25,23 @@ import static org.junit.Assert.fail; import java.io.IOException; import java.io.InputStream; +import java.nio.file.Path; +import java.nio.file.Paths; import java.util.Map; import java.util.Optional; import org.junit.Test; import org.openecomp.core.converter.pnfd.strategy.PnfdConversionStrategy; -import org.openecomp.core.util.TestResourcesUtil; import org.openecomp.core.util.YamlTestUtil; +import org.openecomp.sdc.be.test.util.TestResourcesHandler; public class PnfdConversionStrategyYamlParserTest { @Test public void parseInvalidYamlObject() { final Object replaceStrategyYaml; - final String strategyYamlFilePath = "transformation/strategy/strategyMissingStrategyAttribute.yaml"; - try (final InputStream resourceInputStream = TestResourcesUtil.getFileResourceAsStream(strategyYamlFilePath)) { + final Path strategyYamlFilePath = + Paths.get("transformation", "strategy", "strategyMissingStrategyAttribute.yaml"); + try (final InputStream resourceInputStream = TestResourcesHandler.getResourceAsStream(strategyYamlFilePath)) { replaceStrategyYaml = YamlTestUtil.read(resourceInputStream); } catch (final IOException e) { fail(String.format("Could not load %s", strategyYamlFilePath)); diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/impl/ToscaDefinitionImportHandlerTest.java b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/impl/ToscaDefinitionImportHandlerTest.java index 30cba677f2..fe0d5a8620 100644 --- a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/impl/ToscaDefinitionImportHandlerTest.java +++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/impl/ToscaDefinitionImportHandlerTest.java @@ -22,8 +22,10 @@ package org.openecomp.core.impl; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.containsInAnyOrder; import static org.hamcrest.Matchers.hasSize; -import static org.openecomp.core.util.TestResourcesUtil.getResourceBytesOrFail; +import static org.openecomp.sdc.be.test.util.TestResourcesHandler.getResourceBytesOrFail; +import java.nio.file.Path; +import java.nio.file.Paths; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -39,7 +41,7 @@ import org.openecomp.sdc.datatypes.error.ErrorMessage; public class ToscaDefinitionImportHandlerTest { - private static final String RESOURCES_FILE_PATH = "/toscaDefinitionImportHandler/"; + private static final Path RESOURCES_FILE_PATH = Paths.get("toscaDefinitionImportHandler"); private Map descriptorFileMap; @Before @@ -56,7 +58,9 @@ public class ToscaDefinitionImportHandlerTest { "Definitions/descriptorWithRelativePaths.yaml", "Artifacts/descriptorWithAbsolutePaths.yaml", "Artifacts/descriptorCyclicReference.yaml"); - filesToHandleList.forEach(file -> descriptorFileMap.put(file, getResourceBytesOrFail(RESOURCES_FILE_PATH + file))); + filesToHandleList.forEach(file -> + descriptorFileMap.put(file, getResourceBytesOrFail(RESOURCES_FILE_PATH.resolve(file))) + ); final ToscaDefinitionImportHandler toscaDefinitionImportHandler = new ToscaDefinitionImportHandler( descriptorFileMap, @@ -108,7 +112,9 @@ public class ToscaDefinitionImportHandlerTest { final List filesToHandleList = Arrays.asList("Definitions/Main.yaml", "Definitions/descriptorBasicImport.yaml", "Definitions/descriptorWithRelativePaths.yaml", "Artifacts/descriptorWithAbsolutePaths.yaml"); - filesToHandleList.forEach(file -> descriptorFileMap.put(file, getResourceBytesOrFail(RESOURCES_FILE_PATH + file))); + filesToHandleList.forEach(file -> + descriptorFileMap.put(file, getResourceBytesOrFail(RESOURCES_FILE_PATH.resolve(file))) + ); final List expectedErrorList = new ArrayList<>(); expectedErrorList.add(new ErrorMessage(ErrorLevel.ERROR, @@ -140,7 +146,9 @@ public class ToscaDefinitionImportHandlerTest { final List filesToHandleList = Arrays.asList(mainDefinitionFile, "Definitions/descriptorInvalidImportStatement.yaml"); - filesToHandleList.forEach(file -> descriptorFileMap.put(file, getResourceBytesOrFail(RESOURCES_FILE_PATH + file))); + filesToHandleList.forEach(file -> + descriptorFileMap.put(file, getResourceBytesOrFail(RESOURCES_FILE_PATH.resolve(file))) + ); final List expectedErrorList = new ArrayList<>(); expectedErrorList.add(new ErrorMessage(ErrorLevel.ERROR, @@ -172,7 +180,9 @@ public class ToscaDefinitionImportHandlerTest { final String invalidMainDefinitionFilePath = "../Definitions/InvalidMainDefinitionFile.yaml"; final List filesToHandleList = Arrays.asList(mainDefinitionFilePath); - filesToHandleList.forEach(file -> descriptorFileMap.put(file, getResourceBytesOrFail(RESOURCES_FILE_PATH + file))); + filesToHandleList.forEach(file -> + descriptorFileMap.put(file, getResourceBytesOrFail(RESOURCES_FILE_PATH.resolve(file))) + ); final List expectedErrorList = new ArrayList<>(); expectedErrorList.add(new ErrorMessage(ErrorLevel.ERROR, Messages.MISSING_IMPORT_FILE.formatMessage(invalidMainDefinitionFilePath))); @@ -200,7 +210,9 @@ public class ToscaDefinitionImportHandlerTest { final String mainDefinitionFile = "Definitions/descriptorInvalid.yaml"; final List filesToHandleList = Arrays.asList(mainDefinitionFile); - filesToHandleList.forEach(file -> descriptorFileMap.put(file, getResourceBytesOrFail(RESOURCES_FILE_PATH + file))); + filesToHandleList.forEach(file -> + descriptorFileMap.put(file, getResourceBytesOrFail(RESOURCES_FILE_PATH.resolve(file))) + ); final List expectedErrorList = new ArrayList<>(); expectedErrorList.add(new ErrorMessage(ErrorLevel.ERROR, String.format(Messages.INVALID_YAML_FORMAT.getErrorMessage() @@ -236,7 +248,9 @@ public class ToscaDefinitionImportHandlerTest { final String mainDefinitionFile = "Definitions/descriptorFileWithValidImportStatements.yaml"; final List filesToHandleList = Arrays.asList(mainDefinitionFile, "Artifacts/descriptorCyclicReference.yaml"); - filesToHandleList.forEach(file -> descriptorFileMap.put(file, getResourceBytesOrFail(RESOURCES_FILE_PATH + file))); + filesToHandleList.forEach(file -> + descriptorFileMap.put(file, getResourceBytesOrFail(RESOURCES_FILE_PATH.resolve(file))) + ); final ToscaDefinitionImportHandler toscaDefinitionImportHandler = new ToscaDefinitionImportHandler(descriptorFileMap, mainDefinitionFile); @@ -258,17 +272,25 @@ public class ToscaDefinitionImportHandlerTest { public void testGivenDescriptorFileWithNonexistentRelativeImport_whenIncorrectMainDescriptorIsHandled_aMissingFileErrorIsReported() { final String mainDefinitionFile = "Definitions/MainWithNonexistentReferences.yaml"; - final List filesToHandleList = Arrays.asList(mainDefinitionFile, "Definitions/descriptorNonexistentImport.yaml", - "Artifacts/descriptorCyclicReference.yaml"); - filesToHandleList.forEach(file -> descriptorFileMap.put(file, getResourceBytesOrFail(RESOURCES_FILE_PATH + file))); + final List filesToHandleList = Arrays.asList(mainDefinitionFile, + "Definitions/descriptorNonexistentImport.yaml", "Artifacts/descriptorCyclicReference.yaml"); + filesToHandleList.forEach(file -> + descriptorFileMap.put(file, getResourceBytesOrFail(RESOURCES_FILE_PATH.resolve(file))) + ); final List expectedErrorList = new ArrayList<>(); expectedErrorList.add(new ErrorMessage(ErrorLevel.ERROR, - String.format(Messages.MISSING_IMPORT_FILE.getErrorMessage(), "Definitions/descriptorCyclicReference.yaml"))); + String.format(Messages.MISSING_IMPORT_FILE.getErrorMessage(), + "Definitions/descriptorCyclicReference.yaml")) + ); expectedErrorList.add(new ErrorMessage(ErrorLevel.ERROR, - String.format(Messages.MISSING_IMPORT_FILE.getErrorMessage(), "Definitions/descriptorCyclicReference.yaml"))); + String.format(Messages.MISSING_IMPORT_FILE.getErrorMessage(), + "Definitions/descriptorCyclicReference.yaml")) + ); expectedErrorList.add(new ErrorMessage(ErrorLevel.ERROR, - String.format(Messages.MISSING_IMPORT_FILE.getErrorMessage(), "Definitions/descriptorCyclicReference.yaml"))); + String.format(Messages.MISSING_IMPORT_FILE.getErrorMessage(), + "Definitions/descriptorCyclicReference.yaml")) + ); final ToscaDefinitionImportHandler toscaDefinitionImportHandler = new ToscaDefinitionImportHandler( descriptorFileMap, diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/util/TestResourcesUtil.java b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/util/TestResourcesUtil.java deleted file mode 100644 index 7d89bb3eab..0000000000 --- a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/util/TestResourcesUtil.java +++ /dev/null @@ -1,103 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * Copyright (C) 2019 Nordix Foundation - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.openecomp.core.util; - -import static org.junit.Assert.fail; - -import java.io.IOException; -import java.io.InputStream; -import java.net.URL; -import org.apache.commons.io.IOUtils; -import org.openecomp.sdc.logging.api.Logger; -import org.openecomp.sdc.logging.api.LoggerFactory; - -/** - * Test resources utility class. - */ -public class TestResourcesUtil { - - private static final Logger LOGGER = LoggerFactory.getLogger(TestResourcesUtil.class); - - private TestResourcesUtil() { - - } - - /** - * Reads a file and coverts it to a byte array. - * - * @param resourcePath The resource file path - * @return - * The resource file byte array - * @throws IOException - * When the file was not found or the input stream could not be opened - */ - public static byte[] getFileResourceBytes(final String resourcePath) throws IOException { - try(final InputStream inputStream = ClassLoader.class.getResourceAsStream(resourcePath)) { - if (inputStream == null) { - throw new IOException(String.format("Could not find the resource on path \"%s\"", resourcePath)); - } - return IOUtils.toByteArray(inputStream); - } catch (final IOException ex) { - throw new IOException(String.format("Could not open the input stream for resource on path \"%s\"", resourcePath), ex); - } - } - - /** - * Reads a file in the given path. - * The method forces an assertion fail if the resource could not be loaded. - * @param resourcePath The resource file path - * @return - * The resource file byte array - */ - public static byte[] getResourceBytesOrFail(final String resourcePath) { - try { - return getFileResourceBytes(resourcePath); - } catch (final IOException e) { - final String errorMsg = String.format("Could not load resource '%s'", resourcePath); - LOGGER.error(errorMsg, e); - fail(errorMsg); - } - - return null; - } - - /** - * Gets the input stream of a resource file - * - * @param resourcePath The resource file path - * @return - * The resource input stream - */ - public static InputStream getFileResourceAsStream(final String resourcePath) { - return Thread.currentThread().getContextClassLoader().getResourceAsStream(resourcePath); - } - - /** - * Gets the input stream of a resource file - * - * @param resourcePath The resource file path - * @return - * The resource input stream - */ - public static URL getFileUrl(final String resourcePath) { - return Thread.currentThread().getContextClassLoader().getResource(resourcePath); - } - -} diff --git a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/util/YamlTestUtil.java b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/util/YamlTestUtil.java index b095d13ed7..3229c1ce46 100644 --- a/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/util/YamlTestUtil.java +++ b/openecomp-be/lib/openecomp-tosca-converter-lib/openecomp-tosca-converter-core/src/test/java/org/openecomp/core/util/YamlTestUtil.java @@ -26,6 +26,7 @@ import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import org.onap.sdc.tosca.services.YamlUtil; +import org.openecomp.sdc.be.test.util.TestResourcesHandler; public class YamlTestUtil { @@ -45,7 +46,7 @@ public class YamlTestUtil { } public static Object read(final String yamlFilePath) throws IOException { - try (final InputStream resourceInputStream = TestResourcesUtil.getFileResourceAsStream(yamlFilePath)) { + try (final InputStream resourceInputStream = TestResourcesHandler.getResourceAsStream(yamlFilePath)) { return read(resourceInputStream); } } -- cgit 1.2.3-korg