import java.util.Collection;
import java.util.Map;
+import java.util.Objects;
public class ComponentQuestionnaireHealer implements Healer {
Collection<ComponentEntity> componentEntities =
componentDao.list(new ComponentEntity(vspId, version, null));
componentEntities.forEach(componentEntity -> {
- String questionnaire = componentDao.getQuestionnaireData(vspId, version, componentEntity
- .getId()).getQuestionnaireData();
+ ComponentEntity componentQuestionnaireData =
+ componentDao.getQuestionnaireData(vspId, version, componentEntity.getId());
+ String questionnaire = Objects.isNull(componentQuestionnaireData) ? null
+ : componentQuestionnaireData.getQuestionnaireData();
if (questionnaire != null) {
JsonParser jsonParser = new JsonParser();
* Move Disk Atributes from genral/image/ to genral/disk in component questionnaire itself
* @param json
* @param diskAttrName
- * @param diskJsonObject
* @return
*/
private void processDiskAttribute(JsonObject json, String diskAttrName) {
private static NicDao nicDao = NicDaoFactory.getInstance().createInterface();
private static NetworkDao networkDao = NetworkDaoFactory.getInstance().createInterface();
+ private static String emptyString = "";
+ private static String emptyJson = "{}";
+
@Override
public Object heal(Map<String, Object> healingParams) throws Exception {
for (Object entity : compositionEntities) {
CompositionEntity compositionEntity = (CompositionEntity) entity;
- if (Objects.isNull(compositionEntity.getQuestionnaireData()) ||
- "".equals(compositionEntity.getQuestionnaireData())) {
+ if (isQuestionnaireNeedsToGetHealed(compositionEntity)) {
compositionEntity.setVersion(newVersion);
updateNullQuestionnaire(compositionEntity, type);
}
mdcDataDebugMessage.debugExitMessage(null);
}
+ private boolean isQuestionnaireNeedsToGetHealed(CompositionEntity compositionEntity) {
+ return Objects.isNull(compositionEntity.getQuestionnaireData())
+ || emptyString.equals(compositionEntity.getQuestionnaireData())
+ || emptyJson.equals(compositionEntity.getQuestionnaireData());
+ }
+
private void updateNullQuestionnaire(CompositionEntity entity,
CompositionEntityType type) {
UploadDataEntity orchestrationTemplate =
orchestrationTemplateDao.getOrchestrationTemplate(vspId, version);
+ if(Objects.isNull(orchestrationTemplate.getValidationData())
+ || !JsonUtil.isValidJson(orchestrationTemplate.getValidationData())){
+ return Optional.empty();
+ }
+
OldValidationStructureTree oldValidationStructureTree;
try{
oldValidationStructureTree =
package org.openecomp.sdc.healing.healers;
+import org.apache.commons.collections4.CollectionUtils;
import org.openecomp.sdc.common.utils.SdcCommon;
import org.openecomp.sdc.healing.interfaces.Healer;
import org.openecomp.sdc.logging.api.Logger;
import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDaoFactory;
import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
import org.openecomp.sdc.versioning.dao.types.Version;
+import org.openecomp.sdc.versioning.types.VersionInfo;
import java.util.ArrayList;
import java.util.List;
VendorLicenseModelEntity vlm = vendorLicenseModel.getVendorLicenseModel();
String vlmId = vlm.getId();
- Version vlmVersion = vlm.getVersion();
+ Version vlmVersion = getLatestFinalVlmVersion(vendorLicenseModel.getVersionInfo());
List<LicenseAgreementEntity> laList =
new ArrayList<>(
vspDetails.setVlmVersion(vlmVersion);
- vspDetails.setLicenseAgreement(laList.get(0).getId());
- vspDetails.setFeatureGroups(new ArrayList<>(laList.get(0).getFeatureGroupIds()));
- vspInfoDao.update(vspDetails);
+ if(CollectionUtils.isNotEmpty(laList)) {
+ vspDetails.setLicenseAgreement(laList.get(0).getId());
+ vspDetails.setFeatureGroups(new ArrayList<>(laList.get(0).getFeatureGroupIds()));
+ }
+ vspInfoDao.update(vspDetails);
return vspDetails;
}
+
+ private Version getLatestFinalVlmVersion(VersionInfo versionInfo){
+ return versionInfo.getActiveVersion().isFinal() ? versionInfo.getActiveVersion()
+ : versionInfo.getLatestFinalVersion();
+ }
}
Optional<String> jsonFileDataStructure =
orchestrationTemplateCandidateDataDao.getStructure(vspId, version);
- if (jsonFileDataStructure.isPresent()) {
+ if (jsonFileDataStructure.isPresent()
+ && JsonUtil.isValidJson(jsonFileDataStructure.get())) {
mdcDataDebugMessage.debugExitMessage("VSP Id", vspId);
return Optional
.of(JsonUtil.json2Object(jsonFileDataStructure.get(), FilesDataStructure.class));