oVirt / ovirt-web-ui

Modern lightweight UI for standard (non-admin) oVirt users
https://www.ovirt.org
Apache License 2.0
116 stars 72 forks source link

Feature request : display VM in list view #1368

Closed gbarazer closed 2 years ago

gbarazer commented 3 years ago

Feature enhancement request: When managing a large number of VMs it's increasingly difficult to use the "card view" for VM listing. The default card view uses a lot of screen space to just display a logo and is not very efficient nor functional. The list view which is used by almost all VM management portals UI everywhere uses a list view by default, which allow to have a global view of all the VM assets much more efficiently. It seems the list view has already been designed here : https://github.com/oVirt/ovirt-design/blob/master/user-portal/patternfly4/homepagepf4.md

Basic features for using this view mode would be to be have basic pagination, and ability to select how many VMs we want to display per page, and also selecting the list view mode by default (either globally or per-user we don't care much as we will use this view as the default for everyone). The filter should also be working with this view, possibly in real-time without click on any button to display the results.

An additional feature for this view mode would be to be able to arrange VM in folders or view/edit/add/search by tags.

This view is pretty much a blocker for our usage, which involves giving access to hundreds (~500) of VMs to customers. Is there any ongoing development regarding this list view that we could test ?

We are available to test & QA any ongoing development.

Thanks!

sgratch commented 3 years ago

@gbarazer Sorry for the late reply. We did planned and designed the VM's list view but after digging into it more with all relevant design consequences that a list view requires, we decided to avoid implementing it. mostly due to a lack of capacity and other more urgent features to implement.

Please note that the VM portal should be used by non admin users which usually have permissions to access much less than 500 VMs at once. The VM portal dashboard design is based on accessing ~20 VMs and not much more than that. So the problem of accessing hundreds of VMs is much more of an Admin portal issue. Why do you need to access so many VMs via the VM portal?

Anyway, you are most welcomed to contribute to the web-ui project and implement the VMs list view feature if it's really needed for you. It will be great and we can help you if needed. Thanks.

gbarazer commented 3 years ago

Hi,

Our use case is that we want to manage a single ovirt engine instance with several ovirt datacenters/clusters/hosts as admin with a full view, but we want to give access to a restricted view to customers, with only their own objects with the ability to manage their VMs. We tried to give access to the admin portal but it requires admin privileges and there is no way to offer a filtered view to only the customers own VMs.

The VM portal seemed to be the logical next step to offer the customer ability to create and manage VMs, but it is indeed very limited in features, and the card view for VMs is not going to be usable with hundreds of VMs. We already had to explain to the customer how to use the API to create templates, and every features that we could need is already available using the API, it's really the UI which seems lagging behind the API in terms of implementation.

If the web UI is not going to be further developed or even dropped, we could use the admin portal to give access to the customer, but it's really necessary to be able to display only the objects the user has access to, whereas today the whole list of objects is shown, but the user can only act on his own objects.

Do you have more details on the "design consequences" that a list view requires ?

sgratch commented 3 years ago

Hi @gbarazer

Our use case is that we want to manage a single ovirt engine instance with several ovirt datacenters/clusters/hosts as admin with a full view, but we want to give access to a restricted view to customers, with only their own objects with the ability to manage their VMs. We tried to give access to the admin portal but it requires admin privileges and there is no way to offer a filtered view to only the customers own VMs.

The VM portal seemed to be the logical next step to offer the customer ability to create and manage VMs, but it is indeed very limited in features, and the card view for VMs is not going to be usable with hundreds of VMs. We already had to explain to the customer how to use the API to create templates, and every features that we could need is already available using the API, it's really the UI which seems lagging behind the API in terms of implementation.

I will divide my answer into 2 : the entities managed by web-ui and the dashboard cards issue.

The entities management coverage: The issues mentioned here are part of the design. The VM portal is designed as a tool for non admin users that want to manage their VMs only (and entities attached to those VMs like disks, nics, snapshots, change the cluster they belongs to etc). Check https://www.ovirt.org/documentation/introduction_to_the_vm_portal/#What_is_the_VM_Portal. There is no planning to add management of other entities (e.g. Hosts, Templates, Clusters, Data centers etc) as part of the VM portal since by a design those entities require an admin privileges and shouldn't be managed by the non admins. So all the problems that you mentioned are intentionally designed like that. And the same goes for webadmin which is not designed to be used by non admins as well and that's why a non admin user can't login and there is no way to filter out by permissions. That's why our permissions are divided into User and Administrator Roles only.

The REST API is a service dedicated for both admin and non-admin users and therefore it supplies APIs for managing most of oVirt activities (the specific user permissions are verified pereach API request of course). So based on the design, there is a different in coverage between the API and the VM portal.

Regarding the web-ui dashboard view and cards issue: As mentioned on previous comments, the web-ui is not planned to manage hundreds of VMs since for most users it's not relevant. We can always think of reducing the area size of each VM card, but it will still be less user friendly when a lot of VMs are displayed.

Please note that you can filter those VMs by name, OS and status and also sort them by those parameters as well. Is there any other filter that can help managing those VMs for you?

If the web UI is not going to be further developed or even dropped, we could use the admin portal to give access to the customer, but it's really necessary to be able to display only the objects the user has access to, whereas today the whole list of objects is shown, but the user can only act on his own objects.

The web ui is planned to be further developed as part of oVirt development plan and it's not going to be dropped. it is just that your requirements are totally different than the whole purpose of this UI tool.

Do you have more details on the "design consequences" that a list view requires ?

Implementing the VMs in list view requires mostly a UX effort for handling pagination and dynamic loading, vms filtering, refreshing, lines and columns sorting logic, VM action dynamic menu pr VM etc. This is feasible but will require a lot of work whic currenlty is not part of owr top pripritoes

sgratch commented 2 years ago

Closing this issue since we are not going to implement that due to a lack of capacity. As mentioned above, you are most welcomed to contribute to the web-ui project and implement the VMs list view feature by yourself with our help. Please re-open if needed in that case.

rszwajko commented 2 years ago

@gbarazer Take a look at how the tile view looks after migration to PatternFly 4 - https://github.com/oVirt/ovirt-web-ui/pull/1543 Screen in standard resolution 1920x1080 will display 14 tiles instead of 8.

rszwajko commented 2 years ago

@gbarazer We manage to implement basic table view in PR https://github.com/oVirt/ovirt-web-ui/pull/1600