)]}'
{"api-ref/source/v2/examples/member-batch-update-curl":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"bd25df5d07b32c4359bf88e622308a5266319daf","unresolved":false,"context_lines":[{"line_number":1,"context_line":"curl -X POST -H \"Content-Type: application/json\" -H \"X-Auth-Token: \u003ctoken\u003e\" -d \u0027{\"member\":{\"name\":\"web-server-1\",\"weight\":\"20\",\"admin_state_up\":true,\"subnet_id\":\"bbb35f84-35cc-4b2f-84c2-a6a29bba68aa\",\"address\":\"192.0.2.16\",\"protocol_port\":\"80\",\"monitor_port\":8080}}\u0027 http://198.51.100.10:9876/v2.0/lbaas/pools/4029d267-3983-4224-a3d0-afb3fe16a2cd/members"}],"source_content_type":"application/octet-stream","patch_set":8,"id":"5f2577a7_b6b4e936","line":1,"range":{"start_line":1,"start_character":80,"end_line":1,"end_character":265},"updated":"2017-09-08 21:21:47.000000000","message":"Can we update this to just be the same json in the request example json file?  That would be a more complete example.\njsoncompare.com can minify it down.","commit_id":"f9c0f891340d54af7b3e5ecd1ac548823f1aefe7"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"bd25df5d07b32c4359bf88e622308a5266319daf","unresolved":false,"context_lines":[{"line_number":1,"context_line":"curl -X POST -H \"Content-Type: application/json\" -H \"X-Auth-Token: \u003ctoken\u003e\" -d \u0027{\"member\":{\"name\":\"web-server-1\",\"weight\":\"20\",\"admin_state_up\":true,\"subnet_id\":\"bbb35f84-35cc-4b2f-84c2-a6a29bba68aa\",\"address\":\"192.0.2.16\",\"protocol_port\":\"80\",\"monitor_port\":8080}}\u0027 http://198.51.100.10:9876/v2.0/lbaas/pools/4029d267-3983-4224-a3d0-afb3fe16a2cd/members"}],"source_content_type":"application/octet-stream","patch_set":8,"id":"5f2577a7_56a4a508","line":1,"range":{"start_line":1,"start_character":90,"end_line":1,"end_character":91},"updated":"2017-09-08 21:21:47.000000000","message":"List bracket is missing here.","commit_id":"f9c0f891340d54af7b3e5ecd1ac548823f1aefe7"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"bd25df5d07b32c4359bf88e622308a5266319daf","unresolved":false,"context_lines":[{"line_number":1,"context_line":"curl -X POST -H \"Content-Type: application/json\" -H \"X-Auth-Token: \u003ctoken\u003e\" -d \u0027{\"member\":{\"name\":\"web-server-1\",\"weight\":\"20\",\"admin_state_up\":true,\"subnet_id\":\"bbb35f84-35cc-4b2f-84c2-a6a29bba68aa\",\"address\":\"192.0.2.16\",\"protocol_port\":\"80\",\"monitor_port\":8080}}\u0027 http://198.51.100.10:9876/v2.0/lbaas/pools/4029d267-3983-4224-a3d0-afb3fe16a2cd/members"}],"source_content_type":"application/octet-stream","patch_set":8,"id":"5f2577a7_365b592f","line":1,"range":{"start_line":1,"start_character":8,"end_line":1,"end_character":12},"updated":"2017-09-08 21:21:47.000000000","message":"Shouldn\u0027t this be PUT?","commit_id":"f9c0f891340d54af7b3e5ecd1ac548823f1aefe7"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"bd25df5d07b32c4359bf88e622308a5266319daf","unresolved":false,"context_lines":[{"line_number":1,"context_line":"curl -X POST -H \"Content-Type: application/json\" -H \"X-Auth-Token: \u003ctoken\u003e\" -d \u0027{\"member\":{\"name\":\"web-server-1\",\"weight\":\"20\",\"admin_state_up\":true,\"subnet_id\":\"bbb35f84-35cc-4b2f-84c2-a6a29bba68aa\",\"address\":\"192.0.2.16\",\"protocol_port\":\"80\",\"monitor_port\":8080}}\u0027 http://198.51.100.10:9876/v2.0/lbaas/pools/4029d267-3983-4224-a3d0-afb3fe16a2cd/members"}],"source_content_type":"application/octet-stream","patch_set":8,"id":"5f2577a7_b65f490d","line":1,"range":{"start_line":1,"start_character":82,"end_line":1,"end_character":88},"updated":"2017-09-08 21:21:47.000000000","message":"Shouldn\u0027t this be members?","commit_id":"f9c0f891340d54af7b3e5ecd1ac548823f1aefe7"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"cdb8e2d63209128841268a48d03e27602fffea38","unresolved":false,"context_lines":[{"line_number":1,"context_line":"curl -X POST -H \"Content-Type: application/json\" -H \"X-Auth-Token: \u003ctoken\u003e\" -d \u0027{\"member\":{\"name\":\"web-server-1\",\"weight\":\"20\",\"admin_state_up\":true,\"subnet_id\":\"bbb35f84-35cc-4b2f-84c2-a6a29bba68aa\",\"address\":\"192.0.2.16\",\"protocol_port\":\"80\",\"monitor_port\":8080}}\u0027 http://198.51.100.10:9876/v2.0/lbaas/pools/4029d267-3983-4224-a3d0-afb3fe16a2cd/members"}],"source_content_type":"application/octet-stream","patch_set":8,"id":"5f2577a7_7a006568","line":1,"range":{"start_line":1,"start_character":80,"end_line":1,"end_character":265},"in_reply_to":"5f2577a7_b6b4e936","updated":"2017-09-12 19:02:15.000000000","message":"I think I had switched the batch-update example and the normal create example. Switched them back.","commit_id":"f9c0f891340d54af7b3e5ecd1ac548823f1aefe7"}],"api-ref/source/v2/examples/member-batch-update-request.json":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"bd25df5d07b32c4359bf88e622308a5266319daf","unresolved":false,"context_lines":[{"line_number":2,"context_line":"    \"members\": ["},{"line_number":3,"context_line":"        {"},{"line_number":4,"context_line":"            \"name\": \"web-server-1\","},{"line_number":5,"context_line":"            \"weight\": \"20\","},{"line_number":6,"context_line":"            \"admin_state_up\": true,"},{"line_number":7,"context_line":"            \"subnet_id\": \"bbb35f84-35cc-4b2f-84c2-a6a29bba68aa\","},{"line_number":8,"context_line":"            \"address\": \"192.0.2.16\","}],"source_content_type":"application/json","patch_set":8,"id":"5f2577a7_76ed6124","line":5,"range":{"start_line":5,"start_character":22,"end_line":5,"end_character":27},"updated":"2017-09-08 21:21:47.000000000","message":"Ugh, we messed these examples up didn\u0027t we.  These are ints not strings. Separate bug for the others, but can we fix those here?","commit_id":"f9c0f891340d54af7b3e5ecd1ac548823f1aefe7"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"cdb8e2d63209128841268a48d03e27602fffea38","unresolved":false,"context_lines":[{"line_number":2,"context_line":"    \"members\": ["},{"line_number":3,"context_line":"        {"},{"line_number":4,"context_line":"            \"name\": \"web-server-1\","},{"line_number":5,"context_line":"            \"weight\": \"20\","},{"line_number":6,"context_line":"            \"admin_state_up\": true,"},{"line_number":7,"context_line":"            \"subnet_id\": \"bbb35f84-35cc-4b2f-84c2-a6a29bba68aa\","},{"line_number":8,"context_line":"            \"address\": \"192.0.2.16\","}],"source_content_type":"application/json","patch_set":8,"id":"5f2577a7_7a350546","line":5,"range":{"start_line":5,"start_character":22,"end_line":5,"end_character":27},"in_reply_to":"5f2577a7_76ed6124","updated":"2017-09-12 19:02:15.000000000","message":"Done","commit_id":"f9c0f891340d54af7b3e5ecd1ac548823f1aefe7"}],"api-ref/source/v2/examples/member-create-curl":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"bd25df5d07b32c4359bf88e622308a5266319daf","unresolved":false,"context_lines":[{"line_number":1,"context_line":"curl -X POST -H \"Content-Type: application/json\" -H \"X-Auth-Token: \u003ctoken\u003e\" -d \u0027{\"members\":[{\"name\":\"web-server-1\",\"weight\":\"20\",\"admin_state_up\":true,\"subnet_id\":\"bbb35f84-35cc-4b2f-84c2-a6a29bba68aa\",\"address\":\"192.0.2.16\",\"protocol_port\":\"80\",\"monitor_port\":8080},{\"name\":\"web-server-2\",\"weight\":\"10\",\"admin_state_up\":true,\"subnet_id\":\"bbb35f84-35cc-4b2f-84c2-a6a29bba68aa\",\"address\":\"192.0.2.17\",\"protocol_port\":\"80\",\"monitor_port\":8080}]}\u0027 http://198.51.100.10:9876/v2.0/lbaas/pools/4029d267-3983-4224-a3d0-afb3fe16a2cd/members"}],"source_content_type":"application/octet-stream","patch_set":8,"id":"5f2577a7_96368db4","line":1,"range":{"start_line":1,"start_character":88,"end_line":1,"end_character":93},"updated":"2017-09-08 21:21:47.000000000","message":"This file should not have changed, right?","commit_id":"f9c0f891340d54af7b3e5ecd1ac548823f1aefe7"}],"api-ref/source/v2/member.inc":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"bd25df5d07b32c4359bf88e622308a5266319daf","unresolved":false,"context_lines":[{"line_number":361,"context_line":"If the request is valid, the service returns the ``Accepted (202)``"},{"line_number":362,"context_line":"response code. To confirm the updates, check that the member provisioning"},{"line_number":363,"context_line":"statuses are ``ACTIVE`` for new or updated members, and that any unspecified"},{"line_number":364,"context_line":"members were correctly deleted. If the statuses are ``PENDING_UPDATE``, use a"},{"line_number":365,"context_line":"GET operation to poll the member objects for changes."},{"line_number":366,"context_line":""},{"line_number":367,"context_line":".. rest_status_code:: success ../http-status.yaml"}],"source_content_type":"text/x-c++src","patch_set":8,"id":"5f2577a7_d62095fa","line":364,"range":{"start_line":364,"start_character":13,"end_line":364,"end_character":30},"updated":"2017-09-08 21:21:47.000000000","message":"nit: Could be in PENDING_DELETE","commit_id":"f9c0f891340d54af7b3e5ecd1ac548823f1aefe7"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"cdb8e2d63209128841268a48d03e27602fffea38","unresolved":false,"context_lines":[{"line_number":361,"context_line":"If the request is valid, the service returns the ``Accepted (202)``"},{"line_number":362,"context_line":"response code. To confirm the updates, check that the member provisioning"},{"line_number":363,"context_line":"statuses are ``ACTIVE`` for new or updated members, and that any unspecified"},{"line_number":364,"context_line":"members were correctly deleted. If the statuses are ``PENDING_UPDATE``, use a"},{"line_number":365,"context_line":"GET operation to poll the member objects for changes."},{"line_number":366,"context_line":""},{"line_number":367,"context_line":".. rest_status_code:: success ../http-status.yaml"}],"source_content_type":"text/x-c++src","patch_set":8,"id":"5f2577a7_5a5fe971","line":364,"range":{"start_line":364,"start_character":13,"end_line":364,"end_character":30},"in_reply_to":"5f2577a7_d62095fa","updated":"2017-09-12 19:02:15.000000000","message":"Done","commit_id":"f9c0f891340d54af7b3e5ecd1ac548823f1aefe7"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"bd25df5d07b32c4359bf88e622308a5266319daf","unresolved":false,"context_lines":[{"line_number":375,"context_line":"   - 403"},{"line_number":376,"context_line":"   - 404"},{"line_number":377,"context_line":"   - 409"},{"line_number":378,"context_line":"   - 500"},{"line_number":379,"context_line":""},{"line_number":380,"context_line":"Request"},{"line_number":381,"context_line":"-------"}],"source_content_type":"text/x-c++src","patch_set":8,"id":"5f2577a7_9661ed3c","line":378,"range":{"start_line":378,"start_character":5,"end_line":378,"end_character":8},"updated":"2017-09-08 21:21:47.000000000","message":"503 is also valid here","commit_id":"f9c0f891340d54af7b3e5ecd1ac548823f1aefe7"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"cdb8e2d63209128841268a48d03e27602fffea38","unresolved":false,"context_lines":[{"line_number":375,"context_line":"   - 403"},{"line_number":376,"context_line":"   - 404"},{"line_number":377,"context_line":"   - 409"},{"line_number":378,"context_line":"   - 500"},{"line_number":379,"context_line":""},{"line_number":380,"context_line":"Request"},{"line_number":381,"context_line":"-------"}],"source_content_type":"text/x-c++src","patch_set":8,"id":"5f2577a7_fae455ae","line":378,"range":{"start_line":378,"start_character":5,"end_line":378,"end_character":8},"in_reply_to":"5f2577a7_9661ed3c","updated":"2017-09-12 19:02:15.000000000","message":"It\u0027s also missing everywhere else then... But, done.","commit_id":"f9c0f891340d54af7b3e5ecd1ac548823f1aefe7"}],"octavia/api/handlers/controller_simulator/handler.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"0f43b441f4f6a7fd3829c7630baecd2fc115ae05","unresolved":false,"context_lines":[{"line_number":395,"context_line":"        member.id \u003d old_member.id"},{"line_number":396,"context_line":"        simulate_controller(member, update\u003dTrue)"},{"line_number":397,"context_line":""},{"line_number":398,"context_line":"    def batch_update(self, old_member_ids, new_member_ids, updated_members):"},{"line_number":399,"context_line":"        for m in updated_members:"},{"line_number":400,"context_line":"            validate_input(data_models.Member, m)"},{"line_number":401,"context_line":"        LOG.info(\"%(entity)s handling the batch update of members: \""}],"source_content_type":"text/x-python","patch_set":5,"id":"ff346bd7_59e9747e","line":398,"updated":"2017-07-21 23:32:22.000000000","message":"Missing unit test (like the rest of this darn file)","commit_id":"611b0a1a8427f12d3f3b2b4db391ccc85b6046cf"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"af339a6fee7b039668f54023e8d9a9b232656731","unresolved":false,"context_lines":[{"line_number":395,"context_line":"        member.id \u003d old_member.id"},{"line_number":396,"context_line":"        simulate_controller(member, update\u003dTrue)"},{"line_number":397,"context_line":""},{"line_number":398,"context_line":"    def batch_update(self, old_member_ids, new_member_ids, updated_members):"},{"line_number":399,"context_line":"        for m in updated_members:"},{"line_number":400,"context_line":"            validate_input(data_models.Member, m)"},{"line_number":401,"context_line":"        LOG.info(\"%(entity)s handling the batch update of members: \""}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_b964c8ba","line":398,"in_reply_to":"ff346bd7_59e9747e","updated":"2017-08-08 21:21:04.000000000","message":"Yep.","commit_id":"611b0a1a8427f12d3f3b2b4db391ccc85b6046cf"}],"octavia/api/handlers/queue/producer.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"0f43b441f4f6a7fd3829c7630baecd2fc115ae05","unresolved":false,"context_lines":[{"line_number":152,"context_line":"    def payload_class(self):"},{"line_number":153,"context_line":"        return self.PAYLOAD_CLASS"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"    def batch_update(self, old_ids, new_ids, updated_models):"},{"line_number":156,"context_line":"        \"\"\"sends an update message to the controller via oslo.messaging"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"        :param updated_models:"}],"source_content_type":"text/x-python","patch_set":5,"id":"ff346bd7_8719b489","line":155,"updated":"2017-07-21 23:32:22.000000000","message":"Unit test?","commit_id":"611b0a1a8427f12d3f3b2b4db391ccc85b6046cf"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"af339a6fee7b039668f54023e8d9a9b232656731","unresolved":false,"context_lines":[{"line_number":152,"context_line":"    def payload_class(self):"},{"line_number":153,"context_line":"        return self.PAYLOAD_CLASS"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"    def batch_update(self, old_ids, new_ids, updated_models):"},{"line_number":156,"context_line":"        \"\"\"sends an update message to the controller via oslo.messaging"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"        :param updated_models:"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_5e7dc21a","line":155,"in_reply_to":"ff346bd7_8719b489","updated":"2017-08-08 21:21:04.000000000","message":"Done","commit_id":"611b0a1a8427f12d3f3b2b4db391ccc85b6046cf"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"0f43b441f4f6a7fd3829c7630baecd2fc115ae05","unresolved":false,"context_lines":[{"line_number":155,"context_line":"    def batch_update(self, old_ids, new_ids, updated_models):"},{"line_number":156,"context_line":"        \"\"\"sends an update message to the controller via oslo.messaging"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"        :param updated_models:"},{"line_number":159,"context_line":"        \"\"\""},{"line_number":160,"context_line":"        updated_dicts \u003d [m.to_dict(render_unsets\u003dFalse)"},{"line_number":161,"context_line":"                         for m in updated_models]"}],"source_content_type":"text/x-python","patch_set":5,"id":"ff346bd7_2718c87f","line":158,"updated":"2017-07-21 23:32:22.000000000","message":"This could be a little more descriptive.  Ok, could just be descriptive....","commit_id":"611b0a1a8427f12d3f3b2b4db391ccc85b6046cf"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"af339a6fee7b039668f54023e8d9a9b232656731","unresolved":false,"context_lines":[{"line_number":155,"context_line":"    def batch_update(self, old_ids, new_ids, updated_models):"},{"line_number":156,"context_line":"        \"\"\"sends an update message to the controller via oslo.messaging"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"        :param updated_models:"},{"line_number":159,"context_line":"        \"\"\""},{"line_number":160,"context_line":"        updated_dicts \u003d [m.to_dict(render_unsets\u003dFalse)"},{"line_number":161,"context_line":"                         for m in updated_models]"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_3e3d5ebb","line":158,"in_reply_to":"ff346bd7_2718c87f","updated":"2017-08-08 21:21:04.000000000","message":"Done","commit_id":"611b0a1a8427f12d3f3b2b4db391ccc85b6046cf"}],"octavia/api/v2/controllers/member.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"0f43b441f4f6a7fd3829c7630baecd2fc115ae05","unresolved":false,"context_lines":[{"line_number":276,"context_line":"                         body\u003dmember_types.MembersRootPUT, status_code\u003d202)"},{"line_number":277,"context_line":"    def put(self, members_):"},{"line_number":278,"context_line":"        \"\"\"Updates all members.\"\"\""},{"line_number":279,"context_line":"        members \u003d members_.members"},{"line_number":280,"context_line":"        context \u003d pecan.request.context.get(\u0027octavia_context\u0027)"},{"line_number":281,"context_line":""},{"line_number":282,"context_line":"        db_pool \u003d self._get_db_pool(context.session, self.pool_id)"}],"source_content_type":"text/x-python","patch_set":5,"id":"ff346bd7_39e11000","line":279,"updated":"2017-07-21 23:32:22.000000000","message":"Shouldn\u0027t we check if they posted [] here?","commit_id":"611b0a1a8427f12d3f3b2b4db391ccc85b6046cf"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"af339a6fee7b039668f54023e8d9a9b232656731","unresolved":false,"context_lines":[{"line_number":276,"context_line":"                         body\u003dmember_types.MembersRootPUT, status_code\u003d202)"},{"line_number":277,"context_line":"    def put(self, members_):"},{"line_number":278,"context_line":"        \"\"\"Updates all members.\"\"\""},{"line_number":279,"context_line":"        members \u003d members_.members"},{"line_number":280,"context_line":"        context \u003d pecan.request.context.get(\u0027octavia_context\u0027)"},{"line_number":281,"context_line":""},{"line_number":282,"context_line":"        db_pool \u003d self._get_db_pool(context.session, self.pool_id)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_1e1cda68","line":279,"in_reply_to":"ff346bd7_39e11000","updated":"2017-08-08 21:21:04.000000000","message":"I don\u0027t see how that\u0027d change the logic any? That\u0027d just essentially be a full delete... So really, we should be checking RBAC_POST and RBAC_DELETE and RBAC_PUT to be able to do this operation.","commit_id":"611b0a1a8427f12d3f3b2b4db391ccc85b6046cf"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"0f43b441f4f6a7fd3829c7630baecd2fc115ae05","unresolved":false,"context_lines":[{"line_number":283,"context_line":"        old_members \u003d db_pool.members"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"        self._auth_validate_action(context, db_pool.project_id,"},{"line_number":286,"context_line":"                                   constants.RBAC_DELETE)"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"        with db_api.get_lock_session() as lock_session:"},{"line_number":289,"context_line":"            self._test_lb_and_listener_and_pool_statuses(lock_session)"}],"source_content_type":"text/x-python","patch_set":5,"id":"ff346bd7_b93180ef","line":286,"range":{"start_line":286,"start_character":35,"end_line":286,"end_character":56},"updated":"2017-07-21 23:32:22.000000000","message":"Nope, should be constants.RBAC_PUT","commit_id":"611b0a1a8427f12d3f3b2b4db391ccc85b6046cf"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"af339a6fee7b039668f54023e8d9a9b232656731","unresolved":false,"context_lines":[{"line_number":283,"context_line":"        old_members \u003d db_pool.members"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"        self._auth_validate_action(context, db_pool.project_id,"},{"line_number":286,"context_line":"                                   constants.RBAC_DELETE)"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"        with db_api.get_lock_session() as lock_session:"},{"line_number":289,"context_line":"            self._test_lb_and_listener_and_pool_statuses(lock_session)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_e330630a","line":286,"range":{"start_line":286,"start_character":35,"end_line":286,"end_character":56},"in_reply_to":"ff346bd7_b93180ef","updated":"2017-08-08 21:21:04.000000000","message":"Done","commit_id":"611b0a1a8427f12d3f3b2b4db391ccc85b6046cf"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"0f43b441f4f6a7fd3829c7630baecd2fc115ae05","unresolved":false,"context_lines":[{"line_number":332,"context_line":"                    lock_session, m.id,"},{"line_number":333,"context_line":"                    provisioning_status\u003dconstants.PENDING_DELETE)"},{"line_number":334,"context_line":""},{"line_number":335,"context_line":"            LOG.info(\"Sending Full Member Update to handler\")"},{"line_number":336,"context_line":"            new_member_ids \u003d [m.id for m in new_members_created]"},{"line_number":337,"context_line":"            old_member_ids \u003d [m.id for m in deleted_members]"},{"line_number":338,"context_line":"            self.handler.batch_update("}],"source_content_type":"text/x-python","patch_set":5,"id":"ff346bd7_39f7d0f8","line":335,"range":{"start_line":335,"start_character":16,"end_line":335,"end_character":20},"updated":"2017-07-21 23:32:22.000000000","message":"debug","commit_id":"611b0a1a8427f12d3f3b2b4db391ccc85b6046cf"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"af339a6fee7b039668f54023e8d9a9b232656731","unresolved":false,"context_lines":[{"line_number":332,"context_line":"                    lock_session, m.id,"},{"line_number":333,"context_line":"                    provisioning_status\u003dconstants.PENDING_DELETE)"},{"line_number":334,"context_line":""},{"line_number":335,"context_line":"            LOG.info(\"Sending Full Member Update to handler\")"},{"line_number":336,"context_line":"            new_member_ids \u003d [m.id for m in new_members_created]"},{"line_number":337,"context_line":"            old_member_ids \u003d [m.id for m in deleted_members]"},{"line_number":338,"context_line":"            self.handler.batch_update("}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_83187781","line":335,"range":{"start_line":335,"start_character":16,"end_line":335,"end_character":20},"in_reply_to":"ff346bd7_39f7d0f8","updated":"2017-08-08 21:21:04.000000000","message":"The rest of these are info, in every function of every type I checked... Leaving it as info for now.","commit_id":"611b0a1a8427f12d3f3b2b4db391ccc85b6046cf"}],"octavia/api/v2/controllers/pool.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"bd25df5d07b32c4359bf88e622308a5266319daf","unresolved":false,"context_lines":[{"line_number":320,"context_line":"        \"\"\""},{"line_number":321,"context_line":"        context \u003d pecan.request.context.get(\u0027octavia_context\u0027)"},{"line_number":322,"context_line":"        if pool_id and len(remainder) and (remainder[0] \u003d\u003d \u0027members\u0027 or"},{"line_number":323,"context_line":"                                           remainder[0] \u003d\u003d \u0027healthmonitor\u0027):"},{"line_number":324,"context_line":"            controller \u003d remainder[0]"},{"line_number":325,"context_line":"            remainder \u003d remainder[1:]"},{"line_number":326,"context_line":"            db_pool \u003d self.repositories.pool.get(context.session, id\u003dpool_id)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f2577a7_96044dc8","line":323,"range":{"start_line":323,"start_character":43,"end_line":323,"end_character":74},"updated":"2017-09-08 21:21:47.000000000","message":"Is this still needed?","commit_id":"f9c0f891340d54af7b3e5ecd1ac548823f1aefe7"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"cdb8e2d63209128841268a48d03e27602fffea38","unresolved":false,"context_lines":[{"line_number":320,"context_line":"        \"\"\""},{"line_number":321,"context_line":"        context \u003d pecan.request.context.get(\u0027octavia_context\u0027)"},{"line_number":322,"context_line":"        if pool_id and len(remainder) and (remainder[0] \u003d\u003d \u0027members\u0027 or"},{"line_number":323,"context_line":"                                           remainder[0] \u003d\u003d \u0027healthmonitor\u0027):"},{"line_number":324,"context_line":"            controller \u003d remainder[0]"},{"line_number":325,"context_line":"            remainder \u003d remainder[1:]"},{"line_number":326,"context_line":"            db_pool \u003d self.repositories.pool.get(context.session, id\u003dpool_id)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f2577a7_fa2e95a3","line":323,"range":{"start_line":323,"start_character":43,"end_line":323,"end_character":74},"in_reply_to":"5f2577a7_96044dc8","updated":"2017-09-12 19:02:15.000000000","message":"No. Done.","commit_id":"f9c0f891340d54af7b3e5ecd1ac548823f1aefe7"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"bd25df5d07b32c4359bf88e622308a5266319daf","unresolved":false,"context_lines":[{"line_number":332,"context_line":"                if remainder:"},{"line_number":333,"context_line":"                    return member.MemberController("},{"line_number":334,"context_line":"                        pool_id\u003ddb_pool.id), remainder"},{"line_number":335,"context_line":"                else:"},{"line_number":336,"context_line":"                    return member.MembersController("},{"line_number":337,"context_line":"                        pool_id\u003ddb_pool.id), remainder"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f2577a7_d66c159e","line":335,"updated":"2017-09-08 21:21:47.000000000","message":"Wouldn\u0027t this push a single member create POST call to the \"MembersController\" instead of \"MemberController\"?","commit_id":"f9c0f891340d54af7b3e5ecd1ac548823f1aefe7"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"cdb8e2d63209128841268a48d03e27602fffea38","unresolved":false,"context_lines":[{"line_number":332,"context_line":"                if remainder:"},{"line_number":333,"context_line":"                    return member.MemberController("},{"line_number":334,"context_line":"                        pool_id\u003ddb_pool.id), remainder"},{"line_number":335,"context_line":"                else:"},{"line_number":336,"context_line":"                    return member.MembersController("},{"line_number":337,"context_line":"                        pool_id\u003ddb_pool.id), remainder"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f2577a7_5a3ec9da","line":335,"in_reply_to":"5f2577a7_d66c159e","updated":"2017-09-12 19:02:15.000000000","message":"Yes, but that\u0027s fine because MembersController *is an instance of* MemberController that just overrides PUT, and PUT will always have a remainder for single-member updates and no remainder for batch updates.","commit_id":"f9c0f891340d54af7b3e5ecd1ac548823f1aefe7"}],"octavia/controller/queue/endpoint.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"0f43b441f4f6a7fd3829c7630baecd2fc115ae05","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        LOG.info(\u0027Updating member \\\u0027%s\\\u0027...\u0027, member_id)"},{"line_number":100,"context_line":"        self.worker.update_member(member_id, member_updates)"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    def batch_update_members(self, context, old_member_ids, new_member_ids,"},{"line_number":103,"context_line":"                             updated_members):"},{"line_number":104,"context_line":"        updated_member_ids \u003d [m.get(\u0027id\u0027) for m in updated_members]"},{"line_number":105,"context_line":"        LOG.info("}],"source_content_type":"text/x-python","patch_set":5,"id":"ff346bd7_b91d00bf","line":102,"updated":"2017-07-21 23:32:22.000000000","message":"Unit test missing","commit_id":"611b0a1a8427f12d3f3b2b4db391ccc85b6046cf"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"af339a6fee7b039668f54023e8d9a9b232656731","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        LOG.info(\u0027Updating member \\\u0027%s\\\u0027...\u0027, member_id)"},{"line_number":100,"context_line":"        self.worker.update_member(member_id, member_updates)"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    def batch_update_members(self, context, old_member_ids, new_member_ids,"},{"line_number":103,"context_line":"                             updated_members):"},{"line_number":104,"context_line":"        updated_member_ids \u003d [m.get(\u0027id\u0027) for m in updated_members]"},{"line_number":105,"context_line":"        LOG.info("}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_5ecb8252","line":102,"in_reply_to":"ff346bd7_b91d00bf","updated":"2017-08-08 21:21:04.000000000","message":"Done","commit_id":"611b0a1a8427f12d3f3b2b4db391ccc85b6046cf"}],"octavia/controller/worker/controller_worker.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"0f43b441f4f6a7fd3829c7630baecd2fc115ae05","unresolved":false,"context_lines":[{"line_number":376,"context_line":"                                               log\u003dLOG):"},{"line_number":377,"context_line":"            delete_member_tf.run()"},{"line_number":378,"context_line":""},{"line_number":379,"context_line":"    def batch_update_members(self, old_member_ids, new_member_ids,"},{"line_number":380,"context_line":"                             updated_members):"},{"line_number":381,"context_line":"        old_members \u003d [self._member_repo.get(db_apis.get_session(), id\u003dmid)"},{"line_number":382,"context_line":"                       for mid in old_member_ids]"}],"source_content_type":"text/x-python","patch_set":5,"id":"ff346bd7_598294ca","line":379,"updated":"2017-07-21 23:32:22.000000000","message":"Missing unit test","commit_id":"611b0a1a8427f12d3f3b2b4db391ccc85b6046cf"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"af339a6fee7b039668f54023e8d9a9b232656731","unresolved":false,"context_lines":[{"line_number":376,"context_line":"                                               log\u003dLOG):"},{"line_number":377,"context_line":"            delete_member_tf.run()"},{"line_number":378,"context_line":""},{"line_number":379,"context_line":"    def batch_update_members(self, old_member_ids, new_member_ids,"},{"line_number":380,"context_line":"                             updated_members):"},{"line_number":381,"context_line":"        old_members \u003d [self._member_repo.get(db_apis.get_session(), id\u003dmid)"},{"line_number":382,"context_line":"                       for mid in old_member_ids]"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_be7dcee8","line":379,"in_reply_to":"ff346bd7_598294ca","updated":"2017-08-08 21:21:04.000000000","message":"Done","commit_id":"611b0a1a8427f12d3f3b2b4db391ccc85b6046cf"}],"octavia/controller/worker/flows/member_flows.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"0f43b441f4f6a7fd3829c7630baecd2fc115ae05","unresolved":false,"context_lines":[{"line_number":122,"context_line":"                                             constants.LISTENERS]))"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        return update_member_flow"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    def get_batch_update_members_flow(self, old_members, new_members,"},{"line_number":127,"context_line":"                                      updated_members):"},{"line_number":128,"context_line":"        \"\"\"Create a flow to batch update members"}],"source_content_type":"text/x-python","patch_set":5,"id":"ff346bd7_3960f032","line":125,"updated":"2017-07-21 23:32:22.000000000","message":"Missing unit test","commit_id":"611b0a1a8427f12d3f3b2b4db391ccc85b6046cf"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"af339a6fee7b039668f54023e8d9a9b232656731","unresolved":false,"context_lines":[{"line_number":122,"context_line":"                                             constants.LISTENERS]))"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        return update_member_flow"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    def get_batch_update_members_flow(self, old_members, new_members,"},{"line_number":127,"context_line":"                                      updated_members):"},{"line_number":128,"context_line":"        \"\"\"Create a flow to batch update members"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_9ed0cacb","line":125,"in_reply_to":"ff346bd7_3960f032","updated":"2017-08-08 21:21:04.000000000","message":"Done","commit_id":"611b0a1a8427f12d3f3b2b4db391ccc85b6046cf"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"0f43b441f4f6a7fd3829c7630baecd2fc115ae05","unresolved":false,"context_lines":[{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        return update_member_flow"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    def get_batch_update_members_flow(self, old_members, new_members,"},{"line_number":127,"context_line":"                                      updated_members):"},{"line_number":128,"context_line":"        \"\"\"Create a flow to batch update members"},{"line_number":129,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"ff346bd7_39391041","line":126,"range":{"start_line":126,"start_character":8,"end_line":126,"end_character":37},"updated":"2017-07-21 23:32:22.000000000","message":"Please add this to the flow documentation list:\nhttps://github.com/openstack/octavia/blob/master/tools/flow-list.txt","commit_id":"611b0a1a8427f12d3f3b2b4db391ccc85b6046cf"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"af339a6fee7b039668f54023e8d9a9b232656731","unresolved":false,"context_lines":[{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        return update_member_flow"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    def get_batch_update_members_flow(self, old_members, new_members,"},{"line_number":127,"context_line":"                                      updated_members):"},{"line_number":128,"context_line":"        \"\"\"Create a flow to batch update members"},{"line_number":129,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_1ee4daab","line":126,"range":{"start_line":126,"start_character":8,"end_line":126,"end_character":37},"in_reply_to":"ff346bd7_39391041","updated":"2017-08-08 21:21:04.000000000","message":"Done","commit_id":"611b0a1a8427f12d3f3b2b4db391ccc85b6046cf"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"af339a6fee7b039668f54023e8d9a9b232656731","unresolved":false,"context_lines":[{"line_number":154,"context_line":"                inject\u003d{constants.MEMBER: m},"},{"line_number":155,"context_line":"                name\u003d\u0027{flow}-{id}\u0027.format("},{"line_number":156,"context_line":"                    id\u003dm.id, flow\u003dconstants.DECREMENT_MEMBER_QUOTA_FLOW)))"},{"line_number":157,"context_line":"            unordered_members_flow.add(database_tasks.MarkMemberActiveInDB("},{"line_number":158,"context_line":"                inject\u003d{constants.MEMBER: m},"},{"line_number":159,"context_line":"                name\u003d\u0027{flow}-{id}\u0027.format("},{"line_number":160,"context_line":"                    id\u003dm.id, flow\u003dconstants.MARK_MEMBER_ACTIVE_INDB)))"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"        # Create new members"},{"line_number":163,"context_line":"        unordered_members_flow.add("}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_396698ef","line":160,"range":{"start_line":157,"start_character":12,"end_line":160,"end_character":70},"updated":"2017-08-08 21:21:04.000000000","message":"This should not have been done at all... Whoops.","commit_id":"611b0a1a8427f12d3f3b2b4db391ccc85b6046cf"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"0f43b441f4f6a7fd3829c7630baecd2fc115ae05","unresolved":false,"context_lines":[{"line_number":166,"context_line":"                name\u003d\u0027{flow}-created\u0027.format("},{"line_number":167,"context_line":"                    flow\u003dconstants.MEMBER_TO_ERROR_ON_REVERT_FLOW)))"},{"line_number":168,"context_line":"        for m in new_members:"},{"line_number":169,"context_line":"            unordered_members_flow.add(database_tasks.MarkMemberActiveInDB("},{"line_number":170,"context_line":"                inject\u003d{constants.MEMBER: m},"},{"line_number":171,"context_line":"                name\u003d\u0027{flow}-{id}\u0027.format("},{"line_number":172,"context_line":"                    id\u003dm.id, flow\u003dconstants.MARK_MEMBER_ACTIVE_INDB)))"}],"source_content_type":"text/x-python","patch_set":5,"id":"ff346bd7_59e614eb","line":169,"range":{"start_line":169,"start_character":39,"end_line":169,"end_character":74},"updated":"2017-07-21 23:32:22.000000000","message":"This should really come after the ListenersUpdate below as they are not actually active yet.","commit_id":"611b0a1a8427f12d3f3b2b4db391ccc85b6046cf"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"af339a6fee7b039668f54023e8d9a9b232656731","unresolved":false,"context_lines":[{"line_number":166,"context_line":"                name\u003d\u0027{flow}-created\u0027.format("},{"line_number":167,"context_line":"                    flow\u003dconstants.MEMBER_TO_ERROR_ON_REVERT_FLOW)))"},{"line_number":168,"context_line":"        for m in new_members:"},{"line_number":169,"context_line":"            unordered_members_flow.add(database_tasks.MarkMemberActiveInDB("},{"line_number":170,"context_line":"                inject\u003d{constants.MEMBER: m},"},{"line_number":171,"context_line":"                name\u003d\u0027{flow}-{id}\u0027.format("},{"line_number":172,"context_line":"                    id\u003dm.id, flow\u003dconstants.MARK_MEMBER_ACTIVE_INDB)))"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_59403c36","line":169,"range":{"start_line":169,"start_character":39,"end_line":169,"end_character":74},"in_reply_to":"ff346bd7_59e614eb","updated":"2017-08-08 21:21:04.000000000","message":"Done","commit_id":"611b0a1a8427f12d3f3b2b4db391ccc85b6046cf"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"0f43b441f4f6a7fd3829c7630baecd2fc115ae05","unresolved":false,"context_lines":[{"line_number":188,"context_line":"                inject\u003d{constants.MEMBER: m, constants.UPDATE_DICT: um},"},{"line_number":189,"context_line":"                name\u003d\u0027{flow}-{id}\u0027.format("},{"line_number":190,"context_line":"                    id\u003dm.id, flow\u003dconstants.UPDATE_MEMBER_INDB)))"},{"line_number":191,"context_line":"            unordered_members_flow.add(database_tasks.MarkMemberActiveInDB("},{"line_number":192,"context_line":"                inject\u003d{constants.MEMBER: m},"},{"line_number":193,"context_line":"                name\u003d\u0027{flow}-{id}\u0027.format("},{"line_number":194,"context_line":"                    id\u003dm.id, flow\u003dconstants.MARK_MEMBER_ACTIVE_INDB)))"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"        batch_update_members_flow.add(unordered_members_flow)"},{"line_number":197,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"ff346bd7_3904707b","line":194,"range":{"start_line":191,"start_character":0,"end_line":194,"end_character":70},"updated":"2017-07-21 23:32:22.000000000","message":"This should really come after the ListenersUpdate below as they are not actually active yet.","commit_id":"611b0a1a8427f12d3f3b2b4db391ccc85b6046cf"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"af339a6fee7b039668f54023e8d9a9b232656731","unresolved":false,"context_lines":[{"line_number":188,"context_line":"                inject\u003d{constants.MEMBER: m, constants.UPDATE_DICT: um},"},{"line_number":189,"context_line":"                name\u003d\u0027{flow}-{id}\u0027.format("},{"line_number":190,"context_line":"                    id\u003dm.id, flow\u003dconstants.UPDATE_MEMBER_INDB)))"},{"line_number":191,"context_line":"            unordered_members_flow.add(database_tasks.MarkMemberActiveInDB("},{"line_number":192,"context_line":"                inject\u003d{constants.MEMBER: m},"},{"line_number":193,"context_line":"                name\u003d\u0027{flow}-{id}\u0027.format("},{"line_number":194,"context_line":"                    id\u003dm.id, flow\u003dconstants.MARK_MEMBER_ACTIVE_INDB)))"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"        batch_update_members_flow.add(unordered_members_flow)"},{"line_number":197,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_393d78bb","line":194,"range":{"start_line":191,"start_character":0,"end_line":194,"end_character":70},"in_reply_to":"ff346bd7_3904707b","updated":"2017-08-08 21:21:04.000000000","message":"Done","commit_id":"611b0a1a8427f12d3f3b2b4db391ccc85b6046cf"},{"author":{"_account_id":10850,"name":"German Eichberger","email":"german.eichberger@gmail.com","username":"german"},"change_message_id":"919f93bd4171566be78cd29873176b8ea4c491d6","unresolved":false,"context_lines":[{"line_number":168,"context_line":"                database_tasks.MarkMemberActiveInDB("},{"line_number":169,"context_line":"                    inject\u003d{constants.MEMBER: m},"},{"line_number":170,"context_line":"                    name\u003d\u0027{flow}-{id}\u0027.format("},{"line_number":171,"context_line":"                        id\u003dm.id, flow\u003dconstants.MARK_MEMBER_ACTIVE_INDB)))"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"        # Update existing members"},{"line_number":174,"context_line":"        unordered_members_flow.add("}],"source_content_type":"text/x-python","patch_set":11,"id":"bf57530f_c4930f4f","line":171,"updated":"2017-09-20 23:08:06.000000000","message":"Huh, shouldn\u0027t they marked PENDING given that we haven\u0027t written to the amp yet?","commit_id":"abe43bc732dace1100e53268a59918e1336721e8"},{"author":{"_account_id":10850,"name":"German Eichberger","email":"german.eichberger@gmail.com","username":"german"},"change_message_id":"cc9205e50d6662f1dc54c1fa55756e39b9adaa97","unresolved":false,"context_lines":[{"line_number":168,"context_line":"                database_tasks.MarkMemberActiveInDB("},{"line_number":169,"context_line":"                    inject\u003d{constants.MEMBER: m},"},{"line_number":170,"context_line":"                    name\u003d\u0027{flow}-{id}\u0027.format("},{"line_number":171,"context_line":"                        id\u003dm.id, flow\u003dconstants.MARK_MEMBER_ACTIVE_INDB)))"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"        # Update existing members"},{"line_number":174,"context_line":"        unordered_members_flow.add("}],"source_content_type":"text/x-python","patch_set":11,"id":"9f5c4f37_f8a80678","line":171,"in_reply_to":"9f5c4f37_ad902997","updated":"2017-09-21 14:54:05.000000000","message":"If it\u0027s confusing we might need more comments?","commit_id":"abe43bc732dace1100e53268a59918e1336721e8"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"12788b8d3de681eac3afb88e6ecb5fc9375b3ae7","unresolved":false,"context_lines":[{"line_number":168,"context_line":"                database_tasks.MarkMemberActiveInDB("},{"line_number":169,"context_line":"                    inject\u003d{constants.MEMBER: m},"},{"line_number":170,"context_line":"                    name\u003d\u0027{flow}-{id}\u0027.format("},{"line_number":171,"context_line":"                        id\u003dm.id, flow\u003dconstants.MARK_MEMBER_ACTIVE_INDB)))"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"        # Update existing members"},{"line_number":174,"context_line":"        unordered_members_flow.add("}],"source_content_type":"text/x-python","patch_set":11,"id":"9f5c4f37_ad902997","line":171,"in_reply_to":"bf57530f_c4930f4f","updated":"2017-09-21 01:01:34.000000000","message":"So technically, this is adding all these to a different subflow (\"unordered_members_active_flow\"), which is appended to the main flow on line 213 (AFTER the listener update). It\u0027s a little confusing, sorry...","commit_id":"abe43bc732dace1100e53268a59918e1336721e8"}],"octavia/controller/worker/tasks/lifecycle_tasks.py":[{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"af339a6fee7b039668f54023e8d9a9b232656731","unresolved":false,"context_lines":[{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    def revert(self, member, listeners, loadbalancer, pool, *args, **kwargs):"},{"line_number":139,"context_line":"        self.task_utils.mark_member_prov_status_error(member.id)"},{"line_number":140,"context_line":"        self.task_utils.mark_loadbalancer_prov_status_active(loadbalancer.id)"},{"line_number":141,"context_line":"        for listener in listeners:"},{"line_number":142,"context_line":"            self.task_utils.mark_listener_prov_status_active(listener.id)"},{"line_number":143,"context_line":"        self.task_utils.mark_pool_prov_status_active(pool.id)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_3947b820","line":140,"range":{"start_line":140,"start_character":8,"end_line":140,"end_character":77},"updated":"2017-08-08 21:21:04.000000000","message":"This should probably happen later as well...","commit_id":"611b0a1a8427f12d3f3b2b4db391ccc85b6046cf"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"0f43b441f4f6a7fd3829c7630baecd2fc115ae05","unresolved":false,"context_lines":[{"line_number":143,"context_line":"        self.task_utils.mark_pool_prov_status_active(pool.id)"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"class MembersToErrorOnRevertTask(BaseLifecycleTask):"},{"line_number":147,"context_line":"    \"\"\"Task to set members to ERROR on revert.\"\"\""},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    def execute(self, members, listeners, loadbalancer, pool):"}],"source_content_type":"text/x-python","patch_set":5,"id":"ff346bd7_39d590ba","line":146,"updated":"2017-07-21 23:32:22.000000000","message":"Missing unit test","commit_id":"611b0a1a8427f12d3f3b2b4db391ccc85b6046cf"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"af339a6fee7b039668f54023e8d9a9b232656731","unresolved":false,"context_lines":[{"line_number":143,"context_line":"        self.task_utils.mark_pool_prov_status_active(pool.id)"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"class MembersToErrorOnRevertTask(BaseLifecycleTask):"},{"line_number":147,"context_line":"    \"\"\"Task to set members to ERROR on revert.\"\"\""},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    def execute(self, members, listeners, loadbalancer, pool):"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_1954f4c9","line":146,"in_reply_to":"ff346bd7_39d590ba","updated":"2017-08-08 21:21:04.000000000","message":"Done","commit_id":"611b0a1a8427f12d3f3b2b4db391ccc85b6046cf"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"0f43b441f4f6a7fd3829c7630baecd2fc115ae05","unresolved":false,"context_lines":[{"line_number":156,"context_line":"        self.task_utils.mark_pool_prov_status_active(pool.id)"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"        for m in members:"},{"line_number":159,"context_line":"            self.task_utils.mark_member_prov_status_error(m.id)"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"class PoolToErrorOnRevertTask(BaseLifecycleTask):"}],"source_content_type":"text/x-python","patch_set":5,"id":"ff346bd7_d95324e2","line":159,"updated":"2017-07-21 23:32:22.000000000","message":"Shouldn\u0027t we do this before we release the locks above?","commit_id":"611b0a1a8427f12d3f3b2b4db391ccc85b6046cf"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"af339a6fee7b039668f54023e8d9a9b232656731","unresolved":false,"context_lines":[{"line_number":156,"context_line":"        self.task_utils.mark_pool_prov_status_active(pool.id)"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"        for m in members:"},{"line_number":159,"context_line":"            self.task_utils.mark_member_prov_status_error(m.id)"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"class PoolToErrorOnRevertTask(BaseLifecycleTask):"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_d95f8ce3","line":159,"in_reply_to":"ff346bd7_d95324e2","updated":"2017-08-08 21:21:04.000000000","message":"Probably, yeah. Moving it up. Also moving the loadbalancer-\u003eactive down a bit.","commit_id":"611b0a1a8427f12d3f3b2b4db391ccc85b6046cf"}]}
