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

Reply via email to