)]}'
{"glance/common/wsgi.py":[{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"919356523a3459ea6fdc2cc0edca19a8b57f5ddb","unresolved":false,"context_lines":[{"line_number":131,"context_line":"    sock \u003d None"},{"line_number":132,"context_line":"    retry_until \u003d time.time() + 30"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    if \u0027GLANCE_TEST_SOCKET_FD\u0027 in os.environ:"},{"line_number":135,"context_line":"        fd \u003d int(os.environ[\u0027GLANCE_TEST_SOCKET_FD\u0027])"},{"line_number":136,"context_line":"        sock \u003d socket.fromfd(fd, socket.AF_INET, socket.SOCK_STREAM)"},{"line_number":137,"context_line":"        sock \u003d socket.SocketType(_sock\u003dsock)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOH%2F%2F7pA%3D","line":134,"updated":"2013-03-20 14:46:15.000000000","message":"Hey,\n\nI\u0027d prefer having this somewhere in the test utils. I personally don\u0027t like the idea of having test related stuff outside glance/tests/\n\nthoughts?","commit_id":"80519810591a9f831a8c9cd3f248b68b85cc6c44"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"f3332992de477bd808be604e88bd9c66bf0e89aa","unresolved":false,"context_lines":[{"line_number":131,"context_line":"    sock \u003d None"},{"line_number":132,"context_line":"    retry_until \u003d time.time() + 30"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    if \u0027GLANCE_TEST_SOCKET_FD\u0027 in os.environ:"},{"line_number":135,"context_line":"        fd \u003d int(os.environ[\u0027GLANCE_TEST_SOCKET_FD\u0027])"},{"line_number":136,"context_line":"        sock \u003d socket.fromfd(fd, socket.AF_INET, socket.SOCK_STREAM)"},{"line_number":137,"context_line":"        sock \u003d socket.SocketType(_sock\u003dsock)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOH%2F%2F65U%3D","line":134,"in_reply_to":"AAAAOH%2F%2F7CQ%3D","updated":"2013-03-20 22:52:00.000000000","message":"I agree, I didn\u0027t mean to import this from unittests, well, I didn\u0027t propose a solution either (facepalm).\n\nHere\u0027s an idea. What about adding a keyword to this function called socket_fd\u003dNone ?\n\nThat would make this re-usable in other cases (none come to my mind right now) and we wouldn\u0027t have it tight to tests.\n\nCheers.","commit_id":"80519810591a9f831a8c9cd3f248b68b85cc6c44"},{"author":{"_account_id":6493,"name":"John Bresnahan","email":"john@bresnahan.me","username":"jbresnah"},"change_message_id":"41d8e841c2eb19d022fa31f7ca4b993a463d3588","unresolved":false,"context_lines":[{"line_number":131,"context_line":"    sock \u003d None"},{"line_number":132,"context_line":"    retry_until \u003d time.time() + 30"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    if \u0027GLANCE_TEST_SOCKET_FD\u0027 in os.environ:"},{"line_number":135,"context_line":"        fd \u003d int(os.environ[\u0027GLANCE_TEST_SOCKET_FD\u0027])"},{"line_number":136,"context_line":"        sock \u003d socket.fromfd(fd, socket.AF_INET, socket.SOCK_STREAM)"},{"line_number":137,"context_line":"        sock \u003d socket.SocketType(_sock\u003dsock)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOH%2F%2F7CQ%3D","line":134,"in_reply_to":"AAAAOH%2F%2F7pA%3D","updated":"2013-03-20 21:06:20.000000000","message":"Doing so would add a dependency to common.wsgi on glance.tests.  That does not seem like the right thing to do to me, it could even introduce cyclical dependencies (tho I have not yet looked).\n\nAlternatively I could put this in glance/common/utils.py","commit_id":"80519810591a9f831a8c9cd3f248b68b85cc6c44"},{"author":{"_account_id":616,"name":"Mark Washenberger","email":"mark.washenberger@markwash.net","username":"markwash"},"change_message_id":"d35ef8bdbfd9cc8334d3a95e147716edcc303f52","unresolved":false,"context_lines":[{"line_number":579,"context_line":"        return args"},{"line_number":580,"context_line":""},{"line_number":581,"context_line":""},{"line_number":582,"context_line":"def get_test_suite_socket():"},{"line_number":583,"context_line":"    if utils.GLANCE_TEST_SOCKET_FD_STR in os.environ:"},{"line_number":584,"context_line":"        fd \u003d int(os.environ[utils.GLANCE_TEST_SOCKET_FD_STR])"},{"line_number":585,"context_line":"        sock \u003d socket.fromfd(fd, socket.AF_INET, socket.SOCK_STREAM)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAOn%2F%2FzyM%3D","line":582,"updated":"2013-04-22 17:33:55.000000000","message":"This appears to duplicate the code you\u0027re adding in utils.py. Is this function being used?","commit_id":"0292bd1997c7e4bddfb841692a8cf763120d78c5"},{"author":{"_account_id":6493,"name":"John Bresnahan","email":"john@bresnahan.me","username":"jbresnah"},"change_message_id":"328af6102a10e41bc93f125c08d49d4b13e855e2","unresolved":false,"context_lines":[{"line_number":579,"context_line":"        return args"},{"line_number":580,"context_line":""},{"line_number":581,"context_line":""},{"line_number":582,"context_line":"def get_test_suite_socket():"},{"line_number":583,"context_line":"    if utils.GLANCE_TEST_SOCKET_FD_STR in os.environ:"},{"line_number":584,"context_line":"        fd \u003d int(os.environ[utils.GLANCE_TEST_SOCKET_FD_STR])"},{"line_number":585,"context_line":"        sock \u003d socket.fromfd(fd, socket.AF_INET, socket.SOCK_STREAM)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAOn%2F%2FzGM%3D","line":582,"in_reply_to":"AAAAOn%2F%2FzyM%3D","updated":"2013-04-22 22:39:10.000000000","message":"Nice catch, thanks!  This is cruft, I will remove it.","commit_id":"0292bd1997c7e4bddfb841692a8cf763120d78c5"}],"glance/tests/utils.py":[{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"919356523a3459ea6fdc2cc0edca19a8b57f5ddb","unresolved":false,"context_lines":[{"line_number":235,"context_line":"    addr, port \u003d s.getsockname()"},{"line_number":236,"context_line":"    if get_sock:"},{"line_number":237,"context_line":"        return (port, s)"},{"line_number":238,"context_line":"    else:"},{"line_number":239,"context_line":"        s.close()"},{"line_number":240,"context_line":"        return port"},{"line_number":241,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOH%2F%2F7os%3D","line":238,"updated":"2013-03-20 14:46:15.000000000","message":"hey,\n\n`else` is not needed here.\n\nCheers","commit_id":"80519810591a9f831a8c9cd3f248b68b85cc6c44"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"919356523a3459ea6fdc2cc0edca19a8b57f5ddb","unresolved":false,"context_lines":[{"line_number":237,"context_line":"        return (port, s)"},{"line_number":238,"context_line":"    else:"},{"line_number":239,"context_line":"        s.close()"},{"line_number":240,"context_line":"        return port"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"def xattr_writes_supported(path):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOH%2F%2F7oU%3D","line":240,"updated":"2013-03-20 14:46:15.000000000","message":"Hey :),\n\nperhaps it would be better to always return a tuple (for consistency). (It would require modifying some other tests, I guess)\n\nreturn (port, None) ?","commit_id":"80519810591a9f831a8c9cd3f248b68b85cc6c44"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"f3332992de477bd808be604e88bd9c66bf0e89aa","unresolved":false,"context_lines":[{"line_number":237,"context_line":"        return (port, s)"},{"line_number":238,"context_line":"    else:"},{"line_number":239,"context_line":"        s.close()"},{"line_number":240,"context_line":"        return port"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"def xattr_writes_supported(path):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOH%2F%2F65I%3D","line":240,"in_reply_to":"AAAAOH%2F%2F7CE%3D","updated":"2013-03-20 22:52:00.000000000","message":"hey,\n\nI understand that.\n\nI\u0027d prefer making things right and keeping them consistent and if that means changing some more code around I would be happy with that. I guess it\u0027s all about finding the right trade-off here.\n\nLets see what other folks say about this!","commit_id":"80519810591a9f831a8c9cd3f248b68b85cc6c44"},{"author":{"_account_id":6493,"name":"John Bresnahan","email":"john@bresnahan.me","username":"jbresnah"},"change_message_id":"41d8e841c2eb19d022fa31f7ca4b993a463d3588","unresolved":false,"context_lines":[{"line_number":237,"context_line":"        return (port, s)"},{"line_number":238,"context_line":"    else:"},{"line_number":239,"context_line":"        s.close()"},{"line_number":240,"context_line":"        return port"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"def xattr_writes_supported(path):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOH%2F%2F7CE%3D","line":240,"in_reply_to":"AAAAOH%2F%2F7oU%3D","updated":"2013-03-20 21:06:20.000000000","message":"I did it this way to eliminate the need to modify legacy code.  However if a more pervasive change is more welcome by the community than I am more than happy to make that change.","commit_id":"80519810591a9f831a8c9cd3f248b68b85cc6c44"}]}
