import org.onap.dcaegen2.services.sonhms.model.AnrInput;
import org.onap.dcaegen2.services.sonhms.model.CellPciPair;
import org.onap.dcaegen2.services.sonhms.model.ClusterMap;
+import org.onap.dcaegen2.services.sonhms.model.Flag;
import org.onap.dcaegen2.services.sonhms.model.HoDetails;
import org.onap.dcaegen2.services.sonhms.model.ThreadId;
import org.onap.dcaegen2.services.sonhms.restclient.AsyncResponseBody;
}
MDC.put("logFileName", Thread.currentThread().getName());
- log.debug("Starting child thread");
+ log.info("Starting child thread");
StateOof oof = new StateOof(childStatusUpdate);
ClusterUtils clusterUtils = new ClusterUtils();
// update cluster in DB
clusterUtils.updateCluster(cluster);
+ collisionConfusionResult = detect.detectCollisionConfusion(cluster);
}
- collisionConfusionResult = detect.detectCollisionConfusion(cluster);
}
ArrayList<String> cellidList = new ArrayList<>();
cellidList.add(cell);
}
UUID transactionId;
+
+ Flag policyTriggerFlag = BeanUtil.getBean(Flag.class);
+ while (policyTriggerFlag.getHolder().equals("PM")) {
+ Thread.sleep(100);
+ }
+ policyTriggerFlag.setHolder("CHILD");
+ policyTriggerFlag.setNumChilds(policyTriggerFlag.getNumChilds() + 1);
+
Either<List<AnrInput>, Integer> anrTriggerResponse = checkAnrTrigger(cellidList);
if (anrTriggerResponse.isRight()) {
- if (anrTriggerResponse.right().value() == 404)
+
+ if (anrTriggerResponse.right().value() == 404) {
log.debug("No poor neighbors found");
- else if (anrTriggerResponse.right().value() == 500)
+ } else if (anrTriggerResponse.right().value() == 500) {
log.debug("Failed to fetch HO details from DB ");
+ }
+
transactionId = oof.triggerOof(cellidList, networkId, new ArrayList<>());
} else {
List<AnrInput> anrInputList = anrTriggerResponse.left().value();
+ log.info("Trigger oof for joint optimization");
transactionId = oof.triggerOof(cellidList, networkId, anrInputList);
}
long childThreadId = Thread.currentThread().getId();
AsyncResponseBody asynResponseBody = ChildThread.getResponseMap().get(childThreadId);
+
+
try {
childUtils.sendToPolicy(asynResponseBody);
+ policyTriggerFlag.setNumChilds(policyTriggerFlag.getNumChilds() - 1);
+ if (policyTriggerFlag.getNumChilds() == 0) {
+ policyTriggerFlag.setHolder("NONE");
+ }
+
+
} catch (ConfigDbNotFoundException e1) {
log.debug("Config DB is unreachable: {}", e1);
}
return clusterMapList;
}
+ /**
+ * Check if ANR to be triggered.
+ */
public Either<List<AnrInput>, Integer> checkAnrTrigger(List<String> cellidList) {
List<AnrInput> anrInputList = new ArrayList<>();