)]}'
{"neutron/db/loadbalancer/loadbalancer_db.py":[{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"e4bd0dd14f6b5c0851ed16530abc422adeeddfa8","unresolved":false,"context_lines":[{"line_number":189,"context_line":""},{"line_number":190,"context_line":"    def _get_resource(self, context, model, id):"},{"line_number":191,"context_line":"        try:"},{"line_number":192,"context_line":"            if isinstance(id, dict):"},{"line_number":193,"context_line":"                query \u003d self._model_query(context, model)"},{"line_number":194,"context_line":"                r \u003d query.filter_by(**id).one()"},{"line_number":195,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAP3%2F%2FqRU%3D","line":192,"updated":"2013-07-15 03:41:50.000000000","message":"The param name id implies a single value and not a a dict.  The special behavior surround a dict() seems too magical.","commit_id":"6cbf4d7b013fa84ceb6c0ac6a52f1ae1ee65d1d2"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"0d678ce924d266891690e6cd100bb9bc4e0c6175","unresolved":false,"context_lines":[{"line_number":189,"context_line":""},{"line_number":190,"context_line":"    def _get_resource(self, context, model, id):"},{"line_number":191,"context_line":"        try:"},{"line_number":192,"context_line":"            if isinstance(id, dict):"},{"line_number":193,"context_line":"                query \u003d self._model_query(context, model)"},{"line_number":194,"context_line":"                r \u003d query.filter_by(**id).one()"},{"line_number":195,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAP3%2F%2Fpzk%3D","line":192,"in_reply_to":"AAAAP3%2F%2FqRU%3D","updated":"2013-07-15 10:35:59.000000000","message":"Agree. Will add update_pool_health_monitor()","commit_id":"6cbf4d7b013fa84ceb6c0ac6a52f1ae1ee65d1d2"},{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"7bdd83178489a39deea2819b6958c276ff63a25d","unresolved":false,"context_lines":[{"line_number":597,"context_line":"            assoc \u003d self.get_pool_health_monitor(context, id, pool_id)"},{"line_number":598,"context_line":"            self.assert_modification_allowed(assoc)"},{"line_number":599,"context_line":"            assoc.status \u003d status"},{"line_number":600,"context_line":"            assoc.status_description \u003d status_description"},{"line_number":601,"context_line":""},{"line_number":602,"context_line":"    ########################################################"},{"line_number":603,"context_line":"    # Member DB access"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAQn%2F%2FcB0%3D","line":600,"updated":"2013-07-31 07:55:58.000000000","message":"I think you need to check if status_description is not None, and then update it.\nHaving default argument value implies that it could be omitted. In that case caller would expect status_description is not changed, rather than reset to None","commit_id":"2d4821c8c0851a971419da8e2919671043554da6"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"16b736bfd48a4ad34b6c748a9fa75cf5dce54355","unresolved":false,"context_lines":[{"line_number":597,"context_line":"            assoc \u003d self.get_pool_health_monitor(context, id, pool_id)"},{"line_number":598,"context_line":"            self.assert_modification_allowed(assoc)"},{"line_number":599,"context_line":"            assoc.status \u003d status"},{"line_number":600,"context_line":"            assoc.status_description \u003d status_description"},{"line_number":601,"context_line":""},{"line_number":602,"context_line":"    ########################################################"},{"line_number":603,"context_line":"    # Member DB access"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAQn%2F%2Fb68%3D","line":600,"in_reply_to":"AAAAQn%2F%2FcB0%3D","updated":"2013-07-31 08:33:38.000000000","message":"We need to keep consistency between status and description fields. When caller just wants to update status to ACTIVE he simply calls update(status\u003dACTIVE) and shouldn\u0027t know what description was there before. \nAlso I believe it\u0027s quite unlikely to have same status description for different statuses.","commit_id":"2d4821c8c0851a971419da8e2919671043554da6"}],"neutron/db/migration/alembic_migrations/versions/11c6e18605c8_pool_monitor_status_.py":[{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"e4bd0dd14f6b5c0851ed16530abc422adeeddfa8","unresolved":false,"context_lines":[{"line_number":50,"context_line":"                                                       nullable\u003dFalse))"},{"line_number":51,"context_line":"    op.add_column(\u0027poolmonitorassociations\u0027, sa.Column(\u0027status_description\u0027,"},{"line_number":52,"context_line":"                                                       sa.String(255)))"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"def downgrade(active_plugin\u003dNone, options\u003dNone):"},{"line_number":56,"context_line":"    if not migration.should_run(active_plugin, migration_for_plugins):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAP3%2F%2FqQ8%3D","line":53,"updated":"2013-07-15 03:41:50.000000000","message":"Seems like a default value should be set during the migration.","commit_id":"6cbf4d7b013fa84ceb6c0ac6a52f1ae1ee65d1d2"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"0d678ce924d266891690e6cd100bb9bc4e0c6175","unresolved":false,"context_lines":[{"line_number":50,"context_line":"                                                       nullable\u003dFalse))"},{"line_number":51,"context_line":"    op.add_column(\u0027poolmonitorassociations\u0027, sa.Column(\u0027status_description\u0027,"},{"line_number":52,"context_line":"                                                       sa.String(255)))"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"def downgrade(active_plugin\u003dNone, options\u003dNone):"},{"line_number":56,"context_line":"    if not migration.should_run(active_plugin, migration_for_plugins):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAP3%2F%2FpoU%3D","line":53,"in_reply_to":"AAAAP3%2F%2FqQ8%3D","updated":"2013-07-15 10:35:59.000000000","message":"Done","commit_id":"6cbf4d7b013fa84ceb6c0ac6a52f1ae1ee65d1d2"}],"neutron/extensions/loadbalancer.py":[{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"1ddab581daa5a7da32570c89c41304f6aa9c675a","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"class PoolMonitorAssociationNotFound(qexception.NotFound):"},{"line_number":53,"context_line":"    message \u003d _(\"Monitor %(monitor_id)s is not associated \""},{"line_number":54,"context_line":"                \"with Pool %(pool_id)\")"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"class StateInvalid(qexception.NeutronException):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAQn%2F%2FdWg%3D","line":54,"updated":"2013-07-30 21:27:57.000000000","message":"missing s after pool_id","commit_id":"3825378d6bd39515bb092c3e189814a366470141"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"afec49f5db3f2faefd00776c41656ecfc4f2dca2","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"class PoolMonitorAssociationNotFound(qexception.NotFound):"},{"line_number":53,"context_line":"    message \u003d _(\"Monitor %(monitor_id)s is not associated \""},{"line_number":54,"context_line":"                \"with Pool %(pool_id)\")"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"class StateInvalid(qexception.NeutronException):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAQn%2F%2FcHY%3D","line":54,"in_reply_to":"AAAAQn%2F%2FdWg%3D","updated":"2013-07-31 07:33:47.000000000","message":"this needs to be fixed, thanks","commit_id":"3825378d6bd39515bb092c3e189814a366470141"}],"neutron/services/loadbalancer/drivers/abstract_driver.py":[{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"e4bd0dd14f6b5c0851ed16530abc422adeeddfa8","unresolved":false,"context_lines":[{"line_number":124,"context_line":"    def create_pool_health_monitor(self, context,"},{"line_number":125,"context_line":"                                   health_monitor,"},{"line_number":126,"context_line":"                                   pool_id):"},{"line_number":127,"context_line":"        \"\"\"Driver may call the code below in order to update the status."},{"line_number":128,"context_line":"        self.plugin.update_status(context, PoolMonitorAssociation,"},{"line_number":129,"context_line":"                                  {\u0027monitor_id\u0027: health_monitor[\"id\"],"},{"line_number":130,"context_line":"                                   \u0027pool_id\u0027: pool_id},"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAP3%2F%2FqQ0%3D","line":127,"updated":"2013-07-15 03:41:50.000000000","message":"Again the method for updating does not seem to follow the pattern with the rest of the code base.","commit_id":"6cbf4d7b013fa84ceb6c0ac6a52f1ae1ee65d1d2"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"0d678ce924d266891690e6cd100bb9bc4e0c6175","unresolved":false,"context_lines":[{"line_number":124,"context_line":"    def create_pool_health_monitor(self, context,"},{"line_number":125,"context_line":"                                   health_monitor,"},{"line_number":126,"context_line":"                                   pool_id):"},{"line_number":127,"context_line":"        \"\"\"Driver may call the code below in order to update the status."},{"line_number":128,"context_line":"        self.plugin.update_status(context, PoolMonitorAssociation,"},{"line_number":129,"context_line":"                                  {\u0027monitor_id\u0027: health_monitor[\"id\"],"},{"line_number":130,"context_line":"                                   \u0027pool_id\u0027: pool_id},"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAP3%2F%2FpnU%3D","line":127,"in_reply_to":"AAAAP3%2F%2FqQ0%3D","updated":"2013-07-15 10:35:59.000000000","message":"Done","commit_id":"6cbf4d7b013fa84ceb6c0ac6a52f1ae1ee65d1d2"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"1ddab581daa5a7da32570c89c41304f6aa9c675a","unresolved":false,"context_lines":[{"line_number":125,"context_line":"                                   health_monitor,"},{"line_number":126,"context_line":"                                   pool_id):"},{"line_number":127,"context_line":"        \"\"\"Driver may call the code below in order to update the status."},{"line_number":128,"context_line":"        self.plugin.update_pool_health_monitor(context,"},{"line_number":129,"context_line":"                                               health_monitor[\"id\"],"},{"line_number":130,"context_line":"                                               pool_id,"},{"line_number":131,"context_line":"                                               constants.ACTIVE)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAQn%2F%2FdWU%3D","line":128,"updated":"2013-07-30 21:27:57.000000000","message":"is this meant to be in the docstring?","commit_id":"3825378d6bd39515bb092c3e189814a366470141"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"afec49f5db3f2faefd00776c41656ecfc4f2dca2","unresolved":false,"context_lines":[{"line_number":125,"context_line":"                                   health_monitor,"},{"line_number":126,"context_line":"                                   pool_id):"},{"line_number":127,"context_line":"        \"\"\"Driver may call the code below in order to update the status."},{"line_number":128,"context_line":"        self.plugin.update_pool_health_monitor(context,"},{"line_number":129,"context_line":"                                               health_monitor[\"id\"],"},{"line_number":130,"context_line":"                                               pool_id,"},{"line_number":131,"context_line":"                                               constants.ACTIVE)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAQn%2F%2FcLc%3D","line":128,"in_reply_to":"AAAAQn%2F%2FdWU%3D","updated":"2013-07-31 07:33:47.000000000","message":"I\u0027m not a fan of such approach too, added this for the sake of consistency with other (most of) methods in this module.","commit_id":"3825378d6bd39515bb092c3e189814a366470141"}],"neutron/tests/unit/db/loadbalancer/test_db_loadbalancer.py":[{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"e4bd0dd14f6b5c0851ed16530abc422adeeddfa8","unresolved":false,"context_lines":[{"line_number":1215,"context_line":"                    {\u0027monitor_id\u0027: hm[\u0027health_monitor\u0027][\u0027id\u0027],"},{"line_number":1216,"context_line":"                     \u0027pool_id\u0027: pool[\u0027pool\u0027][\u0027id\u0027]})"},{"line_number":1217,"context_line":"                self.assertEqual(assoc[\u0027status\u0027], \u0027PENDING_CREATE\u0027)"},{"line_number":1218,"context_line":"                self.assertEqual(assoc[\u0027status_description\u0027], None)"},{"line_number":1219,"context_line":""},{"line_number":1220,"context_line":"                self.plugin.update_status("},{"line_number":1221,"context_line":"                    context.get_admin_context(),"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAP3%2F%2FqQw%3D","line":1218,"updated":"2013-07-15 03:41:50.000000000","message":".assertIsNone()","commit_id":"6cbf4d7b013fa84ceb6c0ac6a52f1ae1ee65d1d2"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"0d678ce924d266891690e6cd100bb9bc4e0c6175","unresolved":false,"context_lines":[{"line_number":1215,"context_line":"                    {\u0027monitor_id\u0027: hm[\u0027health_monitor\u0027][\u0027id\u0027],"},{"line_number":1216,"context_line":"                     \u0027pool_id\u0027: pool[\u0027pool\u0027][\u0027id\u0027]})"},{"line_number":1217,"context_line":"                self.assertEqual(assoc[\u0027status\u0027], \u0027PENDING_CREATE\u0027)"},{"line_number":1218,"context_line":"                self.assertEqual(assoc[\u0027status_description\u0027], None)"},{"line_number":1219,"context_line":""},{"line_number":1220,"context_line":"                self.plugin.update_status("},{"line_number":1221,"context_line":"                    context.get_admin_context(),"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAP3%2F%2FpnE%3D","line":1218,"in_reply_to":"AAAAP3%2F%2FqQw%3D","updated":"2013-07-15 10:35:59.000000000","message":"Done","commit_id":"6cbf4d7b013fa84ceb6c0ac6a52f1ae1ee65d1d2"}]}
