Have you checked this? https://github.com/opendaylight/openflowplugin/blob/master/applications/bulk-o-matic/src/site/asciidoc/bulk-o-matic.adoc <https://github.com/opendaylight/openflowplugin/blob/master/applications/bulk-o-matic/src/site/asciidoc/bulk-o-matic.adoc>
BR/Luis > On Jun 16, 2016, at 11:52 PM, Muthukrishnan Thangasamy > <[email protected]> wrote: > > Hello Team , > > Can anyone tell how to add multiple ( more than 100 flows ) flows to switches > using single REST API call either through Config Data store or RPC . > > I tried using Bulk-o-matic application But I am Getting Null Pointer > Exception in > org.opendaylight.openflowplugin.applications.bulk.o.matic.SalBulkFlowServiceImpl.addFlowsDs(SalBulkFlowServiceImpl.java:72) > > > Can anyone tell me whats is the issue with my restcall? > > Bulk-o-matic yang > ============== > https://github.com/opendaylight/openflowplugin/blob/master/applications/bulk-o-matic/src/main/yang/sal-bulk-flow.yang > > <https://github.com/opendaylight/openflowplugin/blob/master/applications/bulk-o-matic/src/main/yang/sal-bulk-flow.yang> > > > REST Call ( tried to add only single flow ) > ================== > curl -v --user "admin":"admin" -H "Accept: application/xml" -H "Content-type: > application/xml" -k -X POST -d ' > <input xmlns="urn:opendaylight:bulk-flow:service"> > <always-create-parents>false</always-create-parents> > <flow_id>3</flow_id> > <cookie_mask>255</cookie_mask> > <cookie>105</cookie> > <table_id>0</table_id> > <priority>65530</priority> > <hard-timeout>0</hard-timeout> > <idle-timeout>0</idle-timeout> > <installHW>false</installHW> > <instructions> > <instruction> > <order>0</order> > <apply-actions> > <action> > <order>0</order> > <output-action> > <output-node-connector>3</output-node-connector> > </output-action> > </action> > </apply-actions> > </instruction> > </instructions> > <match> > <in-port>2</in-port> > </match> > </input>' > https://10.45.0.227:8443/restconf/operations/sal-bulk-flow:add-flows-ds > <https://10.45.0.227:8443/restconf/operations/sal-bulk-flow:add-flows-ds> > > > Curl Response > ============ > * Connection #0 to host 10.45.0.227 left intact > tel@tel-ProLiant-ML150-Gen9:~$ curl -v --user "admin":"admin" -H "Accept: > application/xml" -H "Content-type: application/xml" -k -X POST -d ' > > <input xmlns="urn:opendaylight:bulk-flow:service"> > > <always-create-parents>false</always-create-parents> > > <flow_id>3</flow_id> > > <cookie_mask>255</cookie_mask> > > <cookie>105</cookie> > > <table_id>0</table_id> > > <priority>65530</priority> > > <hard-timeout>0</hard-timeout> > > <idle-timeout>0</idle-timeout> > > <installHW>false</installHW> > > <instructions> > > <instruction> > > <order>0</order> > > <apply-actions> > > <action> > > <order>0</order> > > <output-action> > > <output-node-connector>3</output-node-connector> > > </output-action> > > </action> > > </apply-actions> > > </instruction> > > </instructions> > > <match> > > <in-port>2</in-port> > > </match> > > </input>' > > https://10.45.0.227:8443/restconf/operations/sal-bulk-flow:add-flows-ds > > <https://10.45.0.227:8443/restconf/operations/sal-bulk-flow:add-flows-ds> > * Trying 10.45.0.227... > * Connected to 10.45.0.227 (10.45.0.227) port 8443 (#0) > * found 187 certificates in /etc/ssl/certs/ca-certificates.crt > * found 753 certificates in /etc/ssl/certs > * ALPN, offering http/1.1 > * SSL connection using TLS1.2 / ECDHE_RSA_AES_128_CBC_SHA1 > * server certificate verification SKIPPED > * server certificate status verification SKIPPED > * common name: Sanket Tandulwadkar (does not match '10.45.0.227') > * server certificate expiration date OK > * server certificate activation date OK > * certificate public key: RSA > * certificate version: #3 > * subject: C=US,ST=MA,L=Billerica,O=Avaya,OU=VEGA,CN=Sanket > Tandulwadkar > * start date: Tue, 19 Jan 2016 15:10:59 GMT > * expire date: Fri, 16 Jan 2026 15:10:59 GMT > * issuer: C=US,ST=MA,L=Billerica,O=Avaya,OU=VEGA,CN=Sanket Tandulwadkar > * compression: NULL > * ALPN, server did not agree to a protocol > * Server auth using Basic with user 'admin' > > POST /restconf/operations/sal-bulk-flow:add-flows-ds HTTP/1.1 > > Host: 10.45.0.227:8443 > > Authorization: Basic YWRtaW46YWRtaW4= > > User-Agent: curl/7.43.0 > > Accept: application/xml > > Content-type: application/xml > > Content-Length: 813 > > > * upload completely sent off: 813 out of 813 bytes > < HTTP/1.1 500 Server Error > < Content-Type: text/html;charset=ISO-8859-1 > < Cache-Control: must-revalidate,no-cache,no-store > < Content-Length: 7648 > < Server: Jetty(8.1.15.v20140411) > < > <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 /restconf/operations/sal-bulk-flow:add-flows-ds. Reason: > <pre> Server Error</pre></p><h3>Caused > by:</h3><pre>java.lang.NullPointerException > at > org.opendaylight.openflowplugin.applications.bulk.o.matic.SalBulkFlowServiceImpl.addFlowsDs(SalBulkFlowServiceImpl.java:72) > at > org.opendaylight.yangtools.yang.binding.util.RpcMethodInvokerWithInput.invokeOn(RpcMethodInvokerWithInput.java:30) > at > org.opendaylight.yangtools.yang.binding.util.AbstractMappedRpcInvoker.invokeRpc(AbstractMappedRpcInvoker.java:52) > at > org.opendaylight.controller.md.sal.binding.impl.BindingDOMRpcImplementationAdapter.invoke(BindingDOMRpcImplementationAdapter.java:85) > at > org.opendaylight.controller.md.sal.binding.impl.BindingDOMRpcImplementationAdapter.invokeRpc(BindingDOMRpcImplementationAdapter.java:72) > at > org.opendaylight.controller.md.sal.dom.broker.impl.GlobalDOMRpcRoutingTableEntry.invokeRpc(GlobalDOMRpcRoutingTableEntry.java:40) > at > org.opendaylight.controller.md.sal.dom.broker.impl.DOMRpcRoutingTable.invokeRpc(DOMRpcRoutingTable.java:186) > at > org.opendaylight.controller.md.sal.dom.broker.impl.DOMRpcRouter.invokeRpc(DOMRpcRouter.java:124) > at > org.opendaylight.controller.sal.restconf.impl.BrokerFacade.invokeRpc(BrokerFacade.java:176) > at > org.opendaylight.controller.sal.restconf.impl.RestconfImpl.invokeRpc(RestconfImpl.java:449) > at > org.opendaylight.controller.sal.restconf.impl.StatisticsRestconfServiceWrapper.invokeRpc(StatisticsRestconfServiceWrapper.java:81) > at > org.opendaylight.controller.sal.rest.impl.RestconfCompositeWrapper.invokeRpc(RestconfCompositeWrapper.java:53) > at sun.reflect.GeneratedMethodAccessor412.invoke(Unknown Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:606) > at > com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60) > at > com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$TypeOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:185) > 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:302) > at > com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147) > at > com.sun.jersey.server.impl.uri.rules.ResourceObjectRule.accept(ResourceObjectRule.java:100) > 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:1511) > at > com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1442) > at > com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1391) > at > com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1381) > at > com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416) > at > com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:538) > at > com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:716) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:668) > at > org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684) > at > org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1496) > at > org.eclipse.jetty.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:247) > at > org.eclipse.jetty.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:210) > at > org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1467) > at > org.eclipse.jetty.servlets.UserAgentFilter.doFilter(UserAgentFilter.java:82) > at org.eclipse.jetty.servlets.GzipFilter.doFilter(GzipFilter.java:256) > at > org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1467) > at > org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:501) > at > org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:69) > at > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137) > at > org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557) > at > org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231) > at > org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086) > at > org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:240) > at > org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:429) > at > org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193) > at > org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020) > at > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) > at > org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:75) > at > org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) > at org.eclipse.jetty.server.Server.handle(Server.java:366) > at > org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494) > at > org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:982) > at > org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1043) > at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865) > 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.SslConnection.handle(SslConnection.java:196) > at > org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:696) > at > org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:53) > 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:745) > </pre> > <hr /><i><small>Powered by Jetty://</small></i><br/> > > > > _______________________________________________ > openflowplugin-dev mailing list > [email protected] > <mailto:[email protected]> > https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev > <https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev>
_______________________________________________ openflowplugin-dev mailing list [email protected] https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev
