Hi Michael, I haven't worked with S3 API, I have woked on EC2 only. But if you are facing any errors, I suggest to take a look at following log files under your installation: awsapi.log / catalina.out
These files should show more information about why your requests fail. Prachi -----Original Message----- From: Michael Lukzak [mailto:mis...@vp.pl] Sent: Monday, July 08, 2013 11:53 AM To: Sebastien Goasguen Cc: users@cloudstack.apache.org; Prachi Damle Subject: Re: CS4.1 S3 AWS, problem with End Point Reference Hi! I do some steps. I installed a fresh OS and CS v4.0.2 (from RPS). After configurations (amazon ec2 and s3 are enabled, cloud-bridge configured, etc.) S3 works. When I go to adress http://[ip]:7080/awsapi/rest/AmazonS3 I got response "Bad request" which is good answer ;) Boto works, and I can make bucket, read and write file. When I do the same steps but I use v4.1 there is a problem with endpoint. So it seems that there is only problem with v4.1. BTW anyone has a good expierence with S3 Broswer or other similiar software? I tried use this S3 Broswer but I stuck on some error. S3 Broswer don't want to talk with custom endpoint if he looks like http://[ip]:7080/awsapi/rest/AmazonS3 So I proxied it to http://[ip] and S3 Broswer start communicating. Now I have problem with cert keys, but there is a progress :) I write some news if I go further. -- Michael > Prachi, I am copying you on this thread, you might have some ideas. > thanks, > -sebastien > On Jun 28, 2013, at 8:11 PM, Michael Lukzak <mis...@vp.pl> wrote: >> I do fresh install (I used RPMs from website). >> EC2 and S3 are enabled (I turned off and turned on). >> EC2 works, but S3 not. >> Reponse from boto: >> boto.exception.BotoServerError: BotoServerError: 500 Internal Server >> Error <soapenv:Reason >> xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"><soapenv:Text >> xml:lang="en-US">The service cannot be found for the endpoint >> reference (EPR) >> /awsapi/services/AmazonEC2/?max-keys=0</soapenv:Text></soapenv:Reason >> > >> So I don't know next I should do... >> I should try too change hosts or serviceEndpoint in cloud-bridge.properties? >> But what serviceEndPoint should be? >> I tried to use endpoint like /awsapi/rest/AmazonS3 but still the same. >> Can someone reproduce this steps and check if S3 works ? >> Best regards, >> Michael >>> Yes, I tested using boto. >>> I run two examples from doc >>> https://cloudstack.apache.org/docs/en-US/Apache_CloudStack/4.1.0/htm >>> l/Installation_Guide/aws-api-examples.html >>> EC2 test script works ok, without error. >>> But in S3 I get a error, logs shows >>> cze 28, 2013 11:08:44 PM org.apache.axis2.engine.AxisEngine receive >>> SEVERE: The service cannot be found for the endpoint reference (EPR) >>> /awsapi/services/AmazonEC2/ >>> org.apache.axis2.AxisFault: The service cannot be found for the >>> endpoint reference (EPR) /awsapi/services/AmazonEC2/ >>> I tried to use other path like as You say, but error is still the same. >>> host=http://localhost:7080/awsapi/rest/AmazonS3 >>> storage.root=/mnt/S3 >>> storage.multipartDir=__multipart__uploads__ >>> bucket.dns=false >>> serviceEndpoint=localhost:7080 >>> I read this doc too, (this is for older version of CS) and still no luck. >>> https://cwiki.apache.org/CLOUDSTACK/s3-api-in-cloudstack.html >>> Any other ideas? >>> BTW, my CS4.1 was build from source with nonOSS. >>> Michael >>>> On Jun 28, 2013, at 3:01 PM, Michael Lukzak <mis...@vp.pl> wrote: >>>>> Maybe someone have idea why S3 fails with error EPR? >>>>> On documentation there is nothing about EPR. >>>>> I'm doing exactly like documentations says. Any clue? >>>> How do you test the service ? boto ? >>>> in your properties file it looks like the host is >>>> localhost:7080/awsapi >>>> but you tried to get awsapi/rest/AmazonS3 >>>> I think you need to fix the properties file. >>>> can you try, >>>> -sebastien >>>>> Best regards, >>>>> Michael >>>>>> Hi, >>>>>> I have tried to configure Amazon S3 in CS4.1 but I have a problem >>>>>> with one error. API AmazonEC2 works (tested), but S3 not. >>>>>> My steps >>>>>> 1) I enabled S3 API (from UI) >>>>>> 2) mkdir -p /mnt/S3 and owned to cloud.cloud >>>>>> 3) In cloud-bridge.properties I set storage.root to /mnt/S3 >>>>>> Now looks that: >>>>>> host=http://localhost:7080/awsapi >>>>>> storage.root=/mnt/S3 >>>>>> storage.multipartDir=__multipart__uploads__ >>>>>> bucket.dns=false >>>>>> serviceEndpoint=localhost:7080 >>>>>> 4) CS was restarted >>>>>> 5) I generated new api key and secret key for user >>>>>> 6) New private key and self-signet cert was generated and saved >>>>>> 7) Using cloudstack-aws-api-register I registered user, all ok >>>>>> And now I have a problem. >>>>>> When I try to open a link >>>>>> http://[MY_IP]:7080/awsapi/rest/AmazonS3/ >>>>>> I will get error >>>>>> <soapenv:Reason >>>>>> xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"> >>>>>> <soapenv:Text xml:lang="en-US"> >>>>>> The service cannot be found for the endpoint >>>>>> reference (EPR) /awsapi/services/AmazonEC2/ </soapenv:Text> >>>>>> </soapenv:Reason> >>>>>> I can't find what is wrong. >>>>>> In catalina.out I found only this czw 26, 2013 8:26:17 PM >>>>>> org.apache.axis2.engine.AxisEngine receive >>>>>> SEVERE: The service cannot be found for the endpoint reference >>>>>> (EPR) /awsapi/services/AmazonEC2/ >>>>>> org.apache.axis2.AxisFault: The service cannot be found for the >>>>>> endpoint reference (EPR) /awsapi/services/AmazonEC2/ >>>>>> at >>>>>> org.apache.axis2.engine.DispatchPhase.checkPostConditions(DispatchPhase.java:65) >>>>>> at org.apache.axis2.engine.Phase.invoke(Phase.java:334) >>>>>> at >>>>>> org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:254) >>>>>> at >>>>>> org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:160) >>>>>> at >>>>>> org.apache.axis2.transport.http.util.RESTUtil.invokeAxisEngine(RESTUtil.java:135) >>>>>> at >>>>>> org.apache.axis2.transport.http.util.RESTUtil.processURLRequest(RESTUtil.java:130) >>>>>> at >>>>>> org.apache.axis2.transport.http.AxisServlet$RestRequestProcessor.processURLRequest(AxisServlet.java:825) >>>>>> at >>>>>> org.apache.axis2.transport.http.AxisServlet.doGet(AxisServlet.java:271) >>>>>> at >>>>>> javax.servlet.http.HttpServlet.service(HttpServlet.java:617) >>>>>> at >>>>>> javax.servlet.http.HttpServlet.service(HttpServlet.java:717) >>>>>> at >>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) >>>>>> at >>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) >>>>>> at >>>>>> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646) >>>>>> at >>>>>> org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:438) >>>>>> at >>>>>> org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374) >>>>>> at >>>>>> org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302) >>>>>> at >>>>>> com.cloud.bridge.service.EC2MainServlet.doGetOrPost(EC2MainServlet.java:114) >>>>>> at >>>>>> com.cloud.bridge.service.EC2MainServlet.doGet(EC2MainServlet.java:84) >>>>>> at >>>>>> javax.servlet.http.HttpServlet.service(HttpServlet.java:617) >>>>>> at >>>>>> javax.servlet.http.HttpServlet.service(HttpServlet.java:717) >>>>>> at >>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) >>>>>> at >>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) >>>>>> at >>>>>> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646) >>>>>> at >>>>>> org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:438) >>>>>> at >>>>>> org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374) >>>>>> at >>>>>> org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302) >>>>>> at >>>>>> org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:415) >>>>>> at >>>>>> org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:342) >>>>>> at >>>>>> org.apache.catalina.core.StandardHostValve.throwable(StandardHostValve.java:286) >>>>>> at >>>>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141) >>>>>> at >>>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) >>>>>> at >>>>>> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:555) >>>>>> at >>>>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) >>>>>> at >>>>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) >>>>>> at >>>>>> org.apache.coyote.http11.Http11NioProcessor.process(Http11NioProcessor.java:889) >>>>>> at >>>>>> org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:721) >>>>>> at >>>>>> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:2274) >>>>>> at >>>>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) >>>>>> at >>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) >>>>>> at java.lang.Thread.run(Thread.java:722)