Hi Sebastien, >From the logs it seems like the management-server ip and port value being used >by AWSAPI to connect to CloudStack is null. Could you check if 'managementServer' and ' cloudAPIPort' configuration values in ec2-service.properties has been correctly set to the CloudStack management server ip and 8080 respectively ?
Thank you, Likitha -----Original Message----- From: Sebastien Goasguen [mailto:run...@gmail.com] Sent: Monday, December 03, 2012 2:55 AM To: cloudstack-dev@incubator.apache.org Subject: Re: awsapi with new maven build Likitha, Can you provide step by step directions on how you are registering the user and managing to do Query ec2 request ? I am still struggling with this. Using master branch, WSDL version in awsapi/conf/ec2-service.properties and in the awsapi-setup/setup/cloudstack-aws-api-register script match. I added 'db.awsapi.name=cloudbridge' in utils/conf/db.properties. Built with: mvn -P developer clean install Deployeddb with: mvn -P developer -pl developer,tools/devcloud -Ddeploydb Ran the mgt server with: mvn -pl :cloud-client-ui jetty:run And the awsapi server with: mvn -pl :cloud-awsapi jetty:run I tried the register the user with: air-2:setup sebastiengoasguen$ python ./cloudstack-aws-api-register -a bv7-6-GQRyib3QcD0hr13Rk3PVpWXyljO7oMKf38GeXZx2o_M6rlUkL8BxX_yJMPkJzcsRiLMxVkLL5JmSaRPg -s kRDURfoJtJOI_GptX203RvUJjIRwqMuk-1VgYI_qi15X5nFQvwE77K-z4siT0YArwf3P8uZYHzjkzvIX0CYxrg -c ~/.ssh/cert.pem -u http://192.168.56.1:7080/awsapi User registration failed with http error code: 401 The error I got in the awsapi jetty logs were : INFO: Request queryString: AWSAccessKeyId=bv7-6-GQRyib3QcD0hr13Rk3PVpWXyljO7oMKf38GeXZx2o_M6rlUkL8BxX_yJMPkJzcsRiLMxVkLL5JmSaRPg&Action=SetUserKeys&SignatureMethod=HmacSHA1&SignatureVersion=2&Timestamp=2012-12-02T22:17:27Z&Version=2010-11-15&accesskey=bv7-6-GQRyib3QcD0hr13Rk3PVpWXyljO7oMKf38GeXZx2o_M6rlUkL8BxX_yJMPkJzcsRiLMxVkLL5JmSaRPg&secretkey=kRDURfoJtJOI_GptX203RvUJjIRwqMuk-1VgYI_qi15X5nFQvwE77K-z4siT0YArwf3P8uZYHzjkzvIX0CYxrg&Signature=s6eg6WbTXaHEFkVwADLcYZyS5mg%3D Dec 2, 2012 10:17:27 PM com.cloud.bridge.service.EC2RestServlet logRequest INFO: Request requestURI: /awsapi/rest/AmazonEC2/ Dec 2, 2012 10:17:27 PM com.cloud.bridge.service.EC2RestServlet logRequest INFO: Request requestURL: http://192.168.56.1:7080/awsapi/rest/AmazonEC2/ Dec 2, 2012 10:17:27 PM com.cloud.bridge.service.EC2RestServlet logRequest INFO: Request servletPath: /rest/AmazonEC2 Dec 2, 2012 10:17:27 PM com.cloud.bridge.service.EC2RestServlet logRequest INFO: Request header Accept-Encoding:identity Dec 2, 2012 10:17:27 PM com.cloud.bridge.service.EC2RestServlet logRequest INFO: Request header Host:192.168.56.1:7080 Dec 2, 2012 10:17:27 PM com.cloud.bridge.service.EC2RestServlet logRequest INFO: Request header Connection:close Dec 2, 2012 10:17:27 PM com.cloud.bridge.service.EC2RestServlet logRequest INFO: Request header User-Agent:Python-urllib/2.7 Dec 2, 2012 10:17:27 PM com.cloud.bridge.service.EC2RestServlet logRequest INFO: Request parameter Action:SetUserKeys Dec 2, 2012 10:17:27 PM com.cloud.bridge.service.EC2RestServlet logRequest INFO: Request parameter SignatureMethod:HmacSHA1 Dec 2, 2012 10:17:27 PM com.cloud.bridge.service.EC2RestServlet logRequest INFO: Request parameter AWSAccessKeyId:bv7-6-GQRyib3QcD0hr13Rk3PVpWXyljO7oMKf38GeXZx2o_M6rlUkL8BxX_yJMPkJzcsRiLMxVkLL5JmSaRPg Dec 2, 2012 10:17:27 PM com.cloud.bridge.service.EC2RestServlet logRequest INFO: Request parameter Version:2010-11-15 Dec 2, 2012 10:17:27 PM com.cloud.bridge.service.EC2RestServlet logRequest INFO: Request parameter SignatureVersion:2 Dec 2, 2012 10:17:27 PM com.cloud.bridge.service.EC2RestServlet logRequest INFO: Request parameter Signature:s6eg6WbTXaHEFkVwADLcYZyS5mg= Dec 2, 2012 10:17:27 PM com.cloud.bridge.service.EC2RestServlet logRequest INFO: Request parameter secretkey:kRDURfoJtJOI_GptX203RvUJjIRwqMuk-1VgYI_qi15X5nFQvwE77K-z4siT0YArwf3P8uZYHzjkzvIX0CYxrg Dec 2, 2012 10:17:27 PM com.cloud.bridge.service.EC2RestServlet logRequest INFO: Request parameter accesskey:bv7-6-GQRyib3QcD0hr13Rk3PVpWXyljO7oMKf38GeXZx2o_M6rlUkL8BxX_yJMPkJzcsRiLMxVkLL5JmSaRPg Dec 2, 2012 10:17:27 PM com.cloud.bridge.service.EC2RestServlet logRequest INFO: Request parameter Timestamp:2012-12-02T22:17:27Z Dec 2, 2012 10:17:27 PM com.cloud.bridge.service.EC2RestServlet setUserKeys SEVERE: SetUserKeys null java.lang.NullPointerException at com.cloud.stack.CloudStackClient.<init>(CloudStackClient.java:51) at com.cloud.stack.CloudStackApi.<init>(CloudStackApi.java:82) at com.cloud.bridge.service.core.ec2.EC2Engine.validateAccount(EC2Engine.java:194) at com.cloud.bridge.service.EC2RestServlet.setUserKeys(EC2RestServlet.java:373) at com.cloud.bridge.service.EC2RestServlet.doGetOrPost(EC2RestServlet.java:225) at com.cloud.bridge.service.EC2RestServlet.doGet(EC2RestServlet.java:200) at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:401) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450) at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:327) at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126) at com.cloud.bridge.service.EC2MainServlet.doGetOrPost(EC2MainServlet.java:93) at com.cloud.bridge.service.EC2MainServlet.doGet(EC2MainServlet.java:73) at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:401) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450) at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.Server.handle(Server.java:326) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410) at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) Any clues much appreciated ? thanks, -Sebastien On Nov 29, 2012, at 7:23 AM, Likitha Shetty <likitha.she...@citrix.com> wrote: > > > -----Original Message----- > From: sebgoa [mailto:run...@gmail.com] > Sent: Wednesday, November 28, 2012 1:36 PM > To: cloudstack-dev@incubator.apache.org > Subject: Re: awsapi with new maven build > > inline > > On Nov 28, 2012, at 7:49 AM, Likitha Shetty wrote: > >> Hi Sebastien, >> >> >> >> >> >> -----Original Message----- >> From: sebgoa [mailto:run...@gmail.com] >> Sent: Tuesday, November 27, 2012 10:39 PM >> To: cloudstack-dev@incubator.apache.org >> Subject: Re: awsapi with new maven build >> >> >> >> >> >> On Nov 27, 2012, at 5:57 PM, Likitha Shetty wrote: >> >> >> >>> Prachi, as you pointed out, the error was because there was a mismatch >>> between the version in the registration script and the WSDL version of the >>> deployment. >> >> >> >> >> >> Hi Likitha, can you give more details on the files you modified ? when I >> checked the version number they were equal. I was using the master branch. >> >> Likitha - Even I am on the master branch. >> >> I made two changes, >> >> 1. Added 'db.awsapi.name=cloudbridge' to utils/conf/db.properties file >> >> 2. Modified file $CATALINA_HOME/conf/ec2-service.properties to have >> 'WSDLVersion=2010-11-15'. Because this is supported ec2 version is present >> that is present in awsapi-setup/setup/cloudstack-aws-api-register file. >> >> Could you please tell what is the error you get while trying >> to register ? >> >> > > thx, I will check everything again > >> >> Also below you mention that you tried the Query APIs (EC2 ?) and that it >> worked. Did you register the user without a certificate ? >> >> Likitha - Yes, I registered the user without a certificate. From what I >> understand, the cloudstack-aws-api-register script performs two actions, >> SetUserKeys and SetCertificate. >> >> * SetUserKeys gives the user's API access and secret keys to AWSAPI >> so that AWSAPI can call the CloudStack API with these keys. This is required >> for both Query and SOAP. >> >> * SetCertificate registers the user's X.509 certificate with AWSAPI. >> EC2 requires the client to have a public/private key pair with the public >> key defined by a X.509 certificate. This is required only for SOAP access >> only >> (http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/using-soap-api.html). >> >> And since SetUserKeys was successfully executed and only SetCertificate >> failed with 'SEVERE: SetCertificate exception >> /home/likitha/incubator-cloudstack/awsapi/target/cloud-awsapi-4.1.0-SNAPSHOTWEB-INF/classes/xes.keystore >> (No such file or directory)' exception, I could execute EC2 Query API's. >> >> >> >> Overall the distinction between Query and REST is very confusing because it >> seems that the Query interface is implemented by the EC2RestServlet. if >> that's the case it would be nice to clear up the confusion and be consistent. >> >> Likitha - You mean we need to clean up the code ? > > Yes. If it's implementing the EC2 Query API, maybe it should be called > EC2QueryServlet ? Also there are lots of mention to cloud.com in the code > itself, that probably needs to be cleaned up a bit. > > +1 > >> >> >> >> Cheers, >> >> >> >> -Sebastien >> >> >> >>> >> >>> >> >>> >> >>> After fixing that, now user registration fails with the below error, >> >>> >> >>> 27 Nov, 2012 11:17:00 AM com.cloud.bridge.service.EC2RestServlet >>> setCertificate >> >>> >> >>> SEVERE: SetCertificate exception >>> /home/likitha/incubator-cloudstack/awsapi/target/cloud-awsapi-4.1.0- >>> SNAPSHOTWEB-INF/classes/xes.keystore (No such file or directory) >> >>> >> >>> java.io.FileNotFoundException: >>> /home/likitha/incubator-cloudstack/awsapi/target/cloud-awsapi-4.1.0- >>> SNAPSHOTWEB-INF/classes/xes.keystore (No such file or directory) >> >>> >> >>> at java.io.FileInputStream.open(Native Method) >> >>> >> >>> at >>> java.io.FileInputStream.<init>(FileInputStream.java:137) >> >>> >> >>> at >>> java.io.FileInputStream.<init>(FileInputStream.java:96) >> >>> >> >>> at >>> com.cloud.bridge.service.EC2RestServlet.setCertificate(EC2RestServle >>> t.java:426) >> >>> >> >>> at >>> com.cloud.bridge.service.EC2RestServlet.doGetOrPost(EC2RestServlet.j >>> ava:271) >> >>> >> >>> at >>> com.cloud.bridge.service.EC2RestServlet.doGet(EC2RestServlet.java:20 >>> 0) >> >>> >> >>> at >>> javax.servlet.http.HttpServlet.service(HttpServlet.java:707) >> >>> >> >>> at >>> javax.servlet.http.HttpServlet.service(HttpServlet.java:820) >> >>> >> >>> at >>> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:51 >>> 1) >> >>> >> >>> at >>> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java: >>> 401) >> >>> >> >>> at >>> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.ja >>> va:216) >> >>> >> >>> at >>> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java: >>> 182) >> >>> >> >>> at >>> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java: >>> 766) >> >>> >> >>> at >>> org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450 >>> ) >> >>> >> >>> at >>> org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:327) >> >>> >> >>> at >>> org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126) >> >>> >> >>> at >>> com.cloud.bridge.service.EC2MainServlet.doGetOrPost(EC2MainServlet.j >>> ava:93) >> >>> >> >>> at >>> com.cloud.bridge.service.EC2MainServlet.doGet(EC2MainServlet.java:73 >>> ) >> >>> >> >>> at >>> javax.servlet.http.HttpServlet.service(HttpServlet.java:707) >> >>> >> >>> at >>> javax.servlet.http.HttpServlet.service(HttpServlet.java:820) >> >>> >> >>> at >>> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:51 >>> 1) >> >>> >> >>> at >>> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java: >>> 401) >> >>> >> >>> at >>> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.ja >>> va:216) >> >>> >> >>> at >>> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java: >>> 182) >> >>> >> >>> at >>> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java: >>> 766) >> >>> >> >>> at >>> org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450 >>> ) >> >>> >> >>> at >>> org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:327) >> >>> >> >>> at >>> org.mortbay.jetty.servlet.Dispatcher.error(Dispatcher.java:135) >> >>> >> >>> at >>> org.mortbay.jetty.servlet.ErrorPageErrorHandler.handle(ErrorPageErro >>> rHandler.java:129) >> >>> >> >>> at >>> org.mortbay.jetty.Response.sendError(Response.java:274) >> >>> >> >>> at >>> com.cloud.bridge.service.EC2RestServlet.setCertificate(EC2RestServle >>> t.java:462) >> >>> >> >>> at >>> com.cloud.bridge.service.EC2RestServlet.doGetOrPost(EC2RestServlet.j >>> ava:271) >> >>> >> >>> at >>> com.cloud.bridge.service.EC2RestServlet.doGet(EC2RestServlet.java:20 >>> 0) >> >>> >> >>> at >>> javax.servlet.http.HttpServlet.service(HttpServlet.java:707) >> >>> >> >>> at >>> javax.servlet.http.HttpServlet.service(HttpServlet.java:820) >> >>> >> >>> at >>> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:51 >>> 1) >> >>> >> >>> at >>> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java: >>> 401) >> >>> >> >>> at >>> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.ja >>> va:216) >> >>> >> >>> at >>> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java: >>> 182) >> >>> >> >>> at >>> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java: >>> 766) >> >>> >> >>> at >>> org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450 >>> ) >> >>> >> >>> at >>> org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:327) >> >>> >> >>> at >>> org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126) >> >>> >> >>> at >>> com.cloud.bridge.service.EC2MainServlet.doGetOrPost(EC2MainServlet.j >>> ava:93) >> >>> >> >>> at >>> com.cloud.bridge.service.EC2MainServlet.doGet(EC2MainServlet.java:73 >>> ) >> >>> >> >>> at >>> javax.servlet.http.HttpServlet.service(HttpServlet.java:707) >> >>> >> >>> at >>> javax.servlet.http.HttpServlet.service(HttpServlet.java:820) >> >>> >> >>> at >>> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:51 >>> 1) >> >>> >> >>> at >>> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java: >>> 401) >> >>> >> >>> at >>> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.ja >>> va:216) >> >>> >> >>> at >>> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java: >>> 182) >> >>> >> >>> at >>> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java: >>> 766) >> >>> >> >>> at >>> org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450 >>> ) >> >>> >> >>> at >>> org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHan >>> dlerCollection.java:230) >> >>> >> >>> at >>> org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection >>> .java:114) >> >>> >> >>> at >>> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java: >>> 152) >> >>> >> >>> at org.mortbay.jetty.Server.handle(Server.java:326) >> >>> >> >>> at >>> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:5 >>> 42) >> >>> >> >>> at >>> org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpC >>> onnection.java:928) >> >>> >> >>> at >>> org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549) >> >>> >> >>> at >>> org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) >> >>> >> >>> at >>> org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) >> >>> >> >>> at >>> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.j >>> ava:410) >> >>> >> >>> at >>> org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool. >>> java:582) >> >>> >> >>> 27 Nov, 2012 11:17:00 AM com.cloud.bridge.service.EC2RestServlet >>> doGetOrPost >> >>> >> >>> SEVERE: Unexpected exception: null >> >>> >> >>> java.lang.NullPointerException >> >>> >> >>> at >>> com.cloud.bridge.service.EC2RestServlet.setCertificate(EC2RestServle >>> t.java:464) >> >>> >> >>> at >>> com.cloud.bridge.service.EC2RestServlet.doGetOrPost(EC2RestServlet.j >>> ava:271) >> >>> >> >>> at >>> com.cloud.bridge.service.EC2RestServlet.doGet(EC2RestServlet.java:20 >>> 0) >> >>> >> >>> at >>> javax.servlet.http.HttpServlet.service(HttpServlet.java:707) >> >>> >> >>> at >>> javax.servlet.http.HttpServlet.service(HttpServlet.java:820) >> >>> >> >>> at >>> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:51 >>> 1) >> >>> >> >>> at >>> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java: >>> 401) >> >>> >> >>> at >>> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.ja >>> va:216) >> >>> >> >>> at >>> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java: >>> 182) >> >>> >> >>> at >>> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java: >>> 766) >> >>> >> >>> at >>> org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450 >>> ) >> >>> >> >>> at >>> org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:327) >> >>> >> >>> at >>> org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126) >> >>> >> >>> at >>> com.cloud.bridge.service.EC2MainServlet.doGetOrPost(EC2MainServlet.j >>> ava:93) >> >>> >> >>> at >>> com.cloud.bridge.service.EC2MainServlet.doGet(EC2MainServlet.java:73 >>> ) >> >>> >> >>> at >>> javax.servlet.http.HttpServlet.service(HttpServlet.java:707) >> >>> >> >>> at >>> javax.servlet.http.HttpServlet.service(HttpServlet.java:820) >> >>> >> >>> at >>> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:51 >>> 1) >> >>> >> >>> at >>> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java: >>> 401) >> >>> >> >>> at >>> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.ja >>> va:216) >> >>> >> >>> at >>> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java: >>> 182) >> >>> >> >>> at >>> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java: >>> 766) >> >>> >> >>> at >>> org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450 >>> ) >> >>> >> >>> at >>> org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:327) >> >>> >> >>> at >>> org.mortbay.jetty.servlet.Dispatcher.error(Dispatcher.java:135) >> >>> >> >>> at >>> org.mortbay.jetty.servlet.ErrorPageErrorHandler.handle(ErrorPageErro >>> rHandler.java:129) >> >>> >> >>> at >>> org.mortbay.jetty.Response.sendError(Response.java:274) >> >>> >> >>> at >>> com.cloud.bridge.service.EC2RestServlet.setCertificate(EC2RestServle >>> t.java:462) >> >>> >> >>> at >>> com.cloud.bridge.service.EC2RestServlet.doGetOrPost(EC2RestServlet.j >>> ava:271) >> >>> >> >>> at >>> com.cloud.bridge.service.EC2RestServlet.doGet(EC2RestServlet.java:20 >>> 0) >> >>> >> >>> at >>> javax.servlet.http.HttpServlet.service(HttpServlet.java:707) >> >>> >> >>> at >>> javax.servlet.http.HttpServlet.service(HttpServlet.java:820) >> >>> >> >>> at >>> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:51 >>> 1) >> >>> >> >>> at >>> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java: >>> 401) >> >>> >> >>> at >>> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.ja >>> va:216) >> >>> >> >>> at >>> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java: >>> 182) >> >>> >> >>> at >>> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java: >>> 766) >> >>> >> >>> at >>> org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450 >>> ) >> >>> >> >>> at >>> org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:327) >> >>> >> >>> at >>> org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126) >> >>> >> >>> at >>> com.cloud.bridge.service.EC2MainServlet.doGetOrPost(EC2MainServlet.j >>> ava:93) >> >>> >> >>> at >>> com.cloud.bridge.service.EC2MainServlet.doGet(EC2MainServlet.java:73 >>> ) >> >>> >> >>> at >>> javax.servlet.http.HttpServlet.service(HttpServlet.java:707) >> >>> >> >>> at >>> javax.servlet.http.HttpServlet.service(HttpServlet.java:820) >> >>> >> >>> at >>> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:51 >>> 1) >> >>> >> >>> at >>> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java: >>> 401) >> >>> >> >>> at >>> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.ja >>> va:216) >> >>> >> >>> at >>> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java: >>> 182) >> >>> >> >>> at >>> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java: >>> 766) >> >>> >> >>> at >>> org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450 >>> ) >> >>> >> >>> at >>> org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHan >>> dlerCollection.java:230) >> >>> >> >>> at >>> org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection >>> .java:114) >> >>> >> >>> at >>> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java: >>> 152) >> >>> >> >>> at org.mortbay.jetty.Server.handle(Server.java:326) >> >>> >> >>> at >>> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:5 >>> 42) >> >>> >> >>> at >>> org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpC >>> onnection.java:928) >> >>> >> >>> at >>> org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549) >> >>> >> >>> at >>> org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) >> >>> >> >>> at >>> org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) >> >>> >> >>> at >>> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.j >>> ava:410) >> >>> >> >>> at >>> org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool. >>> java:582) >> >>> >> >>> >> >>> >> >>> I tried Query APIs (as it doesn't require registration to map the >>> certificate against the user keys). And the calls are successfully executed. >> >>> >> >>> >> >>> >> >>> Thank you, >> >>> >> >>> Likitha >> >>> >> >>> >> >>> >> >>> -----Original Message----- >> >>> From: Sebastien Goasguen [mailto:run...@gmail.com] >> >>> Sent: Tuesday, November 27, 2012 3:27 AM >> >>> To: cloudstack-dev@incubator.apache.org >> >>> Subject: Re: awsapi with new maven build >> >>> >> >>> >> >>> >> >>> Prachi, do you have this working when running the EC2 app with maven ? >> >>> >> >>> >> >>> >> >>> mvn -pl :cloud-awsapi jetty:run >> >>> >> >>> >> >>> >> >>> -Sebastien >> >>> >> >>> >> >>> >> >>> On Nov 26, 2012, at 8:02 PM, Prachi Damle >>> <prachi.da...@citrix.com<mailto:prachi.da...@citrix.com<mailto:prachi.da...@citrix.com%3cmailto:prachi.da...@citrix.com>>> >>> wrote: >> >>> >> >>> >> >>> >> >>>> Hi Likitha, >> >>> >> >>>> >> >>> >> >>>> Check if the version set in the registration script matches the >>>> WSDL version of the deployment (in ec2-service.properties) >> >>> >> >>>> >> >>> >> >>>> -Prachi >> >>> >> >>>> >> >>> >> >>>> -----Original Message----- >> >>> >> >>>> From: Likitha Shetty [mailto:likitha.she...@citrix.com] >> >>> >> >>>> Sent: Monday, November 26, 2012 12:18 AM >> >>> >> >>>> To: >>>> cloudstack-dev@incubator.apache.org<mailto:cloudstack-dev@incubator >>>> .apache.org>; >>>> srivatsav.prasa...@gmail.com<mailto:srivatsav.prasa...@gmail.com> >> >>> >> >>>> Subject: RE: awsapi with new maven build >> >>> >> >>>> >> >>> >> >>>> I got the same 401 error while trying to register a user against AWSAPI. >>>> Once I added 'db.awsapi.name=cloudbridge' to utils/conf/db.properties this >>>> issue was resolved. >> >>> >> >>>> >> >>> >> >>>> >> >>> >> >>>> >> >>> >> >>>> But now I am facing a new issue. When I try to register a user I get the >>>> following error, 'User registration failed with http error code: 531'. >> >>> >> >>>> >> >>> >> >>>> In 'cloudbridge' DB the table 'usercredentials' contains the right values >>>> for 'AccessKey' and 'SecretKey' (user keys are set correctly) but the >>>> CertUniqueId value is NULL. >> >>> >> >>>> >> >>> >> >>>> awapi.log is empty and Jetty logs doesn't show any error either. >> >>> >> >>>> >> >>> >> >>>> >> >>> >> >>>> >> >>> >> >>>> Any suggestions on how to resolve this ? >> >>> >> >>>> >> >>> >> >>>> >> >>> >> >>>> >> >>> >> >>>> Thank you, >> >>> >> >>>> >> >>> >> >>>> Likitha >> >>> >> >>>> >> >>> >> >>>> >> >>> >> >>>> >> >>> >> >>>> -----Original Message----- >> >>> >> >>>> From: Sebastien Goasguen [mailto:run...@gmail.com] >> >>> >> >>>> Sent: Wednesday, November 14, 2012 9:54 PM >> >>> >> >>>> To: >>>> cloudstack-dev@incubator.apache.org<mailto:cloudstack-dev@incubator >>>> .apache.org>; >>>> srivatsav.prasa...@gmail.com<mailto:srivatsav.prasa...@gmail.com> >> >>> >> >>>> Subject: Re: awsapi with new maven build >> >>> >> >>>> >> >>> >> >>>> >> >>> >> >>>> >> >>> >> >>>> >> >>> >> >>>> >> >>> >> >>>> On Nov 14, 2012, at 4:44 PM, Prasanna Santhanam >>>> <srivatsav.prasa...@gmail.com<mailto:srivatsav.prasa...@gmail.com<mailto:srivatsav.prasa...@gmail.com%3cmailto:srivatsav.prasa...@gmail.com<mailto:srivatsav.prasa...@gmail.com%3cmailto:srivatsav.prasa...@gmail.com%3cmailto:srivatsav.prasa...@gmail.com%3cmailto:srivatsav.prasa...@gmail.com>>>> >>>> wrote: >> >>> >> >>>> >> >>> >> >>>> >> >>> >> >>>> >> >>> >> >>>>> Is cloud-management process already running? Try stop that? >> >>> >> >>>> >> >>> >> >>>>> >> >>> >> >>>> >> >>> >> >>>> >> >>> >> >>>> >> >>> >> >>>> I am only running: >> >>> >> >>>> >> >>> >> >>>> mvn -pl :cloud-client-ui jetty:run >> >>> >> >>>> >> >>> >> >>>> and >> >>> >> >>>> >> >>> >> >>>> mvn -pl :cloud-awsapi jetty:run >> >>> >> >>>> >> >>> >> >>>> >> >>> >> >>>> >> >>> >> >>>> >> >>> >> >>>> >> >>> >> >>>>> >> >>> >> >>>> >> >>> >> >>>>> ~P. >> >>> >> >>>> >> >>> >> >>>>> >> >>> >> >>>> >> >>> >> >>>>> -----Original Message----- >> >>> >> >>>> >> >>> >> >>>>> From: Sebastien Goasguen <run...@gmail.com> >> >>> >> >>>> >> >>> >> >>>>> Date: Wed, 14 Nov 2012 16:31:36 >> >>> >> >>>> >> >>> >> >>>>> To: >>>>> <cloudstack-dev@incubator.apache.org<mailto:cloudstack-dev@incubat >>>>> or.apache.org<mailto:cloudstack-dev@incubator.apache.org%3cmailto: >>>>> cloudstack-dev@incubator.apache.org>>> >> >>> >> >>>> >> >>> >> >>>>> Reply-To: >>>>> cloudstack-dev@incubator.apache.org<mailto:cloudstack-dev@incubato >>>>> r.apache.org<mailto:cloudstack-dev@incubator.apache.org%3cmailto:c >>>>> loudstack-...@incubator.apache.org>> >> >>> >> >>>> >> >>> >> >>>>> Subject: Re: awsapi with new maven build >> >>> >> >>>> >> >>> >> >>>>> >> >>> >> >>>> >> >>> >> >>>>> >> >>> >> >>>> >> >>> >> >>>>> On Nov 14, 2012, at 4:09 PM, Charles Moulliard >>>>> <ch0...@gmail.com<mailto:ch0...@gmail.com<mailto:ch0...@gmail.com%3cmailto:ch0...@gmail.com<mailto:ch0...@gmail.com%3cmailto:ch0...@gmail.com%3cmailto:ch0...@gmail.com%3cmailto:ch0...@gmail.com>>>> >>>>> wrote: >> >>> >> >>>> >> >>> >> >>>>> >> >>> >> >>>> >> >>> >> >>>>>> Hi Sebastien, >> >>> >> >>>> >> >>> >> >>>>>> >> >>> >> >>>> >> >>> >> >>>>>> You should create a cloud schema + cloud user on your Mac's >> >>> >> >>>> >> >>> >> >>>>>> MySQLServer >> >>> >> >>>> >> >>> >> >>>>>> >> >>> >> >>>> >> >>> >> >>>>> >> >>> >> >>>> >> >>> >> >>>>> I do have that. a cloud mysql user with cloud as password. >> >>> >> >>>> >> >>> >> >>>>> cloud, cloud_usage, cloudbridge databases have been created. >> >>> >> >>>> >> >>> >> >>>>> >> >>> >> >>>> >> >>> >> >>>>> >> >>> >> >>>> >> >>> >> >>>>>> Regards, >> >>> >> >>>> >> >>> >> >>>>>> >> >>> >> >>>> >> >>> >> >>>>>> Charles >> >>> >> >>>> >> >>> >> >>>>>> >> >>> >> >>>> >> >>> >> >>>>>> >> >>> >> >>>> >> >>> >> >>>>>> On Wed, Nov 14, 2012 at 4:04 PM, Sebastien Goasguen >>>>>> <run...@gmail.com<mailto:run...@gmail.com<mailto:run...@gmail.com%3cmailto:run...@gmail.com<mailto:run...@gmail.com%3cmailto:run...@gmail.com%3cmailto:run...@gmail.com%3cmailto:run...@gmail.com>>>>wrote: >> >>> >> >>>> >> >>> >> >>>>>> >> >>> >> >>>> >> >>> >> >>>>>>> Hi, >> >>> >> >>>> >> >>> >> >>>>>>> >> >>> >> >>>> >> >>> >> >>>>>>> I am testing the awsapi with the new maven build. >> >>> >> >>>> >> >>> >> >>>>>>> Following: >> >>> >> >>>> >> >>> >> >>>>>>> https://cwiki.apache.org/CLOUDSTACK/cloudstack-devcloud-environm >>>>>>> ent- >> >>> >> >>>> >> >>> >> >>>>>>> setup.html >> >>> >> >>>> >> >>> >> >>>>>>> >> >>> >> >>>> >> >>> >> >>>>>>> I run: >> >>> >> >>>> >> >>> >> >>>>>>> mvn -pl :cloud-client-ui jetty:run >> >>> >> >>>> >> >>> >> >>>>>>> and >> >>> >> >>>> >> >>> >> >>>>>>> mvn -pl :cloud-awsapi jetty:run >> >>> >> >>>> >> >>> >> >>>>>>> >> >>> >> >>>> >> >>> >> >>>>>>> when I try to register a user it fails with a 401 error, and the >> >>> >> >>>> >> >>> >> >>>>>>> jetty logs show: >> >>> >> >>>> >> >>> >> >>>>>>> >> >>> >> >>>> >> >>> >> >>>>>>> Caused by: >> >>> >> >>>> >> >>> >> >>>>>>> com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionExcep >>>>>>> tion >> >>> >> >>>> >> >>> >> >>>>>>> : Could not create connection to database server. Attempted reconnect 3 >>>>>>> times. >> >>> >> >>>> >> >>> >> >>>>>>> Giving up. >> >>> >> >>>> >> >>> >> >>>>>>> at >> >>> >> >>>> >> >>> >> >>>>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native >> >>> >> >>>> >> >>> >> >>>>>>> Method) >> >>> >> >>>> >> >>> >> >>>>>>> at >> >>> >> >>>> >> >>> >> >>>>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeCons >>>>>>> tructorAccessorImpl.java:39) >> >>> >> >>>> >> >>> >> >>>>>>> at >> >>> >> >>>> >> >>> >> >>>>>>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Delega >>>>>>> tingConstructorAccessorImpl.java:27) >> >>> >> >>>> >> >>> >> >>>>>>> at >>>>>>> java.lang.reflect.Constructor.newInstance(Constructor.java:513) >> >>> >> >>>> >> >>> >> >>>>>>> at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) >> >>> >> >>>> >> >>> >> >>>>>>> at com.mysql.jdbc.Util.getInstance(Util.java:386) >> >>> >> >>>> >> >>> >> >>>>>>> at >>>>>>> com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1014) >> >>> >> >>>> >> >>> >> >>>>>>> at >>>>>>> com.mysql.jdbc.SQLError.createSQLException(SQLError.java:988) >> >>> >> >>>> >> >>> >> >>>>>>> at >>>>>>> com.mysql.jdbc.SQLError.createSQLException(SQLError.java:974) >> >>> >> >>>> >> >>> >> >>>>>>> at >>>>>>> com.mysql.jdbc.SQLError.createSQLException(SQLError.java:919) >> >>> >> >>>> >> >>> >> >>>>>>> at >> >>> >> >>>> >> >>> >> >>>>>>> com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl. >>>>>>> java:2299) >> >>> >> >>>> >> >>> >> >>>>>>> at >> >>> >> >>>> >> >>> >> >>>>>>> com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:22 >>>>>>> 20) >> >>> >> >>>> >> >>> >> >>>>>>> at >>>>>>> com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:813) >> >>> >> >>>> >> >>> >> >>>>>>> at >>>>>>> com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47) >> >>> >> >>>> >> >>> >> >>>>>>> at >> >>> >> >>>> >> >>> >> >>>>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native >> >>> >> >>>> >> >>> >> >>>>>>> Method) >> >>> >> >>>> >> >>> >> >>>>>>> at >> >>> >> >>>> >> >>> >> >>>>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeCons >>>>>>> tructorAccessorImpl.java:39) >> >>> >> >>>> >> >>> >> >>>>>>> at >> >>> >> >>>> >> >>> >> >>>>>>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Delega >>>>>>> tingConstructorAccessorImpl.java:27) >> >>> >> >>>> >> >>> >> >>>>>>> at >>>>>>> java.lang.reflect.Constructor.newInstance(Constructor.java:513) >> >>> >> >>>> >> >>> >> >>>>>>> at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) >> >>> >> >>>> >> >>> >> >>>>>>> at >> >>> >> >>>> >> >>> >> >>>>>>> com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:39 >>>>>>> 9) >> >>> >> >>>> >> >>> >> >>>>>>> at >> >>> >> >>>> >> >>> >> >>>>>>> com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver >>>>>>> .java:334) >> >>> >> >>>> >> >>> >> >>>>>>> at >>>>>>> java.sql.DriverManager.getConnection(DriverManager.java:582) >> >>> >> >>>> >> >>> >> >>>>>>> at >>>>>>> java.sql.DriverManager.getConnection(DriverManager.java:185) >> >>> >> >>>> >> >>> >> >>>>>>> at >> >>> >> >>>> >> >>> >> >>>>>>> org.apache.commons.dbcp.DriverManagerConnectionFactory.createCon >>>>>>> nection(DriverManagerConnectionFactory.java:75) >> >>> >> >>>> >> >>> >> >>>>>>> at >> >>> >> >>>> >> >>> >> >>>>>>> org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(Poo >>>>>>> lableConnectionFactory.java:582) >> >>> >> >>>> >> >>> >> >>>>>>> at >> >>> >> >>>> >> >>> >> >>>>>>> org.apache.commons.pool.impl.GenericObjectPool.borrowObject(Gene >>>>>>> ricObjectPool.java:1188) >> >>> >> >>>> >> >>> >> >>>>>>> at >> >>> >> >>>> >> >>> >> >>>>>>> org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingD >>>>>>> ataSource.java:106) >> >>> >> >>>> >> >>> >> >>>>>>> at >> >>> >> >>>> >> >>> >> >>>>>>> com.cloud.utils.db.Transaction.getConnection(Transaction.java:55 >>>>>>> 8) >> >>> >> >>>> >> >>> >> >>>>>>> at >> >>> >> >>>> >> >>> >> >>>>>>> com.cloud.utils.db.Transaction.prepareStatement(Transaction.java >>>>>>> :453) >> >>> >> >>>> >> >>> >> >>>>>>> at >> >>> >> >>>> >> >>> >> >>>>>>> com.cloud.utils.db.Transaction.prepareAutoCloseStatement(Transac >>>>>>> tion.java:446) >> >>> >> >>>> >> >>> >> >>>>>>> at >> >>> >> >>>> >> >>> >> >>>>>>> com.cloud.utils.db.GenericDaoBase.searchIncludingRemoved(Generic >>>>>>> DaoBase.java:382) >> >>> >> >>>> >> >>> >> >>>>>>> ... 56 more >> >>> >> >>>> >> >>> >> >>>>>>> Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: >> >>> >> >>>> >> >>> >> >>>>>>> Access denied for user 'cloud'@'localhost' to database 'null' >> >>> >> >>>> >> >>> >> >>>>>>> at >> >>> >> >>>> >> >>> >> >>>>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native >> >>> >> >>>> >> >>> >> >>>>>>> Method) >> >>> >> >>>> >> >>> >> >>>>>>> at >> >>> >> >>>> >> >>> >> >>>>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeCons >>>>>>> tructorAccessorImpl.java:39) >> >>> >> >>>> >> >>> >> >>>>>>> at >> >>> >> >>>> >> >>> >> >>>>>>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Delega >>>>>>> tingConstructorAccessorImpl.java:27) >> >>> >> >>>> >> >>> >> >>>>>>> at >>>>>>> java.lang.reflect.Constructor.newInstance(Constructor.java:513) >> >>> >> >>>> >> >>> >> >>>>>>> at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) >> >>> >> >>>> >> >>> >> >>>>>>> at com.mysql.jdbc.Util.getInstance(Util.java:386) >> >>> >> >>>> >> >>> >> >>>>>>> at >>>>>>> com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1053) >> >>> >> >>>> >> >>> >> >>>>>>> at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4074) >> >>> >> >>>> >> >>> >> >>>>>>> at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4006) >> >>> >> >>>> >> >>> >> >>>>>>> at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:919) >> >>> >> >>>> >> >>> >> >>>>>>> at >> >>> >> >>>> >> >>> >> >>>>>>> com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthenticati >>>>>>> on(MysqlIO.java:1694) >> >>> >> >>>> >> >>> >> >>>>>>> at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1244) >> >>> >> >>>> >> >>> >> >>>>>>> at >> >>> >> >>>> >> >>> >> >>>>>>> com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:23 >>>>>>> 97) >> >>> >> >>>> >> >>> >> >>>>>>> at >> >>> >> >>>> >> >>> >> >>>>>>> com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl. >>>>>>> java >> >>> >> >>>> >> >>> >> >>>>>>> :2238) >> >>> >> >>>> >> >>> >> >>>>>>> >> >>> >> >>>> >> >>> >> >>>>>>> >> >>> >> >>>> >> >>> >> >>>>>>> Database was setup with: >> >>> >> >>>> >> >>> >> >>>>>>> mvn -P developer -pl developer,tools/devcloud -Ddeploydb >> >>> >> >>>> >> >>> >> >>>>>>> >> >>> >> >>>> >> >>> >> >>>>>>> Don't know if it's a bug or I am doing it wrong. Thoughts ? >> >>> >> >>>> >> >>> >> >>>>>>> >> >>> >> >>>> >> >>> >> >>>>>>> -Sebastien >> >>> >> >>>> >> >>> >> >>>>>>> >> >>> >> >>>> >> >>> >> >>>>>>> >> >>> >> >>>> >> >>> >> >>>>>> >> >>> >> >>>> >> >>> >> >>>>>> >> >>> >> >>>> >> >>> >> >>>>>> -- >> >>> >> >>>> >> >>> >> >>>>>> Charles Moulliard >> >>> >> >>>> >> >>> >> >>>>>> Apache Committer / Sr. Enterprise Architect (RedHat) Twitter : >> >>> >> >>>> >> >>> >> >>>>>> @cmoulliard | Blog : http://cmoulliard.blogspot.com >> >>> >> >>>> >> >>> >> >>>>> >> >>> >> >>>> >> >>> >> >>>> >> >>> >> >>> >> >> >