Prevent failure of unsuccessful AAI delete operation 45/125245/1
authorLukasz Rajewski <lukasz.rajewski@orange.com>
Thu, 21 Oct 2021 22:25:47 +0000 (00:25 +0200)
committerLukasz Rajewski <lukasz.rajewski@orange.com>
Thu, 21 Oct 2021 22:25:47 +0000 (00:25 +0200)
Issue-ID: SO-3404
Signed-off-by: Lukasz Rajewski <lukasz.rajewski@orange.com>
Change-Id: I589600b5b9d0d0fcb5cac95b86b3fdf597c22fe5

so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/rest/CnfAdapterRest.java
so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/util/AaiRepository.java

index 9aaf439..ee8a362 100644 (file)
@@ -140,7 +140,7 @@ public class CnfAdapterRest {
             try {
                 aaiService.aaiUpdate(aaiRequest);
                 callbackResponse.setCompletionStatus(AaiCallbackResponse.CompletionStatus.COMPLETED);
-            } catch (BadResponseException e) {
+            } catch (Exception e) {
                 logger.warn("Failed to create resource in AAI", e);
                 callbackResponse.setCompletionStatus(AaiCallbackResponse.CompletionStatus.FAILED);
                 callbackResponse.setMessage(e.getMessage());
@@ -165,7 +165,7 @@ public class CnfAdapterRest {
             try {
                 aaiService.aaiDelete(aaiRequest);
                 callbackResponse.setCompletionStatus(AaiCallbackResponse.CompletionStatus.COMPLETED);
-            } catch (BadResponseException e) {
+            } catch (Exception e) {
                 logger.warn("Failed to delete resource from AAI", e);
                 callbackResponse.setCompletionStatus(AaiCallbackResponse.CompletionStatus.FAILED);
                 callbackResponse.setMessage(e.getMessage());
index 0531728..6c03757 100644 (file)
@@ -39,8 +39,10 @@ import org.onap.so.adapters.cnf.service.aai.KubernetesResource;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import javax.ws.rs.NotFoundException;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
 import java.util.Optional;
 import java.util.stream.Collectors;
 
@@ -165,6 +167,13 @@ public class AaiRepository implements IAaiRepository {
                         .tenant(aaiRequest.getTenantId())
                         .k8sResource(r.getId());
                 return AAIUriFactory.createResourceUri(k8sResource.build(), aaiRequest.getCloudOwner(), aaiRequest.getCloudRegion(), aaiRequest.getTenantId(), r.getId());
+            }).filter(r -> {
+                if (aaiClient.exists(r))
+                    return true;
+                else {
+                    logger.warn("K8sResource " + r.toString() + "] does not exist in AAI. Skipping delete in AAI");
+                    return false;
+                }
             }).forEach(uri -> getTransaction().delete(uri));
         }
     }