)]}'
{"nova/tests/unit/virt/libvirt/test_driver.py":[{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"1dee15ce8dd2aaa514b6c86a8785214dfe0c2996","unresolved":false,"context_lines":[{"line_number":16919,"context_line":"                libvirt_driver.LibvirtDriver._check_address("},{"line_number":16920,"context_line":"                    localAddr, \"Address is not local/catch all\"))"},{"line_number":16921,"context_line":""},{"line_number":16922,"context_line":"        NONLOCALS \u003d (\"::2\", \"192.0.4.1\", \"bogus\")"},{"line_number":16923,"context_line":"        for nonLocalAddr in NONLOCALS:"},{"line_number":16924,"context_line":"            self.assertFalse("},{"line_number":16925,"context_line":"                libvirt_driver.LibvirtDriver._check_address("}],"source_content_type":"text/x-python","patch_set":3,"id":"da6895a0_eba44ca7","line":16922,"range":{"start_line":16922,"start_character":8,"end_line":16922,"end_character":49},"updated":"2016-10-25 17:54:16.000000000","message":"Would be better to separate this to a test method, so it will be clear that this is a negative test.","commit_id":"9dad45b3b9766409ece928597ee8528ca424157c"},{"author":{"_account_id":23122,"name":"Amy Fong","email":"amy.fong@windriver.com","username":"afong"},"change_message_id":"9ef6829f0a432d9cf7418b691ddb5ab816f019dc","unresolved":false,"context_lines":[{"line_number":16919,"context_line":"                libvirt_driver.LibvirtDriver._check_address("},{"line_number":16920,"context_line":"                    localAddr, \"Address is not local/catch all\"))"},{"line_number":16921,"context_line":""},{"line_number":16922,"context_line":"        NONLOCALS \u003d (\"::2\", \"192.0.4.1\", \"bogus\")"},{"line_number":16923,"context_line":"        for nonLocalAddr in NONLOCALS:"},{"line_number":16924,"context_line":"            self.assertFalse("},{"line_number":16925,"context_line":"                libvirt_driver.LibvirtDriver._check_address("}],"source_content_type":"text/x-python","patch_set":3,"id":"da6895a0_6b303b9f","line":16922,"range":{"start_line":16922,"start_character":8,"end_line":16922,"end_character":49},"in_reply_to":"da6895a0_eba44ca7","updated":"2016-10-25 19:15:57.000000000","message":"Done","commit_id":"9dad45b3b9766409ece928597ee8528ca424157c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5cb4daf5a8b242cfa346f6179ceac5634f1cd034","unresolved":false,"context_lines":[{"line_number":16914,"context_line":""},{"line_number":16915,"context_line":"    def test_valid_graphic_addresses_for_migration(self):"},{"line_number":16916,"context_line":"        LOCALS \u003d (\"127.0.0.1\", \"::1\", \"::\", \"0000::\", \"::0001\", \"0.0.0.0\")"},{"line_number":16917,"context_line":"        for localAddr in LOCALS:"},{"line_number":16918,"context_line":"            self.assertTrue("},{"line_number":16919,"context_line":"                libvirt_driver.LibvirtDriver._check_ip_address_local("},{"line_number":16920,"context_line":"                    localAddr, \"Address is not local/catch all\"))"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba5da102_d6a335b0","line":16917,"range":{"start_line":16917,"start_character":12,"end_line":16917,"end_character":21},"updated":"2016-11-03 15:41:58.000000000","message":"nit: camel-case","commit_id":"485ae39d5870dc8611863d663fe103eaddb634ca"},{"author":{"_account_id":23122,"name":"Amy Fong","email":"amy.fong@windriver.com","username":"afong"},"change_message_id":"78f4e889c382bc9f709c8afc94e2b889a4b72b88","unresolved":false,"context_lines":[{"line_number":16914,"context_line":""},{"line_number":16915,"context_line":"    def test_valid_graphic_addresses_for_migration(self):"},{"line_number":16916,"context_line":"        LOCALS \u003d (\"127.0.0.1\", \"::1\", \"::\", \"0000::\", \"::0001\", \"0.0.0.0\")"},{"line_number":16917,"context_line":"        for localAddr in LOCALS:"},{"line_number":16918,"context_line":"            self.assertTrue("},{"line_number":16919,"context_line":"                libvirt_driver.LibvirtDriver._check_ip_address_local("},{"line_number":16920,"context_line":"                    localAddr, \"Address is not local/catch all\"))"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba5da102_49c78a95","line":16917,"range":{"start_line":16917,"start_character":12,"end_line":16917,"end_character":21},"in_reply_to":"ba5da102_d6a335b0","updated":"2016-11-03 17:23:03.000000000","message":"Done","commit_id":"485ae39d5870dc8611863d663fe103eaddb634ca"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"a0b983c15a5ea72e194f771823bd7489a2380ff4","unresolved":false,"context_lines":[{"line_number":16976,"context_line":"        for addr in NONLOCALS:"},{"line_number":16977,"context_line":"            self.assertFalse("},{"line_number":16978,"context_line":"                libvirt_driver.LibvirtDriver._check_ip_address_local("},{"line_number":16979,"context_line":"                    addr, \"Address is not local/catch all\"))"},{"line_number":16980,"context_line":""},{"line_number":16981,"context_line":""},{"line_number":16982,"context_line":"class LibvirtVolumeUsageTestCase(test.NoDBTestCase):"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a629dbe_7724270c","line":16979,"updated":"2016-11-11 17:38:36.000000000","message":"s/is not/is/","commit_id":"077a90971ea20629e607571b48694bd1022821d8"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":8802,"name":"Vladik Romanovsky","email":"vromanso@redhat.com","username":"vladikr"},"change_message_id":"1dee15ce8dd2aaa514b6c86a8785214dfe0c2996","unresolved":false,"context_lines":[{"line_number":5781,"context_line":"            raise"},{"line_number":5782,"context_line":""},{"line_number":5783,"context_line":"    @staticmethod"},{"line_number":5784,"context_line":"    def _check_address(addr, errMsg\u003dNone):"},{"line_number":5785,"context_line":"        LOCAL_ADDRS \u003d (\u00270.0.0.0\u0027, \u0027127.0.0.1\u0027, \u0027::\u0027, \u0027::1\u0027)"},{"line_number":5786,"context_line":"        try:"},{"line_number":5787,"context_line":"            val \u003d netaddr.IPAddress(addr).format()"}],"source_content_type":"text/x-python","patch_set":3,"id":"da6895a0_6b903c44","line":5784,"range":{"start_line":5784,"start_character":8,"end_line":5784,"end_character":22},"updated":"2016-10-25 17:54:16.000000000","message":"I would rename it to _check_ip_address or anything similar.\nThe driver is handling too many different addresses (pci, ip, etc..)","commit_id":"9dad45b3b9766409ece928597ee8528ca424157c"},{"author":{"_account_id":23122,"name":"Amy Fong","email":"amy.fong@windriver.com","username":"afong"},"change_message_id":"9ef6829f0a432d9cf7418b691ddb5ab816f019dc","unresolved":false,"context_lines":[{"line_number":5781,"context_line":"            raise"},{"line_number":5782,"context_line":""},{"line_number":5783,"context_line":"    @staticmethod"},{"line_number":5784,"context_line":"    def _check_address(addr, errMsg\u003dNone):"},{"line_number":5785,"context_line":"        LOCAL_ADDRS \u003d (\u00270.0.0.0\u0027, \u0027127.0.0.1\u0027, \u0027::\u0027, \u0027::1\u0027)"},{"line_number":5786,"context_line":"        try:"},{"line_number":5787,"context_line":"            val \u003d netaddr.IPAddress(addr).format()"}],"source_content_type":"text/x-python","patch_set":3,"id":"da6895a0_cba4e7a7","line":5784,"range":{"start_line":5784,"start_character":8,"end_line":5784,"end_character":22},"in_reply_to":"da6895a0_6b903c44","updated":"2016-10-25 19:15:57.000000000","message":"Done","commit_id":"9dad45b3b9766409ece928597ee8528ca424157c"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"669175a09c1385d99c9e04f4145d9103c83d80f4","unresolved":false,"context_lines":[{"line_number":5781,"context_line":"            raise"},{"line_number":5782,"context_line":""},{"line_number":5783,"context_line":"    @staticmethod"},{"line_number":5784,"context_line":"    def _check_ip_address(addr, errMsg\u003dNone):"},{"line_number":5785,"context_line":"        LOCAL_ADDRS \u003d (\u00270.0.0.0\u0027, \u0027127.0.0.1\u0027, \u0027::\u0027, \u0027::1\u0027)"},{"line_number":5786,"context_line":"        try:"},{"line_number":5787,"context_line":"            val \u003d netaddr.IPAddress(addr).format()"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba5da102_7672337e","line":5784,"updated":"2016-10-27 09:42:15.000000000","message":"nit: maybe rename to _check_ip_address_local()?","commit_id":"1a99504c3176c55dc48286698c37039dfc68dbd9"},{"author":{"_account_id":23122,"name":"Amy Fong","email":"amy.fong@windriver.com","username":"afong"},"change_message_id":"fb862fc9d012499f9414a8ad002625a2a18e0b2e","unresolved":false,"context_lines":[{"line_number":5781,"context_line":"            raise"},{"line_number":5782,"context_line":""},{"line_number":5783,"context_line":"    @staticmethod"},{"line_number":5784,"context_line":"    def _check_ip_address(addr, errMsg\u003dNone):"},{"line_number":5785,"context_line":"        LOCAL_ADDRS \u003d (\u00270.0.0.0\u0027, \u0027127.0.0.1\u0027, \u0027::\u0027, \u0027::1\u0027)"},{"line_number":5786,"context_line":"        try:"},{"line_number":5787,"context_line":"            val \u003d netaddr.IPAddress(addr).format()"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba5da102_e5491dd2","line":5784,"in_reply_to":"ba5da102_7672337e","updated":"2016-10-27 17:10:09.000000000","message":"Done","commit_id":"1a99504c3176c55dc48286698c37039dfc68dbd9"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5cb4daf5a8b242cfa346f6179ceac5634f1cd034","unresolved":false,"context_lines":[{"line_number":5781,"context_line":"            raise"},{"line_number":5782,"context_line":""},{"line_number":5783,"context_line":"    @staticmethod"},{"line_number":5784,"context_line":"    def _check_ip_address_local(addr, errMsg\u003dNone):"},{"line_number":5785,"context_line":"        LOCAL_ADDRS \u003d (\u00270.0.0.0\u0027, \u0027127.0.0.1\u0027, \u0027::\u0027, \u0027::1\u0027)"},{"line_number":5786,"context_line":"        try:"},{"line_number":5787,"context_line":"            val \u003d netaddr.IPAddress(addr).format()"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba5da102_d62ed541","line":5784,"range":{"start_line":5784,"start_character":38,"end_line":5784,"end_character":44},"updated":"2016-11-03 15:41:58.000000000","message":"nit: please don\u0027t use camel-case.","commit_id":"485ae39d5870dc8611863d663fe103eaddb634ca"},{"author":{"_account_id":23122,"name":"Amy Fong","email":"amy.fong@windriver.com","username":"afong"},"change_message_id":"78f4e889c382bc9f709c8afc94e2b889a4b72b88","unresolved":false,"context_lines":[{"line_number":5781,"context_line":"            raise"},{"line_number":5782,"context_line":""},{"line_number":5783,"context_line":"    @staticmethod"},{"line_number":5784,"context_line":"    def _check_ip_address_local(addr, errMsg\u003dNone):"},{"line_number":5785,"context_line":"        LOCAL_ADDRS \u003d (\u00270.0.0.0\u0027, \u0027127.0.0.1\u0027, \u0027::\u0027, \u0027::1\u0027)"},{"line_number":5786,"context_line":"        try:"},{"line_number":5787,"context_line":"            val \u003d netaddr.IPAddress(addr).format()"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba5da102_295a56f2","line":5784,"range":{"start_line":5784,"start_character":38,"end_line":5784,"end_character":44},"in_reply_to":"ba5da102_d62ed541","updated":"2016-11-03 17:23:03.000000000","message":"Done","commit_id":"485ae39d5870dc8611863d663fe103eaddb634ca"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"958af168648f8a1500d600bca028e762a9c73ef0","unresolved":false,"context_lines":[{"line_number":5786,"context_line":"        try:"},{"line_number":5787,"context_line":"            val \u003d netaddr.IPAddress(addr).format()"},{"line_number":5788,"context_line":"        except (netaddr.AddrFormatError, ValueError):"},{"line_number":5789,"context_line":"            LOG.error(_LW(\u0027Invalid Address - %(addr)s: \u0027"},{"line_number":5790,"context_line":"                       \u0027%(errmsg)s\u0027),"},{"line_number":5791,"context_line":"                         {\u0027addr\u0027: addr, \u0027errmsg\u0027: errMsg})"},{"line_number":5792,"context_line":"            val \u003d addr"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba5da102_7670a972","line":5789,"range":{"start_line":5789,"start_character":12,"end_line":5789,"end_character":26},"updated":"2016-11-03 15:38:05.000000000","message":"This is either an error or a warning, but you\u0027re doing both.","commit_id":"485ae39d5870dc8611863d663fe103eaddb634ca"},{"author":{"_account_id":23122,"name":"Amy Fong","email":"amy.fong@windriver.com","username":"afong"},"change_message_id":"78f4e889c382bc9f709c8afc94e2b889a4b72b88","unresolved":false,"context_lines":[{"line_number":5786,"context_line":"        try:"},{"line_number":5787,"context_line":"            val \u003d netaddr.IPAddress(addr).format()"},{"line_number":5788,"context_line":"        except (netaddr.AddrFormatError, ValueError):"},{"line_number":5789,"context_line":"            LOG.error(_LW(\u0027Invalid Address - %(addr)s: \u0027"},{"line_number":5790,"context_line":"                       \u0027%(errmsg)s\u0027),"},{"line_number":5791,"context_line":"                         {\u0027addr\u0027: addr, \u0027errmsg\u0027: errMsg})"},{"line_number":5792,"context_line":"            val \u003d addr"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba5da102_ec3cec94","line":5789,"range":{"start_line":5789,"start_character":12,"end_line":5789,"end_character":26},"in_reply_to":"ba5da102_7670a972","updated":"2016-11-03 17:23:03.000000000","message":"Done","commit_id":"485ae39d5870dc8611863d663fe103eaddb634ca"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5cb4daf5a8b242cfa346f6179ceac5634f1cd034","unresolved":false,"context_lines":[{"line_number":5786,"context_line":"        try:"},{"line_number":5787,"context_line":"            val \u003d netaddr.IPAddress(addr).format()"},{"line_number":5788,"context_line":"        except (netaddr.AddrFormatError, ValueError):"},{"line_number":5789,"context_line":"            LOG.error(_LW(\u0027Invalid Address - %(addr)s: \u0027"},{"line_number":5790,"context_line":"                       \u0027%(errmsg)s\u0027),"},{"line_number":5791,"context_line":"                         {\u0027addr\u0027: addr, \u0027errmsg\u0027: errMsg})"},{"line_number":5792,"context_line":"            val \u003d addr"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba5da102_96753d33","line":5789,"range":{"start_line":5789,"start_character":12,"end_line":5789,"end_character":26},"in_reply_to":"ba5da102_7670a972","updated":"2016-11-03 15:41:58.000000000","message":"https://specs.openstack.org/openstack/openstack-specs/specs/log-guidelines.html\n\nShould an operator be paged in the middle of the night for this? If so, then it\u0027s an error level message, else just a warning. If it\u0027s an error, use _LE.","commit_id":"485ae39d5870dc8611863d663fe103eaddb634ca"},{"author":{"_account_id":23122,"name":"Amy Fong","email":"amy.fong@windriver.com","username":"afong"},"change_message_id":"78f4e889c382bc9f709c8afc94e2b889a4b72b88","unresolved":false,"context_lines":[{"line_number":5786,"context_line":"        try:"},{"line_number":5787,"context_line":"            val \u003d netaddr.IPAddress(addr).format()"},{"line_number":5788,"context_line":"        except (netaddr.AddrFormatError, ValueError):"},{"line_number":5789,"context_line":"            LOG.error(_LW(\u0027Invalid Address - %(addr)s: \u0027"},{"line_number":5790,"context_line":"                       \u0027%(errmsg)s\u0027),"},{"line_number":5791,"context_line":"                         {\u0027addr\u0027: addr, \u0027errmsg\u0027: errMsg})"},{"line_number":5792,"context_line":"            val \u003d addr"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba5da102_ec630caf","line":5789,"range":{"start_line":5789,"start_character":12,"end_line":5789,"end_character":26},"in_reply_to":"ba5da102_96753d33","updated":"2016-11-03 17:23:03.000000000","message":"Done","commit_id":"485ae39d5870dc8611863d663fe103eaddb634ca"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"9571063c9f43e28a4564e8c1343338533709fc23","unresolved":false,"context_lines":[{"line_number":5793,"context_line":"        return val in LOCAL_ADDRS"},{"line_number":5794,"context_line":""},{"line_number":5795,"context_line":"    def _check_graphics_addresses_can_live_migrate(self, listen_addrs):"},{"line_number":5796,"context_line":"        errMsg \u003d (\"CONF.vnc.vncserver_listen network \""},{"line_number":5797,"context_line":"                  \"address is not correctly formatted.\")"},{"line_number":5798,"context_line":"        local_vnc \u003d self._check_ip_address_local("},{"line_number":5799,"context_line":"            CONF.vnc.vncserver_listen, errMsg)"},{"line_number":5800,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"ba5da102_16c92dac","line":5797,"range":{"start_line":5796,"start_character":17,"end_line":5797,"end_character":56},"updated":"2016-11-03 15:37:31.000000000","message":"Don\u0027t these need to be marked for translation? Otherwise they won\u0027t be included for the translators, AFAIK. Including them above will just result in a translated message with some local and some english language.","commit_id":"485ae39d5870dc8611863d663fe103eaddb634ca"},{"author":{"_account_id":23122,"name":"Amy Fong","email":"amy.fong@windriver.com","username":"afong"},"change_message_id":"78f4e889c382bc9f709c8afc94e2b889a4b72b88","unresolved":false,"context_lines":[{"line_number":5793,"context_line":"        return val in LOCAL_ADDRS"},{"line_number":5794,"context_line":""},{"line_number":5795,"context_line":"    def _check_graphics_addresses_can_live_migrate(self, listen_addrs):"},{"line_number":5796,"context_line":"        errMsg \u003d (\"CONF.vnc.vncserver_listen network \""},{"line_number":5797,"context_line":"                  \"address is not correctly formatted.\")"},{"line_number":5798,"context_line":"        local_vnc \u003d self._check_ip_address_local("},{"line_number":5799,"context_line":"            CONF.vnc.vncserver_listen, errMsg)"},{"line_number":5800,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"ba5da102_89ac428d","line":5797,"range":{"start_line":5796,"start_character":17,"end_line":5797,"end_character":56},"in_reply_to":"ba5da102_16c92dac","updated":"2016-11-03 17:23:03.000000000","message":"Done","commit_id":"485ae39d5870dc8611863d663fe103eaddb634ca"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5cb4daf5a8b242cfa346f6179ceac5634f1cd034","unresolved":false,"context_lines":[{"line_number":5816,"context_line":"            raise exception.MigrationError(reason\u003dmsg)"},{"line_number":5817,"context_line":""},{"line_number":5818,"context_line":"        if listen_addrs:"},{"line_number":5819,"context_line":"            errMsg \u003d (\"\u0027VNC listen address network \""},{"line_number":5820,"context_line":"                      \"address is not correctly formatted.\")"},{"line_number":5821,"context_line":"            dest_local_vnc \u003d self._check_ip_address_local("},{"line_number":5822,"context_line":"                listen_addrs.get(\u0027vnc\u0027), errMsg)"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba5da102_76e50907","line":5819,"range":{"start_line":5819,"start_character":23,"end_line":5819,"end_character":24},"updated":"2016-11-03 15:41:58.000000000","message":"This probably doesn\u0027t need to be here.","commit_id":"485ae39d5870dc8611863d663fe103eaddb634ca"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"76aa931284cc46ac08f4268c150e6b729df417f9","unresolved":false,"context_lines":[{"line_number":5830,"context_line":"        local_spice \u003d self._check_ip_address_local("},{"line_number":5831,"context_line":"            CONF.spice.server_listen, error_msg)"},{"line_number":5832,"context_line":""},{"line_number":5833,"context_line":"        if ((CONF.vnc.enabled and not local_vnc) or"},{"line_number":5834,"context_line":"            (CONF.spice.enabled and not local_spice)):"},{"line_number":5835,"context_line":""},{"line_number":5836,"context_line":"            msg \u003d _(\u0027Your destination node does not support\u0027"},{"line_number":5837,"context_line":"                    \u0027 retrieving listen addresses.  In order\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_879b3072","line":5834,"range":{"start_line":5833,"start_character":8,"end_line":5834,"end_character":54},"updated":"2016-11-04 09:09:31.000000000","message":"Won\u0027t this actually break all live migrations when vnc/spice is not set to any of LOCAL_ADDRS values? If we pass listen_addrs that looks like:\n\n{\n \u0027vnc\u0027: \u002710.0.0.2\u0027,\n \u0027spice\u0027: None\n}\n\nFor some reason we will fail this, despite that nova can handle changing graphics console addresses in domain XML.","commit_id":"077a90971ea20629e607571b48694bd1022821d8"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"d5d012af984215ac93b397684793d90fbd4c9035","unresolved":false,"context_lines":[{"line_number":5830,"context_line":"        local_spice \u003d self._check_ip_address_local("},{"line_number":5831,"context_line":"            CONF.spice.server_listen, error_msg)"},{"line_number":5832,"context_line":""},{"line_number":5833,"context_line":"        if ((CONF.vnc.enabled and not local_vnc) or"},{"line_number":5834,"context_line":"            (CONF.spice.enabled and not local_spice)):"},{"line_number":5835,"context_line":""},{"line_number":5836,"context_line":"            msg \u003d _(\u0027Your destination node does not support\u0027"},{"line_number":5837,"context_line":"                    \u0027 retrieving listen addresses.  In order\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_22d5efb8","line":5834,"range":{"start_line":5833,"start_character":8,"end_line":5834,"end_character":54},"in_reply_to":"ba5da102_879b3072","updated":"2016-11-04 11:00:59.000000000","message":"You\u0027re commenting on logic that isn\u0027t changed in this patch, so that is not a reason to -1 this patch. If you think the existing logic is buggy, then please file a bug describing the problem.\n\nIn terms of what this patch sets out to do, I don\u0027t think there\u0027s any problem with its code, as its not changing the logic applied - just fixing the address comparison by canonicalizing the addresses.","commit_id":"077a90971ea20629e607571b48694bd1022821d8"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"76aa931284cc46ac08f4268c150e6b729df417f9","unresolved":false,"context_lines":[{"line_number":5842,"context_line":"                    \u0027 the local address (127.0.0.1 or ::1).\u0027)"},{"line_number":5843,"context_line":"            raise exception.MigrationError(reason\u003dmsg)"},{"line_number":5844,"context_line":""},{"line_number":5845,"context_line":"        if listen_addrs:"},{"line_number":5846,"context_line":"            error_msg \u003d _LW(\"VNC listen address network \""},{"line_number":5847,"context_line":"                            \"address is not correctly formatted.\")"},{"line_number":5848,"context_line":"            dest_local_vnc \u003d self._check_ip_address_local("}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_27f8a4c4","line":5845,"range":{"start_line":5845,"start_character":8,"end_line":5845,"end_character":23},"updated":"2016-11-04 09:09:31.000000000","message":"We execute _check_graphics_addresses_can_live_migrate *only* if listen_addrs is None, so this condition is always False.","commit_id":"077a90971ea20629e607571b48694bd1022821d8"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"a0b983c15a5ea72e194f771823bd7489a2380ff4","unresolved":false,"context_lines":[{"line_number":5842,"context_line":"                    \u0027 the local address (127.0.0.1 or ::1).\u0027)"},{"line_number":5843,"context_line":"            raise exception.MigrationError(reason\u003dmsg)"},{"line_number":5844,"context_line":""},{"line_number":5845,"context_line":"        if listen_addrs:"},{"line_number":5846,"context_line":"            error_msg \u003d _LW(\"VNC listen address network \""},{"line_number":5847,"context_line":"                            \"address is not correctly formatted.\")"},{"line_number":5848,"context_line":"            dest_local_vnc \u003d self._check_ip_address_local("}],"source_content_type":"text/x-python","patch_set":7,"id":"9a629dbe_d797b3e9","line":5845,"range":{"start_line":5845,"start_character":8,"end_line":5845,"end_character":23},"in_reply_to":"ba5da102_27f8a4c4","updated":"2016-11-11 17:38:36.000000000","message":"Pawel, agreed, however this patch doesn\u0027t modify this code/behaviour. Something to address in a followup patch if you\u0027d like.","commit_id":"077a90971ea20629e607571b48694bd1022821d8"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"76aa931284cc46ac08f4268c150e6b729df417f9","unresolved":false,"context_lines":[{"line_number":5904,"context_line":"            listen_addrs \u003d libvirt_migrate.graphics_listen_addrs("},{"line_number":5905,"context_line":"                migrate_data)"},{"line_number":5906,"context_line":""},{"line_number":5907,"context_line":"            if not listen_addrs:"},{"line_number":5908,"context_line":"                # In this context want to ensure we do not have to migrate"},{"line_number":5909,"context_line":"                # graphic or serial consoles since we can\u0027t update guest\u0027s"},{"line_number":5910,"context_line":"                # domain XML to make it handle destination host."}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_875170db","line":5907,"range":{"start_line":5907,"start_character":12,"end_line":5907,"end_character":31},"updated":"2016-11-04 09:09:31.000000000","message":"If you set vncserver_listen or server_listen to :: or ::1 code that you just changed will never be executed. listen_addr will be set to something like\n\n{\n \u0027vnc\u0027: \"::\",\n \u0027spice\u0027: None,\n}\n\nso the condition will not be met. Please refer to https://github.com/openstack/nova/blob/4f33047d07f5a11b208c344fe206aba01cd8e6fe/nova/virt/libvirt/migration.py#L36\n\nAlso vncserver_listen and server_listen are by default set to 127.0.0.1:\n\nhttps://github.com/openstack/nova/blob/cd3b57d0c0cb867ef48a6e9721d9b3e28cb08e84/nova/conf/vnc.py#L58\nhttps://github.com/openstack/nova/blob/a873375963a32934c3185703a94f1617b9271c7d/nova/conf/spice.py#L112\n\nBoth options are nullable in LibvirtLiveMigrateData:\n\nhttps://github.com/openstack/nova/blob/4eb89c206e68a7172ebad897ad24769036c7bdd6/nova/objects/migrate_data.py#L125\n\nHowever I haven\u0027t found a way to pass None through those configuration options. I always end up with: \"ValueError: failed to detect a valid IP address from None\". It looks to me like this condition is not met in any case.","commit_id":"077a90971ea20629e607571b48694bd1022821d8"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"d5d012af984215ac93b397684793d90fbd4c9035","unresolved":false,"context_lines":[{"line_number":5904,"context_line":"            listen_addrs \u003d libvirt_migrate.graphics_listen_addrs("},{"line_number":5905,"context_line":"                migrate_data)"},{"line_number":5906,"context_line":""},{"line_number":5907,"context_line":"            if not listen_addrs:"},{"line_number":5908,"context_line":"                # In this context want to ensure we do not have to migrate"},{"line_number":5909,"context_line":"                # graphic or serial consoles since we can\u0027t update guest\u0027s"},{"line_number":5910,"context_line":"                # domain XML to make it handle destination host."}],"source_content_type":"text/x-python","patch_set":7,"id":"ba5da102_c2ec3395","line":5907,"range":{"start_line":5907,"start_character":12,"end_line":5907,"end_character":31},"in_reply_to":"ba5da102_875170db","updated":"2016-11-04 11:00:59.000000000","message":"Again you\u0027re making comments on logic that is not changed in this patch, so that\u0027s not appropriate feedback here IMHO.","commit_id":"077a90971ea20629e607571b48694bd1022821d8"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"a0b983c15a5ea72e194f771823bd7489a2380ff4","unresolved":false,"context_lines":[{"line_number":5904,"context_line":"            listen_addrs \u003d libvirt_migrate.graphics_listen_addrs("},{"line_number":5905,"context_line":"                migrate_data)"},{"line_number":5906,"context_line":""},{"line_number":5907,"context_line":"            if not listen_addrs:"},{"line_number":5908,"context_line":"                # In this context want to ensure we do not have to migrate"},{"line_number":5909,"context_line":"                # graphic or serial consoles since we can\u0027t update guest\u0027s"},{"line_number":5910,"context_line":"                # domain XML to make it handle destination host."}],"source_content_type":"text/x-python","patch_set":7,"id":"9a629dbe_57b3a397","line":5907,"range":{"start_line":5907,"start_character":12,"end_line":5907,"end_character":31},"in_reply_to":"ba5da102_c2ec3395","updated":"2016-11-11 17:38:36.000000000","message":"It\u0027s appropriate feedback but you can just add that those issues should be addressed in a followup patch. :)","commit_id":"077a90971ea20629e607571b48694bd1022821d8"}]}
