package org.ovirt.engine.ui.uicommonweb.models.gluster; import java.util.List; import org.ovirt.engine.core.common.businessentities.gluster.GlusterBrickEntity; import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeEntity; import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeTaskStatusEntity; import org.ovirt.engine.core.common.job.JobExecutionStatus; import org.ovirt.engine.ui.uicommonweb.UICommand; import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider; public class RemoveBrickStatusModel extends VolumeRebalanceStatusModel { private List<GlusterBrickEntity> bricks; private UICommand stopRemoveBricksCommand; private UICommand commitRemoveBricksCommand; private UICommand retainBricksCommand; public RemoveBrickStatusModel(GlusterVolumeEntity volumeEntity, List<GlusterBrickEntity> bricks) { super(volumeEntity); setBricks(bricks); } public void setBricks(List<GlusterBrickEntity> bricks) { this.bricks = bricks; } public List<GlusterBrickEntity> getBricks() { return this.bricks; } public void addStopRemoveBricksCommand(UICommand command) { getCommands().add(command); this.stopRemoveBricksCommand = command; } public UICommand getStopRemoveBricksCommand() { return this.stopRemoveBricksCommand; } public void addRetainBricksCommand(UICommand command) { getCommands().add(command); this.retainBricksCommand = command; } public UICommand getRetainBricksCommand() { return this.retainBricksCommand; } public void addCommitRemoveBricksCommand(UICommand command) { getCommands().add(command); this.commitRemoveBricksCommand = command; } public UICommand getCommitRemoveBricksCommand() { return this.commitRemoveBricksCommand; } @Override public void showStatus(GlusterVolumeTaskStatusEntity statusEntity) { super.showStatus(statusEntity); getStopRemoveBricksCommand().setIsExecutionAllowed(statusEntity.getStatusSummary().getStatus() == JobExecutionStatus.STARTED); getCommitRemoveBricksCommand().setIsExecutionAllowed(statusEntity.getStatusSummary() .getStatus() == JobExecutionStatus.FINISHED); getRetainBricksCommand().setIsExecutionAllowed(statusEntity.getStatusSummary() .getStatus() == JobExecutionStatus.FINISHED); } @Override public void refreshDetails(GlusterVolumeEntity volumeEntity) { AsyncDataProvider.getInstance().getGlusterRemoveBricksStatus(new AsyncQuery<>(returnValue -> { GlusterVolumeTaskStatusEntity statusEntity = returnValue.getReturnValue(); if (statusEntity != null) { showStatus(statusEntity); } }), volumeEntity.getClusterId(), volumeEntity.getId(), getBricks()); } }