)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"4ac7af6c3eb85309dd5078f0e3047a68fb103e35","unresolved":true,"context_lines":[{"line_number":9,"context_line":"The test:"},{"line_number":10,"context_line":"- creates 2 VMs in the same network on the same host"},{"line_number":11,"context_line":"- creates Local IP and associates first VM\u0027s port with it"},{"line_number":12,"context_line":"- pings first VM from the secong one by local IP address"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Partial-Bug: #1930200"},{"line_number":15,"context_line":"Change-Id: I27a57170b88eda951ff3ef1d5320cb8c692a074a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"816fbca8_b25d0760","line":12,"updated":"2021-11-08 11:28:06.000000000","message":"Why not create 2 hosts, spawn 3 vms on (2 on one node and last one on the second host), then associate Local IP to the VMs on both hosts and ping it from the 3rd vm. Then You can check that traffic is going only to the VM on the same node, and not to the other one. Wdyt about it?","commit_id":"f4edf03a378c55f33f18b63a1d1428946ecdb169"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"2741cfb07c87b371ca1da19e19b0775dcee04ecf","unresolved":true,"context_lines":[{"line_number":9,"context_line":"The test:"},{"line_number":10,"context_line":"- creates 2 VMs in the same network on the same host"},{"line_number":11,"context_line":"- creates Local IP and associates first VM\u0027s port with it"},{"line_number":12,"context_line":"- pings first VM from the secong one by local IP address"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Partial-Bug: #1930200"},{"line_number":15,"context_line":"Change-Id: I27a57170b88eda951ff3ef1d5320cb8c692a074a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"78a2a5ea_38a8c68d","line":12,"in_reply_to":"816fbca8_b25d0760","updated":"2021-11-08 12:12:19.000000000","message":"Definitely makes sense to me, I\u0027ll update, thanks for the idea!","commit_id":"f4edf03a378c55f33f18b63a1d1428946ecdb169"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"29f2e4c69be249c334d02e4682e7b05c112da77f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"83bfc32b_aac5b00d","updated":"2021-12-01 21:36:54.000000000","message":"recheck TIMED_OUT","commit_id":"496403994e6fbf91abf0d8ed2151ed1912844442"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"ab00baff06f00575f760d05e36fc33f7908cbae3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":25,"id":"20749ada_9201a250","updated":"2022-01-18 10:59:37.000000000","message":"recheck POST_FAILURE and grenade setup failure","commit_id":"0ce584bd9af19daf96bc92dce231a7fac5085aac"}],"neutron/tests/fullstack/resources/client.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"4ac7af6c3eb85309dd5078f0e3047a68fb103e35","unresolved":true,"context_lines":[{"line_number":70,"context_line":"                             \u0027network_id\u0027: network_id}}"},{"line_number":71,"context_line":"        resp \u003d self.client.post(path, body\u003dbody)"},{"line_number":72,"context_line":"        data \u003d resp[\u0027local_ip\u0027]"},{"line_number":73,"context_line":"        self.addCleanup(_safe_method(delete), data[\u0027id\u0027])"},{"line_number":74,"context_line":"        return data"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    def create_local_ip_association(self, local_ip_id, port_id, fixed_ip\u003dNone):"}],"source_content_type":"text/x-python","patch_set":16,"id":"5d6490cf_256baf37","line":73,"updated":"2021-11-08 11:28:06.000000000","message":"I don\u0027t think we really need cleanup here. Fullstack tests are isolated from each other, so for each test You have separate neutron-server, database, etc. and all resources created in the test are cleaned automatically when test is over.","commit_id":"f4edf03a378c55f33f18b63a1d1428946ecdb169"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"2741cfb07c87b371ca1da19e19b0775dcee04ecf","unresolved":true,"context_lines":[{"line_number":70,"context_line":"                             \u0027network_id\u0027: network_id}}"},{"line_number":71,"context_line":"        resp \u003d self.client.post(path, body\u003dbody)"},{"line_number":72,"context_line":"        data \u003d resp[\u0027local_ip\u0027]"},{"line_number":73,"context_line":"        self.addCleanup(_safe_method(delete), data[\u0027id\u0027])"},{"line_number":74,"context_line":"        return data"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    def create_local_ip_association(self, local_ip_id, port_id, fixed_ip\u003dNone):"}],"source_content_type":"text/x-python","patch_set":16,"id":"af2be53b_fe1948d0","line":73,"in_reply_to":"5d6490cf_256baf37","updated":"2021-11-08 12:12:19.000000000","message":"Other resources are created via helper _create_resource() and it always adds such cleanup (line #50). For local IPs python_neutronclient does not have corresponding methods (as it\u0027s being deprecated) so I implemented them here for testing. \nBTW I need to move new methods to the end.","commit_id":"f4edf03a378c55f33f18b63a1d1428946ecdb169"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"4ac7af6c3eb85309dd5078f0e3047a68fb103e35","unresolved":true,"context_lines":[{"line_number":82,"context_line":"            body[\u0027port_association\u0027][\u0027fixed_ip\u0027] \u003d fixed_ip"},{"line_number":83,"context_line":"        resp \u003d self.client.post(path, body\u003dbody)"},{"line_number":84,"context_line":"        data \u003d resp[\u0027port_association\u0027]"},{"line_number":85,"context_line":"        self.addCleanup(_safe_method(delete), local_ip_id, port_id)"},{"line_number":86,"context_line":"        return data"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    def delete_local_ip(self, local_ip_id):"}],"source_content_type":"text/x-python","patch_set":16,"id":"d53b2f43_827452a5","line":85,"updated":"2021-11-08 11:28:06.000000000","message":"ditto","commit_id":"f4edf03a378c55f33f18b63a1d1428946ecdb169"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"2741cfb07c87b371ca1da19e19b0775dcee04ecf","unresolved":true,"context_lines":[{"line_number":82,"context_line":"            body[\u0027port_association\u0027][\u0027fixed_ip\u0027] \u003d fixed_ip"},{"line_number":83,"context_line":"        resp \u003d self.client.post(path, body\u003dbody)"},{"line_number":84,"context_line":"        data \u003d resp[\u0027port_association\u0027]"},{"line_number":85,"context_line":"        self.addCleanup(_safe_method(delete), local_ip_id, port_id)"},{"line_number":86,"context_line":"        return data"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    def delete_local_ip(self, local_ip_id):"}],"source_content_type":"text/x-python","patch_set":16,"id":"78bac7dd_1cda45ab","line":85,"in_reply_to":"d53b2f43_827452a5","updated":"2021-11-08 12:12:19.000000000","message":"same answer","commit_id":"f4edf03a378c55f33f18b63a1d1428946ecdb169"}],"neutron/tests/fullstack/resources/config.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"a1d162635bcdfeb4c159f3bdca27261f24fec0c1","unresolved":true,"context_lines":[{"line_number":267,"context_line":"        if env_desc.local_ip_ext:"},{"line_number":268,"context_line":"            self.config[\u0027agent\u0027][\u0027extensions\u0027] \u003d \u0027local_ip\u0027"},{"line_number":269,"context_line":"            if host_desc.firewall_driver !\u003d \u0027noop\u0027:"},{"line_number":270,"context_line":"                self.config[\u0027local_ip\u0027] \u003d {\u0027static_nat\u0027: \u0027True\u0027}"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"    def _setUp(self):"},{"line_number":273,"context_line":"        self.config[\u0027ovs\u0027].update({"}],"source_content_type":"text/x-python","patch_set":20,"id":"56ad38e7_46e6af39","line":270,"updated":"2021-12-08 15:57:42.000000000","message":"for iptables_hybrid we also set \u0027static_nat\u0027 to True?","commit_id":"496403994e6fbf91abf0d8ed2151ed1912844442"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"b0043b8a2a23e68f38fcf4038aa8ab69930a934e","unresolved":true,"context_lines":[{"line_number":267,"context_line":"        if env_desc.local_ip_ext:"},{"line_number":268,"context_line":"            self.config[\u0027agent\u0027][\u0027extensions\u0027] \u003d \u0027local_ip\u0027"},{"line_number":269,"context_line":"            if host_desc.firewall_driver !\u003d \u0027noop\u0027:"},{"line_number":270,"context_line":"                self.config[\u0027local_ip\u0027] \u003d {\u0027static_nat\u0027: \u0027True\u0027}"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"    def _setUp(self):"},{"line_number":273,"context_line":"        self.config[\u0027ovs\u0027].update({"}],"source_content_type":"text/x-python","patch_set":20,"id":"ca011ac6_4e3820cb","line":270,"in_reply_to":"56ad38e7_46e6af39","updated":"2021-12-09 07:43:38.000000000","message":"Good question, let me try with iptables_hybrid firewall and no static NAT..","commit_id":"496403994e6fbf91abf0d8ed2151ed1912844442"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"db3daeafe6c6fcd7a881459cb8343a5449f99981","unresolved":false,"context_lines":[{"line_number":267,"context_line":"        if env_desc.local_ip_ext:"},{"line_number":268,"context_line":"            self.config[\u0027agent\u0027][\u0027extensions\u0027] \u003d \u0027local_ip\u0027"},{"line_number":269,"context_line":"            if host_desc.firewall_driver !\u003d \u0027noop\u0027:"},{"line_number":270,"context_line":"                self.config[\u0027local_ip\u0027] \u003d {\u0027static_nat\u0027: \u0027True\u0027}"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"    def _setUp(self):"},{"line_number":273,"context_line":"        self.config[\u0027ovs\u0027].update({"}],"source_content_type":"text/x-python","patch_set":20,"id":"11e4ad47_0b2d5699","line":270,"in_reply_to":"ca011ac6_4e3820cb","updated":"2021-12-09 08:21:26.000000000","message":"Done","commit_id":"496403994e6fbf91abf0d8ed2151ed1912844442"}],"neutron/tests/fullstack/test_local_ip.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"a1d162635bcdfeb4c159f3bdca27261f24fec0c1","unresolved":true,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class LocalIPTestCase(base.BaseFullStackTestCase):"},{"line_number":25,"context_line":"    number_of_hosts \u003d 2"},{"line_number":26,"context_line":"    firewall_driver \u003d \u0027noop\u0027"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def setUp(self):"},{"line_number":29,"context_line":"        host_desc \u003d ["}],"source_content_type":"text/x-python","patch_set":20,"id":"abefe0c0_0c5992cf","line":26,"updated":"2021-12-08 15:57:42.000000000","message":"You can use scenarios for that, like e.g. in https://github.com/openstack/neutron/blob/master/neutron/tests/fullstack/test_qos.py#L345","commit_id":"496403994e6fbf91abf0d8ed2151ed1912844442"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"db3daeafe6c6fcd7a881459cb8343a5449f99981","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class LocalIPTestCase(base.BaseFullStackTestCase):"},{"line_number":25,"context_line":"    number_of_hosts \u003d 2"},{"line_number":26,"context_line":"    firewall_driver \u003d \u0027noop\u0027"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def setUp(self):"},{"line_number":29,"context_line":"        host_desc \u003d ["}],"source_content_type":"text/x-python","patch_set":20,"id":"63ac768b_2c502cd3","line":26,"in_reply_to":"5374eb19_c1cfa352","updated":"2021-12-09 08:21:26.000000000","message":"Done","commit_id":"496403994e6fbf91abf0d8ed2151ed1912844442"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"b0043b8a2a23e68f38fcf4038aa8ab69930a934e","unresolved":true,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class LocalIPTestCase(base.BaseFullStackTestCase):"},{"line_number":25,"context_line":"    number_of_hosts \u003d 2"},{"line_number":26,"context_line":"    firewall_driver \u003d \u0027noop\u0027"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def setUp(self):"},{"line_number":29,"context_line":"        host_desc \u003d ["}],"source_content_type":"text/x-python","patch_set":20,"id":"5374eb19_c1cfa352","line":26,"in_reply_to":"abefe0c0_0c5992cf","updated":"2021-12-09 07:43:38.000000000","message":"Indeed, let me try","commit_id":"496403994e6fbf91abf0d8ed2151ed1912844442"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"a1d162635bcdfeb4c159f3bdca27261f24fec0c1","unresolved":true,"context_lines":[{"line_number":31,"context_line":"                l2_agent_type\u003dconstants.AGENT_TYPE_OVS,"},{"line_number":32,"context_line":"                firewall_driver\u003dself.firewall_driver,"},{"line_number":33,"context_line":"                l3_agent\u003dFalse,"},{"line_number":34,"context_line":"                dhcp_agent\u003dTrue) for _ in range(self.number_of_hosts)]"},{"line_number":35,"context_line":"        env_desc \u003d environment.EnvironmentDescription("},{"line_number":36,"context_line":"            mech_drivers\u003d\u0027openvswitch\u0027,"},{"line_number":37,"context_line":"            local_ip_ext\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":20,"id":"433fd1f0_895a96ef","line":34,"range":{"start_line":34,"start_character":16,"end_line":34,"end_character":30},"updated":"2021-12-08 15:57:42.000000000","message":"do we need dhcp_agent there? can\u0027t we configure IPs manually inside Fake VMs?","commit_id":"496403994e6fbf91abf0d8ed2151ed1912844442"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"b0043b8a2a23e68f38fcf4038aa8ab69930a934e","unresolved":true,"context_lines":[{"line_number":31,"context_line":"                l2_agent_type\u003dconstants.AGENT_TYPE_OVS,"},{"line_number":32,"context_line":"                firewall_driver\u003dself.firewall_driver,"},{"line_number":33,"context_line":"                l3_agent\u003dFalse,"},{"line_number":34,"context_line":"                dhcp_agent\u003dTrue) for _ in range(self.number_of_hosts)]"},{"line_number":35,"context_line":"        env_desc \u003d environment.EnvironmentDescription("},{"line_number":36,"context_line":"            mech_drivers\u003d\u0027openvswitch\u0027,"},{"line_number":37,"context_line":"            local_ip_ext\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":20,"id":"576e5da0_f337e663","line":34,"range":{"start_line":34,"start_character":16,"end_line":34,"end_character":30},"in_reply_to":"433fd1f0_895a96ef","updated":"2021-12-09 07:43:38.000000000","message":"Yeah, no need to test dhcp agent here. Just need to find how it should be done","commit_id":"496403994e6fbf91abf0d8ed2151ed1912844442"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"3c8ae67a65bbd17b1975d89468e3ce7fc33a3124","unresolved":true,"context_lines":[{"line_number":31,"context_line":"                l2_agent_type\u003dconstants.AGENT_TYPE_OVS,"},{"line_number":32,"context_line":"                firewall_driver\u003dself.firewall_driver,"},{"line_number":33,"context_line":"                l3_agent\u003dFalse,"},{"line_number":34,"context_line":"                dhcp_agent\u003dTrue) for _ in range(self.number_of_hosts)]"},{"line_number":35,"context_line":"        env_desc \u003d environment.EnvironmentDescription("},{"line_number":36,"context_line":"            mech_drivers\u003d\u0027openvswitch\u0027,"},{"line_number":37,"context_line":"            local_ip_ext\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":20,"id":"5da22e37_9d03e021","line":34,"range":{"start_line":34,"start_character":16,"end_line":34,"end_character":30},"in_reply_to":"576e5da0_f337e663","updated":"2021-12-09 08:17:53.000000000","message":"Ah, it\u0027s already supported by the framework, nice!","commit_id":"496403994e6fbf91abf0d8ed2151ed1912844442"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"db3daeafe6c6fcd7a881459cb8343a5449f99981","unresolved":false,"context_lines":[{"line_number":31,"context_line":"                l2_agent_type\u003dconstants.AGENT_TYPE_OVS,"},{"line_number":32,"context_line":"                firewall_driver\u003dself.firewall_driver,"},{"line_number":33,"context_line":"                l3_agent\u003dFalse,"},{"line_number":34,"context_line":"                dhcp_agent\u003dTrue) for _ in range(self.number_of_hosts)]"},{"line_number":35,"context_line":"        env_desc \u003d environment.EnvironmentDescription("},{"line_number":36,"context_line":"            mech_drivers\u003d\u0027openvswitch\u0027,"},{"line_number":37,"context_line":"            local_ip_ext\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":20,"id":"e93fcf28_431f4217","line":34,"range":{"start_line":34,"start_character":16,"end_line":34,"end_character":30},"in_reply_to":"5da22e37_9d03e021","updated":"2021-12-09 08:21:26.000000000","message":"Done","commit_id":"496403994e6fbf91abf0d8ed2151ed1912844442"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"159b752e017357e581f8a2ca6803876a6c2380d0","unresolved":false,"context_lines":[{"line_number":31,"context_line":"                l2_agent_type\u003dconstants.AGENT_TYPE_OVS,"},{"line_number":32,"context_line":"                firewall_driver\u003dself.firewall_driver,"},{"line_number":33,"context_line":"                l3_agent\u003dFalse,"},{"line_number":34,"context_line":"                dhcp_agent\u003dTrue) for _ in range(self.number_of_hosts)]"},{"line_number":35,"context_line":"        env_desc \u003d environment.EnvironmentDescription("},{"line_number":36,"context_line":"            mech_drivers\u003d\u0027openvswitch\u0027,"},{"line_number":37,"context_line":"            local_ip_ext\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":20,"id":"09d546b9_33d9c3b9","line":34,"range":{"start_line":34,"start_character":16,"end_line":34,"end_character":30},"in_reply_to":"e93fcf28_431f4217","updated":"2021-12-09 21:09:25.000000000","message":"Yeah, it was supported like that since the beginning. Later we added support for the DHCP agent in fullstack framework :)","commit_id":"496403994e6fbf91abf0d8ed2151ed1912844442"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"a1d162635bcdfeb4c159f3bdca27261f24fec0c1","unresolved":true,"context_lines":[{"line_number":112,"context_line":"        vms[1].block_until_ping(local_ip[\u0027local_ip_address\u0027])"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"        # VM on different host shouldn\u0027t have access to this Local IP"},{"line_number":115,"context_line":"        vms[2].assert_no_ping(local_ip[\u0027local_ip_address\u0027])"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"class LocalIPStaticNatTestCase(LocalIPTestCase):"}],"source_content_type":"text/x-python","patch_set":20,"id":"c0dbe674_6781572d","line":115,"updated":"2021-12-08 15:57:42.000000000","message":"maybe You can also check if connectivity using \"fixed IPs\" still works between all vms after attaching local IP to one of them?","commit_id":"496403994e6fbf91abf0d8ed2151ed1912844442"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"db3daeafe6c6fcd7a881459cb8343a5449f99981","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        vms[1].block_until_ping(local_ip[\u0027local_ip_address\u0027])"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"        # VM on different host shouldn\u0027t have access to this Local IP"},{"line_number":115,"context_line":"        vms[2].assert_no_ping(local_ip[\u0027local_ip_address\u0027])"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"class LocalIPStaticNatTestCase(LocalIPTestCase):"}],"source_content_type":"text/x-python","patch_set":20,"id":"35e69bcd_59674673","line":115,"in_reply_to":"ad7021c7_85c57227","updated":"2021-12-09 08:21:26.000000000","message":"Done","commit_id":"496403994e6fbf91abf0d8ed2151ed1912844442"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"b0043b8a2a23e68f38fcf4038aa8ab69930a934e","unresolved":true,"context_lines":[{"line_number":112,"context_line":"        vms[1].block_until_ping(local_ip[\u0027local_ip_address\u0027])"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"        # VM on different host shouldn\u0027t have access to this Local IP"},{"line_number":115,"context_line":"        vms[2].assert_no_ping(local_ip[\u0027local_ip_address\u0027])"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"class LocalIPStaticNatTestCase(LocalIPTestCase):"}],"source_content_type":"text/x-python","patch_set":20,"id":"ad7021c7_85c57227","line":115,"in_reply_to":"c0dbe674_6781572d","updated":"2021-12-09 07:43:38.000000000","message":"Yes, good point, thanks!","commit_id":"496403994e6fbf91abf0d8ed2151ed1912844442"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"d045170bd05885cad4549273270b787077ca5113","unresolved":true,"context_lines":[{"line_number":116,"context_line":"        # VM on same host should have access to this Local IP"},{"line_number":117,"context_line":"        vms[1].block_until_ping(local_ip[\u0027local_ip_address\u0027])"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"        # VM on different host shouldn\u0027t have access to this Local IP"},{"line_number":120,"context_line":"        vms[2].assert_no_ping(local_ip[\u0027local_ip_address\u0027])"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"        # check that VMs can still access each other with fixed IPs"},{"line_number":123,"context_line":"        vms.ping_all()"}],"source_content_type":"text/x-python","patch_set":22,"id":"b72db07a_479c611a","line":120,"range":{"start_line":119,"start_character":8,"end_line":120,"end_character":59},"updated":"2021-12-15 07:43:19.000000000","message":"I was looking for this but finally found it, +1","commit_id":"9e57efa5502c476f664aebc2d1285fbf2e241e26"}]}
