Compare commits

..

1 Commits

Author SHA1 Message Date
Thomas-Leung2021
ccb7680933 [WIFI-4415] remove unnecessary code 2021-09-27 13:33:48 -04:00
8 changed files with 221 additions and 17 deletions

View File

@@ -4982,6 +4982,10 @@ components:
ClientMetrics:
properties:
secondsSinceLastRecv:
type: integer
format: int32
numRxPackets:
type: integer
format: int64
@@ -5022,6 +5026,12 @@ components:
sessionId:
type: string
classificationName:
type: string
channelBandWidth:
$ref: '#/components/schemas/ChannelBandwidth'
averageTxRate:
type: number
@@ -5038,11 +5048,21 @@ components:
type: integer
format: int64
rxLastRssi:
description: The RSSI of last frame received.
type: integer
format: int32
numRxNoFcsErr:
description: The number of received frames without FCS errors.
type: integer
format: int32
numRxData:
description: The number of received data frames.
type: integer
format: int32
rxBytes:
description: The number of received bytes.
type: integer

View File

@@ -5175,6 +5175,9 @@ components:
properties:
model_type:
type: string
secondsSinceLastRecv:
type: integer
format: int32
numRxPackets:
type: integer
@@ -5213,6 +5216,12 @@ components:
rssi:
type: integer
format: int32
classificationName:
type: string
channelBandWidth:
$ref: '#/components/schemas/ChannelBandwidth'
averageTxRate:
type: number
@@ -5229,11 +5238,21 @@ components:
type: integer
format: int64
rxLastRssi:
description: The RSSI of last frame received.
type: integer
format: int32
numRxNoFcsErr:
description: The number of received frames without FCS errors.
type: integer
format: int32
numRxData:
description: The number of received data frames.
type: integer
format: int32
rxBytes:
description: The number of received bytes.
type: integer

View File

@@ -114,6 +114,10 @@ public abstract class BaseServiceMetricDatastoreTest {
serviceMetric.setEquipmentId(testSequence.incrementAndGet());
serviceMetric.setClientMac(testSequence.incrementAndGet());
serviceMetric.setCreatedTimestamp(baseTimestamp - 100000 + testSequence.incrementAndGet());
ClientMetrics details2 = new ClientMetrics();
details2.setClassificationName("qr_"+apNameIdx);
serviceMetric.setDetails(details2);
apNameIdx++;
@@ -128,6 +132,10 @@ public abstract class BaseServiceMetricDatastoreTest {
serviceMetric.setEquipmentId(testSequence.incrementAndGet());
serviceMetric.setClientMac(testSequence.incrementAndGet());
serviceMetric.setCreatedTimestamp(baseTimestamp + testSequence.incrementAndGet());
ClientMetrics details2 = new ClientMetrics();
details2.setClassificationName("qr_"+apNameIdx);
serviceMetric.setDetails(details2);
apNameIdx++;
@@ -142,6 +150,10 @@ public abstract class BaseServiceMetricDatastoreTest {
serviceMetric.setEquipmentId(testSequence.incrementAndGet());
serviceMetric.setClientMac(testSequence.incrementAndGet());
serviceMetric.setCreatedTimestamp(baseTimestamp - 100000 + testSequence.incrementAndGet());
ClientMetrics details2 = new ClientMetrics();
details2.setClassificationName("qr_"+apNameIdx);
serviceMetric.setDetails(details2);
apNameIdx++;
@@ -188,18 +200,43 @@ public abstract class BaseServiceMetricDatastoreTest {
assertTrue(page6.getContext().isLastPage());
assertTrue(page7.getContext().isLastPage());
List<String> expectedPage3Strings = new ArrayList<>(Arrays.asList(new String[]{"qr_20", "qr_21", "qr_22", "qr_23", "qr_24", "qr_25", "qr_26", "qr_27", "qr_28", "qr_29" }));
List<String> actualPage3Strings = new ArrayList<>();
page3.getItems().stream().forEach( ce -> actualPage3Strings.add(((ClientMetrics) ce.getDetails()).getClassificationName()) );
assertEquals(expectedPage3Strings, actualPage3Strings);
//test first page of the results with empty sort order -> default sort order (by createdTimestamp ascending)
PaginationResponse<ServiceMetric> page1EmptySort = testInterface.getForCustomer(fromTime, toTime, customerId_1, null, null, null, null, Collections.emptyList(), context);
assertEquals(10, page1EmptySort.getItems().size());
List<String> expectedPage1EmptySortStrings = new ArrayList<>(Arrays.asList(new String[]{"qr_0", "qr_1", "qr_2", "qr_3", "qr_4", "qr_5", "qr_6", "qr_7", "qr_8", "qr_9" }));
List<String> actualPage1EmptySortStrings = new ArrayList<>();
page1EmptySort.getItems().stream().forEach( ce -> actualPage1EmptySortStrings.add(((ClientMetrics) ce.getDetails()).getClassificationName() ) );
assertEquals(expectedPage1EmptySortStrings, actualPage1EmptySortStrings);
//test first page of the results with null sort order -> default sort order (by createdTimestamp ascending)
PaginationResponse<ServiceMetric> page1NullSort = testInterface.getForCustomer(fromTime, toTime, customerId_1, null, null, null, null, null, context);
assertEquals(10, page1NullSort.getItems().size());
List<String> expectedPage1NullSortStrings = new ArrayList<>(Arrays.asList(new String[]{"qr_0", "qr_1", "qr_2", "qr_3", "qr_4", "qr_5", "qr_6", "qr_7", "qr_8", "qr_9" }));
List<String> actualPage1NullSortStrings = new ArrayList<>();
page1NullSort.getItems().stream().forEach( ce -> actualPage1NullSortStrings.add(((ClientMetrics) ce.getDetails()).getClassificationName() ) );
assertEquals(expectedPage1NullSortStrings, actualPage1NullSortStrings);
//test first page of the results with sort descending order by a equipmentId property
PaginationResponse<ServiceMetric> page1SingleSortDesc = testInterface.getForCustomer(fromTime, toTime, customerId_1, null, null, null, null, Collections.singletonList(new ColumnAndSort("equipmentId", SortOrder.desc)), context);
assertEquals(10, page1SingleSortDesc.getItems().size());
List<String> expectedPage1SingleSortDescStrings = getPagination_expectedPage1SingleSortDescStrings();
List<String> actualPage1SingleSortDescStrings = new ArrayList<>();
page1SingleSortDesc.getItems().stream().forEach( ce -> actualPage1SingleSortDescStrings.add(((ClientMetrics) ce.getDetails()).getClassificationName() ) );
assertEquals(expectedPage1SingleSortDescStrings, actualPage1SingleSortDescStrings);
used_equipmentIds.forEach(eqId -> testInterface.delete(customerId_1, eqId, System.currentTimeMillis()));
used_equipmentIds.forEach(eqId -> testInterface.delete(customerId_2, eqId, System.currentTimeMillis()));
@@ -299,8 +336,9 @@ public abstract class BaseServiceMetricDatastoreTest {
serviceMetric.setCreatedTimestamp(baseTimestamp - testSequence.incrementAndGet());
ClientMetrics details2 = new ClientMetrics();
details2.setClassificationName("qr_"+apNameIdx);
serviceMetric.setDetails(details2);
testInterface.create(serviceMetric);
//third metric - neighbour

View File

@@ -1,8 +1,10 @@
package com.telecominfraproject.wlan.servicemetric.client.models;
import java.util.Arrays;
import java.util.Objects;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.telecominfraproject.wlan.core.model.equipment.ChannelBandwidth;
import com.telecominfraproject.wlan.core.model.equipment.RadioType;
import com.telecominfraproject.wlan.servicemetric.models.ServiceMetricDataType;
import com.telecominfraproject.wlan.servicemetric.models.ServiceMetricDetails;
@@ -16,14 +18,19 @@ public class ClientMetrics extends ServiceMetricDetails {
private static final long serialVersionUID = 7242365268669169773L;
private Integer secondsSinceLastRecv;
private Long numRxPackets;
private Long numTxPackets;
private Long numRxBytes;
private Long numTxBytes;
private Integer txRetries;
private Integer rxDuplicatePackets;
private int[] rates;
private Integer snr;
private Integer rssi;
private String classificationName;
ChannelBandwidth channelBandWidth;
private Double averageTxRate;
private Double averageRxRate;
@@ -31,11 +38,21 @@ public class ClientMetrics extends ServiceMetricDetails {
private Long numTxFramesTransmitted;
private Long numRxFramesReceived;
/**
* The RSSI of last frame received.
*/
private Integer rxLastRssi;
/**
* The number of received frames without FCS errors.
*/
private Integer numRxNoFcsErr;
/**
* The number of received data frames.
*/
private Integer numRxData;
/**
* The number of received bytes.
*/
@@ -73,7 +90,13 @@ public class ClientMetrics extends ServiceMetricDetails {
@Override
public ClientMetrics clone() {
return (ClientMetrics) super.clone();
ClientMetrics ret = (ClientMetrics) super.clone();
if(this.rates!=null){
ret.rates = this.rates.clone();
}
return ret;
}
@Override
@@ -89,14 +112,15 @@ public class ClientMetrics extends ServiceMetricDetails {
}
ClientMetrics other = (ClientMetrics) obj;
return Objects.equals(averageRxRate, other.averageRxRate) && Objects.equals(averageTxRate, other.averageTxRate)
&& Objects.equals(numRxBytes, other.numRxBytes)
&& this.channelBandWidth == other.channelBandWidth && Objects.equals(classificationName, other.classificationName)
&& Objects.equals(numRxBytes, other.numRxBytes) && Objects.equals(numRxData, other.numRxData)
&& Objects.equals(numRxFramesReceived, other.numRxFramesReceived) && Objects.equals(numRxNoFcsErr, other.numRxNoFcsErr)
&& Objects.equals(numRxPackets, other.numRxPackets) && Objects.equals(numRxRetry, other.numRxRetry)
&& Objects.equals(numTxBytes, other.numTxBytes) && Objects.equals(numTxDataRetries, other.numTxDataRetries)
&& Objects.equals(numTxDropped, other.numTxDropped) && Objects.equals(numTxFramesTransmitted, other.numTxFramesTransmitted)
&& Objects.equals(numTxPackets, other.numTxPackets) && this.radioType == other.radioType
&& Objects.equals(rssi, other.rssi) && Objects.equals(rxBytes, other.rxBytes)
&& Objects.equals(rxDuplicatePackets, other.rxDuplicatePackets)
&& Arrays.equals(rates, other.rates) && Objects.equals(rssi, other.rssi) && Objects.equals(rxBytes, other.rxBytes)
&& Objects.equals(rxDuplicatePackets, other.rxDuplicatePackets) && Objects.equals(rxLastRssi, other.rxLastRssi)
&& Objects.equals(snr, other.snr) && Objects.equals(txRetries, other.txRetries);
}
@@ -104,6 +128,10 @@ public class ClientMetrics extends ServiceMetricDetails {
return numRxBytes;
}
public Integer getNumRxData() {
return numRxData;
}
public Integer getNumRxNoFcsErr() {
return numRxNoFcsErr;
}
@@ -136,6 +164,10 @@ public class ClientMetrics extends ServiceMetricDetails {
return radioType;
}
public int[] getRates() {
return rates;
}
public Integer getRssi() {
return rssi;
}
@@ -148,6 +180,10 @@ public class ClientMetrics extends ServiceMetricDetails {
return rxDuplicatePackets;
}
public Integer getRxLastRssi() {
return rxLastRssi;
}
public Integer getSnr() {
return snr;
}
@@ -160,11 +196,12 @@ public class ClientMetrics extends ServiceMetricDetails {
public int hashCode() {
final int prime = 31;
int result = super.hashCode();
result = prime * result + Objects.hash(averageRxRate, averageTxRate,
numRxBytes, numRxFramesReceived,
result = prime * result + Arrays.hashCode(this.rates);
result = prime * result + Objects.hash(averageRxRate, averageTxRate, channelBandWidth,
classificationName, numRxBytes, numRxData, numRxFramesReceived,
numRxNoFcsErr, numRxPackets, numRxRetry, numTxBytes,
numTxDataRetries, numTxDropped, numTxFramesTransmitted, numTxPackets,
radioType, rssi, rxBytes, rxDuplicatePackets, snr, txRetries);
radioType, rssi, rxBytes, rxDuplicatePackets, rxLastRssi, snr, txRetries);
return result;
}
@@ -173,7 +210,7 @@ public class ClientMetrics extends ServiceMetricDetails {
if (super.hasUnsupportedValue()) {
return true;
}
if (RadioType.isUnsupported(radioType)) {
if (RadioType.isUnsupported(radioType) || (ChannelBandwidth.isUnsupported(this.channelBandWidth))) {
return true;
}
return false;
@@ -183,6 +220,10 @@ public class ClientMetrics extends ServiceMetricDetails {
this.numRxBytes = numRxBytes;
}
public void setNumRxData(Integer numRxData) {
this.numRxData = numRxData;
}
public void setNumRxNoFcsErr(Integer numRxNoFcsErr) {
this.numRxNoFcsErr = numRxNoFcsErr;
}
@@ -215,6 +256,10 @@ public class ClientMetrics extends ServiceMetricDetails {
this.radioType = radioType;
}
public void setRates(int[] rates) {
this.rates = rates;
}
public void setRssi(Integer rssi) {
this.rssi = rssi;
}
@@ -227,6 +272,10 @@ public class ClientMetrics extends ServiceMetricDetails {
this.rxDuplicatePackets = rxDuplicatePackets;
}
public void setRxLastRssi(Integer rxLastRssi) {
this.rxLastRssi = rxLastRssi;
}
public void setSnr(Integer snr) {
this.snr = snr;
}
@@ -251,6 +300,22 @@ public class ClientMetrics extends ServiceMetricDetails {
this.numRxFramesReceived = numRxFramesReceived;
}
public String getClassificationName() {
return classificationName;
}
public void setClassificationName(String classificationName) {
this.classificationName = classificationName;
}
public ChannelBandwidth getChannelBandWidth() {
return channelBandWidth;
}
public void setChannelBandWidth(ChannelBandwidth channelBandWidth) {
this.channelBandWidth = channelBandWidth;
}
public Double getAverageTxRate() {
return averageTxRate;
}
@@ -267,6 +332,14 @@ public class ClientMetrics extends ServiceMetricDetails {
this.averageRxRate = averageRxRate;
}
public Integer getSecondsSinceLastRecv() {
return secondsSinceLastRecv;
}
public void setSecondsSinceLastRecv(Integer secondsSinceLastRecv) {
this.secondsSinceLastRecv = secondsSinceLastRecv;
}
public Integer getPeriodLengthSec() {
return periodLengthSec;
}

View File

@@ -127,6 +127,10 @@ public class ServiceMetricServiceRemoteTest extends BaseRemoteTest {
serviceMetric.setClientMac(getNextEquipmentId());
serviceMetric.setCreatedTimestamp(baseTimestamp - 100000 + getNextEquipmentId());
ClientMetrics details2 = new ClientMetrics();
details2.setClassificationName("qr_"+apNameIdx);
serviceMetric.setDetails(details2);
apNameIdx++;
remoteInterface.create(serviceMetric);
@@ -140,6 +144,10 @@ public class ServiceMetricServiceRemoteTest extends BaseRemoteTest {
serviceMetric.setClientMac(getNextEquipmentId());
serviceMetric.setCreatedTimestamp(baseTimestamp + getNextEquipmentId());
ClientMetrics details2 = new ClientMetrics();
details2.setClassificationName("qr_"+apNameIdx);
serviceMetric.setDetails(details2);
apNameIdx++;
remoteInterface.create(serviceMetric);
@@ -153,6 +161,10 @@ public class ServiceMetricServiceRemoteTest extends BaseRemoteTest {
serviceMetric.setClientMac(getNextEquipmentId());
serviceMetric.setCreatedTimestamp(baseTimestamp - 100000 + getNextEquipmentId());
ClientMetrics details2 = new ClientMetrics();
details2.setClassificationName("qr_"+apNameIdx);
serviceMetric.setDetails(details2);
apNameIdx++;
remoteInterface.create(serviceMetric);
@@ -197,18 +209,43 @@ public class ServiceMetricServiceRemoteTest extends BaseRemoteTest {
assertTrue(page6.getContext().isLastPage());
assertTrue(page7.getContext().isLastPage());
List<String> expectedPage3Strings = new ArrayList<>(Arrays.asList(new String[]{"qr_20", "qr_21", "qr_22", "qr_23", "qr_24", "qr_25", "qr_26", "qr_27", "qr_28", "qr_29" }));
List<String> actualPage3Strings = new ArrayList<>();
page3.getItems().stream().forEach( ce -> actualPage3Strings.add(((ClientMetrics) ce.getDetails()).getClassificationName()) );
assertEquals(expectedPage3Strings, actualPage3Strings);
//test first page of the results with empty sort order -> default sort order (by createdTimestamp ascending)
PaginationResponse<ServiceMetric> page1EmptySort = remoteInterface.getForCustomer(fromTime, toTime, customerId_1, null, null, null, null, Collections.emptyList(), context);
assertEquals(10, page1EmptySort.getItems().size());
List<String> expectedPage1EmptySortStrings = new ArrayList<>(Arrays.asList(new String[]{"qr_0", "qr_1", "qr_2", "qr_3", "qr_4", "qr_5", "qr_6", "qr_7", "qr_8", "qr_9" }));
List<String> actualPage1EmptySortStrings = new ArrayList<>();
page1EmptySort.getItems().stream().forEach( ce -> actualPage1EmptySortStrings.add(((ClientMetrics) ce.getDetails()).getClassificationName() ) );
assertEquals(expectedPage1EmptySortStrings, actualPage1EmptySortStrings);
//test first page of the results with null sort order -> default sort order (by createdTimestamp ascending)
PaginationResponse<ServiceMetric> page1NullSort = remoteInterface.getForCustomer(fromTime, toTime, customerId_1, null, null, null, null, null, context);
assertEquals(10, page1NullSort.getItems().size());
List<String> expectedPage1NullSortStrings = new ArrayList<>(Arrays.asList(new String[]{"qr_0", "qr_1", "qr_2", "qr_3", "qr_4", "qr_5", "qr_6", "qr_7", "qr_8", "qr_9" }));
List<String> actualPage1NullSortStrings = new ArrayList<>();
page1NullSort.getItems().stream().forEach( ce -> actualPage1NullSortStrings.add(((ClientMetrics) ce.getDetails()).getClassificationName() ) );
assertEquals(expectedPage1NullSortStrings, actualPage1NullSortStrings);
//test first page of the results with sort descending order by a equipmentId property
PaginationResponse<ServiceMetric> page1SingleSortDesc = remoteInterface.getForCustomer(fromTime, toTime, customerId_1, null, null, null, null, Collections.singletonList(new ColumnAndSort("equipmentId", SortOrder.desc)), context);
assertEquals(10, page1SingleSortDesc.getItems().size());
List<String> expectedPage1SingleSortDescStrings = new ArrayList< >(Arrays.asList(new String[]{"qr_49", "qr_48", "qr_47", "qr_46", "qr_45", "qr_44", "qr_43", "qr_42", "qr_41", "qr_40" }));
List<String> actualPage1SingleSortDescStrings = new ArrayList<>();
page1SingleSortDesc.getItems().stream().forEach( ce -> actualPage1SingleSortDescStrings.add(((ClientMetrics) ce.getDetails()).getClassificationName() ) );
assertEquals(expectedPage1SingleSortDescStrings, actualPage1SingleSortDescStrings);
}
@@ -301,6 +338,7 @@ public class ServiceMetricServiceRemoteTest extends BaseRemoteTest {
serviceMetric.setCreatedTimestamp(baseTimestamp - getNextEquipmentId());
ClientMetrics details2 = new ClientMetrics();
details2.setClassificationName("qr_"+apNameIdx);
serviceMetric.setDetails(details2);
remoteInterface.create(serviceMetric);

View File

@@ -213,7 +213,11 @@ components:
- SGI# Short Guard Interval
ClientMetrics:
properties:
properties:
secondsSinceLastRecv:
type: integer
format: int32
numRxPackets:
type: integer
format: int64
@@ -252,6 +256,12 @@ components:
type: integer
format: int32
classificationName:
type: string
channelBandWidth:
$ref: '#/components/schemas/ChannelBandwidth'
averageTxRate:
type: number
format: double
@@ -267,11 +277,22 @@ components:
type: integer
format: int64
rxLastRssi:
description: The RSSI of last frame received.
type: integer
format: int32
numRxNoFcsErr:
description: The number of received frames without FCS errors.
type: integer
format: int32
numRxData:
description: The number of received data frames.
type: integer
format: int32
rxBytes:
description: The number of received bytes.
type: integer

View File

@@ -5,6 +5,7 @@ import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
import com.telecominfraproject.wlan.core.model.equipment.LedStatus;
import com.telecominfraproject.wlan.status.models.StatusCode;
import com.telecominfraproject.wlan.status.models.StatusDataType;
import com.telecominfraproject.wlan.status.models.StatusDetails;

View File

@@ -1,6 +0,0 @@
package com.telecominfraproject.wlan.status.equipment.models;
public enum LedStatus {
led_blink, led_off, UNKNOWN,
}