public class AaiInterfaceRulesHandler implements RuleHandlerInterface {
private static final EELFLogger log = EELFManager.getInstance().getLogger(AaiInterfaceRulesHandler.class);
+ private static final String STR_RETURNING_VALUES = "Returning values: ";
+ private static final String STR_VNF_INFO_VM = "tmp.vnfInfo.vm[";
+
private Parameter parameters;
private SvcLogicContext context;
private AaiVnfInfo vnfInfoData;
}
@Override
- public void processRule() throws IllegalStateException {
+ public void processRule() {
String fn = "AaiInterfaceIpAddressHandler.processRule";
log.info(fn + "Processing rule :" + parameters.getRuleType());
if (null == filterKeys) {
continue;
}
-
- if (StringUtils.isNotBlank(filterKeys.getUniqueKeyName())) {
- respKeys.setUniqueKeyName(filterKeys.getUniqueKeyName());
- }
- if (StringUtils.isNotBlank(filterKeys.getUniqueKeyValue())) {
- respKeys.setUniqueKeyValue(filterKeys.getUniqueKeyValue());
- }
if (StringUtils.isNotBlank(filterKeys.getFieldKeyName())) {
respKeys.setFieldKeyName(filterKeys.getFieldKeyName());
}
- if (StringUtils.isNotBlank(filterKeys.getFilterByField())) {
- respKeys.setFilterByField(filterKeys.getFilterByField());
- }
- if (StringUtils.isNotBlank(filterKeys.getFilterByValue())) {
- respKeys.setFilterByValue(filterKeys.getFilterByValue());
- }
+ trySetUniqueKey(respKeys, filterKeys);
+ trySetFilters(respKeys, filterKeys);
}
-
processKeys(respKeys, parameters.getName());
}
- public void processKeys(ResponseKey filterKey, String aaiKey) {
+ private void trySetFilters(ResponseKey respKeys, ResponseKey filterKeys) {
+ if (StringUtils.isNotBlank(filterKeys.getFilterByField())) {
+ respKeys.setFilterByField(filterKeys.getFilterByField());
+ }
+ if (StringUtils.isNotBlank(filterKeys.getFilterByValue())) {
+ respKeys.setFilterByValue(filterKeys.getFilterByValue());
+ }
+ }
+
+ private void trySetUniqueKey(ResponseKey respKeys, ResponseKey filterKeys) {
+ if (StringUtils.isNotBlank(filterKeys.getUniqueKeyName())) {
+ respKeys.setUniqueKeyName(filterKeys.getUniqueKeyName());
+ }
+ if (StringUtils.isNotBlank(filterKeys.getUniqueKeyValue())) {
+ respKeys.setUniqueKeyValue(filterKeys.getUniqueKeyValue());
+ }
+ }
+
+ private void processKeys(ResponseKey filterKey, String aaiKey) {
String fn = "AaiInterfaceRulesHandler.processKeys()::";
log.info(fn + "processing for " + aaiKey);
- String values = new String();
- JSONObject aaiKeyValues = null;
+ String values = "";
+ JSONObject aaiKeyValues;
log.info("Aai Data in Context : " + context.getAttribute(AaiClientConstant.AAI_KEY_VALUES));
if (context.getAttribute(AaiClientConstant.AAI_KEY_VALUES) != null) {
aaiKeyValues = new JSONObject(context.getAttribute(AaiClientConstant.AAI_KEY_VALUES));
}
aaiKeyValues.put(aaiKey, values);
context.setAttribute(AaiClientConstant.AAI_KEY_VALUES, aaiKeyValues.toString());
- return;
}
private String getVServerDetailsFromContext(String fieldKeyName, String filterByField, String filterByValue) {
String fn = "AaiInterfaceRulesHander::getVServerDetailsFromContext():";
- String values = "";
+ StringBuilder values = new StringBuilder("");
log.info(fn + "FieldKeyName:" + fieldKeyName + " FilterByName:" + filterByField + " FilterByValue:"
+ filterByValue);
if (!StringUtils.equalsIgnoreCase(fieldKeyName, "vserver-name")) {
- log.info(fn + "Returning values:" + values);
- return values;
+ log.info(fn + STR_RETURNING_VALUES + values);
+ return values.toString();
}
- if (StringUtils.isNotEmpty(filterByField)
- && StringUtils.isNotEmpty(filterByValue)) {
+ if (validateFilters(filterByField, filterByValue)) {
int vmIndex = -1;
for (AaiVmInfo vm : vnfInfoData.getVmInfo()) {
vmIndex++;
- if (!StringUtils.equalsIgnoreCase(filterByField, "vm-number")) {
- continue;
- }
-
int vmNumber = Integer.parseInt(filterByValue);
- if (vmNumber != vmIndex) {
+ if (!StringUtils.equalsIgnoreCase(filterByField, "vm-number") || vmNumber != vmIndex) {
continue;
}
-
- if (StringUtils.isBlank(values)) {
- values = vm.getVserverName();
+ if (StringUtils.isBlank(values.toString())) {
+ values = new StringBuilder(vm.getVserverName());
} else {
- values = values + "," + vm.getVserverName();
+ values.append(",").append(vm.getVserverName());
}
}
} else {
for (AaiVmInfo vm : vnfInfoData.getVmInfo()) {
- if (StringUtils.isBlank(values)) {
- values = vm.getVserverName();
+ if (StringUtils.isBlank(values.toString())) {
+ values = new StringBuilder(vm.getVserverName());
} else {
- values = values + "," + vm.getVserverName();
+ values.append(",").append(vm.getVserverName());
}
}
}
+ log.info(fn + STR_RETURNING_VALUES + values);
+ return values.toString();
+ }
- log.info(fn + "Returning values:" + values);
- return values;
+ private boolean validateFilters(String filterByField, String filterByValue) {
+ return StringUtils.isNotEmpty(filterByField) && StringUtils.isNotEmpty(filterByValue);
}
//split from getVnfcDetailsFromContext
private String add2ValuesIpaddressV4OamVipNotEmpty(String values, String filterByField, String filterByValue) {
+ StringBuilder builder = new StringBuilder(values);
for (AaiVmInfo vm : vnfInfoData.getVmInfo()) {
+
for (AaiVnfcInfo vnfcInfo : vm.getVnfcInfo()) {
if (!StringUtils.equalsIgnoreCase(filterByField, "vnfc-function-code")
|| !StringUtils.equalsIgnoreCase(filterByValue, vnfcInfo.getVnfcFunctionCode())) {
continue;
}
- if (StringUtils.isBlank(values)) {
- values = vnfcInfo.getVnfcOamIpAddress();
+ if (StringUtils.isBlank(builder.toString())) {
+ builder = new StringBuilder(vnfcInfo.getVnfcOamIpAddress());
} else {
- values = values + "," + vnfcInfo.getVnfcOamIpAddress();
+ builder.append(",").append(vnfcInfo.getVnfcOamIpAddress());
}
}
-
}
- return values;
+ return builder.toString();
}
//split from getVnfcDetailsFromContext
private String add2ValuesIpaddressV4OamVipEmpty(String values, String filterByField, String filterByValue) {
+ StringBuilder builder = new StringBuilder(values);
for (AaiVmInfo vm : vnfInfoData.getVmInfo()) {
for (AaiVnfcInfo vnfcInfo : vm.getVnfcInfo()) {
- if (StringUtils.isBlank(values)) {
- values = vnfcInfo.getVnfcOamIpAddress();
+ if (StringUtils.isBlank(builder.toString())) {
+ builder = new StringBuilder(vnfcInfo.getVnfcOamIpAddress());
} else {
- values = values + "," + vnfcInfo.getVnfcOamIpAddress();
+ builder.append(",").append(vnfcInfo.getVnfcOamIpAddress());
}
}
}
- return values;
+ return builder.toString();
}
//split from getVnfcDetailsFromContext
private String add2ValuesVnfcNameNotEmpty(String values, String filterByField, String filterByValue) {
+ StringBuilder builder = new StringBuilder(values);
for (AaiVmInfo vm : vnfInfoData.getVmInfo()) {
for (AaiVnfcInfo vnfcInfo : vm.getVnfcInfo()) {
if (!StringUtils.equalsIgnoreCase(filterByField, "vnfc-function-code")
|| !StringUtils.equalsIgnoreCase(filterByValue, vnfcInfo.getVnfcFunctionCode())) {
continue;
}
-
- if (StringUtils.isBlank(values)) {
- values = vnfcInfo.getVnfcName();
+ if (StringUtils.isBlank(builder.toString())) {
+ builder = new StringBuilder(vnfcInfo.getVnfcName());
} else {
- values = values + "," + vnfcInfo.getVnfcName();
+ builder.append(",").append(vnfcInfo.getVnfcName());
}
}
-
}
- return values;
+ return builder.toString();
}
//split from getVnfcDetailsFromContext
private String add2ValuesVnfcNameEmpty(String values, String filterByField, String filterByValue) {
for (AaiVmInfo vm : vnfInfoData.getVmInfo()) {
+ StringBuilder builder = new StringBuilder(values);
for (AaiVnfcInfo vnfcInfo : vm.getVnfcInfo()) {
- if (StringUtils.isBlank(values)) {
- values = vnfcInfo.getVnfcName();
+ if (StringUtils.isBlank(builder.toString())) {
+ builder = new StringBuilder(vnfcInfo.getVnfcName());
} else {
- values = values + "," + vnfcInfo.getVnfcName();
+ builder.append(",").append(vnfcInfo.getVnfcName());
}
}
}
log.info(fn + "FieldKeyName:" + fieldKeyName + " FilterByField:" + filterByField + " FilterByValue:"
+ filterByValue);
if (StringUtils.equalsIgnoreCase(fieldKeyName, "ipaddress-v4-oam-vip")) {
- if (StringUtils.isNotEmpty(filterByField) && StringUtils.isNotEmpty(filterByValue)) {
+ if (validateFilters(filterByField, filterByValue)) {
values = add2ValuesIpaddressV4OamVipNotEmpty(values, filterByField, filterByValue);
} else {
values = add2ValuesIpaddressV4OamVipEmpty(values, filterByField, filterByValue);
values = add2ValuesVnfcNameEmpty(values, filterByField, filterByValue);
}
}
- log.info(fn + "Returning values:" + values);
+ log.info(fn + STR_RETURNING_VALUES + values);
return values;
}
log.info("getVnfDetailsFromContext::" + fieldKeyName);
String values = "";
if (StringUtils.equalsIgnoreCase(fieldKeyName, "vnf-name")) {
- String vnfName = context.getAttribute("tmp.vnfInfo.vnf.vnf-name");
- values = vnfName;
+ values = context.getAttribute("tmp.vnfInfo.vnf.vnf-name");
}
if (StringUtils.equalsIgnoreCase(fieldKeyName, "ipv4-oam-ipaddress")) {
- String ipv4OamAddress = context.getAttribute("tmp.vnfInfo.vnf.ipv4-oam-address");
- values = ipv4OamAddress;
+ values = context.getAttribute("tmp.vnfInfo.vnf.ipv4-oam-address");
}
return values;
}
return vnfInfoData;
}
- public void setVnfInfoData(AaiVnfInfo vnfInfoData) {
+ private void setVnfInfoData(AaiVnfInfo vnfInfoData) {
this.vnfInfoData = vnfInfoData;
}
- public AaiVnfInfo generateAaiVnfInfoData() {
+ private AaiVnfInfo generateAaiVnfInfoData() {
log.info("AaiInterfaceRulesHandlerImpl:generateAaiVnfInfoData(): Printing variables in context");
for (Object key : context.getAttributeKeySet()) {
log.debug("generateAaiVnfInfoData():: " + parmName + "=" + parmValue);
}
-
String vmcount = context.getAttribute("tmp.vnfInfo.vm-count");
int vmCount = 0;
if (!StringUtils.isBlank(vmcount)) {
log.info("generateAaiVnfInfoData::" + "vmCount:" + vmCount);
AaiVnfInfo vnfInfo = new AaiVnfInfo();
vnfInfo.setVnfName("vnf-name");
- ArrayList<AaiVmInfo> vmList = new ArrayList<AaiVmInfo>();
+ ArrayList<AaiVmInfo> vmList = new ArrayList<>();
for (int i = 0; i < vmCount; i++) {
AaiVmInfo vm = new AaiVmInfo();
- String vnfcCountStr = context.getAttribute("tmp.vnfInfo.vm[" + i + "].vnfc-count");
+ String vnfcCountStr = context.getAttribute(STR_VNF_INFO_VM + i + "].vnfc-count");
int vnfcCount = Integer.parseInt(vnfcCountStr);
- ArrayList<AaiVnfcInfo> vnfcInfoList = new ArrayList<AaiVnfcInfo>();
+ ArrayList<AaiVnfcInfo> vnfcInfoList = new ArrayList<>();
for (int j = 0; j < vnfcCount; j++) {
AaiVnfcInfo vnfcInfo = new AaiVnfcInfo();
- vnfcInfo.setVnfcName(context.getAttribute("tmp.vnfInfo.vm[" + i + "].vnfc-name"));
- vnfcInfo.setVnfcFunctionCode(context.getAttribute("tmp.vnfInfo.vm[" + i + "].vnfc-function-code"));
+ vnfcInfo.setVnfcName(context.getAttribute(STR_VNF_INFO_VM + i + "].vnfc-name"));
+ vnfcInfo.setVnfcFunctionCode(context.getAttribute(STR_VNF_INFO_VM + i + "].vnfc-function-code"));
vnfcInfo.setVnfcOamIpAddress(
- context.getAttribute("tmp.vnfInfo.vm[" + i + "].vnfc-ipaddress-v4-oam-vip"));
+ context.getAttribute(STR_VNF_INFO_VM + i + "].vnfc-ipaddress-v4-oam-vip"));
vnfcInfoList.add(vnfcInfo);
}
vm.setVnfcInfo(vnfcInfoList);
- vm.setVserverId(context.getAttribute("tmp.vnfInfo.vm[" + i + "].vserver-id"));
- vm.setVserverName(context.getAttribute("tmp.vnfInfo.vm[" + i + "].vserver-name"));
+ vm.setVserverId(context.getAttribute(STR_VNF_INFO_VM + i + "].vserver-id"));
+ vm.setVserverName(context.getAttribute(STR_VNF_INFO_VM + i + "].vserver-name"));
vmList.add(vm);
}
vnfInfo.setVmInfo(vmList);
private static final EELFLogger log = EELFManager.getInstance().getLogger(InstarResponseHandlerImpl.class);
- ResponseKey resKey = null;
- SvcLogicContext ctxt = null;
+ private ResponseKey resKey = null;
+ private SvcLogicContext ctxt = null;
public InstarResponseHandlerImpl(ResponseKey filterKeys, SvcLogicContext context) {
this.resKey = filterKeys;
this.ctxt = context;
-
}
@Override
log.info(fn + "Appc Filter Key :" + ctxt.getAttribute(InstarClientConstant.VNF_NAME) + resKey
.getUniqueKeyValue());
- if (res.getString(InstarClientConstant.FDQN) != null &&
- res.getString(InstarClientConstant.FDQN)
- .equalsIgnoreCase(ctxt.getAttribute(InstarClientConstant.VNF_NAME) + resKey.getUniqueKeyValue())) {
- if (resKey.getFieldKeyName().equals(InstarClientConstant.V4_ADDRESS)) {
- instarKeyValues.put(instarKey, res.getString(InstarClientConstant.INSTAR_V4_ADDRESS));
- } else if (resKey.getFieldKeyName().equals(InstarClientConstant.INSTAR_V4_SUBNET)) {
- instarKeyValues.put(instarKey, res.getString(InstarClientConstant.INSTAR_V4_SUBNET));
- } else if (resKey.getFieldKeyName().equals(InstarClientConstant.INSTAR_V4_DEFAULT_GATEWAY)) {
- instarKeyValues.put(instarKey, res.getString(InstarClientConstant.INSTAR_V4_DEFAULT_GATEWAY));
- } else if (resKey.getFieldKeyName().equals(InstarClientConstant.V6_ADDRESS)) {
- instarKeyValues.put(instarKey, res.getString(InstarClientConstant.INSTAR_V6_ADDRESS));
- } else if (resKey.getFieldKeyName().equals(InstarClientConstant.INSTAR_V6_SUBNET)) {
- instarKeyValues.put(instarKey, res.getString(InstarClientConstant.INSTAR_V6_SUBNET));
- } else if (resKey.getFieldKeyName().equals(InstarClientConstant.INSTAR_V6_DEFAULT_GATEWAY)) {
- instarKeyValues.put(instarKey, res.getString(InstarClientConstant.INSTAR_V6_DEFAULT_GATEWAY));
+ if (hasValidFdqn(res)) {
+ switch (resKey.getFieldKeyName()) {
+ case InstarClientConstant.V4_ADDRESS:
+ instarKeyValues.put(instarKey, res.getString(InstarClientConstant.INSTAR_V4_ADDRESS));
+ break;
+ case InstarClientConstant.INSTAR_V4_SUBNET:
+ instarKeyValues.put(instarKey, res.getString(InstarClientConstant.INSTAR_V4_SUBNET));
+ break;
+ case InstarClientConstant.INSTAR_V4_DEFAULT_GATEWAY:
+ instarKeyValues.put(instarKey, res.getString(InstarClientConstant.INSTAR_V4_DEFAULT_GATEWAY));
+ break;
+ case InstarClientConstant.V6_ADDRESS:
+ instarKeyValues.put(instarKey, res.getString(InstarClientConstant.INSTAR_V6_ADDRESS));
+ break;
+ case InstarClientConstant.INSTAR_V6_SUBNET:
+ instarKeyValues.put(instarKey, res.getString(InstarClientConstant.INSTAR_V6_SUBNET));
+ break;
+ case InstarClientConstant.INSTAR_V6_DEFAULT_GATEWAY:
+ instarKeyValues.put(instarKey, res.getString(InstarClientConstant.INSTAR_V6_DEFAULT_GATEWAY));
+ break;
+ default:
+ break;
}
break;
}
return instarKeyValues;
}
+
+ private boolean hasValidFdqn(JSONObject res) {
+ return res.getString(InstarClientConstant.FDQN) != null &&
+ res.getString(InstarClientConstant.FDQN)
+ .equalsIgnoreCase(ctxt.getAttribute(InstarClientConstant.VNF_NAME) + resKey.getUniqueKeyValue());
+ }
}
import com.att.eelf.configuration.EELFLogger;
import com.att.eelf.configuration.EELFManager;
+import java.io.IOException;
import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import org.onap.appc.instar.interfaces.ResponseHandlerInterface;
import org.onap.appc.instar.interfaces.RestClientInterface;
import org.onap.appc.instar.interfaces.RuleHandlerInterface;
}
@Override
- public void processRule() throws Exception {
+ public void processRule() throws InstarResponseException, IOException {
String fn = "InterfaceIpAddressHandler.processRule";
log.info(fn + "Processing rule :" + parameters.getRuleType());
String operationName;
- RestClientInterface restClient = null;
- ResponseHandlerInterface responseHandler = null;
+ RestClientInterface restClient;
+ ResponseHandlerInterface responseHandler;
List<ResponseKey> responseKeyList = parameters.getResponseKeys();
- if (responseKeyList != null && responseKeyList.size() > 0) {
+ if (responseKeyList != null && !responseKeyList.isEmpty()) {
for (ResponseKey filterKeys : responseKeyList) {
- //response.setUniqueKeyValue(response.getUniqueKeyValue()+ context.getAttribute(InstarClientConstant.VNF_NAME));
- switch (parameters.getSource()) {
- case InstarClientConstant.SOURCE_SYSTEM_INSTAR:
- restClient = new InstarRestClientImpl(createInstarRequestData(context));
- responseHandler = new InstarResponseHandlerImpl(filterKeys, context);
- operationName = "getIpAddressByVnf";
- break;
- default:
- throw new Exception("No Client registered for : " + parameters.getSource());
+ if (parameters.getSource().equals(InstarClientConstant.SOURCE_SYSTEM_INSTAR)) {
+ restClient = new InstarRestClientImpl(createInstarRequestData(context));
+ responseHandler = new InstarResponseHandlerImpl(filterKeys, context);
+ operationName = "getIpAddressByVnf";
+ } else {
+ throw new InstarResponseException("No Client registered for : " + parameters.getSource());
}
responseHandler.processResponse(restClient.sendRequest(operationName), parameters.getName());
}
} else {
- throw new Exception("NO response Keys set for : " + parameters.getRuleType());
+ throw new InstarResponseException("NO response Keys set for : " + parameters.getRuleType());
}
}
- private HashMap<String, String> createInstarRequestData(SvcLogicContext ctxt) {
- HashMap<String, String> requestParams = new HashMap<String, String>();
+ private Map<String, String> createInstarRequestData(SvcLogicContext ctxt) {
+ HashMap<String, String> requestParams = new HashMap<>();
requestParams.put(InstarClientConstant.VNF_NAME, ctxt.getAttribute(InstarClientConstant.VNF_NAME));
return requestParams;
}