Compare commits

..

26 Commits

Author SHA1 Message Date
Thomas-Leung2021
daabf38510 [NETEXP-2677] set clients disconnected in current client list when moving AP to another SP 2021-08-03 18:05:31 -04:00
Mike Hansen
91877f5305 Merge pull request #139 from Telecominfraproject/WIFI-3259-portal-user-event-payload-fix
[WIFI-3259] Adding default constructor to PortalUserEventPayload for …
2021-07-29 10:10:39 -04:00
ralphlee
11314e3395 [WIFI-3259] Adding default constructor to PortalUserEventPayload for serialization, updated yamls 2021-07-28 12:58:46 -04:00
Mike Hansen
fa6795369c Merge pull request #138 from Telecominfraproject/NETEXP-1632-temp
fix missing RADIO_CHANNEL status
2021-07-27 08:41:07 -04:00
Thomas-Leung2021
e6e06d7b70 fix missing RADIO_CHANNEL status 2021-07-26 17:29:49 -04:00
Mike Hansen
1e15e3cd94 Merge pull request #137 from Telecominfraproject/WIFI-3218-add-null-checks-to-rrm-bulk-update
[WIFI-3218] Adding null checks to RrmBulkUpdateItem
2021-07-22 17:25:38 -04:00
ralphlee
02e03780db [WIFI-3218] Adding null checks to RrmBulkUpdateItem 2021-07-22 17:19:03 -04:00
Mike Hansen
aac34150b2 APs running into Backoff shows as connected
Signed-off-by: Mike Hansen <mike.hansen@connectus.ai>
2021-07-22 15:31:58 -04:00
Mike Hansen
3085c34cde Merge pull request #135 from Telecominfraproject/WIFI-3180-portal-user-search-case-insensitive
[WIFI-3180] Adding case insensitivity to Portal User API Search
2021-07-20 11:53:47 -04:00
Mike Hansen
35fd038113 [WIFI-3166] Session ID is a -ve number in opensyncgw logs and on UI logs
Signed-off-by: Mike Hansen <mike.hansen@connectus.ai>
2021-07-20 11:31:07 -04:00
ralphlee
7c387f1940 [WIFI-3180] Adding case insensitivity to Portal User API Search 2021-07-20 10:38:04 -04:00
Mike Hansen
abb9b59659 Gateway pushes the threshholds as empty which causes AP not to connect any client
Signed-off-by: Mike Hansen <mike.hansen@connectus.ai>
2021-07-20 10:02:59 -04:00
norm-traxler
7f0497754c Merge pull request #134 from Telecominfraproject/WIFI-3042-alarm-remote-fix
[WIFI-3042] Fix alarmCode get url parameter
2021-07-20 08:30:40 -04:00
Norm Traxler
82095510f7 [WIFI-3042] Fix alarmCode get url parameter 2021-07-20 08:23:58 -04:00
Mike Hansen
0afd414870 Merge pull request #133 from Telecominfraproject/change_sessionId_to_String
[WIFI-3166] Session ID is a -ve number in opensyncgw logs and on UI logs
2021-07-19 19:30:42 -04:00
Mike Hansen
772beab902 [WIFI-3166] Session ID is a -ve number in opensyncgw logs and on UI logs
Signed-off-by: Mike Hansen <mike.hansen@connectus.ai>
2021-07-19 19:10:37 -04:00
Mike Hansen
4a764db007 [WIFI-3166] Session ID is a -ve number in opensyncgw logs and on UI logs
Signed-off-by: Mike Hansen <mike.hansen@connectus.ai>
2021-07-19 18:03:13 -04:00
Mike Hansen
41add1922b Merge pull request #132 from Telecominfraproject/WIFI-3041
[WIFI-3041] move if statusment for custmerId check to a different location
2021-07-19 17:54:58 -04:00
Thomas-Leung2021
90ac57b988 [WIFI-3041] move if statement to make it more logical 2021-07-19 17:52:49 -04:00
Thomas-Leung2021
0cc90764c6 [WIFI-3041] move if statusment for custmerId check to a different location 2021-07-19 17:00:54 -04:00
Mike Hansen
1e277f5650 [WIFI-3165] Keep last stats received timestamp in gateway client session map
Adding API call to gateway controller

Signed-off-by: Mike Hansen <mike.hansen@connectus.ai>
2021-07-19 14:13:19 -04:00
Mike Hansen
716ba7e043 Merge pull request #131 from Telecominfraproject/WIFI-3041
[Wifi 3041] A disconnected Alarm is raised when a disconnected AP is moved out of a Customer Inventory.
2021-07-16 16:28:16 -04:00
Thomas-Leung2021
3d2f4db32a [WIFI-3041] remove unnecessary dependencies 2021-07-16 12:22:23 -04:00
Thomas-Leung2021
c75d44ff03 [WIFI-3041] create a new EquipmentCustomerChangedEvent to handle status and alarm migration 2021-07-16 10:44:23 -04:00
Mike Hansen
f9dbe12c8c Merge pull request #130 from Telecominfraproject/WIFI-3056-event-stats
[WIFI-3056] Add API to get system event statistics
2021-07-16 07:44:06 -04:00
Thomas-Leung2021
799b243cc4 [WIFI-3041] move alarms to new customerId if customerId changed 2021-07-15 16:45:07 -04:00
54 changed files with 672 additions and 837 deletions

View File

@@ -64,20 +64,5 @@
<version>1.2.0-SNAPSHOT</version>
<scope>test</scope>
</dependency>
<dependency>
<artifactId>status-service-local</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
<scope>test</scope>
</dependency>
<dependency>
<artifactId>status-datastore-inmemory</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>

View File

@@ -259,7 +259,7 @@ public class AlarmServiceRemote extends BaseRemoteClient implements AlarmService
try {
ResponseEntity<List<Alarm>> responseEntity =
restTemplate.exchange(getBaseUrl() + "/forAlarmCode?alarmCodeSet={alarmCodeSetStr}&createdAfterTimestamp={createdAfterTimestamp}",
restTemplate.exchange(getBaseUrl() + "/forAlarmCode?alarmCode={alarmCodeSetStr}&createdAfterTimestamp={createdAfterTimestamp}",
HttpMethod.GET, null, Alarm_LIST_CLASS_TOKEN, alarmCodeSetStr, createdAfterTimestamp);
List<Alarm> result = responseEntity.getBody();

View File

@@ -1,83 +1,70 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.telecominfraproject.wlan</groupId>
<artifactId>tip-wlan-cloud-root-pom</artifactId>
<version>1.2.0-SNAPSHOT</version>
<relativePath>../../wlan-cloud-root</relativePath>
</parent>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.telecominfraproject.wlan</groupId>
<artifactId>tip-wlan-cloud-root-pom</artifactId>
<version>1.2.0-SNAPSHOT</version>
<relativePath>../../wlan-cloud-root</relativePath>
</parent>
<artifactId>alarm-service</artifactId>
<name>alarm-service</name>
<description>Server side implementation of the service.</description>
<dependencies>
<dependency>
<artifactId>base-container</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<artifactId>cloud-event-dispatcher-interface</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<artifactId>alarm-models</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<artifactId>alarm-datastore-interface</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<artifactId>equipment-service-interface</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<artifactId>alarm-datastore-inmemory</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
<scope>test</scope>
</dependency>
<dependency>
<artifactId>equipment-service-local</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
<scope>test</scope>
</dependency>
<dependency>
<artifactId>equipment-datastore-inmemory</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
<scope>test</scope>
</dependency>
<artifactId>alarm-service</artifactId>
<name>alarm-service</name>
<description>Server side implementation of the service.</description>
<dependency>
<artifactId>status-service-local</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
<scope>test</scope>
</dependency>
<dependency>
<artifactId>status-datastore-inmemory</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
<scope>test</scope>
</dependency>
<dependency>
<artifactId>cloud-event-dispatcher-empty</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
<scope>test</scope>
</dependency>
<dependencies>
<dependency>
<artifactId>base-container</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
</dependencies>
<dependency>
<artifactId>cloud-event-dispatcher-interface</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<artifactId>alarm-models</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<artifactId>alarm-datastore-interface</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<artifactId>equipment-service-interface</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<artifactId>alarm-datastore-inmemory</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
<scope>test</scope>
</dependency>
<dependency>
<artifactId>equipment-service-local</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
<scope>test</scope>
</dependency>
<dependency>
<artifactId>equipment-datastore-inmemory</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
<scope>test</scope>
</dependency>
<dependency>
<artifactId>cloud-event-dispatcher-empty</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>

View File

@@ -22,9 +22,6 @@ import com.telecominfraproject.wlan.equipment.EquipmentServiceLocal;
import com.telecominfraproject.wlan.equipment.controller.EquipmentController;
import com.telecominfraproject.wlan.equipment.datastore.inmemory.EquipmentDatastoreInMemory;
import com.telecominfraproject.wlan.equipment.models.Equipment;
import com.telecominfraproject.wlan.status.StatusServiceLocal;
import com.telecominfraproject.wlan.status.controller.StatusController;
import com.telecominfraproject.wlan.status.datastore.inmemory.StatusDatastoreInMemory;
import com.telecominfraproject.wlan.alarm.datastore.inmemory.AlarmDatastoreInMemory;
import com.telecominfraproject.wlan.alarm.models.Alarm;
import com.telecominfraproject.wlan.alarm.models.AlarmCode;
@@ -48,10 +45,7 @@ import com.telecominfraproject.wlan.alarm.models.AlarmDetails;
AlarmControllerTest.Config.class,
EquipmentServiceLocal.class,
EquipmentController.class,
EquipmentDatastoreInMemory.class,
StatusServiceLocal.class,
StatusController.class,
StatusDatastoreInMemory.class
EquipmentDatastoreInMemory.class
})
public class AlarmControllerTest {

View File

@@ -811,10 +811,10 @@ public class AllInOneWithGatewayStartListener implements ApplicationRunner {
sessionDetails.setRadioType(radioType);
sessionDetails.setSecurityType(SecurityType.PSK);
sessionDetails.setSsid(ssidConfig.getSsid());
sessionDetails.setSessionId(System.currentTimeMillis());
sessionDetails.setSessionId(Long.toUnsignedString(System.currentTimeMillis()));
sessionDetails.setAssocTimestamp(System.currentTimeMillis() - getRandomLong(10000, 1000000));
ClientDhcpDetails dhcpDetails = new ClientDhcpDetails(System.currentTimeMillis());
ClientDhcpDetails dhcpDetails = new ClientDhcpDetails(Long.toUnsignedString(System.currentTimeMillis()));
dhcpDetails.setLeaseStartTimestamp(System.currentTimeMillis() - getRandomLong(0, TimeUnit.HOURS.toMillis(4)));
dhcpDetails.setLeaseTimeInSeconds((int)TimeUnit.HOURS.toSeconds(4));
try {

View File

@@ -1238,7 +1238,7 @@ public class AllInOneStartListener implements ApplicationRunner {
clientMetrics.setNumRxBytes(getRandomLong(3000000, 7000000));
clientMetrics.setNumTxBytes(getRandomLong(3000000, 7000000));
clientMetrics.setSessionId(getRandomLong(3000000, 7000000));
clientMetrics.setSessionId(Long.toUnsignedString(getRandomLong(3000000, 7000000)));
clientMetrics.setTxRetries(getRandomInt(30, 70));
clientMetrics.setRxDuplicatePackets(getRandomInt(30, 70));
@@ -1265,7 +1265,7 @@ public class AllInOneStartListener implements ApplicationRunner {
clientMetrics.setNumRxBytes(getRandomLong(3000000, 7000000));
clientMetrics.setNumTxBytes(getRandomLong(3000000, 7000000));
clientMetrics.setSessionId(getRandomLong(3000000, 7000000));
clientMetrics.setSessionId(Long.toUnsignedString(getRandomLong(3000000, 7000000)));
clientMetrics.setTxRetries(getRandomInt(30, 70));
clientMetrics.setRxDuplicatePackets(getRandomInt(30, 70));
@@ -1292,7 +1292,7 @@ public class AllInOneStartListener implements ApplicationRunner {
clientMetrics.setNumRxBytes(getRandomLong(3000000, 7000000));
clientMetrics.setNumTxBytes(getRandomLong(3000000, 7000000));
clientMetrics.setSessionId(getRandomLong(3000000, 7000000));
clientMetrics.setSessionId(Long.toUnsignedString(getRandomLong(3000000, 7000000)));
clientMetrics.setTxRetries(getRandomInt(30, 70));
clientMetrics.setRxDuplicatePackets(getRandomInt(30, 70));
@@ -1361,10 +1361,10 @@ public class AllInOneStartListener implements ApplicationRunner {
sessionDetails.setRadioType(radioType);
sessionDetails.setSecurityType(SecurityType.PSK);
sessionDetails.setSsid(ssidConfig.getSsid());
sessionDetails.setSessionId(System.currentTimeMillis());
sessionDetails.setSessionId(Long.toUnsignedString(System.currentTimeMillis()));
sessionDetails.setAssocTimestamp(System.currentTimeMillis() - getRandomLong(10000, 1000000));
ClientDhcpDetails dhcpDetails = new ClientDhcpDetails(System.currentTimeMillis());
ClientDhcpDetails dhcpDetails = new ClientDhcpDetails(Long.toUnsignedString(System.currentTimeMillis()));
dhcpDetails
.setLeaseStartTimestamp(System.currentTimeMillis() - getRandomLong(0, TimeUnit.HOURS.toMillis(4)));
dhcpDetails.setLeaseTimeInSeconds((int) TimeUnit.HOURS.toSeconds(4));

View File

@@ -12,7 +12,7 @@ import com.telecominfraproject.wlan.systemevent.equipment.realtime.RealTimeEvent
public class ClientAssocEvent extends RealTimeEvent implements HasClientMac {
private static final long serialVersionUID = 7015822981315570338L;
private long sessionId;
private String sessionId;
private String ssid;
private MacAddress clientMacAddress;
private RadioType radioType;
@@ -29,7 +29,7 @@ public class ClientAssocEvent extends RealTimeEvent implements HasClientMac {
}
public ClientAssocEvent(int customerId, long locationId, long equipmentId, long timestamp, long sessionId, String ssid,
public ClientAssocEvent(int customerId, long locationId, long equipmentId, long timestamp, String sessionId, String ssid,
MacAddress clientMacAddress, RadioType radioType, boolean isReassociation, WlanStatusCode status,
Integer internalSC, Integer rssi) {
super(RealTimeEventType.STA_Client_Assoc, customerId, locationId, equipmentId, timestamp);
@@ -50,7 +50,7 @@ public class ClientAssocEvent extends RealTimeEvent implements HasClientMac {
/**
* @return the sessionId
*/
public long getSessionId() {
public String getSessionId() {
return sessionId;
}
@@ -58,7 +58,7 @@ public class ClientAssocEvent extends RealTimeEvent implements HasClientMac {
* @param sessionId
* the sessionId to set
*/
public void setSessionId(long sessionId) {
public void setSessionId(String sessionId) {
this.sessionId = sessionId;
}

View File

@@ -13,7 +13,7 @@ public class ClientAuthEvent extends RealTimeEvent implements HasClientMac {
private static final long serialVersionUID = 1221389696911864515L;
private long sessionId;
private String sessionId;
private String ssid;
private MacAddress clientMacAddress;
private WlanStatusCode authStatus;
@@ -32,11 +32,11 @@ public class ClientAuthEvent extends RealTimeEvent implements HasClientMac {
super(eventType, timestamp);
}
public long getSessionId() {
public String getSessionId() {
return sessionId;
}
public void setSessionId(long sessionId) {
public void setSessionId(String sessionId) {
this.sessionId = sessionId;
}

View File

@@ -14,7 +14,7 @@ public class ClientConnectSuccessEvent extends RealTimeEvent implements HasClien
private static final long serialVersionUID = -6082134146801575193L;
private MacAddress clientMacAddress;
private long sessionId;
private String sessionId;
private RadioType radioType;
private boolean isReassociation;
private String ssid;
@@ -61,7 +61,7 @@ public class ClientConnectSuccessEvent extends RealTimeEvent implements HasClien
/**
* @return the sessionId
*/
public long getSessionId() {
public String getSessionId() {
return sessionId;
}
@@ -69,7 +69,7 @@ public class ClientConnectSuccessEvent extends RealTimeEvent implements HasClien
* @param sessionId
* the sessionId to set
*/
public void setSessionId(long sessionId) {
public void setSessionId(String sessionId) {
this.sessionId = sessionId;
}

View File

@@ -45,7 +45,7 @@ public class ClientDisconnectEvent extends RealTimeEvent implements HasClientMac
}
private static final long serialVersionUID = -7674230178565760938L;
private long sessionId;
private String sessionId;
private byte[] macAddressBytes;
private MacAddress clientMacAddress;
private long lastRecvTime;
@@ -104,7 +104,7 @@ public class ClientDisconnectEvent extends RealTimeEvent implements HasClientMac
return rssi;
}
public long getSessionId() {
public String getSessionId() {
return sessionId;
}
@@ -148,7 +148,7 @@ public class ClientDisconnectEvent extends RealTimeEvent implements HasClientMac
this.rssi = rssi;
}
public void setSessionId(long sessionId) {
public void setSessionId(String sessionId) {
this.sessionId = sessionId;
}

View File

@@ -14,7 +14,7 @@ import com.telecominfraproject.wlan.systemevent.equipment.realtime.RealTimeEvent
public class ClientFailureEvent extends RealTimeEvent implements HasClientMac {
private static final long serialVersionUID = -16021752050335131L;
private long sessionId;
private String sessionId;
private String ssid;
private MacAddress clientMacAddress;
private WlanReasonCode reasonCode;
@@ -38,11 +38,11 @@ public class ClientFailureEvent extends RealTimeEvent implements HasClientMac {
this.clientMacAddress = clientMacAddress;
}
public long getSessionId() {
public String getSessionId() {
return sessionId;
}
public void setSessionId(long sessionId) {
public void setSessionId(String sessionId) {
this.sessionId = sessionId;
}

View File

@@ -10,7 +10,7 @@ import com.telecominfraproject.wlan.systemevent.equipment.realtime.RealTimeEvent
public class ClientFirstDataEvent extends RealTimeEvent implements HasClientMac {
private static final long serialVersionUID = 298223061973506469L;
private long sessionId;
private String sessionId;
private MacAddress clientMacAddress;
private long firstDataRcvdTs;
private long firstDataSentTs;
@@ -28,11 +28,11 @@ public class ClientFirstDataEvent extends RealTimeEvent implements HasClientMac
super(eventType, timestamp);
}
public long getSessionId() {
public String getSessionId() {
return sessionId;
}
public void setSessionId(long sessionId) {
public void setSessionId(String sessionId) {
this.sessionId = sessionId;
}

View File

@@ -1,6 +1,7 @@
package com.telecominfraproject.wlan.client.models.events.realtime;
import java.util.Arrays;
import java.util.Objects;
import com.telecominfraproject.wlan.core.model.equipment.MacAddress;
import com.telecominfraproject.wlan.core.model.json.interfaces.HasClientMac;
@@ -10,7 +11,7 @@ import com.telecominfraproject.wlan.systemevent.equipment.realtime.RealTimeEvent
public class ClientIdEvent extends RealTimeEvent implements HasClientMac {
private static final long serialVersionUID = 298223061973506469L;
private long sessionId;
private String sessionId;
private byte[] macAddressBytes;
private MacAddress clientMacAddress;
private String userId;
@@ -27,7 +28,7 @@ public class ClientIdEvent extends RealTimeEvent implements HasClientMac {
/**
* @return the sessionId
*/
public long getSessionId() {
public String getSessionId() {
return sessionId;
}
@@ -35,7 +36,7 @@ public class ClientIdEvent extends RealTimeEvent implements HasClientMac {
* @param sessionId
* the sessionId to set
*/
public void setSessionId(long sessionId) {
public void setSessionId(String sessionId) {
this.sessionId = sessionId;
}
@@ -65,58 +66,28 @@ public class ClientIdEvent extends RealTimeEvent implements HasClientMac {
this.userId = userId;
}
/*
* (non-Javadoc)
*
* @see java.lang.Object#hashCode()
*/
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
int result = super.hashCode();
result = prime * result + Arrays.hashCode(macAddressBytes);
result = prime * result + (int) (sessionId ^ (sessionId >>> 32));
result = prime * result + ((userId == null) ? 0 : userId.hashCode());
result = prime * result + ((clientMacAddress == null) ? 0 : clientMacAddress.hashCode());
result = prime * result + Objects.hash(clientMacAddress, sessionId, userId);
return result;
}
/*
* (non-Javadoc)
*
* @see java.lang.Object#equals(java.lang.Object)
*/
@Override
public boolean equals(Object obj) {
if (this == obj) {
if (this == obj)
return true;
}
if (obj == null) {
if (!super.equals(obj))
return false;
}
if (!super.equals(obj)) {
if (getClass() != obj.getClass())
return false;
}
if (!(obj instanceof ClientIdEvent)) {
return false;
}
ClientIdEvent other = (ClientIdEvent) obj;
if (!Arrays.equals(macAddressBytes, other.macAddressBytes))
return false;
if (sessionId != other.sessionId)
return false;
if (userId == null) {
if (other.userId != null)
return false;
} else if (!userId.equals(other.userId))
return false;
if (clientMacAddress == null) {
if (other.clientMacAddress != null)
return false;
} else if (!clientMacAddress.equals(other.clientMacAddress))
return false;
return true;
return Objects.equals(clientMacAddress, other.clientMacAddress) && Arrays.equals(macAddressBytes, other.macAddressBytes)
&& Objects.equals(sessionId, other.sessionId) && Objects.equals(userId, other.userId);
}
@Override

View File

@@ -12,7 +12,7 @@ public class ClientIpAddressEvent extends RealTimeEvent implements HasClientMac
private static final long serialVersionUID = -5332534925768685589L;
private long sessionId;
private String sessionId;
private MacAddress clientMacAddress;
private InetAddress ipAddr;
@@ -29,11 +29,11 @@ public class ClientIpAddressEvent extends RealTimeEvent implements HasClientMac
super(eventType, timestamp);
}
public long getSessionId() {
public String getSessionId() {
return sessionId;
}
public void setSessionId(long sessionId) {
public void setSessionId(String sessionId) {
this.sessionId = sessionId;
}

View File

@@ -26,7 +26,7 @@ public class ClientTimeoutEvent extends RealTimeEvent implements HasClientMac {
}
}
private long sessionId;
private String sessionId;
private MacAddress clientMacAddress;
private long lastRecvTime;
private long lastSentTime;
@@ -45,11 +45,11 @@ public class ClientTimeoutEvent extends RealTimeEvent implements HasClientMac {
super(eventType, timestamp);
}
public long getSessionId() {
public String getSessionId() {
return sessionId;
}
public void setSessionId(long sessionId) {
public void setSessionId(String sessionId) {
this.sessionId = sessionId;
}

View File

@@ -1,6 +1,7 @@
package com.telecominfraproject.wlan.client.session.models;
import java.net.InetAddress;
import java.util.Objects;
import com.telecominfraproject.wlan.core.model.equipment.WiFiSessionUtility;
import com.telecominfraproject.wlan.core.model.json.BaseJsonModel;
@@ -29,10 +30,9 @@ public class ClientDhcpDetails extends BaseJsonModel {
/**
* Identifies the association where DHCP last occurred.
*/
private long associationId;
private String associationId;
public ClientDhcpDetails(long sessionId) {
public ClientDhcpDetails(String sessionId) {
this.associationId = sessionId;
}
@@ -101,10 +101,10 @@ public class ClientDhcpDetails extends BaseJsonModel {
this.firstDiscoverTimestamp = firstDiscoverTimestamp;
}
public long getAssociationId() {
public String getAssociationId() {
return associationId;
}
public void setAssociationId(Long associationId) {
public void setAssociationId(String associationId) {
this.associationId = associationId;
}
@@ -116,123 +116,6 @@ public class ClientDhcpDetails extends BaseJsonModel {
this.nakTimestamp = nakTimestamp;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + (int) (associationId ^ (associationId >>> 32));
result = prime * result + ((dhcpServerIp == null) ? 0 : dhcpServerIp.hashCode());
result = prime * result + ((firstDiscoverTimestamp == null) ? 0 : firstDiscoverTimestamp.hashCode());
result = prime * result + ((firstOfferTimestamp == null) ? 0 : firstOfferTimestamp.hashCode());
result = prime * result + ((firstRequestTimestamp == null) ? 0 : firstRequestTimestamp.hashCode());
result = prime * result + (fromInternal ? 1231 : 1237);
result = prime * result + ((gatewayIp == null) ? 0 : gatewayIp.hashCode());
result = prime * result + ((leaseStartTimestamp == null) ? 0 : leaseStartTimestamp.hashCode());
result = prime * result + ((leaseTimeInSeconds == null) ? 0 : leaseTimeInSeconds.hashCode());
result = prime * result + ((nakTimestamp == null) ? 0 : nakTimestamp.hashCode());
result = prime * result + ((primaryDns == null) ? 0 : primaryDns.hashCode());
result = prime * result + ((secondaryDns == null) ? 0 : secondaryDns.hashCode());
result = prime * result + ((subnetMask == null) ? 0 : subnetMask.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (!(obj instanceof ClientDhcpDetails)) {
return false;
}
ClientDhcpDetails other = (ClientDhcpDetails) obj;
if (associationId != other.associationId) {
return false;
}
if (dhcpServerIp == null) {
if (other.dhcpServerIp != null) {
return false;
}
} else if (!dhcpServerIp.equals(other.dhcpServerIp)) {
return false;
}
if (firstDiscoverTimestamp == null) {
if (other.firstDiscoverTimestamp != null) {
return false;
}
} else if (!firstDiscoverTimestamp.equals(other.firstDiscoverTimestamp)) {
return false;
}
if (firstOfferTimestamp == null) {
if (other.firstOfferTimestamp != null) {
return false;
}
} else if (!firstOfferTimestamp.equals(other.firstOfferTimestamp)) {
return false;
}
if (firstRequestTimestamp == null) {
if (other.firstRequestTimestamp != null) {
return false;
}
} else if (!firstRequestTimestamp.equals(other.firstRequestTimestamp)) {
return false;
}
if (fromInternal != other.fromInternal) {
return false;
}
if (gatewayIp == null) {
if (other.gatewayIp != null) {
return false;
}
} else if (!gatewayIp.equals(other.gatewayIp)) {
return false;
}
if (leaseStartTimestamp == null) {
if (other.leaseStartTimestamp != null) {
return false;
}
} else if (!leaseStartTimestamp.equals(other.leaseStartTimestamp)) {
return false;
}
if (leaseTimeInSeconds == null) {
if (other.leaseTimeInSeconds != null) {
return false;
}
} else if (!leaseTimeInSeconds.equals(other.leaseTimeInSeconds)) {
return false;
}
if (nakTimestamp == null) {
if (other.nakTimestamp != null) {
return false;
}
} else if (!nakTimestamp.equals(other.nakTimestamp)) {
return false;
}
if (primaryDns == null) {
if (other.primaryDns != null) {
return false;
}
} else if (!primaryDns.equals(other.primaryDns)) {
return false;
}
if (secondaryDns == null) {
if (other.secondaryDns != null) {
return false;
}
} else if (!secondaryDns.equals(other.secondaryDns)) {
return false;
}
if (subnetMask == null) {
if (other.subnetMask != null) {
return false;
}
} else if (!subnetMask.equals(other.subnetMask)) {
return false;
}
return true;
}
@Override
public ClientDhcpDetails clone() {
ClientDhcpDetails ret = (ClientDhcpDetails) super.clone();
@@ -241,8 +124,7 @@ public class ClientDhcpDetails extends BaseJsonModel {
public void mergeDetails(ClientDhcpDetails other) {
if(other == null) return;
if(WiFiSessionUtility.decodeWiFiAssociationId(other.associationId)>WiFiSessionUtility.decodeWiFiAssociationId(associationId)) {
if(WiFiSessionUtility.decodeWiFiAssociationId(Long.parseUnsignedLong(other.associationId))>WiFiSessionUtility.decodeWiFiAssociationId(Long.parseUnsignedLong(associationId))) {
// The other dhcp details are from a newer session and so everything must be reset.
this.dhcpServerIp = null;
this.firstDiscoverTimestamp = null;
@@ -258,8 +140,7 @@ public class ClientDhcpDetails extends BaseJsonModel {
this.associationId = other.associationId;
this.fromInternal = false;
}
else if(other.associationId != associationId) {
// other is older, ignore it
if(!Objects.equals(this.associationId, other.associationId)) {
return;
}
dhcpServerIp = (InetAddress) assignOtherIfOtherNotNull(dhcpServerIp, other.dhcpServerIp);
@@ -305,4 +186,28 @@ public class ClientDhcpDetails extends BaseJsonModel {
this.fromInternal = fromInternal;
}
@Override
public int hashCode() {
return Objects.hash(associationId, dhcpServerIp, firstDiscoverTimestamp, firstOfferTimestamp, firstRequestTimestamp, fromInternal, gatewayIp,
leaseStartTimestamp, leaseTimeInSeconds, nakTimestamp, primaryDns, secondaryDns, subnetMask);
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
ClientDhcpDetails other = (ClientDhcpDetails) obj;
return Objects.equals(associationId, other.associationId) && Objects.equals(dhcpServerIp, other.dhcpServerIp)
&& Objects.equals(firstDiscoverTimestamp, other.firstDiscoverTimestamp) && Objects.equals(firstOfferTimestamp, other.firstOfferTimestamp)
&& Objects.equals(firstRequestTimestamp, other.firstRequestTimestamp) && fromInternal == other.fromInternal
&& Objects.equals(gatewayIp, other.gatewayIp) && Objects.equals(leaseStartTimestamp, other.leaseStartTimestamp)
&& Objects.equals(leaseTimeInSeconds, other.leaseTimeInSeconds) && Objects.equals(nakTimestamp, other.nakTimestamp)
&& Objects.equals(primaryDns, other.primaryDns) && Objects.equals(secondaryDns, other.secondaryDns)
&& Objects.equals(subnetMask, other.subnetMask);
}
}

View File

@@ -19,7 +19,7 @@ public class ClientSessionDetails extends BaseJsonModel {
private static final long serialVersionUID = -7714023056859882994L;
private long sessionId;
private String sessionId;
private Long authTimestamp;
private Long assocTimestamp;
private Integer assocInternalSC;
@@ -54,22 +54,22 @@ public class ClientSessionDetails extends BaseJsonModel {
private Boolean is11VUsed;
private SecurityType securityType;
private SteerType steerType;
private Long previousValidSessionId;
private String previousValidSessionId;
private ClientFailureDetails lastFailureDetails;
private ClientFailureDetails firstFailureDetails;
private Integer associationStatus;
private Integer dynamicVlan;
private Integer assocRssi;
private Long priorSessionId;
private String priorSessionId;
private Long priorEquipmentId;
private String classificationName;
private AssociationState associationState;
public long getSessionId() {
public String getSessionId() {
return sessionId;
}
public void setSessionId(long sessionId) {
public void setSessionId(String sessionId) {
this.sessionId = sessionId;
}
@@ -413,11 +413,11 @@ public class ClientSessionDetails extends BaseJsonModel {
this.steerType = steerType;
}
public Long getPreviousValidSessionId() {
public String getPreviousValidSessionId() {
return previousValidSessionId;
}
public void setPreviousValidSessionId(Long previousValidSessionId) {
public void setPreviousValidSessionId(String previousValidSessionId) {
this.previousValidSessionId = previousValidSessionId;
}
@@ -821,11 +821,11 @@ public class ClientSessionDetails extends BaseJsonModel {
this.assocRssi = assocRssi;
}
public Long getPriorSessionId() {
public String getPriorSessionId() {
return priorSessionId;
}
public void setPriorSessionId(Long priorSessionId) {
public void setPriorSessionId(String priorSessionId) {
this.priorSessionId = priorSessionId;
}

View File

@@ -147,8 +147,7 @@ components:
type: object
properties:
sessionId:
type: integer
format: int64
type: string
authTimestamp:
type: integer
format: int64
@@ -235,8 +234,7 @@ components:
steerType:
$ref: '#/components/schemas/SteerType'
previousValidSessionId:
type: integer
format: int64
type: string
lastFailureDetails:
$ref: '#/components/schemas/ClientFailureDetails'
firstFailureDetails:
@@ -251,8 +249,7 @@ components:
type: integer
format: int32
priorSessionId:
type: integer
format: int64
type: string
priorEquipmentId:
type: integer
format: int64

View File

@@ -60,21 +60,6 @@
<scope>test</scope>
</dependency>
<dependency>
<artifactId>status-service-local</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
<scope>test</scope>
</dependency>
<dependency>
<artifactId>status-datastore-inmemory</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
<scope>test</scope>
</dependency>
<dependency>
<artifactId>base-stream-interface</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>

View File

@@ -555,7 +555,7 @@ components:
type: integer
format: int32
payload:
$ref: '#/components/schemas/PortalUser'
$ref: '#/components/schemas/PortalUserEventPayload'
PortalUserChangedEvent:
properties:
@@ -566,7 +566,7 @@ components:
type: integer
format: int32
payload:
$ref: '#/components/schemas/PortalUser'
$ref: '#/components/schemas/PortalUserEventPayload'
PortalUserRemovedEvent:
properties:
@@ -577,7 +577,7 @@ components:
type: integer
format: int32
payload:
$ref: '#/components/schemas/PortalUser'
$ref: '#/components/schemas/PortalUserEventPayload'
ProfileAddedEvent:
properties:
@@ -662,8 +662,7 @@ components:
clientMacAddress:
$ref: '#/components/schemas/MacAddress'
sessionId:
type: integer
format: int64
type: string
customerId:
type: integer
format: int32
@@ -759,8 +758,7 @@ components:
allOf:
$ref: '#/components/schemas/RealTimeEvent'
sessionId:
type: integer
format: int64
type: string
ssid:
type: string
clientMacAddress:
@@ -791,8 +789,7 @@ components:
clientMacAddress:
$ref: '#/components/schemas/MacAddress'
sessionId:
type: integer
format: int64
type: string
radioType:
$ref: '#/components/schemas/RadioType'
isReassociation:
@@ -844,8 +841,7 @@ components:
allOf:
$ref: '#/components/schemas/RealTimeEvent'
sessionId:
type: integer
format: int64
type: string
ssid:
type: string
clientMacAddress:
@@ -860,8 +856,7 @@ components:
allOf:
$ref: '#/components/schemas/RealTimeEvent'
sessionId:
type: integer
format: int64
type: string
macAddressBytes:
type: array
items:
@@ -884,8 +879,7 @@ components:
allOf:
$ref: '#/components/schemas/RealTimeEvent'
sessionId:
type: integer
format: int64
type: string
clientMacAddress:
$ref: '#/components/schemas/MacAddress'
lastRecvTime:
@@ -902,8 +896,7 @@ components:
allOf:
$ref: '#/components/schemas/RealTimeEvent'
sessionId:
type: integer
format: int64
type: string
ssid:
type: string
clientMacAddress:
@@ -934,8 +927,7 @@ components:
allOf:
$ref: '#/components/schemas/RealTimeEvent'
sessionId:
type: integer
format: int64
type: string
ssid:
type: string
clientMacAddress:
@@ -971,8 +963,7 @@ components:
allOf:
$ref: '#/components/schemas/RealTimeEvent'
sessionId:
type: integer
format: int64
type: string
clientMacAddress:
$ref: '#/components/schemas/MacAddress'
firstDataRcvdTs:
@@ -987,8 +978,7 @@ components:
allOf:
$ref: '#/components/schemas/RealTimeEvent'
sessionId:
type: integer
format: int64
type: string
clientMacAddress:
$ref: '#/components/schemas/MacAddress'
ipAddr:
@@ -1061,8 +1051,7 @@ components:
type: integer
format: int64
associationId:
type: integer
format: int64
type: string
clientMacAddress:
$ref: '#/components/schemas/MacAddress'
radioType:
@@ -1104,8 +1093,7 @@ components:
type: integer
format: int64
associationId:
type: integer
format: int64
type: string
macAddress:
$ref: '#/components/schemas/MacAddress'
radioType:
@@ -1144,11 +1132,9 @@ components:
allOf:
$ref: '#/components/schemas/RealTimeEvent'
videoSessionId:
type: integer
format: int64
type: string
sessionId:
type: integer
format: int64
type: string
clientMac:
$ref: '#/components/schemas/MacAddress'
serverIp:
@@ -1164,11 +1150,9 @@ components:
allOf:
$ref: '#/components/schemas/RealTimeEvent'
videoSessionId:
type: integer
format: int64
type: string
sessionId:
type: integer
format: int64
type: string
clientMac:
$ref: '#/components/schemas/MacAddress'
serverIp:
@@ -1185,8 +1169,7 @@ components:
type: integer
format: int64
sessionId:
type: integer
format: int64
type: string
clientMac:
$ref: '#/components/schemas/MacAddress'
serverIp:
@@ -1555,8 +1538,7 @@ components:
type: object
properties:
sessionId:
type: integer
format: int64
type: string
authTimestamp:
type: integer
format: int64
@@ -1643,8 +1625,7 @@ components:
steerType:
$ref: '#/components/schemas/SteerType'
previousValidSessionId:
type: integer
format: int64
type: string
lastFailureDetails:
$ref: '#/components/schemas/ClientFailureDetails'
firstFailureDetails:
@@ -1659,8 +1640,7 @@ components:
type: integer
format: int32
priorSessionId:
type: integer
format: int64
type: string
priorEquipmentId:
type: integer
format: int64
@@ -2402,7 +2382,7 @@ components:
# Portal User data models
#
PortalUser:
PortalUserEventPayload:
type: object
properties:
id:
@@ -2413,10 +2393,6 @@ components:
format: int32
username:
type: string
password:
type: string
role:
$ref: '#/components/schemas/PortalUserRole'
createdTimestamp:
type: integer
format: int64
@@ -2427,8 +2403,6 @@ components:
example:
customerId: 2
username: new_user
password: pwd
role: CustomerIT
PortalUserRole:
type: string
@@ -5064,9 +5038,8 @@ components:
format: int32
sessionId:
type: integer
format: int64
type: string
classificationName:
type: string

View File

@@ -0,0 +1,13 @@
package com.telecominfraproject.wlan.equipmentgateway.models;
public class CEGWMostRecentStatsTimestamp extends CEGatewayCommand {
private static final long serialVersionUID = -9087897865195978158L;
public CEGWMostRecentStatsTimestamp() {
}
public CEGWMostRecentStatsTimestamp(CEGWCommandType commandType, String inventoryId, long equipmentId) {
super(commandType,inventoryId,equipmentId);
}
}

View File

@@ -118,33 +118,40 @@ public class EquipmentRrmBulkUpdateItem extends BaseJsonModel {
finalDetails.getRadioMap().put(rt, erc);
}
if(erc.getManualChannelNumber()== null || erc.getManualChannelNumber().intValue() != updateDetails.getChannelNumber()) {
if(erc.getManualChannelNumber() == null
|| erc.getManualChannelNumber().intValue() != updateDetails.getChannelNumber()) {
erc.setManualChannelNumber(updateDetails.getChannelNumber());
modelChanged.set(true);
}
if(erc.getManualBackupChannelNumber()== null ||
erc.getManualBackupChannelNumber().intValue() != updateDetails.getBackupChannelNumber()) {
if(erc.getManualBackupChannelNumber() == null
|| erc.getManualBackupChannelNumber().intValue() != updateDetails.getBackupChannelNumber()) {
erc.setManualBackupChannelNumber(updateDetails.getBackupChannelNumber());
modelChanged.set(true);
}
if ((erc.getClientDisconnectThresholdDb() == null && updateDetails.getClientDisconnectThresholdDb() != null)
|| !erc.getClientDisconnectThresholdDb().equals(updateDetails.getClientDisconnectThresholdDb())) {
erc.setClientDisconnectThresholdDb(updateDetails.getClientDisconnectThresholdDb());
modelChanged.set(true);
if (updateDetails.getClientDisconnectThresholdDb() != null) {
if ((erc.getClientDisconnectThresholdDb() == null && updateDetails.getClientDisconnectThresholdDb() != null)
|| !erc.getClientDisconnectThresholdDb().equals(updateDetails.getClientDisconnectThresholdDb())) {
erc.setClientDisconnectThresholdDb(updateDetails.getClientDisconnectThresholdDb());
modelChanged.set(true);
}
}
if ((erc.getProbeResponseThresholdDb() == null && updateDetails.getProbeResponseThresholdDb() != null)
|| !erc.getProbeResponseThresholdDb().equals(updateDetails.getProbeResponseThresholdDb())) {
erc.setProbeResponseThresholdDb(updateDetails.getProbeResponseThresholdDb());
modelChanged.set(true);
if (updateDetails.getProbeResponseThresholdDb() != null) {
if ((erc.getProbeResponseThresholdDb() == null && updateDetails.getProbeResponseThresholdDb() != null)
|| !erc.getProbeResponseThresholdDb().equals(updateDetails.getProbeResponseThresholdDb())) {
erc.setProbeResponseThresholdDb(updateDetails.getProbeResponseThresholdDb());
modelChanged.set(true);
}
}
if ((erc.getRxCellSizeDb() == null && updateDetails.getRxCellSizeDb() != null)
|| !erc.getRxCellSizeDb().equals(updateDetails.getRxCellSizeDb())) {
erc.setRxCellSizeDb(updateDetails.getRxCellSizeDb());
modelChanged.set(true);
if (updateDetails.getRxCellSizeDb() != null) {
if ((erc.getRxCellSizeDb() == null && updateDetails.getRxCellSizeDb() != null)
|| !erc.getRxCellSizeDb().equals(updateDetails.getRxCellSizeDb())) {
erc.setRxCellSizeDb(updateDetails.getRxCellSizeDb());
modelChanged.set(true);
}
}

View File

@@ -10,7 +10,7 @@ import com.telecominfraproject.wlan.core.model.json.JsonDeserializationUtils;
public enum EquipmentChangeType {
All(0), ChannelsOnly(1), CellSizeAttributesOnly(2), ApImpacting(3), blinkLEDs(4), UNSUPPORTED(-1);
All(0), ChannelsOnly(1), CellSizeAttributesOnly(2), ApImpacting(3), blinkLEDs(4), CustomerOnly(5), UNSUPPORTED(-1);
private final int id;
private static final Map<Integer, EquipmentChangeType> ELEMENTS = new HashMap<>();

View File

@@ -0,0 +1,41 @@
package com.telecominfraproject.wlan.equipment.models.events;
import com.telecominfraproject.wlan.equipment.models.Equipment;
public class EquipmentCustomerChangedEvent extends EquipmentChangedEvent {
private static final long serialVersionUID = 4650302079238674307L;
private Equipment existingEquipment; // old equipment
private Equipment equipment; // new configured equipment
public EquipmentCustomerChangedEvent(Equipment existingEquipment, Equipment equipment) {
super(equipment);
setEquipmentChangeType(EquipmentChangeType.CustomerOnly);
this.setExistingEquipment(existingEquipment);
this.setEquipment(equipment);
}
/**
* Constructor used by JSON
*/
@SuppressWarnings("unused")
private EquipmentCustomerChangedEvent() {
super();
}
public Equipment getExistingEquipment() {
return existingEquipment;
}
public void setExistingEquipment(Equipment existingEquipment) {
this.existingEquipment = existingEquipment;
}
public Equipment getEquipment() {
return equipment;
}
public void setEquipment(Equipment equipment) {
this.equipment = equipment;
}
}

View File

@@ -1,84 +1,58 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.telecominfraproject.wlan</groupId>
<artifactId>tip-wlan-cloud-root-pom</artifactId>
<version>1.2.0-SNAPSHOT</version>
<relativePath>../../wlan-cloud-root</relativePath>
</parent>
<artifactId>equipment-service-remote</artifactId>
<name>equipment-service-remote</name>
<description>Remote client for accessing the service, uses REST API calls.</description>
<dependencies>
<dependency>
<artifactId>equipment-service-interface</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<artifactId>status-service-interface</artifactId>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.telecominfraproject.wlan</groupId>
<version>${tip-wlan-cloud.release.version}</version>
</dependency>
<dependency>
<artifactId>base-client</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<artifactId>tip-wlan-cloud-root-pom</artifactId>
<version>1.2.0-SNAPSHOT</version>
<relativePath>../../wlan-cloud-root</relativePath>
</parent>
<!-- Dependencies for the unit tests -->
<dependency>
<artifactId>base-remote-tests</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
<scope>test</scope>
</dependency>
<dependency>
<artifactId>equipment-service</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
<scope>test</scope>
</dependency>
<artifactId>equipment-service-remote</artifactId>
<name>equipment-service-remote</name>
<description>Remote client for accessing the service, uses REST API calls.</description>
<dependency>
<artifactId>equipment-datastore-inmemory</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
<scope>test</scope>
</dependency>
<dependencies>
<dependency>
<artifactId>equipment-service-interface</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<artifactId>cloud-event-dispatcher-empty</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
<scope>test</scope>
</dependency>
<dependency>
<artifactId>status-service-local</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
<scope>test</scope>
</dependency>
<dependency>
<artifactId>base-client</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<artifactId>status-service</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
<scope>test</scope>
</dependency>
<dependency>
<artifactId>status-datastore-inmemory</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
<scope>test</scope>
</dependency>
<!-- Dependencies for the unit tests -->
<dependency>
<artifactId>base-remote-tests</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
<scope>test</scope>
</dependency>
</dependencies>
<dependency>
<artifactId>equipment-service</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
<scope>test</scope>
</dependency>
<dependency>
<artifactId>equipment-datastore-inmemory</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
<scope>test</scope>
</dependency>
<dependency>
<artifactId>cloud-event-dispatcher-empty</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>

View File

@@ -1,72 +1,59 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.telecominfraproject.wlan</groupId>
<artifactId>tip-wlan-cloud-root-pom</artifactId>
<version>1.2.0-SNAPSHOT</version>
<relativePath>../../wlan-cloud-root</relativePath>
</parent>
<artifactId>equipment-service</artifactId>
<name>equipment-service</name>
<description>Server side implementation of the service.</description>
<dependencies>
<dependency>
<artifactId>base-container</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<artifactId>cloud-event-dispatcher-interface</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<artifactId>equipment-models</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<artifactId>equipment-datastore-interface</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<artifactId>equipment-datastore-inmemory</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
<scope>test</scope>
</dependency>
<dependency>
<artifactId>status-service-interface</artifactId>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.telecominfraproject.wlan</groupId>
<artifactId>tip-wlan-cloud-root-pom</artifactId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<artifactId>status-service-local</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
<scope>test</scope>
</dependency>
<dependency>
<artifactId>status-datastore-inmemory</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
<scope>test</scope>
</dependency>
<dependency>
<artifactId>cloud-event-dispatcher-empty</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
<scope>test</scope>
</dependency>
<relativePath>../../wlan-cloud-root</relativePath>
</parent>
</dependencies>
<artifactId>equipment-service</artifactId>
<name>equipment-service</name>
<description>Server side implementation of the service.</description>
<dependencies>
<dependency>
<artifactId>alarm-service-interface</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<artifactId>base-container</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<artifactId>cloud-event-dispatcher-interface</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<artifactId>equipment-models</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<artifactId>equipment-datastore-interface</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<artifactId>equipment-datastore-inmemory</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
<scope>test</scope>
</dependency>
<dependency>
<artifactId>cloud-event-dispatcher-empty</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>

View File

@@ -51,13 +51,10 @@ import com.telecominfraproject.wlan.equipment.models.events.EquipmentBlinkLEDsEv
import com.telecominfraproject.wlan.equipment.models.events.EquipmentCellSizeAttributesChangedEvent;
import com.telecominfraproject.wlan.equipment.models.events.EquipmentChangedEvent;
import com.telecominfraproject.wlan.equipment.models.events.EquipmentChannelsChangedEvent;
import com.telecominfraproject.wlan.equipment.models.events.EquipmentCustomerChangedEvent;
import com.telecominfraproject.wlan.equipment.models.events.EquipmentRemovedEvent;
import com.telecominfraproject.wlan.server.exceptions.ConfigurationException;
import com.telecominfraproject.wlan.systemevent.models.SystemEvent;
import com.telecominfraproject.wlan.status.StatusServiceInterface;
import com.telecominfraproject.wlan.status.models.Status;
import com.telecominfraproject.wlan.status.models.StatusDataType;
/**
* @author dtoptygin
@@ -76,8 +73,7 @@ public class EquipmentController {
@Autowired private EquipmentDatastore equipmentDatastore;
@Autowired private CloudEventDispatcherInterface cloudEventDispatcher;
@Autowired private StatusServiceInterface statusServiceInterface;
/**
* Creates new Equipment.
*
@@ -284,36 +280,23 @@ public class EquipmentController {
LOG.debug("Updated Equipment {}", ret);
EquipmentChangedEvent event;
if ((equipment.getProfileId() != existingEquipment.getProfileId()) || (existingApElementConfig != null && updatedApElementConfig != null &&
if (ret.getCustomerId() != existingEquipment.getCustomerId()) {
publishEvent(new EquipmentCustomerChangedEvent(existingEquipment, ret));
}
if ((ret.getProfileId() != existingEquipment.getProfileId()) || (existingApElementConfig != null && updatedApElementConfig != null &&
updatedApElementConfig.needsToBeUpdatedOnDevice(existingApElementConfig))) {
event = new EquipmentApImpactingChangedEvent(ret);
} else if (existingApElementConfig != null && existingApElementConfig.isBlinkAllLEDs() != updatedApElementConfig.isBlinkAllLEDs()) {
LOG.debug("Updated BlinkingLEDs {}", ret);
event = new EquipmentBlinkLEDsEvent(ret);
}
else {
} else {
event = new EquipmentChangedEvent(ret);
}
publishEvent(event);
// when customerId changes, we keep the EQUIPMENT_ADMIN and PROTOCOL status of the AP (which requires the existing data)
if (equipment.getCustomerId() != existingEquipment.getCustomerId()) {
Status status = statusServiceInterface.getOrNull(existingEquipment.getCustomerId(), existingEquipment.getId(), StatusDataType.EQUIPMENT_ADMIN);
if (status != null) {
status.setCustomerId(equipment.getCustomerId());
statusServiceInterface.update(status);
}
status = statusServiceInterface.getOrNull(existingEquipment.getCustomerId(), existingEquipment.getId(), StatusDataType.PROTOCOL);
if (status != null) {
status.setCustomerId(equipment.getCustomerId());
statusServiceInterface.update(status);
}
}
return ret;
}
private void validateChannelNum(Equipment equipment) {
if (equipment.getDetails() instanceof ApElementConfiguration) {
ApElementConfiguration apElementConfiguration = (ApElementConfiguration) equipment.getDetails();

View File

@@ -18,9 +18,6 @@ import com.telecominfraproject.wlan.cloudeventdispatcher.CloudEventDispatcherEmp
import com.telecominfraproject.wlan.core.model.equipment.EquipmentType;
import com.telecominfraproject.wlan.equipment.datastore.inmemory.EquipmentDatastoreInMemory;
import com.telecominfraproject.wlan.equipment.models.Equipment;
import com.telecominfraproject.wlan.status.StatusServiceLocal;
import com.telecominfraproject.wlan.status.controller.StatusController;
import com.telecominfraproject.wlan.status.datastore.inmemory.StatusDatastoreInMemory;
/**
* @author dtoptygin
@@ -37,10 +34,7 @@ import com.telecominfraproject.wlan.status.datastore.inmemory.StatusDatastoreInM
EquipmentController.class,
CloudEventDispatcherEmpty.class,
EquipmentDatastoreInMemory.class,
EquipmentControllerTest.Config.class,
StatusServiceLocal.class,
StatusController.class,
StatusDatastoreInMemory.class
EquipmentControllerTest.Config.class
})
public class EquipmentControllerTest {

View File

@@ -161,20 +161,6 @@
<version>1.2.0-SNAPSHOT</version>
<scope>test</scope>
</dependency>
<dependency>
<artifactId>status-service-local</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
<scope>test</scope>
</dependency>
<dependency>
<artifactId>status-datastore-inmemory</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>

View File

@@ -137,11 +137,12 @@ public class EquipmentGatewayPortalController {
return new GenericResponse(false, "Failed to trigger AP factory reset: " + response.getResultCode() + " " + response.getResultDetail());
}
}
@RequestMapping(value = "/equipmentGateway/requestApBlinkLEDs", method = RequestMethod.POST)
public GenericResponse requestApBlinkLEDs(@RequestParam long equipmentId, @RequestParam boolean blinkAllLEDs) {
String action = "stop blinking LEDs on AP ";
if (blinkAllLEDs) action = "start blinking LEDs on AP ";
if (blinkAllLEDs)
action = "start blinking LEDs on AP ";
Equipment equipment = equipmentServiceInterface.get(equipmentId);
LOG.debug("Request {} for AP {}", action, equipment.getInventoryId());
@@ -150,8 +151,7 @@ public class EquipmentGatewayPortalController {
apBlinkLEDs.setBlinkAllLEDs(blinkAllLEDs);
EquipmentCommandResponse response = equipmentGatewayServiceInterface.sendCommand(apBlinkLEDs);
LOG.debug("{} response {}", action,response);
LOG.debug("{} response {}", action, response);
if (response.getResultCode() == CEGWCommandResultCode.Success) {
return new GenericResponse(true, "");

View File

@@ -4347,8 +4347,7 @@ components:
type: object
properties:
sessionId:
type: integer
format: int64
type: string
authTimestamp:
type: integer
format: int64
@@ -4435,8 +4434,7 @@ components:
steerType:
$ref: '#/components/schemas/SteerType'
previousValidSessionId:
type: integer
format: int64
type: string
lastFailureDetails:
$ref: '#/components/schemas/ClientFailureDetails'
firstFailureDetails:
@@ -4451,8 +4449,7 @@ components:
type: integer
format: int32
priorSessionId:
type: integer
format: int64
type: string
priorEquipmentId:
type: integer
format: int64
@@ -5234,9 +5231,8 @@ components:
format: int32
sessionId:
type: integer
format: int64
type: string
classificationName:
type: string
@@ -9783,8 +9779,7 @@ components:
clientMacAddress:
$ref: '#/components/schemas/MacAddress'
sessionId:
type: integer
format: int64
type: string
customerId:
type: integer
format: int32
@@ -9916,8 +9911,7 @@ components:
allOf:
$ref: '#/components/schemas/RealTimeEvent'
sessionId:
type: integer
format: int64
type: string
ssid:
type: string
clientMacAddress:
@@ -9952,8 +9946,7 @@ components:
clientMacAddress:
$ref: '#/components/schemas/MacAddress'
sessionId:
type: integer
format: int64
type: string
radioType:
$ref: '#/components/schemas/RadioType'
isReassociation:
@@ -10009,8 +10002,7 @@ components:
allOf:
$ref: '#/components/schemas/RealTimeEvent'
sessionId:
type: integer
format: int64
type: string
ssid:
type: string
clientMacAddress:
@@ -10029,8 +10021,7 @@ components:
allOf:
$ref: '#/components/schemas/RealTimeEvent'
sessionId:
type: integer
format: int64
type: string
macAddressBytes:
type: array
items:
@@ -10057,8 +10048,7 @@ components:
allOf:
$ref: '#/components/schemas/RealTimeEvent'
sessionId:
type: integer
format: int64
type: string
clientMacAddress:
$ref: '#/components/schemas/MacAddress'
lastRecvTime:
@@ -10079,8 +10069,7 @@ components:
allOf:
$ref: '#/components/schemas/RealTimeEvent'
sessionId:
type: integer
format: int64
type: string
ssid:
type: string
clientMacAddress:
@@ -10115,8 +10104,7 @@ components:
allOf:
$ref: '#/components/schemas/RealTimeEvent'
sessionId:
type: integer
format: int64
type: string
ssid:
type: string
clientMacAddress:
@@ -10156,8 +10144,7 @@ components:
allOf:
$ref: '#/components/schemas/RealTimeEvent'
sessionId:
type: integer
format: int64
type: string
clientMacAddress:
$ref: '#/components/schemas/MacAddress'
firstDataRcvdTs:
@@ -10176,8 +10163,7 @@ components:
allOf:
$ref: '#/components/schemas/RealTimeEvent'
sessionId:
type: integer
format: int64
type: string
clientMacAddress:
$ref: '#/components/schemas/MacAddress'
ipAddr:
@@ -10259,8 +10245,7 @@ components:
type: integer
format: int64
associationId:
type: integer
format: int64
type: string
clientMacAddress:
$ref: '#/components/schemas/MacAddress'
radioType:
@@ -10302,8 +10287,7 @@ components:
type: integer
format: int64
associationId:
type: integer
format: int64
type: string
macAddress:
$ref: '#/components/schemas/MacAddress'
radioType:
@@ -10350,11 +10334,9 @@ components:
allOf:
$ref: '#/components/schemas/RealTimeEvent'
videoSessionId:
type: integer
format: int64
type: string
sessionId:
type: integer
format: int64
type: string
clientMac:
$ref: '#/components/schemas/MacAddress'
serverIp:
@@ -10374,11 +10356,9 @@ components:
allOf:
$ref: '#/components/schemas/RealTimeEvent'
videoSessionId:
type: integer
format: int64
type: string
sessionId:
type: integer
format: int64
type: string
clientMac:
$ref: '#/components/schemas/MacAddress'
serverIp:
@@ -10396,11 +10376,9 @@ components:
allOf:
$ref: '#/components/schemas/RealTimeEvent'
videoSessionId:
type: integer
format: int64
type: string
sessionId:
type: integer
format: int64
type: string
clientMac:
$ref: '#/components/schemas/MacAddress'
serverIp:

View File

@@ -34,10 +34,6 @@ import com.telecominfraproject.wlan.profile.datastore.inmemory.ProfileDatastoreI
import com.telecominfraproject.wlan.profile.models.Profile;
import com.telecominfraproject.wlan.profile.models.ProfileByCustomerRequestFactory;
import com.telecominfraproject.wlan.profile.models.ProfileType;
import com.telecominfraproject.wlan.status.StatusServiceLocal;
import com.telecominfraproject.wlan.status.controller.StatusController;
import com.telecominfraproject.wlan.status.datastore.inmemory.StatusDatastoreInMemory;
@RunWith(SpringRunner.class)
@ActiveProfiles(profiles = {
@@ -53,10 +49,7 @@ import com.telecominfraproject.wlan.status.datastore.inmemory.StatusDatastoreInM
ProfileDatastoreInMemory.class,
ProfileByCustomerRequestFactory.class,
CloudEventDispatcherEmpty.class,
ProfilePortalController.class,
StatusServiceLocal.class,
StatusController.class,
StatusDatastoreInMemory.class
ProfilePortalController.class
})
public class ProfilePortalControllerTest {
private static AtomicLong profileIncrementer = new AtomicLong(1);

View File

@@ -148,7 +148,7 @@ public class PortalUserDatastoreInMemory extends BaseInMemoryDatastore implement
PortalUser ret = null;
for (PortalUser mdl : idToPortalUserMap.values()) {
if(mdl.getCustomerId() == customerId && mdl.getUsername().equals(username)) {
if(mdl.getCustomerId() == customerId && mdl.getUsername().toLowerCase().equals(username.toLowerCase())) {
ret = mdl.clone();
}
}
@@ -161,7 +161,7 @@ public class PortalUserDatastoreInMemory extends BaseInMemoryDatastore implement
List<PortalUser> listOfPortalUsers = new ArrayList<>();
for (PortalUser portalUser : idToPortalUserMap.values()) {
if (portalUser.getUsername().equals(username)) {
if (portalUser.getUsername().toLowerCase().equals(username.toLowerCase())) {
listOfPortalUsers.add(portalUser);
}
}

View File

@@ -75,7 +75,6 @@ public class PortalUserDAO extends BaseJdbcDao {
public static final Set<String> ALL_COLUMNS_LOWERCASE = new HashSet<>();
@SuppressWarnings("unused")
//use this for queries where multiple tables are involved
public static final String ALL_COLUMNS_WITH_PREFIX;
@@ -135,10 +134,10 @@ public class PortalUserDAO extends BaseJdbcDao {
private static final String SQL_GET_BY_USERNAME =
"select " + ALL_COLUMNS +
" from " + TABLE_NAME + " " +
" where username = ? ";
" where lower(username) = ? ";
private static final String SQL_GET_BY_CUSTOMERID_AND_USERNAME = SQL_GET_BY_CUSTOMER_ID +
" and username = ?";
" and lower(username) = ?";
private static final String SQL_GET_LASTMOD_BY_ID =
"select lastModifiedTimestamp " +
@@ -463,7 +462,7 @@ public class PortalUserDAO extends BaseJdbcDao {
try{
PortalUser portalUser = this.jdbcTemplate.queryForObject(
SQL_GET_BY_CUSTOMERID_AND_USERNAME,
portalUserRowMapper, customerId, username);
portalUserRowMapper, customerId, username.toLowerCase());
LOG.debug("Found PortalUser {}", portalUser);
@@ -478,7 +477,7 @@ public class PortalUserDAO extends BaseJdbcDao {
LOG.debug("Looking up PortalUsers for username {} {}", username);
List<PortalUser> ret = this.jdbcTemplate.query(SQL_GET_BY_USERNAME,
portalUserRowMapper, username);
portalUserRowMapper, username.toLowerCase());
LOG.debug("Found List of Portal Users {}", ret);

View File

@@ -20,6 +20,8 @@ public class PortalUserEventPayload extends BaseJsonModel implements HasCustomer
private long createdTimestamp;
private long lastModifiedTimestamp;
public PortalUserEventPayload() {}
public PortalUserEventPayload(PortalUser portalUser) {
this.setId(portalUser.getId());
this.setCustomerId(portalUser.getCustomerId());

View File

@@ -1,97 +1,111 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.telecominfraproject.wlan</groupId>
<artifactId>tip-wlan-cloud-root-pom</artifactId>
<version>1.2.0-SNAPSHOT</version>
<relativePath>../../wlan-cloud-root</relativePath>
</parent>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.telecominfraproject.wlan</groupId>
<artifactId>tip-wlan-cloud-root-pom</artifactId>
<version>1.2.0-SNAPSHOT</version>
<relativePath>../../wlan-cloud-root</relativePath>
</parent>
<artifactId>provisioning-sp</artifactId>
<name>provisioning-sp</name>
<description>Stream Processors for provisioning events.</description>
<dependencies>
<dependency>
<artifactId>base-stream-consumer</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<artifactId>provisioning-sp</artifactId>
<name>provisioning-sp</name>
<description>Stream Processors for provisioning events.</description>
<dependency>
<artifactId>service-metric-models</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<dependencies>
<dependency>
<artifactId>base-stream-consumer</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<artifactId>system-event-models</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<artifactId>service-metric-models</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<artifactId>base-models</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<artifactId>routing-service-interface</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<artifactId>equipment-gateway-service-interface</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<artifactId>system-event-models</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<artifactId>equipment-service-interface</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<artifactId>base-models</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<artifactId>location-service-interface</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<artifactId>routing-service-interface</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<artifactId>profile-service-interface</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<artifactId>client-service-interface</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<!-- models used by the application logic of the stream processor -->
<dependency>
<artifactId>equipment-models</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<artifactId>profile-models</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<artifactId>equipment-gateway-service-interface</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<artifactId>location-models</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<artifactId>equipment-service-interface</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
</dependencies>
<dependency>
<artifactId>location-service-interface</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<artifactId>profile-service-interface</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<artifactId>client-service-interface</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<artifactId>alarm-service-interface</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<artifactId>status-service-interface</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<!-- models used by the application logic of the stream processor -->
<dependency>
<artifactId>equipment-models</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<artifactId>profile-models</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<artifactId>location-models</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.2.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>

View File

@@ -13,6 +13,11 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import com.telecominfraproject.wlan.alarm.AlarmServiceInterface;
import com.telecominfraproject.wlan.alarm.models.Alarm;
import com.telecominfraproject.wlan.client.ClientServiceInterface;
import com.telecominfraproject.wlan.client.session.models.AssociationState;
import com.telecominfraproject.wlan.client.session.models.ClientSession;
import com.telecominfraproject.wlan.core.model.json.BaseJsonModel;
import com.telecominfraproject.wlan.core.model.pagination.PaginationContext;
import com.telecominfraproject.wlan.core.model.pagination.PaginationResponse;
@@ -25,6 +30,7 @@ import com.telecominfraproject.wlan.equipment.models.events.EquipmentApImpacting
import com.telecominfraproject.wlan.equipment.models.events.EquipmentBlinkLEDsEvent;
import com.telecominfraproject.wlan.equipment.models.events.EquipmentCellSizeAttributesChangedEvent;
import com.telecominfraproject.wlan.equipment.models.events.EquipmentChannelsChangedEvent;
import com.telecominfraproject.wlan.equipment.models.events.EquipmentCustomerChangedEvent;
import com.telecominfraproject.wlan.equipment.models.events.EquipmentRemovedEvent;
import com.telecominfraproject.wlan.equipmentgateway.models.CEGWBaseCommand;
import com.telecominfraproject.wlan.equipmentgateway.models.CEGWBlinkRequest;
@@ -39,6 +45,9 @@ import com.telecominfraproject.wlan.profile.models.Profile;
import com.telecominfraproject.wlan.profile.models.events.ProfileAddedEvent;
import com.telecominfraproject.wlan.profile.models.events.ProfileChangedEvent;
import com.telecominfraproject.wlan.profile.models.events.ProfileRemovedEvent;
import com.telecominfraproject.wlan.status.StatusServiceInterface;
import com.telecominfraproject.wlan.status.models.Status;
import com.telecominfraproject.wlan.status.models.StatusDataType;
import com.telecominfraproject.wlan.stream.StreamProcessor;
import com.telecominfraproject.wlan.systemevent.models.SystemEvent;
import com.telecominfraproject.wlan.systemevent.models.SystemEventRecord;
@@ -65,6 +74,12 @@ public class EquipmentConfigPushTrigger extends StreamProcessor {
private ProfileServiceInterface profileServiceInterface;
@Autowired
private EquipmentServiceInterface equipmentServiceInterface;
@Autowired
private StatusServiceInterface statusServiceInterface;
@Autowired
private AlarmServiceInterface alarmServiceInterface;
@Autowired
private ClientServiceInterface clientServiceInterface;
@Override
protected boolean acceptMessage(QueuedStreamMessage message) {
@@ -77,7 +92,7 @@ public class EquipmentConfigPushTrigger extends StreamProcessor {
|| ser.getDetails() instanceof EquipmentChannelsChangedEvent || ser.getDetails() instanceof EquipmentCellSizeAttributesChangedEvent
|| ser.getDetails() instanceof EquipmentRemovedEvent || ser.getDetails() instanceof ProfileAddedEvent
|| ser.getDetails() instanceof ProfileChangedEvent || ser.getDetails() instanceof ProfileRemovedEvent
|| ser.getDetails() instanceof LocationChangedApImpactingEvent);
|| ser.getDetails() instanceof LocationChangedApImpactingEvent || ser.getDetails() instanceof EquipmentCustomerChangedEvent);
} else {
ret = false;
}
@@ -121,6 +136,8 @@ public class EquipmentConfigPushTrigger extends StreamProcessor {
case "LocationChangedApImpactingEvent":
process((LocationChangedApImpactingEvent) se);
break;
case "EquipmentCustomerChangedEvent":
process((EquipmentCustomerChangedEvent) se);
default:
process(mdl);
}
@@ -235,8 +252,77 @@ public class EquipmentConfigPushTrigger extends StreamProcessor {
}
private void process(EquipmentCustomerChangedEvent model) {
LOG.info("Processing EquipmentCustomerChangedEvent {}", model.getPayload().getId());
Equipment existingEquipment = model.getExistingEquipment();
Equipment equipment = model.getEquipment();
// when customerId changes, we keep the EQUIPMENT_ADMIN and PROTOCOL status of the AP
Status status = statusServiceInterface.getOrNull(existingEquipment.getCustomerId(), existingEquipment.getId(), StatusDataType.EQUIPMENT_ADMIN);
if (status != null) {
status.setCustomerId(equipment.getCustomerId());
statusServiceInterface.update(status);
}
status = statusServiceInterface.getOrNull(existingEquipment.getCustomerId(), existingEquipment.getId(), StatusDataType.PROTOCOL);
if (status != null) {
status.setCustomerId(equipment.getCustomerId());
statusServiceInterface.update(status);
}
// Alarms has to move to new customerId as well
List<Alarm> oldCustomerAlarms = alarmServiceInterface.get(existingEquipment.getCustomerId(), Set.of(existingEquipment.getId()), null);
if (!oldCustomerAlarms.isEmpty()) {
oldCustomerAlarms.stream().forEach(a -> {
a.setCustomerId(equipment.getCustomerId());
Alarm alarm = alarmServiceInterface.create(a);
LOG.debug("Move an alarm to new customer {}", alarm);
});
}
alarmServiceInterface.delete(existingEquipment.getCustomerId(), existingEquipment.getId());
// Disconnect all associated client devices from existing equipment
disconnectClients(existingEquipment);
}
private void process(BaseJsonModel model) {
LOG.warn("Unprocessed model: {}", model);
}
private void disconnectClients(Equipment ce) {
LOG.info("EquipmentConfigPushTrigger::disconnectClients for Equipment {}", ce);
PaginationResponse<ClientSession> clientSessions = clientServiceInterface.getSessionsForCustomer(
ce.getCustomerId(), Set.of(ce.getId()), Set.of(ce.getLocationId()), null, null,
new PaginationContext<ClientSession>(100));
if (clientSessions == null) {
LOG.info("There are no existing client sessions to disconnect.");
return;
}
List<ClientSession> toBeDisconnected = new ArrayList<>();
clientSessions.getItems().stream().forEach(c -> {
if (c.getDetails().getAssociationState() != null
&& !c.getDetails().getAssociationState().equals(AssociationState.Disconnected)) {
LOG.info("Change association state for client {} from {} to {}", c.getMacAddress(),
c.getDetails().getAssociationState(), AssociationState.Disconnected);
c.getDetails().setAssociationState(AssociationState.Disconnected);
toBeDisconnected.add(c);
}
});
if (!toBeDisconnected.isEmpty()) {
LOG.info("Sending disconnect for client sessions {}", toBeDisconnected);
List<ClientSession> disconnectedSessions = clientServiceInterface.updateSessions(toBeDisconnected);
LOG.info("Result of client disconnect {}", disconnectedSessions);
} else {
LOG.info("There are no existing client sessions that are not already in Disconnected state.");
}
}
}

View File

@@ -42,7 +42,7 @@ public class ClientMetrics extends ServiceMetricDetails {
private Integer vhtMcs;
private Integer snr;
private Integer rssi;
private Long sessionId;
private String sessionId;
private String classificationName;
ChannelBandwidth channelBandWidth;
GuardInterval guardInterval;
@@ -1191,7 +1191,7 @@ public class ClientMetrics extends ServiceMetricDetails {
return rxLastRssi;
}
public Long getSessionId() {
public String getSessionId() {
return sessionId;
}
@@ -1537,7 +1537,7 @@ public class ClientMetrics extends ServiceMetricDetails {
this.rxLastRssi = rxLastRssi;
}
public void setSessionId(Long sessionId) {
public void setSessionId(String sessionId) {
this.sessionId = sessionId;
}

View File

@@ -270,8 +270,7 @@ components:
format: int32
sessionId:
type: integer
format: int64
type: string
classificationName:
type: string

View File

@@ -56,8 +56,7 @@ public class StatusDatastoreCassandra implements StatusDatastore {
private static final Set<String> columnsToSkipForUpdate = new HashSet<>(Arrays.asList(
"customerId",
"equipmentId",
"statusDataType",
"createdTimestamp"));
"statusDataType"));
private static final String TABLE_NAME = "status";
private static final String ALL_COLUMNS;
@@ -230,11 +229,14 @@ public class StatusDatastoreCassandra implements StatusDatastore {
//This DAO does not enforce check for concurrent updates. Last one always wins.
long newLastModifiedTs = System.currentTimeMillis();
boolean isCreateNotSet = status.getCreatedTimestamp() == 0;
cqlSession.execute(preparedStmt_update.bind(
//TODO: add remaining properties from Status here
(status.getDetails()!=null) ? ByteBuffer.wrap(status.getDetails().toZippedBytes()) : null ,
isCreateNotSet ? newLastModifiedTs : status.getCreatedTimestamp(),
newLastModifiedTs,
@@ -253,6 +255,9 @@ public class StatusDatastoreCassandra implements StatusDatastore {
//make a copy so that we don't accidentally update caller's version by reference
Status statusCopy = status.clone();
if(isCreateNotSet) {
statusCopy.setCreatedTimestamp(newLastModifiedTs);
}
statusCopy.setLastModifiedTimestamp(newLastModifiedTs);
LOG.debug("Updated Status {}", statusCopy);

View File

@@ -20,12 +20,12 @@ public abstract class BaseDhcpEvent extends SystemEvent implements HasClientMac,
private InetAddress clientIp;
private InetAddress relayIp;
private MacAddress clientMacAddress;
private long sessionId; // association sessionid
private String sessionId; // association sessionid
private int customerId;
private long equipmentId;
private long locationId;
public BaseDhcpEvent(int customerId, long locationId, long equipmentId, long eventTimestamp, long sessionId) {
public BaseDhcpEvent(int customerId, long locationId, long equipmentId, long eventTimestamp, String sessionId) {
super(eventTimestamp);
this.customerId = customerId;
this.locationId = locationId;
@@ -113,11 +113,11 @@ public abstract class BaseDhcpEvent extends SystemEvent implements HasClientMac,
this.relayIp = relayIp;
}
public long getSessionId() {
public String getSessionId() {
return sessionId;
}
public void setSessionId(long sessionId) {
public void setSessionId(String sessionId) {
this.sessionId = sessionId;
}

View File

@@ -22,12 +22,12 @@ public class DhcpAckEvent extends BaseDhcpEvent {
*/
private boolean fromInternal = false;
public DhcpAckEvent(int customerId, long locationId, long equipmentId, long eventTimestamp, long sessionId) {
public DhcpAckEvent(int customerId, long locationId, long equipmentId, long eventTimestamp, String sessionId) {
super(customerId, locationId, equipmentId, eventTimestamp, sessionId);
}
public DhcpAckEvent() {
super(0, 0L,0L,0L,0L);
super(0, 0L,0L,0L,"0");
}
public InetAddress getGatewayIp() {

View File

@@ -10,12 +10,12 @@ package com.telecominfraproject.wlan.systemevent.equipment;
public class DhcpDeclineEvent extends BaseDhcpEvent {
private static final long serialVersionUID = -7745659083975485467L;
public DhcpDeclineEvent(int customerId, long locationId, long equipmentId, long eventTimestamp, long sessionId){
public DhcpDeclineEvent(int customerId, long locationId, long equipmentId, long eventTimestamp, String sessionId){
super(customerId, locationId, equipmentId,eventTimestamp, sessionId);
}
public DhcpDeclineEvent() {
super(0,0L, 0L,0L,0L);
super(0,0L, 0L,0L,"0");
}
@Override

View File

@@ -9,12 +9,12 @@ public class DhcpDiscoverEvent extends BaseDhcpEvent {
private static final long serialVersionUID = -8290687227649478971L;
private String hostName;
public DhcpDiscoverEvent(int customerId, long locationId, long equipmentId, long eventTimestamp, long sessionId){
public DhcpDiscoverEvent(int customerId, long locationId, long equipmentId, long eventTimestamp, String sessionId){
super(customerId, locationId,equipmentId,eventTimestamp,sessionId);
}
public DhcpDiscoverEvent() {
super(0, 0L,0L,0L,0L);
super(0, 0L,0L,0L,"0");
}
/**

View File

@@ -10,12 +10,12 @@ package com.telecominfraproject.wlan.systemevent.equipment;
public class DhcpInformEvent extends BaseDhcpEvent {
private static final long serialVersionUID = 7053813308222200205L;
public DhcpInformEvent(int customerId, long locationId, long equipmentId, long eventTimestamp, long sessionId){
public DhcpInformEvent(int customerId, long locationId, long equipmentId, long eventTimestamp, String sessionId){
super(customerId, locationId,equipmentId,eventTimestamp, sessionId);
}
public DhcpInformEvent() {
super(0, 0L,0L,0L,0L);
super(0, 0L,0L,0L,"0");
}
@Override

View File

@@ -9,12 +9,12 @@ public class DhcpNakEvent extends BaseDhcpEvent {
private static final long serialVersionUID = -8648265834227002667L;
private boolean fromInternal = false;
public DhcpNakEvent(int customerId, long locationId, long equipmentId, long eventTimestamp, long sessionId) {
public DhcpNakEvent(int customerId, long locationId, long equipmentId, long eventTimestamp, String sessionId) {
super(customerId, locationId, equipmentId, eventTimestamp, sessionId);
}
public DhcpNakEvent() {
super(0, 0L,0L,0L,0L);
super(0, 0L,0L,0L,"0");
}
/**

View File

@@ -10,12 +10,12 @@ public class DhcpOfferEvent extends BaseDhcpEvent {
*/
private boolean fromInternal = false;
public DhcpOfferEvent(int customerId, long locationId, long equipmentId, long eventTimestamp, long sessionId) {
public DhcpOfferEvent(int customerId, long locationId, long equipmentId, long eventTimestamp, String sessionId) {
super(customerId, locationId, equipmentId, eventTimestamp, sessionId);
}
public DhcpOfferEvent() {
super(0, 0L,0L,0L,0L);
super(0, 0L,0L,0L,"0");
}
/**

View File

@@ -9,12 +9,12 @@ public class DhcpRequestEvent extends BaseDhcpEvent {
private static final long serialVersionUID = 906425685437156761L;
private String hostName;
public DhcpRequestEvent(int customerId, long locationId, long equipmentId, long eventTimestamp, long sessionId){
public DhcpRequestEvent(int customerId, long locationId, long equipmentId, long eventTimestamp, String sessionId){
super(customerId, locationId,equipmentId,eventTimestamp, sessionId);
}
public DhcpRequestEvent() {
super(0, 0L,0L,0L,0L);
super(0, 0L,0L,0L,"0");
}
/**

View File

@@ -28,7 +28,7 @@ public abstract class RealTimeSipCallEventWithStats extends RealTimeEvent
private static final long serialVersionUID = -8908272967317508366L;
private Long sipCallId;
private Long associationId;
private String associationId;
private MacAddress clientMacAddress;
private List<RtpFlowStats> statuses;
private int channel;
@@ -49,12 +49,12 @@ public abstract class RealTimeSipCallEventWithStats extends RealTimeEvent
this.sipCallId = sipCallId;
}
public Long getAssociationId() {
public String getAssociationId() {
return associationId;
}
public void setAssociationId(Long associationId) {
this.associationId = associationId;
public void setAssociationId(String string) {
this.associationId = string;
}
@Override
@@ -79,7 +79,7 @@ public abstract class RealTimeSipCallEventWithStats extends RealTimeEvent
}
public boolean hasValidAssociationId() {
return (associationId != null) && (associationId != 0);
return (associationId != null) && (!associationId.equals("0"));
}
public int getChannel() {

View File

@@ -18,7 +18,7 @@ public class RealTimeSipCallStartEvent extends RealTimeEvent
*/
private static final long serialVersionUID = -7289926906539107435L;
private Long sipCallId;
private Long associationId;
private String associationId;
private MacAddress macAddress;
private List<String> codecs;
private String providerDomain;
@@ -52,7 +52,7 @@ public class RealTimeSipCallStartEvent extends RealTimeEvent
&& Objects.equals(channel, other.channel) && Objects.equals(radioType, other.radioType);
}
public Long getAssociationId() {
public String getAssociationId() {
return associationId;
}
@@ -92,7 +92,7 @@ public class RealTimeSipCallStartEvent extends RealTimeEvent
return result;
}
public void setAssociationId(Long associationId) {
public void setAssociationId(String associationId) {
this.associationId = associationId;
}
@@ -131,7 +131,7 @@ public class RealTimeSipCallStartEvent extends RealTimeEvent
}
public boolean hasValidAssociationId() {
return (associationId != null) && (associationId != 0);
return (associationId != null) && (!associationId.equals("0"));
}
public int getChannel() {

View File

@@ -13,8 +13,8 @@ public class RealTimeStreamingStartEvent extends RealTimeEvent
implements HasCustomerId, HasEquipmentId, HasClientMac, HasProducedTimestamp {
private static final long serialVersionUID = -591221857158333271L;
private Long videoSessionId;
private Long sessionId;
private String videoSessionId;
private String sessionId;
private MacAddress clientMac;
private InetAddress serverIp;
private String serverDnsName;
@@ -40,19 +40,19 @@ public class RealTimeStreamingStartEvent extends RealTimeEvent
this.serverDnsName = serverDnsName;
}
public Long getVideoSessionId() {
public String getVideoSessionId() {
return videoSessionId;
}
public void setVideoSessionId(Long videoSessionId) {
public void setVideoSessionId(String videoSessionId) {
this.videoSessionId = videoSessionId;
}
public Long getSessionId() {
public String getSessionId() {
return sessionId;
}
public void setSessionId(Long sessionId) {
public void setSessionId(String sessionId) {
this.sessionId = sessionId;
}

View File

@@ -13,8 +13,8 @@ public class RealTimeStreamingStartSessionEvent extends RealTimeEvent
implements HasCustomerId, HasEquipmentId, HasClientMac, HasProducedTimestamp {
private static final long serialVersionUID = 4395850344272425198L;
private Long videoSessionId;
private Long sessionId;
private String videoSessionId;
private String sessionId;
private MacAddress clientMac;
private InetAddress serverIp;
private StreamingVideoType type;
@@ -31,19 +31,19 @@ public class RealTimeStreamingStartSessionEvent extends RealTimeEvent
super(RealTimeEventType.VideoStreamDebugStart, customerId, locationId, equipmentId, eventTimestamp);
}
public Long getVideoSessionId() {
public String getVideoSessionId() {
return videoSessionId;
}
public void setVideoSessionId(Long videoSessionId) {
public void setVideoSessionId(String videoSessionId) {
this.videoSessionId = videoSessionId;
}
public Long getSessionId() {
public String getSessionId() {
return sessionId;
}
public void setSessionId(Long sessionId) {
public void setSessionId(String sessionId) {
this.sessionId = sessionId;
}

View File

@@ -13,8 +13,8 @@ public class RealTimeStreamingStopEvent extends RealTimeEvent
implements HasCustomerId, HasEquipmentId, HasClientMac, HasProducedTimestamp {
private static final long serialVersionUID = 6433913573274597688L;
private Long videoSessionId;
private Long sessionId;
private String videoSessionId;
private String sessionId;
private MacAddress clientMac;
private InetAddress serverIp;
private Long totalBytes;
@@ -33,19 +33,19 @@ public class RealTimeStreamingStopEvent extends RealTimeEvent
super(RealTimeEventType.VideoStreamStop, customerId, locationId, equipmentId, eventTimestamp);
}
public Long getVideoSessionId() {
public String getVideoSessionId() {
return videoSessionId;
}
public void setVideoSessionId(Long videoSessionId) {
public void setVideoSessionId(String videoSessionId) {
this.videoSessionId = videoSessionId;
}
public Long getSessionId() {
public String getSessionId() {
return sessionId;
}
public void setSessionId(Long sessionId) {
public void setSessionId(String sessionId) {
this.sessionId = sessionId;
}

View File

@@ -679,8 +679,7 @@ components:
clientMacAddress:
$ref: '#/components/schemas/MacAddress'
sessionId:
type: integer
format: int64
type: string
customerId:
type: integer
format: int32
@@ -776,8 +775,7 @@ components:
allOf:
$ref: '#/components/schemas/RealTimeEvent'
sessionId:
type: integer
format: int64
type: string
ssid:
type: string
clientMacAddress:
@@ -808,8 +806,7 @@ components:
clientMacAddress:
$ref: '#/components/schemas/MacAddress'
sessionId:
type: integer
format: int64
type: string
radioType:
$ref: '#/components/schemas/RadioType'
isReassociation:
@@ -861,8 +858,7 @@ components:
allOf:
$ref: '#/components/schemas/RealTimeEvent'
sessionId:
type: integer
format: int64
type: string
ssid:
type: string
clientMacAddress:
@@ -877,8 +873,7 @@ components:
allOf:
$ref: '#/components/schemas/RealTimeEvent'
sessionId:
type: integer
format: int64
type: string
macAddressBytes:
type: array
items:
@@ -901,8 +896,7 @@ components:
allOf:
$ref: '#/components/schemas/RealTimeEvent'
sessionId:
type: integer
format: int64
type: string
clientMacAddress:
$ref: '#/components/schemas/MacAddress'
lastRecvTime:
@@ -919,8 +913,7 @@ components:
allOf:
$ref: '#/components/schemas/RealTimeEvent'
sessionId:
type: integer
format: int64
type: string
ssid:
type: string
clientMacAddress:
@@ -951,8 +944,7 @@ components:
allOf:
$ref: '#/components/schemas/RealTimeEvent'
sessionId:
type: integer
format: int64
type: string
ssid:
type: string
clientMacAddress:
@@ -988,8 +980,7 @@ components:
allOf:
$ref: '#/components/schemas/RealTimeEvent'
sessionId:
type: integer
format: int64
type: string
clientMacAddress:
$ref: '#/components/schemas/MacAddress'
firstDataRcvdTs:
@@ -1004,8 +995,7 @@ components:
allOf:
$ref: '#/components/schemas/RealTimeEvent'
sessionId:
type: integer
format: int64
type: string
clientMacAddress:
$ref: '#/components/schemas/MacAddress'
ipAddr:
@@ -1078,8 +1068,7 @@ components:
type: integer
format: int64
associationId:
type: integer
format: int64
type: string
clientMacAddress:
$ref: '#/components/schemas/MacAddress'
radioType:
@@ -1121,8 +1110,7 @@ components:
type: integer
format: int64
associationId:
type: integer
format: int64
type: string
macAddress:
$ref: '#/components/schemas/MacAddress'
radioType:
@@ -1161,11 +1149,9 @@ components:
allOf:
$ref: '#/components/schemas/RealTimeEvent'
videoSessionId:
type: integer
format: int64
type: string
sessionId:
type: integer
format: int64
type: string
clientMac:
$ref: '#/components/schemas/MacAddress'
serverIp:
@@ -1181,11 +1167,9 @@ components:
allOf:
$ref: '#/components/schemas/RealTimeEvent'
videoSessionId:
type: integer
format: int64
type: string
sessionId:
type: integer
format: int64
type: string
clientMac:
$ref: '#/components/schemas/MacAddress'
serverIp:
@@ -1199,11 +1183,9 @@ components:
allOf:
$ref: '#/components/schemas/RealTimeEvent'
videoSessionId:
type: integer
format: int64
type: string
sessionId:
type: integer
format: int64
type: string
clientMac:
$ref: '#/components/schemas/MacAddress'
serverIp:
@@ -1569,8 +1551,7 @@ components:
type: object
properties:
sessionId:
type: integer
format: int64
type: string
authTimestamp:
type: integer
format: int64
@@ -1657,8 +1638,7 @@ components:
steerType:
$ref: '#/components/schemas/SteerType'
previousValidSessionId:
type: integer
format: int64
type: string
lastFailureDetails:
$ref: '#/components/schemas/ClientFailureDetails'
firstFailureDetails:
@@ -1673,8 +1653,7 @@ components:
type: integer
format: int32
priorSessionId:
type: integer
format: int64
type: string
priorEquipmentId:
type: integer
format: int64
@@ -2436,8 +2415,6 @@ components:
example:
customerId: 2
username: new_user
password: pwd
role: CustomerIT
PortalUserRole:
type: string