Lior Vernia has uploaded a new change for review.

Change subject: webadmin: Remove redundant query events
......................................................................

webadmin: Remove redundant query events

With the addition of the two general async operation events, there's
no need for the existing ones specific to queries - they were all used
to control progress, which is exactly what the new events do (in a
more generic way).

The previous event system relied on computed hash to make sure the
event corresponds to the correct model. This has been swapped for
equality of the model pointer - as the old hash was composed using the
model's hashname and date, this should be equivalent (it is at least
as discriminating).

This also rendered the "context" member of AsyncQuery redundant.

Change-Id: Ia708871f6e4464f894270b19c5a866c50ac7ce8b
Signed-off-by: Lior Vernia <[email protected]>
---
M 
frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/AsyncQuery.java
M 
frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/Frontend.java
M 
frontend/webadmin/modules/frontend/src/test/java/org/ovirt/engine/ui/frontend/FrontendTest.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/disks/DiskListModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/AsyncIterator.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/AsyncIteratorCallback.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/ConfigureLocalStorageModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/ImportSanStorageModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/ImportStorageModelBehavior.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/NewEditStorageModelBehavior.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/SanStorageModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/SanStorageModelBase.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageIsoListModel.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/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageModelBehavior.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/TemplateListModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/AbstractUserPortalListModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalListModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/AbstractDiskModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/AttachDiskModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/EditDiskModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ExistingPoolModelBehavior.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ExistingVmModelBehavior.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewDiskModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewTemplateVmModelBehavior.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewVmModelBehavior.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/PoolModelBehaviorBase.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/PriorityUtil.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/TemplateVmModelBehavior.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UserPortalExistingVmModelBehavior.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UserPortalNewTemplateVmModelBehavior.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UserPortalNewVmModelBehavior.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmDiskListModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmGuideModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmModelBehaviorBase.java
M 
frontend/webadmin/modules/uicommonweb/src/test/java/org/ovirt/engine/ui/uicommonweb/junit/UiCommonSetup.java
39 files changed, 132 insertions(+), 706 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/66/35966/1

diff --git 
a/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/AsyncQuery.java
 
b/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/AsyncQuery.java
index c518b86..c55a3dc 100644
--- 
a/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/AsyncQuery.java
+++ 
b/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/AsyncQuery.java
@@ -20,7 +20,6 @@
     private boolean handleFailure;
     public VdcQueryReturnValue originalReturnValue;
     public Object[] data;
-    private String context;
 
     public AsyncQuery() {
         this.asyncCallback = EMPTY_CALLBACK;
@@ -41,12 +40,6 @@
         this.handleFailure = handleFailure;
     }
 
-    public AsyncQuery(Object target, INewAsyncCallback asyncCallback, String 
context) {
-        setModel(target);
-        this.asyncCallback = asyncCallback;
-        this.context = context;
-    }
-
     public Object[] getData() {
         return data;
     }
@@ -61,14 +54,6 @@
 
     public void setOriginalReturnValue(VdcQueryReturnValue 
originalReturnValue) {
         this.originalReturnValue = originalReturnValue;
-    }
-
-    public String getContext() {
-        return context;
-    }
-
-    public void setContext(String context) {
-        this.context = context;
     }
 
     public boolean isHandleFailure() {
diff --git 
a/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/Frontend.java
 
b/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/Frontend.java
index 5a29227..bdd5ff8 100644
--- 
a/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/Frontend.java
+++ 
b/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/Frontend.java
@@ -3,10 +3,8 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
-import java.util.HashSet;
 import java.util.LinkedList;
 import java.util.List;
-import java.util.Set;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
@@ -31,7 +29,6 @@
 import org.ovirt.engine.ui.uicompat.ConstantsManager;
 import org.ovirt.engine.ui.uicompat.Event;
 import org.ovirt.engine.ui.uicompat.EventArgs;
-import org.ovirt.engine.ui.uicompat.EventDefinition;
 import org.ovirt.engine.ui.uicompat.FrontendActionAsyncResult;
 import org.ovirt.engine.ui.uicompat.FrontendMultipleActionAsyncResult;
 import org.ovirt.engine.ui.uicompat.FrontendMultipleQueryAsyncResult;
@@ -113,32 +110,6 @@
     private FrontendLoginHandler loginHandler;
 
     /**
-     * The set of query types others are subscribed to.
-     */
-    private final Set<VdcQueryType> subscribedQueryTypes = new 
HashSet<VdcQueryType>();
-
-    /**
-     * The query start event definition.
-     */
-    private final EventDefinition queryStartedEventDefinition = new 
EventDefinition("QueryStarted", //$NON-NLS-1$
-            Frontend.class);
-
-    /**
-     * The query start event.
-     */
-    Event<EventArgs> queryStartedEvent = new 
Event<EventArgs>(queryStartedEventDefinition);
-
-    /**
-     * The query complete event definition.
-     */
-    private final EventDefinition queryCompleteEventDefinition = new 
EventDefinition("QueryComplete", //$NON-NLS-1$
-            Frontend.class);
-    /**
-     * The query complete event.
-     */
-    Event<EventArgs> queryCompleteEvent = new 
Event<EventArgs>(queryCompleteEventDefinition);
-
-    /**
      * The {@code frontendFailureEvent} event.
      */
     Event<FrontendFailureEventArgs> frontendFailureEvent = new 
Event<FrontendFailureEventArgs>("FrontendFailure", Frontend.class); 
//$NON-NLS-1$
@@ -147,11 +118,6 @@
      * The {@code frontendNotLoggedInEvent} event.
      */
     Event<EventArgs> frontendNotLoggedInEvent = new 
Event<EventArgs>("NotLoggedIn", Frontend.class); //$NON-NLS-1$
-
-    /**
-     * The context the current operation is run against.
-     */
-    private Object currentContext;
 
     /**
      * The currently logged in user.
@@ -288,7 +254,6 @@
                     }
                 } finally {
                     AsyncOperationCompleteEvent.fire(Frontend.this, 
callback.getModel());
-                    raiseQueryCompleteEvent(queryType, callback.getContext());
                 }
             }
 
@@ -307,13 +272,11 @@
                     }
                 } finally {
                     AsyncOperationCompleteEvent.fire(Frontend.this, 
callback.getModel());
-                    raiseQueryCompleteEvent(queryType, callback.getContext());
                 }
             }
         });
 
         // raise the query started event.
-        raiseQueryStartedEvent(queryType, callback.getContext());
         AsyncOperationStartedEvent.fire(Frontend.this, callback.getModel());
         if (isPublic) {
             getOperationManager().addPublicOperation(operation);
@@ -368,7 +331,6 @@
                         new FrontendMultipleQueryAsyncResult(queryTypeList, 
queryParamsList, resultObject);
                 callback.executed(f);
                 AsyncOperationCompleteEvent.fire(Frontend.this, state);
-                raiseQueryCompleteEvent(queryTypeList, state);
             }
 
             @Override
@@ -385,7 +347,6 @@
                     callback.executed(f);
                 } finally {
                     AsyncOperationCompleteEvent.fire(Frontend.this, state);
-                    raiseQueryCompleteEvent(queryTypeList, state);
                 }
             }
         };
@@ -400,7 +361,6 @@
         }
 
         AsyncOperationStartedEvent.fire(Frontend.this, state);
-        raiseQueryStartedEvent(queryTypeList, state);
         getOperationManager().addOperationList(operationList);
     }
 
@@ -986,74 +946,9 @@
         }
     }
 
-    /**
-     * Get the current context.
-     * @return The current context
-     */
-    public Object getCurrentContext() {
-        return currentContext;
-    }
-
     @Override
     public void fireEvent(GwtEvent<?> event) {
         eventBus.fireEvent(event);
-    }
-
-    /**
-     * Raise a query event.
-     * @param queryEvent The event to raise.
-     * @param queryType The query type of the event.
-     * @param context The context.
-     */
-    private void raiseQueryEvent(final Event queryEvent, final VdcQueryType 
queryType, final Object context) {
-        if (context != null && subscribedQueryTypes != null) {
-            for (VdcQueryType vdcQueryType : subscribedQueryTypes) {
-                if (queryType.equals(vdcQueryType)) {
-                    currentContext = context;
-                    queryEvent.raise(Frontend.class, EventArgs.EMPTY);
-                }
-            }
-        }
-    }
-
-    /**
-     * Raise the query started event.
-     * @param queryType The type of query.
-     * @param context The context in which the query is executed.
-     */
-    private void raiseQueryStartedEvent(final VdcQueryType queryType, final 
Object context) {
-        raiseQueryEvent(getQueryStartedEvent(), queryType, context);
-    }
-
-    /**
-     * Raise the query started event. for a list of events.
-     * @param queryTypeList A list of query types.
-     * @param context The context in which the query is executed.
-     */
-    private void raiseQueryStartedEvent(final List<VdcQueryType> 
queryTypeList, final Object context) {
-        for (VdcQueryType queryType : queryTypeList) {
-            raiseQueryStartedEvent(queryType, context);
-        }
-    }
-
-    /**
-     * Raise the query complete event.
-     * @param queryType The type of query.
-     * @param context The context in which the query was completed.
-     */
-    private void raiseQueryCompleteEvent(final VdcQueryType queryType, final 
Object context) {
-        raiseQueryEvent(getQueryCompleteEvent(), queryType, context);
-    }
-
-    /**
-     * Raise the query complete event for a list of events.
-     * @param queryTypeList A list of query types.
-     * @param context The context in which the query was completed.
-     */
-    private void raiseQueryCompleteEvent(final List<VdcQueryType> 
queryTypeList, final Object context) {
-        for (VdcQueryType queryType : queryTypeList) {
-            raiseQueryCompleteEvent(queryType, context);
-        }
     }
 
     /**
@@ -1083,50 +978,6 @@
     }
 
     /**
-     * Subscribed to query types. Clear any existing types.
-     * @param queryTypes An array of query types to subscribe to.
-     */
-    public void subscribe(final VdcQueryType[] queryTypes) {
-        subscribedQueryTypes.clear();
-        Collections.addAll(subscribedQueryTypes, queryTypes);
-    }
-
-    /**
-     * Subscribe to additional query types, keep existing types.
-     * @param queryTypes An array of query types to subscribe to.
-     */
-    public void subscribeAdditionalQueries(final VdcQueryType[] queryTypes) {
-        Collections.addAll(subscribedQueryTypes, queryTypes);
-    }
-
-    /**
-     * Un-subscribe all query types.
-     */
-    public void unsubscribe() {
-        subscribedQueryTypes.clear();
-        currentContext = null;
-
-        queryStartedEvent.getListeners().clear();
-        queryCompleteEvent.getListeners().clear();
-    }
-
-    /**
-     * Getter for the query started event.
-     * @return An {@code Event<EventArgs>} defining the query started event.
-     */
-    public Event<EventArgs> getQueryStartedEvent() {
-        return queryStartedEvent;
-    }
-
-    /**
-     * Getter for the query completed event.
-     * @return An {@code Event<EventArgs>} defining the query complete event.
-     */
-    public Event<EventArgs> getQueryCompleteEvent() {
-        return queryCompleteEvent;
-    }
-
-    /**
      * Check if we should ignore the passed in {@code Throwable}.
      * @param caught The {@code Throwable} to check.
      * @return {@code true} if the {@code Throwable} should be ignore, false 
otherwise.
@@ -1138,22 +989,6 @@
             return true;
         }
         return false;
-    }
-
-    /**
-     * Getter for queryStartedEventDefinition.
-     * @return an {@code EventDefinition} defining the query start event.
-     */
-    public EventDefinition getQueryStartedEventDefinition() {
-        return queryStartedEventDefinition;
-    }
-
-    /**
-     * Getter for queryCompleteEventDefinition.
-     * @return an {@code EventDefinition} defining the query complete event.
-     */
-    public EventDefinition getQueryCompleteEventDefinition() {
-        return queryCompleteEventDefinition;
     }
 
     /**
diff --git 
a/frontend/webadmin/modules/frontend/src/test/java/org/ovirt/engine/ui/frontend/FrontendTest.java
 
b/frontend/webadmin/modules/frontend/src/test/java/org/ovirt/engine/ui/frontend/FrontendTest.java
index 2a9b706..4c6d676 100644
--- 
a/frontend/webadmin/modules/frontend/src/test/java/org/ovirt/engine/ui/frontend/FrontendTest.java
+++ 
b/frontend/webadmin/modules/frontend/src/test/java/org/ovirt/engine/ui/frontend/FrontendTest.java
@@ -16,7 +16,6 @@
 
 import javax.servlet.http.HttpServletResponse;
 
-import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -72,10 +71,6 @@
     @Mock
     ErrorTranslator mockCanDoActionErrorsTranslator;
     @Mock
-    Event<EventArgs> queryCompleteEvent;
-    @Mock
-    Event<EventArgs> queryStartEvent;
-    @Mock
     Event<EventArgs> mockFrontendNotLoggedInEvent;
     @Mock
     Event<FrontendFailureEventArgs> mockFrontendFailureEvent;
@@ -113,26 +108,11 @@
         operationsManager.setLoggedIn(true);
         frontend = new Frontend(operationsManager, 
mockCanDoActionErrorsTranslator, mockVdsmErrorsTranslator,
                 mockEventBus);
-        frontend.queryCompleteEvent = queryCompleteEvent;
-        frontend.queryStartedEvent = queryStartEvent;
         frontend.frontendFailureEvent = mockFrontendFailureEvent;
         frontend.frontendNotLoggedInEvent = mockFrontendNotLoggedInEvent;
-        frontend.subscribe(new VdcQueryType[] {VdcQueryType.Search});
         frontend.setEventsHandler(mockEventsHandler);
         frontend.setConstants(mockConstants);
-        when(mockAsyncQuery.getContext()).thenReturn("test"); //$NON-NLS-1$
         when(mockAsyncQuery.getDel()).thenReturn(mockAsyncCallback);
-    }
-
-    @After
-    public void tearDown() throws Exception {
-        // Make sure that the query start and end have been called at least 
once.
-        // Some of the tests might call it more than once.
-        verify(queryStartEvent, atLeastOnce()).raise(Frontend.class, 
EventArgs.EMPTY);
-        verify(queryCompleteEvent, atLeastOnce()).raise(Frontend.class, 
EventArgs.EMPTY);
-
-        // Make sure the context is correct
-        assertEquals("Context should be 'test'", frontend.getCurrentContext(), 
"test"); //$NON-NLS-1$ //$NON-NLS-2$
     }
 
     /**
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/disks/DiskListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/disks/DiskListModel.java
index c9afe86..6a45bc3 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/disks/DiskListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/disks/DiskListModel.java
@@ -46,7 +46,6 @@
 
 import com.google.inject.Inject;
 
-@SuppressWarnings("unused")
 public class DiskListModel extends ListWithDetailsModel implements 
ISupportSystemTreeContext
 {
     private UICommand privateNewCommand;
@@ -264,7 +263,6 @@
     public void cancel()
     {
         setWindow(null);
-        Frontend.getInstance().unsubscribe();
     }
 
     @Override
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/AsyncIterator.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/AsyncIterator.java
index 0a538a2..85451e3 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/AsyncIterator.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/AsyncIterator.java
@@ -49,10 +49,6 @@
     }
 
     public void iterate(AsyncIteratorFunc<T> func, AsyncIteratorPredicate<T> 
action) {
-        iterate(func, action, null);
-    }
-
-    public void iterate(AsyncIteratorFunc<T> func, AsyncIteratorPredicate<T> 
action, String frontendContext) {
 
         setCounter(0);
 
@@ -71,7 +67,7 @@
                 break;
             }
 
-            AsyncIteratorCallback<T> callback = new 
AsyncIteratorCallback<T>(frontendContext);
+            AsyncIteratorCallback<T> callback = new AsyncIteratorCallback<T>();
 
             callback.getNotifyEvent().addListener(
                     new IEventListener<ValueEventArgs<T>>() {
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/AsyncIteratorCallback.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/AsyncIteratorCallback.java
index 1137186..94d1a5e 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/AsyncIteratorCallback.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/AsyncIteratorCallback.java
@@ -39,7 +39,7 @@
         notifyEventDefinition = new EventDefinition("Notify", 
AsyncIteratorCallback.class); //$NON-NLS-1$
     }
 
-    public AsyncIteratorCallback(String frontendContext) {
+    public AsyncIteratorCallback() {
 
         setNotifyEvent(new Event<ValueEventArgs<T>>(notifyEventDefinition));
 
@@ -50,7 +50,6 @@
                     public void onSuccess(Object target, Object returnValue) {
                         notifyEvent.raise(this, new ValueEventArgs<T>((T) 
returnValue));
                     }
-                },
-                frontendContext));
+                }));
     }
 }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/ConfigureLocalStorageModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/ConfigureLocalStorageModel.java
index 7cf6ec3..81e718a 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/ConfigureLocalStorageModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/hosts/ConfigureLocalStorageModel.java
@@ -2,7 +2,6 @@
 
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 
@@ -12,14 +11,11 @@
 import org.ovirt.engine.core.common.businessentities.StoragePoolStatus;
 import org.ovirt.engine.core.common.businessentities.VDS;
 import org.ovirt.engine.core.common.businessentities.VDSGroup;
-import org.ovirt.engine.core.common.queries.VdcQueryType;
 import org.ovirt.engine.core.common.utils.ListUtils;
-import org.ovirt.engine.core.common.utils.ObjectUtils;
 import org.ovirt.engine.core.compat.IntegerCompat;
 import org.ovirt.engine.core.compat.StringHelper;
 import org.ovirt.engine.core.compat.Version;
 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;
@@ -38,7 +34,6 @@
 import org.ovirt.engine.ui.uicompat.Event;
 import org.ovirt.engine.ui.uicompat.EventArgs;
 
-@SuppressWarnings("unused")
 public class ConfigureLocalStorageModel extends Model implements 
HasValidatedTabs {
 
     private LocalStorageModel privateStorage;
@@ -111,8 +106,6 @@
         privateCommonName = value;
     }
 
-    private final String frontendHash = getHashName() + new Date();
-
     public ConfigureLocalStorageModel() {
 
         setStorage(new LocalStorageModel());
@@ -125,17 +118,6 @@
         getCluster().setIsNew(true);
 
         setFormattedStorageName(new EntityModel<String>());
-
-        // Subscribe to the Frontend events.
-        Frontend.getInstance().getQueryStartedEvent().addListener(this);
-        Frontend.getInstance().getQueryCompleteEvent().addListener(this);
-        Frontend.getInstance().subscribe(new VdcQueryType[] {
-                VdcQueryType.Search,
-                VdcQueryType.GetVdsGroupsByStoragePoolId,
-                VdcQueryType.GetAllVdsGroups,
-                VdcQueryType.GetVdsGroupById,
-                VdcQueryType.GetStoragePoolById,
-        });
 
         // Set the storage type to be Local.
         for (Boolean bool : getDataCenter().getStoragePoolType().getItems()) {
@@ -154,12 +136,6 @@
 
         if (ev.matchesDefinition(ListModel.selectedItemChangedEventDefinition) 
&& sender == getDataCenter().getVersion()) {
             dataCenterVersion_SelectedItemChanged();
-        } else if 
(ev.matchesDefinition(Frontend.getInstance().getQueryStartedEventDefinition())
-                && 
ObjectUtils.objectsEqual(Frontend.getInstance().getCurrentContext(), 
frontendHash)) {
-            frontend_QueryStarted();
-        } else if 
(ev.matchesDefinition(Frontend.getInstance().getQueryCompleteEventDefinition())
-                && 
ObjectUtils.objectsEqual(Frontend.getInstance().getCurrentContext(), 
frontendHash)) {
-            frontend_QueryComplete();
         }
     }
 
@@ -397,8 +373,7 @@
                                                                                
     context.storageList = (ArrayList<StorageDomain>) returnValue;
                                                                                
     setDefaultNames8();
                                                                                
 }
-                                                                            },
-                                                                            
frontendHash));
+                                                                            
}));
     }
 
     public void setDefaultNames6() {
@@ -433,9 +408,7 @@
                         context.clusterListByDataCenterMap.put(item, 
(ArrayList<VDSGroup>) value);
                         return false;
                     }
-                },
-                frontendHash
-                );
+                });
     }
 
     public void setDefaultNames5() {
@@ -470,15 +443,13 @@
                         context.localStorageHostByDataCenterMap.put(item, 
(VDS) value);
                         return false;
                     }
-                },
-                frontendHash
-                );
+                });
     }
 
     public void setDefaultNames4() {
 
         // Get data centers containing 'local' in name.
-        AsyncDataProvider.getInstance().getDataCenterListByName(new 
AsyncQuery(null,
+        AsyncDataProvider.getInstance().getDataCenterListByName(new 
AsyncQuery(this,
                 new INewAsyncCallback() {
                     @Override
                     public void onSuccess(Object target, Object returnValue) {
@@ -486,8 +457,7 @@
                         context.dataCenterList = (ArrayList<StoragePool>) 
returnValue;
                         setDefaultNames5();
                     }
-                },
-                frontendHash),
+                }),
                 getCommonName() + "*"); //$NON-NLS-1$
     }
 
@@ -502,8 +472,7 @@
                                                                               
context.clusterList = (ArrayList<VDSGroup>) returnValue;
                                                                               
setDefaultNames4();
                                                                           }
-                                                                      },
-                                                                      
frontendHash));
+                                                                      }));
     }
 
     public void setDefaultNames2() {
@@ -520,8 +489,7 @@
                             context.hostCluster = (VDSGroup) returnValue;
                             setDefaultNames3();
                         }
-                    },
-                    frontendHash),
+                    }),
                     host.getVdsGroupId());
         } else {
             setDefaultNames3();
@@ -542,8 +510,7 @@
                             context.hostDataCenter = (StoragePool) returnValue;
                             setDefaultNames2();
                         }
-                    },
-                    frontendHash),
+                    }),
                     host.getStoragePoolId());
         } else {
             setDefaultNames2();
@@ -598,22 +565,6 @@
         }
 
         return commonName;
-    }
-
-    private int queryCounter;
-
-    private void frontend_QueryStarted() {
-        queryCounter++;
-        if (getProgress() == null) {
-            startProgress(null);
-        }
-    }
-
-    private void frontend_QueryComplete() {
-        queryCounter--;
-        if (queryCounter == 0) {
-            stopProgress();
-        }
     }
 
     private final Context context = new Context();
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/ImportSanStorageModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/ImportSanStorageModel.java
index 4fba7d0..bfba9d0 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/ImportSanStorageModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/ImportSanStorageModel.java
@@ -53,7 +53,7 @@
 
         
Frontend.getInstance().runQuery(VdcQueryType.GetUnregisteredBlockStorageDomains,
                 new GetUnregisteredBlockStorageDomainsParameters(vds.getId(), 
getType(), connections),
-                new AsyncQuery(this, new INewAsyncCallback() {
+                new AsyncQuery(getContainer(), new INewAsyncCallback() {
                     @Override
                     public void onSuccess(Object model, Object returnValue) {
                         VdcQueryReturnValue vdcQueryReturnValue = 
(VdcQueryReturnValue) returnValue;
@@ -71,7 +71,7 @@
 
                         postGetUnregisteredStorageDomains(storageDomains, 
connections);
                     }
-                }, getContainer().getHash()));
+                }));
     }
 
     @Override
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/ImportStorageModelBehavior.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/ImportStorageModelBehavior.java
index 49a18a9..e41ff82 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/ImportStorageModelBehavior.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/ImportStorageModelBehavior.java
@@ -16,7 +16,6 @@
 import org.ovirt.engine.ui.uicommonweb.models.Model;
 import org.ovirt.engine.ui.uicompat.ConstantsManager;
 
-@SuppressWarnings("unused")
 public class ImportStorageModelBehavior extends StorageModelBehavior
 {
     @Override
@@ -34,43 +33,39 @@
     @Override
     public void updateItemsAvailability()
     {
-        super.updateItemsAvailability();
-
         StoragePool dataCenter = getModel().getDataCenter().getSelectedItem();
 
         updateAvailabilityByDatacenter(dataCenter);
 
-        for (IStorageModel item : Linq.<IStorageModel> 
cast(getModel().getItems()))
+        for (final IStorageModel item : Linq.<IStorageModel> 
cast(getModel().getItems()))
         {
             if (item.getRole() == StorageDomainType.ISO)
             {
-                AsyncDataProvider.getInstance().getIsoDomainByDataCenterId(new 
AsyncQuery(new Object[] { this, item },
+                AsyncDataProvider.getInstance().getIsoDomainByDataCenterId(new 
AsyncQuery(this,
                         new INewAsyncCallback() {
                             @Override
                             public void onSuccess(Object target, Object 
returnValue) {
 
-                                Object[] array = (Object[]) target;
-                                ImportStorageModelBehavior behavior = 
(ImportStorageModelBehavior) array[0];
-                                IStorageModel storageModelItem = 
(IStorageModel) array[1];
+                                ImportStorageModelBehavior behavior = 
(ImportStorageModelBehavior) target;
+                                IStorageModel storageModelItem = item;
                                 
behavior.postUpdateItemsAvailability(storageModelItem, returnValue == null);
 
                             }
-                        }, getHash()), dataCenter.getId());
+                        }), dataCenter.getId());
             }
             else if (item.getRole() == StorageDomainType.ImportExport)
             {
-                
AsyncDataProvider.getInstance().getExportDomainByDataCenterId(new 
AsyncQuery(new Object[] { this, item },
+                
AsyncDataProvider.getInstance().getExportDomainByDataCenterId(new 
AsyncQuery(this,
                         new INewAsyncCallback() {
                             @Override
                             public void onSuccess(Object target, Object 
returnValue) {
 
-                                Object[] array = (Object[]) target;
-                                ImportStorageModelBehavior behavior = 
(ImportStorageModelBehavior) array[0];
-                                IStorageModel storageModelItem = 
(IStorageModel) array[1];
+                                ImportStorageModelBehavior behavior = 
(ImportStorageModelBehavior) target;
+                                IStorageModel storageModelItem = item;
                                 
behavior.postUpdateItemsAvailability(storageModelItem, returnValue == null);
 
                             }
-                        }, getHash()), dataCenter.getId());
+                        }), dataCenter.getId());
             }
             else
             {
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/NewEditStorageModelBehavior.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/NewEditStorageModelBehavior.java
index 9d0031c..ec25641 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/NewEditStorageModelBehavior.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/NewEditStorageModelBehavior.java
@@ -16,53 +16,46 @@
 import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider;
 import org.ovirt.engine.ui.uicommonweb.models.Model;
 
-@SuppressWarnings("unused")
 public class NewEditStorageModelBehavior extends StorageModelBehavior
 {
     @Override
     public void updateItemsAvailability()
     {
-        super.updateItemsAvailability();
-
         StoragePool dataCenter = getModel().getDataCenter().getSelectedItem();
         if (dataCenter == null) {
             return;
         }
 
         // Allow Data storage type corresponding to the selected data-center 
type + ISO and Export that are NFS only:
-        for (IStorageModel item : Linq.<IStorageModel> 
cast(getModel().getItems()))
+        for (final IStorageModel item : Linq.<IStorageModel> 
cast(getModel().getItems()))
         {
-            Model model = (Model) item;
-
             if (item.getRole() == StorageDomainType.ISO)
             {
-                AsyncDataProvider.getInstance().getIsoDomainByDataCenterId(new 
AsyncQuery(new Object[] { this, item },
+                AsyncDataProvider.getInstance().getIsoDomainByDataCenterId(new 
AsyncQuery(this,
                         new INewAsyncCallback() {
                             @Override
                             public void onSuccess(Object target, Object 
returnValue) {
 
-                                Object[] array = (Object[]) target;
-                                NewEditStorageModelBehavior behavior = 
(NewEditStorageModelBehavior) array[0];
-                                IStorageModel storageModelItem = 
(IStorageModel) array[1];
+                                NewEditStorageModelBehavior behavior = 
(NewEditStorageModelBehavior) target;
+                                IStorageModel storageModelItem = item;
                                 
behavior.postUpdateItemsAvailability(storageModelItem, returnValue == null);
 
                             }
-                        }, getHash()), dataCenter.getId());
+                        }), dataCenter.getId());
             }
             else if (item.getRole() == StorageDomainType.ImportExport)
             {
-                
AsyncDataProvider.getInstance().getExportDomainByDataCenterId(new 
AsyncQuery(new Object[] { this, item },
+                
AsyncDataProvider.getInstance().getExportDomainByDataCenterId(new 
AsyncQuery(this,
                         new INewAsyncCallback() {
                             @Override
                             public void onSuccess(Object target, Object 
returnValue) {
 
-                                Object[] array = (Object[]) target;
-                                NewEditStorageModelBehavior behavior = 
(NewEditStorageModelBehavior) array[0];
-                                IStorageModel storageModelItem = 
(IStorageModel) array[1];
+                                NewEditStorageModelBehavior behavior = 
(NewEditStorageModelBehavior) target;
+                                IStorageModel storageModelItem = item;
                                 
behavior.postUpdateItemsAvailability(storageModelItem, returnValue == null);
 
                             }
-                        }, getHash()), dataCenter.getId());
+                        }), dataCenter.getId());
             }
             else
             {
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/SanStorageModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/SanStorageModel.java
index 4076cb0..1178cec 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/SanStorageModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/SanStorageModel.java
@@ -26,7 +26,6 @@
 import org.ovirt.engine.ui.uicompat.UIConstants;
 import org.ovirt.engine.ui.uicompat.UIMessages;
 
-@SuppressWarnings("unused")
 public abstract class SanStorageModel extends SanStorageModelBase
 {
     private boolean isGrouppedByTarget;
@@ -151,7 +150,6 @@
                 }
             }
         }, true);
-        asyncQuery.setContext(getHash());
         Frontend.getInstance().runQuery(VdcQueryType.GetDeviceList,
                 new GetDeviceListQueryParameters(host.getId(), getType()),
                 asyncQuery);
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/SanStorageModelBase.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/SanStorageModelBase.java
index 7e91d2c..172b3cb 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/SanStorageModelBase.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/SanStorageModelBase.java
@@ -1,7 +1,6 @@
 package org.ovirt.engine.ui.uicommonweb.models.storage;
 
 import java.util.ArrayList;
-import java.util.Date;
 import java.util.List;
 
 import 
org.ovirt.engine.core.common.action.StorageServerConnectionParametersBase;
@@ -34,7 +33,6 @@
 import org.ovirt.engine.ui.uicompat.ObservableCollection;
 import org.ovirt.engine.ui.uicompat.PropertyChangedEventArgs;
 
-@SuppressWarnings("unused")
 public abstract class SanStorageModelBase extends SearchableListModel 
implements IStorageModel
 {
 
@@ -247,28 +245,12 @@
         }
     }
 
-    private String privateHash;
-
-    public String getHash()
-    {
-        return privateHash;
-    }
-
-    public void setHash(String value)
-    {
-        privateHash = value;
-    }
-
     private ArrayList<SanTargetModel> targetsToConnect;
 
     protected SanStorageModelBase()
     {
-        Frontend.getInstance().getQueryStartedEvent().addListener(this);
-        Frontend.getInstance().getQueryCompleteEvent().addListener(this);
-
         setHelpTag(HelpTag.SanStorageModelBase);
         setHashName("SanStorageModelBase"); //$NON-NLS-1$
-        setHash(getHashName() + new Date());
 
         setUpdateCommand(new UICommand("Update", this)); //$NON-NLS-1$
         UICommand tempVar = new UICommand("Login", this); //$NON-NLS-1$
@@ -302,36 +284,6 @@
         else if (ev.matchesDefinition(entityChangedEventDefinition))
         {
             useUserAuth_EntityChanged(sender, args);
-        }
-        else if 
(ev.matchesDefinition(Frontend.getInstance().getQueryStartedEventDefinition())
-                && 
ObjectUtils.objectsEqual(Frontend.getInstance().getCurrentContext(), getHash()))
-        {
-            frontend_QueryStarted();
-        }
-        else if 
(ev.matchesDefinition(Frontend.getInstance().getQueryCompleteEventDefinition())
-                && 
ObjectUtils.objectsEqual(Frontend.getInstance().getCurrentContext(), getHash()))
-        {
-            frontend_QueryComplete();
-        }
-    }
-
-    private int queryCounter;
-
-    private void frontend_QueryStarted()
-    {
-        queryCounter++;
-        if (getProgress() == null)
-        {
-            startProgress(null);
-        }
-    }
-
-    private void frontend_QueryComplete()
-    {
-        queryCounter--;
-        if (queryCounter == 0)
-        {
-            stopProgress();
         }
     }
 
@@ -451,7 +403,6 @@
                         : new ArrayList<StorageServerConnections>());
             }
         }, true);
-        asyncQuery.setContext(getHash());
         Frontend.getInstance().runQuery(VdcQueryType.DiscoverSendTargets, 
parameters, asyncQuery);
     }
 
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageIsoListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageIsoListModel.java
index af83e2a..165cee5 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageIsoListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageIsoListModel.java
@@ -21,7 +21,6 @@
 import org.ovirt.engine.ui.uicommonweb.models.SearchableListModel;
 import org.ovirt.engine.ui.uicompat.ConstantsManager;
 
-@SuppressWarnings("unused")
 public class StorageIsoListModel extends SearchableListModel
 {
 
@@ -170,7 +169,6 @@
 
     public void cancel() {
         setWindow(null);
-        Frontend.getInstance().unsubscribe();
     }
 
     private void updateActionAvailability() {
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 8937608..89311ca 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
@@ -71,7 +71,6 @@
 
 import com.google.inject.Inject;
 
-@SuppressWarnings("unused")
 public class StorageListModel extends ListWithDetailsAndReportsModel 
implements ITaskTarget, ISupportSystemTreeContext
 {
 
@@ -581,7 +580,7 @@
         }
     }
 
-    private void postPrepareSanStorageForEdit(SanStorageModel model, boolean 
isStorageActive)
+    private void postPrepareSanStorageForEdit(final SanStorageModel model, 
boolean isStorageActive)
     {
         StorageModel storageModel = (StorageModel) getWindow();
         StorageDomain storage = (StorageDomain) getSelectedItem();
@@ -590,14 +589,13 @@
         VDS host = storageModel.getHost().getSelectedItem();
         Guid hostId = host != null && isStorageActive ? host.getId() : null;
 
-        AsyncDataProvider.getInstance().getLunsByVgId(new AsyncQuery(model, 
new INewAsyncCallback() {
+        AsyncDataProvider.getInstance().getLunsByVgId(new 
AsyncQuery(storageModel, new INewAsyncCallback() {
             @Override
             public void onSuccess(Object target, Object returnValue) {
-                SanStorageModel sanStorageModel = (SanStorageModel) target;
                 ArrayList<LUNs> lunList = (ArrayList<LUNs>) returnValue;
-                sanStorageModel.applyData(lunList, true);
+                model.applyData(lunList, true);
             }
-        }, storageModel.getHash()), storage.getStorage(), hostId);
+        }), storage.getStorage(), hostId);
     }
 
     private void importDomain()
@@ -1022,7 +1020,6 @@
     private void cancel()
     {
         setWindow(null);
-        Frontend.getInstance().unsubscribe();
     }
 
     @Override
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 3d21510..5817c9d 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
@@ -4,7 +4,6 @@
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
-import java.util.Date;
 import java.util.List;
 
 import 
org.ovirt.engine.core.common.businessentities.BusinessEntitiesDefinitions;
@@ -21,13 +20,10 @@
 import org.ovirt.engine.core.common.businessentities.VDSType;
 import org.ovirt.engine.core.common.businessentities.VdsSpmStatus;
 import org.ovirt.engine.core.common.queries.ConfigurationValues;
-import org.ovirt.engine.core.common.queries.VdcQueryType;
-import org.ovirt.engine.core.common.utils.ObjectUtils;
 import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.compat.StringHelper;
 import org.ovirt.engine.core.compat.Version;
 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;
@@ -171,18 +167,6 @@
         privateAvailableStorageItems = value;
     }
 
-    private String privateHash;
-
-    public String getHash()
-    {
-        return privateHash;
-    }
-
-    public void setHash(String value)
-    {
-        privateHash = value;
-    }
-
     private EntityModel<Boolean> activateDomain;
 
     public EntityModel<Boolean> getActivateDomain() {
@@ -197,15 +181,6 @@
     {
         this.behavior = behavior;
         this.behavior.setModel(this);
-
-        Frontend.getInstance().getQueryStartedEvent().addListener(this);
-        Frontend.getInstance().getQueryCompleteEvent().addListener(this);
-        Frontend.getInstance().subscribeAdditionalQueries(new VdcQueryType[] 
{VdcQueryType.Search,
-                VdcQueryType.GetConfigurationValue, 
VdcQueryType.GetStoragePoolsByStorageDomainId,
-                VdcQueryType.GetStorageDomainsByStoragePoolId, 
VdcQueryType.GetLunsByVgId,
-                VdcQueryType.GetAllVdsByStoragePool, 
VdcQueryType.DiscoverSendTargets, VdcQueryType.GetDeviceList,
-                VdcQueryType.GetExistingStorageDomainList, 
VdcQueryType.GetHostsForStorageOperation,
-                VdcQueryType.GetUnregisteredBlockStorageDomains });
 
         setName(new EntityModel<String>());
         setDescription(new EntityModel<String>());
@@ -229,8 +204,6 @@
     {
         super.initialize();
 
-        setHash(getHashName() + new Date());
-        behavior.setHash(getHash());
         behavior.initialize();
 
         initDataCenter();
@@ -263,36 +236,6 @@
         else if 
(ev.matchesDefinition(NfsStorageModel.pathChangedEventDefinition))
         {
             nfsStorageModel_PathChanged(sender, args);
-        }
-        else if 
(ev.matchesDefinition(Frontend.getInstance().getQueryStartedEventDefinition())
-                && 
ObjectUtils.objectsEqual(Frontend.getInstance().getCurrentContext(), getHash()))
-        {
-            frontend_QueryStarted();
-        }
-        else if 
(ev.matchesDefinition(Frontend.getInstance().getQueryCompleteEventDefinition())
-                && 
ObjectUtils.objectsEqual(Frontend.getInstance().getCurrentContext(), getHash()))
-        {
-            frontend_QueryComplete();
-        }
-    }
-
-    private int queryCounter;
-
-    public void frontend_QueryStarted()
-    {
-        queryCounter++;
-        if (getProgress() == null)
-        {
-            startProgress(null);
-        }
-    }
-
-    public void frontend_QueryComplete()
-    {
-        queryCounter--;
-        if (queryCounter == 0)
-        {
-            stopProgress();
         }
     }
 
@@ -371,7 +314,6 @@
             if (getSelectedItem() instanceof SanStorageModelBase)
             {
                 SanStorageModelBase sanStorageModel = (SanStorageModelBase) 
getSelectedItem();
-                sanStorageModel.setHash(getHash());
 
                 if (getStorage() == null) {
                     sanStorageModel.setItems(null);
@@ -450,14 +392,13 @@
             // -> fill DataCenters drop-down with all possible Data-Centers, 
choose the empty one:
             // [TODO: In case of an Unattached SD, choose only DCs of the same 
type]
             {
-                AsyncDataProvider.getInstance().getDataCenterList(new 
AsyncQuery(new Object[] {this, behavior},
+                AsyncDataProvider.getInstance().getDataCenterList(new 
AsyncQuery(this,
                                                                                
  new INewAsyncCallback() {
                                                                                
      @Override
                                                                                
      public void onSuccess(Object target, Object returnValue) {
 
-                                                                               
          Object[] array = (Object[]) target;
-                                                                               
          StorageModel storageModel = (StorageModel) array[0];
-                                                                               
          StorageModelBehavior storageModelBehavior = (StorageModelBehavior) 
array[1];
+                                                                               
          StorageModel storageModel = (StorageModel) target;
+                                                                               
          StorageModelBehavior storageModelBehavior = behavior;
                                                                                
          List<StoragePool> dataCenters =
                                                                                
                  (ArrayList<StoragePool>) returnValue;
                                                                                
          dataCenters = storageModelBehavior.filterDataCenter(dataCenters);
@@ -476,7 +417,7 @@
                                                                                
          }
 
                                                                                
      }
-                                                                               
  }, getHash()));
+                                                                               
  }));
             }
 
             else // "Edit Storage" mode:
@@ -503,8 +444,7 @@
                                 
storageModel.getDataCenter().setSelectedItem(Linq.firstOrDefault(dataCenters));
 
                             }
-                        },
-                        getHash()),
+                        }),
                         getStorage().getId());
             }
         }
@@ -542,7 +482,7 @@
                 Collection<VDS> hosts = (Collection<VDS>) returnValue;
                 storageModel.postUpdateHost(hosts);
             }
-        }, getHash()), dataCenterId, localFsOnly);
+        }), dataCenterId, localFsOnly);
     }
 
     public void postUpdateHost(Collection<VDS> hosts)
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageModelBehavior.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageModelBehavior.java
index 2188053..3287257 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageModelBehavior.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageModelBehavior.java
@@ -7,12 +7,8 @@
 import org.ovirt.engine.core.common.businessentities.StoragePoolStatus;
 import org.ovirt.engine.core.common.businessentities.StorageType;
 import org.ovirt.engine.core.common.businessentities.VDS;
-import org.ovirt.engine.core.common.utils.ObjectUtils;
-import org.ovirt.engine.ui.frontend.Frontend;
 import org.ovirt.engine.ui.uicommonweb.Linq;
 import org.ovirt.engine.ui.uicommonweb.models.Model;
-import org.ovirt.engine.ui.uicompat.Event;
-import org.ovirt.engine.ui.uicompat.EventArgs;
 
 public abstract class StorageModelBehavior extends Model
 {
@@ -28,32 +24,12 @@
         privateModel = value;
     }
 
-    private String privateHash;
-
-    public String getHash()
-    {
-        return privateHash;
-    }
-
-    public void setHash(String value)
-    {
-        privateHash = value;
-    }
-
     public List<StoragePool> filterDataCenter(List<StoragePool> source)
     {
         return Linq.toList(Linq.where(source, new 
Linq.DataCenterNotStatusPredicate(StoragePoolStatus.NotOperational)));
     }
 
-    public void updateItemsAvailability()
-    {
-        if 
(!Frontend.getInstance().getQueryStartedEvent().getListeners().contains(this)) {
-            Frontend.getInstance().getQueryStartedEvent().addListener(this);
-        }
-        if 
(!Frontend.getInstance().getQueryCompleteEvent().getListeners().contains(this)) 
{
-            Frontend.getInstance().getQueryCompleteEvent().addListener(this);
-        }
-    }
+    public abstract void updateItemsAvailability();
 
     public void filterUnSelectableModels()
     {
@@ -89,23 +65,6 @@
             if (getModel().getSelectedItem() != null) {
                 getModel().updateFormat();
             }
-        }
-    }
-
-    @Override
-    public void eventRaised(Event<? extends EventArgs> ev, Object sender, 
EventArgs args)
-    {
-        super.eventRaised(ev, sender, args);
-
-        if 
(ev.matchesDefinition(Frontend.getInstance().getQueryStartedEventDefinition())
-                && 
ObjectUtils.objectsEqual(Frontend.getInstance().getCurrentContext(), getHash()))
-        {
-            getModel().frontend_QueryStarted();
-        }
-        else if 
(ev.matchesDefinition(Frontend.getInstance().getQueryCompleteEventDefinition())
-                && 
ObjectUtils.objectsEqual(Frontend.getInstance().getCurrentContext(), getHash()))
-        {
-            getModel().frontend_QueryComplete();
         }
     }
 
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/TemplateListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/TemplateListModel.java
index 69388d6..875e3b2 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/TemplateListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/templates/TemplateListModel.java
@@ -682,8 +682,6 @@
 
     private void cancel()
     {
-        Frontend.getInstance().unsubscribe();
-
         cancelConfirmation();
 
         setWindow(null);
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/AbstractUserPortalListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/AbstractUserPortalListModel.java
index 08398f6..d0d9b51 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/AbstractUserPortalListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/AbstractUserPortalListModel.java
@@ -2,8 +2,8 @@
 
 import java.util.LinkedList;
 import java.util.List;
+
 import org.ovirt.engine.core.common.businessentities.VM;
-import org.ovirt.engine.ui.frontend.Frontend;
 import 
org.ovirt.engine.ui.uicommonweb.ConsoleOptionsFrontendPersister.ConsoleContext;
 import org.ovirt.engine.ui.uicommonweb.UICommand;
 import org.ovirt.engine.ui.uicommonweb.help.HelpTag;
@@ -103,7 +103,6 @@
 
     protected void cancel()
     {
-        Frontend.getInstance().unsubscribe();
         setWindow(null);
         setConfirmWindow(null);
     }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalListModel.java
index 369a01f..87e78ab 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/userportal/UserPortalListModel.java
@@ -1311,7 +1311,7 @@
                                                                                
         cachedMaxPriority = (Integer) returnValue;
                                                                                
         updatePriority((UnitVmModel) target);
                                                                                
     }
-                                                                               
 }, model.getHash()));
+                                                                               
 }));
             } else {
                 updatePriority(model);
             }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/AbstractDiskModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/AbstractDiskModel.java
index 9e03180..99ed724 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/AbstractDiskModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/AbstractDiskModel.java
@@ -2,7 +2,6 @@
 
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.Date;
 import java.util.List;
 
 import org.ovirt.engine.core.common.businessentities.ActionGroup;
@@ -31,7 +30,6 @@
 import org.ovirt.engine.core.common.queries.IdQueryParameters;
 import org.ovirt.engine.core.common.queries.VdcQueryReturnValue;
 import org.ovirt.engine.core.common.queries.VdcQueryType;
-import org.ovirt.engine.core.common.utils.ObjectUtils;
 import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.compat.Version;
 import org.ovirt.engine.ui.frontend.AsyncQuery;
@@ -81,9 +79,7 @@
     private boolean previousIsQuotaAvailable;
 
     private SystemTreeItemModel systemTreeSelectedItem;
-    private String hash;
     private UICommand cancelCommand;
-    private int queryCounter;
 
     public EntityModel<Boolean> getIsWipeAfterDelete() {
         return isWipeAfterDelete;
@@ -222,14 +218,6 @@
         this.isVirtioScsiEnabled = virtioScsiEnabled;
     }
 
-    public String getHash() {
-        return hash;
-    }
-
-    public void setHash(String hash) {
-        this.hash = hash;
-    }
-
     @Override
     public UICommand getCancelCommand() {
         return cancelCommand;
@@ -320,17 +308,6 @@
     @Override
     public void initialize() {
         super.initialize();
-        setHash(getHashName() + new Date());
-
-        // Add progress listeners
-        Frontend.getInstance().getQueryStartedEvent().addListener(this);
-        Frontend.getInstance().getQueryCompleteEvent().addListener(this);
-        Frontend.getInstance().subscribeAdditionalQueries(new VdcQueryType[] { 
VdcQueryType.Search,
-                VdcQueryType.GetStoragePoolById, 
VdcQueryType.GetNextAvailableDiskAliasNameByVMId,
-                VdcQueryType.GetPermittedStorageDomainsByStoragePoolId, 
VdcQueryType.GetAllVdsByStoragePool,
-                VdcQueryType.GetAllAttachableDisks, 
VdcQueryType.GetAllDisksByVmId,
-                VdcQueryType.GetAllRelevantQuotasForStorage, 
VdcQueryType.OsRepository,
-                VdcQueryType.GetDiskProfilesByStorageDomainId });
 
         // Create and set commands
         UICommand onSaveCommand = new UICommand("OnSave", this); //$NON-NLS-1$
@@ -370,7 +347,7 @@
 
                 diskModel.setMessage(storage == null ? 
CONSTANTS.noActiveStorageDomainsInDC() : "");
             }
-        }, getHash()), datacenter.getId(), ActionGroup.CREATE_DISK);
+        }), datacenter.getId(), ActionGroup.CREATE_DISK);
     }
 
     private void updateHosts(StoragePool datacenter) {
@@ -389,7 +366,7 @@
 
                 diskModel.getHost().setItems(filteredHosts);
             }
-        }, getHash()), datacenter.getId());
+        }), datacenter.getId());
     }
 
     private void updateDatacenters() {
@@ -415,7 +392,7 @@
                         diskModel.setMessage(CONSTANTS.relevantDCnotActive());
                     }
                 }
-            }, getHash())), getVm().getStoragePoolId());
+            })), getVm().getStoragePoolId());
         }
         else {
             AsyncDataProvider.getInstance().getDataCenterList(new 
AsyncQuery(this, new INewAsyncCallback() {
@@ -437,7 +414,7 @@
                         diskModel.setMessage(CONSTANTS.noActiveDataCenters());
                     }
                 }
-            }, getHash()));
+            }));
         }
     }
 
@@ -466,7 +443,7 @@
                     getIsBootable().setEntity(getDisk().isBoot());
                 }
             }
-        }, getHash()), getVm().getId());
+        }), getVm().getId());
     }
 
     private void updateShareableDiskEnabled(StoragePool datacenter) {
@@ -553,7 +530,7 @@
                                 
AbstractDiskModel.this.setDiskProfilesList((List<DiskProfile>) 
((VdcQueryReturnValue) value).getReturnValue());
                             }
 
-                        }, getHash()));
+                        }));
     }
 
     private void setDiskProfilesList(List<DiskProfile> diskProfiles) {
@@ -624,7 +601,7 @@
                             getQuota().setSelectedItem(quota);
                         }
                     }
-                }, getHash()));
+                }));
     }
 
     private boolean isHostAvailable(VDS host) {
@@ -927,30 +904,6 @@
             } else if (sender == getStorageDomain()) {
                 storageDomain_SelectedItemChanged();
             }
-        }
-        else if 
(ev.matchesDefinition(Frontend.getInstance().getQueryStartedEventDefinition())
-                && 
ObjectUtils.objectsEqual(Frontend.getInstance().getCurrentContext(), getHash()))
-        {
-            frontend_QueryStarted();
-        }
-        else if 
(ev.matchesDefinition(Frontend.getInstance().getQueryCompleteEventDefinition())
-                && 
ObjectUtils.objectsEqual(Frontend.getInstance().getCurrentContext(), getHash()))
-        {
-            frontend_QueryComplete();
-        }
-    }
-
-    public void frontend_QueryStarted() {
-        queryCounter++;
-        if (getProgress() == null) {
-            startProgress(null);
-        }
-    }
-
-    public void frontend_QueryComplete() {
-        queryCounter--;
-        if (queryCounter == 0) {
-            stopProgress();
         }
     }
 }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/AttachDiskModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/AttachDiskModel.java
index 06a13c1..d0052f2 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/AttachDiskModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/AttachDiskModel.java
@@ -55,7 +55,7 @@
                 
getAttachableDisksMap().get(DiskStorageType.IMAGE).setItems(Linq.toEntityModelList(
                         Linq.filterDisksByType(diskModels, 
Disk.DiskStorageType.IMAGE)));
             }
-        }, getHash()), getVm().getStoragePoolId(), getVm().getId());
+        }), getVm().getStoragePoolId(), getVm().getId());
 
         // Get external attachable disks
         AsyncDataProvider.getInstance().getAllAttachableDisks(new 
AsyncQuery(this, new INewAsyncCallback() {
@@ -68,7 +68,7 @@
                 
getAttachableDisksMap().get(DiskStorageType.LUN).setItems(Linq.toEntityModelList(
                         Linq.filterDisksByType(diskModels, 
Disk.DiskStorageType.LUN)));
             }
-        }, getHash()), null, getVm().getId());
+        }), null, getVm().getId());
     }
 
     @Override
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/EditDiskModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/EditDiskModel.java
index fd60a9e..0e5ce33 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/EditDiskModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/EditDiskModel.java
@@ -62,7 +62,7 @@
                     StorageDomain storageDomain = (StorageDomain) returnValue;
                     
diskModel.getStorageDomain().setSelectedItem(storageDomain);
                 }
-            }, getHash()), storageDomainId);
+            }), storageDomainId);
         } else {
             LunDisk lunDisk = (LunDisk) getDisk();
             getDiskStorageType().setEntity(DiskStorageType.LUN);
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ExistingPoolModelBehavior.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ExistingPoolModelBehavior.java
index e28f223..6112e33 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ExistingPoolModelBehavior.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ExistingPoolModelBehavior.java
@@ -100,11 +100,11 @@
 
         ActionGroup actionGroup = getModel().isCreateInstanceOnly() ? 
ActionGroup.CREATE_INSTANCE : ActionGroup.CREATE_VM;
         StoragePool dataCenter = getModel().getSelectedDataCenter();
-        
AsyncDataProvider.getInstance().getPermittedStorageDomainsByStoragePoolId(new 
AsyncQuery(this, new INewAsyncCallback() {
+        
AsyncDataProvider.getInstance().getPermittedStorageDomainsByStoragePoolId(new 
AsyncQuery(getModel(), new INewAsyncCallback() {
             @Override
             public void onSuccess(Object target, Object returnValue) {
 
-                VmModelBehaviorBase behavior = (VmModelBehaviorBase) target;
+                VmModelBehaviorBase behavior = ExistingPoolModelBehavior.this;
 
                 ArrayList<DiskModel> disks = (ArrayList<DiskModel>) 
behavior.getModel().getDisks();
                 ArrayList<StorageDomain> storageDomains = 
(ArrayList<StorageDomain>) returnValue;
@@ -133,7 +133,7 @@
                     diskModel.getStorageDomain().setIsChangable(false);
                 }
             }
-        }, getModel().getHash()), dataCenter.getId(), actionGroup);
+        }), dataCenter.getId(), actionGroup);
     }
 
     public boolean validate() {
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ExistingVmModelBehavior.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ExistingVmModelBehavior.java
index 768136f..1e221f5 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ExistingVmModelBehavior.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ExistingVmModelBehavior.java
@@ -115,8 +115,7 @@
                         }
 
                     }
-                },
-                getModel().getHash()),
+                }),
                 vm.getStoragePoolId());
     }
 
@@ -139,7 +138,7 @@
                         initTemplate();
                         initCdImage();
                     }
-                }, getModel().getHash()),
+                }),
                 true, false);
     }
 
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewDiskModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewDiskModel.java
index 3e361e6..2910679 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewDiskModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewDiskModel.java
@@ -60,7 +60,7 @@
                 DiskModel diskModel = (DiskModel) model;
                 diskModel.getAlias().setEntity(suggestedDiskAlias);
             }
-        }, getHash()), getVm().getId());
+        }), getVm().getId());
     }
 
     @Override
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewTemplateVmModelBehavior.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewTemplateVmModelBehavior.java
index aaed3f3..a8b868c 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewTemplateVmModelBehavior.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewTemplateVmModelBehavior.java
@@ -59,7 +59,7 @@
         DisksAllocationModel disksAllocationModel = 
getModel().getDisksAllocationModel();
         disksAllocationModel.setIsAliasChangable(true);
 
-        AsyncDataProvider.getInstance().getDataCenterById(new AsyncQuery(this,
+        AsyncDataProvider.getInstance().getDataCenterById(new 
AsyncQuery(getModel(),
                 new INewAsyncCallback() {
                     @Override
                     public void onSuccess(Object target, Object returnValue) {
@@ -95,7 +95,7 @@
                                             initTemplate();
 
                                         }
-                                    }, getModel().getHash()),
+                                    }),
                                     true,
                                     false);
 
@@ -106,12 +106,11 @@
                                         public void onSuccess(Object model, 
Object returnValue) {
                                             
getModel().getIsSoundcardEnabled().setEntity((Boolean) returnValue);
                                         }
-                                    }, getModel().getHash()), vm.getId());
+                                    }), vm.getId());
                         }
 
                     }
-                },
-                getModel().getHash()),
+                }),
                 vm.getStoragePoolId());
     }
 
@@ -127,16 +126,14 @@
         // Filter according to system tree selection.
         if (getSystemTreeSelectedItem() != null && 
getSystemTreeSelectedItem().getType() == SystemTreeItemType.Storage)
         {
-            StorageDomain storage = (StorageDomain) 
getSystemTreeSelectedItem().getEntity();
+            final StorageDomain storage = (StorageDomain) 
getSystemTreeSelectedItem().getEntity();
 
-            AsyncDataProvider.getInstance().getTemplateListByDataCenter(new 
AsyncQuery(new Object[] { this, storage },
+            AsyncDataProvider.getInstance().getTemplateListByDataCenter(new 
AsyncQuery(getModel(),
                     new INewAsyncCallback() {
                         @Override
                         public void onSuccess(Object target1, Object 
returnValue1) {
 
-                            Object[] array1 = (Object[]) target1;
-                            NewTemplateVmModelBehavior behavior1 = 
(NewTemplateVmModelBehavior) array1[0];
-                            StorageDomain storage1 = (StorageDomain) array1[1];
+                            NewTemplateVmModelBehavior behavior1 = 
NewTemplateVmModelBehavior.this;
                             
AsyncDataProvider.getInstance().getTemplateListByStorage(new AsyncQuery(new 
Object[] { behavior1,
                                     returnValue1 },
                                     new INewAsyncCallback() {
@@ -164,20 +161,20 @@
 
                                         }
                                     }),
-                                    storage1.getId());
+                                    storage.getId());
 
                         }
-                    }, getModel().getHash()),
+                    }),
                     dataCenter.getId());
         }
         else
         {
-            AsyncDataProvider.getInstance().getTemplateListByDataCenter(new 
AsyncQuery(this,
+            AsyncDataProvider.getInstance().getTemplateListByDataCenter(new 
AsyncQuery(getModel(),
                     new INewAsyncCallback() {
                         @Override
                         public void onSuccess(Object target, Object 
returnValue) {
 
-                            NewTemplateVmModelBehavior behavior = 
(NewTemplateVmModelBehavior) target;
+                            NewTemplateVmModelBehavior behavior = 
NewTemplateVmModelBehavior.this;
 
                             ArrayList<VmTemplate> templates = 
(ArrayList<VmTemplate>) returnValue;
 
@@ -185,7 +182,7 @@
                                     
dataCenterWithCluster.getCluster().getArchitecture()));
 
                         }
-                    }, getModel().getHash()), dataCenter.getId());
+                    }), dataCenter.getId());
         }
     }
 
@@ -208,12 +205,12 @@
         super.dataCenterWithClusterSelectedItemChanged();
 
         // If a VM has at least one disk, present its storage domain.
-        AsyncDataProvider.getInstance().getVmDiskList(new AsyncQuery(this,
+        AsyncDataProvider.getInstance().getVmDiskList(new 
AsyncQuery(getModel(),
                 new INewAsyncCallback() {
                     @Override
                     public void onSuccess(Object target, Object returnValue) {
 
-                        NewTemplateVmModelBehavior behavior = 
(NewTemplateVmModelBehavior) target;
+                        NewTemplateVmModelBehavior behavior = 
NewTemplateVmModelBehavior.this;
                         ArrayList<Disk> imageDisks = new ArrayList<Disk>();
                         ArrayList<Disk> vmDisks = (ArrayList<Disk>) 
returnValue;
 
@@ -231,7 +228,7 @@
                                 vmDisks,
                                 VmModelHelper.WarningType.VM_TEMPLATE);
                     }
-                }, getModel().getHash()),
+                }),
                 vm.getId(),
                 true);
     }
@@ -342,11 +339,11 @@
     @Override
     public void initStorageDomains()
     {
-        
AsyncDataProvider.getInstance().getPermittedStorageDomainsByStoragePoolId(new 
AsyncQuery(this,
+        
AsyncDataProvider.getInstance().getPermittedStorageDomainsByStoragePoolId(new 
AsyncQuery(getModel(),
                 new INewAsyncCallback() {
                     @Override
                     public void onSuccess(Object target, Object returnValue) {
-                        NewTemplateVmModelBehavior behavior = 
(NewTemplateVmModelBehavior) target;
+                        NewTemplateVmModelBehavior behavior = 
NewTemplateVmModelBehavior.this;
                         ArrayList<StorageDomain> activeStorageDomainList =
                                 new ArrayList<StorageDomain>();
 
@@ -417,8 +414,7 @@
                             }
                         }
                     }
-                },
-                getModel().getHash()),
+                }),
                 vm.getStoragePoolId(),
                 ActionGroup.CREATE_TEMPLATE);
     }
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewVmModelBehavior.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewVmModelBehavior.java
index 592491f..5a4ba8d 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewVmModelBehavior.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/NewVmModelBehavior.java
@@ -64,13 +64,13 @@
                                             initCdImage();
 
                                         }
-                                    }, getModel().getHash()),
+                                    }),
                                     true, false);
                         } else {
                             
getModel().disableEditing(ConstantsManager.getInstance().getConstants().notAvailableWithNoUpDC());
                         }
                     }
-                }, getModel().getHash()),
+                }),
                 true,
                 false);
 
@@ -243,16 +243,14 @@
         // Filter according to system tree selection.
         if (getSystemTreeSelectedItem() != null && 
getSystemTreeSelectedItem().getType() == SystemTreeItemType.Storage)
         {
-            StorageDomain storage = (StorageDomain) 
getSystemTreeSelectedItem().getEntity();
+            final StorageDomain storage = (StorageDomain) 
getSystemTreeSelectedItem().getEntity();
 
-            AsyncDataProvider.getInstance().getTemplateListByDataCenter(new 
AsyncQuery(new Object[] { this, storage },
+            AsyncDataProvider.getInstance().getTemplateListByDataCenter(new 
AsyncQuery(getModel(),
                     new INewAsyncCallback() {
                         @Override
                         public void onSuccess(Object target1, Object 
returnValue1) {
 
-                            Object[] array1 = (Object[]) target1;
-                            NewVmModelBehavior behavior1 = 
(NewVmModelBehavior) array1[0];
-                            StorageDomain storage1 = (StorageDomain) array1[1];
+                            NewVmModelBehavior behavior1 = 
NewVmModelBehavior.this;
                             
AsyncDataProvider.getInstance().getTemplateListByStorage(new AsyncQuery(new 
Object[] { behavior1,
                                     returnValue1 },
                                     new INewAsyncCallback() {
@@ -278,20 +276,20 @@
 
                                         }
                                     }),
-                                    storage1.getId());
+                                    storage.getId());
 
                         }
-                    }, getModel().getHash()),
+                    }),
                     dataCenter.getId());
         }
         else
         {
-            AsyncDataProvider.getInstance().getTemplateListByDataCenter(new 
AsyncQuery(this,
+            AsyncDataProvider.getInstance().getTemplateListByDataCenter(new 
AsyncQuery(getModel(),
                     new INewAsyncCallback() {
                         @Override
                         public void onSuccess(Object target, Object 
returnValue) {
 
-                            NewVmModelBehavior behavior = (NewVmModelBehavior) 
target;
+                            NewVmModelBehavior behavior = 
NewVmModelBehavior.this;
 
                             List<VmTemplate> templates = (List<VmTemplate>) 
returnValue;
 
@@ -299,7 +297,7 @@
                                     
dataCenterWithCluster.getCluster().getArchitecture()));
 
                         }
-                    }, getModel().getHash()), dataCenter.getId());
+                    }), dataCenter.getId());
         }
     }
 
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/PoolModelBehaviorBase.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/PoolModelBehaviorBase.java
index f6e49c6..2460cb9 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/PoolModelBehaviorBase.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/PoolModelBehaviorBase.java
@@ -71,7 +71,7 @@
 
 
             }
-        }, getModel().getHash()), true, false);
+        }), true, false);
 
         getModel().getSpiceProxyEnabled().setEntity(false);
         getModel().getSpiceProxy().setIsChangable(false);
@@ -99,7 +99,7 @@
                         initCdImage();
                         getPoolModelBehaviorInitializedEvent().raise(this, 
EventArgs.EMPTY);
                     }
-                }, getModel().getHash()),
+                }),
                 true, false);
     }
 
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/PriorityUtil.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/PriorityUtil.java
index f79e349..4dc980b 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/PriorityUtil.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/PriorityUtil.java
@@ -20,33 +20,31 @@
         this.model = model;
     }
 
-    public void initPriority(int priority)
+    public void initPriority(final int priority)
     {
-        AsyncDataProvider.getInstance().getMaxVmPriority(new AsyncQuery(new 
Object[] {model, priority},
+        AsyncDataProvider.getInstance().getMaxVmPriority(new AsyncQuery(model,
                                                                         new 
INewAsyncCallback() {
                                                                             
@Override
                                                                             
public void onSuccess(Object target, Object returnValue) {
 
-                                                                               
 Object[] array = (Object[]) target;
-                                                                               
 UnitVmModel model = (UnitVmModel) array[0];
-                                                                               
 int vmPriority = (Integer) array[1];
+                                                                               
 UnitVmModel model = (UnitVmModel) target;
                                                                                
 cachedMaxPriority = (Integer) returnValue;
 
-                                                                               
 int value = AsyncDataProvider.getInstance().getRoundedPriority(vmPriority, 
cachedMaxPriority);
+                                                                               
 int value = AsyncDataProvider.getInstance().getRoundedPriority(priority, 
cachedMaxPriority);
                                                                                
 EntityModel tempVar = new EntityModel();
                                                                                
 tempVar.setEntity(value);
                                                                                
 model.getPriority().setSelectedItem(tempVar);
                                                                                
 updatePriority();
 
                                                                             }
-                                                                        }, 
model.getHash()));
+                                                                        }));
     }
 
     private void updatePriority()
     {
         if (cachedMaxPriority == null)
         {
-            AsyncDataProvider.getInstance().getMaxVmPriority(new 
AsyncQuery(this,
+            AsyncDataProvider.getInstance().getMaxVmPriority(new 
AsyncQuery(model,
                                                                             
new INewAsyncCallback() {
                                                                                
 @Override
                                                                                
 public void onSuccess(Object target, Object returnValue) {
@@ -54,7 +52,7 @@
                                                                                
     postUpdatePriority();
 
                                                                                
 }
-                                                                            }, 
model.getHash()));
+                                                                            
}));
         }
         else
         {
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/TemplateVmModelBehavior.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/TemplateVmModelBehavior.java
index 46952c9..e541b41 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/TemplateVmModelBehavior.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/TemplateVmModelBehavior.java
@@ -88,12 +88,11 @@
                                                         }
                                                     }), template.getId());
                                         }
-                                    }, getModel().getHash()),
+                                    }),
                                     true,
                                     false);
                         }
-                    },
-                    getModel().getHash()),
+                    }),
                     template.getStoragePoolId());
         }
 
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java
index af802be..9a8fa98 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UnitVmModel.java
@@ -3,7 +3,6 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
-import java.util.Date;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
@@ -35,13 +34,11 @@
 import org.ovirt.engine.core.common.businessentities.profiles.CpuProfile;
 import org.ovirt.engine.core.common.queries.ConfigurationValues;
 import org.ovirt.engine.core.common.queries.VdcQueryReturnValue;
-import org.ovirt.engine.core.common.queries.VdcQueryType;
 import org.ovirt.engine.core.common.utils.ObjectUtils;
 import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.compat.StringHelper;
 import org.ovirt.engine.core.compat.Version;
 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.ICommandTarget;
 import org.ovirt.engine.ui.uicommonweb.Linq;
@@ -282,18 +279,6 @@
 
             vmAttachedToPool = true;
         }
-    }
-
-    private String privateHash;
-
-    public String getHash()
-    {
-        return privateHash;
-    }
-
-    public void setHash(String value)
-    {
-        privateHash = value;
     }
 
     private boolean isBlankTemplate;
@@ -1389,24 +1374,6 @@
     }
 
     public UnitVmModel(VmModelBehaviorBase behavior) {
-        Frontend.getInstance().getQueryStartedEvent().addListener(this);
-        Frontend.getInstance().getQueryCompleteEvent().addListener(this);
-
-        Frontend.getInstance().subscribe(new VdcQueryType[] { 
VdcQueryType.GetStorageDomainsByStoragePoolId,
-                VdcQueryType.GetImagesListByStoragePoolId,
-                VdcQueryType.GetDefaultTimeZone, 
VdcQueryType.GetStoragePoolsByClusterService,
-                VdcQueryType.GetAAAProfileList, 
VdcQueryType.GetConfigurationValue,
-                VdcQueryType.GetVdsGroupsByStoragePoolId, 
VdcQueryType.GetVmTemplatesByStoragePoolId,
-                VdcQueryType.GetVmTemplatesDisks, 
VdcQueryType.GetStorageDomainsByVmTemplateId,
-                VdcQueryType.GetStorageDomainById, 
VdcQueryType.GetDataCentersWithPermittedActionOnClusters,
-                VdcQueryType.GetClustersWithPermittedAction, 
VdcQueryType.GetVmTemplatesWithPermittedAction,
-                VdcQueryType.GetVdsGroupById, VdcQueryType.GetStoragePoolById, 
VdcQueryType.GetAllDisksByVmId,
-                VdcQueryType.GetVmTemplate, 
VdcQueryType.GetVmConfigurationBySnapshot, VdcQueryType.GetAllVdsGroups,
-                VdcQueryType.GetPermittedStorageDomainsByStoragePoolId, 
VdcQueryType.GetHostsByClusterId,
-                VdcQueryType.OsRepository,
-                VdcQueryType.Search,
-                VdcQueryType.GetSupportedCpuList});
-
         this.behavior = behavior;
         this.behavior.setModel(this);
 
@@ -1680,8 +1647,6 @@
     {
         super.initialize();
 
-        setHash(getHashName() + new Date());
-
         getMemSize().setEntity(256);
         getMinAllocatedMemory().setEntity(256);
         getIsStateless().setEntity(false);
@@ -1716,17 +1681,7 @@
     {
         super.eventRaised(ev, sender, args);
 
-        if 
(ev.matchesDefinition(Frontend.getInstance().getQueryStartedEventDefinition())
-                && 
ObjectUtils.objectsEqual(Frontend.getInstance().getCurrentContext(), getHash()))
-        {
-            frontend_QueryStarted();
-        }
-        else if 
(ev.matchesDefinition(Frontend.getInstance().getQueryCompleteEventDefinition())
-                && 
ObjectUtils.objectsEqual(Frontend.getInstance().getCurrentContext(), getHash()))
-        {
-            frontend_QueryComplete();
-        }
-        else if 
(ev.matchesDefinition(ListModel.selectedItemChangedEventDefinition))
+        if (ev.matchesDefinition(ListModel.selectedItemChangedEventDefinition))
         {
             if (sender == getVmType()) {
                 vmTypeChanged();
@@ -1883,26 +1838,6 @@
         }
     }
 
-    private int queryCounter;
-
-    private void frontend_QueryStarted()
-    {
-        queryCounter++;
-        if (getProgress() == null)
-        {
-            startProgress(null);
-        }
-    }
-
-    private void frontend_QueryComplete()
-    {
-        queryCounter--;
-        if (queryCounter == 0)
-        {
-            stopProgress();
-        }
-    }
-
     protected void initNumOfMonitors()
     {
         AsyncDataProvider.getInstance().getNumOfMonitorList(new 
AsyncQuery(this,
@@ -1922,8 +1857,7 @@
                                                                                
    }
 
                                                                                
}
-                                                                           }, 
getHash()
-        ));
+                                                                           }));
 
     }
 
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UserPortalExistingVmModelBehavior.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UserPortalExistingVmModelBehavior.java
index 9e01b9c..6df2aac 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UserPortalExistingVmModelBehavior.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UserPortalExistingVmModelBehavior.java
@@ -1,6 +1,5 @@
 package org.ovirt.engine.ui.uicommonweb.models.vms;
 
-import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
@@ -39,14 +38,13 @@
     protected void initClusters(final List<StoragePool> dataCenters) {
         // Get clusters with permitted edit action
         ActionGroup actionGroup = getModel().isCreateInstanceOnly() ? 
ActionGroup.CREATE_INSTANCE : ActionGroup.CREATE_VM;
-        AsyncDataProvider.getInstance().getClustersWithPermittedAction(new 
AsyncQuery(new Object[]{this, getModel()},
+        AsyncDataProvider.getInstance().getClustersWithPermittedAction(new 
AsyncQuery(getModel(),
                 new INewAsyncCallback() {
                     @Override
                     public void onSuccess(Object target, Object returnValue) {
 
-                        Object[] array = (Object[]) target;
-                        ExistingVmModelBehavior behavior = 
(ExistingVmModelBehavior) array[0];
-                        UnitVmModel model = (UnitVmModel) array[1];
+                        ExistingVmModelBehavior behavior = 
UserPortalExistingVmModelBehavior.this;
+                        UnitVmModel model = (UnitVmModel) target;
                         List<VDSGroup> clusters = (List<VDSGroup>) returnValue;
 
                         // filter clusters by architecture
@@ -64,7 +62,7 @@
                         behavior.initCdImage();
 
                     }
-                }, getModel().getHash()), actionGroup, true, false);
+                }), actionGroup, true, false);
 
     }
 
@@ -89,23 +87,21 @@
 
     private void addVmCluster(final List<StoragePool> dataCenters, final 
List<VDSGroup> clusters)
     {
-        AsyncDataProvider.getInstance().getClusterById(new AsyncQuery(new 
Object[] { getModel(), clusters },
+        AsyncDataProvider.getInstance().getClusterById(new 
AsyncQuery(getModel(),
                 new INewAsyncCallback() {
                     @Override
                     public void onSuccess(Object target, Object returnValue) {
 
-                        Object[] array = (Object[]) target;
-                        UnitVmModel model = (UnitVmModel) array[0];
-                        ArrayList<VDSGroup> clusterList = 
(ArrayList<VDSGroup>) array[1];
+                        UnitVmModel model = (UnitVmModel) target;
                         VDSGroup cluster = (VDSGroup) returnValue;
                         if (cluster != null)
                         {
-                            clusterList.add(cluster);
+                            clusters.add(cluster);
                         }
-                        Collections.sort(clusterList, new 
NameableComparator());
+                        Collections.sort(clusters, new NameableComparator());
                         model.setDataCentersAndClusters(model, dataCenters, 
clusters, vm.getVdsGroupId());
                     }
-                }, getModel().getHash()), vm.getVdsGroupId());
+                }), vm.getVdsGroupId());
     }
 
     /**
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UserPortalNewTemplateVmModelBehavior.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UserPortalNewTemplateVmModelBehavior.java
index d88d8b0..7272b9c 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UserPortalNewTemplateVmModelBehavior.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UserPortalNewTemplateVmModelBehavior.java
@@ -43,7 +43,7 @@
                 new ArrayList<VdcQueryParametersBase>(Arrays.asList(new 
VdcQueryParametersBase[] {
                         getEntitiesWithPermittedActionParameters }));
 
-        Frontend.getInstance().runMultipleQueries(queryTypeList, 
parametersList, this, getModel().getHash());
+        Frontend.getInstance().runMultipleQueries(queryTypeList, 
parametersList, this, getModel());
     }
 
     @Override
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UserPortalNewVmModelBehavior.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UserPortalNewVmModelBehavior.java
index 6e9eff6..4638c2d 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UserPortalNewVmModelBehavior.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/UserPortalNewVmModelBehavior.java
@@ -78,13 +78,13 @@
                                                     dataCenters,
                                                     clusters, null);
                                         }
-                                    }, getModel().getHash()),
+                                    }),
                                     actionGroup, true, false);
                         } else {
                             
getModel().disableEditing(ConstantsManager.getInstance().getConstants().notAvailableWithNoUpDC());
                         }
                     }
-                }, getModel().getHash()), actionGroup, true, false);
+                }), actionGroup, true, false);
 
         instanceTypeManager = new NewVmInstanceTypeManager(getModel());
     }
@@ -106,7 +106,7 @@
                         getEntitiesWithPermittedActionParameters }));
 
         // Get clusters and templates
-        Frontend.getInstance().runMultipleQueries(queryTypeList, 
parametersList, this, getModel().getHash());
+        Frontend.getInstance().runMultipleQueries(queryTypeList, 
parametersList, this, getModel());
 
     }
 
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmDiskListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmDiskListModel.java
index 81700c5..cfbda93 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmDiskListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmDiskListModel.java
@@ -45,7 +45,6 @@
 import org.ovirt.engine.ui.uicompat.IFrontendMultipleActionAsyncCallback;
 import org.ovirt.engine.ui.uicompat.PropertyChangedEventArgs;
 
-@SuppressWarnings("unused")
 public class VmDiskListModel extends VmDiskListModelBase
 {
 
@@ -403,7 +402,6 @@
             return;
         }
 
-        boolean hasSystemDiskWarning = false;
         RemoveDiskModel model = new RemoveDiskModel();
         setWindow(model);
         
model.setTitle(ConstantsManager.getInstance().getConstants().removeDisksTitle());
@@ -586,7 +584,6 @@
     private void cancel()
     {
         setWindow(null);
-        Frontend.getInstance().unsubscribe();
     }
 
     @Override
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmGuideModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmGuideModel.java
index 681545a..48f8c8d 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmGuideModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmGuideModel.java
@@ -5,7 +5,6 @@
 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.UICommand;
 import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider;
@@ -102,7 +101,6 @@
     public void cancel()
     {
         setWindow(null);
-        Frontend.getInstance().unsubscribe();
     }
 
     @Override
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java
index 15fc3e7..02072fc 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java
@@ -2244,8 +2244,6 @@
 
     public void cancel()
     {
-        Frontend.getInstance().unsubscribe();
-
         cancelConfirmation();
 
         setGuideContext(null);
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmModelBehaviorBase.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmModelBehaviorBase.java
index daf5838..fe84e5c 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmModelBehaviorBase.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmModelBehaviorBase.java
@@ -326,7 +326,7 @@
                         setImagesToModel(model, images);
 
                     }
-                }, getModel().getHash()),
+                }),
                 dataCenter.getId(),
                 forceRefresh);
 
@@ -449,8 +449,7 @@
                         changeDefualtHost();
 
                     }
-                },
-                getModel().getHash());
+                });
 
         getHostListByCluster(cluster, query);
     }
@@ -496,32 +495,31 @@
     public void updateMaxNumOfVmCpus() {
         String version = getClusterCompatibilityVersion().toString();
 
-        AsyncDataProvider.getInstance().getMaxNumOfVmCpus(new AsyncQuery(this,
+        AsyncDataProvider.getInstance().getMaxNumOfVmCpus(new 
AsyncQuery(getModel(),
                 new INewAsyncCallback() {
                     @Override
                     public void onSuccess(Object target, Object returnValue) {
 
-                        VmModelBehaviorBase behavior = (VmModelBehaviorBase) 
target;
+                        VmModelBehaviorBase behavior = 
VmModelBehaviorBase.this;
                         behavior.maxCpus = (Integer) returnValue;
                         behavior.postUpdateNumOfSockets2();
                     }
-                }, getModel().getHash()
-        ), version);
+                }), version);
     }
 
     public void postUpdateNumOfSockets2() {
         String version = getClusterCompatibilityVersion().toString();
 
-        AsyncDataProvider.getInstance().getMaxNumOfCPUsPerSocket(new 
AsyncQuery(this,
+        AsyncDataProvider.getInstance().getMaxNumOfCPUsPerSocket(new 
AsyncQuery(getModel(),
                 new INewAsyncCallback() {
                     @Override
                     public void onSuccess(Object target, Object returnValue) {
 
-                        VmModelBehaviorBase behavior = (VmModelBehaviorBase) 
target;
+                        VmModelBehaviorBase behavior = 
VmModelBehaviorBase.this;
                         behavior.maxCpusPerSocket = (Integer) returnValue;
                         behavior.totalCpuCoresChanged();
                     }
-                }, getModel().getHash()), version);
+                }), version);
     }
 
     public void initDisks()
@@ -564,8 +562,7 @@
                         updateIsDisksAvailable();
                         initStorageDomains();
                     }
-                },
-                getModel().getHash()),
+                }),
                 template.getId());
     }
 
@@ -600,10 +597,10 @@
 
         ActionGroup actionGroup = getModel().isCreateInstanceOnly() ? 
ActionGroup.CREATE_INSTANCE : ActionGroup.CREATE_VM;
         StoragePool dataCenter = getModel().getSelectedDataCenter();
-        
AsyncDataProvider.getInstance().getPermittedStorageDomainsByStoragePoolId(new 
AsyncQuery(this, new INewAsyncCallback() {
+        
AsyncDataProvider.getInstance().getPermittedStorageDomainsByStoragePoolId(new 
AsyncQuery(getModel(), new INewAsyncCallback() {
             @Override
             public void onSuccess(Object target, Object returnValue) {
-                VmModelBehaviorBase behavior = (VmModelBehaviorBase) target;
+                VmModelBehaviorBase behavior = VmModelBehaviorBase.this;
                 ArrayList<StorageDomain> storageDomains = 
(ArrayList<StorageDomain>) returnValue;
                 ArrayList<StorageDomain> activeStorageDomains = 
filterStorageDomains(storageDomains);
 
@@ -630,7 +627,7 @@
                     
diskModel.getStorageDomain().setIsChangable(!availableDiskStorageDomains.isEmpty());
                 }
             }
-        }, getModel().getHash()), dataCenter.getId(), actionGroup);
+        }), dataCenter.getId(), actionGroup);
     }
 
     public ArrayList<StorageDomain> 
filterStorageDomains(ArrayList<StorageDomain> storageDomains)
@@ -760,9 +757,7 @@
                                 model.getTemplate().setSelectedItem(template);
                                 model.getTemplate().setIsChangable(false);
                             }
-                        },
-                        getModel().getHash()
-                ),
+                        }),
                 templateId
         );
     }
@@ -780,8 +775,7 @@
                         model.getBaseTemplate().setSelectedItem(template);
                         model.getBaseTemplate().setIsChangable(false);
                     }
-                },
-                getModel().getHash()),
+                }),
                 baseTemplateId);
     }
 
@@ -1012,18 +1006,16 @@
             return;
         }
 
-        AsyncDataProvider.getInstance().getMaxNumOfVmSockets(new 
AsyncQuery(new Object[]{this, getModel()},
+        AsyncDataProvider.getInstance().getMaxNumOfVmSockets(new 
AsyncQuery(getModel(),
                 new INewAsyncCallback() {
                     @Override
                     public void onSuccess(Object target, Object returnValue) {
 
-                        Object[] array = (Object[]) target;
-                        VmModelBehaviorBase behavior = (VmModelBehaviorBase) 
array[0];
+                        VmModelBehaviorBase behavior = 
VmModelBehaviorBase.this;
                         behavior.maxNumOfSockets = ((Integer) returnValue);
                         behavior.updataMaxVmsInPool();
                     }
-                }, getModel().getHash()
-        ), version.toString());
+                }), version.toString());
     }
 
     /**
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/test/java/org/ovirt/engine/ui/uicommonweb/junit/UiCommonSetup.java
 
b/frontend/webadmin/modules/uicommonweb/src/test/java/org/ovirt/engine/ui/uicommonweb/junit/UiCommonSetup.java
index 4fb5a54..9275244 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/test/java/org/ovirt/engine/ui/uicommonweb/junit/UiCommonSetup.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/test/java/org/ovirt/engine/ui/uicommonweb/junit/UiCommonSetup.java
@@ -9,11 +9,10 @@
 import org.junit.runners.model.Statement;
 import org.ovirt.engine.ui.frontend.Frontend;
 import org.ovirt.engine.ui.uicommonweb.TypeResolver;
-import org.ovirt.engine.ui.uicommonweb.junit.UiCommonSetup.Mocks;
 import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider;
+import org.ovirt.engine.ui.uicommonweb.junit.UiCommonSetup.Mocks;
 import org.ovirt.engine.ui.uicompat.ConstantsManager;
 import org.ovirt.engine.ui.uicompat.Enums;
-import org.ovirt.engine.ui.uicompat.Event;
 import org.ovirt.engine.ui.uicompat.UIConstants;
 import org.ovirt.engine.ui.uicompat.UIMessages;
 
@@ -151,9 +150,6 @@
         when(constantsManager.getConstants()).thenReturn(uiConstants);
         when(constantsManager.getMessages()).thenReturn(uiMessages);
         when(constantsManager.getEnums()).thenReturn(enums);
-
-        // Convenience mocks that can be replaced if needed
-        when(frontend.getQueryCompleteEvent()).thenReturn(mock(Event.class));
     }
 
     void update(boolean init) {


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

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

Reply via email to