Kanagaraj M has uploaded a new change for review.

Change subject: webadmin: Optimize for virt store while creating volume
......................................................................

webadmin: Optimize for virt store while creating volume

'Optimize for Virt Store' checkbox is added to the
Create Volume dialog.

Change-Id: I98e2e636a67e0b7f204e45a3e3d39bdec96eeeb0
Bug-Url: https://bugzilla.redhat.com/891493
Signed-off-by: Kanagaraj M <[email protected]>
---
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/VolumeModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/volumes/VolumeListModel.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/gluster/VolumePopupView.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/VolumePopupView.ui.xml
5 files changed, 53 insertions(+), 13 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/90/12490/1

diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/VolumeModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/VolumeModel.java
index ed13e58..0624775 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/VolumeModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/VolumeModel.java
@@ -44,6 +44,7 @@
     EntityModel nfs_accecssProtocol;
     EntityModel cifs_accecssProtocol;
     EntityModel allowAccess;
+    EntityModel optimizeForVirtStore;
 
     private UICommand addBricksCommand;
 
@@ -166,6 +167,9 @@
 
         setAllowAccess(new EntityModel());
         getAllowAccess().setEntity("*"); //$NON-NLS-1$
+
+        setOptimizeForVirtStore(new EntityModel());
+        getOptimizeForVirtStore().setEntity(false);
     }
 
     public EntityModel getName() {
@@ -280,6 +284,14 @@
         this.allowAccess = allowAccess;
     }
 
+    public EntityModel getOptimizeForVirtStore() {
+        return optimizeForVirtStore;
+    }
+
+    public void setOptimizeForVirtStore(EntityModel optimizeForVirtStore) {
+        this.optimizeForVirtStore = optimizeForVirtStore;
+    }
+
     public void addBricks(){
         if (getWindow() != null || getCluster().getSelectedItem() == null)
         {
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/volumes/VolumeListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/volumes/VolumeListModel.java
index cad6183..e4a8a73 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/volumes/VolumeListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/volumes/VolumeListModel.java
@@ -2,6 +2,7 @@
 
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.List;
 
 import org.ovirt.engine.core.common.action.VdcActionParametersBase;
 import org.ovirt.engine.core.common.action.VdcActionType;
@@ -410,9 +411,17 @@
     }
 
     private void optimizeForVirtStore() {
-        if (getSelectedItems() == null) {
+        if (getSelectedItems() == null || getSelectedItems().size() == 0) {
             return;
         }
+        ArrayList<Guid> volumeIds = new ArrayList<Guid>();
+        for (Object item : getSelectedItems()) {
+            volumeIds.add(((GlusterVolumeEntity) item).getId());
+        }
+        optimizeVolumesForVirtStore(volumeIds);
+    }
+
+    private void optimizeVolumesForVirtStore(final List<Guid> volumeList) {
         AsyncQuery aQuery = new AsyncQuery();
         aQuery.setModel(this);
         aQuery.asyncCallback = new INewAsyncCallback() {
@@ -437,24 +446,22 @@
                                 String optionOwnerGroupVirt = (String) 
resultInner1;
 
                                 ArrayList<VdcActionParametersBase> list = new 
ArrayList<VdcActionParametersBase>();
-                                for (Object item : getSelectedItems())
+                                for (Guid volumeId : volumeList)
                                 {
-                                    GlusterVolumeEntity volume = 
(GlusterVolumeEntity) item;
-
                                     GlusterVolumeOptionEntity optionGroup = 
new GlusterVolumeOptionEntity();
-                                    optionGroup.setVolumeId(volume.getId());
+                                    optionGroup.setVolumeId(volumeId);
                                     optionGroup.setKey("group"); //$NON-NLS-1$
                                     optionGroup.setValue(optionGroupVirt);
                                     list.add(new 
GlusterVolumeOptionParameters(optionGroup));
 
                                     GlusterVolumeOptionEntity optionOwnerUser 
= new GlusterVolumeOptionEntity();
-                                    
optionOwnerUser.setVolumeId(volume.getId());
+                                    optionOwnerUser.setVolumeId(volumeId);
                                     
optionOwnerUser.setKey("storage.owner-uid"); //$NON-NLS-1$
                                     
optionOwnerUser.setValue(optionOwnerUserVirt);
                                     list.add(new 
GlusterVolumeOptionParameters(optionOwnerUser));
 
                                     GlusterVolumeOptionEntity optionOwnerGroup 
= new GlusterVolumeOptionEntity();
-                                    
optionOwnerGroup.setVolumeId(volume.getId());
+                                    optionOwnerGroup.setVolumeId(volumeId);
                                     
optionOwnerGroup.setKey("storage.owner-gid"); //$NON-NLS-1$
                                     
optionOwnerGroup.setValue(optionOwnerGroupVirt);
                                     list.add(new 
GlusterVolumeOptionParameters(optionOwnerGroup));
@@ -641,6 +648,10 @@
         if (returnValue != null && returnValue.getSucceeded())
         {
             cancel();
+            Guid volumeId = (Guid) returnValue.getActionReturnValue();
+            if ((Boolean) model.getOptimizeForVirtStore().getEntity()) {
+                optimizeVolumesForVirtStore(Arrays.asList(volumeId));
+            }
         }
     }
 
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 2be4c22..3baf34e 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
@@ -2163,6 +2163,9 @@
     @DefaultStringValue("(Comma separated list of IP addresses/hostnames)")
     String allowAccessFromLabelVolume();
 
+    @DefaultStringValue("Optimize for Virt Store")
+    String optimizeForVirtStoreVolume();
+
     @DefaultStringValue("Name")
     String NameVolume();
 
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/VolumePopupView.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/VolumePopupView.java
index ba89933..1744c4d 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/VolumePopupView.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/VolumePopupView.java
@@ -137,6 +137,11 @@
     @Ignore
     Label messageLabel;
 
+    @UiField
+    @Path(value = "optimizeForVirtStore.entity")
+    @WithElementId
+    EntityModelCheckBoxEditor optmizeForVirtEditor;
+
     @Inject
     public VolumePopupView(EventBus eventBus, ApplicationResources resources, 
ApplicationConstants constants) {
         super(eventBus, resources);
@@ -205,6 +210,7 @@
         cifs_accecssProtocolEditor.setLabel(constants.cifsVolume());
         allowAccessEditor.setLabel(constants.allowAccessFromVolume());
         allowAccessLabel.setText(constants.allowAccessFromLabelVolume());
+        optmizeForVirtEditor.setLabel(constants.optimizeForVirtStoreVolume());
     }
 
     @Override
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/VolumePopupView.ui.xml
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/VolumePopupView.ui.xml
index b7b544d..b60ba26 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/VolumePopupView.ui.xml
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/VolumePopupView.ui.xml
@@ -15,19 +15,20 @@
                        padding-top: 6px;
                        padding-bottom: 6px;
                }
+
                .label {
                        font-size: 13px;
                        padding: 0 5px;
                        font-family: Verdana,sans-serif;
                        line-height: 30px;
                }
-               
+
                .sectionLabel {
                        font-weight: bold;
                        margin-top: 10px;
                        margin-bottom: 5px;
                }
-               
+
                .bricksLabel {
                        font-size: 13px;
                        padding: 0 5px;
@@ -35,13 +36,13 @@
                        line-height: 30px;
                        width: 190px;
                }
-               
+
                .bricksCountLabel {
                        font-size: 13px;
                        padding-top:5px;
                        color: #0000FF;
                }
-               
+
                .transTypeLabel {
                        font-size: 13px;
                        padding: 0 5px;
@@ -49,6 +50,11 @@
                        width: 175px;
                        padding-top: 5px;
                }
+
+               .explanationLabel {
+            font-style: italic;
+                       padding-bottom: 10px;
+        }
 
                .messageLabel {
                        color: #FF0000;
@@ -59,7 +65,7 @@
 
        </ui:style>
 
-       <d:SimpleDialogPanel width="450px" height="510px">
+       <d:SimpleDialogPanel width="450px" height="550px">
                <d:content>
                        <g:VerticalPanel>
                                <g:FlowPanel 
addStyleNames="{style.generalTabTopDecorator}">
@@ -89,7 +95,9 @@
                                <e:EntityModelCheckBoxEditor 
ui:field="nfs_accecssProtocolEditor"/>
                                <e:EntityModelCheckBoxEditor 
ui:field="cifs_accecssProtocolEditor"/>
                                <e:EntityModelTextBoxEditor 
ui:field="allowAccessEditor" />
-                               <g:Label ui:field="allowAccessLabel"></g:Label>
+                               <g:Label ui:field="allowAccessLabel" 
addStyleNames="{style.explanationLabel}"/>
+
+                               <e:EntityModelCheckBoxEditor 
ui:field="optmizeForVirtEditor"/>
 
                                <g:Label ui:field="messageLabel" 
addStyleNames="{style.messageLabel}" />
                        </g:VerticalPanel>


--
To view, visit http://gerrit.ovirt.org/12490
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I98e2e636a67e0b7f204e45a3e3d39bdec96eeeb0
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Kanagaraj M <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to