)]}'
{"swift/common/db.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"1648caad1cfa062f31b17e01bb870dfb3b776abd","unresolved":false,"context_lines":[{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    def __init__(self, db_file, timeout\u003dBROKER_TIMEOUT, logger\u003dNone,"},{"line_number":197,"context_line":"                 account\u003dNone, container\u003dNone, pending_timeout\u003dNone,"},{"line_number":198,"context_line":"                 stale_reads_ok\u003dFalse, policy_idx\u003d0):"},{"line_number":199,"context_line":"        \"\"\"Encapsulates working with a database.\"\"\""},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"        self.conn \u003d None"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAWH%2F%2FddY%3D","line":198,"updated":"2014-03-17 19:34:45.000000000","message":"It seems weird that you have to specify this to get a broker, we already pass in policy_idx on initialize, and otherwise the database should be the source of truth.  Also it seems at best confusing in the context of an account database.","commit_id":"682910d2bec8a5ae6539622bf634f8970776d459"},{"author":{"_account_id":7479,"name":"paul luse","email":"paul.e.luse@intel.com","username":"peluse"},"change_message_id":"ab085ed13da6006446bcd9bc674300eaacf67e80","unresolved":false,"context_lines":[{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    def __init__(self, db_file, timeout\u003dBROKER_TIMEOUT, logger\u003dNone,"},{"line_number":197,"context_line":"                 account\u003dNone, container\u003dNone, pending_timeout\u003dNone,"},{"line_number":198,"context_line":"                 stale_reads_ok\u003dFalse, policy_idx\u003d0):"},{"line_number":199,"context_line":"        \"\"\"Encapsulates working with a database.\"\"\""},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"        self.conn \u003d None"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAWH%2F%2FWMk%3D","line":198,"in_reply_to":"AAAAWH%2F%2FdPg%3D","updated":"2014-03-18 13:35:04.000000000","message":"Need to chat about this one just a bit...","commit_id":"682910d2bec8a5ae6539622bf634f8970776d459"},{"author":{"_account_id":7479,"name":"paul luse","email":"paul.e.luse@intel.com","username":"peluse"},"change_message_id":"94756b90b1b11823d914ca74390951d2c3c07b3e","unresolved":false,"context_lines":[{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    def __init__(self, db_file, timeout\u003dBROKER_TIMEOUT, logger\u003dNone,"},{"line_number":197,"context_line":"                 account\u003dNone, container\u003dNone, pending_timeout\u003dNone,"},{"line_number":198,"context_line":"                 stale_reads_ok\u003dFalse, policy_idx\u003d0):"},{"line_number":199,"context_line":"        \"\"\"Encapsulates working with a database.\"\"\""},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"        self.conn \u003d None"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAWH%2F%2FdPg%3D","line":198,"in_reply_to":"AAAAWH%2F%2FddY%3D","updated":"2014-03-17 19:48:10.000000000","message":"wrt the account DB comment, I think there\u0027s a decent chance we\u0027ll extend policies to acct/container rings as well at some point in the future so I think that\u0027s less concerning.  I may have misunderstood the flow here a little wrt your weird comment, I\u0027ll take another look there as I address other comments.","commit_id":"682910d2bec8a5ae6539622bf634f8970776d459"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"1648caad1cfa062f31b17e01bb870dfb3b776abd","unresolved":false,"context_lines":[{"line_number":201,"context_line":"        self.conn \u003d None"},{"line_number":202,"context_line":"        self.db_file \u003d db_file"},{"line_number":203,"context_line":"        self.pending_file \u003d self.db_file + \u0027.\u0027 + \\"},{"line_number":204,"context_line":"            get_policy_string(PENDING_BASE, policy_idx)"},{"line_number":205,"context_line":"        self.pending_timeout \u003d pending_timeout or 10"},{"line_number":206,"context_line":"        self.stale_reads_ok \u003d stale_reads_ok"},{"line_number":207,"context_line":"        self.db_dir \u003d os.path.dirname(db_file)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAWH%2F%2Fdbw%3D","line":204,"updated":"2014-03-17 19:34:45.000000000","message":"I think it might look cleaner if you lazy load it from get_info in a property method so there\u0027s no chance of getting it wrong.","commit_id":"682910d2bec8a5ae6539622bf634f8970776d459"}],"swift/container/backend.py":[{"author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"change_message_id":"3f4bb75b44b38411e34614f3fa9ef9f2dfd95226","unresolved":false,"context_lines":[{"line_number":264,"context_line":""},{"line_number":265,"context_line":"        :returns: storage_policy_index"},{"line_number":266,"context_line":"        \"\"\""},{"line_number":267,"context_line":"        self._commit_puts_stale_ok()"},{"line_number":268,"context_line":"        with self.get() as conn:"},{"line_number":269,"context_line":"            try:"},{"line_number":270,"context_line":"                row \u003d conn.execute(\u0027\u0027\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAVn%2F%2B2Mg%3D","line":267,"updated":"2014-03-11 19:13:10.000000000","message":"I don\u0027t think you need to commit pending puts just to read container_stat.\n\nHonestly, I\u0027m lazy enough I\u0027d be tempted to just call broker.get_info() and pick out the storage policy index instead of having a second method.","commit_id":"5c00b435b2998698cc9a0db8c3d05d1d3efec077"},{"author":{"_account_id":7479,"name":"paul luse","email":"paul.e.luse@intel.com","username":"peluse"},"change_message_id":"df604ffad3f0dc438a265def883ace15ab7584e8","unresolved":false,"context_lines":[{"line_number":264,"context_line":""},{"line_number":265,"context_line":"        :returns: storage_policy_index"},{"line_number":266,"context_line":"        \"\"\""},{"line_number":267,"context_line":"        self._commit_puts_stale_ok()"},{"line_number":268,"context_line":"        with self.get() as conn:"},{"line_number":269,"context_line":"            try:"},{"line_number":270,"context_line":"                row \u003d conn.execute(\u0027\u0027\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAVn%2F%2B2Is%3D","line":267,"in_reply_to":"AAAAVn%2F%2B2Mg%3D","updated":"2014-03-11 19:20:07.000000000","message":"yeah, I thought about doing that but figured this get will happen frequently enough that it was worth it to minimize the impact.  I\u0027ll remove the commit pending puts though","commit_id":"5c00b435b2998698cc9a0db8c3d05d1d3efec077"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"1648caad1cfa062f31b17e01bb870dfb3b776abd","unresolved":false,"context_lines":[{"line_number":216,"context_line":"                        deteleted_at timestamp to timestamp"},{"line_number":217,"context_line":"        :param policy_idx:  the policy index"},{"line_number":218,"context_line":"        :param req: the request"},{"line_number":219,"context_line":"        :returns: response"},{"line_number":220,"context_line":"        \"\"\""},{"line_number":221,"context_line":"        record \u003d {\u0027name\u0027: name, \u0027created_at\u0027: timestamp, \u0027size\u0027: size,"},{"line_number":222,"context_line":"                  \u0027content_type\u0027: content_type, \u0027etag\u0027: etag,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAWH%2F%2Fdp4%3D","line":219,"updated":"2014-03-17 19:34:45.000000000","message":"hrmmm... I don\u0027t love the http bleeding into here - probably just pass in the spi and let it raise exception.","commit_id":"682910d2bec8a5ae6539622bf634f8970776d459"},{"author":{"_account_id":7479,"name":"paul luse","email":"paul.e.luse@intel.com","username":"peluse"},"change_message_id":"ab085ed13da6006446bcd9bc674300eaacf67e80","unresolved":false,"context_lines":[{"line_number":216,"context_line":"                        deteleted_at timestamp to timestamp"},{"line_number":217,"context_line":"        :param policy_idx:  the policy index"},{"line_number":218,"context_line":"        :param req: the request"},{"line_number":219,"context_line":"        :returns: response"},{"line_number":220,"context_line":"        \"\"\""},{"line_number":221,"context_line":"        record \u003d {\u0027name\u0027: name, \u0027created_at\u0027: timestamp, \u0027size\u0027: size,"},{"line_number":222,"context_line":"                  \u0027content_type\u0027: content_type, \u0027etag\u0027: etag,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAWH%2F%2FWMU%3D","line":219,"in_reply_to":"AAAAWH%2F%2FdPM%3D","updated":"2014-03-18 13:35:04.000000000","message":"Done","commit_id":"682910d2bec8a5ae6539622bf634f8970776d459"},{"author":{"_account_id":7479,"name":"paul luse","email":"paul.e.luse@intel.com","username":"peluse"},"change_message_id":"94756b90b1b11823d914ca74390951d2c3c07b3e","unresolved":false,"context_lines":[{"line_number":216,"context_line":"                        deteleted_at timestamp to timestamp"},{"line_number":217,"context_line":"        :param policy_idx:  the policy index"},{"line_number":218,"context_line":"        :param req: the request"},{"line_number":219,"context_line":"        :returns: response"},{"line_number":220,"context_line":"        \"\"\""},{"line_number":221,"context_line":"        record \u003d {\u0027name\u0027: name, \u0027created_at\u0027: timestamp, \u0027size\u0027: size,"},{"line_number":222,"context_line":"                  \u0027content_type\u0027: content_type, \u0027etag\u0027: etag,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAWH%2F%2FdPM%3D","line":219,"in_reply_to":"AAAAWH%2F%2Fdp4%3D","updated":"2014-03-17 19:48:10.000000000","message":"didn\u0027t even think of that, OK thanks","commit_id":"682910d2bec8a5ae6539622bf634f8970776d459"}],"swift/container/server.py":[{"author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"change_message_id":"3f4bb75b44b38411e34614f3fa9ef9f2dfd95226","unresolved":false,"context_lines":[{"line_number":289,"context_line":"                    pass"},{"line_number":290,"context_line":"            if not os.path.exists(broker.db_file):"},{"line_number":291,"context_line":"                return HTTPNotFound()"},{"line_number":292,"context_line":"            if broker.get_storage_policy_index() !\u003d new_container_policy:"},{"line_number":293,"context_line":"                return HTTPConflict(body\u003d\u0027Storage Policy Conflict (obj %s \u0027"},{"line_number":294,"context_line":"                                    \u0027cont %s)\u0027 % (new_container_policy,"},{"line_number":295,"context_line":"                                    broker.get_storage_policy_index()),"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAVn%2F%2B2K4%3D","line":292,"updated":"2014-03-11 19:13:10.000000000","message":"Not sure how important this is, but I\u0027d be inclined to use requested_policy_index here, and skip the check if it\u0027s None.\n\nIt\u0027s almost certainly not very important, though. The only way it would matter is a PUT from an object server running pre-policy code where policies.default.idx is not 0, and that\u0027s a crazy scenario.\n\nAlright, forget I even typed this out. :)","commit_id":"5c00b435b2998698cc9a0db8c3d05d1d3efec077"},{"author":{"_account_id":7479,"name":"paul luse","email":"paul.e.luse@intel.com","username":"peluse"},"change_message_id":"df604ffad3f0dc438a265def883ace15ab7584e8","unresolved":false,"context_lines":[{"line_number":289,"context_line":"                    pass"},{"line_number":290,"context_line":"            if not os.path.exists(broker.db_file):"},{"line_number":291,"context_line":"                return HTTPNotFound()"},{"line_number":292,"context_line":"            if broker.get_storage_policy_index() !\u003d new_container_policy:"},{"line_number":293,"context_line":"                return HTTPConflict(body\u003d\u0027Storage Policy Conflict (obj %s \u0027"},{"line_number":294,"context_line":"                                    \u0027cont %s)\u0027 % (new_container_policy,"},{"line_number":295,"context_line":"                                    broker.get_storage_policy_index()),"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAVn%2F%2B2G8%3D","line":292,"in_reply_to":"AAAAVn%2F%2B2K4%3D","updated":"2014-03-11 19:20:07.000000000","message":"that\u0027s funny, I had it coded that way to start with but felt like using this less appropriate name (new_container_policy) was less ugly than checking if requested is none and if so does it not match.  I can put it back that way for sure, if I don\u0027t hear from you while putting the test code in place I\u0027ll leave it...","commit_id":"5c00b435b2998698cc9a0db8c3d05d1d3efec077"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"5dec6dabf182b2beb946c4e98ea4ee7e477851f4","unresolved":false,"context_lines":[{"line_number":302,"context_line":"                return HTTPConflict(body\u003d\u0027Storage Policy Conflict (obj %s\u0027"},{"line_number":303,"context_line":"                                    \u0027 cont %s)\u0027 % (requested_policy_index,"},{"line_number":304,"context_line":"                                    broker.get_info()[\u0027storage_policy_index\u0027]),"},{"line_number":305,"context_line":"                                    request\u003dreq, content_type\u003d\u0027text/plain\u0027)"},{"line_number":306,"context_line":"            broker.put_object(obj, timestamp, int(req.headers[\u0027x-size\u0027]),"},{"line_number":307,"context_line":"                              req.headers[\u0027x-content-type\u0027],"},{"line_number":308,"context_line":"                              req.headers[\u0027x-etag\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWH%2F%2FnVk%3D","line":305,"updated":"2014-03-15 02:08:10.000000000","message":"I think we need to do this on DELETE as well, having a tombstone in the wrong policy is just as bad yeah?","commit_id":"279ba5a93b79245deb3ea6fc11e51ec5a29ef24f"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"1648caad1cfa062f31b17e01bb870dfb3b776abd","unresolved":false,"context_lines":[{"line_number":227,"context_line":"        if self.mount_check and not check_mount(self.root, drive):"},{"line_number":228,"context_line":"            return HTTPInsufficientStorage(drive\u003ddrive, request\u003dreq)"},{"line_number":229,"context_line":"        broker \u003d self._get_container_broker(drive, part, account, container)"},{"line_number":230,"context_line":"        requested_policy_index \u003d None"},{"line_number":231,"context_line":"        if account.startswith(self.auto_create_account_prefix) and obj and \\"},{"line_number":232,"context_line":"                not os.path.exists(broker.db_file):"},{"line_number":233,"context_line":"            requested_policy_index \u003d self.get_and_validate_policy_index(req)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAWH%2F%2FdXI%3D","line":230,"updated":"2014-03-17 19:34:45.000000000","message":"You need to go ahead and populate this from headers in the DELETE obj case.  In a handoff or rebalance situation we may still need to have the container 409.","commit_id":"682910d2bec8a5ae6539622bf634f8970776d459"},{"author":{"_account_id":7479,"name":"paul luse","email":"paul.e.luse@intel.com","username":"peluse"},"change_message_id":"ab085ed13da6006446bcd9bc674300eaacf67e80","unresolved":false,"context_lines":[{"line_number":227,"context_line":"        if self.mount_check and not check_mount(self.root, drive):"},{"line_number":228,"context_line":"            return HTTPInsufficientStorage(drive\u003ddrive, request\u003dreq)"},{"line_number":229,"context_line":"        broker \u003d self._get_container_broker(drive, part, account, container)"},{"line_number":230,"context_line":"        requested_policy_index \u003d None"},{"line_number":231,"context_line":"        if account.startswith(self.auto_create_account_prefix) and obj and \\"},{"line_number":232,"context_line":"                not os.path.exists(broker.db_file):"},{"line_number":233,"context_line":"            requested_policy_index \u003d self.get_and_validate_policy_index(req)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAWH%2F%2FWMI%3D","line":230,"in_reply_to":"AAAAWH%2F%2FdN0%3D","updated":"2014-03-18 13:35:04.000000000","message":"Done","commit_id":"682910d2bec8a5ae6539622bf634f8970776d459"},{"author":{"_account_id":7479,"name":"paul luse","email":"paul.e.luse@intel.com","username":"peluse"},"change_message_id":"94756b90b1b11823d914ca74390951d2c3c07b3e","unresolved":false,"context_lines":[{"line_number":227,"context_line":"        if self.mount_check and not check_mount(self.root, drive):"},{"line_number":228,"context_line":"            return HTTPInsufficientStorage(drive\u003ddrive, request\u003dreq)"},{"line_number":229,"context_line":"        broker \u003d self._get_container_broker(drive, part, account, container)"},{"line_number":230,"context_line":"        requested_policy_index \u003d None"},{"line_number":231,"context_line":"        if account.startswith(self.auto_create_account_prefix) and obj and \\"},{"line_number":232,"context_line":"                not os.path.exists(broker.db_file):"},{"line_number":233,"context_line":"            requested_policy_index \u003d self.get_and_validate_policy_index(req)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAWH%2F%2FdN0%3D","line":230,"in_reply_to":"AAAAWH%2F%2FdXI%3D","updated":"2014-03-17 19:48:10.000000000","message":"gotcha, thanks","commit_id":"682910d2bec8a5ae6539622bf634f8970776d459"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"1648caad1cfa062f31b17e01bb870dfb3b776abd","unresolved":false,"context_lines":[{"line_number":288,"context_line":"            new_container_policy \u003d requested_policy_index"},{"line_number":289,"context_line":"        timestamp \u003d normalize_timestamp(req.headers[\u0027x-timestamp\u0027])"},{"line_number":290,"context_line":"        broker \u003d self._get_container_broker(drive, part, account, container,"},{"line_number":291,"context_line":"                                            policy_idx\u003drequested_policy_index)"},{"line_number":292,"context_line":"        if obj:     # put container object"},{"line_number":293,"context_line":"            if account.startswith(self.auto_create_account_prefix) and \\"},{"line_number":294,"context_line":"                    not os.path.exists(broker.db_file):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAWH%2F%2Fdao%3D","line":291,"updated":"2014-03-17 19:34:45.000000000","message":"it seems like .initialize and .put_object are both going to pass in request_policy_again anyway and this is the only place this is loaded up front so I don\u0027t quite understand why it\u0027s needed?","commit_id":"682910d2bec8a5ae6539622bf634f8970776d459"},{"author":{"_account_id":7479,"name":"paul luse","email":"paul.e.luse@intel.com","username":"peluse"},"change_message_id":"ab085ed13da6006446bcd9bc674300eaacf67e80","unresolved":false,"context_lines":[{"line_number":288,"context_line":"            new_container_policy \u003d requested_policy_index"},{"line_number":289,"context_line":"        timestamp \u003d normalize_timestamp(req.headers[\u0027x-timestamp\u0027])"},{"line_number":290,"context_line":"        broker \u003d self._get_container_broker(drive, part, account, container,"},{"line_number":291,"context_line":"                                            policy_idx\u003drequested_policy_index)"},{"line_number":292,"context_line":"        if obj:     # put container object"},{"line_number":293,"context_line":"            if account.startswith(self.auto_create_account_prefix) and \\"},{"line_number":294,"context_line":"                    not os.path.exists(broker.db_file):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAWH%2F%2FWK8%3D","line":291,"in_reply_to":"AAAAWH%2F%2Fdao%3D","updated":"2014-03-18 13:35:04.000000000","message":"need to talk about this one too...","commit_id":"682910d2bec8a5ae6539622bf634f8970776d459"},{"author":{"_account_id":7479,"name":"paul luse","email":"paul.e.luse@intel.com","username":"peluse"},"change_message_id":"94756b90b1b11823d914ca74390951d2c3c07b3e","unresolved":false,"context_lines":[{"line_number":288,"context_line":"            new_container_policy \u003d requested_policy_index"},{"line_number":289,"context_line":"        timestamp \u003d normalize_timestamp(req.headers[\u0027x-timestamp\u0027])"},{"line_number":290,"context_line":"        broker \u003d self._get_container_broker(drive, part, account, container,"},{"line_number":291,"context_line":"                                            policy_idx\u003drequested_policy_index)"},{"line_number":292,"context_line":"        if obj:     # put container object"},{"line_number":293,"context_line":"            if account.startswith(self.auto_create_account_prefix) and \\"},{"line_number":294,"context_line":"                    not os.path.exists(broker.db_file):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAWH%2F%2FdNI%3D","line":291,"in_reply_to":"AAAAWH%2F%2Fdao%3D","updated":"2014-03-17 19:48:10.000000000","message":"will take another look, thanks","commit_id":"682910d2bec8a5ae6539622bf634f8970776d459"}],"swift/obj/diskfile.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"1648caad1cfa062f31b17e01bb870dfb3b776abd","unresolved":false,"context_lines":[{"line_number":104,"context_line":"            raise ValueError(\"No policy with index %r\" % policy_idx)"},{"line_number":105,"context_line":"        async_dir \u003d ASYNCDIR_BASE + \"-%d\" % int(policy_idx)"},{"line_number":106,"context_line":"    return async_dir"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"def read_metadata(fd):"},{"line_number":110,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAWH%2F%2FdWo%3D","side":"PARENT","line":107,"updated":"2014-03-17 19:34:45.000000000","message":"so that turned out to be a pretty healthy refactor - nice.\n\nI think the diff would be shorter if you went ahead and left these helper methods around but rephrased them as a partial:\n\n    from functools import partial\n\n    get_data_dir \u003d partial(get_policy_string, DATADIR_BASE)\n    get_async_dir \u003d partial(get_policy_string, ASYNCDIR_BASE)","commit_id":"44a260550fa1853e9999661cea36659c1cb9633f"},{"author":{"_account_id":7479,"name":"paul luse","email":"paul.e.luse@intel.com","username":"peluse"},"change_message_id":"ab085ed13da6006446bcd9bc674300eaacf67e80","unresolved":false,"context_lines":[{"line_number":104,"context_line":"            raise ValueError(\"No policy with index %r\" % policy_idx)"},{"line_number":105,"context_line":"        async_dir \u003d ASYNCDIR_BASE + \"-%d\" % int(policy_idx)"},{"line_number":106,"context_line":"    return async_dir"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"def read_metadata(fd):"},{"line_number":110,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAWH%2F%2FWKg%3D","side":"PARENT","line":107,"in_reply_to":"AAAAWH%2F%2FdJ4%3D","updated":"2014-03-18 13:35:04.000000000","message":"Done","commit_id":"44a260550fa1853e9999661cea36659c1cb9633f"},{"author":{"_account_id":7479,"name":"paul luse","email":"paul.e.luse@intel.com","username":"peluse"},"change_message_id":"94756b90b1b11823d914ca74390951d2c3c07b3e","unresolved":false,"context_lines":[{"line_number":104,"context_line":"            raise ValueError(\"No policy with index %r\" % policy_idx)"},{"line_number":105,"context_line":"        async_dir \u003d ASYNCDIR_BASE + \"-%d\" % int(policy_idx)"},{"line_number":106,"context_line":"    return async_dir"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"def read_metadata(fd):"},{"line_number":110,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAWH%2F%2FdJ4%3D","side":"PARENT","line":107,"in_reply_to":"AAAAWH%2F%2FdWo%3D","updated":"2014-03-17 19:48:10.000000000","message":"How interesting, didn\u0027t know anything about this partial deal! Not sure how important it is given the relatively small size of the patch and since its all new to master anyway but I will play with this as it looks sorta cool and might make things more readable","commit_id":"44a260550fa1853e9999661cea36659c1cb9633f"}],"test/unit/container/test_server.py":[{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"14b6ddb3cfae0d6343a2e464d61cf84b12a0b4ba","unresolved":false,"context_lines":[{"line_number":2407,"context_line":"        Add policy index headers for containers created with default POLICY"},{"line_number":2408,"context_line":"        - which in this TestCase is 1."},{"line_number":2409,"context_line":"        \"\"\""},{"line_number":2410,"context_line":"        req.headers[POLICY_INDEX] \u003d POLICIES.default.idx"},{"line_number":2411,"context_line":""},{"line_number":2412,"context_line":""},{"line_number":2413,"context_line":"if __name__ \u003d\u003d \u0027__main__\u0027:"}],"source_content_type":"text/x-python","patch_set":22,"id":"AAAAWn%2F%2F%2B%2BY%3D","line":2410,"updated":"2014-04-08 04:52:23.000000000","message":"I\u0027m just curious, why does this work? Request headers have string values, right (I mean they are _request_ headers, so nothing semantical can parse when they are constructed from HTTP headers)? But here you clearly assign an integer. Which is valid, I suppose, if uses properly convert, but a possibility exists that any tests using this common function _update_object_put_headers (and there\u0027s a bunch) all test something other than is going to occur IRL.","commit_id":"ef50028075a22cb092dd01d26517669eaf778fd9"},{"author":{"_account_id":7479,"name":"paul luse","email":"paul.e.luse@intel.com","username":"peluse"},"change_message_id":"927066f1ed5c6a877225dc85d66c8861cc91183f","unresolved":false,"context_lines":[{"line_number":2407,"context_line":"        Add policy index headers for containers created with default POLICY"},{"line_number":2408,"context_line":"        - which in this TestCase is 1."},{"line_number":2409,"context_line":"        \"\"\""},{"line_number":2410,"context_line":"        req.headers[POLICY_INDEX] \u003d POLICIES.default.idx"},{"line_number":2411,"context_line":""},{"line_number":2412,"context_line":""},{"line_number":2413,"context_line":"if __name__ \u003d\u003d \u0027__main__\u0027:"}],"source_content_type":"text/x-python","patch_set":22,"id":"AAAAWn%2F%2F5BU%3D","line":2410,"in_reply_to":"AAAAWn%2F%2F%2B%2BY%3D","updated":"2014-04-08 17:31:34.000000000","message":"Seems like it would be a good idea to add str().  This whole thing needs a quick rebase anyway, I\u0027ll do it now.  Thanks Pete","commit_id":"ef50028075a22cb092dd01d26517669eaf778fd9"}]}
