)]}'
{"nova/tests/test_wsgi.py":[{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"e030274f7fe0140d4f367bd46649255aa5b67e3f","unresolved":false,"context_lines":[{"line_number":28,"context_line":"import nova.wsgi"},{"line_number":29,"context_line":"import eventlet"},{"line_number":30,"context_line":"import ssl"},{"line_number":31,"context_line":"from nova import flags"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"FLAGS \u003d flags.FLAGS"},{"line_number":34,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAACX%2F%2F8xk%3D","line":31,"updated":"2011-10-13 01:00:47.000000000","message":"HACKING violation.  Looks like this was slightly wrong to begin with, but this makes it worse.  Check out \u0027HACKING\u0027 file in top level src dir.","commit_id":"06a68ba59c11b88b0c4b4a16d0e649e506ac64ee"},{"author":{"_account_id":706,"name":"Brian Lamar","email":"brian.lamar@rackspace.com","username":"blamar"},"change_message_id":"38825ed775792568087a2b6e3759369d2d3fc1f4","unresolved":false,"context_lines":[{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        # Initialize the server"},{"line_number":112,"context_line":"        server \u003d nova.wsgi.Server(\"test_wsgi_ssl\","},{"line_number":113,"context_line":"                                  wsgi_echo_app, host\u003d\"127.0.0.1\", port\u003d8989)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        # Test server port"},{"line_number":116,"context_line":"        self.assertEqual(8989, server.port)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAACX%2F%2F9W4%3D","line":113,"updated":"2011-10-07 19:27:38.000000000","message":"Instead of 8989, can this be 0 so that a random port will be assigned for the test? That was tests won\u0027t fail if you have something listening on 8989.","commit_id":"06a68ba59c11b88b0c4b4a16d0e649e506ac64ee"},{"author":{"_account_id":706,"name":"Brian Lamar","email":"brian.lamar@rackspace.com","username":"blamar"},"change_message_id":"38825ed775792568087a2b6e3759369d2d3fc1f4","unresolved":false,"context_lines":[{"line_number":113,"context_line":"                                  wsgi_echo_app, host\u003d\"127.0.0.1\", port\u003d8989)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        # Test server port"},{"line_number":116,"context_line":"        self.assertEqual(8989, server.port)"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"        # Enable SSL for API communication and provide"},{"line_number":119,"context_line":"        # certificate and private key"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAACX%2F%2F9W8%3D","line":116,"updated":"2011-10-07 19:27:38.000000000","message":"Not sure this is needed, I think we ensure this functionality in other tests.","commit_id":"06a68ba59c11b88b0c4b4a16d0e649e506ac64ee"},{"author":{"_account_id":706,"name":"Brian Lamar","email":"brian.lamar@rackspace.com","username":"blamar"},"change_message_id":"38825ed775792568087a2b6e3759369d2d3fc1f4","unresolved":false,"context_lines":[{"line_number":117,"context_line":""},{"line_number":118,"context_line":"        # Enable SSL for API communication and provide"},{"line_number":119,"context_line":"        # certificate and private key"},{"line_number":120,"context_line":"        FLAGS.enable_api_ssl \u003d \"True\""},{"line_number":121,"context_line":"        FLAGS.certificate \u003d \"certificate.crt\""},{"line_number":122,"context_line":"        FLAGS.privatekey \u003d \"privatekey.key\""},{"line_number":123,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAACX%2F%2F9XM%3D","line":120,"updated":"2011-10-07 19:27:38.000000000","message":"When using FLAGS in tests, use:\n\nself.flags(enable_api_ssl\u003dTrue) # Also, should this be an object instead of a string?","commit_id":"06a68ba59c11b88b0c4b4a16d0e649e506ac64ee"},{"author":{"_account_id":706,"name":"Brian Lamar","email":"brian.lamar@rackspace.com","username":"blamar"},"change_message_id":"38825ed775792568087a2b6e3759369d2d3fc1f4","unresolved":false,"context_lines":[{"line_number":118,"context_line":"        # Enable SSL for API communication and provide"},{"line_number":119,"context_line":"        # certificate and private key"},{"line_number":120,"context_line":"        FLAGS.enable_api_ssl \u003d \"True\""},{"line_number":121,"context_line":"        FLAGS.certificate \u003d \"certificate.crt\""},{"line_number":122,"context_line":"        FLAGS.privatekey \u003d \"privatekey.key\""},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        # Start listening for requrests"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAACX%2F%2F9XI%3D","line":121,"updated":"2011-10-07 19:27:38.000000000","message":"See above for making sure this flag is reset from test to test.","commit_id":"06a68ba59c11b88b0c4b4a16d0e649e506ac64ee"},{"author":{"_account_id":706,"name":"Brian Lamar","email":"brian.lamar@rackspace.com","username":"blamar"},"change_message_id":"38825ed775792568087a2b6e3759369d2d3fc1f4","unresolved":false,"context_lines":[{"line_number":119,"context_line":"        # certificate and private key"},{"line_number":120,"context_line":"        FLAGS.enable_api_ssl \u003d \"True\""},{"line_number":121,"context_line":"        FLAGS.certificate \u003d \"certificate.crt\""},{"line_number":122,"context_line":"        FLAGS.privatekey \u003d \"privatekey.key\""},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        # Start listening for requrests"},{"line_number":125,"context_line":"        server.start()"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAACX%2F%2F9XE%3D","line":122,"updated":"2011-10-07 19:27:38.000000000","message":"See above for making sure this flag is reset from test to test.","commit_id":"06a68ba59c11b88b0c4b4a16d0e649e506ac64ee"},{"author":{"_account_id":706,"name":"Brian Lamar","email":"brian.lamar@rackspace.com","username":"blamar"},"change_message_id":"38825ed775792568087a2b6e3759369d2d3fc1f4","unresolved":false,"context_lines":[{"line_number":125,"context_line":"        server.start()"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"        # Connect to socket to check the response"},{"line_number":128,"context_line":"        sock \u003d eventlet.connect((\u0027localhost\u0027, 8989))"},{"line_number":129,"context_line":"        sock \u003d eventlet.wrap_ssl(sock)"},{"line_number":130,"context_line":"        sock.write(\u0027POST / HTTP/1.1\\r\\nHost: localhost\\r\\n\u0027"},{"line_number":131,"context_line":"                   \u0027Connection: close\\r\\nContent-length:4\\r\\n\\r\\ntest\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAACX%2F%2F9XA%3D","line":128,"updated":"2011-10-07 19:27:38.000000000","message":"8989 should be replaced with \"server.port\" for convenience.","commit_id":"06a68ba59c11b88b0c4b4a16d0e649e506ac64ee"}],"nova/wsgi.py":[{"author":{"_account_id":706,"name":"Brian Lamar","email":"brian.lamar@rackspace.com","username":"blamar"},"change_message_id":"38825ed775792568087a2b6e3759369d2d3fc1f4","unresolved":false,"context_lines":[{"line_number":90,"context_line":"    # certificate: Path to the server certificate"},{"line_number":91,"context_line":"    # privatekey: Path to the server private key"},{"line_number":92,"context_line":"    #"},{"line_number":93,"context_line":"    # The users can override the above three flags in nova.conf"},{"line_number":94,"context_line":"    def start(self, backlog\u003d128):"},{"line_number":95,"context_line":"        \"\"\"Start serving a WSGI application."},{"line_number":96,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAACX%2F%2F9Ww%3D","line":93,"updated":"2011-10-07 19:27:38.000000000","message":"Can you make this part of the `start()` docstring? Also, it might not be a good idea to use terms like \"have been introduced\" because these comments quickly become outdated. I\u0027d suggest something like:\n\n---\n\nInitialize the server socket. Support for SSL communication can be enabled using the XXX flag. SSL certificates/keys can be specified via the YYY and ZZZ flags, respectively.","commit_id":"06a68ba59c11b88b0c4b4a16d0e649e506ac64ee"},{"author":{"_account_id":706,"name":"Brian Lamar","email":"brian.lamar@rackspace.com","username":"blamar"},"change_message_id":"38825ed775792568087a2b6e3759369d2d3fc1f4","unresolved":false,"context_lines":[{"line_number":102,"context_line":"        if FLAGS.enable_api_ssl:"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"            # Check if certificate path exists in nova configuration"},{"line_number":105,"context_line":"            if FLAGS.certificate is None:"},{"line_number":106,"context_line":"                raise AttributeError(\"Please provide the certificate path in\""},{"line_number":107,"context_line":"                \" the nova configuration file OR Disable SSL\")"},{"line_number":108,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAACX%2F%2F9Wk%3D","line":105,"updated":"2011-10-07 19:27:38.000000000","message":"What happens if the certificate can\u0027t be found or can\u0027t be read? Should we try to call os.path.exists() here to head this error off or perhaps wrap eventlet.wrap_ssl() in a try/except for this case?","commit_id":"06a68ba59c11b88b0c4b4a16d0e649e506ac64ee"},{"author":{"_account_id":706,"name":"Brian Lamar","email":"brian.lamar@rackspace.com","username":"blamar"},"change_message_id":"38825ed775792568087a2b6e3759369d2d3fc1f4","unresolved":false,"context_lines":[{"line_number":104,"context_line":"            # Check if certificate path exists in nova configuration"},{"line_number":105,"context_line":"            if FLAGS.certificate is None:"},{"line_number":106,"context_line":"                raise AttributeError(\"Please provide the certificate path in\""},{"line_number":107,"context_line":"                \" the nova configuration file OR Disable SSL\")"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"            # Check if private key path exists in nova configuration"},{"line_number":110,"context_line":"            if FLAGS.privatekey is None:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAACX%2F%2F9W0%3D","line":107,"updated":"2011-10-07 19:27:38.000000000","message":"This string should be surrounded with _() for internationalization.","commit_id":"06a68ba59c11b88b0c4b4a16d0e649e506ac64ee"},{"author":{"_account_id":706,"name":"Brian Lamar","email":"brian.lamar@rackspace.com","username":"blamar"},"change_message_id":"38825ed775792568087a2b6e3759369d2d3fc1f4","unresolved":false,"context_lines":[{"line_number":107,"context_line":"                \" the nova configuration file OR Disable SSL\")"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"            # Check if private key path exists in nova configuration"},{"line_number":110,"context_line":"            if FLAGS.privatekey is None:"},{"line_number":111,"context_line":"                raise AttributeError(\"Please provide the private key path \""},{"line_number":112,"context_line":"                \"in the nova configuration file OR Diable SSL\")"},{"line_number":113,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAACX%2F%2F9Wg%3D","line":110,"updated":"2011-10-07 19:27:38.000000000","message":"Same question as with FLAGS.certificate: What happens if it\u0027s set and not valid?","commit_id":"06a68ba59c11b88b0c4b4a16d0e649e506ac64ee"},{"author":{"_account_id":706,"name":"Brian Lamar","email":"brian.lamar@rackspace.com","username":"blamar"},"change_message_id":"38825ed775792568087a2b6e3759369d2d3fc1f4","unresolved":false,"context_lines":[{"line_number":109,"context_line":"            # Check if private key path exists in nova configuration"},{"line_number":110,"context_line":"            if FLAGS.privatekey is None:"},{"line_number":111,"context_line":"                raise AttributeError(\"Please provide the private key path \""},{"line_number":112,"context_line":"                \"in the nova configuration file OR Diable SSL\")"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"            # Wrapping a normal socket into a SSL socket."},{"line_number":115,"context_line":"            # Additional Parameters:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAACX%2F%2F9Ws%3D","line":112,"updated":"2011-10-07 19:27:38.000000000","message":"This string should be surrounded with _() for internationalization.","commit_id":"06a68ba59c11b88b0c4b4a16d0e649e506ac64ee"}]}
