private static final Logger LOG =
LoggerFactory.getInstance().getLogger(CrossEntityReferenceSynchronizer.class);
-
+
+ private static final String SERVICE_INSTANCE = "service-instance";
private Deque<SelfLinkDescriptor> selflinks;
private Deque<RetryCrossEntitySyncContainer> retryQueue;
private Map<String, Integer> retryLimitTracker;
this.esEntityStats.initializeCountersFromOxmEntityDescriptors(
oxmModelLoader.getCrossReferenceEntityDescriptors());
this.aaiConfig = aaiConfig;
+ this.syncDurationInMs = -1;
}
/* (non-Javadoc)
*/
@Override
public OperationState doSync() {
+ this.syncDurationInMs = -1;
String txnID = NodeUtils.getRandomTxnId();
MdcContext.initialize(txnID, "CrossEntitySynchronizer", "", "Sync", "");
*/
@Override
public String getStatReport(boolean showFinalReport) {
- return this.getStatReport(System.currentTimeMillis() - syncStartedTimeStampInMs,
- showFinalReport);
+ syncDurationInMs = System.currentTimeMillis() - syncStartedTimeStampInMs;
+ return getStatReport(syncDurationInMs, showFinalReport);
}
/* (non-Javadoc)
* Build generic-query to query child instance self-link from AAI
*/
List<String> orderedQueryKeyParams = new ArrayList<String>();
- orderedQueryKeyParams.add(parentEntityQueryString);
- orderedQueryKeyParams.add(childEntityQueryKeyString);
+ if (SERVICE_INSTANCE.equals(childEntityType)) {
+ orderedQueryKeyParams.clear();
+ orderedQueryKeyParams.add(childEntityQueryKeyString);
+ } else {
+ orderedQueryKeyParams.add(parentEntityQueryString);
+ orderedQueryKeyParams.add(childEntityQueryKeyString);
+ }
String genericQueryStr = null;
try {
genericQueryStr = aaiDataProvider.getGenericQueryForSelfLink(childEntityType, orderedQueryKeyParams);
if (genericQueryStr != null) {
-
+ aaiWorkOnHand.incrementAndGet();
OperationResult aaiQueryResult = aaiDataProvider.queryActiveInventoryWithRetries(
genericQueryStr, "application/json",
aaiConfig.getAaiRestConfig().getNumRequestRetries());
-
+ aaiWorkOnHand.decrementAndGet();
if (aaiQueryResult!= null && aaiQueryResult.wasSuccessful()) {
Collection<JsonNode> entityLinks = new ArrayList<JsonNode>();
parentCrossEntityReferenceAttributeValue);
}
- icer.setLink(selfLink);
+ icer.setLink(ActiveInventoryConfig.extractResourcePath(selfLink));
icer.deriveFields();