NONRTRIC - Enrichment Coordinator Service, making type availability subscriptions... 02/6702/2
authorPatrikBuhr <patrik.buhr@est.tech>
Thu, 16 Sep 2021 08:44:46 +0000 (10:44 +0200)
committerPatrikBuhr <patrik.buhr@est.tech>
Thu, 16 Sep 2021 09:01:53 +0000 (11:01 +0200)
Bugfix, owner was not considered.

Signed-off-by: PatrikBuhr <patrik.buhr@est.tech>
Issue-ID: NONRTRIC-577
Change-Id: I960f5f9e328ee6c43ea9ef0df5736dcc17201da4

enrichment-coordinator-service/api/ecs-api.json
enrichment-coordinator-service/api/ecs-api.yaml
enrichment-coordinator-service/src/main/java/org/oransc/enrichment/controllers/r1producer/ProducerInfoTypeInfo.java
enrichment-coordinator-service/src/main/java/org/oransc/enrichment/repository/InfoTypeSubscriptions.java
enrichment-coordinator-service/src/test/java/org/oransc/enrichment/ApplicationTest.java

index 982633b..0e8164e 100644 (file)
         "producer_info_type_info": {
             "description": "Information for an Information Type",
             "type": "object",
-            "required": [
-                "info_job_data_schema",
-                "info_type_information"
-            ],
+            "required": ["info_job_data_schema"],
             "properties": {
                 "info_type_information": {
                     "description": "Type specific information for the information type",
index 1900215..3445ede 100644 (file)
@@ -1171,7 +1171,6 @@ components:
     producer_info_type_info:
       required:
       - info_job_data_schema
-      - info_type_information
       type: object
       properties:
         info_type_information:
index b0375c2..311b8a7 100644 (file)
@@ -39,9 +39,9 @@ public class ProducerInfoTypeInfo {
     @Schema(
         name = "info_type_information",
         description = "Type specific information for the information type",
-        required = true)
+        required = false)
     @SerializedName("info_type_information")
-    @JsonProperty(value = "info_type_information", required = true)
+    @JsonProperty(value = "info_type_information", required = false)
     public Object typeSpecificInformation;
 
     public ProducerInfoTypeInfo(Object jobDataSchema, Object typeSpecificInformation) {
index 60fe35f..2d6da4f 100644 (file)
@@ -99,8 +99,7 @@ public class InfoTypeSubscriptions {
     }
 
     public synchronized void put(SubscriptionInfo subscription) {
-        allSubscriptions.put(subscription.getId(), subscription);
-        subscriptionsByOwner.put(subscription.owner, subscription.id, subscription);
+        doPut(subscription);
         storeInFile(subscription);
         logger.debug("Added type status subscription {}", subscription.id);
     }
@@ -259,10 +258,15 @@ public class InfoTypeSubscriptions {
         for (File file : dbDir.listFiles()) {
             String json = Files.readString(file.toPath());
             SubscriptionInfo subscription = gson.fromJson(json, SubscriptionInfo.class);
-            this.allSubscriptions.put(subscription.getId(), subscription);
+            doPut(subscription);
         }
     }
 
+    private void doPut(SubscriptionInfo subscription) {
+        allSubscriptions.put(subscription.getId(), subscription);
+        subscriptionsByOwner.put(subscription.owner, subscription.id, subscription);
+    }
+
     private File getFile(SubscriptionInfo subscription) {
         return getPath(subscription).toFile();
     }
index fa5b7e3..5292d90 100644 (file)
@@ -933,6 +933,7 @@ class ApplicationTest {
 
         InfoTypeSubscriptions restoredSubscriptions = new InfoTypeSubscriptions(this.applicationConfig);
         assertThat(restoredSubscriptions.size()).isEqualTo(1);
+        assertThat(restoredSubscriptions.getSubscriptionsForOwner("owner")).hasSize(1);
 
         // Delete the subscription
         restClient().deleteForEntity(typeSubscriptionUrl() + "/subscriptionId").block();