cloudstack-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sebastien Goasguen <run...@gmail.com>
Subject Re: AWS API setup
Date Tue, 20 Aug 2013 07:58:43 GMT

On Aug 19, 2013, at 11:26 PM, Carlos Reategui <carlos@reategui.com> wrote:

> No Prob.  I did not create a JIRA for this as I was not sure if I was doing
> things right.  Please note that I was upgrading from a 4.0.2 that did not
> have the AWS api installed.  Should I go ahead and create one for this?
> 

AWS is working in the 4.0.x releases. 
But yes please, file a bug for this.

> I did create a JIRA for the docs with some of the things I found attempting
> to install.
> 
> 
> On Mon, Aug 19, 2013 at 1:12 AM, Sebastien Goasguen <runseb@gmail.com>wrote:
> 
>> Carlos,
>> 
>> Thanks for reporting this, looks like the AWS interface is broken in 4.1.
>> 
>> I am trying to find the commits that fix this and make sure they are
>> applied for 4.1.2 and the upcoming 4.2.
>> I am copying Prachi and Likithia who should be able to help with this.
>> 
>> Cheers,
>> 
>> -Sebastien
>> 
>> On Aug 1, 2013, at 3:06 PM, Carlos Reategui <carlos@reategui.com> wrote:
>> 
>>> I've been tinkering
>>> with: /usr/share/cloudstack-bridge/webapps/awsapi/WEB-INF/web.xml and
>> added
>>> some servlet mappings (don't really know what I am doing):
>>> 
>>>    <servlet-mapping>
>>>       <servlet-name>EC2RestServlet</servlet-name>
>>>       <url-pattern>/services/AmazonEC2</url-pattern>
>>>    </servlet-mapping>
>>>    <servlet-mapping>
>>>       <servlet-name>EC2RestServlet</servlet-name>
>>>       <url-pattern>/services/AmazonEC2/*</url-pattern>
>>>    </servlet-mapping>
>>> 
>>> which gets me past the EPR issue, but it caused an error on the client
>> when
>>> attempting any of the ec2 commands (eg ec2-describe-instances).  Don't
>> know
>>> if these use rest on the backend so I also tried the following mapping:
>>> 
>>>    <servlet-mapping>
>>>       <servlet-name>EC2RestServlet</servlet-name>
>>>       <url-pattern>/services/AmazonEC2</url-pattern>
>>>    </servlet-mapping>
>>>    <servlet-mapping>
>>>       <servlet-name>EC2RestServlet</servlet-name>
>>>       <url-pattern>/services/AmazonEC2/*</url-pattern>
>>>    </servlet-mapping>
>>> 
>>> This causes a stack overflow in catalina so probably not the correct
>>> mapping....
>>> 
>>> I'll keep you posted if i figure anything else out...
>>> 
>>> 
>>> On Thu, Aug 1, 2013 at 6:35 AM, François Bousquet <
>>> Francois.Bousquet@radialpoint.com> wrote:
>>> 
>>>> Same bug here with CloudStack 4.1.0 RPM. I had to manually copy
>>>> xes.keystore for the registration to work but now I am getting the same
>>>> error as you:
>>>> 
>>>> The service cannot be found for the endpoint reference (EPR)
>>>> http://localhost:7080/awsapi/services/AmazonEC2/
>>>> 
>>>> I posted the question on Tuesday, but still no answer.
>>>> 
>>>> -----Original Message-----
>>>> From: creategui@gmail.com [mailto:creategui@gmail.com] On Behalf Of
>>>> Carlos Reategui
>>>> Sent: Wednesday, July 31, 2013 19:14
>>>> To: users@cloudstack.apache.org
>>>> Subject: Re: AWS API setup
>>>> 
>>>> No luck with the EC2 api.  I am seeing this in catalina log:
>>>> 
>>>> Jul 31, 2013 3:54:41 PM org.apache.axis2.engine.AxisEngine receive
>>>> SEVERE: The service cannot be found for the endpoint reference (EPR)
>>>> http://localhost:7080/awsapi/services/AmazonEC2/
>>>> org.apache.axis2.AxisFault: The service cannot be found for the endpoint
>>>> reference (EPR) http://localhost:7080/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.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:173)
>>>>       at
>>>> org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:144)
>>>>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
>>>>       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:436)
>>>>       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.doPost(EC2MainServlet.java:89)
>>>>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
>>>>       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.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>>>>       at
>>>> 
>>>> 
>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>>>>       at
>>>> 
>>>> 
>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>>>>       at
>>>> 
>>>> 
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>>>>       at
>>>> 
>> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:615)
>>>>       at
>>>> 
>>>> 
>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>>>>       at
>>>> 
>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
>>>>       at
>>>> 
>>>> 
>> org.apache.coyote.http11.Http11NioProcessor.process(Http11NioProcessor.java:889)
>>>>       at
>>>> 
>>>> 
>> org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:744)
>>>>       at
>>>> 
>>>> 
>> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:2282)
>>>>       at
>>>> 
>>>> 
>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
>>>>       at
>>>> 
>>>> 
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>>>>       at java.lang.Thread.run(Thread.java:679)
>>>> 
>>>> 
>>>> 
>>>> On Wed, Jul 31, 2013 at 2:22 PM, Carlos Reategui <carlos@reategui.com
>>>>> wrote:
>>>> 
>>>>> Looks like I'm on my own here....
>>>>> 
>>>>> I poked around the cloudstack-setup-databases script and the sql it
>>>>> uses drops the tables before recreating them so it is not safe for me
>>>>> to run that or it will kill my current cloud db.
>>>>> 
>>>>> In that script I did find references to the cloud-bridge sql files
>>>>> found
>>>>> here:
>>>>> # ls -l /usr/share/cloudstack-bridge/setup/
>>>>> total 56
>>>>> -rw-r--r-- 1 root root 1592 Jun  4 11:45 cloudbridge_bucketpolicy.sql
>>>>> -rw-r--r-- 1 root root 1148 Jun  4 11:45 cloudbridge_db.sql
>>>>> -rw-r--r-- 1 root root 3711 Jun  4 11:45 cloudbridge_index.sql
>>>>> -rw-r--r-- 1 root root 1170 Jun  4 11:45
>>>>> cloudbridge_multipart_alter.sql
>>>>> -rw-r--r-- 1 root root 2468 Jun  4 11:45 cloudbridge_multipart.sql
>>>>> -rw-r--r-- 1 root root  896 Jun  4 11:45
>>>>> cloudbridge_offering_alter.sql
>>>>> -rw-r--r-- 1 root root 1551 Jun  4 11:45 cloudbridge_offering.sql
>>>>> -rw-r--r-- 1 root root  897 Jun  4 11:45 cloudbridge_policy_alter.sql
>>>>> -rw-r--r-- 1 root root 4462 Jun  4 11:45 cloudbridge_schema.sql
>>>>> -rw-r--r-- 1 root root 2365 Jun  4 11:45 deploy-db-bridge.sh
>>>>> -rw-r--r-- 1 root root 1377 Jun  4 11:45 init_db.bat
>>>>> 
>>>>> I noticed the deploy-db-bridge.sh, so I ran it and now I have a
>>>>> cloudbridge db.
>>>>> 
>>>>> Please note that this will set the cloud db user pw to cloud, so if
>>>>> you used a different pw make sure to:
>>>>> mysql> set password for 'cloud'@'%' = password('mypw'); set password
>>>>> mysql> for 'cloud'@'localhost' = password('mypw');
>>>>> or your management server will not start.
>>>>> 
>>>>> I then ran into this bug:
>>>>> https://issues.apache.org/jira/browse/CLOUDSTACK-3295
>>>>> but I am on 4.1 not 4.2.
>>>>> 
>>>>> Searching for "xes.keystore" I I found this in the debian install
>> rules:
>>>>> 
>>>>> for i in cloud-bridge.properties commons-logging.properties
>>>>> crypto.properties xes.keystore ec2-service.properties; do \
>>>>> 
>>>>> mv $(DESTDIR)/usr/share/$(PACKAGE)
>>>>> -bridge/webapps/awsapi/WEB-INF/classes/$$i $(DESTDIR)/$(SYSCONFDIR)/$(
>>>>> PACKAGE)/management/; \.
>>>>> 
>>>>> Which is moving the files to /etc/cloudstack/management.  So I moved
>>>>> these
>>>>> 2 back:
>>>>> # mv /etc/cloudstack/management/xes.keystore
>>>>> /usr/share/cloudstack-management/webapps7080/awsapi/WEB-INF/classes/.
>>>>> # mv /etc/cloudstack/management/crypto.properties
>>>>> /usr/share/cloudstack-management/webapps7080/awsapi/WEB-INF/classes/.
>>>>> 
>>>>> Is this a bug in the debian packager?
>>>>> 
>>>>> Now when I run the cloudstack-aws-api-register script I get:
>>>>> User registration failed with http error code: 401
>>>>> 
>>>>> The awsapi.log shows:
>>>>> 2013-07-31 12:16:11,245 ERROR [bridge.service.EC2RestServlet]
>>>>> (catalina-exec-int-1:null) SetUserKeys Entity already exists:
>>>>> javax.persistence.EntityExistsException: Entity already exists:
>>>>>       at
>>>>> com.cloud.utils.db.GenericDaoBase.persist(GenericDaoBase.java:1340)
>>>>>       at
>>>>> 
>>>> 
>> com.cloud.utils.component.ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept(ComponentInstantiationPostProcessor.java:125)
>>>>>       at
>>>>> 
>>>> 
>> com.cloud.bridge.service.EC2RestServlet.setUserKeys(EC2RestServlet.java:395)
>>>>>       at
>>>>> 
>>>> 
>> com.cloud.bridge.service.EC2RestServlet.doGetOrPost(EC2RestServlet.java:243)
>>>>>       at
>>>>> com.cloud.bridge.service.EC2RestServlet.doGet(EC2RestServlet.java:218)
>>>>>       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:436)
>>>>>       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:105)
>>>>>       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.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>>>>>       at
>>>>> 
>>>> 
>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>>>>>       at
>>>>> 
>>>> 
>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>>>>>       at
>>>>> 
>>>> 
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>>>>>       at
>>>>> 
>> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:615)
>>>>>       at
>>>>> 
>>>> 
>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>>>>>       at
>>>>> 
>>>> 
>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
>>>>>       at
>>>>> 
>>>> 
>> org.apache.coyote.http11.Http11NioProcessor.process(Http11NioProcessor.java:889)
>>>>>       at
>>>>> 
>>>> 
>> org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:744)
>>>>>       at
>>>>> 
>>>> 
>> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:2282)
>>>>>       at
>>>>> 
>>>> 
>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
>>>>>       at
>>>>> 
>>>> 
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>>>>>       at java.lang.Thread.run(Thread.java:679)
>>>>> 
>>>>> So looks like one of the previous attempts even though they failed,
>>>>> did something.
>>>>> 
>>>>> I'll give the ec2 apis a try and see if they work.
>>>>> 
>>>>> 
>>>>> On Fri, Jul 26, 2013 at 5:39 PM, Carlos Reategui <carlos@reategui.com
>>>>> wrote:
>>>>> 
>>>>>> I can't seem to find docs to properly install the AWS API.
>>>>>> 
>>>>>> I started with this:
>>>>>> http://cloudstack.apache.org/docs/en-US/Apache_CloudStack/4.1.0/html/
>>>>>> Installation_Guide/aws-ec2-user-setup.html
>>>>>> but got nowhere because port 7080 was not available.
>>>>>> 
>>>>>> I am on ubuntu 12.04 installed from repo -- actually upgraded 4.01
to
>>>>>> 4.1
>>>>>> -- did not have awsapi installed before.
>>>>>> 
>>>>>> Here is the progress I have made so far:
>>>>>> a) apt-get install cloudstack-awsapi
>>>>>> This should probably be explained in the above docs to get the awsapi
>>>>>> on
>>>>>> 7080
>>>>>> b) chgrp cloud /var/log/cloudstack/awsapi; chmod g+w
>>>>>> /var/log/cloudstack/awsapi Otherwise it was unable to create
>>>>>> awsapi.log.  Seems to be an installation bug.
>>>>>> 
>>>>>> Currently stuck trying to "cloudstack-aws-api-register" as it is
>>>>>> returning "User registration failed with http error code: 500"
>>>>>> 
>>>>>> From the awsapi logs looks to be a problem with cloudbridge database
>>>>>> not available.  I found this
>>>>>> https://issues.apache.org/jira/browse/CLOUDSTACK-1557 which seems
to
>>>>>> imply this was fixed.  In the notes it talks about running
>>>>>> cloudstack-setup-databases to create this one.  However shouldn't
>>>>>> this have already been run as part of the cloudstack install?  Is
it
>>>>>> safe to run again?
>>>>>> 
>>>>>> With regards to cloudstack-aws-api-register, the docs say to download
>>>>>> it from a location it specifies.  There appears to be one that is
>>>>>> already installed by cloudstack-awsapi:
>>>>>> # dpkg -S /usr/bin/cloudstack-aws-api-register
>>>>>> cloudstack-awsapi: /usr/bin/cloudstack-aws-api-register
>>>>>> Is the one that is installed no good?
>>>>>> 
>>>>>> thanks,
>>>>>> Carlos
>>>>>> 
>>>>>> 
>>>>>> 
>>>>> 
>>>> ***********************************************************************
>>>> This e-mail and attachments are confidential, legally privileged, may be
>>>> subject to copyright and sent solely for the attention of the
>> addressee(s).
>>>> Any unauthorized use or disclosure is prohibited. Statements and
>> opinions
>>>> expressed in this e-mail may not represent those of Radialpoint.
>>>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Le contenu du présent
>>>> courriel est confidentiel, privilégié et peut être soumis à des droits
>>>> d'auteur. Il est envoyé à l'intention exclusive de son ou de ses
>>>> destinataires. Il est interdit de l'utiliser ou de le divulguer sans
>>>> autorisation. Les opinions exprimées dans le présent courriel peuvent
>>>> diverger de celles de Radialpoint.
>>>> 
>> 
>> 


Mime
View raw message