Bug 504183 - Log streaming through loggregator does not work with Pivotal Web Services
Summary: Log streaming through loggregator does not work with Pivotal Web Services
Status: NEW
Alias: None
Product: CFT
Classification: ECD
Component: General (show other bugs)
Version: unspecified   Edit
Hardware: PC Mac OS X
: P3 normal
Target Milestone: Future   Edit
Assignee: Project Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-10-05 14:13 EDT by Nieraj Singh CLA
Modified: 2016-12-21 13:29 EST (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Nieraj Singh CLA 2016-10-05 14:13:45 EDT
It appears that log streaming is no longer functional with the latest Cloud Foundry update to Pivotal Web Services (PWS). 

It seems that it is up to CF clients, so in this case the v1 CF Java client used by CFT, to use a new endpoint to obtain log streaming.

When testing on a JEE Neon.1, and deploying Dynamic Web project to PWS, the following error is encountered with CFT 1.0.1 release, and no log streaming occurs:


org.eclipse.core.runtime.CoreException: Error performing operation: javax.websocket.DeploymentException: The HTTP response from the server [404] did not permit the HTTP upgrade to WebSocket
	at org.eclipse.cft.server.core.internal.CloudErrorUtil.toCoreException(CloudErrorUtil.java:320)
	at org.eclipse.cft.server.core.internal.client.BaseClientRequest.getErrorOnLastFailedAttempt(BaseClientRequest.java:176)
	at org.eclipse.cft.server.core.internal.client.BaseClientRequest.runAndWait(BaseClientRequest.java:168)
	at org.eclipse.cft.server.core.internal.client.ClientRequest.runAndWait(ClientRequest.java:71)
	at org.eclipse.cft.server.core.internal.client.LocalServerRequest.runAndWait(LocalServerRequest.java:105)
	at org.eclipse.cft.server.core.internal.client.BaseClientRequest.run(BaseClientRequest.java:83)
	at org.eclipse.cft.server.core.internal.client.CloudFoundryServerBehaviour.addApplicationLogListener(CloudFoundryServerBehaviour.java:845)
	at org.eclipse.cft.server.ui.internal.console.ApplicationLogConsoleStream.initialiseStream(ApplicationLogConsoleStream.java:106)
	at org.eclipse.cft.server.ui.internal.console.CloudFoundryConsole.getStream(CloudFoundryConsole.java:107)
	at org.eclipse.cft.server.ui.internal.console.CloudFoundryConsole.startTailing(CloudFoundryConsole.java:76)
	at org.eclipse.cft.server.ui.internal.console.ApplicationLogConsoleManager.doStartConsole(ApplicationLogConsoleManager.java:125)
	at org.eclipse.cft.server.ui.internal.console.ApplicationLogConsoleManager.startConsole(ApplicationLogConsoleManager.java:91)
	at org.eclipse.cft.server.ui.internal.CloudFoundryUiCallback.startApplicationConsole(CloudFoundryUiCallback.java:91)
	at org.eclipse.cft.server.core.internal.client.RestartOperation.startAndTrackApplication(RestartOperation.java:104)
	at org.eclipse.cft.server.core.internal.client.RestartOperation.performDeployment(RestartOperation.java:85)
	at org.eclipse.cft.server.core.internal.client.StartOperation.performDeployment(StartOperation.java:211)
	at org.eclipse.cft.server.core.internal.client.PushApplicationOperation.performDeployment(PushApplicationOperation.java:241)
	at org.eclipse.cft.server.core.internal.client.ApplicationOperation.doApplicationOperation(ApplicationOperation.java:125)
	at org.eclipse.cft.server.core.internal.client.AbstractPublishApplicationOperation.run(AbstractPublishApplicationOperation.java:90)
	at org.eclipse.cft.server.core.internal.client.CloudFoundryServerBehaviour.publishModule(CloudFoundryServerBehaviour.java:1390)
	at org.eclipse.wst.server.core.model.ServerBehaviourDelegate.publishModule(ServerBehaviourDelegate.java:1091)
	at org.eclipse.wst.server.core.model.ServerBehaviourDelegate.publishModules(ServerBehaviourDelegate.java:1183)
	at org.eclipse.cft.server.core.internal.client.CloudFoundryServerBehaviour.publishModules(CloudFoundryServerBehaviour.java:1329)
	at org.eclipse.wst.server.core.model.ServerBehaviourDelegate.publish(ServerBehaviourDelegate.java:987)
	at org.eclipse.wst.server.core.model.ServerBehaviourDelegate.publish(ServerBehaviourDelegate.java:774)
	at org.eclipse.wst.server.core.internal.Server.publishImpl(Server.java:3172)
	at org.eclipse.wst.server.core.internal.Server$PublishJob.run(Server.java:345)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Caused by: org.cloudfoundry.client.lib.CloudOperationException: javax.websocket.DeploymentException: The HTTP response from the server [404] did not permit the HTTP upgrade to WebSocket
	at org.cloudfoundry.client.lib.rest.LoggregatorClient.connectToLoggregator(LoggregatorClient.java:67)
	at org.cloudfoundry.client.lib.rest.CloudControllerClientImpl.streamLoggregatorLogs(CloudControllerClientImpl.java:2252)
	at org.cloudfoundry.client.lib.rest.CloudControllerClientImpl.streamLogs(CloudControllerClientImpl.java:254)
	at org.cloudfoundry.client.lib.CloudFoundryClient.streamLogs(CloudFoundryClient.java:376)
	at org.eclipse.cft.server.core.internal.client.CloudFoundryServerBehaviour$3.doRun(CloudFoundryServerBehaviour.java:842)
	at org.eclipse.cft.server.core.internal.client.CloudFoundryServerBehaviour$3.doRun(CloudFoundryServerBehaviour.java:1)
	at org.eclipse.cft.server.core.internal.client.BaseClientRequest.runAndWait(BaseClientRequest.java:140)
	... 25 more
Caused by: javax.websocket.DeploymentException: The HTTP response from the server [404] did not permit the HTTP upgrade to WebSocket
	at org.apache.tomcat.websocket.WsWebSocketContainer.connectToServer(WsWebSocketContainer.java:374)
	at org.cloudfoundry.client.lib.rest.LoggregatorClient.connectToLoggregator(LoggregatorClient.java:64)
	... 31 more
Comment 1 Nieraj Singh CLA 2016-10-05 14:32:11 EDT
It seems the breaking changes occur in CC API version 2.62.0, but it could have been present in earlier versions as well.
Comment 2 Eclipse Genie CLA 2016-10-31 04:52:56 EDT
GitHub Pull Request 44 created by [nierajsingh]
https://github.com/eclipse/cft/pull/44