I’m sure you’ve already tried this, but we’ve gotten burned a few
times by not running radosgw-admin regionmap update after making
region/zone changes. Bouncing the RGW’s probably wouldn’t hurt either.
*From:*ceph-users [mailto:ceph-users-boun...@lists.ceph.com] *On
Behalf Of *Peter
*Sent:* Tuesday, July 22, 2014 4:51 AM
*To:* Craig Lewis
*Cc:* Ceph Users
*Subject:* Re: [ceph-users] radosgw-agent failed to parse
yes, im scratching my head over this too. It doesn't seem to be an
authentication issue as the radosgw-agent never reaches the
us-secondary gateway (i've kept an eye on us-secondary logs as i
execute radosgw-agent on us-master).
On 22/07/14 03:51, Craig Lewis wrote:
I was hoping for some easy fixes :-P
I created two system users, in both zones. Each user has
different access and secret, but I copied the access and secret
from the primary to the secondary. I can't imaging that this
would cause the problem you're seeing, but it is something
different from the examples.
Sorry, I'm out of ideas.
On Mon, Jul 21, 2014 at 7:13 AM, Peter <ptier...@tchpc.tcd.ie
<mailto:ptier...@tchpc.tcd.ie>> wrote:
hello again,
i couldn't find 'http://us-secondary.example.comhttp://
<http://us-secondary.example.comhttp:/>us-secondary.example.com/
<http://us-secondary.example.com/>' in any zone or regions
config files. How could it be getting the URL from someplace
else if i am specifying as command line option after
radosgw-agent ?
Here is region config:
{ "name": "us",
"api_name": "us",
"is_master": "True",
"endpoints": [
"http:\/\/us-master.example.com:80\/"
<http://%5C/%5C/us-master.example.com:80%5C/>],
"master_zone": "us-master",
"zones": [
{ "name": "us-master",
"endpoints": [
"http:\/\/us-master.example.com:80\/"
<http://%5C/%5C/us-master.example.com:80%5C/>],
"log_meta": "true",
"log_data": "true"},
{ "name": "us-secondary",
"endpoints": [
"http:\/\/us-master.example.com:80\/"
<http://%5C/%5C/us-master.example.com:80%5C/>],
"log_meta": "true",
"log_data": "true"}
],
"placement_targets": [
{
"name": "default-placement",
"tags": []
}
],
"default_placement": "default-placement"}
I also get the above when i navigate to
http://us-master.example.com/admin/config
<http://us-master.example.com/admin/config> and
http://us-secondary.example.com/admin/config
<http://us-secondary.example.com/admin/config> .
us-master zone looks like this:
{ "domain_root": ".us-master.domain.rgw",
"control_pool": ".us-master.rgw.control",
"gc_pool": ".us-master.rgw.gc",
"log_pool": ".us-master.log",
"intent_log_pool": ".us-master.intent-log",
"usage_log_pool": ".us-master.usage",
"user_keys_pool": ".us-master.users",
"user_email_pool": ".us-master.users.email",
"user_swift_pool": ".us-master.users.swift",
"user_uid_pool": ".us-master.users.uid",
"system_key": { "access_key": "EA02UO07DA8JJJX7ZIPJ",
"secret_key": "InmPlbQhsj7dqYYYYjdNabqkZaqR8ShWC6fS0XVo"},
"placement_pools": [
{ "key": "default-placement",
"val": { "index_pool": ".us-master.rgw.buckets.index",
"data_pool": ".us-master.rgw.buckets"}
}
]
}
us-secondary zone:
{ "domain_root": ".us-secondary.domain.rgw",
"control_pool": ".us-secondary.rgw.control",
"gc_pool": ".us-secondary.rgw.gc",
"log_pool": ".us-secondary.log",
"intent_log_pool": ".us-secondary.intent-log",
"usage_log_pool": ".us-secondary.usage",
"user_keys_pool": ".us-secondary.users",
"user_email_pool": ".us-secondary.users.email",
"user_swift_pool": ".us-secondary.users.swift",
"user_uid_pool": ".us-secondary.users.uid",
"system_key": { "access_key": "EA02UO07DA8JJJX7ZIPJ",
"secret_key": "InmPlbQhsj7dqYYYYjdNabqkZaqR8ShWC6fS0XVo"},
"placement_pools": [
{ "key": "default-placement",
"val": { "index_pool":
".us-secondary.rgw.buckets.index",
"data_pool": ".us-secondary.rgw.buckets"}
}
]
}
us-master user exists on us-master cluster gateway,
us-secondary user exists on us-secondary cluster gateway. both
us-master and us-secondary gateway users have same access and
secret key. should us-master and us-secondary users exist on
both clusters?
i can resolve us-master.example.com
<http://us-master.example.com> and us-secondary.example.com
<http://us-secondary.example.com> from both gateways.
Thanks
On 09/07/14 22:20, Craig Lewis wrote:
Just to ask a couple obvious questions...
You didn't accidentally
put 'http://us-secondary.example.comhttp://
<http://us-secondary.example.comhttp:/>us-secondary.example.com/
<http://us-secondary.example.com/>' in any of your region
or zone configuration files? The fact that it's missing
the :80 makes me think it's getting that URL from
someplace that isn't the command line.
You do have both system users on both clusters, with the
same access and secret keys?
You can resolve us-secondary.example.com
<http://us-secondary.example.com>. from this host?
I tested URLs of the form http://us-secondary.example.com/
<http://us-secondary.example.com/> and
http://us-secondary.example.com:80
<http://us-secondary.example.com:80> in my setup, and both
work fine.
On Wed, Jul 9, 2014 at 3:56 AM, Peter
<ptier...@tchpc.tcd.ie <mailto:ptier...@tchpc.tcd.ie>> wrote:
thank you for your reply. I am running ceph 0.80.1,
radosgw-agent 1.2 on Ubuntu 14.04 LTS (GNU/Linux
3.13.0-24-generic x86_64) . I also ran into this same
issue with ubuntu 12.04 previously.
There are no special characters in the access or
secret key (ive had issues with this before so i make
sure of this).
here is the output python interpreter:
Python 2.7.6 (default, Mar 22 2014, 22:59:56)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license"
for more information.
>>> import urlparse
>>> result =
urlparse.urlparse('http://us-secondary.example.com:80')
>>> print result.hostname, result.port
us-secondary.example.com
<http://us-secondary.example.com> 80
that looks ok to me.
On 07/07/14 22:57, Josh Durgin wrote:
On 07/04/2014 08:36 AM, Peter wrote:
i am having issues running radosgw-agent to
sync data between two
radosgw zones. As far as i can tell both zones
are running correctly.
My issue is when i run the radosgw-agent command:
radosgw-agent -v --src-access-key
<access_key> --src-secret-key
<secret_key> --dest-access-key
<access_key> --dest-secret-key
<secret_key> --src-zone us-master
http://us-secondary.example.com:80
i get the following error:
|DEBUG:boto:Using access key provided by client.||
||DEBUG:boto:Using secret key provided by
client.||
||DEBUG:boto:StringToSign:||
||GET||
||
||Fri, 04 Jul 2014 15:25:53 GMT||
||/admin/config||
||DEBUG:boto:Signature:||
||AWS
EA20YO07DA8JJJX7ZIPJ:WbykwyXu5m5IlbEsBzo8bKEGIzg=||
||DEBUG:boto:url =
'http://us-secondary.example.comhttp://us-secondary.example.com/admin/config'||
<http://us-secondary.example.com/admin/config%27%7C%7C>
||params={}||
||headers={'Date': 'Fri, 04 Jul 2014 15:25:53
GMT', 'Content-Length':
'0', 'Authorization': 'AWS
EA20YO07DA8JJJX7ZIPJ:WbykwyXu5m5IlbEsBzo8bKEGIzg=',
'User-Agent':
'Boto/2.20.1 Python/2.7.6
Linux/3.13.0-24-generic'}||
||data=None||
||ERROR:root:Could not retrieve region map
from destination||
||Traceback (most recent call last):||
|| File
"/usr/lib/python2.7/dist-packages/radosgw_agent/cli.py",
line
269, in main||
|| region_map =
client.get_region_map(dest_conn)||
|| File
"/usr/lib/python2.7/dist-packages/radosgw_agent/client.py",
line 391, in get_region_map||
|| region_map = request(connection, 'get',
'admin/config')||
|| File
"/usr/lib/python2.7/dist-packages/radosgw_agent/client.py",
line 153, in request||
|| result = handler(url, params=params,
headers=request.headers,
data=data)||
|| File
"/usr/lib/python2.7/dist-packages/requests/api.py",
line 55, in
get||
|| return request('get', url, **kwargs)||
|| File
"/usr/lib/python2.7/dist-packages/requests/api.py",
line 44, in
request||
|| return session.request(method=method,
url=url, **kwargs)||
|| File
"/usr/lib/python2.7/dist-packages/requests/sessions.py",
line
349, in request||
|| prep = self.prepare_request(req)||
|| File
"/usr/lib/python2.7/dist-packages/requests/sessions.py",
line
287, in prepare_request||
|| hooks=merge_hooks(request.hooks,
self.hooks),||
|| File
"/usr/lib/python2.7/dist-packages/requests/models.py",
line
287, in prepare||
|| self.prepare_url(url, params)||
|| File
"/usr/lib/python2.7/dist-packages/requests/models.py",
line
334, in prepare_url||
|| scheme, auth, host, port, path, query,
fragment = parse_url(url)||
|| File
"/usr/lib/python2.7/dist-packages/urllib3/util.py",
line 390,
in parse_url||
|| raise LocationParseError("Failed to
parse: %s" % url)||
||LocationParseError: Failed to parse: Failed
to parse:
us-secondary.example.comhttp:
|||Is this a bug? or is my setup wrong? i can
navigate to
http://us-secondary.example.com/admin/config
and it correctly outputs
zone details. at the output above
It seems like an issue with your environment. What
version of
radosgw-agent and which distro is this running on?
Are there any special characters in the access or
secret keys that
might need to be escaped on the command line?
|DEBUG:boto:url =
'http://us-secondary.example.comhttp://us-secondary.example.com/admin/config'||
<http://us-secondary.example.com/admin/config%27%7C%7C>
|should the url be repeated like that?
No, and it's rather strange since it should be the
url passed on the
command line, parsed, and with /admin/config added.
Could post the result of this run in a python
interpreter:
import urlparse
result =
urlparse.urlparse('http://us-secondary.example.com:80')
print result.hostname, result.port
Josh
_______________________________________________
ceph-users mailing list
ceph-users@lists.ceph.com
<mailto:ceph-users@lists.ceph.com>
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com