)]}'
{"neutron_tempest_plugin/scenario/base.py":[{"author":{"_account_id":27654,"name":"Hongbin Lu","email":"kira034@163.com","username":"hongbin.lu"},"change_message_id":"3b5d30ec53d28c61110effc19da0bd1bc1621406","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        \"\"\""},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"        if \u0027name\u0027 in kwargs and kwargs.get(\u0027name\u0027) is None:"},{"line_number":80,"context_line":"            kwargs.pop(\u0027name\u0027)"},{"line_number":81,"context_line":"        kwargs.setdefault(\u0027name\u0027, data_utils.rand_name(\u0027server-test\u0027))"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        # We cannot use setdefault() here because caller could have passed"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f7c97a3_db6ede94","line":80,"range":{"start_line":80,"start_character":19,"end_line":80,"end_character":22},"updated":"2018-06-25 21:33:16.000000000","message":"Instead of doing this hack, I would lean to explore a more elegant approach, such as relying on callers to ensure that they don\u0027t pass the keyword \u0027name\u0027 if its value is None. However, it is not a big deal. I can live with current approach.","commit_id":"0f7d2779e9074b6353b49b76f11d13eabaa8a5ee"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"42b3ab8454390410bc0466d779b62ca6f22be0fc","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        \"\"\""},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"        if \u0027name\u0027 in kwargs and kwargs.get(\u0027name\u0027) is None:"},{"line_number":80,"context_line":"            kwargs.pop(\u0027name\u0027)"},{"line_number":81,"context_line":"        kwargs.setdefault(\u0027name\u0027, data_utils.rand_name(\u0027server-test\u0027))"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        # We cannot use setdefault() here because caller could have passed"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f7c97a3_2f367504","line":80,"range":{"start_line":80,"start_character":19,"end_line":80,"end_character":22},"in_reply_to":"5f7c97a3_db6ede94","updated":"2018-06-27 18:02:07.000000000","message":"Agreed, I don\u0027t remember why I did it this way.","commit_id":"0f7d2779e9074b6353b49b76f11d13eabaa8a5ee"},{"author":{"_account_id":27654,"name":"Hongbin Lu","email":"kira034@163.com","username":"hongbin.lu"},"change_message_id":"3b5d30ec53d28c61110effc19da0bd1bc1621406","unresolved":false,"context_lines":[{"line_number":270,"context_line":"        \"\"\""},{"line_number":271,"context_line":"        def is_valid_ip_address(address):"},{"line_number":272,"context_line":"            try:"},{"line_number":273,"context_line":"                netaddr.IPAddress(address)"},{"line_number":274,"context_line":"            except netaddr.core.AddrFormatError:"},{"line_number":275,"context_line":"                return False"},{"line_number":276,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f7c97a3_1bb1b6e0","line":273,"range":{"start_line":273,"start_character":24,"end_line":273,"end_character":33},"updated":"2018-06-25 21:33:16.000000000","message":"Nit: you can simply return this object so that we don\u0027t need to re-create it again later. If the address is invalid, it returns None.","commit_id":"0f7d2779e9074b6353b49b76f11d13eabaa8a5ee"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"3320dd35610c8086492ab9a41f4c0cb2559b97a2","unresolved":false,"context_lines":[{"line_number":270,"context_line":"        \"\"\""},{"line_number":271,"context_line":"        def is_valid_ip_address(address):"},{"line_number":272,"context_line":"            try:"},{"line_number":273,"context_line":"                netaddr.IPAddress(address)"},{"line_number":274,"context_line":"            except netaddr.core.AddrFormatError:"},{"line_number":275,"context_line":"                return False"},{"line_number":276,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f7c97a3_da8d60d4","line":273,"range":{"start_line":273,"start_character":24,"end_line":273,"end_character":33},"in_reply_to":"5f7c97a3_1bb1b6e0","updated":"2018-06-26 17:29:49.000000000","message":"I\u0027m not sure if it would be better to return this value here. IMO returning True/False from function which name starts with \"is_valid_\" is more clear.\nMaybe You can change it to something like \"get_valid_ip_address()\" and then it would be better to return this netaddr.IPAddress() directly here","commit_id":"0f7d2779e9074b6353b49b76f11d13eabaa8a5ee"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"42b3ab8454390410bc0466d779b62ca6f22be0fc","unresolved":false,"context_lines":[{"line_number":270,"context_line":"        \"\"\""},{"line_number":271,"context_line":"        def is_valid_ip_address(address):"},{"line_number":272,"context_line":"            try:"},{"line_number":273,"context_line":"                netaddr.IPAddress(address)"},{"line_number":274,"context_line":"            except netaddr.core.AddrFormatError:"},{"line_number":275,"context_line":"                return False"},{"line_number":276,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f7c97a3_6fc22d05","line":273,"range":{"start_line":273,"start_character":24,"end_line":273,"end_character":33},"in_reply_to":"5f7c97a3_da8d60d4","updated":"2018-06-27 18:02:07.000000000","message":"I agree with Slawek, I like the \u0027is_valid_ip_address\u0027 function signature better than \u0027get_valid_ip_address_or_none\u0027 signature.","commit_id":"0f7d2779e9074b6353b49b76f11d13eabaa8a5ee"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"42c9ccafa90183ab97491184bc95af4c96d8acb8","unresolved":false,"context_lines":[{"line_number":268,"context_line":"                      size\u003dCONF.validation.ping_size, nic\u003dNone, mtu\u003dNone,"},{"line_number":269,"context_line":"                      fragmentation\u003dTrue):"},{"line_number":270,"context_line":"            addr \u003d netaddr.IPAddress(host)"},{"line_number":271,"context_line":"            cmd \u003d \u0027ping6\u0027 if addr.version \u003d\u003d 6 else \u0027ping\u0027"},{"line_number":272,"context_line":"            if nic:"},{"line_number":273,"context_line":"                cmd \u003d \u0027sudo {cmd} -I {nic}\u0027.format(cmd\u003dcmd, nic\u003dnic)"},{"line_number":274,"context_line":"            if mtu:"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_698d167b","side":"PARENT","line":271,"updated":"2018-06-29 17:28:37.000000000","message":"cmd \u003d \u0027ping6\u0027 if netaddr.valid_ipv6(host) else \u0027ping\u0027\n\nThat should do the same thing with less code - IPv6 addresses get ping6, everything else gets ping","commit_id":"e7417b7631836d4cc6cb2f38e4d066974def6c34"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"4c5197959377c56be9a865d0e11a56e7570a8f3d","unresolved":false,"context_lines":[{"line_number":268,"context_line":"                      size\u003dCONF.validation.ping_size, nic\u003dNone, mtu\u003dNone,"},{"line_number":269,"context_line":"                      fragmentation\u003dTrue):"},{"line_number":270,"context_line":"            addr \u003d netaddr.IPAddress(host)"},{"line_number":271,"context_line":"            cmd \u003d \u0027ping6\u0027 if addr.version \u003d\u003d 6 else \u0027ping\u0027"},{"line_number":272,"context_line":"            if nic:"},{"line_number":273,"context_line":"                cmd \u003d \u0027sudo {cmd} -I {nic}\u0027.format(cmd\u003dcmd, nic\u003dnic)"},{"line_number":274,"context_line":"            if mtu:"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_c4ae5680","side":"PARENT","line":271,"in_reply_to":"5f7c97a3_698d167b","updated":"2018-07-03 13:19:59.000000000","message":"Done","commit_id":"e7417b7631836d4cc6cb2f38e4d066974def6c34"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"42c9ccafa90183ab97491184bc95af4c96d8acb8","unresolved":false,"context_lines":[{"line_number":308,"context_line":"                return not should_succeed"},{"line_number":309,"context_line":"            LOG.debug(\u0027ping result: %s\u0027, result)"},{"line_number":310,"context_line":""},{"line_number":311,"context_line":"            if is_valid_ip_address(dest):"},{"line_number":312,"context_line":"                # Assert that the return traffic was from the correct"},{"line_number":313,"context_line":"                # source address."},{"line_number":314,"context_line":"                from_source \u003d \u0027from %s\u0027 % dest"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_6053e417","line":311,"updated":"2018-06-29 17:28:37.000000000","message":"Why doesn\u0027t \u0027ping leia\u0027 have a \u0027from leia\u0027 in output?  shouldn\u0027t it if dns is working?","commit_id":"aec649f50e23f28841fc0875277a392820b2eaa8"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"747af0490b402b3be2ddb005baf6be777f2821f9","unresolved":false,"context_lines":[{"line_number":308,"context_line":"                return not should_succeed"},{"line_number":309,"context_line":"            LOG.debug(\u0027ping result: %s\u0027, result)"},{"line_number":310,"context_line":""},{"line_number":311,"context_line":"            if is_valid_ip_address(dest):"},{"line_number":312,"context_line":"                # Assert that the return traffic was from the correct"},{"line_number":313,"context_line":"                # source address."},{"line_number":314,"context_line":"                from_source \u003d \u0027from %s\u0027 % dest"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_d8563a06","line":311,"in_reply_to":"5f7c97a3_24b86ac5","updated":"2018-07-03 13:42:11.000000000","message":"Looks like part of it is even a Cirros thing:\n\n$ ping localhost\nPING localhost (127.0.0.1) 56 bytes of data.\n64 bytes from 127.0.0.1: icmp_seq\u003d1 ttl\u003d64 time\u003d0.061 ms\n\nAnd localhost is in /etc/hosts :-/","commit_id":"aec649f50e23f28841fc0875277a392820b2eaa8"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"4c5197959377c56be9a865d0e11a56e7570a8f3d","unresolved":false,"context_lines":[{"line_number":308,"context_line":"                return not should_succeed"},{"line_number":309,"context_line":"            LOG.debug(\u0027ping result: %s\u0027, result)"},{"line_number":310,"context_line":""},{"line_number":311,"context_line":"            if is_valid_ip_address(dest):"},{"line_number":312,"context_line":"                # Assert that the return traffic was from the correct"},{"line_number":313,"context_line":"                # source address."},{"line_number":314,"context_line":"                from_source \u003d \u0027from %s\u0027 % dest"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_24b86ac5","line":311,"in_reply_to":"5f7c97a3_6053e417","updated":"2018-07-03 13:19:59.000000000","message":"On my laptop:\n\nping google.com\n\nPING google.com(iad30s07-in-x0e.1e100.net (2607:f8b0:4004:804::200e)) 56 data bytes\n64 bytes from iad30s07-in-x0e.1e100.net (2607:f8b0:4004:804::200e): icmp_seq\u003d1 ttl\u003d53 time\u003d21.9 ms\n\nIt seems as if the \u0027from\u0027 response doesn\u0027t necessarily include the destination hostname as written in the input to the ping binary.","commit_id":"aec649f50e23f28841fc0875277a392820b2eaa8"},{"author":{"_account_id":13995,"name":"Nate Johnston","email":"nate.johnston@redhat.com","username":"natejohnston"},"change_message_id":"1228806bc88a0e96f7f92187e3333376cba3b0f3","unresolved":false,"context_lines":[{"line_number":272,"context_line":"        :returns: boolean -- should_succeed \u003d\u003d ping"},{"line_number":273,"context_line":"        :returns: ping is false if ping failed"},{"line_number":274,"context_line":"        \"\"\""},{"line_number":275,"context_line":"        def is_valid_ip_address(address):"},{"line_number":276,"context_line":"            try:"},{"line_number":277,"context_line":"                netaddr.IPAddress(address)"},{"line_number":278,"context_line":"            except netaddr.core.AddrFormatError:"}],"source_content_type":"text/x-python","patch_set":9,"id":"5f7c97a3_2fd79e51","line":275,"updated":"2018-07-06 14:46:06.000000000","message":"It looks like the validate_ip_addresses() validator in neutron-lib [1] covers more scenarios than this; perhaps it might be better to reuse that?\n\n[1] https://git.openstack.org/cgit/openstack/neutron-lib/tree/neutron_lib/api/validators/__init__.py#n401","commit_id":"16b3563deb3d920cde5c082a7bd786a6b224af7b"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"2f6d86c7074d50fa37fccb0c290d660d0aa8a710","unresolved":false,"context_lines":[{"line_number":272,"context_line":"        :returns: boolean -- should_succeed \u003d\u003d ping"},{"line_number":273,"context_line":"        :returns: ping is false if ping failed"},{"line_number":274,"context_line":"        \"\"\""},{"line_number":275,"context_line":"        def is_valid_ip_address(address):"},{"line_number":276,"context_line":"            try:"},{"line_number":277,"context_line":"                netaddr.IPAddress(address)"},{"line_number":278,"context_line":"            except netaddr.core.AddrFormatError:"}],"source_content_type":"text/x-python","patch_set":9,"id":"5f7c97a3_eae994aa","line":275,"in_reply_to":"5f7c97a3_2fd79e51","updated":"2018-07-06 15:36:47.000000000","message":"Done","commit_id":"16b3563deb3d920cde5c082a7bd786a6b224af7b"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"68a491128824d68bf9bd52033380e07914df9080","unresolved":false,"context_lines":[{"line_number":277,"context_line":"                      size\u003dCONF.validation.ping_size, nic\u003dNone, mtu\u003dNone,"},{"line_number":278,"context_line":"                      fragmentation\u003dTrue):"},{"line_number":279,"context_line":"            # Use \u0027ping6\u0027 for IPv6 addresses, \u0027ping\u0027 for IPv4 and hostnames"},{"line_number":280,"context_line":"            ip_version \u003d 6 if netaddr.valid_ipv6(host) else 4"},{"line_number":281,"context_line":"            cmd \u003d \u0027ping6\u0027 if ip_version \u003d\u003d 6 else \u0027ping\u0027"},{"line_number":282,"context_line":"            if nic:"},{"line_number":283,"context_line":"                cmd \u003d \u0027sudo {cmd} -I {nic}\u0027.format(cmd\u003dcmd, nic\u003dnic)"}],"source_content_type":"text/x-python","patch_set":12,"id":"5f7c97a3_90fe6ead","line":280,"range":{"start_line":280,"start_character":25,"end_line":280,"end_character":26},"updated":"2018-07-15 21:28:41.000000000","message":"sorry for this nitpicking but maybe You could change one more thing and use constants available in neutron-lib: https://github.com/openstack/neutron-lib/blob/master/neutron_lib/constants.py#L86 instead of \"raw\" values?","commit_id":"0e7f5e7c99df4b7242ddda15ea704bbf3e4767ec"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"c649f0a7c20f30f9cd3ae9a64bd4f00c991adcd3","unresolved":false,"context_lines":[{"line_number":277,"context_line":"                      size\u003dCONF.validation.ping_size, nic\u003dNone, mtu\u003dNone,"},{"line_number":278,"context_line":"                      fragmentation\u003dTrue):"},{"line_number":279,"context_line":"            # Use \u0027ping6\u0027 for IPv6 addresses, \u0027ping\u0027 for IPv4 and hostnames"},{"line_number":280,"context_line":"            ip_version \u003d 6 if netaddr.valid_ipv6(host) else 4"},{"line_number":281,"context_line":"            cmd \u003d \u0027ping6\u0027 if ip_version \u003d\u003d 6 else \u0027ping\u0027"},{"line_number":282,"context_line":"            if nic:"},{"line_number":283,"context_line":"                cmd \u003d \u0027sudo {cmd} -I {nic}\u0027.format(cmd\u003dcmd, nic\u003dnic)"}],"source_content_type":"text/x-python","patch_set":12,"id":"5f7c97a3_7c66dabe","line":280,"range":{"start_line":280,"start_character":25,"end_line":280,"end_character":26},"in_reply_to":"5f7c97a3_90fe6ead","updated":"2018-07-17 16:49:20.000000000","message":"Done","commit_id":"0e7f5e7c99df4b7242ddda15ea704bbf3e4767ec"}],"neutron_tempest_plugin/scenario/test_internal_dns.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"8e0182c80cc91a14f9c01f81813ef5502f5f5b2f","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        # Ping once, but wait (up to) %s seconds. The very first ping can take"},{"line_number":56,"context_line":"        # a bit due to DNS resolution."},{"line_number":57,"context_line":"        ssh_client.exec_command("},{"line_number":58,"context_line":"            \u0027ping -c1 -w%s leia\u0027 % CONF.validation.ping_timeout)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_5a4dde38","line":58,"updated":"2018-05-31 15:46:55.000000000","message":"Wonder if this should be:\n\nself.check_remote_connectivity(ssh_client, \u0027leia\u0027)","commit_id":"5678aeffad8363f0c1a857df33006d59c80e07b4"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"4021ac390abb4e4f60f2c1c7e7e4f5d43e1a06f3","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        # Ping once, but wait (up to) %s seconds. The very first ping can take"},{"line_number":56,"context_line":"        # a bit due to DNS resolution."},{"line_number":57,"context_line":"        ssh_client.exec_command("},{"line_number":58,"context_line":"            \u0027ping -c1 -w%s leia\u0027 % CONF.validation.ping_timeout)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_9af6168f","line":58,"in_reply_to":"5f7c97a3_5a4dde38","updated":"2018-05-31 16:00:37.000000000","message":"That helper doesn\u0027t let me set a separate count and timeout like I\u0027m using here. My desired functionality is: Ping once, but wait up to some long timeout. check_remote_connectivity uses the same value for both -c and -w, so if I give it 10, it\u0027ll ping 10 times, even if the first one succeeds. I thought it simpler to issue a ping directly like I did than modify that helper in either a backwards compat. way or fix all of its calls.","commit_id":"5678aeffad8363f0c1a857df33006d59c80e07b4"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"8e69e31f0199926457335a85325469ad374ee0e9","unresolved":false,"context_lines":[{"line_number":43,"context_line":"            security_groups\u003d["},{"line_number":44,"context_line":"                {\u0027name\u0027: self.security_groups[-1][\u0027name\u0027]}],"},{"line_number":45,"context_line":"            name\u003d\u0027leia\u0027)"},{"line_number":46,"context_line":"        self.wait_for_server_active(leia[\u0027server\u0027])"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        ssh_client \u003d ssh.Client("},{"line_number":49,"context_line":"            self.fip[\u0027floating_ip_address\u0027],"}],"source_content_type":"text/x-python","patch_set":6,"id":"5f7c97a3_fd865bba","line":46,"updated":"2018-06-22 11:19:02.000000000","message":"IIUC this only waits for the server to be active in nova, which isn\u0027t enough. The other server takes about 10 minutes until it is finished with cloud-init in the gate logs I\u0027m looking at, because we are using the \"heavy\" Ubuntu image here and starting two instances at the same time places quite a bit of load onto the host.","commit_id":"8f8e059210d3aacb84d2a78d04c293b24548c3a2"},{"author":{"_account_id":27654,"name":"Hongbin Lu","email":"kira034@163.com","username":"hongbin.lu"},"change_message_id":"3b5d30ec53d28c61110effc19da0bd1bc1621406","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    @utils.requires_ext(extension\u003d\"dns-integration\", service\u003d\"network\")"},{"line_number":29,"context_line":"    @decorators.idempotent_id(\u0027988347de-07af-471a-abfa-65aea9f452a6\u0027)"},{"line_number":30,"context_line":"    def test_dns_name(self):"},{"line_number":31,"context_line":"        self.setup_network_and_server(server_name\u003d\u0027luke\u0027)"},{"line_number":32,"context_line":"        self.create_pingable_secgroup_rule("},{"line_number":33,"context_line":"            secgroup_id\u003dself.security_groups[-1][\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f7c97a3_dbf49e89","line":30,"range":{"start_line":30,"start_character":8,"end_line":30,"end_character":21},"updated":"2018-06-25 21:33:16.000000000","message":"It would be nice to have a comment that briefly explain what this case is going to verify and how it does it.","commit_id":"0f7d2779e9074b6353b49b76f11d13eabaa8a5ee"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"42b3ab8454390410bc0466d779b62ca6f22be0fc","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    @utils.requires_ext(extension\u003d\"dns-integration\", service\u003d\"network\")"},{"line_number":29,"context_line":"    @decorators.idempotent_id(\u0027988347de-07af-471a-abfa-65aea9f452a6\u0027)"},{"line_number":30,"context_line":"    def test_dns_name(self):"},{"line_number":31,"context_line":"        self.setup_network_and_server(server_name\u003d\u0027luke\u0027)"},{"line_number":32,"context_line":"        self.create_pingable_secgroup_rule("},{"line_number":33,"context_line":"            secgroup_id\u003dself.security_groups[-1][\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f7c97a3_0faa9919","line":30,"range":{"start_line":30,"start_character":8,"end_line":30,"end_character":21},"in_reply_to":"5f7c97a3_dbf49e89","updated":"2018-06-27 18:02:07.000000000","message":"Done","commit_id":"0f7d2779e9074b6353b49b76f11d13eabaa8a5ee"},{"author":{"_account_id":27654,"name":"Hongbin Lu","email":"kira034@163.com","username":"hongbin.lu"},"change_message_id":"3b5d30ec53d28c61110effc19da0bd1bc1621406","unresolved":false,"context_lines":[{"line_number":44,"context_line":"                {\u0027name\u0027: self.security_groups[-1][\u0027name\u0027]}],"},{"line_number":45,"context_line":"            name\u003d\u0027leia\u0027)"},{"line_number":46,"context_line":"        self.wait_for_server_active(leia[\u0027server\u0027])"},{"line_number":47,"context_line":"        leia_port \u003d self.client.list_ports("},{"line_number":48,"context_line":"            network_id\u003dself.network[\u0027id\u0027],"},{"line_number":49,"context_line":"            device_id\u003dleia[\u0027server\u0027][\u0027id\u0027])[\u0027ports\u0027][0]"},{"line_number":50,"context_line":"        leia_fip \u003d self.create_and_associate_floatingip(leia_port[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f7c97a3_beb42ff2","line":47,"range":{"start_line":47,"start_character":8,"end_line":47,"end_character":17},"updated":"2018-06-25 21:33:16.000000000","message":"Want to verify the \u0027dns_name\u0027 attribute of the port?","commit_id":"0f7d2779e9074b6353b49b76f11d13eabaa8a5ee"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"42b3ab8454390410bc0466d779b62ca6f22be0fc","unresolved":false,"context_lines":[{"line_number":44,"context_line":"                {\u0027name\u0027: self.security_groups[-1][\u0027name\u0027]}],"},{"line_number":45,"context_line":"            name\u003d\u0027leia\u0027)"},{"line_number":46,"context_line":"        self.wait_for_server_active(leia[\u0027server\u0027])"},{"line_number":47,"context_line":"        leia_port \u003d self.client.list_ports("},{"line_number":48,"context_line":"            network_id\u003dself.network[\u0027id\u0027],"},{"line_number":49,"context_line":"            device_id\u003dleia[\u0027server\u0027][\u0027id\u0027])[\u0027ports\u0027][0]"},{"line_number":50,"context_line":"        leia_fip \u003d self.create_and_associate_floatingip(leia_port[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f7c97a3_2fcc3533","line":47,"range":{"start_line":47,"start_character":8,"end_line":47,"end_character":17},"in_reply_to":"5f7c97a3_beb42ff2","updated":"2018-06-27 18:02:07.000000000","message":"We have an API test for this. This test assumes that that test passes.","commit_id":"0f7d2779e9074b6353b49b76f11d13eabaa8a5ee"},{"author":{"_account_id":27654,"name":"Hongbin Lu","email":"kira034@163.com","username":"hongbin.lu"},"change_message_id":"3b5d30ec53d28c61110effc19da0bd1bc1621406","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        leia_port \u003d self.client.list_ports("},{"line_number":48,"context_line":"            network_id\u003dself.network[\u0027id\u0027],"},{"line_number":49,"context_line":"            device_id\u003dleia[\u0027server\u0027][\u0027id\u0027])[\u0027ports\u0027][0]"},{"line_number":50,"context_line":"        leia_fip \u003d self.create_and_associate_floatingip(leia_port[\u0027id\u0027])"},{"line_number":51,"context_line":"        self.check_connectivity(leia_fip[\u0027floating_ip_address\u0027],"},{"line_number":52,"context_line":"                                CONF.validation.image_ssh_user,"},{"line_number":53,"context_line":"                                self.keypair[\u0027private_key\u0027])"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        ssh_client \u003d ssh.Client("},{"line_number":56,"context_line":"            self.fip[\u0027floating_ip_address\u0027],"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f7c97a3_febaa7bd","line":53,"range":{"start_line":50,"start_character":0,"end_line":53,"end_character":60},"updated":"2018-06-25 21:33:16.000000000","message":"It seems you can skip the floating IP creation and connectivity check since you are using the fixed IP for DNS testing.","commit_id":"0f7d2779e9074b6353b49b76f11d13eabaa8a5ee"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"42b3ab8454390410bc0466d779b62ca6f22be0fc","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        leia_port \u003d self.client.list_ports("},{"line_number":48,"context_line":"            network_id\u003dself.network[\u0027id\u0027],"},{"line_number":49,"context_line":"            device_id\u003dleia[\u0027server\u0027][\u0027id\u0027])[\u0027ports\u0027][0]"},{"line_number":50,"context_line":"        leia_fip \u003d self.create_and_associate_floatingip(leia_port[\u0027id\u0027])"},{"line_number":51,"context_line":"        self.check_connectivity(leia_fip[\u0027floating_ip_address\u0027],"},{"line_number":52,"context_line":"                                CONF.validation.image_ssh_user,"},{"line_number":53,"context_line":"                                self.keypair[\u0027private_key\u0027])"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        ssh_client \u003d ssh.Client("},{"line_number":56,"context_line":"            self.fip[\u0027floating_ip_address\u0027],"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f7c97a3_6feb0d7b","line":53,"range":{"start_line":50,"start_character":0,"end_line":53,"end_character":60},"in_reply_to":"5f7c97a3_5a6870f2","updated":"2018-06-27 18:02:07.000000000","message":"I\u0027ll fix this. I used the check_connectivity method because I was lazy and it has a higher timeout (which resolves the issue from the previous patchset), and it requires a FIP.","commit_id":"0f7d2779e9074b6353b49b76f11d13eabaa8a5ee"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"3320dd35610c8086492ab9a41f4c0cb2559b97a2","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        leia_port \u003d self.client.list_ports("},{"line_number":48,"context_line":"            network_id\u003dself.network[\u0027id\u0027],"},{"line_number":49,"context_line":"            device_id\u003dleia[\u0027server\u0027][\u0027id\u0027])[\u0027ports\u0027][0]"},{"line_number":50,"context_line":"        leia_fip \u003d self.create_and_associate_floatingip(leia_port[\u0027id\u0027])"},{"line_number":51,"context_line":"        self.check_connectivity(leia_fip[\u0027floating_ip_address\u0027],"},{"line_number":52,"context_line":"                                CONF.validation.image_ssh_user,"},{"line_number":53,"context_line":"                                self.keypair[\u0027private_key\u0027])"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        ssh_client \u003d ssh.Client("},{"line_number":56,"context_line":"            self.fip[\u0027floating_ip_address\u0027],"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f7c97a3_5a6870f2","line":53,"range":{"start_line":50,"start_character":0,"end_line":53,"end_character":60},"in_reply_to":"5f7c97a3_febaa7bd","updated":"2018-06-26 17:29:49.000000000","message":"+1","commit_id":"0f7d2779e9074b6353b49b76f11d13eabaa8a5ee"},{"author":{"_account_id":27654,"name":"Hongbin Lu","email":"kira034@163.com","username":"hongbin.lu"},"change_message_id":"3b5d30ec53d28c61110effc19da0bd1bc1621406","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        self.check_remote_connectivity("},{"line_number":63,"context_line":"            ssh_client, leia_port[\u0027fixed_ips\u0027][0][\u0027ip_address\u0027])"},{"line_number":64,"context_line":"        self.check_remote_connectivity(ssh_client, \u0027leia\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f7c97a3_1ec1a32f","line":64,"range":{"start_line":64,"start_character":52,"end_line":64,"end_character":56},"updated":"2018-06-25 21:33:16.000000000","message":"Want to check something like \u0027leia.examle.com\u0027 as well?","commit_id":"0f7d2779e9074b6353b49b76f11d13eabaa8a5ee"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"42b3ab8454390410bc0466d779b62ca6f22be0fc","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        self.check_remote_connectivity("},{"line_number":63,"context_line":"            ssh_client, leia_port[\u0027fixed_ips\u0027][0][\u0027ip_address\u0027])"},{"line_number":64,"context_line":"        self.check_remote_connectivity(ssh_client, \u0027leia\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f7c97a3_0ffcd93d","line":64,"range":{"start_line":64,"start_character":52,"end_line":64,"end_character":56},"in_reply_to":"5f7c97a3_1ec1a32f","updated":"2018-06-27 18:02:07.000000000","message":"You can\u0027t unless you specify the dns_domain of the Network as you create. I\u0027m doing that in https://review.openstack.org/#/c/571549/, which depends on a change to Neutron that hasn\u0027t merged yet.","commit_id":"0f7d2779e9074b6353b49b76f11d13eabaa8a5ee"}]}
