Hello Daniel Erez,
I'd like you to do a code review. Please visit
http://gerrit.ovirt.org/8132
to review the following change.
Change subject: userportal: SearchResultsLimit race condition (#853904)
......................................................................
userportal: SearchResultsLimit race condition (#853904)
https://bugzilla.redhat.com/853904
SearchableListModel - a race condition in SearchResultsLimit
configuration value fetching prevented auto-refresh mechanism.
* SearchableListModel -> Search()
If 'SearchResultsLimit' isn't fetched yet,
'searchRequested' flag is marked on RequestSearch().
* RequestSearch()
Clear model's items and raise changed events
(affects only for first search).
* 'GetSearchResultsLimit' -> OnSuccess()
Search command should be invoked iff 'searchRequested' and
model's timer isn't running (since Search starts the timer).
Checking 'getIsTimerDisabled' is not sufficient since the timer
is being started only *after* SearchResultsLimit value is fetched.
* MainTabBasicDetailsView
Add clear() method for cleaning details pane.
Change-Id: I6dfe218a57694f61fcd3445894c06f8918fe3739
Signed-off-by: Daniel Erez <[email protected]>
---
M
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/SearchableListModel.java
M
frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/presenter/tab/basic/MainTabBasicDetailsPresenterWidget.java
M
frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/view/tab/basic/MainTabBasicDetailsView.java
3 files changed, 37 insertions(+), 4 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/32/8132/1
diff --git
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/SearchableListModel.java
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/SearchableListModel.java
index 13a4f5e..2145580 100644
---
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/SearchableListModel.java
+++
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/SearchableListModel.java
@@ -876,6 +876,9 @@
public void RequestSearch()
{
searchRequested = true;
+ model.setItems(new ArrayList());
+ model.getSelectedItemChangedEvent().raise(this, new EventArgs());
+ model.getSelectedItemsChangedEvent().raise(this, new EventArgs());
}
private void ApplySearchPageSize(int value)
@@ -883,7 +886,7 @@
model.setSearchPageSize(value);
// If there search was requested before max result limit was
retrieved, do it now.
- if (searchRequested && model.getIsTimerDisabled())
+ if (searchRequested && !model.getTimer().isActive())
{
model.getSearchCommand().Execute();
}
diff --git
a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/presenter/tab/basic/MainTabBasicDetailsPresenterWidget.java
b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/presenter/tab/basic/MainTabBasicDetailsPresenterWidget.java
index 0a2ef57..0198a6c 100644
---
a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/presenter/tab/basic/MainTabBasicDetailsPresenterWidget.java
+++
b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/presenter/tab/basic/MainTabBasicDetailsPresenterWidget.java
@@ -37,6 +37,10 @@
void setEditConsoleEnabled(boolean enabled);
HasClickHandlers getEditButton();
+
+ void clear();
+
+ void displayVmOsImages(boolean dispaly);
}
private final ConsoleUtils consoleUtils;
@@ -91,9 +95,7 @@
if (modelProvider.getModel().getSelectedItem() == null) {
return;
}
- @SuppressWarnings("unchecked")
- Iterable<DiskImage> diskImages =
modelProvider.getModel().getvmBasicDiskListModel().getItems();
- getView().editDistItems(diskImages);
+ setupDisks(modelProvider);
}
});
}
@@ -104,9 +106,12 @@
@Override
public void eventRaised(Event ev, Object sender, EventArgs args) {
if (modelProvider.getModel().getSelectedItem() == null) {
+ getView().clear();
return;
}
getView().edit(modelProvider.getModel());
+ getView().displayVmOsImages(true);
+ setupDisks(modelProvider);
setupConsole(modelProvider);
}
@@ -126,6 +131,14 @@
}));
}
+ private void setupDisks(final UserPortalBasicListProvider modelProvider) {
+ @SuppressWarnings("unchecked")
+ Iterable<DiskImage> diskImages =
modelProvider.getModel().getvmBasicDiskListModel().getItems();
+ if (diskImages != null) {
+ getView().editDistItems(diskImages);
+ }
+ }
+
private void setupConsole(final UserPortalBasicListProvider modelProvider)
{
UserPortalItemModel item = modelProvider.getModel().getSelectedItem();
diff --git
a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/view/tab/basic/MainTabBasicDetailsView.java
b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/view/tab/basic/MainTabBasicDetailsView.java
index 5fb00bc..8a10723 100644
---
a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/view/tab/basic/MainTabBasicDetailsView.java
+++
b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/view/tab/basic/MainTabBasicDetailsView.java
@@ -152,8 +152,25 @@
}
@Override
+ public void displayVmOsImages(boolean dispaly) {
+ osImage.setVisible(dispaly);
+ vmImage.setVisible(dispaly);
+ }
+
+ @Override
public HasClickHandlers getEditButton() {
return editProtocolLink;
}
+ @Override
+ public void clear() {
+ vmName.setText(null);
+ vmDescription.setText(null);
+ protocolMessage.setText(null);
+ memory.setValue(null);
+ numberOfCores.setValue(null);
+ operatingSystem.getElement().setInnerHTML(""); //$NON-NLS-1$
+ disks.clear();
+ displayVmOsImages(false);
+ }
}
--
To view, visit http://gerrit.ovirt.org/8132
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I6dfe218a57694f61fcd3445894c06f8918fe3739
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Oved Ourfali <[email protected]>
Gerrit-Reviewer: Daniel Erez <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches