publicURL endpoint for s3 service not found
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Fuel for OpenStack |
Invalid
|
High
|
Fuel Library (Deprecated) | ||
6.1.x |
Invalid
|
High
|
Alexey Stupnikov | ||
7.0.x |
Invalid
|
High
|
Fuel Library (Deprecated) |
Bug Description
Env: 1 controller+Ceph, 1 compute+Ceph. Enabled Ceph RBD+RadosGW.
When running:
root@node-1:~# keystone endpoint-get --service 's3'
got the following result:
publicURL endpoint for s3 service not found
Should be:
+
| Property | Value |
+-
| s3.publicURL | http://
+
Ceph verification:
root@node-1:~# sudo radosgw-admin user create --uid="testuser" --display-
{ "user_id": "testuser",
"display_name": "First User",
"email": "",
"suspended": 0,
"max_buckets": 1000,
"auid": 0,
"subusers": [],
"keys": [
{ "user": "testuser",
"swift_keys": [],
"caps": [],
"op_mask": "read, write, delete",
"default_
"placement_tags": [],
"bucket_quota": { "enabled": false,
"
"
"user_quota": { "enabled": false,
"
"
"temp_url_keys": []}
s3test.py:
import boto
import boto.s3.connection
access_key = 'U66JXYCCJZH5XI
secret_key = 'Uem\/P226omznT
conn = boto.connect_s3(
aws_access_key_id = access_key,
aws_secret_
host = '172.16.0.2',
is_secure=False,
calling_format = boto.s3.
)
bucket = conn.create_
for bucket in conn.get_
print "{name}
)
Result:
root@node-1:~# python s3test.py
Traceback (most recent call last):
File "s3test.py", line 12, in <module>
bucket = conn.create_
File "/usr/lib/
response.
boto.exception.
None
Version:
[root@fuel ~]# cat /etc/fuel/
VERSION:
feature_groups:
- mirantis
production: "docker"
release: "6.1"
openstack_
api: "1.0"
build_number: "525"
build_id: "2015-06-
nailgun_sha: "dbd54158812033
python-
astute_sha: "1ea8017fe88894
fuel-library_sha: "2e7a08ad9792c7
fuel-ostf_sha: "8fefcf7c464937
fuelmain_sha: "a3998372183468
It worked well on build 511.
Related issue: https:/
Changed in fuel: | |
assignee: | nobody → Fuel Library Team (fuel-library) |
Changed in fuel: | |
milestone: | none → 7.0 |
importance: | Undecided → Medium |
status: | New → Confirmed |
Changed in fuel: | |
assignee: | Fuel Library Team (fuel-library) → Bartlomiej Piotrowski (bpiotrowski) |
Changed in fuel: | |
importance: | Medium → High |
So I have confirmed this works fine on 7.0. The 405 error message is because your script is not properly specifying a port so you are trying to post to the horizon vip on port 80 which gives a 405.
root@node-4:~# keystone endpoint-get --service 's3' python2. 7/dist- packages/ keystoneclient/ shell.py: 65: DeprecationWarning: The keystone CLI is deprecated in favor of python- openstackclient . For a Python library, continue using python- keystoneclient. keystoneclient. ', DeprecationWarning) ------- -+----- ------- ------- ------+ ------- -+----- ------- ------- ------+ /172.16. 0.8:8080 | ------- -+----- ------- ------- ------+ 03T20:25: 12.000Z
/usr/lib/
'python-
+------
| Property | Value |
+------
| s3.publicURL | https:/
+------
root@node-4:~# python s3test.py
my-new-bucket 2015-08-
My s3test.py:
import boto basicConfig( filename= '/tmp/s3. log',level= logging. DEBUG) AK8KA8" YT4L/jMSFCMQ4Rn siq4n8IfsdS" access_ key = secret_key, connection. OrdinaryCalling Format( ), bucket( 'my-new- bucket' ) all_buckets( ): \t{created} ".format(
name = bucket.name,
created = bucket. creation_ date,
import boto.s3.connection
import logging
logging.
access_key = "44K5MERBD4BJB4
secret_key = "aXBCtBgWtBXJon
conn = boto.connect_s3(
aws_access_key_id = access_key,
aws_secret_
host = '172.16.0.8',
port = 8080,
is_secure=True,
calling_format = boto.s3.
)
bucket = conn.create_
for bucket in conn.get_
print "{name}
)