]
Andre Dietisheim commented on JBIDE-21731:
------------------------------------------
[~jcantrill] your ability to retrieve the image metadata in
, is that what we should
use instead of the current implementation via DeploymentResourceMapper? Are there
limitations?
[~scabanovich][~fbricon] I believe that your suggestions are good (if I understood
everything correctly). But I am wondering if we really should load everything upfront: it
takes up to 30 seconds and more to load larger/complex project strcutures (see
).
We could either not load the tags at all, simply offer a checkbox to let the adapter
derive the deployment forlder and a text-field to manually provide it. The text field
would be disabled if the user chooses to let the adapter automatically detect the
deployment folder.
{code}
[x] Detect deployment folder
Deployment folder: [ ]
{code}
Alternatively we could proceed as you suggested, trying to load the tags, but then load
them only when the user selects a service in the table. We would then have the progress
bar progressing and all the widgets disabled while we're loading from the server. When
loaded we could cache the value so that we would not annoy the user a 2nd time.
Thoughts?
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/imagestream...
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}