pulp/nectar

UnicodeEncodeError raised on connecting to a website with latin-1 characters in credentials

Closed this issue · 1 comments

the only way on how to sync an HTTP-authed repo in katello is to provide the credentials in the URL in a form of:
http://username:password@domain.com.

This is causing nectar to fail if any of the username or password contains unicode characters.
e.g.:

# hammer --csv repository create --name foo --product-id 1 --organization-id 1 --content-type yum --url "http://%F0%A0%BB%8E%F0%AB%84%B7%F0%A7%B0%A8%E4%97%B2%E6%96%BA%F0%A2%A4%B8%F0%A1%99%8F%E3%9E%8C%ED%9B%BA%EC%A9%A5:%F0%A4%85%AF%F0%A5%91%A2%F0%A2%B3%A4%EA%B5%A9%F0%90%AC%84%F0%A6%B3%94%EC%85%BE%F0%A6%B6%8D%EC%9A%B3%F0%A4%99%A4@rplevka.fedorapeople.org/fakerepo01/"
# ..i know, what you're thinking :)

# hammer -u admin -p changeme repository synchronize --id 1
[..............................................................................................................] [100%]
No new packages.
Error: RPM1004: Error retrieving metadata: 'latin-1' codec can't encode characters in position 0-9: ordinal not in range(256)

syslog traceback:

May 18 12:04:25 foo.bar pulp: kombu.transport.qpid:INFO: Connected to qpid with SASL mechanism ANONYMOUS
May 18 12:04:25 foo.bar pulp: kombu.transport.qpid:INFO: Connected to qpid with SASL mechanism ANONYMOUS
May 18 12:04:25 foo.bar pulp: celery.worker.strategy:INFO: Received task: pulp.server.async.tasks._queue_reserved_task[8cdde2a4-d21a-4faf-8d33-74949dbba830]
May 18 12:04:25 foo.bar pulp: celery.worker.strategy:INFO: Received task: pulp.server.managers.repo.sync.sync[fff399b3-803a-40c5-bb03-0430b56f8f84]
May 18 12:04:25 foo.bar pulp: celery.worker.strategy:INFO: Received task: pulp.server.async.tasks._release_resource[9d594c8f-4fc5-4ae9-a707-b11b94d1f1ac]
May 18 12:04:25 foo.bar pulp: pulp_rpm.plugins.importers.yum.sync:INFO: Downloading metadata from http://rplevka.fedorapeople.org/fakerepo01/.
May 18 12:04:25 foo.bar pulp: celery.worker.job:INFO: Task pulp.server.async.tasks._queue_reserved_task[8cdde2a4-d21a-4faf-8d33-74949dbba830] succeeded in 0.0346152009997s: None
May 18 12:04:25 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784) 'latin-1' codec can't encode characters in position 0-9: ordinal not in range(256)
May 18 12:04:25 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784) Traceback (most recent call last):
May 18 12:04:25 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784)   File "/usr/lib/python2.6/site-packages/nectar/downloaders/threaded.py", line 221, in _fetch
May 18 12:04:25 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784)     self.config.read_timeout))
May 18 12:04:25 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784)   File "/usr/lib/python2.6/site-packages/requests/sessions.py", line 476, in get
May 18 12:04:25 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784)     return self.request('GET', url, **kwargs)
May 18 12:04:25 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784)   File "/usr/lib/python2.6/site-packages/requests/sessions.py", line 450, in request
May 18 12:04:25 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784)     prep = self.prepare_request(req)
May 18 12:04:25 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784)   File "/usr/lib/python2.6/site-packages/requests/sessions.py", line 381, in prepare_request
May 18 12:04:25 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784)     hooks=merge_hooks(request.hooks, self.hooks),
May 18 12:04:25 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784)   File "/usr/lib/python2.6/site-packages/requests/models.py", line 308, in prepare
May 18 12:04:25 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784)     self.prepare_auth(auth, url)
May 18 12:04:25 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784)   File "/usr/lib/python2.6/site-packages/requests/models.py", line 495, in prepare_auth
May 18 12:04:25 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784)     r = auth(self)
May 18 12:04:25 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784)   File "/usr/lib/python2.6/site-packages/nectar/config.py", line 243, in __call__
May 18 12:04:25 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784)     req.headers['Authorization'] = requests.auth._basic_auth_str(self.username, self.password)
May 18 12:04:25 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784)   File "/usr/lib/python2.6/site-packages/requests/auth.py", line 30, in _basic_auth_str
May 18 12:04:25 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784)     b64encode(('%%s:%%s' %% (username, password)).encode('latin1')).strip()
May 18 12:04:25 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784) UnicodeEncodeError: 'latin-1' codec can't encode characters in position 0-9: ordinal not in range(256)
May 18 12:04:26 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-74752) 'latin-1' codec can't encode characters in position 0-9: ordinal not in range(256)
May 18 12:04:26 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-74752) Traceback (most recent call last):
May 18 12:04:26 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-74752)   File "/usr/lib/python2.6/site-packages/nectar/downloaders/threaded.py", line 221, in _fetch
May 18 12:04:26 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-74752)     self.config.read_timeout))
May 18 12:04:26 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-74752)   File "/usr/lib/python2.6/site-packages/requests/sessions.py", line 476, in get
May 18 12:04:26 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-74752)     return self.request('GET', url, **kwargs)
May 18 12:04:26 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-74752)   File "/usr/lib/python2.6/site-packages/requests/sessions.py", line 450, in request
May 18 12:04:26 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-74752)     prep = self.prepare_request(req)
May 18 12:04:26 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-74752)   File "/usr/lib/python2.6/site-packages/requests/sessions.py", line 381, in prepare_request
May 18 12:04:26 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-74752)     hooks=merge_hooks(request.hooks, self.hooks),
May 18 12:04:26 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-74752)   File "/usr/lib/python2.6/site-packages/requests/models.py", line 308, in prepare
May 18 12:04:26 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-74752)     self.prepare_auth(auth, url)
May 18 12:04:26 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-74752)   File "/usr/lib/python2.6/site-packages/requests/models.py", line 495, in prepare_auth
May 18 12:04:26 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-74752)     r = auth(self)
May 18 12:04:26 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-74752)   File "/usr/lib/python2.6/site-packages/nectar/config.py", line 243, in __call__
May 18 12:04:26 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-74752)     req.headers['Authorization'] = requests.auth._basic_auth_str(self.username, self.password)
May 18 12:04:26 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-74752)   File "/usr/lib/python2.6/site-packages/requests/auth.py", line 30, in _basic_auth_str
May 18 12:04:26 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-74752)     b64encode(('%%s:%%s' %% (username, password)).encode('latin1')).strip()
May 18 12:04:26 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-74752) UnicodeEncodeError: 'latin-1' codec can't encode characters in position 0-9: ordinal not in range(256)
May 18 12:04:26 foo.bar pulp: pulp_rpm.plugins.importers.yum.sync:INFO: Downloading metadata from http://rplevka.fedorapeople.org/fakerepo01/.
May 18 12:04:26 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784) 'latin-1' codec can't encode characters in position 0-9: ordinal not in range(256)
May 18 12:04:26 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784) Traceback (most recent call last):
May 18 12:04:26 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784)   File "/usr/lib/python2.6/site-packages/nectar/downloaders/threaded.py", line 221, in _fetch
May 18 12:04:26 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784)     self.config.read_timeout))
May 18 12:04:26 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784)   File "/usr/lib/python2.6/site-packages/requests/sessions.py", line 476, in get
May 18 12:04:26 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784)     return self.request('GET', url, **kwargs)
May 18 12:04:26 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784)   File "/usr/lib/python2.6/site-packages/requests/sessions.py", line 450, in request
May 18 12:04:26 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784)     prep = self.prepare_request(req)
May 18 12:04:26 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784)   File "/usr/lib/python2.6/site-packages/requests/sessions.py", line 381, in prepare_request
May 18 12:04:26 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784)     hooks=merge_hooks(request.hooks, self.hooks),
May 18 12:04:26 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784)   File "/usr/lib/python2.6/site-packages/requests/models.py", line 308, in prepare
May 18 12:04:26 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784)     self.prepare_auth(auth, url)
May 18 12:04:26 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784)   File "/usr/lib/python2.6/site-packages/requests/models.py", line 495, in prepare_auth
May 18 12:04:26 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784)     r = auth(self)
May 18 12:04:26 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784)   File "/usr/lib/python2.6/site-packages/nectar/config.py", line 243, in __call__
May 18 12:04:26 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784)     req.headers['Authorization'] = requests.auth._basic_auth_str(self.username, self.password)
May 18 12:04:26 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784)   File "/usr/lib/python2.6/site-packages/requests/auth.py", line 30, in _basic_auth_str
May 18 12:04:26 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784)     b64encode(('%%s:%%s' %% (username, password)).encode('latin1')).strip()
May 18 12:04:26 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784) UnicodeEncodeError: 'latin-1' codec can't encode characters in position 0-9: ordinal not in range(256)
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-74752) 'latin-1' codec can't encode characters in position 0-9: ordinal not in range(256)
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-74752) Traceback (most recent call last):
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-74752)   File "/usr/lib/python2.6/site-packages/nectar/downloaders/threaded.py", line 221, in _fetch
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-74752)     self.config.read_timeout))
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-74752)   File "/usr/lib/python2.6/site-packages/requests/sessions.py", line 476, in get
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-74752)     return self.request('GET', url, **kwargs)
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-74752)   File "/usr/lib/python2.6/site-packages/requests/sessions.py", line 450, in request
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-74752)     prep = self.prepare_request(req)
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-74752)   File "/usr/lib/python2.6/site-packages/requests/sessions.py", line 381, in prepare_request
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-74752)     hooks=merge_hooks(request.hooks, self.hooks),
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-74752)   File "/usr/lib/python2.6/site-packages/requests/models.py", line 308, in prepare
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-74752)     self.prepare_auth(auth, url)
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-74752)   File "/usr/lib/python2.6/site-packages/requests/models.py", line 495, in prepare_auth
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-74752)     r = auth(self)
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-74752)   File "/usr/lib/python2.6/site-packages/nectar/config.py", line 243, in __call__
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-74752)     req.headers['Authorization'] = requests.auth._basic_auth_str(self.username, self.password)
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-74752)   File "/usr/lib/python2.6/site-packages/requests/auth.py", line 30, in _basic_auth_str
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-74752)     b64encode(('%%s:%%s' %% (username, password)).encode('latin1')).strip()
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-74752) UnicodeEncodeError: 'latin-1' codec can't encode characters in position 0-9: ordinal not in range(256)
May 18 12:04:27 foo.bar pulp: pulp_rpm.plugins.importers.yum.sync:INFO: Downloading metadata from http://rplevka.fedorapeople.org/fakerepo01/.
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784) 'latin-1' codec can't encode characters in position 0-9: ordinal not in range(256)
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784) Traceback (most recent call last):
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784)   File "/usr/lib/python2.6/site-packages/nectar/downloaders/threaded.py", line 221, in _fetch
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784)     self.config.read_timeout))
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784)   File "/usr/lib/python2.6/site-packages/requests/sessions.py", line 476, in get
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784)     return self.request('GET', url, **kwargs)
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784)   File "/usr/lib/python2.6/site-packages/requests/sessions.py", line 450, in request
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784)     prep = self.prepare_request(req)
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784)   File "/usr/lib/python2.6/site-packages/requests/sessions.py", line 381, in prepare_request
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784)     hooks=merge_hooks(request.hooks, self.hooks),
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784)   File "/usr/lib/python2.6/site-packages/requests/models.py", line 308, in prepare
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784)     self.prepare_auth(auth, url)
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784)   File "/usr/lib/python2.6/site-packages/requests/models.py", line 495, in prepare_auth
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784)     r = auth(self)
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784)   File "/usr/lib/python2.6/site-packages/nectar/config.py", line 243, in __call__
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784)     req.headers['Authorization'] = requests.auth._basic_auth_str(self.username, self.password)
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784)   File "/usr/lib/python2.6/site-packages/requests/auth.py", line 30, in _basic_auth_str
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784)     b64encode(('%%s:%%s' %% (username, password)).encode('latin1')).strip()
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-46784) UnicodeEncodeError: 'latin-1' codec can't encode characters in position 0-9: ordinal not in range(256)
May 18 12:04:27 foo.bar pulp: pulp_rpm.plugins.importers.yum.sync:INFO: Downloading additional units.
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-98752) 'latin-1' codec can't encode characters in position 0-9: ordinal not in range(256)
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-98752) Traceback (most recent call last):
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-98752)   File "/usr/lib/python2.6/site-packages/nectar/downloaders/threaded.py", line 221, in _fetch
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-98752)     self.config.read_timeout))
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-98752)   File "/usr/lib/python2.6/site-packages/requests/sessions.py", line 476, in get
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-98752)     return self.request('GET', url, **kwargs)
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-98752)   File "/usr/lib/python2.6/site-packages/requests/sessions.py", line 450, in request
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-98752)     prep = self.prepare_request(req)
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-98752)   File "/usr/lib/python2.6/site-packages/requests/sessions.py", line 381, in prepare_request
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-98752)     hooks=merge_hooks(request.hooks, self.hooks),
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-98752)   File "/usr/lib/python2.6/site-packages/requests/models.py", line 308, in prepare
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-98752)     self.prepare_auth(auth, url)
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-98752)   File "/usr/lib/python2.6/site-packages/requests/models.py", line 495, in prepare_auth
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-98752)     r = auth(self)
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-98752)   File "/usr/lib/python2.6/site-packages/nectar/config.py", line 243, in __call__
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-98752)     req.headers['Authorization'] = requests.auth._basic_auth_str(self.username, self.password)
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-98752)   File "/usr/lib/python2.6/site-packages/requests/auth.py", line 30, in _basic_auth_str
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-98752)     b64encode(('%%s:%%s' %% (username, password)).encode('latin1')).strip()
May 18 12:04:27 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-98752) UnicodeEncodeError: 'latin-1' codec can't encode characters in position 0-9: ordinal not in range(256)
May 18 12:04:28 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-98752) 'latin-1' codec can't encode characters in position 0-9: ordinal not in range(256)
May 18 12:04:28 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-98752) Traceback (most recent call last):
May 18 12:04:28 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-98752)   File "/usr/lib/python2.6/site-packages/nectar/downloaders/threaded.py", line 221, in _fetch
May 18 12:04:28 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-98752)     self.config.read_timeout))
May 18 12:04:28 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-98752)   File "/usr/lib/python2.6/site-packages/requests/sessions.py", line 476, in get
May 18 12:04:28 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-98752)     return self.request('GET', url, **kwargs)
May 18 12:04:28 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-98752)   File "/usr/lib/python2.6/site-packages/requests/sessions.py", line 450, in request
May 18 12:04:28 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-98752)     prep = self.prepare_request(req)
May 18 12:04:28 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-98752)   File "/usr/lib/python2.6/site-packages/requests/sessions.py", line 381, in prepare_request
May 18 12:04:28 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-98752)     hooks=merge_hooks(request.hooks, self.hooks),
May 18 12:04:28 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-98752)   File "/usr/lib/python2.6/site-packages/requests/models.py", line 308, in prepare
May 18 12:04:28 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-98752)     self.prepare_auth(auth, url)
May 18 12:04:28 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-98752)   File "/usr/lib/python2.6/site-packages/requests/models.py", line 495, in prepare_auth
May 18 12:04:28 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-98752)     r = auth(self)
May 18 12:04:28 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-98752)   File "/usr/lib/python2.6/site-packages/nectar/config.py", line 243, in __call__
May 18 12:04:28 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-98752)     req.headers['Authorization'] = requests.auth._basic_auth_str(self.username, self.password)
May 18 12:04:28 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-98752)   File "/usr/lib/python2.6/site-packages/requests/auth.py", line 30, in _basic_auth_str
May 18 12:04:28 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-98752)     b64encode(('%%s:%%s' %% (username, password)).encode('latin1')).strip()
May 18 12:04:28 foo.bar pulp: nectar.downloaders.threaded:ERROR: (26494-98752) UnicodeEncodeError: 'latin-1' codec can't encode characters in position 0-9: ordinal not in range(256)
May 18 12:04:29 foo.bar pulp: pulp.server.async.tasks:INFO: Task failed : [fff399b3-803a-40c5-bb03-0430b56f8f84] : Error retrieving metadata: 'latin-1' codec can't encode characters in position 0-9: ordinal not in range(256)

The issue is tracked here: https://pulp.plan.io/issues/2771
Anyone can assign themselves as a watcher to receive updates.