)]}'
{"octavia/api/v1/controllers/load_balancer.py":[{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"815acb57deedf8b5fcbe0d333b350c6b8196b929","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        try:"},{"line_number":109,"context_line":"            LOG.info(_LI(\"Sending updated Load Balancer %s to the handler\") %"},{"line_number":110,"context_line":"                     id)"},{"line_number":111,"context_line":"            self.handler.update(id, load_balancer)"},{"line_number":112,"context_line":"        except Exception:"},{"line_number":113,"context_line":"            with excutils.save_and_reraise_exception(reraise\u003dFalse):"},{"line_number":114,"context_line":"                self.repositories.load_balancer.update("}],"source_content_type":"text/x-python","patch_set":9,"id":"7a016987_857c4e21","line":111,"updated":"2015-05-27 16:35:26.000000000","message":"this should be:\n\nself.handler.update(old_db_lb, load_balancer.to_dict())","commit_id":"eec6e1a3a41ca5ea4a81e0a89b801ba81daac3ed"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"d1b0e810284ce25a1d616888192a3f78cdd6fd0c","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        try:"},{"line_number":109,"context_line":"            LOG.info(_LI(\"Sending updated Load Balancer %s to the handler\") %"},{"line_number":110,"context_line":"                     id)"},{"line_number":111,"context_line":"            self.handler.update(id, load_balancer)"},{"line_number":112,"context_line":"        except Exception:"},{"line_number":113,"context_line":"            with excutils.save_and_reraise_exception(reraise\u003dFalse):"},{"line_number":114,"context_line":"                self.repositories.load_balancer.update("}],"source_content_type":"text/x-python","patch_set":9,"id":"7a016987_ecb6143d","line":111,"in_reply_to":"7a016987_857c4e21","updated":"2015-05-28 21:39:57.000000000","message":"Per conversation, should be:\n\nself.handler.update(old_db_lb, load_balancer)","commit_id":"eec6e1a3a41ca5ea4a81e0a89b801ba81daac3ed"},{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"dd3602adc1a5fbc8b888e9d5b0a32644b390fe77","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        try:"},{"line_number":109,"context_line":"            LOG.info(_LI(\"Sending updated Load Balancer %s to the handler\") %"},{"line_number":110,"context_line":"                     id)"},{"line_number":111,"context_line":"            self.handler.update(id, load_balancer)"},{"line_number":112,"context_line":"        except Exception:"},{"line_number":113,"context_line":"            with excutils.save_and_reraise_exception(reraise\u003dFalse):"},{"line_number":114,"context_line":"                self.repositories.load_balancer.update("}],"source_content_type":"text/x-python","patch_set":10,"id":"5afe65bd_2fd7c024","line":111,"updated":"2015-06-03 06:01:52.000000000","message":"handler doesn\u0027t take id, it takes the db model and then the wsme model passed in","commit_id":"4254aa19d6ab3ea0cf7891eb79470c5ef8d85a8d"}],"octavia/api/v1/controllers/member.py":[{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"33c742d48e721025cd51aff70d02b4a428d22317","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        member_dict[\u0027operating_status\u0027] \u003d constants.OFFLINE"},{"line_number":71,"context_line":"        # Verify load balancer is in a mutable status.  If so it can be assumed"},{"line_number":72,"context_line":"        # that the listener is also in a mutable status because a load balancer"},{"line_number":73,"context_line":"        # will only be ACTIVE when all its listeners as ACTIVE."},{"line_number":74,"context_line":"        if not self.repositories.test_and_set_lb_and_listener_prov_status("},{"line_number":75,"context_line":"                session, self.load_balancer_id, self.listener_id,"},{"line_number":76,"context_line":"                constants.PENDING_UPDATE, constants.PENDING_UPDATE):"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa32b979_5f1af918","line":73,"updated":"2015-06-14 12:24:14.000000000","message":"Thank you! These apostrophes were making me a sad panda.","commit_id":"5556f51f52a1419ab9934690d793d236e1d5ca91"}],"octavia/api/v1/handlers/abstract_handler.py":[{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"280de6aa0bd07e756705c80a5808ece982b12680","unresolved":false,"context_lines":[{"line_number":26,"context_line":"        pass"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    @abc.abstractmethod"},{"line_number":29,"context_line":"    def update(self, updated_model, object_id):"},{"line_number":30,"context_line":"        \"\"\"Begins process of actually updating data_model.\"\"\""},{"line_number":31,"context_line":"        pass"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9aa53dc9_cb686bbd","line":29,"updated":"2015-04-07 01:03:59.000000000","message":"id first in arg list","commit_id":"eee0a53eedc9d97c9d43b617f35a61f286bc21c9"},{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"280de6aa0bd07e756705c80a5808ece982b12680","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    Helper class to make any subclass of AbstractHandler explode if it"},{"line_number":43,"context_line":"    is missing any of the required object managers."},{"line_number":44,"context_line":"    \"\"\""},{"line_number":45,"context_line":"    def update(self, updated_model, object_id):"},{"line_number":46,"context_line":"        raise NotImplementedError()"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    def delete(self, object_id):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9aa53dc9_6b5f1f0f","line":45,"updated":"2015-04-07 01:03:59.000000000","message":"same","commit_id":"eee0a53eedc9d97c9d43b617f35a61f286bc21c9"}],"octavia/api/v1/handlers/controller_simulator/handler.py":[{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"91fa87d0552d7f88951fe549f80f97e7f9c6c3c0","unresolved":false,"context_lines":[{"line_number":186,"context_line":"    controller \u003d loadbalancer_controller"},{"line_number":187,"context_line":"    if isinstance(data_model, data_models.Member):"},{"line_number":188,"context_line":"        controller \u003d member_controller"},{"line_number":189,"context_line":"    if isinstance(data_model, data_models.HealthMonitor):"},{"line_number":190,"context_line":"        controller \u003d health_monitor_controller"},{"line_number":191,"context_line":"    elif isinstance(data_model, data_models.Pool):"},{"line_number":192,"context_line":"        controller \u003d pool_controller"}],"source_content_type":"text/x-python","patch_set":7,"id":"3acd31a7_79146df4","line":189,"range":{"start_line":189,"start_character":6,"end_line":189,"end_character":7},"updated":"2015-04-30 16:05:49.000000000","message":"You missed an elif in this chain. :(","commit_id":"ed81df9e49b019f27c86ffa12a267f0c6e866876"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"468fc48de8eb8529a1ae160f084f1efca650ca15","unresolved":false,"context_lines":[{"line_number":186,"context_line":"    controller \u003d loadbalancer_controller"},{"line_number":187,"context_line":"    if isinstance(data_model, data_models.Member):"},{"line_number":188,"context_line":"        controller \u003d member_controller"},{"line_number":189,"context_line":"    if isinstance(data_model, data_models.HealthMonitor):"},{"line_number":190,"context_line":"        controller \u003d health_monitor_controller"},{"line_number":191,"context_line":"    elif isinstance(data_model, data_models.Pool):"},{"line_number":192,"context_line":"        controller \u003d pool_controller"}],"source_content_type":"text/x-python","patch_set":7,"id":"3acd31a7_39cf1558","line":189,"in_reply_to":"3acd31a7_79146df4","updated":"2015-04-30 16:31:29.000000000","message":"Done","commit_id":"ed81df9e49b019f27c86ffa12a267f0c6e866876"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"33c742d48e721025cd51aff70d02b4a428d22317","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    repo \u003d repos.Repositories()"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    def member_controller(member, delete\u003dFalse, update\u003dFalse, create\u003dFalse):"},{"line_number":52,"context_line":"        def session():"},{"line_number":53,"context_line":"            return db_api.get_session()"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        time.sleep(ASYNC_TIME)"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa32b979_5ff199cc","line":52,"updated":"2015-06-14 12:24:14.000000000","message":"Why is this defined as a sub-function of every single controller function? It doesn\u0027t look like it is specific to anything, and could probably just be defined once at a higher level?","commit_id":"5556f51f52a1419ab9934690d793d236e1d5ca91"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"33c742d48e721025cd51aff70d02b4a428d22317","unresolved":false,"context_lines":[{"line_number":147,"context_line":"            db_listener \u003d repo.listener.get(session(), id\u003dlistener.id)"},{"line_number":148,"context_line":"            listener_dict \u003d listener.to_dict()"},{"line_number":149,"context_line":"            if \u0027tls_termination\u0027 in listener_dict:"},{"line_number":150,"context_line":"                del listener_dict[\u0027tls_termination\u0027]"},{"line_number":151,"context_line":"            listener_dict[\u0027operating_status\u0027] \u003d db_listener.operating_status"},{"line_number":152,"context_line":"            repo.listener.update(session(), listener.id, **listener_dict)"},{"line_number":153,"context_line":"        elif create:"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa32b979_1fd3113a","line":150,"updated":"2015-06-14 12:24:14.000000000","message":"Why is this removed? (Just curious, want to make sure I understand how this all works).","commit_id":"5556f51f52a1419ab9934690d793d236e1d5ca91"}],"octavia/tests/functional/api/v1/test_listener.py":[{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"c849e3fdf99c2599dcfedf7609bb67464187aaac","unresolved":false,"context_lines":[{"line_number":147,"context_line":"                         \u0027provisioning_status\u0027: constants.PENDING_UPDATE,"},{"line_number":148,"context_line":"                         \u0027operating_status\u0027: constants.ONLINE}"},{"line_number":149,"context_line":"        listener.update(update_expect)"},{"line_number":150,"context_line":"        self.assertNotEqual(listener, api_listener)"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    def test_update_bad_listener_id(self):"},{"line_number":153,"context_line":"        listener_path \u003d self.LISTENER_PATH.format(lb_id\u003dself.lb.get(\u0027id\u0027),"}],"source_content_type":"text/x-python","patch_set":8,"id":"3acd31a7_a579b395","line":150,"updated":"2015-04-30 19:20:49.000000000","message":"still need to assert appropriate statuses","commit_id":"145d53caddf88369b907217ab506b183c2989f89"}],"octavia/tests/functional/api/v1/test_load_balancer.py":[{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"c849e3fdf99c2599dcfedf7609bb67464187aaac","unresolved":false,"context_lines":[{"line_number":119,"context_line":"        lb \u003d self.set_lb_status(lb.get(\u0027id\u0027))"},{"line_number":120,"context_line":"        self.put(self.LB_PATH.format(lb_id\u003dlb.get(\u0027id\u0027)), lb_json)"},{"line_number":121,"context_line":"        test_lb \u003d self.get(self.LB_PATH.format(lb_id\u003dlb.get(\u0027id\u0027)))"},{"line_number":122,"context_line":"        api_lb \u003d test_lb.json"},{"line_number":123,"context_line":"        r_vip \u003d api_lb.get(\u0027vip\u0027)"},{"line_number":124,"context_line":"        self.assertIsNone(r_vip.get(\u0027network_id\u0027))"},{"line_number":125,"context_line":"        self.assertEqual(\u0027lb1\u0027, api_lb.get(\u0027name\u0027))"}],"source_content_type":"text/x-python","patch_set":8,"id":"3acd31a7_45b09f43","line":122,"updated":"2015-04-30 19:20:49.000000000","message":"this should test the response from the put","commit_id":"145d53caddf88369b907217ab506b183c2989f89"}],"octavia/tests/functional/api/v1/test_member.py":[{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"91fa87d0552d7f88951fe549f80f97e7f9c6c3c0","unresolved":false,"context_lines":[{"line_number":154,"context_line":"        response \u003d self.get(self.member_path.format("},{"line_number":155,"context_line":"            member_id\u003dapi_member.get(\u0027id\u0027)))"},{"line_number":156,"context_line":"        response_body \u003d response.json"},{"line_number":157,"context_line":"        self.assertEqual(old_port, response_body.get(\u0027protocol_port\u0027))"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"        self.assert_correct_lb_status(self.lb.get(\u0027id\u0027),"},{"line_number":160,"context_line":"                                      constants.ACTIVE,"}],"source_content_type":"text/x-python","patch_set":7,"id":"3acd31a7_d9d38137","line":157,"range":{"start_line":157,"start_character":13,"end_line":157,"end_character":24},"updated":"2015-04-30 16:05:49.000000000","message":"This shouldn\u0027t be new_port?","commit_id":"ed81df9e49b019f27c86ffa12a267f0c6e866876"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"fc2d9c4db6e42a66044e2359802f0dba9151c74d","unresolved":false,"context_lines":[{"line_number":154,"context_line":"        response \u003d self.get(self.member_path.format("},{"line_number":155,"context_line":"            member_id\u003dapi_member.get(\u0027id\u0027)))"},{"line_number":156,"context_line":"        response_body \u003d response.json"},{"line_number":157,"context_line":"        self.assertEqual(old_port, response_body.get(\u0027protocol_port\u0027))"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"        self.assert_correct_lb_status(self.lb.get(\u0027id\u0027),"},{"line_number":160,"context_line":"                                      constants.ACTIVE,"}],"source_content_type":"text/x-python","patch_set":7,"id":"3acd31a7_241b6c1d","line":157,"in_reply_to":"3acd31a7_0453d0e2","updated":"2015-04-30 16:34:11.000000000","message":"Possibly then rename the test to something like \"test_api_update_doesnt_trigger_db_update\" which would more accurately reflect what it really tests?","commit_id":"ed81df9e49b019f27c86ffa12a267f0c6e866876"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"468fc48de8eb8529a1ae160f084f1efca650ca15","unresolved":false,"context_lines":[{"line_number":154,"context_line":"        response \u003d self.get(self.member_path.format("},{"line_number":155,"context_line":"            member_id\u003dapi_member.get(\u0027id\u0027)))"},{"line_number":156,"context_line":"        response_body \u003d response.json"},{"line_number":157,"context_line":"        self.assertEqual(old_port, response_body.get(\u0027protocol_port\u0027))"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"        self.assert_correct_lb_status(self.lb.get(\u0027id\u0027),"},{"line_number":160,"context_line":"                                      constants.ACTIVE,"}],"source_content_type":"text/x-python","patch_set":7,"id":"3acd31a7_0453d0e2","line":157,"in_reply_to":"3acd31a7_d9d38137","updated":"2015-04-30 16:31:29.000000000","message":"We discussed this online.  Basically this assertion is to verify that the controller no-longer updates the DB before sending along to the handler.","commit_id":"ed81df9e49b019f27c86ffa12a267f0c6e866876"},{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"c849e3fdf99c2599dcfedf7609bb67464187aaac","unresolved":false,"context_lines":[{"line_number":142,"context_line":"        self.set_lb_status(self.lb.get(\u0027id\u0027))"},{"line_number":143,"context_line":"        new_member \u003d {\u0027protocol_port\u0027: new_port}"},{"line_number":144,"context_line":"        self.put(self.member_path.format(member_id\u003dapi_member.get(\u0027id\u0027)),"},{"line_number":145,"context_line":"                 new_member, status\u003d202)"},{"line_number":146,"context_line":"        self.assert_correct_lb_status(self.lb.get(\u0027id\u0027),"},{"line_number":147,"context_line":"                                      constants.PENDING_UPDATE,"},{"line_number":148,"context_line":"                                      constants.ONLINE)"}],"source_content_type":"text/x-python","patch_set":8,"id":"3acd31a7_05918799","line":145,"updated":"2015-04-30 19:20:49.000000000","message":"this should test the response from the put","commit_id":"145d53caddf88369b907217ab506b183c2989f89"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"33c742d48e721025cd51aff70d02b4a428d22317","unresolved":false,"context_lines":[{"line_number":152,"context_line":"                                            constants.ONLINE)"},{"line_number":153,"context_line":"        self.set_lb_status(self.lb.get(\u0027id\u0027))"},{"line_number":154,"context_line":"        response_body \u003d response.json"},{"line_number":155,"context_line":"        self.assertEqual(old_port, response_body.get(\u0027protocol_port\u0027))"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        self.assert_correct_lb_status(self.lb.get(\u0027id\u0027),"},{"line_number":158,"context_line":"                                      constants.ACTIVE,"}],"source_content_type":"text/x-python","patch_set":14,"id":"fa32b979_ff866d12","line":155,"updated":"2015-06-14 12:24:14.000000000","message":"I still think this is weird, but I *think* I understand why this doesn\u0027t change. Just makes for an odd test.","commit_id":"5556f51f52a1419ab9934690d793d236e1d5ca91"}]}
