)]}'
{"octavia/controller/worker/flows/amphora_flows.py":[{"author":{"_account_id":15226,"name":"Bharath M","email":"bharath.stacker@gmail.com","username":"bharath"},"change_message_id":"8d6bb8620988c1c5769a57f7f3b4c1f41254c058","unresolved":false,"context_lines":[{"line_number":364,"context_line":"        failover_amphora_flow.add(database_tasks.AddAmphoraHeartbeat("},{"line_number":365,"context_line":"            requires\u003dconstants.AMPHORA_ID))"},{"line_number":366,"context_line":"        failover_amphora_flow.add(database_tasks.MarkAmphoraAllocatedInDB("},{"line_number":367,"context_line":"            rebind\u003d{constants.AMPHORA: constants.FAILOVER_AMPHORA},"},{"line_number":368,"context_line":"            requires\u003d(constants.AMPHORA, constants.LOADBALANCER_ID)))"},{"line_number":369,"context_line":""},{"line_number":370,"context_line":"        return failover_amphora_flow"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a5ae5dd_283b4d9e","line":367,"range":{"start_line":367,"start_character":39,"end_line":367,"end_character":65},"updated":"2016-02-09 07:59:42.000000000","message":"Correction: constants.FAILED_AMPHORA","commit_id":"2dc23c5c53e9677449868744301175fcb51afbe5"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"1c7ef56fa91c148bb0a991303e63fd89bff7be22","unresolved":false,"context_lines":[{"line_number":364,"context_line":"        failover_amphora_flow.add(database_tasks.AddAmphoraHeartbeat("},{"line_number":365,"context_line":"            requires\u003dconstants.AMPHORA_ID))"},{"line_number":366,"context_line":"        failover_amphora_flow.add(database_tasks.MarkAmphoraAllocatedInDB("},{"line_number":367,"context_line":"            rebind\u003d{constants.AMPHORA: constants.FAILOVER_AMPHORA},"},{"line_number":368,"context_line":"            requires\u003d(constants.AMPHORA, constants.LOADBALANCER_ID)))"},{"line_number":369,"context_line":""},{"line_number":370,"context_line":"        return failover_amphora_flow"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a57f1b5_7ef59181","line":367,"range":{"start_line":367,"start_character":39,"end_line":367,"end_character":65},"in_reply_to":"3a57f1b5_1e901d95","updated":"2016-02-09 19:12:19.000000000","message":"Gotcha.  I think I was just being explicit to make sure I had the right values farther down.","commit_id":"2dc23c5c53e9677449868744301175fcb51afbe5"},{"author":{"_account_id":15226,"name":"Bharath M","email":"bharath.stacker@gmail.com","username":"bharath"},"change_message_id":"3726d69b14a72e22b407c264174356d5501d9763","unresolved":false,"context_lines":[{"line_number":364,"context_line":"        failover_amphora_flow.add(database_tasks.AddAmphoraHeartbeat("},{"line_number":365,"context_line":"            requires\u003dconstants.AMPHORA_ID))"},{"line_number":366,"context_line":"        failover_amphora_flow.add(database_tasks.MarkAmphoraAllocatedInDB("},{"line_number":367,"context_line":"            rebind\u003d{constants.AMPHORA: constants.FAILOVER_AMPHORA},"},{"line_number":368,"context_line":"            requires\u003d(constants.AMPHORA, constants.LOADBALANCER_ID)))"},{"line_number":369,"context_line":""},{"line_number":370,"context_line":"        return failover_amphora_flow"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a57f1b5_1e901d95","line":367,"range":{"start_line":367,"start_character":39,"end_line":367,"end_character":65},"in_reply_to":"5a5ae5dd_26b5ab7d","updated":"2016-02-09 19:05:24.000000000","message":"You are right. While going through the code, I didn\u0027t see constants.FAILOVER_AMPHORA key being set. Ideally, I think, you do not need a rebind here because constants.AMPHORA was set to the new amphora by a subflow few lines up.","commit_id":"2dc23c5c53e9677449868744301175fcb51afbe5"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"7d9d1909b661320793485af331a5ce4812fc0776","unresolved":false,"context_lines":[{"line_number":364,"context_line":"        failover_amphora_flow.add(database_tasks.AddAmphoraHeartbeat("},{"line_number":365,"context_line":"            requires\u003dconstants.AMPHORA_ID))"},{"line_number":366,"context_line":"        failover_amphora_flow.add(database_tasks.MarkAmphoraAllocatedInDB("},{"line_number":367,"context_line":"            rebind\u003d{constants.AMPHORA: constants.FAILOVER_AMPHORA},"},{"line_number":368,"context_line":"            requires\u003d(constants.AMPHORA, constants.LOADBALANCER_ID)))"},{"line_number":369,"context_line":""},{"line_number":370,"context_line":"        return failover_amphora_flow"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a5ae5dd_26b5ab7d","line":367,"range":{"start_line":367,"start_character":39,"end_line":367,"end_character":65},"in_reply_to":"5a5ae5dd_283b4d9e","updated":"2016-02-09 15:10:10.000000000","message":"Actually, in this case, (IIRC) this is a name for the new amphora.  So it is the \"failover\" amphora, not the one that has failed already.","commit_id":"2dc23c5c53e9677449868744301175fcb51afbe5"}],"octavia/controller/worker/tasks/database_tasks.py":[{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"449ae8e185a1ee5ef825b7ddbcc3a3e6514e2e63","unresolved":false,"context_lines":[{"line_number":601,"context_line":"        \"\"\""},{"line_number":602,"context_line":"        LOG.debug(\u0027Adding entry in amphora health db for amphora: %s\u0027,"},{"line_number":603,"context_line":"                  amphora_id)"},{"line_number":604,"context_line":"        self.amp_health_repo.update(db_apis.get_session(),"},{"line_number":605,"context_line":"                                    amphora_id\u003damphora_id,"},{"line_number":606,"context_line":"                                    last_update\u003ddatetime.datetime.now())"},{"line_number":607,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_99c9e75b","line":604,"range":{"start_line":604,"start_character":29,"end_line":604,"end_character":35},"updated":"2016-01-22 22:58:31.000000000","message":"I need to update this to \"amp_health_repo.create(\"","commit_id":"533eb854b7a66fca1fb66339595ca8a7936a18ff"},{"author":{"_account_id":8157,"name":"Bertrand LALLAU","email":"bertrand.lallau@gmail.com","username":"blallau"},"change_message_id":"a10cc242b0411cb96ee1f5840b40a06c5245f869","unresolved":false,"context_lines":[{"line_number":594,"context_line":""},{"line_number":595,"context_line":""},{"line_number":596,"context_line":"class AddAmphoraHeartbeat(BaseDatabaseTask):"},{"line_number":597,"context_line":"    def execute(self, amphora_id):"},{"line_number":598,"context_line":"        \"\"\"Add a fake heartbeat in the Amphora Health DB."},{"line_number":599,"context_line":""},{"line_number":600,"context_line":"        :param amphora_id: The amphora id to mark busy"},{"line_number":601,"context_line":"        \"\"\""},{"line_number":602,"context_line":"        LOG.debug(\u0027Adding entry in amphora health db for amphora: %s\u0027,"},{"line_number":603,"context_line":"                  amphora_id)"},{"line_number":604,"context_line":"        self.amp_health_repo.update(db_apis.get_session(),"},{"line_number":605,"context_line":"                                    amphora_id\u003damphora_id,"},{"line_number":606,"context_line":"                                    last_update\u003ddatetime.datetime.now())"},{"line_number":607,"context_line":""},{"line_number":608,"context_line":""},{"line_number":609,"context_line":"class MarkLBActiveInDB(BaseDatabaseTask):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_e68089c2","line":606,"range":{"start_line":597,"start_character":3,"end_line":606,"end_character":72},"updated":"2016-01-22 20:24:28.000000000","message":"a revert taskflow method (deleting amphora heartbeat) is not required in this case?","commit_id":"533eb854b7a66fca1fb66339595ca8a7936a18ff"},{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"9b192ab461b8dd9d72808f0f8e92cc4e34507819","unresolved":false,"context_lines":[{"line_number":594,"context_line":""},{"line_number":595,"context_line":""},{"line_number":596,"context_line":"class AddAmphoraHeartbeat(BaseDatabaseTask):"},{"line_number":597,"context_line":"    def execute(self, amphora_id):"},{"line_number":598,"context_line":"        \"\"\"Add a fake heartbeat in the Amphora Health DB."},{"line_number":599,"context_line":""},{"line_number":600,"context_line":"        :param amphora_id: The amphora id to mark busy"},{"line_number":601,"context_line":"        \"\"\""},{"line_number":602,"context_line":"        LOG.debug(\u0027Adding entry in amphora health db for amphora: %s\u0027,"},{"line_number":603,"context_line":"                  amphora_id)"},{"line_number":604,"context_line":"        self.amp_health_repo.update(db_apis.get_session(),"},{"line_number":605,"context_line":"                                    amphora_id\u003damphora_id,"},{"line_number":606,"context_line":"                                    last_update\u003ddatetime.datetime.now())"},{"line_number":607,"context_line":""},{"line_number":608,"context_line":""},{"line_number":609,"context_line":"class MarkLBActiveInDB(BaseDatabaseTask):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_9c6a30ec","line":606,"range":{"start_line":597,"start_character":3,"end_line":606,"end_character":72},"in_reply_to":"9a68dd71_59bfefa9","updated":"2016-01-23 03:53:44.000000000","message":"bertrand\u0027s revert suggestion is good.  The revert method not only gets called when this task fails, but also when tasks later in the flow fail, so yes the record can definitely have been inserted when the revert is executed and should be removed on a flow failure.","commit_id":"533eb854b7a66fca1fb66339595ca8a7936a18ff"},{"author":{"_account_id":8157,"name":"Bertrand LALLAU","email":"bertrand.lallau@gmail.com","username":"blallau"},"change_message_id":"5476443f1c4a52902ad9a36b54d2c7751575a9e2","unresolved":false,"context_lines":[{"line_number":594,"context_line":""},{"line_number":595,"context_line":""},{"line_number":596,"context_line":"class AddAmphoraHeartbeat(BaseDatabaseTask):"},{"line_number":597,"context_line":"    def execute(self, amphora_id):"},{"line_number":598,"context_line":"        \"\"\"Add a fake heartbeat in the Amphora Health DB."},{"line_number":599,"context_line":""},{"line_number":600,"context_line":"        :param amphora_id: The amphora id to mark busy"},{"line_number":601,"context_line":"        \"\"\""},{"line_number":602,"context_line":"        LOG.debug(\u0027Adding entry in amphora health db for amphora: %s\u0027,"},{"line_number":603,"context_line":"                  amphora_id)"},{"line_number":604,"context_line":"        self.amp_health_repo.update(db_apis.get_session(),"},{"line_number":605,"context_line":"                                    amphora_id\u003damphora_id,"},{"line_number":606,"context_line":"                                    last_update\u003ddatetime.datetime.now())"},{"line_number":607,"context_line":""},{"line_number":608,"context_line":""},{"line_number":609,"context_line":"class MarkLBActiveInDB(BaseDatabaseTask):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_9c5b1af6","line":606,"range":{"start_line":597,"start_character":3,"end_line":606,"end_character":72},"in_reply_to":"9a68dd71_6195633d","updated":"2016-01-22 21:03:07.000000000","message":"@Trevor thanks for your answer. You are right: just check the entry and remove is necessary ;)","commit_id":"533eb854b7a66fca1fb66339595ca8a7936a18ff"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"449ae8e185a1ee5ef825b7ddbcc3a3e6514e2e63","unresolved":false,"context_lines":[{"line_number":594,"context_line":""},{"line_number":595,"context_line":""},{"line_number":596,"context_line":"class AddAmphoraHeartbeat(BaseDatabaseTask):"},{"line_number":597,"context_line":"    def execute(self, amphora_id):"},{"line_number":598,"context_line":"        \"\"\"Add a fake heartbeat in the Amphora Health DB."},{"line_number":599,"context_line":""},{"line_number":600,"context_line":"        :param amphora_id: The amphora id to mark busy"},{"line_number":601,"context_line":"        \"\"\""},{"line_number":602,"context_line":"        LOG.debug(\u0027Adding entry in amphora health db for amphora: %s\u0027,"},{"line_number":603,"context_line":"                  amphora_id)"},{"line_number":604,"context_line":"        self.amp_health_repo.update(db_apis.get_session(),"},{"line_number":605,"context_line":"                                    amphora_id\u003damphora_id,"},{"line_number":606,"context_line":"                                    last_update\u003ddatetime.datetime.now())"},{"line_number":607,"context_line":""},{"line_number":608,"context_line":""},{"line_number":609,"context_line":"class MarkLBActiveInDB(BaseDatabaseTask):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_59bfefa9","line":606,"range":{"start_line":597,"start_character":3,"end_line":606,"end_character":72},"in_reply_to":"9a68dd71_9c5b1af6","updated":"2016-01-22 22:58:31.000000000","message":"Will add.","commit_id":"533eb854b7a66fca1fb66339595ca8a7936a18ff"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"6d6d466024e20f8de6f78fdb262e58040bbfc992","unresolved":false,"context_lines":[{"line_number":594,"context_line":""},{"line_number":595,"context_line":""},{"line_number":596,"context_line":"class AddAmphoraHeartbeat(BaseDatabaseTask):"},{"line_number":597,"context_line":"    def execute(self, amphora_id):"},{"line_number":598,"context_line":"        \"\"\"Add a fake heartbeat in the Amphora Health DB."},{"line_number":599,"context_line":""},{"line_number":600,"context_line":"        :param amphora_id: The amphora id to mark busy"},{"line_number":601,"context_line":"        \"\"\""},{"line_number":602,"context_line":"        LOG.debug(\u0027Adding entry in amphora health db for amphora: %s\u0027,"},{"line_number":603,"context_line":"                  amphora_id)"},{"line_number":604,"context_line":"        self.amp_health_repo.update(db_apis.get_session(),"},{"line_number":605,"context_line":"                                    amphora_id\u003damphora_id,"},{"line_number":606,"context_line":"                                    last_update\u003ddatetime.datetime.now())"},{"line_number":607,"context_line":""},{"line_number":608,"context_line":""},{"line_number":609,"context_line":"class MarkLBActiveInDB(BaseDatabaseTask):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_8af067ca","line":606,"range":{"start_line":597,"start_character":3,"end_line":606,"end_character":72},"in_reply_to":"9a68dd71_9c6a30ec","updated":"2016-01-25 16:29:24.000000000","message":"That\u0027s a good call.  My oversight on that part, thanks Bertrand and Brandon.  I\u0027m adding right now.","commit_id":"533eb854b7a66fca1fb66339595ca8a7936a18ff"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"35935e6a697cb6182936dda3b22ee52a67573621","unresolved":false,"context_lines":[{"line_number":594,"context_line":""},{"line_number":595,"context_line":""},{"line_number":596,"context_line":"class AddAmphoraHeartbeat(BaseDatabaseTask):"},{"line_number":597,"context_line":"    def execute(self, amphora_id):"},{"line_number":598,"context_line":"        \"\"\"Add a fake heartbeat in the Amphora Health DB."},{"line_number":599,"context_line":""},{"line_number":600,"context_line":"        :param amphora_id: The amphora id to mark busy"},{"line_number":601,"context_line":"        \"\"\""},{"line_number":602,"context_line":"        LOG.debug(\u0027Adding entry in amphora health db for amphora: %s\u0027,"},{"line_number":603,"context_line":"                  amphora_id)"},{"line_number":604,"context_line":"        self.amp_health_repo.update(db_apis.get_session(),"},{"line_number":605,"context_line":"                                    amphora_id\u003damphora_id,"},{"line_number":606,"context_line":"                                    last_update\u003ddatetime.datetime.now())"},{"line_number":607,"context_line":""},{"line_number":608,"context_line":""},{"line_number":609,"context_line":"class MarkLBActiveInDB(BaseDatabaseTask):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_6195633d","line":606,"range":{"start_line":597,"start_character":3,"end_line":606,"end_character":72},"in_reply_to":"9a68dd71_e68089c2","updated":"2016-01-22 20:44:19.000000000","message":"I would say you\u0027re right, except if this task fails, it most likely never inserted into the DB, right?  I suppose the revert could *check* for the entry and remove it if necessary...  Its still WIP anyway, I just hadn\u0027t marked it yet.  Oops :)","commit_id":"533eb854b7a66fca1fb66339595ca8a7936a18ff"}],"octavia/tests/unit/controller/worker/flows/test_amphora_flows.py":[{"author":{"_account_id":10477,"name":"min wang","email":"swiftwangster@gmail.com","username":"minwang"},"change_message_id":"5e2b8ed320943ac38e261a471b51ab615930fe52","unresolved":false,"context_lines":[{"line_number":213,"context_line":"        self.assertIn(constants.LISTENERS, amp_flow.provides)"},{"line_number":214,"context_line":"        self.assertIn(constants.LOADBALANCER, amp_flow.provides)"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"        self.assertEqual(3, len(amp_flow.requires))"},{"line_number":217,"context_line":"        self.assertEqual(11, len(amp_flow.provides))"},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"        amp_flow \u003d self.AmpFlow.get_failover_flow(role\u003dconstants.ROLE_MASTER)"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a57f1b5_ea869112","line":216,"range":{"start_line":216,"start_character":25,"end_line":216,"end_character":26},"updated":"2016-02-10 00:23:38.000000000","message":"besides update the value here, shouldn\u0027t we also one item for amp_requires above?","commit_id":"2dc23c5c53e9677449868744301175fcb51afbe5"},{"author":{"_account_id":10806,"name":"Trevor Vardeman","email":"tvardema@redhat.com","username":"tvardeman"},"change_message_id":"9c7e946e22eb26e3979c9909773a80b2cba17f8f","unresolved":false,"context_lines":[{"line_number":213,"context_line":"        self.assertIn(constants.LISTENERS, amp_flow.provides)"},{"line_number":214,"context_line":"        self.assertIn(constants.LOADBALANCER, amp_flow.provides)"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"        self.assertEqual(3, len(amp_flow.requires))"},{"line_number":217,"context_line":"        self.assertEqual(11, len(amp_flow.provides))"},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"        amp_flow \u003d self.AmpFlow.get_failover_flow(role\u003dconstants.ROLE_MASTER)"}],"source_content_type":"text/x-python","patch_set":9,"id":"dae33548_a772170f","line":216,"range":{"start_line":216,"start_character":25,"end_line":216,"end_character":26},"in_reply_to":"3a57f1b5_ea869112","updated":"2016-02-17 21:18:47.000000000","message":"Could catch, I forgot that bit.","commit_id":"2dc23c5c53e9677449868744301175fcb51afbe5"}]}
