package org.ovirt.engine.core.bll;
import org.ovirt.engine.core.compat.*;
import org.ovirt.engine.core.common.businessentities.*;
import org.ovirt.engine.core.common.config.Config;
import org.ovirt.engine.core.common.config.ConfigValues;
import org.ovirt.engine.core.common.queries.*;
import org.ovirt.engine.core.common.utils.EnumUtils;
public class GetDiskConfigurationListQuery<P extends VdcQueryParametersBase> extends QueriesCommandBase<P> {
public GetDiskConfigurationListQuery(P parameters) {
super(parameters);
}
@Override
protected void executeQueryCommand() {
// Disk Config is a list of enum values of:
// diskType,volType,volFormat,wipeAfterDelete;...
java.util.ArrayList<DiskImageBase> result = new java.util.ArrayList<DiskImageBase>();
String[] imageBasesList = Config.<String> GetValue(ConfigValues.DiskConfigurationList).split("[;]", -1);
for (String imageBase : imageBasesList) {
String[] configs = imageBase.split("[,]", -1);
if (configs.length == 4) {
try {
DiskImageBase tempVar = new DiskImageBase();
tempVar.setdisk_type(EnumUtils.valueOf(DiskType.class, configs[0], true));
tempVar.setvolume_type(EnumUtils.valueOf(VolumeType.class, configs[1], true));
tempVar.setvolume_format(EnumUtils.valueOf(VolumeFormat.class, configs[2], true));
tempVar.setwipe_after_delete(Boolean.parseBoolean(configs[3]));
DiskImageBase dib = tempVar;
result.add(dib);
} catch (RuntimeException exp) {
log.errorFormat("Could not parse disk configuration: {0} - ex: {1}", configs, exp.getMessage());
}
} else {
log.errorFormat("Wrong configuration value format: {0} - skipping parsing.", configs);
}
}
getQueryReturnValue().setReturnValue(result);
}
private static LogCompat log = LogFactoryCompat.getLog(GetDiskConfigurationListQuery.class);
}