[jbosstools-issues] [JBoss JIRA] (JBIDE-21731) Server Adapter: Error shown when image is not created/pushed yet, sould be more user friendly

Andre Dietisheim (JIRA) issues at jboss.org
Thu Mar 3 07:39:00 EST 2016


    [ https://issues.jboss.org/browse/JBIDE-21731?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13171370#comment-13171370 ] 

Andre Dietisheim edited comment on JBIDE-21731 at 3/3/16 7:38 AM:
------------------------------------------------------------------

[~scabanovich] 
* Preloading services and projects (for the services tree) as we do now already takes quite some time. Loading the services can also easily be deferred but this would make the UI less handy, since the user would have to unfold the projects to discover the services. 
* Given the substantial amount of time required to load the projects/services (for the tree)  we should try to create ProjectImageStreamTags upfront but defer #createImageStreamMaps or just the deploymentMapper#refresh() (which do the actual laoding) to the time the user selects  in the UI. Loading upon selection changes will slow down things but if we do this with a progress (WizardUtils#runInWizard(job) which displays the progress bar and disables all the widgets) and only when selecting for the 1st time (caching for latter reuse), this might be acceptable? I would guess so, WDYT? Alternatively we could just disable the text field for the deployment path, launch the loading in the background without progress/disabling other widgets and enable it once the value was loaded.
* Checkbox: yes, I was referring to you suggestion (any to my earlier thoughts). But I am wondering if we should display the deployment path at all which would free us from loading.


was (Author: adietish):
[~scabanovich] I guess that preloading services and projects as we do now already takes quite some time. Given that we should try to create ProjectImageStreamTags upfront but defer #createImageStreamMaps or just the deploymentMapper#refresh() to the actual selecting in the UI. Loading the services can also easily be deferred but this would make the UI less handy, since the user would have to unfold the projects to discover the services.
Loading upon selection changes will slow down things but if we do this with a progress (WizardUtils#runInWizard(job) which displays the progress bar and disables all the widgets) and only when selecting for the 1st time (caching for latter reuse), this might be acceptable? I would guess so, WDYT?

> Server Adapter: Error shown when image is not created/pushed yet, sould be more user friendly
> ---------------------------------------------------------------------------------------------
>
>                 Key: JBIDE-21731
>                 URL: https://issues.jboss.org/browse/JBIDE-21731
>             Project: Tools (JBoss Tools)
>          Issue Type: Bug
>          Components: openshift
>    Affects Versions: 4.3.1.CR1
>            Reporter: Marián Labuda
>              Labels: openshift_v3, server_adapter
>             Fix For: 4.3.1.CR1
>
>         Attachments: cannot_get_image.png
>
>
> When I create a new OS3 application and then I want to create a new server adapter, an image for this application has to be built and pushed to OpenShift's local image registry. If build is still running, what is often happening on internal OSE instance (it takes minutes - pushing of images), then there is an error message that loading of image failed. User without solid overview of OS3 background would not be able to figure out why it is happening, because even Image stream is shown, but the image is not there yet.
> Full error log:
> {code}
> com.openshift.restclient.OpenShiftException: Could not get resource django-example:latest in namespace image: {
>   "kind": "Status",
>   "apiVersion": "v1",
>   "metadata": {},
>   "status": "Failure",
>   "message": "imageStreamTag \"django-example:latest\" not found",
>   "reason": "NotFound",
>   "details": {
>     "name": "django-example:latest",
>     "kind": "imageStreamTag"
>   },
>   "code": 404
> }
> 	at com.openshift.internal.restclient.DefaultClient.createOpenShiftException(DefaultClient.java:481)
> 	at com.openshift.internal.restclient.DefaultClient.get(DefaultClient.java:306)
> 	at org.jboss.tools.openshift.core.connection.Connection.getResource(Connection.java:378)
> 	at org.jboss.tools.openshift.internal.ui.models.DeploymentResourceMapper.lambda$5(DeploymentResourceMapper.java:106)
> 	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
> 	at java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1540)
> 	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
> 	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
> 	at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
> 	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
> 	at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
> 	at org.jboss.tools.openshift.internal.ui.models.DeploymentResourceMapper.getImageStreamTagsFor(DeploymentResourceMapper.java:107)
> 	at org.jboss.tools.openshift.internal.ui.models.DeploymentResourceMapper.lambda$2(DeploymentResourceMapper.java:87)
> 	at java.util.stream.Collectors.lambda$toMap$213(Collectors.java:1321)
> 	at java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
> 	at java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1540)
> 	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
> 	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
> 	at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
> 	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
> 	at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
> 	at org.jboss.tools.openshift.internal.ui.models.DeploymentResourceMapper.getAllImageStreamTags(DeploymentResourceMapper.java:85)
> 	at org.jboss.tools.openshift.internal.ui.server.ServerSettingsViewModel$ProjectImageStreamTags.createImageStreamsMap(ServerSettingsViewModel.java:334)
> 	at org.jboss.tools.openshift.internal.ui.server.ServerSettingsViewModel$ProjectImageStreamTags.<init>(ServerSettingsViewModel.java:327)
> 	at org.jboss.tools.openshift.internal.ui.server.ServerSettingsViewModel.lambda$1(ServerSettingsViewModel.java:279)
> 	at java.util.stream.Collectors.lambda$toMap$213(Collectors.java:1321)
> 	at java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169)
> 	at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374)
> 	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
> 	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
> 	at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
> 	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
> 	at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
> 	at org.jboss.tools.openshift.internal.ui.server.ServerSettingsViewModel.createImageStreamTagsMap(ServerSettingsViewModel.java:277)
> 	at org.jboss.tools.openshift.internal.ui.server.ServerSettingsViewModel.loadResources(ServerSettingsViewModel.java:261)
> 	at org.jboss.tools.openshift.internal.ui.server.ServerSettingsViewModel.loadResources(ServerSettingsViewModel.java:255)
> 	at org.jboss.tools.openshift.internal.ui.server.ServerSettingsWizardFragment$15.run(ServerSettingsWizardFragment.java:695)
> 	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
> Caused by: com.openshift.internal.restclient.http.NotFoundException: {
>   "kind": "Status",
>   "apiVersion": "v1",
>   "metadata": {},
>   "status": "Failure",
>   "message": "imageStreamTag \"django-example:latest\" not found",
>   "reason": "NotFound",
>   "details": {
>     "name": "django-example:latest",
>     "kind": "imageStreamTag"
>   },
>   "code": 404
> }
> 	at com.openshift.internal.restclient.http.UrlConnectionHttpClient.createException(UrlConnectionHttpClient.java:230)
> 	at com.openshift.internal.restclient.http.UrlConnectionHttpClient.request(UrlConnectionHttpClient.java:165)
> 	at com.openshift.internal.restclient.http.UrlConnectionHttpClient.request(UrlConnectionHttpClient.java:141)
> 	at com.openshift.internal.restclient.http.UrlConnectionHttpClient.get(UrlConnectionHttpClient.java:103)
> 	at com.openshift.internal.restclient.DefaultClient.get(DefaultClient.java:302)
> 	... 36 more
> Caused by: java.io.FileNotFoundException: https://console.engint.openshift.com/oapi/v1/namespaces/image/imagestreamtags/django-example:latest
> 	at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1836)
> 	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)
> 	at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)
> 	at com.openshift.internal.restclient.http.UrlConnectionHttpClient.request(UrlConnectionHttpClient.java:161)
> 	... 39 more
> {code}



--
This message was sent by Atlassian JIRA
(v6.4.11#64026)



More information about the jbosstools-issues mailing list