Amit Aviram has uploaded a new change for review.

Change subject: webadmin: Warning message for cloning a VM with LUN.
......................................................................

webadmin: Warning message for cloning a VM with LUN.

When cloning a VM with an attached LUN, a warning message added
which informs the user that the LUN won't be cloned as well. the
user should know this when cloning a VM.

Change-Id: Icb2d5205baaadd17646b5076bf5f3add481f0709
Bug-Url: https://bugzilla.redhat.com/1152023
Signed-off-by: Amit Aviram <aavi...@redhat.com>
---
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/CloneVmWidget.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/CloneVmWidget.ui.xml
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/CloneVmModel.java
M 
frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java
4 files changed, 57 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/86/34786/1

diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/CloneVmWidget.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/CloneVmWidget.java
index 8394dc0..50b91d9 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/CloneVmWidget.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/CloneVmWidget.java
@@ -11,6 +11,10 @@
 import 
org.ovirt.engine.ui.common.widget.editor.generic.StringEntityModelTextBoxEditor;
 import 
org.ovirt.engine.ui.common.widget.uicommon.popup.AbstractModelBoundPopupWidget;
 import org.ovirt.engine.ui.uicommonweb.models.vms.CloneVmModel;
+import org.ovirt.engine.ui.uicompat.Event;
+import org.ovirt.engine.ui.uicompat.IEventListener;
+import org.ovirt.engine.ui.uicompat.PropertyChangedEventArgs;
+import com.google.gwt.user.client.ui.Label;
 
 public class CloneVmWidget extends AbstractModelBoundPopupWidget<CloneVmModel> 
{
 
@@ -34,6 +38,11 @@
     @WithElementId("cloneName")
     StringEntityModelTextBoxEditor cloneNameEditor;
 
+    @UiField
+    @Path(value = "Message.entity")
+    @WithElementId("Message")
+    FlowPanel messagePanel;
+
     public CloneVmWidget(CommonApplicationConstants constants) {
         this.constants = constants;
 
@@ -44,6 +53,14 @@
         localize();
     }
 
+    public void appendMessage(String message) {
+        if (message == null) {
+            return;
+        }
+
+        messagePanel.add(new Label(message));
+    }
+
     private void localize() {
         cloneNameEditor.setLabel(constants.clonedVmName());
     }
@@ -51,6 +68,16 @@
     @Override
     public void edit(final CloneVmModel object) {
         driver.edit(object);
+
+        object.getPropertyChangedEvent().addListener(new 
IEventListener<PropertyChangedEventArgs>() {
+            @Override
+            public void eventRaised(Event<? extends PropertyChangedEventArgs> 
ev, Object sender, PropertyChangedEventArgs args) {
+                String propName = args.propertyName;
+                if ("Message".equals(propName)) { //$NON-NLS-1$
+                    appendMessage(object.getMessage());
+                }
+            }
+        });
     }
 
     @Override
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/CloneVmWidget.ui.xml
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/CloneVmWidget.ui.xml
index db34f4c..7b7715e 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/CloneVmWidget.ui.xml
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/CloneVmWidget.ui.xml
@@ -4,10 +4,17 @@
              
xmlns:ge="urn:import:org.ovirt.engine.ui.common.widget.editor.generic">
 
     <ui:style>
+        .messagePanel {
+            color: #CD2127;
+            height: 30px;
+            padding: 15px 5px;
+            width: 100%
+        }
     </ui:style>
 
     <g:FlowPanel>
         <ge:StringEntityModelTextBoxEditor ui:field="cloneNameEditor" />
+        <g:FlowPanel ui:field="messagePanel" 
addStyleNames="{style.messagePanel}" />
     </g:FlowPanel>
 
 </ui:UiBinder>
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/CloneVmModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/CloneVmModel.java
index 54bdfe3..cb609ab 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/CloneVmModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/CloneVmModel.java
@@ -2,10 +2,12 @@
 
 import org.ovirt.engine.core.common.action.CloneVmParameters;
 import org.ovirt.engine.core.common.action.VdcActionType;
+import org.ovirt.engine.core.common.businessentities.Disk;
 import org.ovirt.engine.core.common.businessentities.VM;
 import org.ovirt.engine.ui.frontend.AsyncQuery;
 import org.ovirt.engine.ui.frontend.Frontend;
 import org.ovirt.engine.ui.frontend.INewAsyncCallback;
+import org.ovirt.engine.ui.uicommonweb.Linq;
 import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider;
 import org.ovirt.engine.ui.uicommonweb.models.EntityModel;
 import org.ovirt.engine.ui.uicommonweb.models.Model;
@@ -13,9 +15,12 @@
 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.uicompat.ConstantsManager;
 import org.ovirt.engine.ui.uicompat.FrontendActionAsyncResult;
 import org.ovirt.engine.ui.uicompat.IFrontendActionAsyncCallback;
 import org.ovirt.engine.ui.uicompat.UIConstants;
+
+import java.util.ArrayList;
 
 public class CloneVmModel extends Model {
 
@@ -32,6 +37,21 @@
         cloneName = new EntityModel<String>();
     }
 
+    @Override
+    public void initialize() {
+        AsyncDataProvider.getInstance().getVmDiskList(new AsyncQuery(this, new 
INewAsyncCallback() {
+            @Override
+            public void onSuccess(Object target, Object returnValue) {
+                CloneVmModel cloneVmModel = (CloneVmModel) target;
+                ArrayList<Disk> disks = (ArrayList<Disk>) returnValue;
+
+                if (!Linq.filterDisksByStorageType(disks, 
Disk.DiskStorageType.LUN).isEmpty()) {
+                    
setMessage(ConstantsManager.getInstance().getConstants().cloneVmLunsWontBeCloned());
+                }
+            }
+        }), vm.getId());
+    }
+
     public EntityModel<String> getCloneName() {
         return cloneName;
     }
diff --git 
a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java
 
b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java
index 0403166..6dc1ca5 100644
--- 
a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java
+++ 
b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java
@@ -127,6 +127,9 @@
     @DefaultStringValue("Clone Virtual Machine")
     String cloneVmTitle();
 
+    @DefaultStringValue("VM's LUN(s) will not be cloned.")
+    String cloneVmLunsWontBeCloned();
+
     // Tag
     @DefaultStringValue("Root")
     String rootTag();


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Icb2d5205baaadd17646b5076bf5f3add481f0709
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Amit Aviram <aavi...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to