[VOL-3148] Only one meter creation is attempted for a given bandwidth profile.
Achieved through coordination of subscribers and meters.
Change-Id: I0377633a4ff5f34e817ec53382431d4a74d974c1
diff --git a/app/src/main/java/org/opencord/olt/impl/OltMeterService.java b/app/src/main/java/org/opencord/olt/impl/OltMeterService.java
index 3e3962c..80aae4a 100644
--- a/app/src/main/java/org/opencord/olt/impl/OltMeterService.java
+++ b/app/src/main/java/org/opencord/olt/impl/OltMeterService.java
@@ -157,6 +157,8 @@
}
void addMeterIdToBpMapping(DeviceId deviceId, MeterId meterId, String bandwidthProfile) {
+ log.debug("adding bp {} to meter {} mapping for device {}",
+ bandwidthProfile, meterId, deviceId);
bpInfoToMeter.put(bandwidthProfile, MeterKey.key(deviceId, meterId));
}
@@ -177,8 +179,8 @@
meterKeyForDevice.get().meterId(), bandwidthProfile);
return meterKeyForDevice.get().meterId();
} else {
- log.warn("Bandwidth profile '{}' is not currently mapped to a meter",
- bandwidthProfile);
+ log.warn("Bandwidth Profile '{}' is not currently mapped to a meter in {}",
+ bandwidthProfile, bpInfoToMeter.get(bandwidthProfile).value());
return null;
}
}
@@ -215,6 +217,9 @@
.withContext(new MeterContext() {
@Override
public void onSuccess(MeterRequest op) {
+ log.debug("Meter {} is installed on the device {}",
+ meterId, deviceId);
+ addMeterIdToBpMapping(deviceId, meterIdRef.get(), bpInfo.id());
meterFuture.complete(null);
}
@@ -232,7 +237,6 @@
Meter meter = meterService.submit(meterRequest);
meterIdRef.set(meter.id());
- addMeterIdToBpMapping(deviceId, meterIdRef.get(), bpInfo.id());
log.info("Meter is created. Meter Id {}", meter.id());
return meter.id();
}