use of com.vmware.flowgate.poweriqworker.model.Aisle in project flowgate by vmware.
the class SyncSensorMetaDataJobTest method getAisles.
List<Aisle> getAisles() {
List<Aisle> aisles = new ArrayList<Aisle>();
Aisle aisle = new Aisle();
aisle.setName("aisle");
aisle.setId(2);
Parent parent = new Parent();
parent.setId(8);
parent.setType("room");
aisle.setParent(parent);
aisles.add(aisle);
return aisles;
}
use of com.vmware.flowgate.poweriqworker.model.Aisle in project flowgate by vmware.
the class PowerIQService method getAislesMap.
public Map<Long, Aisle> getAislesMap(PowerIQAPIClient client) {
Map<Long, Aisle> aislesMap = new HashMap<Long, Aisle>();
List<Aisle> aisles = new ArrayList<Aisle>();
try {
aisles = client.getAisles();
if (aisles != null && !aisles.isEmpty()) {
for (Aisle aisle : aisles) {
aislesMap.put(aisle.getId(), aisle);
}
}
} catch (Exception e) {
logger.error("Faild to get Aisles Information:", e);
}
return aislesMap;
}
use of com.vmware.flowgate.poweriqworker.model.Aisle 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;
}
Aggregations