Tal Nisan has uploaded a new change for review. Change subject: core,restapi,webadmin: Added description field to storage domain ......................................................................
core,restapi,webadmin: Added description field to storage domain Added a description field to the storage domain entity, changes also made to the webadmin and rest to reflect this change Change-Id: I86bcd7c52e5d9cad7c3cb30561718203537ab459 Bug-Url: https://bugzilla.redhat.com/614859 Signed-off-by: Tal Nisan <[email protected]> --- M backend/manager/dbscripts/create_views.sql M backend/manager/dbscripts/storages_sp.sql A backend/manager/dbscripts/upgrade/03_02_0430_add_storage_static_description_column.sql M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/UpdateStorageDomainCommand.java M backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/storage/GetStorageDomainsByImageIdQueryTest.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/StorageDomainStatic.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/storage_domains.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageDomainDAODbFacadeImpl.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageDomainStaticDAODbFacadeImpl.java M backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/StorageDomainMapper.java M backend/manager/modules/utils/src/test/java/org/ovirt/engine/core/utils/serialization/json/JsonObjectSerializationEntitiesTest.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageListModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageModel.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/storage/StoragePopupView.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/storage/StoragePopupView.ui.xml M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabStorageView.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/datacenter/SubTabDataCenterStorageView.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/disk/SubTabDiskStorageView.java 19 files changed, 138 insertions(+), 37 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/29/11929/1 diff --git a/backend/manager/dbscripts/create_views.sql b/backend/manager/dbscripts/create_views.sql index 62ae2ea..dd1c034 100644 --- a/backend/manager/dbscripts/create_views.sql +++ b/backend/manager/dbscripts/create_views.sql @@ -245,6 +245,7 @@ storage_domain_static.id as id, storage_domain_static.storage as storage, storage_domain_static.storage_name as storage_name, + storage_domain_static.description as description, storage_pool_iso_map.storage_pool_id as storage_pool_id, storage_domain_dynamic.available_disk_size as available_disk_size, storage_domain_dynamic.used_disk_size as used_disk_size, @@ -269,7 +270,7 @@ CREATE OR REPLACE VIEW storage_domains_without_storage_pools AS SELECT DISTINCT -storage_domain_static.id as id, storage_domain_static.storage as storage, storage_domain_static.storage_name as storage_name, +storage_domain_static.id as id, storage_domain_static.storage as storage, storage_domain_static.storage_name as storage_name, storage_domain_static.description as description, storage_domain_static.storage_type as storage_type, storage_domain_static.storage_domain_type as storage_domain_type, storage_domain_static.storage_domain_format_type as storage_domain_format_type, storage_domain_static.last_time_used_as_master as last_time_used_as_master, @@ -289,7 +290,7 @@ CREATE OR REPLACE VIEW storage_domains_for_search AS SELECT - storage_domain_static.id as id, storage_domain_static.storage as storage, storage_domain_static.storage_name as storage_name, + storage_domain_static.id as id, storage_domain_static.storage as storage, storage_domain_static.storage_name as storage_name, storage_domain_static.description as description, storage_domain_static.storage_type as storage_type, storage_domain_static.storage_domain_type as storage_domain_type, storage_domain_static.storage_domain_format_type as storage_domain_format_type, storage_domain_static.last_time_used_as_master as last_time_used_as_master, @@ -930,6 +931,7 @@ storage_domain_static.id, storage_domain_static.storage, storage_domain_static.storage_name, + storage_domain_static.description as description, storage_domain_dynamic.available_disk_size, storage_domain_dynamic.used_disk_size, fn_get_disk_commited_value_by_storage(storage_domain_static.id) as commited_disk_size, diff --git a/backend/manager/dbscripts/storages_sp.sql b/backend/manager/dbscripts/storages_sp.sql index abea8ae..d7600f4 100644 --- a/backend/manager/dbscripts/storages_sp.sql +++ b/backend/manager/dbscripts/storages_sp.sql @@ -268,6 +268,7 @@ Create or replace FUNCTION Insertstorage_domain_static(v_id UUID, v_storage VARCHAR(250), v_storage_name VARCHAR(250), + v_description VARCHAR(250), v_storage_type INTEGER, v_storage_domain_type INTEGER, v_storage_domain_format_type VARCHAR(50), @@ -275,8 +276,8 @@ RETURNS VOID AS $procedure$ BEGIN -INSERT INTO storage_domain_static(id, storage,storage_name, storage_type, storage_domain_type, storage_domain_format_type, last_time_used_as_master) - VALUES(v_id, v_storage, v_storage_name, v_storage_type, v_storage_domain_type, v_storage_domain_format_type, v_last_time_used_as_master); +INSERT INTO storage_domain_static(id, storage,storage_name, description, storage_type, storage_domain_type, storage_domain_format_type, last_time_used_as_master) + VALUES(v_id, v_storage, v_storage_name, v_description, v_storage_type, v_storage_domain_type, v_storage_domain_format_type, v_last_time_used_as_master); END; $procedure$ LANGUAGE plpgsql; @@ -297,6 +298,7 @@ Create or replace FUNCTION Updatestorage_domain_static(v_id UUID, v_storage VARCHAR(250), v_storage_name VARCHAR(250), + v_description VARCHAR(250), v_storage_type INTEGER, v_storage_domain_type INTEGER, v_storage_domain_format_type INTEGER, @@ -310,7 +312,8 @@ SET storage = v_storage, storage_name = v_storage_name, storage_type = v_storage_type, storage_domain_type = v_storage_domain_type, _update_date = LOCALTIMESTAMP, storage_domain_format_type = v_storage_domain_format_type, - last_time_used_as_master = v_last_time_used_as_master + last_time_used_as_master = v_last_time_used_as_master, + description = v_description WHERE id = v_id; END; $procedure$ LANGUAGE plpgsql; diff --git a/backend/manager/dbscripts/upgrade/03_02_0430_add_storage_static_description_column.sql b/backend/manager/dbscripts/upgrade/03_02_0430_add_storage_static_description_column.sql new file mode 100644 index 0000000..a26a5c8 --- /dev/null +++ b/backend/manager/dbscripts/upgrade/03_02_0430_add_storage_static_description_column.sql @@ -0,0 +1 @@ +select fn_db_add_column('storage_domain_static', 'description', 'VARCHAR(4000)'); diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/UpdateStorageDomainCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/UpdateStorageDomainCommand.java index 8cd39d1..4ddf89c 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/UpdateStorageDomainCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/UpdateStorageDomainCommand.java @@ -6,9 +6,9 @@ import org.ovirt.engine.core.bll.Backend; import org.ovirt.engine.core.common.AuditLogType; import org.ovirt.engine.core.common.action.StorageDomainManagementParameter; +import org.ovirt.engine.core.common.businessentities.StorageDomainStatic; import org.ovirt.engine.core.common.businessentities.StorageDomainStatus; import org.ovirt.engine.core.common.businessentities.StoragePoolStatus; -import org.ovirt.engine.core.common.businessentities.StorageDomainStatic; import org.ovirt.engine.core.common.validation.group.UpdateEntity; import org.ovirt.engine.core.common.vdscommands.SetStorageDomainDescriptionVDSCommandParameters; import org.ovirt.engine.core.common.vdscommands.VDSCommandType; @@ -42,8 +42,9 @@ List<String> props = ObjectIdentityChecker.GetChangedFields(oldDomain, getStorageDomain() .getStorageStaticData()); - // Allow change only to name field + // Allow change only to name & description field props.remove("storage_name"); + props.remove("description"); if (returnValue && props.size() > 0) { log.warnFormat("There was an attempt to update the following fields although they are not allowed to be updated: {0}", StringUtils.join(props, ",")); diff --git a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/storage/GetStorageDomainsByImageIdQueryTest.java b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/storage/GetStorageDomainsByImageIdQueryTest.java index b45fd27..2912e52 100644 --- a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/storage/GetStorageDomainsByImageIdQueryTest.java +++ b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/storage/GetStorageDomainsByImageIdQueryTest.java @@ -55,7 +55,7 @@ StorageDomainStatus.Active, "StoragePoolName", 0, - 0); + 0, "First Storage Description"); storage_domains secondStorageDomain = new storage_domains(Guid.NewGuid(), Guid.NewGuid().toString(), @@ -66,7 +66,7 @@ StorageDomainStatus.Active, "StoragePoolName", 0, - 0); + 0, "Second Storage Description"); List<storage_domains> expected = new ArrayList<storage_domains>(); expected.add(firstStorageDomain); expected.add(secondStorageDomain); diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/StorageDomainStatic.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/StorageDomainStatic.java index 5d000e1..b803a53 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/StorageDomainStatic.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/StorageDomainStatic.java @@ -20,6 +20,8 @@ @Size(min = 1, max = BusinessEntitiesDefinitions.STORAGE_NAME_SIZE) private String name = ""; + private String description; + private StorageDomainType storageType = StorageDomainType.Master; private StorageType storagePoolType = StorageType.UNKNOWN; @@ -37,11 +39,12 @@ public StorageDomainStatic() { } - public StorageDomainStatic(Guid id, String storage, int storage_domain_type, String storage_name) { + public StorageDomainStatic(Guid id, String storage, int storage_domain_type, String storage_name, String description) { this.id = id; this.storage = storage; this.storageType = StorageDomainType.forValue(storage_domain_type); this.name = storage_name; + this.description = description; } @Override @@ -126,6 +129,14 @@ this.lastTimeUsedAsMaster = lastTimeUsedAsMaster; } + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + @Override public int hashCode() { final int prime = 31; @@ -138,6 +149,7 @@ result = prime * result + ((storageFormat == null) ? 0 : storageFormat.hashCode()); result = prime * result + ((storagePoolType == null) ? 0 : storagePoolType.hashCode()); result = prime * result + ((storageType == null) ? 0 : storageType.hashCode()); + result = prime * result + ((description == null) ? 0 : description.hashCode()); return result; } @@ -178,6 +190,11 @@ return false; if (storageType != other.storageType) return false; + if (description == null) { + if (other.description != null) + return false; + } else if (!description.equals(other.description)) + return false; return true; } } diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/storage_domains.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/storage_domains.java index de44217..9fd3b87 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/storage_domains.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/storage_domains.java @@ -17,7 +17,7 @@ public storage_domains(Guid id, String storage, String storage_name, Guid storage_pool_id, Integer available_disk_size, Integer used_disk_size, StorageDomainStatus status, String storage_pool_name, - int storage_pool_type, int storage_type) { + int storage_pool_type, int storage_type, String description) { _staticData = new StorageDomainStatic(); _dynamicData = new StorageDomainDynamic(); setStoragePoolIsoMapData(new StoragePoolIsoMap()); @@ -31,6 +31,7 @@ this.setstorage_pool_name(storage_pool_name); this.setstorage_type(StorageType.forValue(storage_pool_type)); this.setstorage_domain_type(StorageDomainType.forValue(storage_type)); + setDescription(description); } //this member is in use only by the Frontend project @@ -110,6 +111,14 @@ getStorageStaticData().setstorage_name(value); } + public String getDescription() { + return getStorageStaticData().getDescription(); + } + + public void setDescription(String description) { + getStorageStaticData().setDescription(description); + } + public NGuid getstorage_pool_id() { return getStoragePoolIsoMapData().getstorage_pool_id(); } diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageDomainDAODbFacadeImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageDomainDAODbFacadeImpl.java index 6b0c6e5..8accfb0 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageDomainDAODbFacadeImpl.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageDomainDAODbFacadeImpl.java @@ -137,6 +137,7 @@ entity.setId(Guid.createGuidFromString(rs.getString("id"))); entity.setstorage(rs.getString("storage")); entity.setstorage_name(rs.getString("storage_name")); + entity.setDescription(rs.getString("description")); entity.setstorage_pool_id(NGuid.createGuidFromString(rs.getString("storage_pool_id"))); entity.setstorage_type(StorageType.forValue(rs.getInt("storage_type"))); entity.setstorage_pool_name(rs.getString("storage_pool_name")); diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageDomainStaticDAODbFacadeImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageDomainStaticDAODbFacadeImpl.java index 7defddf..838a561 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageDomainStaticDAODbFacadeImpl.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/StorageDomainStaticDAODbFacadeImpl.java @@ -3,11 +3,12 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.util.List; + +import org.ovirt.engine.core.common.businessentities.StorageDomainStatic; import org.ovirt.engine.core.common.businessentities.StorageDomainStatus; import org.ovirt.engine.core.common.businessentities.StorageDomainType; import org.ovirt.engine.core.common.businessentities.StorageFormatType; import org.ovirt.engine.core.common.businessentities.StorageType; -import org.ovirt.engine.core.common.businessentities.StorageDomainStatic; import org.ovirt.engine.core.compat.Guid; import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; import org.springframework.jdbc.core.simple.ParameterizedRowMapper; @@ -85,6 +86,7 @@ .addValue("id", domain.getId()) .addValue("storage", domain.getstorage()) .addValue("storage_name", domain.getstorage_name()) + .addValue("description", domain.getDescription()) .addValue("storage_type", domain.getstorage_type()) .addValue("storage_domain_type", domain.getstorage_domain_type()) @@ -107,6 +109,7 @@ entity.setId(Guid.createGuidFromString(rs.getString("id"))); entity.setstorage(rs.getString("storage")); entity.setstorage_name(rs.getString("storage_name")); + entity.setDescription(rs.getString("description")); entity.setstorage_type(StorageType.forValue(rs .getInt("storage_type"))); entity.setstorage_domain_type(StorageDomainType.forValue(rs diff --git a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/StorageDomainMapper.java b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/StorageDomainMapper.java index 2a29a0a..735e6f7 100644 --- a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/StorageDomainMapper.java +++ b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/StorageDomainMapper.java @@ -7,14 +7,13 @@ import org.ovirt.engine.api.model.StorageDomain; import org.ovirt.engine.api.model.StorageDomainStatus; import org.ovirt.engine.api.model.StorageDomainType; - import org.ovirt.engine.api.model.StorageType; import org.ovirt.engine.api.model.VolumeGroup; -import org.ovirt.engine.core.common.businessentities.storage_domains; +import org.ovirt.engine.api.restapi.model.StorageFormat; import org.ovirt.engine.core.common.businessentities.StorageDomainStatic; import org.ovirt.engine.core.common.businessentities.StorageServerConnections; +import org.ovirt.engine.core.common.businessentities.storage_domains; import org.ovirt.engine.core.compat.Guid; -import org.ovirt.engine.api.restapi.model.StorageFormat; public class StorageDomainMapper { @@ -27,10 +26,9 @@ if (model.isSetName()) { entity.setstorage_name(model.getName()); } - // REVIST No descriptions for storage domains - // if (model.isSetDescription()) { - // entity.setdescription(model.getDescription()); - // } + if (model.isSetDescription()) { + entity.setDescription(model.getDescription()); + } if (model.isSetType()) { StorageDomainType storageDomainType = StorageDomainType.fromValue(model.getType()); if (storageDomainType != null) { @@ -113,8 +111,7 @@ StorageDomain model = template != null ? template : new StorageDomain(); model.setId(entity.getId().toString()); model.setName(entity.getstorage_name()); - // REVIST No descriptions for storage domains - // model.setDescription(entity.getdescription()); + model.setDescription(entity.getDescription()); model.setType(map(entity.getstorage_domain_type(), null)); model.setMaster(entity.getstorage_domain_type() == org.ovirt.engine.core.common.businessentities.StorageDomainType.Master); if (entity.getstatus() != null) { diff --git a/backend/manager/modules/utils/src/test/java/org/ovirt/engine/core/utils/serialization/json/JsonObjectSerializationEntitiesTest.java b/backend/manager/modules/utils/src/test/java/org/ovirt/engine/core/utils/serialization/json/JsonObjectSerializationEntitiesTest.java index 6668d63..864a50c 100644 --- a/backend/manager/modules/utils/src/test/java/org/ovirt/engine/core/utils/serialization/json/JsonObjectSerializationEntitiesTest.java +++ b/backend/manager/modules/utils/src/test/java/org/ovirt/engine/core/utils/serialization/json/JsonObjectSerializationEntitiesTest.java @@ -14,8 +14,11 @@ import org.junit.runners.Parameterized.Parameters; import org.ovirt.engine.core.common.businessentities.BusinessEntity; import org.ovirt.engine.core.common.businessentities.Role; +import org.ovirt.engine.core.common.businessentities.StorageDomainDynamic; +import org.ovirt.engine.core.common.businessentities.StorageDomainStatic; import org.ovirt.engine.core.common.businessentities.StorageDomainStatus; import org.ovirt.engine.core.common.businessentities.StorageDomainType; +import org.ovirt.engine.core.common.businessentities.StoragePoolIsoMap; import org.ovirt.engine.core.common.businessentities.StoragePoolStatus; import org.ovirt.engine.core.common.businessentities.StorageType; import org.ovirt.engine.core.common.businessentities.VDSStatus; @@ -23,10 +26,7 @@ import org.ovirt.engine.core.common.businessentities.VdsDynamic; import org.ovirt.engine.core.common.businessentities.VdsStatic; import org.ovirt.engine.core.common.businessentities.VdsStatistics; -import org.ovirt.engine.core.common.businessentities.StorageDomainDynamic; -import org.ovirt.engine.core.common.businessentities.StorageDomainStatic; import org.ovirt.engine.core.common.businessentities.storage_pool; -import org.ovirt.engine.core.common.businessentities.StoragePoolIsoMap; import org.ovirt.engine.core.common.businessentities.vds_spm_id_map; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.compat.NGuid; @@ -102,7 +102,7 @@ { new StorageDomainStatic(Guid.NewGuid(), random.nextString(10), random.nextInt(StorageDomainType.values().length), - random.nextString(10)) }, + random.nextString(10), random.nextString(10)) }, { new StorageDomainDynamic(random.nextInt(), Guid.NewGuid(), random.nextInt()) }, { new storage_pool(random.nextString(10), Guid.NewGuid(), diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageListModel.java index f3f5ecd..eb77073 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageListModel.java @@ -17,15 +17,15 @@ import org.ovirt.engine.core.common.businessentities.LUNs; import org.ovirt.engine.core.common.businessentities.NfsVersion; import org.ovirt.engine.core.common.businessentities.StorageDomainSharedStatus; +import org.ovirt.engine.core.common.businessentities.StorageDomainStatic; import org.ovirt.engine.core.common.businessentities.StorageDomainType; import org.ovirt.engine.core.common.businessentities.StorageFormatType; +import org.ovirt.engine.core.common.businessentities.StorageServerConnections; import org.ovirt.engine.core.common.businessentities.StorageType; import org.ovirt.engine.core.common.businessentities.VDS; import org.ovirt.engine.core.common.businessentities.VDSStatus; -import org.ovirt.engine.core.common.businessentities.StorageDomainStatic; import org.ovirt.engine.core.common.businessentities.storage_domains; import org.ovirt.engine.core.common.businessentities.storage_pool; -import org.ovirt.engine.core.common.businessentities.StorageServerConnections; import org.ovirt.engine.core.common.interfaces.SearchType; import org.ovirt.engine.core.common.mode.ApplicationMode; import org.ovirt.engine.core.common.queries.SearchParameters; @@ -350,6 +350,7 @@ model.setSystemTreeSelectedItem(getSystemTreeSelectedItem()); model.setStorage(storage); model.getName().setEntity(storage.getstorage_name()); + model.getDescription().setEntity(storage.getDescription()); model.setOriginalName(storage.getstorage_name()); model.getDataCenter().setIsChangable(false); @@ -577,6 +578,7 @@ model.setHashName("import_pre-configured_domain"); //$NON-NLS-1$ model.setSystemTreeSelectedItem(getSystemTreeSelectedItem()); model.getName().setIsAvailable(false); + model.getDescription().setIsAvailable(false); model.getFormat().setIsAvailable(false); ArrayList<IStorageModel> items = new ArrayList<IStorageModel>(); @@ -1143,6 +1145,7 @@ storageDomain.setstorage_type(isNew ? storageModel.getType() : storageDomain.getstorage_type()); storageDomain.setstorage_domain_type(isNew ? storageModel.getRole() : storageDomain.getstorage_domain_type()); storageDomain.setstorage_name((String) model.getName().getEntity()); + storageDomain.setDescription((String) model.getDescription().getEntity()); storageDomain.setStorageFormat((StorageFormatType) model.getFormat().getSelectedItem()); if (isNew) { @@ -1272,6 +1275,7 @@ storageDomain.setstorage_domain_type(isNew ? storageModel.getRole() : storageDomain.getstorage_domain_type()); storageDomain.setstorage_name((String) model.getName().getEntity()); + storageDomain.setDescription((String) model.getDescription().getEntity()); storageDomain.setStorageFormat((StorageFormatType) model.getFormat().getSelectedItem()); if (isNew) @@ -1460,6 +1464,7 @@ storageDomain.setstorage_domain_type(isNew ? storageModel.getRole() : storageDomain.getstorage_domain_type()); storageDomain.setstorage_name((String) model.getName().getEntity()); + storageDomain.setDescription((String) model.getDescription().getEntity()); if (isNew) { @@ -1604,6 +1609,7 @@ .getSelectedItem() : storageDomain.getStorageFormat()); storageDomain.setstorage_name((String) model.getName().getEntity()); + storageDomain.setDescription((String) model.getDescription().getEntity()); if (isNew) { diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageModel.java index a22a43e..ce17317 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageModel.java @@ -35,7 +35,10 @@ import org.ovirt.engine.ui.uicommonweb.models.ListModel; import org.ovirt.engine.ui.uicommonweb.models.SystemTreeItemModel; import org.ovirt.engine.ui.uicommonweb.models.SystemTreeItemType; +import org.ovirt.engine.ui.uicommonweb.validation.IValidation; +import org.ovirt.engine.ui.uicommonweb.validation.LengthValidation; import org.ovirt.engine.ui.uicommonweb.validation.NotEmptyValidation; +import org.ovirt.engine.ui.uicommonweb.validation.SpecialAsciiI18NOrNoneValidation; public class StorageModel extends ListModel implements ISupportSystemTreeContext { @@ -43,6 +46,8 @@ private StorageModelBehavior behavior; private String localFSPath; + + private static final int DESCRIPTION_MAX_LIMIT = 255; @Override public IStorageModel getSelectedItem() @@ -93,6 +98,16 @@ private void setName(EntityModel value) { privateName = value; + } + + private EntityModel description; + + public EntityModel getDescription() { + return description; + } + + public void setDescription(EntityModel description) { + this.description = description; } private ListModel privateDataCenter; @@ -168,6 +183,7 @@ VdcQueryType.DiscoverSendTargets, VdcQueryType.GetDeviceList, VdcQueryType.GetExistingStorageDomainList }); setName(new EntityModel()); + setDescription(new EntityModel()); setDataCenter(new ListModel()); getDataCenter().getSelectedItemChangedEvent().addListener(this); setHost(new ListModel()); @@ -702,8 +718,10 @@ { getHost().ValidateSelectedItem(new NotEmptyValidation[] { new NotEmptyValidation() }); ValidateSelectedItem(new NotEmptyValidation[] { new NotEmptyValidation() }); + getDescription().ValidateEntity(new IValidation[] { new LengthValidation(DESCRIPTION_MAX_LIMIT), + new SpecialAsciiI18NOrNoneValidation() }); - return getName().getIsValid() && getHost().getIsValid() && getIsValid() && getSelectedItem().Validate(); + return getName().getIsValid() && getHost().getIsValid() && getIsValid() && getSelectedItem().Validate() && getDescription().getIsValid(); } private SystemTreeItemModel privateSystemTreeSelectedItem; diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java index b419aea..31908e5 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java @@ -211,6 +211,9 @@ @DefaultStringValue("Name") String storagePopupNameLabel(); + @DefaultStringValue("Description") + String storagePopupDescriptionLabel(); + @DefaultStringValue("Data Center") String storagePopupDataCenterLabel(); @@ -1171,6 +1174,9 @@ @DefaultStringValue("Domain Name") String domainNameStorage(); + @DefaultStringValue("Domain Description") + String domainDescriptionStorage(); + @DefaultStringValue("Domain Type") String domainTypeStorage(); diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/storage/StoragePopupView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/storage/StoragePopupView.java index 932e4d4..4cdbe46 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/storage/StoragePopupView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/storage/StoragePopupView.java @@ -59,6 +59,11 @@ @WithElementId("name") EntityModelTextBoxEditor nameEditor; + @UiField + @Path(value = "description.entity") + @WithElementId("description") + EntityModelTextBoxEditor descriptionEditor; + @UiField(provided = true) @Path(value = "dataCenter.selectedItem") @WithElementId("dataCenter") @@ -169,6 +174,7 @@ void localize(ApplicationConstants constants) { nameEditor.setLabel(constants.storagePopupNameLabel()); + descriptionEditor.setLabel(constants.storagePopupDescriptionLabel()); datacenterListEditor.setLabel(constants.storagePopupDataCenterLabel()); storageTypeListEditor.setLabel(constants.storagePopupStorageTypeLabel()); formatListEditor.setLabel(constants.storagePopupFormatTypeLabel()); diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/storage/StoragePopupView.ui.xml b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/storage/StoragePopupView.ui.xml index a72fa52..bea8fac 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/storage/StoragePopupView.ui.xml +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/storage/StoragePopupView.ui.xml @@ -33,13 +33,15 @@ line-height: 30px; } - .nameEditor { - width: 400px; - } - + .nameEditor, + .descriptionEditor, .datacenterListEditor, .hostListEditor { - width: 400px; + width: 350px; + } + + .descriptionEditor { + padding-left: 20px; } .formatListEditor { @@ -74,7 +76,10 @@ <d:SimpleDialogPanel width="760px" height="625px"> <d:content> <g:FlowPanel addStyleNames="{style.content}"> - <e:EntityModelTextBoxEditor ui:field="nameEditor" addStyleNames="{style.nameEditor}"/> + <g:HorizontalPanel> + <e:EntityModelTextBoxEditor ui:field="nameEditor" addStyleNames="{style.nameEditor}"/> + <e:EntityModelTextBoxEditor ui:field="descriptionEditor" addStyleNames="{style.descriptionEditor}"/> + </g:HorizontalPanel> <e:ListModelListBoxEditor ui:field="datacenterListEditor" addStyleNames="{style.datacenterListEditor}"/> <g:HorizontalPanel addStyleNames="{style.storageTypePanel}"> <e:ListModelListBoxEditor ui:field="storageTypeListEditor" addStyleNames="{style.storageTypeListEditor}"/> diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabStorageView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabStorageView.java index 562e77b..7250a6d 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabStorageView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabStorageView.java @@ -57,13 +57,23 @@ }; getTable().addColumn(nameColumn, constants.domainNameStorage(), "150px"); //$NON-NLS-1$ + TextColumnWithTooltip<storage_domains> descriptionColumn = new TextColumnWithTooltip<storage_domains>() { + @Override + public String getValue(storage_domains object) { + return object.getDescription(); + } + }; + getTable().addColumn(descriptionColumn, constants.domainDescriptionStorage(), "200px"); //$NON-NLS-1$ + + getTable().addColumn(nameColumn, constants.domainNameStorage(), "150px"); //$NON-NLS-1$ + TextColumnWithTooltip<storage_domains> domainTypeColumn = new EnumColumn<storage_domains, StorageDomainType>() { @Override protected StorageDomainType getRawValue(storage_domains object) { return object.getstorage_domain_type(); } }; - getTable().addColumn(domainTypeColumn, constants.domainTypeStorage(), "150px"); //$NON-NLS-1$ + getTable().addColumn(domainTypeColumn, constants.domainTypeStorage(), "130px"); //$NON-NLS-1$ TextColumnWithTooltip<storage_domains> storageTypeColumn = new EnumColumn<storage_domains, StorageType>() { @Override @@ -79,7 +89,7 @@ return object.getStorageFormat(); } }; - getTable().addColumn(formatColumn, constants.formatStorage(), "150px"); //$NON-NLS-1$ + getTable().addColumn(formatColumn, constants.formatStorage(), "100px"); //$NON-NLS-1$ TextColumnWithTooltip<storage_domains> crossDataCenterStatusColumn = new TextColumnWithTooltip<storage_domains>() { @@ -92,7 +102,7 @@ } } }; - getTable().addColumn(crossDataCenterStatusColumn, constants.crossDcStatusStorage(), "150px"); //$NON-NLS-1$ + getTable().addColumn(crossDataCenterStatusColumn, constants.crossDcStatusStorage(), "180px"); //$NON-NLS-1$ DiskSizeColumn<storage_domains> freeSpaceColumn = new DiskSizeColumn<storage_domains>(DiskSizeUnit.GIGABYTE) { @Override diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/datacenter/SubTabDataCenterStorageView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/datacenter/SubTabDataCenterStorageView.java index eb60315..7085b69 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/datacenter/SubTabDataCenterStorageView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/datacenter/SubTabDataCenterStorageView.java @@ -49,6 +49,14 @@ }; getTable().addColumn(nameColumn, constants.domainNameStorage()); + TextColumnWithTooltip<storage_domains> descriptionColumn = new TextColumnWithTooltip<storage_domains>() { + @Override + public String getValue(storage_domains object) { + return object.getDescription(); + } + }; + getTable().addColumn(descriptionColumn, constants.domainDescriptionStorage()); + TextColumnWithTooltip<storage_domains> typeColumn = new EnumColumn<storage_domains, StorageDomainType>() { @Override public StorageDomainType getRawValue(storage_domains object) { diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/disk/SubTabDiskStorageView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/disk/SubTabDiskStorageView.java index 9d9428c..441ff74 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/disk/SubTabDiskStorageView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/disk/SubTabDiskStorageView.java @@ -48,6 +48,14 @@ }; getTable().addColumn(nameColumn, constants.domainNameStorage()); + TextColumnWithTooltip<storage_domains> descriptionColumn = new TextColumnWithTooltip<storage_domains>() { + @Override + public String getValue(storage_domains object) { + return object.getDescription(); + } + }; + getTable().addColumn(descriptionColumn, constants.domainDescriptionStorage()); + TextColumnWithTooltip<storage_domains> typeColumn = new EnumColumn<storage_domains, StorageDomainType>() { @Override public StorageDomainType getRawValue(storage_domains object) { -- To view, visit http://gerrit.ovirt.org/11929 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I86bcd7c52e5d9cad7c3cb30561718203537ab459 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Tal Nisan <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
