2 * Copyright (C) 2018 Bell Canada.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
16 package org.onap.ccsdk.sli.adaptors.netbox.api;
18 import java.sql.SQLException;
19 import org.onap.ccsdk.sli.adaptors.netbox.model.IPAddress;
20 import org.onap.ccsdk.sli.adaptors.netbox.model.Prefix;
23 * This client is meant to interact both with the IPAM system, and the SDNC DB, in order to provide, at any time,
24 * an up to date status of the assigned resources.
26 public interface NetboxClient {
29 * Assign next available IP in prefix and store it in the SDNC database, table IPAM_IP_ASSIGNEMENT.
31 * @param prefix The prefix from which to get next available IP.
32 * @param serviceInstanceId The service instance ID uniquely identifying the service.
33 * @param vfModuleId The VF module ID uniquely identifying the VF.
34 * @return The IPAddress
35 * @throws IpamException If something goes wrong while communicating with the IPAM system.
36 * @throws SQLException If something goes wrong while communicating with the SDNC DB.
38 IPAddress assign(Prefix prefix, String serviceInstanceId, String vfModuleId) throws IpamException, SQLException;
41 * Release the IP and remove the entry in the SDNC database, table IPAM_IP_ASSIGNEMENT.
43 * @param ip The IP to release.
44 * @param serviceInstanceId The service instance ID uniquely identifying the service.
45 * @param vfModuleId The VF module ID uniquely identifying the VF.
46 * @throws IpamException If something goes wrong while communicating with the IPAM system.
47 * @throws SQLException If something goes wrong while communicating with the SDNC DB.
49 void unassign(IPAddress ip, String serviceInstanceId, String vfModuleId) throws IpamException, SQLException;