SeaCloudsEU / SeaCloudsPlatform

Seamless adaptive multi-cloud management of service-based applications
http://www.seaclouds-project.eu/
Apache License 2.0
18 stars 20 forks source link

Dashboard hides deployment errors #283

Open rosogon opened 8 years ago

rosogon commented 8 years ago

https://github.com/SeaCloudsEU/SeaCloudsPlatform/blob/master/dashboard/src/main/java/eu/seaclouds/platform/dashboard/rest/DeployerResource.java#L79 should also log the exception.

The entity of the response could include the exception.

rosogon commented 8 years ago

A bad formed DAM raises this error from brooklyn

{
  "message": "Error in blueprint: Unable to instantiate item; 2 errors including: PlanNotRecognizedException: Invalid plan; format could not be recognized, trying with: [Java type instantiator (org.apache.brooklyn.core.catalog.internal.JavaCatalogToSpecTransformer parses only old-style catalog items containing javaType)]",
  "details": "org.apache.brooklyn.util.exceptions.CompoundRuntimeException: Unable to instantiate item; 2 errors including: PlanNotRecognizedException: Invalid plan; format could not be recognized, trying with: [Java type instantiator (org.apache.brooklyn.core.catalog.internal.JavaCatalogToSpecTransformer parses only old-style catalog items containing javaType)]\n\tat org.apache.brooklyn.util.exceptions.Exceptions.create(Exceptions.java:393)\n\tat org.apache.brooklyn.core.typereg.BasicBrooklynTypeRegistry.createSpec(BasicBrooklynTypeRegistry.java:236)\n\tat org.apache.brooklyn.core.typereg.BasicBrooklynTypeRegistry.createSpec(BasicBrooklynTypeRegistry.java:175)\n\tat org.apache.brooklyn.core.typereg.BasicBrooklynTypeRegistry.createSpecFromPlan(BasicBrooklynTypeRegistry.java:243)\n\tat org.apache.brooklyn.core.mgmt.EntityManagementUtils.createEntitySpecForApplication(EntityManagementUtils.java:92)\n\tat org.apache.brooklyn.rest.resources.ApplicationResource.createEntitySpecForApplication(ApplicationResource.java:399)\n\tat org.apache.brooklyn.rest.resources.ApplicationResource.createPoly(ApplicationResource.java:360)\n\tat org.apache.brooklyn.rest.resources.ApplicationResource.createFromForm(ApplicationResource.java:382)\n\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat java.lang.reflect.Method.invoke(Method.java:606)\n\tat org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:180)\n\tat org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:96)\n\tat org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:200)\n\tat org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:99)\n\tat org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:59)\n\tat org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:96)\n\tat org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)\n\tat org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)\n\tat org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:251)\n\tat org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234)\n\tat org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208)\n\tat org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160)\n\tat org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:180)\n\tat org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:293)\n\tat org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:212)\n\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:707)\n\tat org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:268)\n\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:808)\n\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)\n\tat org.apache.brooklyn.rest.filter.BrooklynPropertiesSecurityFilter.doFilter(BrooklynPropertiesSecurityFilter.java:125)\n\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)\n\tat org.apache.brooklyn.rest.filter.HaMasterCheckFilter.doFilter(HaMasterCheckFilter.java:91)\n\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)\n\tat org.apache.brooklyn.rest.filter.LoggingFilter.doFilter(LoggingFilter.java:91)\n\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)\n\tat org.apache.brooklyn.rest.filter.RequestTaggingFilter.doFilter(RequestTaggingFilter.java:50)\n\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)\n\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)\n\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)\n\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)\n\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)\n\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)\n\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)\n\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)\n\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)\n\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)\n\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)\n\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)\n\tat org.eclipse.jetty.server.Server.handle(Server.java:499)\n\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)\n\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)\n\tat org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)\n\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)\n\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)\n\tat java.lang.Thread.run(Thread.java:745)\nCaused by: java.lang.IllegalStateException: PlanNotRecognizedException: Invalid plan; format could not be recognized, trying with: [Java type instantiator (org.apache.brooklyn.core.catalog.internal.JavaCatalogToSpecTransformer parses only old-style catalog items containing javaType)]\n\tat org.apache.brooklyn.util.guava.IllegalStateExceptionSupplier.get(IllegalStateExceptionSupplier.java:52)\n\tat org.apache.brooklyn.util.guava.IllegalStateExceptionSupplier.get(IllegalStateExceptionSupplier.java:26)\n\tat org.apache.brooklyn.util.guava.Maybe$Absent.getException(Maybe.java:276)\n\tat org.apache.brooklyn.util.guava.Maybe$Absent.get(Maybe.java:273)\n\tat org.apache.brooklyn.core.catalog.internal.BasicBrooklynCatalog.internalCreateSpecLegacy(BasicBrooklynCatalog.java:330)\n\tat org.apache.brooklyn.core.typereg.BasicBrooklynTypeRegistry.createSpec(BasicBrooklynTypeRegistry.java:217)\n\t... 55 more\nCaused by: org.apache.brooklyn.core.plan.PlanNotRecognizedException: Invalid plan; format could not be recognized, trying with: [Java type instantiator (org.apache.brooklyn.core.catalog.internal.JavaCatalogToSpecTransformer parses only old-style catalog items containing javaType)]\n\tat org.apache.brooklyn.core.plan.PlanToSpecFactory.attemptWithLoaders(PlanToSpecFactory.java:148)\n\tat org.apache.brooklyn.core.plan.PlanToSpecFactory.attemptWithLoaders(PlanToSpecFactory.java:117)\n\tat org.apache.brooklyn.core.catalog.internal.BasicBrooklynCatalog.internalCreateSpecLegacy(BasicBrooklynCatalog.java:324)\n\t... 56 more\n",
  "error": 400
}

This json is not deserialized in dashboard, probably for using incompatible versions between client classes and server classes.