package org.ovirt.engine.ui.uicommonweb.models.hosts;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.ovirt.engine.core.common.businessentities.Cluster;
import org.ovirt.engine.core.common.businessentities.StoragePool;
import org.ovirt.engine.core.common.businessentities.VDS;
import org.ovirt.engine.core.common.businessentities.VDSStatus;
import org.ovirt.engine.core.common.mode.ApplicationMode;
import org.ovirt.engine.ui.uicommonweb.Linq;
import org.ovirt.engine.ui.uicommonweb.models.ApplicationModeHelper;
import org.ovirt.engine.ui.uicompat.ConstantsManager;
import org.ovirt.engine.ui.uicompat.UIConstants;
public class EditHostModel extends HostModel {
public EditHostModel() {
getExternalHostProviderEnabled().setIsAvailable(ApplicationModeHelper.getUiMode() != ApplicationMode.GlusterOnly);
}
@Override
protected boolean showInstallationProperties() {
return false;
}
@Override
protected void updateModelDataCenterFromVds(List<StoragePool> dataCenters, VDS vds) {
if (dataCenters != null) {
getDataCenter().setItems(dataCenters);
getDataCenter().setSelectedItem(Linq.firstOrNull(dataCenters,
new Linq.IdPredicate<>(vds.getStoragePoolId())));
if (getDataCenter().getSelectedItem() == null) {
getDataCenter().setSelectedItem(Linq.firstOrNull(dataCenters));
}
}
}
@Override
protected void setAllowChangeHost(VDS vds) {
if (vds.getStatus() != VDSStatus.InstallFailed) {
getHost().setIsChangeable(false);
getAuthSshPort().setIsChangeable(false);
} else {
getHost().setIsChangeable(true);
getAuthSshPort().setIsChangeable(true);
}
}
@Override
protected void setAllowChangeHostPlacementPropertiesWhenNotInMaintenance() {
UIConstants constants = ConstantsManager.getInstance().getConstants();
getDataCenter().setChangeProhibitionReason(constants.dcCanOnlyBeChangedWhenHostInMaintMode());
getDataCenter().setIsChangeable(false);
getCluster().setChangeProhibitionReason(constants.clusterCanOnlyBeChangedWhenHostInMaintMode());
getCluster().setIsChangeable(false);
}
@Override
protected void updateProvisionedHosts() {
}
@Override
public boolean showExternalProviderPanel() {
return true;
}
@Override
public boolean externalProvisionEnabled() {
return false;
}
@Override
protected void setPort(VDS vds) {
getPort().setEntity(vds.getPort());
}
@Override
protected void updateModelClusterFromVds(ArrayList<Cluster> clusters, VDS vds) {
if (clusters != null) {
getCluster().setSelectedItem(Linq.firstOrNull(clusters,
new Linq.IdPredicate<>(vds.getClusterId())));
}
}
@Override
public boolean showNetworkProviderTab() {
return false;
}
@Override
protected boolean editTransportProperties(VDS vds) {
if (VDSStatus.Maintenance.equals(vds.getStatus())) {
return true;
}
return false;
}
public void setSelectedCluster(VDS host) {
ArrayList<Cluster> clusters;
if (getCluster().getItems() == null) {
Cluster tempVar = new Cluster();
tempVar.setName(host.getClusterName());
tempVar.setId(host.getClusterId());
tempVar.setCompatibilityVersion(host.getClusterCompatibilityVersion());
getCluster()
.setItems(new ArrayList<>(Arrays.asList(new Cluster[]{tempVar})));
}
clusters = (ArrayList<Cluster>) getCluster().getItems();
updateModelClusterFromVds(clusters, host);
if (getCluster().getSelectedItem() == null) {
getCluster().setSelectedItem(Linq.firstOrNull(clusters));
}
}
@Override
protected void cpuVendorChanged() {
updateKernelCmdlineCheckboxesChangeability();
}
}