3840: rbt post provides poor diagnostics if connecting to a server with a certificate that cannot be verified

yaneu******@gmai***** (Google Code) (Is this you? Claim this profile.)
June 1, 2015
What version are you running?

0.7.2; build/installed from the FreeBSD package repository.

What steps will reproduce the problem?

- Try to run `rbt post` against a server with a certificate that can't be verified (self-signed certificates usually do the trick).

What is the expected output? What do you see instead?

I would expect to get an error back informing me that it couldn't verify the
certificate, and expect things to go through if passed an appropriate option
(like curl -k). Instead I get virtually no diagnostic information.

Fedora doesn't have this problem, which makes me think they added some special
sauce to the package for self-signed certificates. However, OpenSSL differs
between FreeBSD and Fedora.

What operating system are you using? What browser?

Please provide any additional information below.

Here's the output after I adding a print(e) to Command.get_api(..):

699         try:
700             api_root = api_client.get_root()
701         except ServerInterfaceError as e:
702             print(e)
703             raise CommandError('Could not reach the Review Board '
704                                'server at %s' % server_url)

After I added that I then could determine what the real issue was that
I needed to solve in the code.

>>> RBTools 0.7.2
>>> Python 2.7.9 (default, Mar 29 2015, 05:49:15) 
[GCC 4.2.1 Compatible FreeBSD Clang 3.6.0 (tags/RELEASE_360/final 230434)]
>>> Running on FreeBSD-11.0-CURRENT-amd64-64bit-ELF
>>> Home = /home/ngie
>>> Current directory = /home/ngie/onefs/branches/BR_RIPT_BSD10P2
>>> Checking for a Subversion repository...
>>> Running: svn info --non-interactive
>>> Running: diff --version
>>> Running: svn --version -q
>>> repository info: Path: https://svn.west.isilon.com/repo, Base path: /onefs/branches/BR_RIPT_BSD10P2, Supports changesets: False
>>> Running: svn propget reviewboard:url https://svn.west.isilon.com/repo
>>> Making HTTP GET request to http://reviewboard.west.isilon.com/api/
[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)
Traceback (most recent call last):
  File "/usr/local/bin/rbt", line 9, in <module>
    load_entry_point('RBTools==0.7.2', 'console_scripts', 'rbt')()
  File "/usr/local/lib/python2.7/site-packages/rbtools/commands/main.py", line 133, in main
    command.run_from_argv([RB_MAIN, command_name] + args)
  File "/usr/local/lib/python2.7/site-packages/rbtools/commands/__init__.py", line 555, in run_from_argv
    exit_code = self.main(*args) or 0
  File "/usr/local/lib/python2.7/site-packages/rbtools/commands/post.py", line 591, in main
    api_client, api_root = self.get_api(server_url)
  File "/usr/local/lib/python2.7/site-packages/rbtools/commands/__init__.py", line 704, in get_api
    'server at %s' % server_url)
rbtools.commands.CommandError: Could not reach the Review Board server at http://reviewboard.west.isilon.com/
#1 david
Fixed in release-0.7.x (a6a7f8e). This will ship in 0.7.4. Thanks!
  • +Fixed