[ONOS-7989] add sync button on roadm GUI view.
Change-Id: I0f27ac6c9c100f54180c490fc043da65ef1225e0
diff --git a/apps/roadm/src/main/java/org/onosproject/roadm/RoadmPortViewMessageHandler.java b/apps/roadm/src/main/java/org/onosproject/roadm/RoadmPortViewMessageHandler.java
index 192eb2e..dea83b0 100644
--- a/apps/roadm/src/main/java/org/onosproject/roadm/RoadmPortViewMessageHandler.java
+++ b/apps/roadm/src/main/java/org/onosproject/roadm/RoadmPortViewMessageHandler.java
@@ -64,6 +64,8 @@
private static final String ROADM_PORTS = "roadmPorts";
private static final String ROADM_SET_TARGET_POWER_REQ = "roadmSetTargetPowerRequest";
private static final String ROADM_SET_TARGET_POWER_RESP = "roadmSetTargetPowerResponse";
+ private static final String ROADM_SYNC_TARGET_POWER_REQ = "roadmSyncTargetPowerRequest";
+ private static final String ROADM_SYNC_TARGET_POWER_RESP = "roadmSyncTargetPowerResp";
private static final String ROADM_SHOW_ITEMS_REQ = "roadmShowPortItemsRequest";
private static final String ROADM_SHOW_ITEMS_RESP = "roadmShowPortItemsResponse";
private static final String ROADM_SET_OPS_MODE_REQ = "roadmSetOpsModeRequest";
@@ -105,7 +107,8 @@
return ImmutableSet.of(new PortTableDataRequestHandler(),
new SetTargetPowerRequestHandler(),
new CreateShowItemsRequestHandler(),
- new CreateOpsModeSetRequestHandler()
+ new CreateOpsModeSetRequestHandler(),
+ new SyncTargetPowerRequestHandler()
);
}
@@ -250,6 +253,28 @@
}
}
+ // Handler for sync-up port target power
+ private final class SyncTargetPowerRequestHandler extends RequestHandler {
+
+ private static final String SYNCED_TARGET_POWER = "Synced target power is %s.";
+ private SyncTargetPowerRequestHandler() {
+ super(ROADM_SYNC_TARGET_POWER_REQ);
+ }
+
+ @Override
+ public void process(ObjectNode payload) {
+ DeviceId deviceId = DeviceId.deviceId(string(payload, RoadmUtil.DEV_ID));
+ PortNumber portNumber = PortNumber.portNumber(payload.get(ID).asLong());
+ Long targetPower = roadmService.syncTargetPortPower(deviceId, portNumber);
+ String power = RoadmUtil.objectToString(targetPower, RoadmUtil.UNKNOWN);
+ ObjectNode rootNode = objectNode();
+ rootNode.put(ID, payload.get(ID).asText())
+ .put(RoadmUtil.VALID, true)
+ .put(RoadmUtil.MESSAGE, String.format(SYNCED_TARGET_POWER, power));
+ sendMessage(ROADM_SYNC_TARGET_POWER_RESP, rootNode);
+ }
+ }
+
// Protection switch operation type and path index
private static final String OPS_ARRAY_INDEX = "index";
private static final String OPS_ARRAY_OPERATION = "operation";