Add DB update support for IPAM interaction
[ccsdk/sli/adaptors.git] / netbox-client / provider / src / main / java / org / onap / ccsdk / sli / adaptors / netbox / api / NetboxClient.java
index 57d727a..e11fe8b 100644 (file)
  */
 package org.onap.ccsdk.sli.adaptors.netbox.api;
 
+import java.sql.SQLException;
 import org.onap.ccsdk.sli.adaptors.netbox.model.IPAddress;
 import org.onap.ccsdk.sli.adaptors.netbox.model.Prefix;
 
+/**
+ * This client is meant to interact both with the IPAM system, and the SDNC DB, in order to provide, at any time,
+ * an up to date status of the assigned resources.
+ */
 public interface NetboxClient {
 
     /**
-     * Assign next available IP in prefix.
+     * Assign next available IP in prefix and store it in the SDNC database, table IPAM_IP_ASSIGNEMENT.
      *
      * @param prefix The prefix from which to get next available IP.
+     * @param serviceInstanceId The service instance ID uniquely identifying the service.
+     * @param vfModuleId The VF module ID uniquely identifying the VF.
      * @return The IPAddress
-     * @throws IpamException If something goes wrong.
+     * @throws IpamException If something goes wrong while communicating with the IPAM system.
+     * @throws SQLException If something goes wrong while communicating with the SDNC DB.
      */
-    IPAddress assign(Prefix prefix) throws IpamException;
+    IPAddress assign(Prefix prefix, String serviceInstanceId, String vfModuleId) throws IpamException, SQLException;
 
     /**
-     * Free the IP.
+     * Release the IP and remove the entry in the SDNC database, table IPAM_IP_ASSIGNEMENT.
      *
      * @param ip The IP to release.
-     * @throws IpamException If something goes wrong.
+     * @param serviceInstanceId The service instance ID uniquely identifying the service.
+     * @param vfModuleId The VF module ID uniquely identifying the VF.
+     * @throws IpamException If something goes wrong while communicating with the IPAM system.
+     * @throws SQLException If something goes wrong while communicating with the SDNC DB.
      */
-    void unassign(IPAddress ip) throws IpamException;
+    void unassign(IPAddress ip, String serviceInstanceId, String vfModuleId) throws IpamException, SQLException;
 }