package org.ovirt.engine.core.vdsbroker.gluster;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import org.ovirt.engine.core.common.businessentities.gluster.GlusterGeoRepSessionConfiguration;
import org.ovirt.engine.core.vdsbroker.irsbroker.StatusReturn;
public class GlusterVolumeGeoRepConfigList extends StatusReturn {
private static final String GEO_REP_CONFIG = "geoRepConfig";
private static final String SESSION_CONFIG = "sessionConfig";
private static final String INFO = "info";
private List<GlusterGeoRepSessionConfiguration> geoRepConfigList = new ArrayList<>();
@SuppressWarnings("unchecked")
public GlusterVolumeGeoRepConfigList(Map<String, Object> innerMap) {
super(innerMap);
if (innerMap.containsKey(INFO)) {
innerMap = (Map<String, Object>) innerMap.get(INFO);
}
if (innerMap.containsKey(SESSION_CONFIG)) {
prepareConfigMap((Map<String, Object>) ((Map<String, Object>) innerMap.get(SESSION_CONFIG)).get(GEO_REP_CONFIG));
}
}
private void prepareConfigMap(Map<String, Object> geoRepConfigs) {
for (Entry<String, Object> currentGeoRepConfig : geoRepConfigs.entrySet()) {
GlusterGeoRepSessionConfiguration config = new GlusterGeoRepSessionConfiguration();
config.setKey(currentGeoRepConfig.getKey());
config.setValue((String) currentGeoRepConfig.getValue());
geoRepConfigList.add(config);
}
}
public List<GlusterGeoRepSessionConfiguration> getSessionConfig() {
return geoRepConfigList;
}
}