)]}'
{"etc/glance-api.conf":[{"author":{"_account_id":1132,"name":"Brian Waldon","email":"brian@waldon.cc","username":"bcwaldon"},"change_message_id":"20621fbc08105bc5671351f51da12f4c570b1358","unresolved":false,"context_lines":[{"line_number":29,"context_line":"registry_port \u003d 9191"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"# Use SSL for connecting to the registry server?"},{"line_number":32,"context_line":"registry_client_use_ssl \u003d False"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"# The path to the key file to use in SSL connections to the"},{"line_number":35,"context_line":"# registry server, if any. Alternately, you may set the"}],"source_content_type":"text/plain","patch_set":2,"id":"AAAAA3%2F%2F%2BoU%3D","line":32,"updated":"2011-08-10 14:39:08.000000000","message":"It feels odd having these here, but I think it does  make the most sense. The registry config fie is designed for the registry server, right?","commit_id":"865549fb46c30a6f2d23debd60b5c074541d2567"},{"author":{"_account_id":1132,"name":"Brian Waldon","email":"brian@waldon.cc","username":"bcwaldon"},"change_message_id":"5076109b8fc6d8db9203d40662f23e96cabc3f30","unresolved":false,"context_lines":[{"line_number":29,"context_line":"registry_port \u003d 9191"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"# Use SSL for connecting to the registry server?"},{"line_number":32,"context_line":"registry_client_use_ssl \u003d False"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"# The path to the key file to use in SSL connections to the"},{"line_number":35,"context_line":"# registry server, if any. Alternately, you may set the"}],"source_content_type":"text/plain","patch_set":2,"id":"AAAAA3%2F%2F%2BnQ%3D","line":32,"in_reply_to":"AAAAA3%2F%2F%2BoA%3D","updated":"2011-08-10 15:14:11.000000000","message":"Works for me.","commit_id":"865549fb46c30a6f2d23debd60b5c074541d2567"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"2e30c826e61b82466f74718ac738393822b2a08a","unresolved":false,"context_lines":[{"line_number":29,"context_line":"registry_port \u003d 9191"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"# Use SSL for connecting to the registry server?"},{"line_number":32,"context_line":"registry_client_use_ssl \u003d False"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"# The path to the key file to use in SSL connections to the"},{"line_number":35,"context_line":"# registry server, if any. Alternately, you may set the"}],"source_content_type":"text/plain","patch_set":2,"id":"AAAAA3%2F%2F%2BoA%3D","line":32,"in_reply_to":"AAAAA3%2F%2F%2BoU%3D","updated":"2011-08-10 15:10:51.000000000","message":"Yep, glance-registry.conf is for the registry server, not the registry client...","commit_id":"865549fb46c30a6f2d23debd60b5c074541d2567"}],"glance/api/v1/images.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"96a2aeb7e4a3ecf4122fab440bd9dd291e7dbbf6","unresolved":false,"context_lines":[{"line_number":335,"context_line":"        store \u003d self.get_store_or_400(req, store_name)"},{"line_number":336,"context_line":""},{"line_number":337,"context_line":"        image_id \u003d image_meta[\u0027id\u0027]"},{"line_number":338,"context_line":"        logger.debug(\"Setting image %s to status \u0027saving\u0027\", image_id)"},{"line_number":339,"context_line":"        registry.update_image_metadata(req.context, image_id,"},{"line_number":340,"context_line":"                                       {\u0027status\u0027: \u0027saving\u0027})"},{"line_number":341,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAACX%2F%2F%2FtY%3D","line":338,"updated":"2011-09-19 20:39:26.000000000","message":"Did you mean to remove the i18n here?","commit_id":"f0fa08831a44048f9736d2b51b853643c409b93c"}],"glance/client.py":[{"author":{"_account_id":1132,"name":"Brian Waldon","email":"brian@waldon.cc","username":"bcwaldon"},"change_message_id":"20621fbc08105bc5671351f51da12f4c570b1358","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        :param use_ssl: Should we use HTTPS? (defaults to False)"},{"line_number":46,"context_line":"        :param doc_root: Prefix for all URLs we request from host"},{"line_number":47,"context_line":"        :param auth_tok: The auth token to pass to the server"},{"line_number":48,"context_line":"        :param key_file: Optional PEM-formatted that contains the private key."},{"line_number":49,"context_line":"                         If use_ssl is True, and this param is None (the"},{"line_number":50,"context_line":"                         default), then an environ variable"},{"line_number":51,"context_line":"                         GLANCE_CLIENT_KEY_FILE is looked for. If no such"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAA3%2F%2F%2BoQ%3D","line":48,"updated":"2011-08-10 14:39:08.000000000","message":"Should kwargs in docstrings match the order they are defined in the signature? I\u0027m leaning towards ordering them since kwargs can be used positionally.","commit_id":"865549fb46c30a6f2d23debd60b5c074541d2567"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"2e30c826e61b82466f74718ac738393822b2a08a","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        :param use_ssl: Should we use HTTPS? (defaults to False)"},{"line_number":46,"context_line":"        :param doc_root: Prefix for all URLs we request from host"},{"line_number":47,"context_line":"        :param auth_tok: The auth token to pass to the server"},{"line_number":48,"context_line":"        :param key_file: Optional PEM-formatted that contains the private key."},{"line_number":49,"context_line":"                         If use_ssl is True, and this param is None (the"},{"line_number":50,"context_line":"                         default), then an environ variable"},{"line_number":51,"context_line":"                         GLANCE_CLIENT_KEY_FILE is looked for. If no such"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAA3%2F%2F%2Bn8%3D","line":48,"in_reply_to":"AAAAA3%2F%2F%2BoQ%3D","updated":"2011-08-10 15:10:51.000000000","message":"Ah, yes, and actually, that brings up a small error. I forgot to include the ca_file kwarg in the V1Client and RegistryClient classes....","commit_id":"865549fb46c30a6f2d23debd60b5c074541d2567"}],"glance/common/client.py":[{"author":{"_account_id":475,"name":"Rick Harris","email":"rick.harris@rackspace.com","username":"rconradharris"},"change_message_id":"5a3abadfeee3241fa5dc76f74d43016866903849","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        self.use_ssl \u003d use_ssl"},{"line_number":56,"context_line":"        self.auth_tok \u003d auth_tok"},{"line_number":57,"context_line":"        self.connection \u003d None"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def set_auth_token(self, auth_tok):"},{"line_number":60,"context_line":"        \"\"\""},{"line_number":61,"context_line":"        Updates the authentication token for this client connection."}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAA3%2F%2F%2BrI%3D","side":"PARENT","line":58,"updated":"2011-08-09 22:16:10.000000000","message":"Would it be worth creating a _configure_ssl() method to keep the __init__ relatively lean?","commit_id":"2105d4efa7288c23d89a48fd584aa0853254f19b"},{"author":{"_account_id":1132,"name":"Brian Waldon","email":"brian@waldon.cc","username":"bcwaldon"},"change_message_id":"20621fbc08105bc5671351f51da12f4c570b1358","unresolved":false,"context_lines":[{"line_number":91,"context_line":"            self.sock \u003d sock"},{"line_number":92,"context_line":"            self._tunnel()"},{"line_number":93,"context_line":"        # If there\u0027s no CA File, don\u0027t force Server Certificate Check"},{"line_number":94,"context_line":"        if self.ca_file:"},{"line_number":95,"context_line":"            self.sock \u003d ssl.wrap_socket(sock, self.key_file, self.cert_file,"},{"line_number":96,"context_line":"                                        ca_certs\u003dself.ca_file,"},{"line_number":97,"context_line":"                                        cert_reqs\u003dssl.CERT_REQUIRED)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAA3%2F%2F%2BoY%3D","line":94,"updated":"2011-08-10 14:39:08.000000000","message":"Instead of if/else, how about this:\n\nif self.ca_file:\n    kwargs \u003d {\u0027cert_reqs\u0027: ssl.CERT_REQUIRED, \u0027ca_certs\u0027: self.ca_file}\nelse:\n    kwargs \u003d {\u0027cert_reqs\u0027: ssl.CERT_NONE}\n\nself.sock \u003d ssl.wrap_socket(sock, self.key_file, self.cert_file, **kwargs)","commit_id":"865549fb46c30a6f2d23debd60b5c074541d2567"},{"author":{"_account_id":1132,"name":"Brian Waldon","email":"brian@waldon.cc","username":"bcwaldon"},"change_message_id":"5076109b8fc6d8db9203d40662f23e96cabc3f30","unresolved":false,"context_lines":[{"line_number":91,"context_line":"            self.sock \u003d sock"},{"line_number":92,"context_line":"            self._tunnel()"},{"line_number":93,"context_line":"        # If there\u0027s no CA File, don\u0027t force Server Certificate Check"},{"line_number":94,"context_line":"        if self.ca_file:"},{"line_number":95,"context_line":"            self.sock \u003d ssl.wrap_socket(sock, self.key_file, self.cert_file,"},{"line_number":96,"context_line":"                                        ca_certs\u003dself.ca_file,"},{"line_number":97,"context_line":"                                        cert_reqs\u003dssl.CERT_REQUIRED)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAA3%2F%2F%2BnU%3D","line":94,"in_reply_to":"AAAAA3%2F%2F%2Bn4%3D","updated":"2011-08-10 15:14:11.000000000","message":"Fine with me","commit_id":"865549fb46c30a6f2d23debd60b5c074541d2567"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"2e30c826e61b82466f74718ac738393822b2a08a","unresolved":false,"context_lines":[{"line_number":91,"context_line":"            self.sock \u003d sock"},{"line_number":92,"context_line":"            self._tunnel()"},{"line_number":93,"context_line":"        # If there\u0027s no CA File, don\u0027t force Server Certificate Check"},{"line_number":94,"context_line":"        if self.ca_file:"},{"line_number":95,"context_line":"            self.sock \u003d ssl.wrap_socket(sock, self.key_file, self.cert_file,"},{"line_number":96,"context_line":"                                        ca_certs\u003dself.ca_file,"},{"line_number":97,"context_line":"                                        cert_reqs\u003dssl.CERT_REQUIRED)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAA3%2F%2F%2Bn4%3D","line":94,"in_reply_to":"AAAAA3%2F%2F%2BoY%3D","updated":"2011-08-10 15:10:51.000000000","message":"Just copy/pasted from the ActiveState example noted in the docstring... ok to leave it as-is?","commit_id":"865549fb46c30a6f2d23debd60b5c074541d2567"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"96a2aeb7e4a3ecf4122fab440bd9dd291e7dbbf6","unresolved":false,"context_lines":[{"line_number":128,"context_line":"        :param auth_tok: The auth token to pass to the server"},{"line_number":129,"context_line":"        :param creds: The credentials to pass to the auth plugin"},{"line_number":130,"context_line":"        :param doc_root: Prefix for all URLs we request from host"},{"line_number":131,"context_line":"        :param key_file: Optional PEM-formatted that contains the private key."},{"line_number":132,"context_line":"                         If use_ssl is True, and this param is None (the"},{"line_number":133,"context_line":"                         default), then an environ variable"},{"line_number":134,"context_line":"                         GLANCE_CLIENT_KEY_FILE is looked for. If no such"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAACX%2F%2F%2FtU%3D","line":131,"updated":"2011-09-19 20:39:26.000000000","message":"\"PEM-formatted...\" what?","commit_id":"f0fa08831a44048f9736d2b51b853643c409b93c"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"96a2aeb7e4a3ecf4122fab440bd9dd291e7dbbf6","unresolved":false,"context_lines":[{"line_number":164,"context_line":"                    msg \u003d (\"You have selected to use SSL in connecting, \""},{"line_number":165,"context_line":"                           \"however you have failed to supply either a \""},{"line_number":166,"context_line":"                           \"key_file parameter or set the \""},{"line_number":167,"context_line":"                           \"GLANCE_CLIENT_KEY_FILE environ variable\")"},{"line_number":168,"context_line":"                    raise exception.ClientConnectionError(msg)"},{"line_number":169,"context_line":"                key_file \u003d os.environ.get(\u0027GLANCE_CLIENT_KEY_FILE\u0027)"},{"line_number":170,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAACX%2F%2F%2FtQ%3D","line":167,"updated":"2011-09-19 20:39:26.000000000","message":"Shouldn\u0027t these be wrapped with _()?","commit_id":"f0fa08831a44048f9736d2b51b853643c409b93c"}],"glance/common/exception.py":[{"author":{"_account_id":1132,"name":"Brian Waldon","email":"brian@waldon.cc","username":"bcwaldon"},"change_message_id":"20621fbc08105bc5671351f51da12f4c570b1358","unresolved":false,"context_lines":[{"line_number":147,"context_line":"    message \u003d \"Invalid content type %(content_type)s\""},{"line_number":148,"context_line":""},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"class BadRegistryConnectionConfiguration(GlanceException):"},{"line_number":151,"context_line":"    message \u003d (\"Registry was not be configured correctly on API server. \""},{"line_number":152,"context_line":"               \"Reason: %(reason)s\")"},{"line_number":153,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAA3%2F%2F%2BoM%3D","line":150,"updated":"2011-08-10 14:39:08.000000000","message":"Typo in the message here","commit_id":"865549fb46c30a6f2d23debd60b5c074541d2567"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"2e30c826e61b82466f74718ac738393822b2a08a","unresolved":false,"context_lines":[{"line_number":147,"context_line":"    message \u003d \"Invalid content type %(content_type)s\""},{"line_number":148,"context_line":""},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"class BadRegistryConnectionConfiguration(GlanceException):"},{"line_number":151,"context_line":"    message \u003d (\"Registry was not be configured correctly on API server. \""},{"line_number":152,"context_line":"               \"Reason: %(reason)s\")"},{"line_number":153,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAA3%2F%2F%2Bn0%3D","line":150,"in_reply_to":"AAAAA3%2F%2F%2BoM%3D","updated":"2011-08-10 15:10:51.000000000","message":"will fix!","commit_id":"865549fb46c30a6f2d23debd60b5c074541d2567"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"96a2aeb7e4a3ecf4122fab440bd9dd291e7dbbf6","unresolved":false,"context_lines":[{"line_number":157,"context_line":""},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"class BadRegistryConnectionConfiguration(GlanceException):"},{"line_number":160,"context_line":"    message \u003d (\"Registry was not configured correctly on API server. \""},{"line_number":161,"context_line":"               \"Reason: %(reason)s\")"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAACX%2F%2F%2FtM%3D","line":160,"updated":"2011-09-19 20:39:26.000000000","message":"Shouldn\u0027t this be wrapped with _()?","commit_id":"f0fa08831a44048f9736d2b51b853643c409b93c"}],"glance/common/wsgi.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"f59b4bd66d8b2afe822088d683c11321e8d73d83","unresolved":false,"context_lines":[{"line_number":65,"context_line":"    bind_addr \u003d (host, port)"},{"line_number":66,"context_line":"    address_family \u003d [addr[0] for addr in socket.getaddrinfo(bind_addr[0],"},{"line_number":67,"context_line":"            bind_addr[1], socket.AF_UNSPEC, socket.SOCK_STREAM)"},{"line_number":68,"context_line":"            if addr[0] in (socket.AF_INET, socket.AF_INET6)][0]"},{"line_number":69,"context_line":"    backlog \u003d int(conf.get(\u0027backlog\u0027, 4096))"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    cert_file \u003d conf.get(\u0027cert_file\u0027)"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAACX%2F%2F9IQ%3D","line":68,"updated":"2011-10-11 15:54:07.000000000","message":"FYI, I recently discovered the hard way that eventlet\u0027s version of getaddrinfo() does not currently support IPv6.","commit_id":"9f2395547b27f062494c95578c2d3b14e9215a2d"}],"glance/registry/__init__.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"96a2aeb7e4a3ecf4122fab440bd9dd291e7dbbf6","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        host \u003d options[\u0027registry_host\u0027]"},{"line_number":44,"context_line":"        port \u003d int(options[\u0027registry_port\u0027])"},{"line_number":45,"context_line":"    except (TypeError, ValueError):"},{"line_number":46,"context_line":"        msg \u003d \"Configuration option was not valid\""},{"line_number":47,"context_line":"        logger.error(msg)"},{"line_number":48,"context_line":"        raise exception.BadRegistryConnectionConfiguration(msg)"},{"line_number":49,"context_line":"    except IndexError:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAACX%2F%2F%2FtI%3D","line":46,"updated":"2011-09-19 20:39:26.000000000","message":"Shouldn\u0027t this be wrapped with _()?","commit_id":"f0fa08831a44048f9736d2b51b853643c409b93c"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"96a2aeb7e4a3ecf4122fab440bd9dd291e7dbbf6","unresolved":false,"context_lines":[{"line_number":86,"context_line":""},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"def add_image_metadata(context, image_meta):"},{"line_number":89,"context_line":"    logger.debug(\"Adding image metadata...\")"},{"line_number":90,"context_line":"    c \u003d get_registry_client(context)"},{"line_number":91,"context_line":"    return c.add_image(image_meta)"},{"line_number":92,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAACX%2F%2F%2FtE%3D","line":89,"updated":"2011-09-19 20:39:26.000000000","message":"Did you mean to remove the i18n here?","commit_id":"f0fa08831a44048f9736d2b51b853643c409b93c"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"f59b4bd66d8b2afe822088d683c11321e8d73d83","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        logger.error(msg)"},{"line_number":48,"context_line":"        raise exception.BadRegistryConnectionConfiguration(msg)"},{"line_number":49,"context_line":"    except IndexError:"},{"line_number":50,"context_line":"        msg \u003d _(\"Could not find requried configuration option\")"},{"line_number":51,"context_line":"        logger.error(msg)"},{"line_number":52,"context_line":"        raise exception.BadRegistryConnectionConfiguration(msg)"},{"line_number":53,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAACX%2F%2F9IM%3D","line":50,"updated":"2011-10-11 15:54:07.000000000","message":"\"required\"","commit_id":"9f2395547b27f062494c95578c2d3b14e9215a2d"}]}
