Hi, Can you elaborate on what service you are trying to add? I am not sure I understand the scenario fully? If you are just trying to use API's, take a look at
https://github.com/apache/ambari/blob/trunk/ambari-server/docs/api/v1/index.md for the more recent documentation for the API's and also at: https://github.com/apache/ambari/blob/trunk/ambari-server/src/test/resources/test_api.sh For some examples on how to use them. thanks mahadev On Wed, May 22, 2013 at 11:23 PM, jbuy0710 <[email protected]> wrote: > Hi, I have some questions about adding services to Ambari (1.2.3.6-1) . > According to the following two pages , I want to add service by using API. > > 1. Adding a New Service to an Existing Cluster > > > https://cwiki.apache.org/AMBARI/adding-a-new-service-to-an-existing-cluster.html > > 2. Adding a New Service as part of the Stack Definition > > > https://cwiki.apache.org/AMBARI/adding-a-new-service-as-part-of-the-stack-definition.html > > > From 1. , I have encountered a problem. > > I tried to install Nagios from api and the service is installed and > started but In UI the config page for Nagios is empty. > > Services -> Nagios -> Summary : normal > > Services -> Nagios -> Configs : empty , only save and canceled button > > There should be > > General > > Nagios Admin password > > Hadoop Admin email > > Nagios Admin username > > > ============= > > From 2. > > I create the new service directory with its metainfo.xml. > > the content of metainfo.xml : > > <metainfo> > > <user>root</user> > > <comment>TEST</comment> > > <version>1.0</version> > > <components> > > <component> > > <name>NAGIOS_SERVER</name> > > <category>MASTER</category> > > </component> > > </components> > > </metainfo> > > > When I use api to add this new service , it shows the following error. > > [root@localhost ~]# curl -u admin:admin -i -X POST -d '{"ServiceInfo": > {"service_name":"TEST"}}' > http://10.1.191.24:8080/api/v1/clusters/ambari24/services > > > http://10.1.191.24:8080/api/v1/clusters/ambari24/services > > HTTP/1.1 500 Server Error > > Set-Cookie: AMBARISESSIONID=16vq57v0rbynl1jsgq033nroir;Path=/ > > Cache-Control: must-revalidate,no-cache,no-store > > Content-Type: text/html;charset=ISO-8859-1 > > Content-Length: 1306 > > Server: Jetty(7.6.7.v20120910) > > > <html> > > <head> > > <meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/> > > <title>Error 500 Server Error</title> > > </head> > > <body> > > <h2>HTTP ERROR: 500</h2> > > <p>Problem accessing /api/v1/clusters/ambari24/services. Reason: > > <pre> Server Error</pre></p> > > <hr /><i><small>Powered by Jetty://</small></i> > > > there are two errors in ambari-server.log : > > ====== > > ERROR BaseManagementHandler:62 - Caught a runtime exception while > attempting to create a resource > > java.lang.NullPointerException > > at > org.apache.ambari.server.state.ServiceImpl.<init>(ServiceImpl.java:100) > > at > org.apache.ambari.server.state.ServiceImpl$$EnhancerByGuice$$cfe777e8.<init>(<generated>) > > at > org.apache.ambari.server.state.ServiceImpl$$EnhancerByGuice$$cfe777e8$$FastClassByGuice$$3a5b947.newInstance(<generated>) > > at > com.google.inject.internal.cglib.reflect.$FastConstructor.newInstance(FastConstructor.java:40) > > at > com.google.inject.internal.ProxyFactory$ProxyConstructor.newInstance(ProxyFactory.java:260) > > at > com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85) > > at > com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254) > > at > com.google.inject.internal.InjectorImpl$4$1.call(InjectorImpl.java:978) > > at > com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1024) > > at > com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:974) > > at > com.google.inject.assistedinject.FactoryProvider2.invoke(FactoryProvider2.java:632) > > at $Proxy12.createNew(Unknown Source) > > at > org.apache.ambari.server.controller.AmbariManagementControllerImpl.createServices(AmbariManagementControllerImpl.java:359) > > at > org.apache.ambari.server.controller.internal.ServiceResourceProvider$1.invoke(ServiceResourceProvider.java:91) > > at > org.apache.ambari.server.controller.internal.ServiceResourceProvider$1.invoke(ServiceResourceProvider.java:88) > > at > org.apache.ambari.server.controller.internal.AbstractResourceProvider.createResources(AbstractResourceProvider.java:229) > > at > org.apache.ambari.server.controller.internal.ServiceResourceProvider.createResources(ServiceResourceProvider.java:88) > > at > org.apache.ambari.server.controller.internal.ClusterControllerImpl.createResources(ClusterControllerImpl.java:134) > > at > org.apache.ambari.server.api.services.persistence.PersistenceManagerImpl.create(PersistenceManagerImpl.java:75) > > at > org.apache.ambari.server.api.handlers.CreateHandler.persist(CreateHandler.java:36) > > at > org.apache.ambari.server.api.handlers.BaseManagementHandler.handleRequest(BaseManagementHandler.java:67) > > at > org.apache.ambari.server.api.services.BaseRequest.process(BaseRequest.java:100) > > at > org.apache.ambari.server.api.services.BaseService.handleRequest(BaseService.java:80) > > at > org.apache.ambari.server.api.services.ServiceService.createServices(ServiceService.java:114) > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > > at java.lang.reflect.Method.invoke(Method.java:597) > > at > com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60) > > at > com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:205) > > at > com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75) > > at > com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:288) > > at > com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:134) > > at > com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147) > > at > com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108) > > at > com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147) > > at > com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84) > > at > com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1469) > > at > com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1400) > > at > com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1349) > > at > com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1339) > > at > com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416) > > at > com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:537) > > at > com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:708) > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) > > at > org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:652) > > at > org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1329) > > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) > > at > org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118) > > at > org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84) > > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) > > at > org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113) > > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) > > > at > org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103) > > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) > > at > org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113) > > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) > > at > org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54) > > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) > > at > org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45) > > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) > > at > org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:201) > > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) > > at > org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87) > > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) > > at > org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192) > > at > org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160) > > at > org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237) > > at > org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167) > > at > org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1300) > > at > org.apache.ambari.server.api.AmbariPersistFilter.doFilter(AmbariPersistFilter.java:48) > > at > org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1300) > > at > org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:445) > > at > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137) > > at > org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:559) > > at > org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227) > > at > org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1038) > > at > org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:374) > > at > org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:189) > > at > org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:972) > > at > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) > > at > org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) > > at org.eclipse.jetty.server.Server.handle(Server.java:363) > > at > org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:483) > > at > org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:931) > > at > org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:992) > > at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:856) > > at > org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240) > > at > org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82) > > at > org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:627) > > at > org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:51) > > at > org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608) > > at > org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543) > > at java.lang.Thread.run(Thread.java:662) > > ========= > > WARN ServletHandler:514 - /api/v1/clusters/ambari24/services > > java.lang.NullPointerException > > at > org.apache.ambari.server.state.ServiceImpl.<init>(ServiceImpl.java:100) > > at > org.apache.ambari.server.state.ServiceImpl$$EnhancerByGuice$$cfe777e8.<init>(<generated>) > > at > org.apache.ambari.server.state.ServiceImpl$$EnhancerByGuice$$cfe777e8$$FastClassByGuice$$3a5b947.newInstance(<generated>) > > at > com.google.inject.internal.cglib.reflect.$FastConstructor.newInstance(FastConstructor.java:40) > > at > com.google.inject.internal.ProxyFactory$ProxyConstructor.newInstance(ProxyFactory.java:260) > > at > com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85) > > at > com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254) > > at > com.google.inject.internal.InjectorImpl$4$1.call(InjectorImpl.java:978) > > at > com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1024) > > at > com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:974) > > at > com.google.inject.assistedinject.FactoryProvider2.invoke(FactoryProvider2.java:632) > > at $Proxy12.createNew(Unknown Source) > > at > org.apache.ambari.server.controller.AmbariManagementControllerImpl.createServices(AmbariManagementControllerImpl.java:359) > > at > org.apache.ambari.server.controller.internal.ServiceResourceProvider$1.invoke(ServiceResourceProvider.java:91) > > at > org.apache.ambari.server.controller.internal.ServiceResourceProvider$1.invoke(ServiceResourceProvider.java:88) > > at > org.apache.ambari.server.controller.internal.AbstractResourceProvider.createResources(AbstractResourceProvider.java:229) > > at > org.apache.ambari.server.controller.internal.ServiceResourceProvider.createResources(ServiceResourceProvider.java:88) > > at > org.apache.ambari.server.controller.internal.ClusterControllerImpl.createResources(ClusterControllerImpl.java:134) > > at > org.apache.ambari.server.api.services.persistence.PersistenceManagerImpl.create(PersistenceManagerImpl.java:75) > > at > org.apache.ambari.server.api.handlers.CreateHandler.persist(CreateHandler.java:36) > > at > org.apache.ambari.server.api.handlers.BaseManagementHandler.handleRequest(BaseManagementHandler.java:67) > > at > org.apache.ambari.server.api.services.BaseRequest.process(BaseRequest.java:100) > > at > org.apache.ambari.server.api.services.BaseService.handleRequest(BaseService.java:80) > > at > org.apache.ambari.server.api.services.ServiceService.createServices(ServiceService.java:114) > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > > at java.lang.reflect.Method.invoke(Method.java:597) > > at > com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60) > > at > com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:205) > > at > com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75) > > at > com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:288) > > at > com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:134) > > at > com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147) > > at > com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108) > > at > com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147) > > at > com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84) > > at > com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1469) > > at > com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1400) > > at > com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1349) > > at > com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1339) > > at > com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416) > > at > com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:537) > > at > com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:708) > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) > > at > org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:652) > > at > org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1329) > > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) > > at > org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118) > > at > org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84) > > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) > > at > org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113) > > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) > > at > org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103) > > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) > > at > org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113) > > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) > > at > org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54) > > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) > > at > org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45) > > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) > > at > org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:201) > > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) > > at > org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87) > > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) > > at > org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192) > > at > org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160) > > at > org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237) > > at > org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167) > > at > org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1300) > > at > org.apache.ambari.server.api.AmbariPersistFilter.doFilter(AmbariPersistFilter.java:48) > > at > org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1300) > > at > org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:445) > > at > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137) > > at > org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:559) > > at > org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227) > > at > org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1038) > > at > org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:374) > > at > org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:189) > > at > org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:972) > > at > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) > > at > org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) > > at org.eclipse.jetty.server.Server.handle(Server.java:363) > > at > org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:483) > > at > org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:931) > > at > org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:992) > > at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:856) > > at > org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240) > > at > org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82) > > at > org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:627) > > at > org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:51) > > at > org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608) > > at > org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543) > > at java.lang.Thread.run(Thread.java:662) > > > > Is there any step I did incorrect? > > > Best Regards > > >
