)]}'
{"neutron/agent/linux/ip_lib.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"27dd0b233350c4e4b10267da35a4dfc6e22b4429","unresolved":false,"context_lines":[{"line_number":258,"context_line":"class IPDevice(SubProcessBase):"},{"line_number":259,"context_line":"    def __init__(self, name, namespace\u003dNone):"},{"line_number":260,"context_line":"        super(IPDevice, self).__init__(namespace\u003dnamespace)"},{"line_number":261,"context_line":"        self._name \u003d name"},{"line_number":262,"context_line":"        self.link \u003d IpLinkCommand(self)"},{"line_number":263,"context_line":"        self.addr \u003d IpAddrCommand(self)"},{"line_number":264,"context_line":"        self.route \u003d IpRouteCommand(self)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba5da102_2bac91ec","line":261,"updated":"2016-10-31 14:51:18.000000000","message":"I guess I\u0027m now wondering if just truncating here is the correct fix:\n\nif name:\n    name \u003d name[:constants.DEVICE_NAME_MAX_LEN]\nself.name \u003d name\n\nThen get_device_mac() below wouldn\u0027t need a similar line.","commit_id":"4c2e8cd5edf19610bce7f5a2311b5dbf80b8459e"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"0a79fa874c027562294af8c361bdba950c5bd733","unresolved":false,"context_lines":[{"line_number":258,"context_line":"class IPDevice(SubProcessBase):"},{"line_number":259,"context_line":"    def __init__(self, name, namespace\u003dNone):"},{"line_number":260,"context_line":"        super(IPDevice, self).__init__(namespace\u003dnamespace)"},{"line_number":261,"context_line":"        self._name \u003d name"},{"line_number":262,"context_line":"        self.link \u003d IpLinkCommand(self)"},{"line_number":263,"context_line":"        self.addr \u003d IpAddrCommand(self)"},{"line_number":264,"context_line":"        self.route \u003d IpRouteCommand(self)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba5da102_7152f6de","line":261,"in_reply_to":"ba5da102_2bac91ec","updated":"2016-10-31 15:11:57.000000000","message":"I think I saw another place where this field is updated, and its public so everywhere it\u0027s updated, this line needs to exist.\n\nMaybe change the truncation in the setter? And then always set to self.name?\n\nI think the line in get_device_mac is redundant anyway. I will remove it.","commit_id":"4c2e8cd5edf19610bce7f5a2311b5dbf80b8459e"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"b8d3799a4a1865a7faf1d8f599eb4a9793686815","unresolved":false,"context_lines":[{"line_number":258,"context_line":"class IPDevice(SubProcessBase):"},{"line_number":259,"context_line":"    def __init__(self, name, namespace\u003dNone):"},{"line_number":260,"context_line":"        super(IPDevice, self).__init__(namespace\u003dnamespace)"},{"line_number":261,"context_line":"        self._name \u003d name"},{"line_number":262,"context_line":"        self.link \u003d IpLinkCommand(self)"},{"line_number":263,"context_line":"        self.addr \u003d IpAddrCommand(self)"},{"line_number":264,"context_line":"        self.route \u003d IpRouteCommand(self)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba5da102_d19ae262","line":261,"in_reply_to":"ba5da102_7152f6de","updated":"2016-10-31 15:17:28.000000000","message":"The line in get_device_mac() was copied there (by me) so should only be removed if the name is truncated elsewhere, as that could be called with a string from a config file that is \u003e 15.","commit_id":"4c2e8cd5edf19610bce7f5a2311b5dbf80b8459e"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"5a48acbe25b32a762eac53c48fa0a10880bc8ccf","unresolved":false,"context_lines":[{"line_number":258,"context_line":"class IPDevice(SubProcessBase):"},{"line_number":259,"context_line":"    def __init__(self, name, namespace\u003dNone):"},{"line_number":260,"context_line":"        super(IPDevice, self).__init__(namespace\u003dnamespace)"},{"line_number":261,"context_line":"        self._name \u003d name"},{"line_number":262,"context_line":"        self.link \u003d IpLinkCommand(self)"},{"line_number":263,"context_line":"        self.addr \u003d IpAddrCommand(self)"},{"line_number":264,"context_line":"        self.route \u003d IpRouteCommand(self)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba5da102_714676c0","line":261,"in_reply_to":"ba5da102_d19ae262","updated":"2016-10-31 15:20:31.000000000","message":"That string is passed to IPDevice. With this change, whenever it is read from IPDevice, it is truncated.\n\nI\u0027d be happy to hear your opinion whether the truncation should be moved to the property setter, rather than the property getter.","commit_id":"4c2e8cd5edf19610bce7f5a2311b5dbf80b8459e"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"ff312a154f50872db3c48a7f731bf9c737bdcb95","unresolved":false,"context_lines":[{"line_number":352,"context_line":""},{"line_number":353,"context_line":"    @property"},{"line_number":354,"context_line":"    def name(self):"},{"line_number":355,"context_line":"        if self._name:"},{"line_number":356,"context_line":"            return self._name[:constants.DEVICE_NAME_MAX_LEN]"},{"line_number":357,"context_line":"        return self._name"},{"line_number":358,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ba5da102_30f5dc82","line":355,"updated":"2016-10-31 13:56:51.000000000","message":"Can _name ever not be set?  Instantiation of the class requires a name.","commit_id":"4c2e8cd5edf19610bce7f5a2311b5dbf80b8459e"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"919ef707bf946dc303b0e0fc26fb643c8c56b943","unresolved":false,"context_lines":[{"line_number":352,"context_line":""},{"line_number":353,"context_line":"    @property"},{"line_number":354,"context_line":"    def name(self):"},{"line_number":355,"context_line":"        if self._name:"},{"line_number":356,"context_line":"            return self._name[:constants.DEVICE_NAME_MAX_LEN]"},{"line_number":357,"context_line":"        return self._name"},{"line_number":358,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ba5da102_50fed037","line":355,"in_reply_to":"ba5da102_30f5dc82","updated":"2016-10-31 14:00:58.000000000","message":"That was my initial thought. But unit tests fail without this condition.","commit_id":"4c2e8cd5edf19610bce7f5a2311b5dbf80b8459e"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"27dd0b233350c4e4b10267da35a4dfc6e22b4429","unresolved":false,"context_lines":[{"line_number":352,"context_line":""},{"line_number":353,"context_line":"    @property"},{"line_number":354,"context_line":"    def name(self):"},{"line_number":355,"context_line":"        if self._name:"},{"line_number":356,"context_line":"            return self._name[:constants.DEVICE_NAME_MAX_LEN]"},{"line_number":357,"context_line":"        return self._name"},{"line_number":358,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ba5da102_76466cc0","line":355,"in_reply_to":"ba5da102_50fed037","updated":"2016-10-31 14:51:18.000000000","message":"Strange, but it\u0027s been a while since I\u0027ve tried to untangle these classes.","commit_id":"4c2e8cd5edf19610bce7f5a2311b5dbf80b8459e"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"3c951a5d9f64f869e0198448de56584af6d64e6a","unresolved":false,"context_lines":[{"line_number":354,"context_line":"    def name(self):"},{"line_number":355,"context_line":"        if self._name:"},{"line_number":356,"context_line":"            return self._name[:constants.DEVICE_NAME_MAX_LEN]"},{"line_number":357,"context_line":"        return self._name"},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"    @name.setter"},{"line_number":360,"context_line":"    def set_name(self, name):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a629dbe_bcdc4574","line":357,"range":{"start_line":357,"start_character":8,"end_line":357,"end_character":25},"updated":"2016-11-09 17:53:40.000000000","message":"When this happens? Can\u0027t we just always truncate?","commit_id":"2a65f8b6a5c752da3c811b2b3ffa533a8380a6af"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"b29c3d7efac5a4b82484e00e2c35b5bbcc6e568d","unresolved":false,"context_lines":[{"line_number":354,"context_line":"    def name(self):"},{"line_number":355,"context_line":"        if self._name:"},{"line_number":356,"context_line":"            return self._name[:constants.DEVICE_NAME_MAX_LEN]"},{"line_number":357,"context_line":"        return self._name"},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"    @name.setter"},{"line_number":360,"context_line":"    def set_name(self, name):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a629dbe_b32713c9","line":357,"range":{"start_line":357,"start_character":8,"end_line":357,"end_character":25},"in_reply_to":"9a629dbe_bcdc4574","updated":"2016-11-09 18:59:06.000000000","message":"In some tests I saw that self._name is None.","commit_id":"2a65f8b6a5c752da3c811b2b3ffa533a8380a6af"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"3c951a5d9f64f869e0198448de56584af6d64e6a","unresolved":false,"context_lines":[{"line_number":357,"context_line":"        return self._name"},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"    @name.setter"},{"line_number":360,"context_line":"    def set_name(self, name):"},{"line_number":361,"context_line":"        self._name \u003d name"},{"line_number":362,"context_line":""},{"line_number":363,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9a629dbe_3c33d5ac","line":360,"range":{"start_line":360,"start_character":8,"end_line":360,"end_character":16},"updated":"2016-11-09 17:53:40.000000000","message":"name","commit_id":"2a65f8b6a5c752da3c811b2b3ffa533a8380a6af"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"b29c3d7efac5a4b82484e00e2c35b5bbcc6e568d","unresolved":false,"context_lines":[{"line_number":357,"context_line":"        return self._name"},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"    @name.setter"},{"line_number":360,"context_line":"    def set_name(self, name):"},{"line_number":361,"context_line":"        self._name \u003d name"},{"line_number":362,"context_line":""},{"line_number":363,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9a629dbe_267663a4","line":360,"range":{"start_line":360,"start_character":8,"end_line":360,"end_character":16},"in_reply_to":"9a629dbe_3c33d5ac","updated":"2016-11-09 18:59:06.000000000","message":"Done","commit_id":"2a65f8b6a5c752da3c811b2b3ffa533a8380a6af"}]}
