Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix Pool handling and refactor VM loading #1174

Merged
merged 3 commits into from Mar 30, 2020
Merged

Conversation

sjd78
Copy link
Member

@sjd78 sjd78 commented Mar 23, 2020

Fixes: #1128
Fixes: BZ1771793

A few related changes:

  • UPDATE_VMPOOLS_COUNT reducer fixed. If a pool VM is fetched and processed before the Pool, the reducer would break and cause UI errors trying to load a Pool that does not yet exist. Now a missing pool is skipped. The reducer will process properly once the Pool is loaded.

  • VM saga updates:

  • There is no visual change to the display of a Pool card. However, this change does leave a scenario where a VM could momentarily appear as a normal VM but the get tagged as a Pool VM once the Pool is actually fetched. To mitigate this confusion, all Pool VMs whose Pool is unknown (typically it hasn't been fetched yet) will not be displayed. The Pool and all of its VMs will be rendered together once they are all available.

  - Adopt front end calculation of permissions to permits and
    canUse* mapping for VMs (but only done with deep fetches)

  - Remove support for fetching VMs from ovirt-engine older than 4.2

  - Updated refreshData() logging to include page info
There are scenarios when a VM belongs to a Pool (i.e. it has
a pool id associated with it) but the Pool has not yet been
fetched.  The UPDATE_VMPOOLS_COUNT reducer has been updated to
account for this.  If a VM is tagged to a pool that doesn't exist,
the count operation for that pool is skipped.

This leaves a scenario where a VM may momentarily appear as a normal
VM but the get tagged as a Pool VM once the Pool is actually fetched.

The UI impact isn't desirable, but VM Portal will no longer break
when this scenario is encountered.
In the scenario where a Pool VM is fetched before its associated
Pool, we want to hide the VM from display.  Once the Pool is available
the Pool and all of its VMs will be displayed together.
@sjd78
Copy link
Member Author

sjd78 commented Mar 26, 2020

Example of the Pool loading progression. For this video, a 2 second delay was added in the code to force VMs to load before Pools.

ezgif com-video-to-gif

@sjd78 sjd78 requested a review from lwrigh March 26, 2020 23:38
@sjd78 sjd78 merged commit 68ba99c into oVirt:master Mar 30, 2020
@sjd78
Copy link
Member Author

sjd78 commented Mar 30, 2020

Now that this is merged, testing can be done from the master branch build artifacts CI: https://jenkins.ovirt.org/job/oVirt_ovirt-web-ui_standard-on-ghpush/lastSuccessfulBuild/artifact

@sjd78 sjd78 deleted the pool-load-break branch March 30, 2020 14:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Main page crash after taking pool VM
2 participants