package org.ovirt.engine.ui.uicommonweb.models.storage;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import org.ovirt.engine.core.common.action.RegisterDiskParameters;
import org.ovirt.engine.core.common.action.VdcActionType;
import org.ovirt.engine.core.common.businessentities.StorageDomain;
import org.ovirt.engine.core.common.businessentities.storage.DiskImage;
import org.ovirt.engine.ui.frontend.Frontend;
import org.ovirt.engine.ui.uicommonweb.ICommandTarget;
import org.ovirt.engine.ui.uicommonweb.UICommand;
import org.ovirt.engine.ui.uicommonweb.models.vms.DiskModel;
public class RegisterDiskModel extends DisksAllocationModel {
public void init() {
ICommandTarget target = (ICommandTarget) getEntity();
UICommand actionCommand = new UICommand("OnExecute", this); //$NON-NLS-1$
actionCommand.setTitle(constants.ok());
actionCommand.setIsDefault(true);
getCommands().add(actionCommand);
UICommand cancelCommand = new UICommand("Cancel", target); //$NON-NLS-1$
cancelCommand.setTitle(constants.cancel());
cancelCommand.setIsCancel(true);
getCommands().add(cancelCommand);
}
@Override
public void executeCommand(UICommand command) {
super.executeCommand(command);
if ("OnExecute".equals(command.getName())) { //$NON-NLS-1$
onExecute();
}
}
void updateStorageDomain(StorageDomain storageDomain) {
for (DiskModel diskModel : getDisks()) {
diskModel.getStorageDomain().setItems(Collections.singletonList(storageDomain));
}
}
private void onExecute() {
if (getProgress() != null) {
return;
}
startProgress();
for (DiskModel item : getDisks()) {
DiskImage disk = (DiskImage) item.getDisk();
if (item.getQuota().getSelectedItem() != null) {
disk.setQuotaId(item.getQuota().getSelectedItem().getId());
}
RegisterDiskParameters registerDiskParams =
new RegisterDiskParameters(disk, disk.getStorageIds().get(0));
registerDiskParams.setRefreshFromStorage(true);
Frontend.getInstance().runMultipleAction(VdcActionType.RegisterDisk, Arrays.asList(registerDiskParams));
}
stopProgress();
getCancelCommand().execute();
}
@Override
protected void setDefaultVolumeInformationSelection(List<DiskModel> diskModels) {
// do nothing
}
}