Updated ROADM UI with Current Input Power
Change-Id: I5fd9c5802d94e6715659486170c15dc7715bd214
diff --git a/apps/roadm/app/src/main/java/org/onosproject/roadm/RoadmPortViewMessageHandler.java b/apps/roadm/app/src/main/java/org/onosproject/roadm/RoadmPortViewMessageHandler.java
index 54d1a59..1a27fd3 100644
--- a/apps/roadm/app/src/main/java/org/onosproject/roadm/RoadmPortViewMessageHandler.java
+++ b/apps/roadm/app/src/main/java/org/onosproject/roadm/RoadmPortViewMessageHandler.java
@@ -25,10 +25,12 @@
import org.onosproject.net.AnnotationKeys;
import org.onosproject.net.ConnectPoint;
import org.onosproject.net.DeviceId;
+import org.onosproject.net.Direction;
import org.onosproject.net.ModulationScheme;
import org.onosproject.net.OchSignal;
import org.onosproject.net.Port;
import org.onosproject.net.PortNumber;
+import org.onosproject.net.behaviour.PowerConfig;
import org.onosproject.net.behaviour.protection.ProtectedTransportEndpointState;
import org.onosproject.net.behaviour.protection.TransportEndpointState;
import org.onosproject.net.device.DeviceService;
@@ -47,6 +49,7 @@
import java.util.Comparator;
import java.util.List;
import java.util.Map;
+import java.util.Optional;
import java.util.Set;
import static org.onosproject.net.Device.Type;
@@ -84,6 +87,7 @@
private static final String GRID = "grid";
private static final String POWER_RANGE = "powerRange";
private static final String CURRENT_POWER = "currentPower";
+ private static final String CURRENT_INPUT_POWER = "currentInputPower";
private static final String TARGET_POWER = "targetPower";
private static final String MODULATION = "modulation";
private static final String HAS_TARGET_POWER = "hasTargetPower";
@@ -91,7 +95,7 @@
private static final String[] COLUMN_IDS = {
ID, REVERSE_PORT, TYPE, NAME, ENABLED, MIN_FREQ, MAX_FREQ, GRID, POWER_RANGE,
- CURRENT_POWER, SERVICE_STATE, TARGET_POWER, MODULATION, HAS_TARGET_POWER
+ CURRENT_POWER, CURRENT_INPUT_POWER, SERVICE_STATE, TARGET_POWER, MODULATION, HAS_TARGET_POWER
};
private RoadmService roadmService;
@@ -159,6 +163,7 @@
.cell(GRID, RoadmUtil.asGHz(channelSpacing))
.cell(POWER_RANGE, getPowerRange(deviceId, portNum))
.cell(CURRENT_POWER, getCurrentPower(deviceId, portNum))
+ .cell(CURRENT_INPUT_POWER, getCurrentInputPower(deviceId, portNum))
.cell(SERVICE_STATE, getPortServiceState(deviceId, portNum))
.cell(MODULATION, getModulation(deviceId, portNum))
.cell(TARGET_POWER, getTargetPower(deviceId, portNum))
@@ -217,6 +222,17 @@
return RoadmUtil.objectToString(currentPower, RoadmUtil.UNKNOWN);
}
+ // Returns the current input power as a string, Unknown if no value can be found.
+ private String getCurrentInputPower(DeviceId deviceId, PortNumber portNumber) {
+ PowerConfig powerConfig = deviceService.getDevice(deviceId).as(PowerConfig.class);
+ Optional<Double> currentInputPower = powerConfig.currentInputPower(portNumber, Direction.ALL);
+ Double inputPowerVal = null;
+ if (currentInputPower.isPresent()) {
+ inputPowerVal = currentInputPower.orElse(Double.MIN_VALUE);
+ }
+ return RoadmUtil.objectToString(inputPowerVal, RoadmUtil.UNKNOWN);
+ }
+
// Returns target power as a string, Unknown if target power is expected but
// cannot be found, N/A if port does not have configurable target power
private String getTargetPower(DeviceId deviceId, PortNumber portNumber) {
diff --git a/apps/roadm/web/roadm-gui/projects/roadm-gui-lib/src/lib/port/port.component.css b/apps/roadm/web/roadm-gui/projects/roadm-gui-lib/src/lib/port/port.component.css
index 00e195a..6fb15ef 100644
--- a/apps/roadm/web/roadm-gui/projects/roadm-gui-lib/src/lib/port/port.component.css
+++ b/apps/roadm/web/roadm-gui/projects/roadm-gui-lib/src/lib/port/port.component.css
@@ -40,6 +40,11 @@
text-transform: none;
}
+#ov-roadm-port .table-header td {
+ text-transform: unset;
+ font-variant: none;
+}
+
/* Editable Target Power field */
#ov-roadm-port .editable span {
width: 100%;
diff --git a/apps/roadm/web/roadm-gui/projects/roadm-gui-lib/src/lib/port/port.component.html b/apps/roadm/web/roadm-gui/projects/roadm-gui-lib/src/lib/port/port.component.html
index db86b57..1e16d57 100644
--- a/apps/roadm/web/roadm-gui/projects/roadm-gui-lib/src/lib/port/port.component.html
+++ b/apps/roadm/web/roadm-gui/projects/roadm-gui-lib/src/lib/port/port.component.html
@@ -62,20 +62,21 @@
<div class="table-header">
<table>
<tr>
- <td colId="id">Port ID</td>
- <td colId="reversePort">Reverse Port</td>
- <td colId="name">Name</td>
- <td colId="type">Type</td>
- <td colId="enabled">Enabled</td>
- <td colId="minFreq">Min Freq (THz)</td>
- <td colId="maxFreq">Max Freq (THz)</td>
- <td colId="grid">Grid (GHz)</td>
- <td colId="modulation">Modulation</td>
- <td colId="powerRange">Power Range (dBm)</td>
- <td colId="currentPower">Current Power (dBm)</td>
- <td colId="targetPower">Target Power (dBm)</td>
- <td colId="hasTargetPower">Has Target Power</td>
- <td colId="serviceState">Service State</td>
+ <td colId="id">PORT ID</td>
+ <td colId="reversePort">REVERSE PORT</td>
+ <td colId="name">NAME</td>
+ <td colId="type">TYPE</td>
+ <td colId="enabled">ENABLED</td>
+ <td colId="minFreq">MIN FREQ (THz)</td>
+ <td colId="maxFreq">MAX FREQ (THz)</td>
+ <td colId="grid">GRID (GHz)</td>
+ <td colId="modulation">MODULATION</td>
+ <td colId="powerRange">POWER RANGE (dBm)</td>
+ <td colId="currentPower">CURRENT POWER (dBm)</td>
+ <td colId="currentInputPower">CURRENT INPUT POWER (dBm)</td>
+ <td colId="targetPower">TARGET POWER (dBm)</td>
+ <td colId="hasTargetPower">HAS TARGET POWER</td>
+ <td colId="serviceState">SERVICE STATE</td>
</tr>
</table>
</div>
@@ -105,10 +106,11 @@
</form>
</td>
<td [ngClass]="(isDelta() ? 'delta' : '')">{{port.powerRange}}</td>
- <td [ngClass]="(isDelta() ? 'delta' : '')">{{port.currentPower | number: '1.2-2'}}</td>
+ <td [ngClass]="(isDelta() ? 'delta' : '')">{{convertNumber(port.currentPower) | number: '1.2-2'}}</td>
+ <td [ngClass]="(isDelta() ? 'delta' : '')">{{convertNumber(port.currentInputPower) | number: '1.2-2'}}</td>
<td [ngClass]="(isDelta() ? 'delta' : '')">
<form [formGroup]="powerForm" (ngSubmit)="submitPower(devId, port.id)" *ngIf="port.type=='OCH'">
- <input type="number" step="any" style="width:50px" value="{{port.targetPower | number: '1.2-2'}}" formControlName="newPower" required>
+ <input type="number" step="any" style="width:50px" value="{{convertNumber(port.targetPower) | number: '1.2-2'}}" formControlName="newPower" required>
<button type="submit">Submit</button>
</form>
</td>
diff --git a/apps/roadm/web/roadm-gui/projects/roadm-gui-lib/src/lib/port/port.component.ts b/apps/roadm/web/roadm-gui/projects/roadm-gui-lib/src/lib/port/port.component.ts
index 869c256..4a0d36e 100644
--- a/apps/roadm/web/roadm-gui/projects/roadm-gui-lib/src/lib/port/port.component.ts
+++ b/apps/roadm/web/roadm-gui/projects/roadm-gui-lib/src/lib/port/port.component.ts
@@ -230,4 +230,8 @@
this.log.debug('The power config operation is successful!');
}
}
+
+ convertNumber(str: string): number {
+ return Number(str);
+ }
}
diff --git a/web/gui2-fw-lib/projects/gui2-fw-lib/src/lib/widget/tablefilter.pipe.ts b/web/gui2-fw-lib/projects/gui2-fw-lib/src/lib/widget/tablefilter.pipe.ts
index 5ef048c..927f756 100644
--- a/web/gui2-fw-lib/projects/gui2-fw-lib/src/lib/widget/tablefilter.pipe.ts
+++ b/web/gui2-fw-lib/projects/gui2-fw-lib/src/lib/widget/tablefilter.pipe.ts
@@ -45,10 +45,10 @@
if (tableDataFilter.queryBy === '$') {
const t1 = Object.values(it);
const t2 = Object.values(it).filter(value => {
- return (<string>value).toLowerCase().includes(queryStr);
+ return JSON.stringify(value).toLowerCase().includes(queryStr);
});
return Object.values(it).filter(value => {
- return (<string>value).toLowerCase().includes(queryStr);
+ return JSON.stringify(value).toLowerCase().includes(queryStr);
}).length > 0;
} else {
return it[tableDataFilter.queryBy].toLowerCase().includes(queryStr);