Fix empty interfaces and operations 97/132497/1
authorMichaelMorris <michael.morris@est.tech>
Mon, 28 Nov 2022 15:23:52 +0000 (15:23 +0000)
committerMichael Morris <michael.morris@est.tech>
Mon, 28 Nov 2022 17:30:34 +0000 (17:30 +0000)
Signed-off-by: MichaelMorris <michael.morris@est.tech>
Issue-ID: SDC-4281
Change-Id: I53bd54fea0aca3540dafebc9360fd305dd56128d

catalog-be/src/main/java/org/openecomp/sdc/be/tosca/InterfacesOperationsConverter.java

index 54e61da..3650422 100644 (file)
@@ -273,12 +273,16 @@ public class InterfacesOperationsConverter {
         final Map<String, OperationDataDefinition> operations = interfaceDefinition.getOperations();
         final Map<String, Object> toscaOperationMap = new HashMap<>();
         for (final Entry<String, OperationDataDefinition> operationEntry : operations.entrySet()) {
-            final ToscaLifecycleOperationDefinition toscaLifecycleOperationDefinition = new ToscaLifecycleOperationDefinition();
-            handleInterfaceOperationImplementation(component, componentInstance, isAssociatedComponent, operationEntry.getValue(),
-                toscaLifecycleOperationDefinition, dataTypes);
-            toscaLifecycleOperationDefinition.setDescription(operationEntry.getValue().getDescription());
-            fillToscaOperationInputs(operationEntry.getValue(), dataTypes, toscaLifecycleOperationDefinition);
-            toscaOperationMap.put(operationEntry.getValue().getName(), toscaLifecycleOperationDefinition);
+            if (operationHasAnImplementation(operationEntry.getValue())) {
+                final ToscaLifecycleOperationDefinition toscaLifecycleOperationDefinition = new ToscaLifecycleOperationDefinition();
+                handleInterfaceOperationImplementation(component, componentInstance, isAssociatedComponent, operationEntry.getValue(),
+                    toscaLifecycleOperationDefinition, dataTypes);
+                if (StringUtils.isNotEmpty(operationEntry.getValue().getDescription())) {
+                    toscaLifecycleOperationDefinition.setDescription(operationEntry.getValue().getDescription());
+                }
+                fillToscaOperationInputs(operationEntry.getValue(), dataTypes, toscaLifecycleOperationDefinition);
+                toscaOperationMap.put(operationEntry.getValue().getName(), toscaLifecycleOperationDefinition);
+            }
         }
         toscaInterfaceDefinition.setOperations(toscaOperationMap);
         final Map<String, Object> interfaceInputMap = createInterfaceInputMap(interfaceDefinition, dataTypes);
@@ -294,6 +298,10 @@ public class InterfacesOperationsConverter {
         interfaceDefinitionAsMap.putAll(operationsMap);
         toscaInterfaceDefinitions.put(getLastPartOfName(interfaceType), interfaceDefinitionAsMap);
     }
+    
+    private boolean operationHasAnImplementation(OperationDataDefinition operation) {
+        return operation.getImplementation() != null && StringUtils.isNotEmpty(operation.getImplementation().getArtifactName()) && !operation.getImplementation().getArtifactName().equals("''");
+    }
 
     private void handleInterfaceOperationImplementation(final Component component, final ComponentInstance componentInstance,
                                                         final boolean isAssociatedComponent,