use of com.vmware.flowgate.poweriqworker.model.Floor in project flowgate by vmware.
the class PowerIQService method getFloorsMap.
public Map<Long, Floor> getFloorsMap(PowerIQAPIClient client) {
Map<Long, Floor> floorsMap = new HashMap<Long, Floor>();
List<Floor> floors = new ArrayList<Floor>();
try {
floors = client.getFloors();
if (floors != null && !floors.isEmpty()) {
for (Floor floor : floors) {
floorsMap.put(floor.getId(), floor);
}
}
} catch (Exception e) {
logger.error("Failed to get Floors information:", e);
}
return floorsMap;
}
use of com.vmware.flowgate.poweriqworker.model.Floor in project flowgate by vmware.
the class PowerIQService method fillLocation.
public Asset fillLocation(Parent parent, LocationInfo location) {
Asset asset = null;
StringBuilder extraLocation = new StringBuilder();
asset = new Asset();
if (parent == null) {
return asset;
}
Map<Long, Rack> racksMap = location.getRacksMap();
Map<Long, Row> rowsMap = location.getRowsMap();
Map<Long, Aisle> aislesMap = location.getAislesMap();
Map<Long, Room> roomsMap = location.getRoomsMap();
Map<Long, Floor> floorsMap = location.getFloorsMap();
Map<Long, DataCenter> dataCentersMap = location.getDataCentersMap();
boolean rackMapisEmpty = racksMap == null || racksMap.isEmpty();
boolean rowMapisEmpty = rowsMap == null || rowsMap.isEmpty();
boolean aislesMapIsEmpty = aislesMap == null || aislesMap.isEmpty();
boolean roomsMapIsEmpty = roomsMap == null || roomsMap.isEmpty();
boolean floorMapIsEmpty = floorsMap == null || floorsMap.isEmpty();
boolean dataCenterMapIsEmpty = dataCentersMap == null || dataCentersMap.isEmpty();
while (parent != null) {
// TO enhancement, we should record the wrong items for later usage.
if (parent.getType() == null) {
parent = null;
break;
}
switch(parent.getType()) {
case rack_type:
if (rackMapisEmpty) {
parent = null;
break;
}
Rack rack = racksMap.get(parent.getId());
if (rack == null) {
logger.info("Invalid rack id : " + parent.getId());
parent = null;
break;
}
extraLocation.append(rack_type + ":" + rack.getName() + "" + ";");
parent = rack.getParent();
break;
case row_type:
if (rowMapisEmpty) {
parent = null;
break;
}
Row row = rowsMap.get(parent.getId());
if (row == null) {
logger.info("Invalid row id : " + parent.getId());
parent = null;
break;
}
asset.setRow(row.getName());
parent = row.getParent();
break;
case aisle_type:
if (aislesMapIsEmpty) {
parent = null;
break;
}
Aisle ailse = aislesMap.get(parent.getId());
if (ailse == null) {
logger.info("Invalid ailse id : " + parent.getId());
parent = null;
break;
}
extraLocation.append(aisle_type + ":" + ailse.getName() + "");
parent = ailse.getParent();
break;
case room_type:
if (roomsMapIsEmpty) {
parent = null;
break;
}
Room room = roomsMap.get(parent.getId());
if (room == null) {
logger.info("Invalid room id : " + parent.getId());
parent = null;
break;
}
asset.setRoom(room.getName());
parent = room.getParent();
break;
case floor_type:
if (floorMapIsEmpty) {
parent = null;
break;
}
Floor floor = floorsMap.get(parent.getId());
if (floor == null) {
logger.info("Invalid floor id : " + parent.getId());
parent = null;
break;
}
asset.setFloor(floor.getName());
parent = floor.getParent();
break;
case dataCenter_type:
if (dataCenterMapIsEmpty) {
parent = null;
break;
}
DataCenter dataCenter = dataCentersMap.get(parent.getId());
if (dataCenter == null) {
logger.info("Invalid dataCenter id : " + parent.getId());
parent = null;
break;
}
asset.setCity(dataCenter.getCity());
asset.setCountry(dataCenter.getCountry());
parent = dataCenter.getParent();
break;
default:
logger.error(String.format("Unkown type %s", parent.getType()));
parent = null;
break;
}
}
asset.setExtraLocation(extraLocation.toString());
return asset;
}
use of com.vmware.flowgate.poweriqworker.model.Floor in project flowgate by vmware.
the class SyncSensorMetaDataJobTest method getFloors.
List<Floor> getFloors() {
List<Floor> floors = new ArrayList<Floor>();
Floor floor = new Floor();
floor.setName("floor01");
floor.setId(5);
Parent parent = new Parent();
parent.setId(7);
parent.setType("data_center");
floor.setParent(parent);
floors.add(floor);
return floors;
}
Aggregations