Description of problem:
When running tempest on an ospd installation, the boto section is missing. At first, due to it was missing, it was trying to connect localhost, which led to connecting refused. As the tempest-config script is disconvering the services, this lead to the following investigation:
Controller 0
============
[heat-admin@overcloud-controller-0 ~]$ sudo egrep -r '(ec2|s3)_listen' /etc/nova
/etc/nova/nova.conf:#s3_listen=0.0.0.0
/etc/nova/nova.conf:#s3_listen_port=3333
/etc/nova/nova.conf:#ec2_listen=0.0.0.0
/etc/nova/nova.conf:ec2_listen=10.19.94.14
/etc/nova/nova.conf:#ec2_listen_port=8773
/etc/nova/nova.conf:ec2_listen_port=8773
[heat-admin@overcloud-controller-0 ~]$ sudo netstat -ntlp |egrep '(3333|8773)'
tcp 0 0 10.19.94.11:8773 0.0.0.0:* LISTEN 29279/haproxy
tcp 0 0 10.19.184.180:8773 0.0.0.0:* LISTEN 29279/haproxy
When using the VIP for the HAProxy, the response is empty:
(py27)[stack@undercloud tempest]$ curl http://10.19.184.180:8773/services/Cloud
curl: (52) Empty reply from server
Version-Release number of selected component (if applicable):
How reproducible:
Add the proper boto section to the tempest.conf file
[boto]
ec2_url = http://10.19.184.180:8773/services/Cloud
s3_url = http://10.19.184.180:3333
Launch any ec2 tests
File "/home/stack/tempest/.tox/py27/lib/python2.7/site-packages/httplib2/__init__.py", line 1307, in _conn_request
response = conn.getresponse()
File "/usr/lib64/python2.7/httplib.py", line 1051, in getresponse
response.begin()
File "/usr/lib64/python2.7/httplib.py", line 415, in begin
version, status, reason = self._read_status()
File "/usr/lib64/python2.7/httplib.py", line 379, in _read_status
raise BadStatusLine(line)
httplib.BadStatusLine: ''
Actual results:
Empty response
Expected results:
To get a valid response
Additional info:
AFAIK S3 support in EC2-API was always experimental and not meant for production use.
See for example here: https://review.openstack.org/#/c/354732/
So, does this problem exist independently of S3?