Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 1406572

Summary: Uncaught exception is received when trying to create a vm from User portal without power user role assigned
Product: Red Hat Enterprise Virtualization Manager Reporter: Koutuk Shukla <kshukla>
Component: ovirt-engineAssignee: jniederm
Status: CLOSED ERRATA QA Contact: Pavel Stehlik <pstehlik>
Severity: medium Docs Contact:
Priority: medium    
Version: 4.0.5CC: eedri, kshukla, lleistne, lsurette, mavital, mgoldboi, mkalinin, rbalakri, Rhev-m-bugs, srevivo, tjelinek, ykaul
Target Milestone: ovirt-4.1.1   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: ovirt-engine-4.1.1 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-04-25 00:55:29 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: Virt RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Screen print of error on User portal after trying to create the vm
none
print screen none

Description Koutuk Shukla 2016-12-21 00:07:38 UTC
Created attachment 1234145 [details]
Screen print of error on User portal after trying to create the vm

Description of problem:

Uncaught exception is received when trying to create a vm from User portal

Version-Release number of selected component (if applicable):
rhevm-4.0.5

How reproducible:
100%

Steps to Reproduce:

1. Login to user portal --> Extended --> New VM --> Ok 


Actual results:

Receive an error message as " Uncaught exception occurred. Please try reloading the page. Details: (TypeError) __gwt$exception: <skipped>: Cannot read property 'f' of undefined"

Expected results:

User should be able to create the vm without any errors

Additional info:

- This issue is not faced when trying to create the vm with admin portal.

- Below is the /var/log/ovirt-engine/ui.log output for the recent attempt when the error was received while trying to create a vm with user portal

=====================
2016-12-20 10:20:01,200 ERROR [org.ovirt.engine.ui.frontend.server.gwt.OvirtRemoteLoggingService] (default task-63) [] Permutation name: 587E534EAE351BE2F229E0B865EFB2D3
2016-12-20 10:20:01,201 ERROR [org.ovirt.engine.ui.frontend.server.gwt.OvirtRemoteLoggingService] (default task-63) [] Uncaught exception: com.google.gwt.core.client.JavaScriptException: (TypeError)
 __gwt$exception: <skipped>: Cannot read property 'f' of undefined
        at org.ovirt.engine.ui.uicommonweb.models.storage.DisksAllocationModel.$updateImageToDestinationDomainMap(DisksAllocationModel.java:307)
        at org.ovirt.engine.ui.uicommonweb.models.storage.DisksAllocationModel.$getImageToDestinationDomainMap(DisksAllocationModel.java:133)
        at org.ovirt.engine.ui.uicommonweb.models.userportal.UserPortalListModel.$postVmNameUniqueCheck(UserPortalListModel.java:975)
        at org.ovirt.engine.ui.uicommonweb.models.userportal.UserPortalListModel$10.onSuccess(UserPortalListModel.java:921)
        at org.ovirt.engine.ui.frontend.Frontend$2.$onSuccess(Frontend.java:238) [frontend.jar:]
        at org.ovirt.engine.ui.frontend.Frontend$2.onSuccess(Frontend.java:238) [frontend.jar:]
        at org.ovirt.engine.ui.frontend.communication.OperationProcessor$2.$onSuccess(OperationProcessor.java:139) [frontend.jar:]
        at org.ovirt.engine.ui.frontend.communication.OperationProcessor$2.onSuccess(OperationProcessor.java:139) [frontend.jar:]
        at org.ovirt.engine.ui.frontend.communication.GWTRPCCommunicationProvider$3$1.$onSuccess(GWTRPCCommunicationProvider.java:160) [frontend.jar:]
        at org.ovirt.engine.ui.frontend.communication.GWTRPCCommunicationProvider$3$1.onSuccess(GWTRPCCommunicationProvider.java:160) [frontend.jar:]
        at com.google.gwt.rpc.client.impl.RpcCallbackAdapter.onResponseReceived(RpcCallbackAdapter.java:72) [gwt-servlet.jar:]
        at com.google.gwt.http.client.Request.$fireOnResponseReceived(Request.java:237) [gwt-servlet.jar:]
        at com.google.gwt.http.client.RequestBuilder$1.onReadyStateChange(RequestBuilder.java:409) [gwt-servlet.jar:]
        at Unknown.eval(userportal-0.js@65)
        at com.google.gwt.core.client.impl.Impl.apply(Impl.java:296) [gwt-servlet.jar:]
        at com.google.gwt.core.client.impl.Impl.entry0(Impl.java:335) [gwt-servlet.jar:]
        at Unknown.eval(userportal-0.js@54)

=====================

Comment 1 Tomas Jelinek 2016-12-21 08:03:38 UTC
I have a suspicion that the user logged into user portal which has this error does not have permissions on the storage domain on which the template from which the VM is being created from has the disks. Could you please set the user permissions properly and check again?

Comment 6 Tomas Jelinek 2017-01-04 09:11:40 UTC
(In reply to Koutuk Shukla from comment #5)
> (In reply to Yaniv Kaul from comment #4)
> > Severity is missing. 
> > Also, asking questions without setting needinfo is not very helpful. 
> > Lastly, it'll probably wait until after the shutdown.
> 
> Hello Yaniv,
> 
> -- Customer wants to know if there is any other role which can be set for
> User instead of PowerUserRole to avoid hitting this issue.

- this was the case also on 3.6 (considering the thread you are referring to is about 3.6.5.3).

- it should be enough to assign "vm creator" to the datacenter.

> 
> -- Also is there a possibility of having a Error message as "Insufficient
> Permission" pop up instead of a Uncaught exception message when this issue
> is faced ?

yes, this should be fixed, but will not fit into 4.1

Comment 8 Tomas Jelinek 2017-01-05 15:39:49 UTC
I was trying to simulate this situation and I can not get to a state where it actually fails on NPE. It either shows:

"There is no Cluster on which you can create a VM. Please check Data Center status and Cluster permissions."

or it lets me to submit the dialog and results in "you dont have enough permissions to perform this action".

Could you please provide the exact configuration of permissions which caused this to happen?

Thank you

Comment 14 Tomas Jelinek 2017-01-18 09:02:53 UTC
ok, finally succeeded to simulate. This is what is needed:
- have 2 data storage domains, A and B
- give the following permissions to the user: disk creator on domain A, the UsertemplatebasedVM on Cluster and VnicProfileUser on Networks
- create a template with disk on storage B (e.g. the one where the user has no permissions on)
- from user portal try to create a VM based on this template
- observe the exception

Comment 20 Shira Maximov 2017-02-28 16:56:13 UTC
Created attachment 1258437 [details]
print screen

verified on : 
Red Hat Virtualization Manager Version: 4.1.1.2-0.1.el7

verification steps: 
- have 2 data storage domains, A and B
- give the following permissions to the user: disk creator on domain A, the UsertemplatebasedVM on Cluster and VnicProfileUser on Networks
- create a template with disk on storage B (e.g. the one where the user has no permissions on)
- from user portal try to create a VM based on this template
- observe the exception

result : 
attached

Comment 28 jniederm 2017-08-31 13:56:56 UTC
*** Bug 1418660 has been marked as a duplicate of this bug. ***