package org.ovirt.engine.ui.uicommonweb.models.storage; import java.util.Objects; import org.ovirt.engine.core.common.businessentities.StorageDomain; import org.ovirt.engine.core.common.businessentities.storage.StorageType; import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider; import org.ovirt.engine.ui.uicommonweb.help.HelpTag; import org.ovirt.engine.ui.uicommonweb.models.EntityModel; import org.ovirt.engine.ui.uicompat.ConstantsManager; import org.ovirt.engine.ui.uicompat.EnumTranslator; import org.ovirt.engine.ui.uicompat.PropertyChangedEventArgs; @SuppressWarnings("unused") public class StorageGeneralModel extends EntityModel<StorageDomain> { private boolean isNfs; public boolean getIsNfs() { return isNfs; } public void setIsNfs(boolean value) { if (isNfs != value) { isNfs = value; onPropertyChanged(new PropertyChangedEventArgs("IsNfs")); //$NON-NLS-1$ } } private boolean isLocalS; public boolean getIsLocalS() { return isLocalS; } public void setIsLocalS(boolean value) { if (isLocalS != value) { isLocalS = value; onPropertyChanged(new PropertyChangedEventArgs("IsLocalS")); //$NON-NLS-1$ } } private boolean isPosix; public boolean getIsPosix() { return isPosix; } public void setIsPosix(boolean value) { if (isPosix != value) { isPosix = value; onPropertyChanged(new PropertyChangedEventArgs("isPosix")); //$NON-NLS-1$ } } private String path; public String getPath() { return path; } public void setPath(String value) { if (!Objects.equals(path, value)) { path = value; onPropertyChanged(new PropertyChangedEventArgs("Path")); //$NON-NLS-1$ } } private String vfsType; public String getVfsType() { return vfsType; } public void setVfsType(String vfsType) { if (!Objects.equals(this.vfsType, vfsType)) { this.vfsType = vfsType; onPropertyChanged(new PropertyChangedEventArgs("VfsType")); //$NON-NLS-1$ } } private String mountOptions; public String getMountOptions() { return mountOptions; } public void setMountOptions(String mountOptions) { if (!Objects.equals(this.mountOptions, mountOptions)) { this.mountOptions = mountOptions; onPropertyChanged(new PropertyChangedEventArgs("MountOptions")); //$NON-NLS-1$ } } String nfsVersion; public String getNfsVersion() { return nfsVersion; } public void setNfsVersion(String nfsVersion) { if (!Objects.equals(this.nfsVersion, nfsVersion)) { this.nfsVersion = nfsVersion; onPropertyChanged(new PropertyChangedEventArgs("NfsVersion")); //$NON-NLS-1$ } } Short timeout; public String getTimeout() { return timeout == null ? null : timeout.toString(); } public void setTimeout(Short timeout) { if (!isShortsEqual(this.timeout, timeout)) { this.timeout = timeout; onPropertyChanged(new PropertyChangedEventArgs("Timeout")); //$NON-NLS-1$ } } Short retransmissions; public String getRetransmissions() { return retransmissions == null ? null : retransmissions.toString(); } public void setRetransmissions(Short retransmissions) { if (!isShortsEqual(this.retransmissions, retransmissions)) { this.retransmissions = retransmissions; onPropertyChanged(new PropertyChangedEventArgs("Retransmissions")); //$NON-NLS-1$ } } public StorageGeneralModel() { setTitle(ConstantsManager.getInstance().getConstants().generalTitle()); setHelpTag(HelpTag.general); setHashName("general"); //$NON-NLS-1$ } @Override protected void onEntityChanged() { super.onEntityChanged(); if (getEntity() != null) { StorageDomain storageDomain = getEntity(); setIsNfs(storageDomain.getStorageType() == StorageType.NFS); setIsLocalS(storageDomain.getStorageType() == StorageType.LOCALFS); setIsPosix(storageDomain.getStorageType() == StorageType.POSIXFS); if (getIsNfs() || getIsLocalS() || getIsPosix()) { AsyncDataProvider.getInstance().getStorageConnectionById(new AsyncQuery<>(connection -> { if (connection != null) { setPath(connection.getConnection()); if (isNfs) { EnumTranslator translator = EnumTranslator.getInstance(); setNfsVersion(translator.translate(connection.getNfsVersion())); setRetransmissions(connection.getNfsRetrans()); setTimeout(connection.getNfsTimeo()); } if (isPosix) { setVfsType(connection.getVfsType()); setMountOptions(connection.getMountOptions()); } } else { setPath(null); } }), storageDomain.getStorage(), true); } else { setPath(null); } } } private boolean isShortsEqual(Short a, Short b) { if (a == null) { return b == null; } return a.equals(b); } }