)]}'
{"neutron/plugins/ml2/drivers/linuxbridge/agent/linuxbridge_neutron_agent.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"883a8cb54916d87024891a06318656d97509f41d","unresolved":false,"context_lines":[{"line_number":919,"context_line":"        LOG.debug(\"Setting admin_state_up to %s for port %s\","},{"line_number":920,"context_line":"                  admin_state_up, port_id)"},{"line_number":921,"context_line":"        tap_name \u003d self.br_mgr.get_tap_device_name(port_id)"},{"line_number":922,"context_line":"        if not ip_lib.device_exists(tap_name):"},{"line_number":923,"context_line":"            LOG.debug(\"Tap device: %s does not exist on \""},{"line_number":924,"context_line":"                      \"this host, skip setting the admin_state.\", tap_name)"},{"line_number":925,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":1,"id":"da6ed579_e545846e","line":922,"updated":"2016-01-15 16:42:26.000000000","message":"It\u0027s probably worthwhile now to instantiate the device instead of creating the IPDevice twice:\n\ndev \u003d ip_lib.IPDevice(tap_name)\nif not dev.exists():\n\nThen on L928/930:\n\ndev.link_set_up(), etc.","commit_id":"a4cfe6412e608f03bf6a63956f1082f669fa042a"},{"author":{"_account_id":11307,"name":"Andreas Scheuring","email":"andreas.scheuring@de.ibm.com","username":"uniqueName"},"change_message_id":"44a63cecdcd5e8896c14273542b6ac6ba25e670f","unresolved":false,"context_lines":[{"line_number":919,"context_line":"        LOG.debug(\"Setting admin_state_up to %s for port %s\","},{"line_number":920,"context_line":"                  admin_state_up, port_id)"},{"line_number":921,"context_line":"        tap_name \u003d self.br_mgr.get_tap_device_name(port_id)"},{"line_number":922,"context_line":"        if not ip_lib.device_exists(tap_name):"},{"line_number":923,"context_line":"            LOG.debug(\"Tap device: %s does not exist on \""},{"line_number":924,"context_line":"                      \"this host, skip setting the admin_state.\", tap_name)"},{"line_number":925,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":1,"id":"da6ed579_083ad198","line":922,"in_reply_to":"da6ed579_e545846e","updated":"2016-01-18 16:46:40.000000000","message":"good idea! Done!","commit_id":"a4cfe6412e608f03bf6a63956f1082f669fa042a"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"883a8cb54916d87024891a06318656d97509f41d","unresolved":false,"context_lines":[{"line_number":920,"context_line":"                  admin_state_up, port_id)"},{"line_number":921,"context_line":"        tap_name \u003d self.br_mgr.get_tap_device_name(port_id)"},{"line_number":922,"context_line":"        if not ip_lib.device_exists(tap_name):"},{"line_number":923,"context_line":"            LOG.debug(\"Tap device: %s does not exist on \""},{"line_number":924,"context_line":"                      \"this host, skip setting the admin_state.\", tap_name)"},{"line_number":925,"context_line":"            return"},{"line_number":926,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"da6ed579_0029a689","line":923,"updated":"2016-01-15 16:42:26.000000000","message":"Think you can remove the \":\" here","commit_id":"a4cfe6412e608f03bf6a63956f1082f669fa042a"},{"author":{"_account_id":11307,"name":"Andreas Scheuring","email":"andreas.scheuring@de.ibm.com","username":"uniqueName"},"change_message_id":"44a63cecdcd5e8896c14273542b6ac6ba25e670f","unresolved":false,"context_lines":[{"line_number":920,"context_line":"                  admin_state_up, port_id)"},{"line_number":921,"context_line":"        tap_name \u003d self.br_mgr.get_tap_device_name(port_id)"},{"line_number":922,"context_line":"        if not ip_lib.device_exists(tap_name):"},{"line_number":923,"context_line":"            LOG.debug(\"Tap device: %s does not exist on \""},{"line_number":924,"context_line":"                      \"this host, skip setting the admin_state.\", tap_name)"},{"line_number":925,"context_line":"            return"},{"line_number":926,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"da6ed579_48b9a914","line":923,"in_reply_to":"da6ed579_0029a689","updated":"2016-01-18 16:46:40.000000000","message":"Done","commit_id":"a4cfe6412e608f03bf6a63956f1082f669fa042a"},{"author":{"_account_id":9551,"name":"Martin Hickey","email":"martin.hickey@ie.ibm.com","username":"mhickey"},"change_message_id":"2f2f5ca28de9869f7625234f6ed15fadf4081872","unresolved":false,"context_lines":[{"line_number":922,"context_line":"        if not ip_lib.device_exists(tap_name):"},{"line_number":923,"context_line":"            LOG.debug(\"Tap device: %s does not exist on \""},{"line_number":924,"context_line":"                      \"this host, skip setting the admin_state.\", tap_name)"},{"line_number":925,"context_line":"            return"},{"line_number":926,"context_line":""},{"line_number":927,"context_line":"        if admin_state_up:"},{"line_number":928,"context_line":"            ip_lib.IPDevice(tap_name).link.set_up()"}],"source_content_type":"text/x-python","patch_set":1,"id":"da6ed579_3cf42459","line":925,"range":{"start_line":925,"start_character":12,"end_line":925,"end_character":18},"updated":"2016-01-15 13:52:14.000000000","message":"return False","commit_id":"a4cfe6412e608f03bf6a63956f1082f669fa042a"},{"author":{"_account_id":11307,"name":"Andreas Scheuring","email":"andreas.scheuring@de.ibm.com","username":"uniqueName"},"change_message_id":"44a63cecdcd5e8896c14273542b6ac6ba25e670f","unresolved":false,"context_lines":[{"line_number":922,"context_line":"        if not ip_lib.device_exists(tap_name):"},{"line_number":923,"context_line":"            LOG.debug(\"Tap device: %s does not exist on \""},{"line_number":924,"context_line":"                      \"this host, skip setting the admin_state.\", tap_name)"},{"line_number":925,"context_line":"            return"},{"line_number":926,"context_line":""},{"line_number":927,"context_line":"        if admin_state_up:"},{"line_number":928,"context_line":"            ip_lib.IPDevice(tap_name).link.set_up()"}],"source_content_type":"text/x-python","patch_set":1,"id":"da6ed579_28beb5ff","line":925,"range":{"start_line":925,"start_character":12,"end_line":925,"end_character":18},"in_reply_to":"da6ed579_20ef0a1f","updated":"2016-01-18 16:46:40.000000000","message":"Done","commit_id":"a4cfe6412e608f03bf6a63956f1082f669fa042a"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"883a8cb54916d87024891a06318656d97509f41d","unresolved":false,"context_lines":[{"line_number":922,"context_line":"        if not ip_lib.device_exists(tap_name):"},{"line_number":923,"context_line":"            LOG.debug(\"Tap device: %s does not exist on \""},{"line_number":924,"context_line":"                      \"this host, skip setting the admin_state.\", tap_name)"},{"line_number":925,"context_line":"            return"},{"line_number":926,"context_line":""},{"line_number":927,"context_line":"        if admin_state_up:"},{"line_number":928,"context_line":"            ip_lib.IPDevice(tap_name).link.set_up()"}],"source_content_type":"text/x-python","patch_set":1,"id":"da6ed579_20ef0a1f","line":925,"range":{"start_line":925,"start_character":12,"end_line":925,"end_character":18},"in_reply_to":"da6ed579_3cf42459","updated":"2016-01-15 16:42:26.000000000","message":"+1","commit_id":"a4cfe6412e608f03bf6a63956f1082f669fa042a"},{"author":{"_account_id":13667,"name":"ZongKai LI","email":"onionpiece@163.com","username":"lzklibj"},"change_message_id":"6b6f4380dbeedeaa8b059172c6d514b197d81785","unresolved":false,"context_lines":[{"line_number":1035,"context_line":"                # 2) The new code is much more readable"},{"line_number":1036,"context_line":"                admin_state_ensured \u003d self._ensure_port_admin_state("},{"line_number":1037,"context_line":"                    device_details[\u0027port_id\u0027],"},{"line_number":1038,"context_line":"                    device_details[\u0027admin_state_up\u0027])"},{"line_number":1039,"context_line":"                # update plugin about port status if admin_state is up"},{"line_number":1040,"context_line":"                if device_details[\u0027admin_state_up\u0027]:"},{"line_number":1041,"context_line":"                    if tap_in_bridge and admin_state_ensured:"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba63e191_ac194f8a","line":1038,"updated":"2016-01-20 03:57:46.000000000","message":"As you mentioned in bug report page \"A tap device can suddenly disappear e.g. due to instance destroy\", if that, why not directly stop current processing and continue to next iter. If tap device not exists, all its data could be considered as dirty/stale data.","commit_id":"b9133bb91222d70d4ca4e092af64d7a7fd0607ee"}]}
