mirror of
https://github.com/Telecominfraproject/wlan-cloud-services.git
synced 2026-03-20 19:39:19 +00:00
Compare commits
1 Commits
WIFI-2434
...
release/v1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d35a7af319 |
@@ -100,6 +100,7 @@ components:
|
||||
- EquipmentAddedEvent
|
||||
- EquipmentChangedEvent
|
||||
- EquipmentChannelsChangedEvent
|
||||
- EquipmentCellSizeAttributesChangedEvent
|
||||
- EquipmentRemovedEvent
|
||||
- StatusChangedEvent
|
||||
- StatusRemovedEvent
|
||||
@@ -181,6 +182,7 @@ components:
|
||||
- $ref: '#/components/schemas/EquipmentAddedEvent'
|
||||
- $ref: '#/components/schemas/EquipmentChangedEvent'
|
||||
- $ref: '#/components/schemas/EquipmentChannelsChangedEvent'
|
||||
- $ref: '#/components/schemas/EquipmentCellSizeAttributesChangedEvent'
|
||||
- $ref: '#/components/schemas/EquipmentRemovedEvent'
|
||||
- $ref: '#/components/schemas/StatusChangedEvent'
|
||||
- $ref: '#/components/schemas/StatusRemovedEvent'
|
||||
@@ -451,6 +453,43 @@ components:
|
||||
newBackupChannels:
|
||||
$ref: '#/components/schemas/IntegerPerRadioTypeMap'
|
||||
|
||||
EquipmentCellSizeAttributesChangedEvent:
|
||||
properties:
|
||||
allOf:
|
||||
$ref: '#/components/schemas/EquipmentChangedEvent'
|
||||
cellSizeAttributesMap:
|
||||
$ref: '#/components/schemas/CellSizeAttributesPerRadioTypeMap'
|
||||
|
||||
CellSizeAttributes:
|
||||
properties:
|
||||
rxCellSizeDb:
|
||||
type: integer
|
||||
format: int32
|
||||
probeResponseThresholdDb:
|
||||
type: integer
|
||||
format: int32
|
||||
clientDisconnectThresholdDb:
|
||||
type: integer
|
||||
format: int32
|
||||
eirpTxPowerDb:
|
||||
type: integer
|
||||
format: int32
|
||||
multicastRate:
|
||||
$ref: '#/components/schemas/MulticastRate'
|
||||
managementRate:
|
||||
$ref: '#/components/schemas/ManagementRate'
|
||||
|
||||
CellSizeAttributesPerRadioTypeMap:
|
||||
properties:
|
||||
is5GHz:
|
||||
$ref: '#/components/schemas/CellSizeAttributes'
|
||||
is5GHzU:
|
||||
$ref: '#/components/schemas/CellSizeAttributes'
|
||||
is5GHzL:
|
||||
$ref: '#/components/schemas/CellSizeAttributes'
|
||||
is2dot4GHz:
|
||||
$ref: '#/components/schemas/CellSizeAttributes'
|
||||
|
||||
EquipmentRemovedEvent:
|
||||
properties:
|
||||
eventTimestamp:
|
||||
|
||||
@@ -0,0 +1,76 @@
|
||||
package com.telecominfraproject.wlan.equipmentgateway.models;
|
||||
|
||||
import java.util.EnumMap;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.telecominfraproject.wlan.core.model.equipment.RadioType;
|
||||
import com.telecominfraproject.wlan.equipment.models.CellSizeAttributes;
|
||||
|
||||
public class CEGWCellSizeAttributesRequest extends EquipmentCommand {
|
||||
private static final long serialVersionUID = -5809359509515188374L;
|
||||
private Map<RadioType, CellSizeAttributes> cellSizeAttributesMap = new EnumMap<>(RadioType.class);
|
||||
|
||||
protected CEGWCellSizeAttributesRequest() {
|
||||
// serial
|
||||
}
|
||||
|
||||
public CEGWCellSizeAttributesRequest(String inventoryId, long equipmentId, Map<RadioType, CellSizeAttributes> cellSizeAttributesMap) {
|
||||
super(CEGWCommandType.CellSizeAttributesRequest, inventoryId, equipmentId);
|
||||
this.cellSizeAttributesMap = cellSizeAttributesMap;
|
||||
}
|
||||
|
||||
@JsonIgnore
|
||||
public CellSizeAttributes getCellSize(RadioType radioType) {
|
||||
return cellSizeAttributesMap.get(radioType);
|
||||
}
|
||||
|
||||
@JsonIgnore
|
||||
public void setCellSize(RadioType radioType, CellSizeAttributes cellSizeAttributes) {
|
||||
this.cellSizeAttributesMap.put(radioType, cellSizeAttributes);
|
||||
}
|
||||
|
||||
public Map<RadioType, CellSizeAttributes> getCellSizeAttributesMap() {
|
||||
return cellSizeAttributesMap;
|
||||
}
|
||||
|
||||
public void setCellSizeAttributesMap(Map<RadioType, CellSizeAttributes> cellSizeAttributesMap) {
|
||||
this.cellSizeAttributesMap = cellSizeAttributesMap;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasUnsupportedValue() {
|
||||
if (super.hasUnsupportedValue()) {
|
||||
return true;
|
||||
}
|
||||
if (cellSizeAttributesMap != null && !cellSizeAttributesMap.isEmpty()) {
|
||||
if (cellSizeAttributesMap.get(RadioType.UNSUPPORTED) != null) {
|
||||
return true;
|
||||
}
|
||||
if (hasUnsupportedValue(cellSizeAttributesMap)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(cellSizeAttributesMap);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (this == obj)
|
||||
return true;
|
||||
if (!super.equals(obj))
|
||||
return false;
|
||||
if (getClass() != obj.getClass())
|
||||
return false;
|
||||
CEGWCellSizeAttributesRequest other = (CEGWCellSizeAttributesRequest) obj;
|
||||
return Objects.equals(cellSizeAttributesMap, other.cellSizeAttributesMap);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -7,7 +7,7 @@ public enum CEGWCommandType {
|
||||
* Notification to CE for configuration change
|
||||
*/
|
||||
Unknown, ConfigChangeNotification, FirmwareDownloadRequest, ChangeRedirectorHost, StartDebugEngine, StopDebugEngine, FirmwareFlashRequest,
|
||||
RebootRequest, BlinkRequest, CloseSessionRequest, NeighbourhoodReport, ClientDeauthRequest, CellSizeRequest,
|
||||
RebootRequest, BlinkRequest, CloseSessionRequest, NeighbourhoodReport, ClientDeauthRequest, CellSizeAttributesRequest,
|
||||
NewChannelRequest, ReportCurrentAPCRequest, FileUpdateRequest, InterferenceThresholdUpdateRequest,
|
||||
BestApConfigurationUpdateRequest,
|
||||
|
||||
|
||||
@@ -0,0 +1,111 @@
|
||||
package com.telecominfraproject.wlan.equipment.models;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
import com.telecominfraproject.wlan.core.model.json.BaseJsonModel;
|
||||
|
||||
public class CellSizeAttributes extends BaseJsonModel {
|
||||
private static final long serialVersionUID = -6799381201211331251L;
|
||||
private Integer rxCellSizeDb;
|
||||
private Integer probeResponseThresholdDb;
|
||||
private Integer clientDisconnectThresholdDb;
|
||||
private Integer eirpTxPowerDb;
|
||||
private MulticastRate multicastRate;
|
||||
private ManagementRate managementRate;
|
||||
|
||||
public CellSizeAttributes() {
|
||||
// serialize
|
||||
}
|
||||
|
||||
public CellSizeAttributes(Integer rxCellSizeDb, Integer probeResponseThresholdDb, ManagementRate managementRate,
|
||||
Integer eirpTxPowerDb, MulticastRate multicastRate, Integer clientDisconnectThresholdDb) {
|
||||
super();
|
||||
this.rxCellSizeDb = rxCellSizeDb;
|
||||
this.probeResponseThresholdDb = probeResponseThresholdDb;
|
||||
this.clientDisconnectThresholdDb = clientDisconnectThresholdDb;
|
||||
this.eirpTxPowerDb = eirpTxPowerDb;
|
||||
this.multicastRate = multicastRate;
|
||||
this.managementRate = managementRate;
|
||||
}
|
||||
|
||||
public Integer getRxCellSizeDb() {
|
||||
return rxCellSizeDb;
|
||||
}
|
||||
|
||||
public void setRxCellSizeDb(Integer rxCellSizeDb) {
|
||||
this.rxCellSizeDb = rxCellSizeDb;
|
||||
}
|
||||
|
||||
public Integer getProbeResponseThresholdDb() {
|
||||
return probeResponseThresholdDb;
|
||||
}
|
||||
|
||||
public void setProbeResponseThresholdDb(Integer probeResponseThresholdDb) {
|
||||
this.probeResponseThresholdDb = probeResponseThresholdDb;
|
||||
}
|
||||
|
||||
public Integer getClientDisconnectThresholdDb() {
|
||||
return clientDisconnectThresholdDb;
|
||||
}
|
||||
|
||||
public void setClientDisconnectThresholdDb(Integer clientDisconnectThresholdDb) {
|
||||
this.clientDisconnectThresholdDb = clientDisconnectThresholdDb;
|
||||
}
|
||||
|
||||
public Integer getEirpTxPowerDb() {
|
||||
return eirpTxPowerDb;
|
||||
}
|
||||
|
||||
public void setEirpTxPowerDb(Integer eirpTxPowerDb) {
|
||||
this.eirpTxPowerDb = eirpTxPowerDb;
|
||||
}
|
||||
|
||||
public MulticastRate getMulticastRate() {
|
||||
return multicastRate;
|
||||
}
|
||||
|
||||
public void setMulticastRate(MulticastRate multicastRate) {
|
||||
this.multicastRate = multicastRate;
|
||||
}
|
||||
|
||||
public ManagementRate getManagementRate() {
|
||||
return managementRate;
|
||||
}
|
||||
|
||||
public void setManagementRate(ManagementRate managementRate) {
|
||||
this.managementRate = managementRate;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasUnsupportedValue()
|
||||
{
|
||||
return MulticastRate.isUnsupported(multicastRate) ||
|
||||
ManagementRate.isUnsupported(managementRate);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(rxCellSizeDb, probeResponseThresholdDb, clientDisconnectThresholdDb,
|
||||
eirpTxPowerDb, multicastRate, managementRate);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (this == obj) {
|
||||
return true;
|
||||
}
|
||||
if (!super.equals(obj)) {
|
||||
return false;
|
||||
}
|
||||
if (!(obj instanceof CellSizeAttributes)) {
|
||||
return false;
|
||||
}
|
||||
CellSizeAttributes other = (CellSizeAttributes) obj;
|
||||
return Objects.equals(rxCellSizeDb, other.rxCellSizeDb)
|
||||
&& Objects.equals(probeResponseThresholdDb, other.probeResponseThresholdDb)
|
||||
&& Objects.equals(clientDisconnectThresholdDb, other.clientDisconnectThresholdDb)
|
||||
&& Objects.equals(eirpTxPowerDb, other.eirpTxPowerDb)
|
||||
&& Objects.equals(multicastRate, other.multicastRate)
|
||||
&& Objects.equals(managementRate, other.managementRate);
|
||||
}
|
||||
}
|
||||
@@ -23,7 +23,9 @@ public class ElementRadioConfiguration extends BaseJsonModel
|
||||
* These are weird since they are dependent on the radio type
|
||||
*/
|
||||
public final static int DEFAULT_RX_CELL_SIZE_DB = -90;
|
||||
public final static int DEFAULT_EIRP_TX_POWER = 18;
|
||||
public final static int DEFAULT_EIRP_TX_POWER_DB = 18;
|
||||
public final static int DEFAULT_PROBE_RESPONSE_THRESHOLD_DB = -90;
|
||||
public final static int DEFAULT_CLIENT_DISCONNECT_THRESHOLD_DB = -90;
|
||||
|
||||
private RadioType radioType;
|
||||
private Integer channelNumber; // The channel that was picked through the
|
||||
@@ -77,10 +79,10 @@ public class ElementRadioConfiguration extends BaseJsonModel
|
||||
|
||||
private ElementRadioConfiguration() {
|
||||
// Tx power default was discussed with Shaikh (set to 18)
|
||||
setEirpTxPower(SourceSelectionValue.createProfileInstance(DEFAULT_EIRP_TX_POWER));
|
||||
setEirpTxPower(SourceSelectionValue.createProfileInstance(DEFAULT_EIRP_TX_POWER_DB));
|
||||
setRxCellSizeDb(SourceSelectionValue.createProfileInstance(DEFAULT_RX_CELL_SIZE_DB));
|
||||
setProbeResponseThresholdDb(SourceSelectionValue.createProfileInstance(-90));
|
||||
setClientDisconnectThresholdDb(SourceSelectionValue.createProfileInstance(-90));
|
||||
setProbeResponseThresholdDb(SourceSelectionValue.createProfileInstance(DEFAULT_PROBE_RESPONSE_THRESHOLD_DB));
|
||||
setClientDisconnectThresholdDb(SourceSelectionValue.createProfileInstance(DEFAULT_CLIENT_DISCONNECT_THRESHOLD_DB));
|
||||
setPerimeterDetectionEnabled(true);
|
||||
setBestAPSteerType(BestAPSteerType.both);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
package com.telecominfraproject.wlan.equipment.models;
|
||||
|
||||
import java.util.EnumMap;
|
||||
import java.util.Map;
|
||||
|
||||
import com.telecominfraproject.wlan.core.model.equipment.RadioType;
|
||||
import com.telecominfraproject.wlan.core.model.json.BaseJsonModel;
|
||||
|
||||
public class EquipmentCellSizeAttributesUpdateRequest extends BaseJsonModel {
|
||||
private static final long serialVersionUID = 4332550605030562832L;
|
||||
private long equipmentId;
|
||||
private Map<RadioType, CellSizeAttributes> cellSizeAttributesMap = new EnumMap<>(RadioType.class);
|
||||
private Map<RadioType, Boolean> autoCellSizeSelections = new EnumMap<>(RadioType.class);
|
||||
|
||||
public long getEquipmentId() {
|
||||
return equipmentId;
|
||||
}
|
||||
|
||||
public void setEquipmentId(long equipmentId) {
|
||||
this.equipmentId = equipmentId;
|
||||
}
|
||||
|
||||
public Map<RadioType, CellSizeAttributes> getCellSizeAttributesMap() {
|
||||
return cellSizeAttributesMap;
|
||||
}
|
||||
|
||||
public void setCellSizeAttributesMap(Map<RadioType, CellSizeAttributes> cellSizeAttributesMap) {
|
||||
this.cellSizeAttributesMap = cellSizeAttributesMap;
|
||||
}
|
||||
|
||||
public Map<RadioType, Boolean> getAutoCellSizeSelections() {
|
||||
return autoCellSizeSelections;
|
||||
}
|
||||
public void setAutoCellSizeSelections(Map<RadioType, Boolean> autoCellSizeSelections) {
|
||||
this.autoCellSizeSelections = autoCellSizeSelections;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasUnsupportedValue() {
|
||||
if (super.hasUnsupportedValue()) {
|
||||
return true;
|
||||
}
|
||||
if (cellSizeAttributesMap != null && !cellSizeAttributesMap.isEmpty()) {
|
||||
if (cellSizeAttributesMap.get(RadioType.UNSUPPORTED) != null) {
|
||||
return true;
|
||||
}
|
||||
if (hasUnsupportedValue(cellSizeAttributesMap)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -9,14 +9,14 @@ import com.telecominfraproject.wlan.core.model.json.JsonDeserializationUtils;
|
||||
public enum MulticastRate {
|
||||
|
||||
auto(0L),
|
||||
rate6mbps(1L),
|
||||
rate9mbps(2L),
|
||||
rate12mbps(3L),
|
||||
rate18mbps(4L),
|
||||
rate24mbps(5L),
|
||||
rate36mbps(6L),
|
||||
rate48mbps(7L),
|
||||
rate54mbps(8L),
|
||||
rate6mbps(6L),
|
||||
rate9mbps(9L),
|
||||
rate12mbps(12L),
|
||||
rate18mbps(18L),
|
||||
rate24mbps(24L),
|
||||
rate36mbps(36L),
|
||||
rate48mbps(48L),
|
||||
rate54mbps(54L),
|
||||
|
||||
UNSUPPORTED(-1L);
|
||||
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
package com.telecominfraproject.wlan.equipment.models.events;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import com.telecominfraproject.wlan.core.model.equipment.RadioType;
|
||||
import com.telecominfraproject.wlan.equipment.models.CellSizeAttributes;
|
||||
import com.telecominfraproject.wlan.equipment.models.Equipment;
|
||||
|
||||
public class EquipmentCellSizeAttributesChangedEvent extends EquipmentChangedEvent {
|
||||
private static final long serialVersionUID = -5336592950746293096L;
|
||||
private Map<RadioType, CellSizeAttributes> cellSizeAttributesMap;
|
||||
|
||||
public EquipmentCellSizeAttributesChangedEvent(Equipment equipment, Map<RadioType, CellSizeAttributes> cellSizeAttributesMap){
|
||||
super(equipment);
|
||||
setEquipmentChangeType(EquipmentChangeType.CellSizeAttributesOnly);
|
||||
this.cellSizeAttributesMap = cellSizeAttributesMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructor used by JSON
|
||||
*/
|
||||
private EquipmentCellSizeAttributesChangedEvent() {
|
||||
super();
|
||||
}
|
||||
|
||||
public Map<RadioType, CellSizeAttributes> getCellSizeAttributesMap() {
|
||||
return cellSizeAttributesMap;
|
||||
}
|
||||
|
||||
public void setCellSizeAttributesMap(Map<RadioType, CellSizeAttributes> cellSizeAttributesMap) {
|
||||
this.cellSizeAttributesMap = cellSizeAttributesMap;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -10,7 +10,7 @@ import com.telecominfraproject.wlan.core.model.json.JsonDeserializationUtils;
|
||||
|
||||
public enum EquipmentChangeType {
|
||||
|
||||
All(0), ChannelsOnly(1), UNSUPPORTED(-1);
|
||||
All(0), ChannelsOnly(1), CellSizeAttributesOnly(2), UNSUPPORTED(-1);
|
||||
|
||||
private final int id;
|
||||
private static final Map<Integer, EquipmentChangeType> ELEMENTS = new HashMap<>();
|
||||
|
||||
@@ -11,6 +11,7 @@ import com.telecominfraproject.wlan.core.model.pagination.PaginationResponse;
|
||||
import com.telecominfraproject.wlan.core.model.pair.PairLongLong;
|
||||
import com.telecominfraproject.wlan.equipment.models.CustomerEquipmentCounts;
|
||||
import com.telecominfraproject.wlan.equipment.models.Equipment;
|
||||
import com.telecominfraproject.wlan.equipment.models.EquipmentCellSizeAttributesUpdateRequest;
|
||||
import com.telecominfraproject.wlan.equipment.models.EquipmentChannelsUpdateRequest;
|
||||
import com.telecominfraproject.wlan.equipment.models.EquipmentDetails;
|
||||
import com.telecominfraproject.wlan.equipment.models.bulkupdate.rrm.EquipmentRrmBulkUpdateRequest;
|
||||
@@ -79,6 +80,15 @@ public interface EquipmentServiceInterface {
|
||||
*/
|
||||
Equipment updateChannels(EquipmentChannelsUpdateRequest channelsUpdateRequest);
|
||||
|
||||
/**
|
||||
* Updates Equipment Cell Size Attributes
|
||||
*
|
||||
* @param CellSizeAttributes
|
||||
* @return updated Equipment object
|
||||
* @throws RuntimeException if Equipment record does not exist or if it was modified concurrently
|
||||
*/
|
||||
Equipment updateCellSizeAttributes(EquipmentCellSizeAttributesUpdateRequest cellSizeAttributesUpdateRequest);
|
||||
|
||||
/**
|
||||
* Deletes Equipment
|
||||
*
|
||||
|
||||
@@ -17,6 +17,7 @@ import com.telecominfraproject.wlan.core.model.pair.PairLongLong;
|
||||
import com.telecominfraproject.wlan.equipment.controller.EquipmentController;
|
||||
import com.telecominfraproject.wlan.equipment.models.CustomerEquipmentCounts;
|
||||
import com.telecominfraproject.wlan.equipment.models.Equipment;
|
||||
import com.telecominfraproject.wlan.equipment.models.EquipmentCellSizeAttributesUpdateRequest;
|
||||
import com.telecominfraproject.wlan.equipment.models.EquipmentChannelsUpdateRequest;
|
||||
import com.telecominfraproject.wlan.equipment.models.EquipmentDetails;
|
||||
import com.telecominfraproject.wlan.equipment.models.bulkupdate.rrm.EquipmentRrmBulkUpdateRequest;
|
||||
@@ -87,6 +88,12 @@ public class EquipmentServiceLocal implements EquipmentServiceInterface {
|
||||
LOG.debug("calling equipmentController.updateChannels {} ", channelsUpdateRequest);
|
||||
return equipmentController.updateChannels(channelsUpdateRequest);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Equipment updateCellSizeAttributes(EquipmentCellSizeAttributesUpdateRequest cellSizeAttributesUpdateRequest) {
|
||||
LOG.debug("calling equipmentController.updateCellSizeAttributes {} ", cellSizeAttributesUpdateRequest);
|
||||
return equipmentController.updateCellSizeAttributes(cellSizeAttributesUpdateRequest);
|
||||
}
|
||||
|
||||
@Override
|
||||
public GenericResponse updateRrmBulk(EquipmentRrmBulkUpdateRequest request) {
|
||||
|
||||
@@ -23,6 +23,7 @@ import com.telecominfraproject.wlan.core.model.pair.PairLongLong;
|
||||
import com.telecominfraproject.wlan.datastore.exceptions.DsDataValidationException;
|
||||
import com.telecominfraproject.wlan.equipment.models.CustomerEquipmentCounts;
|
||||
import com.telecominfraproject.wlan.equipment.models.Equipment;
|
||||
import com.telecominfraproject.wlan.equipment.models.EquipmentCellSizeAttributesUpdateRequest;
|
||||
import com.telecominfraproject.wlan.equipment.models.EquipmentChannelsUpdateRequest;
|
||||
import com.telecominfraproject.wlan.equipment.models.EquipmentDetails;
|
||||
import com.telecominfraproject.wlan.equipment.models.bulkupdate.rrm.EquipmentRrmBulkUpdateRequest;
|
||||
@@ -260,6 +261,24 @@ public class EquipmentServiceRemote extends BaseRemoteClient implements Equipmen
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Equipment updateCellSizeAttributes(EquipmentCellSizeAttributesUpdateRequest cellSizeAttributesUpdateRequest) {
|
||||
|
||||
LOG.debug("calling equipment.updateCellSizeAttributes {} ", cellSizeAttributesUpdateRequest);
|
||||
|
||||
HttpEntity<String> request = new HttpEntity<String>( cellSizeAttributesUpdateRequest.toString(), headers );
|
||||
|
||||
ResponseEntity<Equipment> responseEntity = restTemplate.exchange(
|
||||
getBaseUrl() + "/cellSize",
|
||||
HttpMethod.PUT, request, Equipment.class);
|
||||
|
||||
Equipment ret = responseEntity.getBody();
|
||||
|
||||
LOG.debug("completed equipment.updateCellSizeAttributes {} ", ret);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Override
|
||||
public GenericResponse updateRrmBulk(EquipmentRrmBulkUpdateRequest bulkRequest) {
|
||||
|
||||
@@ -30,6 +30,7 @@ import com.telecominfraproject.wlan.core.model.equipment.DeploymentType;
|
||||
import com.telecominfraproject.wlan.core.model.equipment.EquipmentType;
|
||||
import com.telecominfraproject.wlan.core.model.equipment.MacAddress;
|
||||
import com.telecominfraproject.wlan.core.model.equipment.RadioType;
|
||||
import com.telecominfraproject.wlan.core.model.equipment.SourceType;
|
||||
import com.telecominfraproject.wlan.core.model.pagination.ColumnAndSort;
|
||||
import com.telecominfraproject.wlan.core.model.pagination.PaginationContext;
|
||||
import com.telecominfraproject.wlan.core.model.pagination.PaginationResponse;
|
||||
@@ -38,12 +39,17 @@ import com.telecominfraproject.wlan.core.model.pair.PairLongLong;
|
||||
import com.telecominfraproject.wlan.datastore.exceptions.DsDataValidationException;
|
||||
import com.telecominfraproject.wlan.equipment.models.AntennaType;
|
||||
import com.telecominfraproject.wlan.equipment.models.ApElementConfiguration;
|
||||
import com.telecominfraproject.wlan.equipment.models.CellSizeAttributes;
|
||||
import com.telecominfraproject.wlan.equipment.models.ChannelPowerLevel;
|
||||
import com.telecominfraproject.wlan.equipment.models.CustomerEquipmentCounts;
|
||||
import com.telecominfraproject.wlan.equipment.models.ElementRadioConfiguration;
|
||||
import com.telecominfraproject.wlan.equipment.models.Equipment;
|
||||
import com.telecominfraproject.wlan.equipment.models.EquipmentCellSizeAttributesUpdateRequest;
|
||||
import com.telecominfraproject.wlan.equipment.models.EquipmentChannelsUpdateRequest;
|
||||
import com.telecominfraproject.wlan.equipment.models.EquipmentDetails;
|
||||
import com.telecominfraproject.wlan.equipment.models.ManagementRate;
|
||||
import com.telecominfraproject.wlan.equipment.models.MulticastRate;
|
||||
import com.telecominfraproject.wlan.equipment.models.RadioConfiguration;
|
||||
import com.telecominfraproject.wlan.equipment.models.bulkupdate.rrm.EquipmentRrmBulkUpdateItem;
|
||||
import com.telecominfraproject.wlan.equipment.models.bulkupdate.rrm.EquipmentRrmBulkUpdateRequest;
|
||||
import com.telecominfraproject.wlan.remote.tests.BaseRemoteTest;
|
||||
@@ -1009,7 +1015,250 @@ public class EquipmentServiceRemoteTest extends BaseRemoteTest {
|
||||
remoteInterface.delete(equipmentId);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testCellSizeAttrsUpdate() {
|
||||
int customerId = getNextCustomerId();
|
||||
|
||||
//Create test Equipment
|
||||
Equipment equipment = new Equipment();
|
||||
|
||||
equipment.setName("test_cellSizeAttrsUpdate");
|
||||
equipment.setCustomerId(customerId);
|
||||
equipment.setProfileId(1);
|
||||
equipment.setLocationId(2);
|
||||
equipment.setEquipmentType(EquipmentType.AP);
|
||||
equipment.setInventoryId("inv-" + equipment.getName());
|
||||
|
||||
ApElementConfiguration apConfig = ApElementConfiguration.createWithDefaults();
|
||||
if (apConfig.getElementRadioConfiguration(RadioType.is5GHz) == null) {
|
||||
Map<RadioType, ElementRadioConfiguration> radioMapInit = apConfig.getRadioMap();
|
||||
Map<RadioType, RadioConfiguration> advRadioMapInit = apConfig.getAdvancedRadioMap();
|
||||
radioMapInit.put(RadioType.is5GHz, ElementRadioConfiguration.createWithDefaults(RadioType.is5GHz));
|
||||
apConfig.setRadioMap(radioMapInit);
|
||||
advRadioMapInit.put(RadioType.is5GHz, RadioConfiguration.createWithDefaults(RadioType.is5GHz));
|
||||
apConfig.setAdvancedRadioMap(advRadioMapInit);
|
||||
}
|
||||
equipment.setDetails(apConfig);
|
||||
|
||||
Equipment equipmentCreated = remoteInterface.create(equipment);
|
||||
|
||||
long equipmentId = equipmentCreated.getId();
|
||||
Equipment equipmentGet = remoteInterface.get(equipmentId);
|
||||
assertNotNull(equipmentGet);
|
||||
|
||||
ApElementConfiguration apElementConfiguration = (ApElementConfiguration)equipmentGet.getDetails();
|
||||
assertNotNull(apElementConfiguration);
|
||||
|
||||
Map<RadioType, ElementRadioConfiguration> radioMap = apElementConfiguration.getRadioMap();
|
||||
assertNotNull(radioMap);
|
||||
|
||||
Map<RadioType, RadioConfiguration> radioConfigMap = apElementConfiguration.getAdvancedRadioMap();
|
||||
assertNotNull(radioConfigMap);
|
||||
|
||||
checkCellSizeAttrsProfile(radioMap, radioConfigMap);
|
||||
|
||||
Map<RadioType, CellSizeAttributes> cellSizeAttributesMap = new EnumMap<>(RadioType.class);
|
||||
Map<RadioType, Boolean> autoCellSizeSelections = new EnumMap<>(RadioType.class);
|
||||
|
||||
CellSizeAttributes cellSizeAttributes2dot4G = new CellSizeAttributes(-87, -85, ManagementRate.rate6mbps,
|
||||
16, MulticastRate.rate6mbps, -90);
|
||||
CellSizeAttributes cellSizeAttributes5G = new CellSizeAttributes(-78, -76, ManagementRate.rate12mbps,
|
||||
13, MulticastRate.rate12mbps, -81);
|
||||
cellSizeAttributesMap.put(RadioType.is2dot4GHz, cellSizeAttributes2dot4G);
|
||||
cellSizeAttributesMap.put(RadioType.is5GHz, cellSizeAttributes5G);
|
||||
|
||||
autoCellSizeSelections.put(RadioType.is2dot4GHz, false);
|
||||
autoCellSizeSelections.put(RadioType.is5GHz, false);
|
||||
|
||||
EquipmentCellSizeAttributesUpdateRequest cellSizeAttributesUpdateRequest = new EquipmentCellSizeAttributesUpdateRequest();
|
||||
cellSizeAttributesUpdateRequest.setEquipmentId(equipmentId);
|
||||
cellSizeAttributesUpdateRequest.setCellSizeAttributesMap(cellSizeAttributesMap);
|
||||
cellSizeAttributesUpdateRequest.setAutoCellSizeSelections(autoCellSizeSelections);
|
||||
|
||||
Equipment equipmentUpdate1 = remoteInterface.updateCellSizeAttributes(cellSizeAttributesUpdateRequest);
|
||||
Equipment equipmentGetUpdate1 = remoteInterface.get(equipmentId);
|
||||
assertEqualEquipments(equipmentGetUpdate1, equipmentUpdate1);
|
||||
|
||||
apElementConfiguration = (ApElementConfiguration)equipmentGetUpdate1.getDetails();
|
||||
assertNotNull(apElementConfiguration);
|
||||
radioMap = apElementConfiguration.getRadioMap();
|
||||
assertNotNull(radioMap);
|
||||
radioConfigMap = apElementConfiguration.getAdvancedRadioMap();
|
||||
|
||||
checkCellSizeAttrsAutoOrManual(radioMap, radioConfigMap, cellSizeAttributesMap, false);
|
||||
|
||||
autoCellSizeSelections.clear();
|
||||
autoCellSizeSelections.put(RadioType.is2dot4GHz, true);
|
||||
autoCellSizeSelections.put(RadioType.is5GHz, true);
|
||||
|
||||
Equipment equipmentUpdate2 = remoteInterface.updateCellSizeAttributes(cellSizeAttributesUpdateRequest);
|
||||
Equipment equipmentGetUpdate2 = remoteInterface.get(equipmentId);
|
||||
assertEqualEquipments(equipmentGetUpdate2, equipmentUpdate2);
|
||||
|
||||
apElementConfiguration = (ApElementConfiguration)equipmentGetUpdate2.getDetails();
|
||||
assertNotNull(apElementConfiguration);
|
||||
radioMap = apElementConfiguration.getRadioMap();
|
||||
assertNotNull(radioMap);
|
||||
radioConfigMap = apElementConfiguration.getAdvancedRadioMap();
|
||||
assertNotNull(radioConfigMap);
|
||||
|
||||
checkCellSizeAttrsAutoOrManual(radioMap, radioConfigMap, cellSizeAttributesMap, true);
|
||||
|
||||
// Clean up after test
|
||||
remoteInterface.delete(equipmentId);
|
||||
|
||||
}
|
||||
|
||||
private void checkCellSizeAttrsProfile(Map<RadioType, ElementRadioConfiguration> radioMap, Map<RadioType, RadioConfiguration> radioConfigMap) {
|
||||
assertEquals(SourceType.profile, radioMap.get(RadioType.is2dot4GHz).getRxCellSizeDb().getSource());
|
||||
assertEquals(ElementRadioConfiguration.DEFAULT_RX_CELL_SIZE_DB, radioMap.get(
|
||||
RadioType.is2dot4GHz).getRxCellSizeDb().getValue().intValue());
|
||||
|
||||
assertEquals(SourceType.profile, radioMap.get(RadioType.is2dot4GHz).getProbeResponseThresholdDb().getSource());
|
||||
assertEquals(ElementRadioConfiguration.DEFAULT_PROBE_RESPONSE_THRESHOLD_DB, radioMap.get(
|
||||
RadioType.is2dot4GHz).getProbeResponseThresholdDb().getValue().intValue());
|
||||
|
||||
assertEquals(SourceType.profile, radioMap.get(RadioType.is2dot4GHz).getEirpTxPower().getSource());
|
||||
assertEquals(ElementRadioConfiguration.DEFAULT_EIRP_TX_POWER_DB, radioMap.get(
|
||||
RadioType.is2dot4GHz).getEirpTxPower().getValue().intValue());
|
||||
|
||||
assertEquals(SourceType.profile, radioMap.get(RadioType.is2dot4GHz).getClientDisconnectThresholdDb().getSource());
|
||||
assertEquals(ElementRadioConfiguration.DEFAULT_CLIENT_DISCONNECT_THRESHOLD_DB, radioMap.get(
|
||||
RadioType.is2dot4GHz).getClientDisconnectThresholdDb().getValue().intValue());
|
||||
|
||||
assertEquals(SourceType.profile, radioConfigMap.get(RadioType.is2dot4GHz).getMulticastRate().getSource());
|
||||
assertEquals(MulticastRate.auto, radioConfigMap.get(RadioType.is2dot4GHz).getMulticastRate().getValue());
|
||||
|
||||
assertEquals(SourceType.profile, radioConfigMap.get(RadioType.is2dot4GHz).getManagementRate().getSource());
|
||||
assertEquals(ManagementRate.auto, radioConfigMap.get(RadioType.is2dot4GHz).getManagementRate().getValue());
|
||||
|
||||
assertEquals(SourceType.profile, radioMap.get(RadioType.is5GHz).getRxCellSizeDb().getSource());
|
||||
assertEquals(ElementRadioConfiguration.DEFAULT_RX_CELL_SIZE_DB, radioMap.get(
|
||||
RadioType.is2dot4GHz).getRxCellSizeDb().getValue().intValue());
|
||||
|
||||
assertEquals(SourceType.profile, radioMap.get(RadioType.is5GHz).getProbeResponseThresholdDb().getSource());
|
||||
assertEquals(ElementRadioConfiguration.DEFAULT_PROBE_RESPONSE_THRESHOLD_DB, radioMap.get(
|
||||
RadioType.is2dot4GHz).getProbeResponseThresholdDb().getValue().intValue());
|
||||
|
||||
assertEquals(SourceType.profile, radioMap.get(RadioType.is5GHz).getEirpTxPower().getSource());
|
||||
assertEquals(ElementRadioConfiguration.DEFAULT_EIRP_TX_POWER_DB, radioMap.get(
|
||||
RadioType.is2dot4GHz).getEirpTxPower().getValue().intValue());
|
||||
|
||||
assertEquals(SourceType.profile, radioMap.get(RadioType.is5GHz).getClientDisconnectThresholdDb().getSource());
|
||||
assertEquals(ElementRadioConfiguration.DEFAULT_CLIENT_DISCONNECT_THRESHOLD_DB, radioMap.get(
|
||||
RadioType.is2dot4GHz).getClientDisconnectThresholdDb().getValue().intValue());
|
||||
|
||||
assertEquals(SourceType.profile, radioConfigMap.get(RadioType.is5GHz).getMulticastRate().getSource());
|
||||
assertEquals(MulticastRate.auto, radioConfigMap.get(RadioType.is5GHz).getMulticastRate().getValue());
|
||||
|
||||
assertEquals(SourceType.profile, radioConfigMap.get(RadioType.is5GHz).getManagementRate().getSource());
|
||||
assertEquals(ManagementRate.auto, radioConfigMap.get(RadioType.is5GHz).getManagementRate().getValue());
|
||||
}
|
||||
|
||||
private void checkCellSizeAttrsAutoOrManual(Map<RadioType, ElementRadioConfiguration> radioMap, Map<RadioType, RadioConfiguration> radioConfigMap,
|
||||
Map<RadioType, CellSizeAttributes> cellSizeAttributesMap, boolean auto) {
|
||||
CellSizeAttributes cellSizeAttributes2dot4G = cellSizeAttributesMap.get(RadioType.is2dot4GHz);
|
||||
|
||||
if (auto) {
|
||||
assertEquals(SourceType.auto, radioMap.get(RadioType.is2dot4GHz).getRxCellSizeDb().getSource());
|
||||
} else {
|
||||
assertEquals(SourceType.manual, radioMap.get(RadioType.is2dot4GHz).getRxCellSizeDb().getSource());
|
||||
}
|
||||
assertEquals(cellSizeAttributes2dot4G.getRxCellSizeDb().intValue(), radioMap.get(
|
||||
RadioType.is2dot4GHz).getRxCellSizeDb().getValue().intValue());
|
||||
|
||||
if (auto) {
|
||||
assertEquals(SourceType.auto, radioMap.get(RadioType.is2dot4GHz).getProbeResponseThresholdDb().getSource());
|
||||
} else {
|
||||
assertEquals(SourceType.manual, radioMap.get(RadioType.is2dot4GHz).getProbeResponseThresholdDb().getSource());
|
||||
}
|
||||
assertEquals(cellSizeAttributes2dot4G.getProbeResponseThresholdDb().intValue(), radioMap.get(
|
||||
RadioType.is2dot4GHz).getProbeResponseThresholdDb().getValue().intValue());
|
||||
|
||||
if (auto) {
|
||||
assertEquals(SourceType.auto, radioMap.get(RadioType.is2dot4GHz).getEirpTxPower().getSource());
|
||||
} else {
|
||||
assertEquals(SourceType.manual, radioMap.get(RadioType.is2dot4GHz).getEirpTxPower().getSource());
|
||||
}
|
||||
assertEquals(cellSizeAttributes2dot4G.getEirpTxPowerDb().intValue(), radioMap.get(
|
||||
RadioType.is2dot4GHz).getEirpTxPower().getValue().intValue());
|
||||
|
||||
if (auto) {
|
||||
assertEquals(SourceType.auto, radioMap.get(RadioType.is2dot4GHz).getClientDisconnectThresholdDb().getSource());
|
||||
} else {
|
||||
assertEquals(SourceType.manual, radioMap.get(RadioType.is2dot4GHz).getClientDisconnectThresholdDb().getSource());
|
||||
}
|
||||
assertEquals(cellSizeAttributes2dot4G.getClientDisconnectThresholdDb().intValue(), radioMap.get(
|
||||
RadioType.is2dot4GHz).getClientDisconnectThresholdDb().getValue().intValue());
|
||||
|
||||
if (auto) {
|
||||
assertEquals(SourceType.auto, radioConfigMap.get(RadioType.is2dot4GHz).getMulticastRate().getSource());
|
||||
} else {
|
||||
assertEquals(SourceType.manual, radioConfigMap.get(RadioType.is2dot4GHz).getMulticastRate().getSource());
|
||||
}
|
||||
assertEquals(cellSizeAttributes2dot4G.getMulticastRate(),
|
||||
radioConfigMap.get(RadioType.is2dot4GHz).getMulticastRate().getValue());
|
||||
|
||||
if (auto) {
|
||||
assertEquals(SourceType.auto, radioConfigMap.get(RadioType.is2dot4GHz).getManagementRate().getSource());
|
||||
} else {
|
||||
assertEquals(SourceType.manual, radioConfigMap.get(RadioType.is2dot4GHz).getManagementRate().getSource());
|
||||
}
|
||||
assertEquals(cellSizeAttributes2dot4G.getManagementRate(),
|
||||
radioConfigMap.get(RadioType.is2dot4GHz).getManagementRate().getValue());
|
||||
|
||||
CellSizeAttributes cellSizeAttributes5G = cellSizeAttributesMap.get(RadioType.is5GHz);
|
||||
|
||||
if (auto) {
|
||||
assertEquals(SourceType.auto, radioMap.get(RadioType.is5GHz).getRxCellSizeDb().getSource());
|
||||
} else {
|
||||
assertEquals(SourceType.manual, radioMap.get(RadioType.is5GHz).getRxCellSizeDb().getSource());
|
||||
}
|
||||
assertEquals(cellSizeAttributes5G.getRxCellSizeDb().intValue(), radioMap.get(
|
||||
RadioType.is5GHz).getRxCellSizeDb().getValue().intValue());
|
||||
|
||||
if (auto) {
|
||||
assertEquals(SourceType.auto, radioMap.get(RadioType.is5GHz).getProbeResponseThresholdDb().getSource());
|
||||
} else {
|
||||
assertEquals(SourceType.manual, radioMap.get(RadioType.is5GHz).getProbeResponseThresholdDb().getSource());
|
||||
}
|
||||
assertEquals(cellSizeAttributes5G.getProbeResponseThresholdDb().intValue(), radioMap.get(
|
||||
RadioType.is5GHz).getProbeResponseThresholdDb().getValue().intValue());
|
||||
|
||||
if (auto) {
|
||||
assertEquals(SourceType.auto, radioMap.get(RadioType.is5GHz).getEirpTxPower().getSource());
|
||||
} else {
|
||||
assertEquals(SourceType.manual, radioMap.get(RadioType.is5GHz).getEirpTxPower().getSource());
|
||||
}
|
||||
assertEquals(cellSizeAttributes5G.getEirpTxPowerDb().intValue(), radioMap.get(
|
||||
RadioType.is5GHz).getEirpTxPower().getValue().intValue());
|
||||
|
||||
if (auto) {
|
||||
assertEquals(SourceType.auto, radioMap.get(RadioType.is5GHz).getClientDisconnectThresholdDb().getSource());
|
||||
} else {
|
||||
assertEquals(SourceType.manual, radioMap.get(RadioType.is5GHz).getClientDisconnectThresholdDb().getSource());
|
||||
}
|
||||
assertEquals(cellSizeAttributes5G.getClientDisconnectThresholdDb().intValue(), radioMap.get(
|
||||
RadioType.is5GHz).getClientDisconnectThresholdDb().getValue().intValue());
|
||||
|
||||
if (auto) {
|
||||
assertEquals(SourceType.auto, radioConfigMap.get(RadioType.is5GHz).getMulticastRate().getSource());
|
||||
} else {
|
||||
assertEquals(SourceType.manual, radioConfigMap.get(RadioType.is5GHz).getMulticastRate().getSource());
|
||||
}
|
||||
assertEquals(cellSizeAttributes5G.getMulticastRate(),
|
||||
radioConfigMap.get(RadioType.is5GHz).getMulticastRate().getValue());
|
||||
|
||||
if (auto) {
|
||||
assertEquals(SourceType.auto, radioConfigMap.get(RadioType.is5GHz).getManagementRate().getSource());
|
||||
} else {
|
||||
assertEquals(SourceType.manual, radioConfigMap.get(RadioType.is5GHz).getManagementRate().getSource());
|
||||
}
|
||||
assertEquals(cellSizeAttributes5G.getManagementRate(),
|
||||
radioConfigMap.get(RadioType.is5GHz).getManagementRate().getValue());
|
||||
}
|
||||
|
||||
private void assertEqualEquipments(
|
||||
Equipment expected,
|
||||
Equipment actual) {
|
||||
|
||||
@@ -23,6 +23,7 @@ import org.springframework.web.bind.annotation.RestController;
|
||||
import com.telecominfraproject.wlan.cloudeventdispatcher.CloudEventDispatcherInterface;
|
||||
import com.telecominfraproject.wlan.core.model.equipment.EquipmentType;
|
||||
import com.telecominfraproject.wlan.core.model.equipment.RadioType;
|
||||
import com.telecominfraproject.wlan.core.model.equipment.SourceSelectionValue;
|
||||
import com.telecominfraproject.wlan.core.model.json.BaseJsonModel;
|
||||
import com.telecominfraproject.wlan.core.model.json.GenericResponse;
|
||||
import com.telecominfraproject.wlan.core.model.pagination.ColumnAndSort;
|
||||
@@ -32,14 +33,20 @@ import com.telecominfraproject.wlan.core.model.pair.PairLongLong;
|
||||
import com.telecominfraproject.wlan.datastore.exceptions.DsDataValidationException;
|
||||
import com.telecominfraproject.wlan.equipment.datastore.EquipmentDatastore;
|
||||
import com.telecominfraproject.wlan.equipment.models.ApElementConfiguration;
|
||||
import com.telecominfraproject.wlan.equipment.models.CellSizeAttributes;
|
||||
import com.telecominfraproject.wlan.equipment.models.ChannelPowerLevel;
|
||||
import com.telecominfraproject.wlan.equipment.models.CustomerEquipmentCounts;
|
||||
import com.telecominfraproject.wlan.equipment.models.ElementRadioConfiguration;
|
||||
import com.telecominfraproject.wlan.equipment.models.Equipment;
|
||||
import com.telecominfraproject.wlan.equipment.models.EquipmentCellSizeAttributesUpdateRequest;
|
||||
import com.telecominfraproject.wlan.equipment.models.EquipmentChannelsUpdateRequest;
|
||||
import com.telecominfraproject.wlan.equipment.models.EquipmentDetails;
|
||||
import com.telecominfraproject.wlan.equipment.models.RadioConfiguration;
|
||||
import com.telecominfraproject.wlan.equipment.models.SourceSelectionManagement;
|
||||
import com.telecominfraproject.wlan.equipment.models.SourceSelectionMulticast;
|
||||
import com.telecominfraproject.wlan.equipment.models.bulkupdate.rrm.EquipmentRrmBulkUpdateRequest;
|
||||
import com.telecominfraproject.wlan.equipment.models.events.EquipmentAddedEvent;
|
||||
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.EquipmentRemovedEvent;
|
||||
@@ -355,6 +362,86 @@ public class EquipmentController {
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates Equipment CellSizeAttributes
|
||||
*
|
||||
* @param EquipmentCellSizeAttributesUpdateRequest
|
||||
* @return updated Equipment object
|
||||
* @throws RuntimeException if Equipment record does not exist or if it was modified concurrently
|
||||
*/
|
||||
@RequestMapping(value = "/cellSize", method=RequestMethod.PUT)
|
||||
public Equipment updateCellSizeAttributes(@RequestBody EquipmentCellSizeAttributesUpdateRequest request) {
|
||||
|
||||
LOG.debug("updateCellSizeAttributes {}", request);
|
||||
if (request == null) {
|
||||
return null;
|
||||
}
|
||||
Equipment existingEquipment = get(request.getEquipmentId());
|
||||
|
||||
if (existingEquipment.getDetails() == null) {
|
||||
LOG.info("updateCellSizeAttributes: no details on equipment");
|
||||
return null;
|
||||
}
|
||||
Equipment equipmentCopy = existingEquipment.clone();
|
||||
|
||||
Map<RadioType, CellSizeAttributes> cellSizeAttributesMap = request.getCellSizeAttributesMap();
|
||||
Map<RadioType, Boolean> autoCellSizeSelections = request.getAutoCellSizeSelections();
|
||||
|
||||
if (CollectionUtils.isEmpty(autoCellSizeSelections) ||
|
||||
CollectionUtils.isEmpty(cellSizeAttributesMap)) {
|
||||
LOG.info("updateCellSizeAttributes no update");
|
||||
return equipmentCopy;
|
||||
}
|
||||
|
||||
ApElementConfiguration apElementConfiguration = (ApElementConfiguration) equipmentCopy.getDetails();
|
||||
|
||||
for (RadioType radioType : RadioType.validValues()) {
|
||||
ElementRadioConfiguration elementRadioConfig = apElementConfiguration.getElementRadioConfiguration(radioType);
|
||||
RadioConfiguration radioConfig = apElementConfiguration.getAdvancedRadioMap().get(radioType);
|
||||
if (elementRadioConfig == null || radioConfig == null) {
|
||||
continue;
|
||||
}
|
||||
CellSizeAttributes cellSizeAttributes = cellSizeAttributesMap.get(radioType);
|
||||
if (cellSizeAttributes != null && autoCellSizeSelections.get(radioType) != null) {
|
||||
if (autoCellSizeSelections.get(radioType)) {
|
||||
elementRadioConfig.setRxCellSizeDb(SourceSelectionValue.createAutomaticInstance(
|
||||
cellSizeAttributes.getRxCellSizeDb()));
|
||||
elementRadioConfig.setProbeResponseThresholdDb(SourceSelectionValue.createAutomaticInstance(
|
||||
cellSizeAttributes.getProbeResponseThresholdDb()));
|
||||
elementRadioConfig.setClientDisconnectThresholdDb(SourceSelectionValue.createAutomaticInstance(
|
||||
cellSizeAttributes.getClientDisconnectThresholdDb()));
|
||||
elementRadioConfig.setEirpTxPower(SourceSelectionValue.createAutomaticInstance(
|
||||
cellSizeAttributes.getEirpTxPowerDb()));
|
||||
radioConfig.setMulticastRate(SourceSelectionMulticast.createAutomaticInstance(
|
||||
cellSizeAttributes.getMulticastRate()));
|
||||
radioConfig.setManagementRate(SourceSelectionManagement.createAutomaticInstance(
|
||||
cellSizeAttributes.getManagementRate()));
|
||||
} else {
|
||||
//TODO or do nothing
|
||||
elementRadioConfig.setRxCellSizeDb(SourceSelectionValue.createManualInstance(
|
||||
cellSizeAttributes.getRxCellSizeDb()));
|
||||
elementRadioConfig.setProbeResponseThresholdDb(SourceSelectionValue.createManualInstance(
|
||||
cellSizeAttributes.getProbeResponseThresholdDb()));
|
||||
elementRadioConfig.setClientDisconnectThresholdDb(SourceSelectionValue.createManualInstance(
|
||||
cellSizeAttributes.getClientDisconnectThresholdDb()));
|
||||
elementRadioConfig.setEirpTxPower(SourceSelectionValue.createManualInstance(
|
||||
cellSizeAttributes.getEirpTxPowerDb()));
|
||||
radioConfig.setMulticastRate(SourceSelectionMulticast.createManualInstance(
|
||||
cellSizeAttributes.getMulticastRate()));
|
||||
radioConfig.setManagementRate(SourceSelectionManagement.createManualInstance(
|
||||
cellSizeAttributes.getManagementRate()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Equipment ret = equipmentDatastore.update(equipmentCopy);
|
||||
|
||||
EquipmentCellSizeAttributesChangedEvent event = new EquipmentCellSizeAttributesChangedEvent(ret, cellSizeAttributesMap);
|
||||
publishEvent(event);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* Deletes Equipment record
|
||||
*
|
||||
|
||||
@@ -31,6 +31,7 @@ import com.telecominfraproject.wlan.equipment.EquipmentServiceInterface;
|
||||
import com.telecominfraproject.wlan.equipment.models.ApElementConfiguration;
|
||||
import com.telecominfraproject.wlan.equipment.models.ElementRadioConfiguration;
|
||||
import com.telecominfraproject.wlan.equipment.models.Equipment;
|
||||
import com.telecominfraproject.wlan.equipment.models.EquipmentCellSizeAttributesUpdateRequest;
|
||||
import com.telecominfraproject.wlan.equipment.models.EquipmentChannelsUpdateRequest;
|
||||
import com.telecominfraproject.wlan.equipment.models.EquipmentDetails;
|
||||
import com.telecominfraproject.wlan.equipment.models.RadioConfiguration;
|
||||
@@ -109,6 +110,12 @@ public class EquipmentPortalController {
|
||||
LOG.debug("updateEquipmentChannels {}", request);
|
||||
return equipmentServiceInterface.updateChannels(request);
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/equipment/cellSize", method = RequestMethod.PUT)
|
||||
public Equipment updateEquipmentCellSizeAttributes(@RequestBody EquipmentCellSizeAttributesUpdateRequest request) {
|
||||
LOG.debug("updateEquipmentCellSizeAttributes {}", request);
|
||||
return equipmentServiceInterface.updateCellSizeAttributes(request);
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/equipment", method = RequestMethod.POST)
|
||||
public Equipment createEquipment(@RequestBody Equipment equipment) {
|
||||
|
||||
@@ -888,6 +888,49 @@ components:
|
||||
autoChannelSelections:
|
||||
$ref: '#/components/schemas/BooleanPerRadioTypeMap'
|
||||
|
||||
#
|
||||
# Equipment Cell Size Attributes update data models
|
||||
#
|
||||
EquipmentCellSizeAttributesUpdateRequest:
|
||||
properties:
|
||||
equipmentId:
|
||||
type: integer
|
||||
format: int64
|
||||
cellSizeAttributesMap:
|
||||
$ref: '#/components/schemas/CellSizeAttributesPerRadioTypeMap'
|
||||
autoCellSizeSelections:
|
||||
$ref: '#/components/schemas/BooleanPerRadioTypeMap'
|
||||
|
||||
CellSizeAttributes:
|
||||
properties:
|
||||
rxCellSizeDb:
|
||||
type: integer
|
||||
format: int32
|
||||
probeResponseThresholdDb:
|
||||
type: integer
|
||||
format: int32
|
||||
clientDisconnectThresholdDb:
|
||||
type: integer
|
||||
format: int32
|
||||
eirpTxPowerDb:
|
||||
type: integer
|
||||
format: int32
|
||||
multicastRate:
|
||||
$ref: '#/components/schemas/MulticastRate'
|
||||
managementRate:
|
||||
$ref: '#/components/schemas/ManagementRate'
|
||||
|
||||
CellSizeAttributesPerRadioTypeMap:
|
||||
properties:
|
||||
is5GHz:
|
||||
$ref: '#/components/schemas/CellSizeAttributes'
|
||||
is5GHzU:
|
||||
$ref: '#/components/schemas/CellSizeAttributes'
|
||||
is5GHzL:
|
||||
$ref: '#/components/schemas/CellSizeAttributes'
|
||||
is2dot4GHz:
|
||||
$ref: '#/components/schemas/CellSizeAttributes'
|
||||
|
||||
#
|
||||
# Equipment configuration data models
|
||||
#
|
||||
@@ -8973,6 +9016,7 @@ components:
|
||||
- EquipmentAddedEvent
|
||||
- EquipmentChangedEvent
|
||||
- EquipmentChannelsChangedEvent
|
||||
- EquipmentCellSizeAttributesChangedEvent
|
||||
- EquipmentRemovedEvent
|
||||
- StatusChangedEvent
|
||||
- StatusRemovedEvent
|
||||
@@ -9064,6 +9108,7 @@ components:
|
||||
- $ref: '#/components/schemas/EquipmentAddedEvent'
|
||||
- $ref: '#/components/schemas/EquipmentChangedEvent'
|
||||
- $ref: '#/components/schemas/EquipmentChannelsChangedEvent'
|
||||
- $ref: '#/components/schemas/EquipmentCellSizeAttributesChangedEvent'
|
||||
- $ref: '#/components/schemas/EquipmentRemovedEvent'
|
||||
- $ref: '#/components/schemas/StatusChangedEvent'
|
||||
- $ref: '#/components/schemas/StatusRemovedEvent'
|
||||
@@ -9410,6 +9455,13 @@ components:
|
||||
newBackupChannels:
|
||||
$ref: '#/components/schemas/IntegerPerRadioTypeMap'
|
||||
|
||||
EquipmentCellSizeAttributesChangedEvent:
|
||||
properties:
|
||||
allOf:
|
||||
$ref: '#/components/schemas/EquipmentChangedEvent'
|
||||
cellSizeAttributesMap:
|
||||
$ref: '#/components/schemas/CellSizeAttributesPerRadioTypeMap'
|
||||
|
||||
EquipmentRemovedEvent:
|
||||
required:
|
||||
- model_type
|
||||
@@ -11633,6 +11685,29 @@ paths:
|
||||
500:
|
||||
$ref: '#/components/responses/GenericApiError'
|
||||
|
||||
/portal/equipment/cellSize:
|
||||
put:
|
||||
tags:
|
||||
- Equipment
|
||||
summary: Update Equipment Cell Size Attributes
|
||||
operationId: updateEquipmentCellSizeAttributes
|
||||
requestBody:
|
||||
description: Equipment Cell Size Attributes update request
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/EquipmentCellSizeAttributesUpdateRequest'
|
||||
responses:
|
||||
200:
|
||||
description: successful operation
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/Equipment'
|
||||
500:
|
||||
$ref: '#/components/responses/GenericApiError'
|
||||
|
||||
/portal/equipment/inSet:
|
||||
get:
|
||||
tags:
|
||||
|
||||
@@ -19,7 +19,7 @@ import com.telecominfraproject.wlan.core.model.pair.PairLongLong;
|
||||
import com.telecominfraproject.wlan.core.model.streams.QueuedStreamMessage;
|
||||
import com.telecominfraproject.wlan.equipment.EquipmentServiceInterface;
|
||||
import com.telecominfraproject.wlan.equipment.models.Equipment;
|
||||
import com.telecominfraproject.wlan.equipment.models.events.EquipmentChangeType;
|
||||
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.EquipmentRemovedEvent;
|
||||
@@ -27,6 +27,7 @@ import com.telecominfraproject.wlan.equipmentgateway.models.CEGWBaseCommand;
|
||||
import com.telecominfraproject.wlan.equipmentgateway.models.CEGWCloseSessionRequest;
|
||||
import com.telecominfraproject.wlan.equipmentgateway.models.CEGWConfigChangeNotification;
|
||||
import com.telecominfraproject.wlan.equipmentgateway.models.CEGWNewChannelRequest;
|
||||
import com.telecominfraproject.wlan.equipmentgateway.models.CEGWCellSizeAttributesRequest;
|
||||
import com.telecominfraproject.wlan.equipmentgateway.service.EquipmentGatewayServiceInterface;
|
||||
import com.telecominfraproject.wlan.location.models.events.LocationChangedApImpactingEvent;
|
||||
import com.telecominfraproject.wlan.profile.ProfileServiceInterface;
|
||||
@@ -99,6 +100,9 @@ public class EquipmentConfigPushTrigger extends StreamProcessor {
|
||||
case "EquipmentChannelsChangedEvent":
|
||||
process((EquipmentChannelsChangedEvent) se);
|
||||
break;
|
||||
case "EquipmentCellSizeAttributesChangedEvent":
|
||||
process((EquipmentCellSizeAttributesChangedEvent) se);
|
||||
break;
|
||||
case "EquipmentRemovedEvent":
|
||||
process((EquipmentRemovedEvent) se);
|
||||
break;
|
||||
@@ -131,6 +135,12 @@ public class EquipmentConfigPushTrigger extends StreamProcessor {
|
||||
equipmentGatewayInterface.sendCommand(new CEGWNewChannelRequest(model.getPayload().getInventoryId(),
|
||||
model.getEquipmentId(), model.getNewBackupChannels(), model.getNewPrimaryChannels()));
|
||||
}
|
||||
|
||||
private void process(EquipmentCellSizeAttributesChangedEvent model) {
|
||||
LOG.debug("Processing EquipmentCellSizeAttributesChangedEvent for equipmentId {}", model.getEquipmentId());
|
||||
equipmentGatewayInterface.sendCommand(new CEGWCellSizeAttributesRequest(model.getPayload().getInventoryId(),
|
||||
model.getEquipmentId(), model.getCellSizeAttributesMap()));
|
||||
}
|
||||
|
||||
private void process(EquipmentRemovedEvent model) {
|
||||
LOG.debug("Processing EquipmentRemovedEvent");
|
||||
|
||||
@@ -99,6 +99,7 @@ components:
|
||||
- EquipmentAddedEvent
|
||||
- EquipmentChangedEvent
|
||||
- EquipmentChannelsChangedEvent
|
||||
- EquipmentCellSizeAttributesChangedEvent
|
||||
- EquipmentRemovedEvent
|
||||
- StatusChangedEvent
|
||||
- StatusRemovedEvent
|
||||
@@ -190,6 +191,7 @@ components:
|
||||
- $ref: '#/components/schemas/EquipmentAddedEvent'
|
||||
- $ref: '#/components/schemas/EquipmentChangedEvent'
|
||||
- $ref: '#/components/schemas/EquipmentChannelsChangedEvent'
|
||||
- $ref: '#/components/schemas/EquipmentCellSizeAttributesChangedEvent'
|
||||
- $ref: '#/components/schemas/EquipmentRemovedEvent'
|
||||
- $ref: '#/components/schemas/StatusChangedEvent'
|
||||
- $ref: '#/components/schemas/StatusRemovedEvent'
|
||||
@@ -460,6 +462,43 @@ components:
|
||||
newBackupChannels:
|
||||
$ref: '#/components/schemas/IntegerPerRadioTypeMap'
|
||||
|
||||
EquipmentCellSizeAttributesChangedEvent:
|
||||
properties:
|
||||
allOf:
|
||||
$ref: '#/components/schemas/EquipmentChangedEvent'
|
||||
cellSizeAttributesMap:
|
||||
$ref: '#/components/schemas/CellSizeAttributesPerRadioTypeMap'
|
||||
|
||||
CellSizeAttributes:
|
||||
properties:
|
||||
rxCellSizeDb:
|
||||
type: integer
|
||||
format: int32
|
||||
probeResponseThresholdDb:
|
||||
type: integer
|
||||
format: int32
|
||||
clientDisconnectThresholdDb:
|
||||
type: integer
|
||||
format: int32
|
||||
eirpTxPowerDb:
|
||||
type: integer
|
||||
format: int32
|
||||
multicastRate:
|
||||
$ref: '#/components/schemas/MulticastRate'
|
||||
managementRate:
|
||||
$ref: '#/components/schemas/ManagementRate'
|
||||
|
||||
CellSizeAttributesPerRadioTypeMap:
|
||||
properties:
|
||||
is5GHz:
|
||||
$ref: '#/components/schemas/CellSizeAttributes'
|
||||
is5GHzU:
|
||||
$ref: '#/components/schemas/CellSizeAttributes'
|
||||
is5GHzL:
|
||||
$ref: '#/components/schemas/CellSizeAttributes'
|
||||
is2dot4GHz:
|
||||
$ref: '#/components/schemas/CellSizeAttributes'
|
||||
|
||||
EquipmentRemovedEvent:
|
||||
properties:
|
||||
eventTimestamp:
|
||||
|
||||
Reference in New Issue
Block a user