Bugfix, only one RIC was synched
[nonrtric.git] / policy-agent / src / main / java / org / oransc / policyagent / repository / Ric.java
index e50a98c..fb2e4b9 100644 (file)
@@ -32,19 +32,23 @@ import org.oransc.policyagent.clients.A1Client.A1ProtocolType;
 import org.oransc.policyagent.configuration.RicConfig;
 
 /**
- * Represents the dynamic information about a NearRealtime-RIC.
+ * Represents the dynamic information about a Near-RT RIC.
  */
 public class Ric {
-    private final RicConfig ricConfig;
 
-    private RicState state = RicState.UNDEFINED;
+    @Setter
+    private RicConfig ricConfig;
+    private RicState state = RicState.UNAVAILABLE;
     private Map<String, PolicyType> supportedPolicyTypes = new HashMap<>();
     @Getter
     @Setter
     private A1ProtocolType protocolVersion = A1ProtocolType.UNKNOWN;
 
+    @Getter
+    private final Lock lock = new Lock();
+
     /**
-     * Creates the Ric. Initial state is {@link RicState.NOT_INITIATED}.
+     * Creates the Ric. Initial state is {@link RicState.UNDEFINED}.
      *
      * @param ricConfig The {@link RicConfig} for this Ric.
      */
@@ -74,7 +78,7 @@ public class Ric {
      * @return a vector containing the nodes managed by this Ric.
      */
     public synchronized Collection<String> getManagedElementIds() {
-        return new Vector<>(ricConfig.managedElementIds());
+        return ricConfig.managedElementIds();
     }
 
     /**
@@ -87,26 +91,6 @@ public class Ric {
         return ricConfig.managedElementIds().contains(managedElementId);
     }
 
-    /**
-     * Adds the given node as managed by this Ric.
-     *
-     * @param managedElementId the node to add.
-     */
-    public synchronized void addManagedElement(String managedElementId) {
-        if (!ricConfig.managedElementIds().contains(managedElementId)) {
-            ricConfig.managedElementIds().add(managedElementId);
-        }
-    }
-
-    /**
-     * Removes the given node as managed by this Ric.
-     *
-     * @param managedElementId the node to remove.
-     */
-    public synchronized void removeManagedElement(String managedElementId) {
-        ricConfig.managedElementIds().remove(managedElementId);
-    }
-
     /**
      * Gets the policy types supported by this Ric.
      *
@@ -156,18 +140,23 @@ public class Ric {
     /**
      * Represents the states possible for a Ric.
      */
-    public static enum RicState {
+    public enum RicState {
         /**
-         * The agent view of the agent may be inconsistent.
+         * The agent view of the Ric may be inconsistent.
          */
-        UNDEFINED,
+        UNAVAILABLE,
         /**
          * The normal state. Policies can be configured.
          */
-        IDLE,
+        AVAILABLE,
+        /**
+         * The agent is synchronizing the view of the Ric.
+         */
+        SYNCHRONIZING,
+
         /**
-         * The Ric states are recovered.
+         * A consistency check between the agent and the Ric is done
          */
-        RECOVERING
+        CONSISTENCY_CHECK
     }
 }