Add validation of manifest for helm packages.
[sdc.git] / openecomp-be / lib / openecomp-common-lib / src / main / java / org / openecomp / sdc / common / errors / Messages.java
1 /*
2  * Copyright © 2016-2018 European Support Limited
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 package org.openecomp.sdc.common.errors;
18
19 import lombok.AllArgsConstructor;
20 import lombok.Getter;
21
22 @AllArgsConstructor
23 @Getter
24 public enum Messages {
25     CANT_LOAD_HEALING_CLASS("Can't load healing class %s."),
26
27     VERSION_UPGRADE("Item %s is of old version. A check out was made in order to get new " +
28         "functionalities"),
29
30     PACKAGE_PROCESS_ERROR("Could not process package '%s'"),
31     PACKAGE_INVALID_EXTENSION("Invalid package '%s' extension. Expecting %s."),
32     PACKAGE_EMPTY_ERROR("The given package is empty '%s'"),
33     PACKAGE_PROCESS_INTERNAL_PACKAGE_ERROR("Could not process internal package '%s'"),
34     PACKAGE_INVALID_ERROR("Invalid package content '%s'"),
35     PACKAGE_MISSING_INTERNAL_PACKAGE("Missing expected internal package"),
36     COULD_NOT_READ_MANIFEST_FILE("Could not read manifest file: %s [%s]"),
37     INVALID_ZIP_FILE("Invalid zip file"),
38     INVALID_CSAR_FILE("Invalid csar file"),
39     CSAR_FILE_NOT_FOUND("Each CSAR file must contain %s file."),
40     CSAR_DIRECTORIES_NOT_ALLOWED("Directory : %s , is not allowed."),
41     CSAR_FILES_NOT_ALLOWED("File : %s , are not allowed."),
42     MANIFEST_INVALID_LINE("Manifest contains invalid line: %s: %s"),
43     MANIFEST_START_METADATA("Manifest must starts with 'metadata:'"),
44     MANIFEST_NO_METADATA("Manifest must contain metadata"),
45     MANIFEST_NO_SOURCES("Manifest must contain Source"),
46     MANIFEST_METADATA_MISSING_ENTRY("Manifest metadata missing entry %s"),
47     MANIFEST_INVALID_NAME("Manifest file %s and TOSCA definitions file %s must have the same name"),
48     MANIFEST_INVALID_EXT("Manifest file must have extension \".mf\" "),
49     MANIFEST_METADATA_INVALID_ENTRY("Manifest metadata should only have pnf or vnf entries"),
50     MANIFEST_METADATA_INVALID_ENTRY1("Invalid Manifest metadata entry: '%s'."),
51     MANIFEST_METADATA_DUPLICATED_ENTRY("Duplicated Manifest metadata entry: '%s'."),
52     MANIFEST_METADATA_UNEXPECTED_ENTRY_TYPE(
53         "Manifest metadata should have either pnf or vnf entries, not both together"),
54     MANIFEST_INVALID_PNF_METADATA("%s TOSCA.meta file is applicable for VF only"),
55     MANIFEST_INVALID_NON_MANO_KEY("Invalid non mano key '%s'"),
56     MANIFEST_EMPTY_NON_MANO_KEY("Expecting a 'Source' entry for the non mano key '%s'"),
57     MANIFEST_EMPTY_NON_MANO_SOURCE("Empty non mano source"),
58     MANIFEST_EXPECTED_HASH_ENTRY("Expected Hash entry"),
59     MANIFEST_EXPECTED_HASH_VALUE("Expected Hash entry value"),
60     MANIFEST_EXPECTED_SOURCE_PATH("Expected Source entry path"),
61     MANIFEST_EXPECTED_ALGORITHM_VALUE("Expected Algorithm entry value"),
62     MANIFEST_EXPECTED_ALGORITHM_BEFORE_HASH("Expected 'Algorithm' entry before 'Hash' entry"),
63     MANIFEST_EXPECTED_SIGNATURE_VALUE("Expected 'Signature' entry value"),
64     MANIFEST_EXPECTED_CERTIFICATE_VALUE("Expected 'Certificate' entry value"),
65     MANIFEST_EXPECTED_SIGNATURE_BEFORE_CERTIFICATE("Expected 'Signature' entry before 'Certificate' entry"),
66     MANIFEST_DUPLICATED_CMS_SIGNATURE("Duplicated CMS signature"),
67     MANIFEST_SIGNATURE_DUPLICATED("Duplicated manifest signature"),
68     MANIFEST_SIGNATURE_LAST_ENTRY("The manifest signature must be the last entry of the manifest."),
69     MANIFEST_METADATA_DOES_NOT_MATCH_LIMIT("Manifest metadata must only have the required number [%s] of "
70         + "entries"),
71     MANIFEST_EMPTY("The manifest is empty"),
72     MANIFEST_ERROR_WITH_LINE("%s;%nAt line %s: '%s'."),
73     MANIFEST_PARSER_INTERNAL("Invalid manifest file"),
74     MANIFEST_UNEXPECTED_ERROR("An unexpected error occurred while validating manifest '%s': %s"),
75     MANIFEST_VALIDATION_HELM_IS_BASE_MISSING("Definition of 'isBase' is missing in %d charts."),
76     MANIFEST_VALIDATION_HELM_IS_BASE_NOT_UNIQUE("More than one chart is marked as 'isBase'."),
77     MANIFEST_VALIDATION_HELM_IS_BASE_NOT_SET("None of charts is marked as 'isBase'."),
78     METADATA_PARSER_INTERNAL("Invalid Metadata file"),
79     METADATA_MISSING_OPTIONAL_FOLDERS("Missing folder %s in package"),
80     METADATA_UNSUPPORTED_ENTRY("Following entry not supported in TOSCA.meta %s"),
81     METADATA_INVALID_VERSION("Invalid entry %s value %s"),
82     METADATA_INVALID_VALUE("Invalid value %s in TOSCA.meta file"),
83     METADATA_MISSING_ENTRY("TOSCA.meta file in TOSCA-metadata directory missing entry %s"),
84     METADATA_NO_ENTRY_DEFINITIONS("TOSCA.meta must contain Entry Definitions"),
85     METADATA_INVALID_ENTRY_DEFINITIONS("TOSCA.meta must contain key:value entries"),
86
87     EMPTY_SW_INFORMATION_NON_MANO_ERROR(
88         "Non-mano Software Information artifact was declared in the manifest, but not provided"),
89     UNIQUE_SW_INFORMATION_NON_MANO_ERROR("Only one software information non-mano artifact is allowed. "
90         + "Found %s."),
91     INVALID_SW_INFORMATION_NON_MANO_ERROR("Invalid software information non-mano artifact: '%s'"),
92     INCORRECT_SW_INFORMATION_NON_MANO_ERROR(
93         "Incorrect software information non-mano artifact. The software version information is missing "
94             + "or it has one or more incorrect software version entries: '%s'"),
95     FAILED_TO_VALIDATE_METADATA("Failed to validate metadata file"),
96     ARTIFACT_INVALID_SIGNATURE("Invalid signature '%s' provided for artifact '%s'"),
97     ARTIFACT_SIGNATURE_VALIDATION_ERROR(
98       "Could not validate signature '%s' provided for artifact '%s' with certificate '%s': %s"),
99     FAILED_TO_TRANSLATE_ZIP_FILE("Failed to translate zip file"),
100     ZIP_NOT_EXIST("Zip file doesn't exist"),
101
102     PERMISSIONS_ERROR("Permissions Error. The user does not have permission to perform this action."),
103     PERMISSIONS_OWNER_ERROR("Permissions Error. Only one owner is allowed."),
104
105     ENTITY_NOT_FOUND("Incorrect item/version details provided."),
106     SUB_ENTITY_NOT_FOUND("Incorrect sub entity details provided."),
107     FAILED_TO_SYNC("Non existing version cannot be synced."),
108     FAILED_TO_PUBLISH_OUT_OF_SYNC("Publish is not allowed since the version status is Out of sync"),
109
110     DELETE_VSP_ERROR("VSP has been certified and cannot be deleted."),
111     DELETE_VLM_ERROR("VLM has been certified and cannot be deleted."),
112
113     ZIP_SHOULD_NOT_CONTAIN_FOLDERS("Zip file should not contain folders"),
114     VES_ZIP_SHOULD_CONTAIN_YML_ONLY(
115         "Wrong VES EVENT Artifact was uploaded - all files contained in Artifact must be YAML files" +
116             " (using .yaml/.yml extensions)"),
117     MANIFEST_NOT_EXIST("Manifest doesn't exist"),
118     MANIFEST_NOT_FOUND("Manifest file %s referenced in TOSCA.meta does not exist"),
119     FILE_TYPE_NOT_LEGAL("File type not legal as data for other file"),
120     MODULE_IN_MANIFEST_NO_YAML("Module '%s', has no yaml file reference"),
121     NO_MODULES_IN_MANIFEST("At least one Base/Module must be defined \n"),
122     MODULE_IN_MANIFEST_VOL_ENV_NO_VOL("Module '%s', has volume Env. reference with no Volume " +
123         "reference"),
124     ILLEGAL_MANIFEST("Illegal Manifest"),
125     NO_FILE_WAS_UPLOADED_OR_FILE_NOT_EXIST("no %s file was uploaded or file doesn't exist"),
126     MAPPING_OBJECTS_FAILURE("Failed to map object %s to %s. Exception message: %s"),
127     MORE_THEN_ONE_VOL_FOR_HEAT("heat contains more then one vol. selecting only first vol"),
128     FILE_LOAD_CONTENT_ERROR("Failed to load file '%s' content"),
129     CREATE_MANIFEST_FROM_ZIP("cannot create manifest from the attached zip file"),
130     CANDIDATE_PROCESS_FAILED("Candidate zip file process failed"),
131     FOUND_UNASSIGNED_FILES("cannot process zip since it has unassigned files"),
132     GENERATED_ARTIFACT_IN_USE("Artifact with file name %s is generated by SDC. "
133         + "Please remove this artifact from manifest and zip files"),
134
135     /* Monitor uploads related errors*/
136     ILLEGAL_MONITORING_ARTIFACT_TYPE("Illegal monitoring artifact type for component id %s, vsp id " +
137         "%s"),
138     /* manifest errors*/
139     MISSING_FILE_IN_ZIP("Missing file in zip"),
140     MISSING_FILE_IN_MANIFEST("Missing file in manifest"),
141     MISSING_FILE_NAME_IN_MANIFEST("Missing file name in manifest"),
142     MISSING_NESTED_FILE("Missing nested file - %s"),
143     MISSING_ARTIFACT("Missing artifact - %s"),
144     MISSING_MANIFEST_SOURCE("%s artifact %s referenced in manifest file does not exist"),
145     MISSING_MANIFEST_REFERENCE("'%s' artifact is not being referenced in manifest file"),
146     MISSING_METADATA_FILES("%s file referenced in TOSCA.meta does not exist"),
147     WRONG_HEAT_FILE_EXTENSION("Wrong HEAT file extension - %s"),
148     WRONG_ENV_FILE_EXTENSION("Wrong ENV file extension - %s"),
149     INVALID_MANIFEST_FILE("invalid manifest file"),
150     INVALID_FILE_TYPE("Missing or Unknown file type in Manifest"),
151     ENV_NOT_ASSOCIATED_TO_HEAT("ENV file must be associated to a HEAT file"),
152     CSAR_MANIFEST_FILE_NOT_EXIST("CSAR manifest file does not exist"),
153     CSAR_FAILED_TO_READ("CSAR file is not readable"),
154     TOSCA_PARSING_FAILURE("Invalid tosca file. Error code : %s, Error message : %s/"),
155
156     /*definition errors*/
157     MISSING_DEFINITION_FILE("Definition file %s referenced in TOSCA.meta does not exist"),
158     MISSING_IMPORT_FILE("Package must contain the referenced import file '%s'"),
159     MISSING_MAIN_DEFINITION_FILE("Package must contain the given main definition file '%s'"),
160     INVALID_IMPORT_STATEMENT("Definition file '%s' contains an invalid import statement: '%s'"),
161     INVALID_YAML_EXTENSION("Expecting yaml or yml extension for file: %s"),
162
163     /* content errors*/
164     INVALID_YAML_FORMAT("Invalid YAML format: %s"),
165     INVALID_YAML_FORMAT_1("Invalid YAML format in file '%s'. Format error:%n%s"),
166     INVALID_YAML_FORMAT_REASON("Invalid YAML format Problem - [%s]"),
167     EMPTY_YAML_FILE("empty yaml"),
168     EMPTY_YAML_FILE_1("The yaml file '%s' is empty"),
169     GENERAL_YAML_PARSER_ERROR("general parser error"),
170     GENERAL_HEAT_PARSER_ERROR("general parser error"),
171     INVALID_HEAT_FORMAT_REASON("Invalid HEAT format problem - [%s]"),
172     MISSING_RESOURCE_IN_DEPENDS_ON("a Missing resource in depend On, Missing Resource ID [%s]"),
173     REFERENCED_PARAMETER_NOT_FOUND("Referenced parameter - %s - not found, used in resource [%s]"),
174     GET_ATTR_NOT_FOUND("get_attr attribute not found, Attribute name [%s], Resource ID [%s]"),
175     MISSING_PARAMETER_IN_NESTED(
176         "Referenced parameter not found in nested file - %s, parameter name [%s], Resource ID [%s]"),
177     NESTED_LOOP("Nested files loop - %s"),
178     MORE_THAN_ONE_BIND_FROM_NOVA_TO_PORT("Resource Port %s exceed allowed relations from NovaServer"),
179     SERVER_NOT_DEFINED_FROM_NOVA("Missing server group definition - %s, %s"),
180     WRONG_POLICY_IN_SERVER_GROUP("Wrong policy in server group - %s"),
181     MISSING_IMAGE_AND_FLAVOR("Missing both Image and Flavor in NOVA Server, Resource ID [%s]"),
182     ENV_INCLUDES_PARAMETER_NOT_IN_HEAT("Env file %s includes a parameter not in HEAT - %s"),
183     PARAMETER_ENV_VALUE_NOT_ALIGN_WITH_TYPE("Parameter env value %s not align with type"),
184     PARAMETER_DEFAULT_VALUE_NOT_ALIGN_WITH_TYPE(
185         "Parameter - %s default value not align with type %s"),
186     INVALID_RESOURCE_TYPE("A resource has an invalid or unsupported type - %s, Resource ID [%s]"),
187     ARTIFACT_FILE_NOT_REFERENCED("Artifact file is not referenced."),
188     RESOURCE_NOT_IN_USE("%s not in use, Resource Id [%s]"),
189     PORT_NO_BIND_TO_ANY_NOVA_SERVER("Port not bind to any NOVA Server, Resource Id [%s]"),
190     INVALID_GET_RESOURCE_SYNTAX(
191         "invalid get_resource syntax is in use - %s , get_resource"
192             + " function should get the resource id of the referenced resource"),
193     INVALID_RESOURCE_GROUP_TYPE(
194         "OS::Heat::ResourceGroup resource with resource_def which is not pointing to "
195             + "nested heat file is not supported, Resource ID [%s], resource_def type [%s]"),
196     WRONG_VALUE_TYPE_ASSIGNED_NESTED_INPUT(
197         "Wrong value type assigned to a nested input parameter, nested resource [%s],"
198             + " property name [%s], nested file [%s]"),
199     NOVA_NAME_IMAGE_FLAVOR_NOT_CONSISTENT(
200         "Nova Server naming convention in image, flavor and name properties is not "
201             + "consistent, Resource ID [%s]"),
202     RESOURCE_GROUP_INVALID_INDEX_VAR(
203         "Wrong value assigned to a ResourceGroup index_var property (functions are not allowed"
204             + " but only strings), Resource ID [%s]"),
205     CONTRAIL_2_IN_USE("Contrail 2.x deprecated resource is in use, Resource ID [%s]"),
206
207     /* warnings */
208     REFERENCED_RESOURCE_NOT_FOUND("Referenced resource - %s not found"),
209     MISSING_GET_PARAM("Missing get_param in %s, Resource Id [%s]"),
210
211     /*OPENECOMP Guide lines*/
212     MISSING_NOVA_SERVER_METADATA("Missing Nova Server Metadata property, Resource ID [%s]"),
213     MISSING_NOVA_SERVER_VNF_ID("Missing VNF_ID in Metadata property, Resource ID [%s]"),
214     MISSING_NOVA_SERVER_VF_MODULE_ID("Missing VF_MODULE_ID in Metadata property, Resource id [%s]"),
215     NETWORK_PARAM_NOT_ALIGNED_WITH_GUIDE_LINE(
216         "Network Parameter Name not aligned with Guidelines, Parameter Name [%s] Resource ID [%s]"),
217     MISSIN_BASE_HEAT_FILE(
218         "Missing Base HEAT. Pay attention that without Base HEAT, there will be no shared resources"),
219     MULTI_BASE_HEAT_FILE("Multi Base HEAT. Expected only one. Files %s."),
220     RESOURCE_NOT_DEFINED_IN_OUTPUT(
221         "Resource is not defined as output and thus cannot be Shared, Resource ID [%s]"),
222     RESOURCE_CONNECTED_TO_TWO_EXTERNAL_NETWORKS_WITH_SAME_ROLE(
223         "A resource is connected twice to the same network role, Network Role [%s],"
224             + " Resource ID [%s]"),
225     VOLUME_HEAT_NOT_EXPOSED("Volume is not defined as output and thus cannot be attached %s"),
226     FORBIDDEN_RESOURCE_IN_USE("%s is in use, Resource ID [%s]"),
227     PARAMETER_NAME_NOT_ALIGNED_WITH_GUIDELINES(
228         "%s '%s' Parameter Name not aligned with Guidelines, Parameter Name [%s], Resource ID [%s]."
229             + " As a result, VF/VFC Profile may miss this information"),
230     /* Contrail validator messages*/
231     MERGE_OF_CONTRAIL2_AND_CONTRAIL3_RESOURCES(
232         "HEAT Package includes both Contrail 2 and Contrail 3 resources. "
233             + "Contrail 2 resources can be found in %s. Contrail 3 resources can be found in %s"),
234     CONTRAIL_VM_TYPE_NAME_NOT_ALIGNED_WITH_NAMING_CONVENSION(
235         "Service Template naming convention in Image and Flavor "
236             + "properties is not consistent in Resource, Resource ID %s"),
237
238     /* Notifications */
239     FAILED_TO_MARK_NOTIFICATION_AS_READ("Failed to mark notifications as read"),
240     FAILED_TO_UPDATE_LAST_SEEN_NOTIFICATION("Failed to update last seen notification for user %s"),
241     FAILED_TO_VERIFY_SIGNATURE("Could not verify signature of signed package.");
242
243     private String errorMessage;
244
245     /**
246      * Formats the message with the given parameters.
247      *
248      * @param params The message string parameters to apply
249      * @return The formatted message.
250      */
251     public String formatMessage(final Object... params) {
252         return String.format(errorMessage, params);
253     }
254
255 }