Compare commits

...

1 Commits

Author SHA1 Message Date
Mike Hansen
d35a7af319 Merge pull request #102 from Telecominfraproject/WIFI-2080
WIFI-2080 Add support for cell size attributes lightweight provisioni…
2021-07-14 10:09:34 -04:00
18 changed files with 836 additions and 16 deletions

View File

@@ -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:

View File

@@ -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);
}
}

View File

@@ -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,

View File

@@ -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);
}
}

View File

@@ -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);
}

View File

@@ -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;
}
}

View File

@@ -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);

View File

@@ -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;
}
}

View File

@@ -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<>();

View File

@@ -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
*

View File

@@ -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) {

View File

@@ -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) {

View File

@@ -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) {

View File

@@ -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
*

View File

@@ -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) {

View File

@@ -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:

View File

@@ -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");

View File

@@ -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: