aboutsummaryrefslogtreecommitdiffstats
path: root/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComponentManagerImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComponentManagerImpl.java')
-rw-r--r--openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComponentManagerImpl.java339
1 files changed, 149 insertions, 190 deletions
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComponentManagerImpl.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComponentManagerImpl.java
index ca8757dd11..a4527f5030 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComponentManagerImpl.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComponentManagerImpl.java
@@ -13,9 +13,14 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.openecomp.sdc.vendorsoftwareproduct.impl;
+import static org.openecomp.sdc.tosca.datatypes.ToscaNodeType.COMPUTE_TYPE_PREFIX;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
import org.apache.commons.collections4.CollectionUtils;
import org.openecomp.core.utilities.json.JsonUtil;
import org.openecomp.sdc.common.errors.CoreException;
@@ -42,220 +47,174 @@ import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.SchemaTempl
import org.openecomp.sdc.versioning.VersioningUtil;
import org.openecomp.sdc.versioning.dao.types.Version;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-
-import static org.openecomp.sdc.tosca.datatypes.ToscaNodeType.COMPUTE_TYPE_PREFIX;
-
public class ComponentManagerImpl implements ComponentManager {
- private final ComponentDao componentDao;
- private final CompositionEntityDataManager compositionEntityDataManager;
- private final NicManager nicManager;
- private final VendorSoftwareProductInfoDao vspInfoDao;
-
- public ComponentManagerImpl(ComponentDao componentDao,
- CompositionEntityDataManager compositionEntityDataManager,
- NicManager nicManager,
- VendorSoftwareProductInfoDao vspInfoDao) {
- this.componentDao = componentDao;
- this.compositionEntityDataManager = compositionEntityDataManager;
- this.nicManager = nicManager;
- this.vspInfoDao = vspInfoDao;
- }
- @Override
- public Collection<ComponentEntity> listComponents(String vspId, Version version) {
- return componentDao.list(new ComponentEntity(vspId, version, null));
- }
-
- @Override
- public void deleteComponents(String vspId, Version version) {
- if (!vspInfoDao.isManual(vspId, version)) {
- throw new CoreException(
- new CompositionEditNotAllowedErrorBuilder(vspId, version).build());
+ private final ComponentDao componentDao;
+ private final CompositionEntityDataManager compositionEntityDataManager;
+ private final NicManager nicManager;
+ private final VendorSoftwareProductInfoDao vspInfoDao;
+
+ public ComponentManagerImpl(ComponentDao componentDao, CompositionEntityDataManager compositionEntityDataManager, NicManager nicManager,
+ VendorSoftwareProductInfoDao vspInfoDao) {
+ this.componentDao = componentDao;
+ this.compositionEntityDataManager = compositionEntityDataManager;
+ this.nicManager = nicManager;
+ this.vspInfoDao = vspInfoDao;
}
- }
-
- @Override
- public ComponentEntity createComponent(ComponentEntity component) {
- final String vfcAddNotAllowedInHeatOnboardingMsg =
- "VFCs cannot be added for VSPs onboarded with HEAT.";
- ComponentEntity createdComponent;
- if (!vspInfoDao.isManual(component.getVspId(), component.getVersion())) {
- throw new CoreException(
- new ErrorCode.ErrorCodeBuilder()
- .withId(VendorSoftwareProductErrorCodes.VFC_ADD_NOT_ALLOWED_IN_HEAT_ONBOARDING)
- .withMessage(vfcAddNotAllowedInHeatOnboardingMsg).build());
- } else {
- validateComponentManual(component);
- updateComponentName(component);
- createdComponent = compositionEntityDataManager.createComponent(component, true);
+ @Override
+ public Collection<ComponentEntity> listComponents(String vspId, Version version) {
+ return componentDao.list(new ComponentEntity(vspId, version, null));
}
- return createdComponent;
- }
- private void updateComponentName(ComponentEntity component) {
- ComponentData data = component.getComponentCompositionData();
- data.setName(COMPUTE_TYPE_PREFIX + data.getDisplayName());
- component.setComponentCompositionData(data);
- }
-
- private void validateComponentManual(ComponentEntity component) {
- final String vspVfcCountExceedMsg = "Creation of only one VFC per "
- + "VSP allowed.";
-
- final String vspVfcDuplicateNameMsg = "VFC with specified name "
- + "already present in given VSP.";
-
- Collection<ComponentEntity> vspComponentList =
- listComponents(component.getVspId(), component.getVersion());
- if (!vspComponentList.isEmpty()) {
- //1707 release only supports 1 VFC in VSP (manual creation)
- throw new CoreException(
- new ErrorCode.ErrorCodeBuilder()
- .withId(VendorSoftwareProductErrorCodes.VSP_VFC_COUNT_EXCEED)
- .withMessage(vspVfcCountExceedMsg).build());
+ @Override
+ public void deleteComponents(String vspId, Version version) {
+ if (!vspInfoDao.isManual(vspId, version)) {
+ throw new CoreException(new CompositionEditNotAllowedErrorBuilder(vspId, version).build());
+ }
}
- if (!isVfcNameUnique(vspComponentList,
- component.getComponentCompositionData().getDisplayName())) {
- throw new CoreException(
- new ErrorCode.ErrorCodeBuilder()
- .withId(VendorSoftwareProductErrorCodes.VSP_VFC_DUPLICATE_NAME)
- .withMessage(vspVfcDuplicateNameMsg).build());
- }
- }
- private boolean isVfcNameUnique(Collection<ComponentEntity> component, String displayName) {
- for (ComponentEntity comp : component) {
- if (comp.getComponentCompositionData().getDisplayName().equalsIgnoreCase(displayName)) {
- return false;
- }
+ @Override
+ public ComponentEntity createComponent(ComponentEntity component) {
+ final String vfcAddNotAllowedInHeatOnboardingMsg = "VFCs cannot be added for VSPs onboarded with HEAT.";
+ ComponentEntity createdComponent;
+ if (!vspInfoDao.isManual(component.getVspId(), component.getVersion())) {
+ throw new CoreException(new ErrorCode.ErrorCodeBuilder().withId(VendorSoftwareProductErrorCodes.VFC_ADD_NOT_ALLOWED_IN_HEAT_ONBOARDING)
+ .withMessage(vfcAddNotAllowedInHeatOnboardingMsg).build());
+ } else {
+ validateComponentManual(component);
+ updateComponentName(component);
+ createdComponent = compositionEntityDataManager.createComponent(component, true);
+ }
+ return createdComponent;
}
- return true;
- }
-
- @Override
- public CompositionEntityValidationData updateComponent(ComponentEntity component) {
- ComponentEntity retrieved =
- getValidatedComponent(component.getVspId(), component.getVersion(), component.getId());
- boolean isManual = vspInfoDao.isManual(component.getVspId(), component.getVersion());
- if (isManual) {
- validateComponentUpdateManual(retrieved);
+ private void updateComponentName(ComponentEntity component) {
+ ComponentData data = component.getComponentCompositionData();
+ data.setName(COMPUTE_TYPE_PREFIX + data.getDisplayName());
+ component.setComponentCompositionData(data);
}
- ComponentCompositionSchemaInput schemaInput = new ComponentCompositionSchemaInput();
- schemaInput.setManual(isManual);
- schemaInput.setComponent(retrieved.getComponentCompositionData());
-
- CompositionEntityValidationData validationData = compositionEntityDataManager
- .validateEntity(component, SchemaTemplateContext.composition, schemaInput);
- if (CollectionUtils.isEmpty(validationData.getErrors())) {
- if (isManual) {
- updateComponentName(component);
- }
- componentDao.update(component);
+ private void validateComponentManual(ComponentEntity component) {
+ final String vspVfcCountExceedMsg = "Creation of only one VFC per " + "VSP allowed.";
+ final String vspVfcDuplicateNameMsg = "VFC with specified name " + "already present in given VSP.";
+ Collection<ComponentEntity> vspComponentList = listComponents(component.getVspId(), component.getVersion());
+ if (!vspComponentList.isEmpty()) {
+ //1707 release only supports 1 VFC in VSP (manual creation)
+ throw new CoreException(
+ new ErrorCode.ErrorCodeBuilder().withId(VendorSoftwareProductErrorCodes.VSP_VFC_COUNT_EXCEED).withMessage(vspVfcCountExceedMsg)
+ .build());
+ }
+ if (!isVfcNameUnique(vspComponentList, component.getComponentCompositionData().getDisplayName())) {
+ throw new CoreException(
+ new ErrorCode.ErrorCodeBuilder().withId(VendorSoftwareProductErrorCodes.VSP_VFC_DUPLICATE_NAME).withMessage(vspVfcDuplicateNameMsg)
+ .build());
+ }
}
- return validationData;
- }
- private void validateComponentUpdateManual(ComponentEntity component) {
- Collection<ComponentEntity> vspComponentList =
- listComponents(component.getVspId(), component.getVersion());
- //VFC name should be unique within VSP
- //Removing VFC with same ID from list to avoid self compare
- for (ComponentEntity ce : vspComponentList) {
- if (ce.getId().equals(component.getId())) {
- vspComponentList.remove(ce);
- break;
- }
+ private boolean isVfcNameUnique(Collection<ComponentEntity> component, String displayName) {
+ for (ComponentEntity comp : component) {
+ if (comp.getComponentCompositionData().getDisplayName().equalsIgnoreCase(displayName)) {
+ return false;
+ }
+ }
+ return true;
}
- if (!isVfcNameUnique(vspComponentList, component.getComponentCompositionData()
- .getDisplayName())) {
- throw new CoreException(
- new ErrorCode.ErrorCodeBuilder()
- .withId(VendorSoftwareProductErrorCodes.VSP_VFC_DUPLICATE_NAME)
- .withMessage("VFC with specified name already present in given VSP.").build());
+ @Override
+ public CompositionEntityValidationData updateComponent(ComponentEntity component) {
+ ComponentEntity retrieved = getValidatedComponent(component.getVspId(), component.getVersion(), component.getId());
+ boolean isManual = vspInfoDao.isManual(component.getVspId(), component.getVersion());
+ if (isManual) {
+ validateComponentUpdateManual(retrieved);
+ }
+ ComponentCompositionSchemaInput schemaInput = new ComponentCompositionSchemaInput();
+ schemaInput.setManual(isManual);
+ schemaInput.setComponent(retrieved.getComponentCompositionData());
+ CompositionEntityValidationData validationData = compositionEntityDataManager
+ .validateEntity(component, SchemaTemplateContext.composition, schemaInput);
+ if (CollectionUtils.isEmpty(validationData.getErrors())) {
+ if (isManual) {
+ updateComponentName(component);
+ }
+ componentDao.update(component);
+ }
+ return validationData;
}
- }
-
- @Override
- public CompositionEntityResponse<ComponentData> getComponent(String vspId, Version version,
- String componentId) {
- ComponentEntity componentEntity = getValidatedComponent(vspId, version, componentId);
- ComponentData component = componentEntity.getComponentCompositionData();
-
- ComponentCompositionSchemaInput schemaInput = new ComponentCompositionSchemaInput();
- schemaInput.setManual(vspInfoDao.isManual(vspId, version));
- schemaInput.setComponent(component);
-
- CompositionEntityResponse<ComponentData> response = new CompositionEntityResponse<>();
- response.setId(componentId);
- response.setData(component);
- response.setSchema(getComponentCompositionSchema(schemaInput));
- return response;
- }
- @Override
- public void deleteComponent(String vspId, Version version, String componentId) {
- if (!vspInfoDao.isManual(vspId, version)) {
- throw new CoreException(
- new CompositionEditNotAllowedErrorBuilder(vspId, version).build());
+ private void validateComponentUpdateManual(ComponentEntity component) {
+ Collection<ComponentEntity> vspComponentList = listComponents(component.getVspId(), component.getVersion());
+ //VFC name should be unique within VSP
+
+ //Removing VFC with same ID from list to avoid self compare
+ for (ComponentEntity ce : vspComponentList) {
+ if (ce.getId().equals(component.getId())) {
+ vspComponentList.remove(ce);
+ break;
+ }
+ }
+ if (!isVfcNameUnique(vspComponentList, component.getComponentCompositionData().getDisplayName())) {
+ throw new CoreException(new ErrorCode.ErrorCodeBuilder().withId(VendorSoftwareProductErrorCodes.VSP_VFC_DUPLICATE_NAME)
+ .withMessage("VFC with specified name already present in given VSP.").build());
+ }
}
- }
- @Override
- public QuestionnaireResponse getQuestionnaire(String vspId, Version version,
- String componentId) {
- QuestionnaireResponse questionnaireResponse = new QuestionnaireResponse();
- ComponentEntity component = componentDao.getQuestionnaireData(vspId, version, componentId);
- VersioningUtil
- .validateEntityExistence(component, new ComponentEntity(vspId, version, componentId),
- VspDetails.ENTITY_TYPE);
+ @Override
+ public CompositionEntityResponse<ComponentData> getComponent(String vspId, Version version, String componentId) {
+ ComponentEntity componentEntity = getValidatedComponent(vspId, version, componentId);
+ ComponentData component = componentEntity.getComponentCompositionData();
+ ComponentCompositionSchemaInput schemaInput = new ComponentCompositionSchemaInput();
+ schemaInput.setManual(vspInfoDao.isManual(vspId, version));
+ schemaInput.setComponent(component);
+ CompositionEntityResponse<ComponentData> response = new CompositionEntityResponse<>();
+ response.setId(componentId);
+ response.setData(component);
+ response.setSchema(getComponentCompositionSchema(schemaInput));
+ return response;
+ }
- questionnaireResponse.setData(component.getQuestionnaireData());
- List<String> nicNames = nicManager.listNics(vspId, version, componentId).stream()
- .map(nic -> nic.getNicCompositionData().getName()).collect(Collectors.toList());
- questionnaireResponse.setSchema(getComponentQuestionnaireSchema(
- new ComponentQuestionnaireSchemaInput(nicNames, questionnaireResponse.getData() == null
- ? null : JsonUtil.json2Object(questionnaireResponse.getData(), Map.class),
- null, false)));
- return questionnaireResponse;
- }
+ @Override
+ public void deleteComponent(String vspId, Version version, String componentId) {
+ if (!vspInfoDao.isManual(vspId, version)) {
+ throw new CoreException(new CompositionEditNotAllowedErrorBuilder(vspId, version).build());
+ }
+ }
- @Override
- public void updateQuestionnaire(String vspId, Version version, String componentId,
- String questionnaireData) {
- validateComponentExistence(vspId, version, componentId);
+ @Override
+ public QuestionnaireResponse getQuestionnaire(String vspId, Version version, String componentId) {
+ QuestionnaireResponse questionnaireResponse = new QuestionnaireResponse();
+ ComponentEntity component = componentDao.getQuestionnaireData(vspId, version, componentId);
+ VersioningUtil.validateEntityExistence(component, new ComponentEntity(vspId, version, componentId), VspDetails.ENTITY_TYPE);
+ questionnaireResponse.setData(component.getQuestionnaireData());
+ List<String> nicNames = nicManager.listNics(vspId, version, componentId).stream().map(nic -> nic.getNicCompositionData().getName())
+ .collect(Collectors.toList());
+ questionnaireResponse.setSchema(getComponentQuestionnaireSchema(new ComponentQuestionnaireSchemaInput(nicNames,
+ questionnaireResponse.getData() == null ? null : JsonUtil.json2Object(questionnaireResponse.getData(), Map.class), null, false)));
+ return questionnaireResponse;
+ }
- componentDao.updateQuestionnaireData(vspId, version, componentId, questionnaireData);
- }
+ @Override
+ public void updateQuestionnaire(String vspId, Version version, String componentId, String questionnaireData) {
+ validateComponentExistence(vspId, version, componentId);
+ componentDao.updateQuestionnaireData(vspId, version, componentId, questionnaireData);
+ }
- @Override
- public void validateComponentExistence(String vspId, Version version, String componentId) {
- getValidatedComponent(vspId, version, componentId);
- }
+ @Override
+ public void validateComponentExistence(String vspId, Version version, String componentId) {
+ getValidatedComponent(vspId, version, componentId);
+ }
- private ComponentEntity getValidatedComponent(String vspId, Version version, String componentId) {
- ComponentEntity retrieved = componentDao.get(new ComponentEntity(vspId, version, componentId));
- VersioningUtil
- .validateEntityExistence(retrieved, new ComponentEntity(vspId, version, componentId),
- VspDetails.ENTITY_TYPE);
- return retrieved;
- }
+ private ComponentEntity getValidatedComponent(String vspId, Version version, String componentId) {
+ ComponentEntity retrieved = componentDao.get(new ComponentEntity(vspId, version, componentId));
+ VersioningUtil.validateEntityExistence(retrieved, new ComponentEntity(vspId, version, componentId), VspDetails.ENTITY_TYPE);
+ return retrieved;
+ }
- protected String getComponentCompositionSchema(ComponentCompositionSchemaInput schemaInput) {
- return SchemaGenerator
- .generate(SchemaTemplateContext.composition, CompositionEntityType.component, schemaInput);
- }
+ protected String getComponentCompositionSchema(ComponentCompositionSchemaInput schemaInput) {
+ return SchemaGenerator.generate(SchemaTemplateContext.composition, CompositionEntityType.component, schemaInput);
+ }
- protected String getComponentQuestionnaireSchema(SchemaTemplateInput schemaInput) {
- return SchemaGenerator
- .generate(SchemaTemplateContext.questionnaire, CompositionEntityType.component,
- schemaInput);
- }
+ protected String getComponentQuestionnaireSchema(SchemaTemplateInput schemaInput) {
+ return SchemaGenerator.generate(SchemaTemplateContext.questionnaire, CompositionEntityType.component, schemaInput);
+ }
}