package org.ovirt.engine.core.vdsbroker.vdsbroker;
import java.util.Map;
import javax.inject.Inject;
import org.ovirt.engine.core.common.vdscommands.GetVGInfoVDSCommandParameters;
import org.ovirt.engine.core.compat.Version;
import org.ovirt.engine.core.dao.StoragePoolDao;
public class GetVGInfoVDSCommand<P extends GetVGInfoVDSCommandParameters> extends VdsBrokerCommand<P> {
private OneVGReturn _result;
@Inject
private StoragePoolDao storagePoolDao;
public GetVGInfoVDSCommand(P parameters) {
super(parameters);
}
@SuppressWarnings("unchecked")
@Override
protected void executeVdsBrokerCommand() {
_result = getBroker().getVGInfo(getParameters().getVGID());
proceedProxyReturnValue();
// build temp data
String vgName = (String) _result.vgInfo.get("name");
Object[] temp = (Object[]) _result.vgInfo.get("pvlist");
Map<String, Object>[] pvList = new Map[0];
if (temp != null) {
pvList = new Map[temp.length];
for (int i = 0; i < temp.length; i++) {
pvList[i] = (Map<String, Object>) temp[i];
pvList[i].put("vgName", vgName);
}
}
Version compatibilityVersion = storagePoolDao.getForVds(getParameters().getVdsId()).getCompatibilityVersion();
setReturnValue(GetDeviceListVDSCommand.parseLUNList(pvList, compatibilityVersion));
}
@Override
protected Status getReturnStatus() {
return _result.getStatus();
}
@Override
protected Object getReturnValueFromBroker() {
return _result;
}
}