Merge "Migrate CPS to Spring-boot 3.0"
[cps.git] / cps-ncmp-rest / src / main / java / org / onap / cps / ncmp / rest / controller / NetworkCmProxyInventoryController.java
index e9a69b3..87f9d83 100755 (executable)
@@ -1,7 +1,7 @@
 /*
  *  ============LICENSE_START=======================================================
  *  Copyright (C) 2021-2022 Bell Canada
- *  Modifications Copyright (C) 2022 Nordix Foundation
+ *  Modifications Copyright (C) 2022-2023 Nordix Foundation
  *  ================================================================================
  *  Licensed under the Apache License, Version 2.0 (the "License");
  *  you may not use this file except in compliance with the License.
 
 package org.onap.cps.ncmp.rest.controller;
 
+import io.micrometer.core.annotation.Timed;
+import jakarta.validation.Valid;
+import java.util.Collection;
 import java.util.List;
 import java.util.stream.Collectors;
-import javax.validation.Valid;
 import lombok.RequiredArgsConstructor;
 import org.onap.cps.ncmp.api.NetworkCmProxyDataService;
+import org.onap.cps.ncmp.api.models.CmHandleQueryServiceParameters;
 import org.onap.cps.ncmp.api.models.CmHandleRegistrationResponse;
 import org.onap.cps.ncmp.api.models.CmHandleRegistrationResponse.Status;
 import org.onap.cps.ncmp.api.models.DmiPluginRegistrationResponse;
 import org.onap.cps.ncmp.rest.api.NetworkCmProxyInventoryApi;
+import org.onap.cps.ncmp.rest.model.CmHandleQueryParameters;
 import org.onap.cps.ncmp.rest.model.CmHandlerRegistrationErrorResponse;
 import org.onap.cps.ncmp.rest.model.DmiPluginRegistrationErrorResponse;
 import org.onap.cps.ncmp.rest.model.RestDmiPluginRegistration;
@@ -46,12 +50,37 @@ public class NetworkCmProxyInventoryController implements NetworkCmProxyInventor
     private final NetworkCmProxyDataService networkCmProxyDataService;
     private final NcmpRestInputMapper ncmpRestInputMapper;
 
+    @Override
+    public ResponseEntity<List<String>> searchCmHandleIds(final CmHandleQueryParameters cmHandleQueryParameters) {
+        final CmHandleQueryServiceParameters cmHandleQueryServiceParameters = ncmpRestInputMapper
+                .toCmHandleQueryServiceParameters(cmHandleQueryParameters);
+
+        final Collection<String> cmHandleIds = networkCmProxyDataService
+                .executeCmHandleIdSearchForInventory(cmHandleQueryServiceParameters);
+        return ResponseEntity.ok(List.copyOf(cmHandleIds));
+    }
+
+    /**
+     * Get all cm-handle IDs under a registered DMI plugin.
+     *
+     * @param dmiPluginIdentifier DMI plugin identifier
+     * @return list of cm handle IDs
+     */
+    @Override
+    public ResponseEntity<List<String>> getAllCmHandleIdsForRegisteredDmi(final String dmiPluginIdentifier) {
+        final Collection<String> cmHandleIds =
+                networkCmProxyDataService.getAllCmHandleIdsByDmiPluginIdentifier(dmiPluginIdentifier);
+        return ResponseEntity.ok(List.copyOf(cmHandleIds));
+    }
+
     /**
      * Update DMI Plugin Registration (used for first registration also).
      *
      * @param restDmiPluginRegistration the registration data
      */
     @Override
+    @Timed(value = "cps.ncmp.inventory.controller.update",
+        description = "Time taken to handle registration request")
     public ResponseEntity updateDmiPluginRegistration(
         final @Valid RestDmiPluginRegistration restDmiPluginRegistration) {
         final DmiPluginRegistrationResponse dmiPluginRegistrationResponse =
@@ -69,12 +98,12 @@ public class NetworkCmProxyInventoryController implements NetworkCmProxyInventor
         return dmiPluginRegistrationErrorResponse.getFailedCreatedCmHandles().isEmpty()
             && dmiPluginRegistrationErrorResponse.getFailedUpdatedCmHandles().isEmpty()
             && dmiPluginRegistrationErrorResponse.getFailedRemovedCmHandles().isEmpty();
-
     }
 
     private DmiPluginRegistrationErrorResponse getFailureRegistrationResponse(
         final DmiPluginRegistrationResponse dmiPluginRegistrationResponse) {
-        final var dmiPluginRegistrationErrorResponse = new DmiPluginRegistrationErrorResponse();
+        final DmiPluginRegistrationErrorResponse dmiPluginRegistrationErrorResponse =
+            new DmiPluginRegistrationErrorResponse();
         dmiPluginRegistrationErrorResponse.setFailedCreatedCmHandles(
             getFailedResponses(dmiPluginRegistrationResponse.getCreatedCmHandles()));
         dmiPluginRegistrationErrorResponse.setFailedUpdatedCmHandles(
@@ -102,5 +131,3 @@ public class NetworkCmProxyInventoryController implements NetworkCmProxyInventor
     }
 
 }
-
-