use of com.vmware.flowgate.poweriqworker.model.Room in project flowgate by vmware.
the class PowerIQService method getRoomsMap.
public Map<Long, Room> getRoomsMap(PowerIQAPIClient client) {
Map<Long, Room> roomsMap = new HashMap<Long, Room>();
List<Room> rooms = new ArrayList<Room>();
try {
rooms = client.getRooms();
if (rooms != null && !rooms.isEmpty()) {
for (Room room : rooms) {
roomsMap.put(room.getId(), room);
}
}
} catch (Exception e) {
logger.error("Faild to get Room information:", e);
}
return roomsMap;
}
use of com.vmware.flowgate.poweriqworker.model.Room 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.Room in project flowgate by vmware.
the class SyncSensorMetaDataJobTest method getRooms.
List<Room> getRooms() {
List<Room> rooms = new ArrayList<Room>();
Room room = new Room();
room.setName("room01");
room.setId(8);
Parent parent = new Parent();
parent.setId(5);
parent.setType("floor");
room.setParent(parent);
rooms.add(room);
return rooms;
}
Aggregations