Fix 'Import use case fails when interfaces in template do not exist in system'-bug...
[sdc.git] / catalog-be / src / main / java / org / openecomp / sdc / be / components / impl / ServiceImportBusinessLogic.java
index c022304..641e294 100644 (file)
@@ -821,7 +821,7 @@ public class ServiceImportBusinessLogic {
 
             ASDCKpiApi.countCreatedResourcesKPI();
             return service;
-        } catch (ComponentException | StorageException | BusinessLogicException e) {
+        } catch (Exception e) {
             rollback = true;
             serviceImportParseLogic.rollback(inTransaction, service, createdArtifacts, nodeTypesNewCreatedArtifacts);
             throw e;
@@ -2390,23 +2390,22 @@ public class ServiceImportBusinessLogic {
 
                 Map<String, OperationDataDefinition> operations = uploadInterfaceInfo.getOperations();
                 for (Map.Entry<String, OperationDataDefinition> operation : operations.entrySet()) {
-                    OperationDataDefinition templateOperation = currentInterfaceDef.getOperationsMap().get(operation.getKey());
                     OperationDataDefinition instanceOperation = operation.getValue();
+                    OperationDataDefinition templateOperation = currentInterfaceDef.getOperationsMap().getOrDefault(operation.getKey(), new Operation(instanceOperation));
                     //Inputs
                     ListDataDefinition<OperationInputDefinition> instanceInputs = instanceOperation.getInputs();
-                    mergeOperationInputDefinitions(templateOperation.getInputs(), instanceInputs);
                     if (null != instanceInputs) {
+                        mergeOperationInputDefinitions(templateOperation.getInputs(), instanceInputs);
                         component.getProperties()
                             .forEach(property -> instanceInputs.getListToscaDataDefinition().stream()
                                 .filter(instanceInput ->
                                     instanceInput.getToscaFunction() instanceof ToscaGetFunctionDataDefinition &&
                                         property.getName().equals(instanceInput.getToscaFunction() != null ?
-                                            ((ToscaGetFunctionDataDefinition) instanceInput.getToscaFunction()).getPropertyName() :
-                                            null))
+                                            ((ToscaGetFunctionDataDefinition) instanceInput.getToscaFunction()).getPropertyName() : null))
                                 .forEach(oldInput -> oldInput.setType(property.getType()))
                             );
+                        templateOperation.setInputs(instanceInputs);
                     }
-                    templateOperation.setInputs(instanceInputs);
                     //Implementation
                     templateOperation.setImplementation(instanceOperation.getImplementation());
                     //Description