)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":27078,"name":"Manik Bindlish","email":"manikbindlish19@gmail.com","username":"manik"},"change_message_id":"2b1364d5018cb5498a3b2e920a3389d6301d84e0","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Mykola Yakovliev \u003cVegasQ@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2018-11-05 11:30:00 -0600"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Remove random IP selection to prevent conlicts with Contrail"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Since some tests use random to select IP address from the pool,"},{"line_number":10,"context_line":"it makes test results unreliable. In relatively small percent"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3f79a3b5_6bc23e8a","line":7,"range":{"start_line":7,"start_character":38,"end_line":7,"end_character":46},"updated":"2018-11-28 07:31:28.000000000","message":"conlicts -\u003e conflicts","commit_id":"480ab375a1b553561707aa776eb1815bc00842f2"}],"tempest/api/network/test_dhcp_ipv6.py":[{"author":{"_account_id":16274,"name":"Mykola Yakovliev","email":"VegasQ@gmail.com","username":"vegasq"},"change_message_id":"eebcc79276b63f4be56f5ca77cbcfb6735c179d8","unresolved":false,"context_lines":[{"line_number":309,"context_line":"            self.subnets.append(subnet)"},{"line_number":310,"context_line":"            ip_range \u003d netaddr.IPRange(subnet[\"allocation_pools\"][0][\"start\"],"},{"line_number":311,"context_line":"                                       subnet[\"allocation_pools\"][0][\"end\"])"},{"line_number":312,"context_line":"            ip \u003d netaddr.IPAddress(random.randrange(ip_range.first + 2,"},{"line_number":313,"context_line":"                                                    ip_range.last)).format()"},{"line_number":314,"context_line":"            port \u003d self.create_port(self.network,"},{"line_number":315,"context_line":"                                    fixed_ips\u003d[{\u0027subnet_id\u0027: subnet[\u0027id\u0027],"},{"line_number":316,"context_line":"                                                \u0027ip_address\u0027: ip}])"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_25d663fa","line":313,"range":{"start_line":312,"start_character":35,"end_line":313,"end_character":66},"updated":"2018-11-01 20:33:15.000000000","message":"I have a strong desire to replace it with ``ip_range.last - 1``, but probably I\u0027m missing some point why do we need random in here.","commit_id":"4a07c1ca0e53dbe3a72716a2f5dca44d0f29257e"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"e3d40838fa9b566081f9b0c2b0956a5d6cbe166f","unresolved":false,"context_lines":[{"line_number":309,"context_line":"            self.subnets.append(subnet)"},{"line_number":310,"context_line":"            ip_range \u003d netaddr.IPRange(subnet[\"allocation_pools\"][0][\"start\"],"},{"line_number":311,"context_line":"                                       subnet[\"allocation_pools\"][0][\"end\"])"},{"line_number":312,"context_line":"            ip \u003d netaddr.IPAddress(random.randrange(ip_range.first + 2,"},{"line_number":313,"context_line":"                                                    ip_range.last)).format()"},{"line_number":314,"context_line":"            port \u003d self.create_port(self.network,"},{"line_number":315,"context_line":"                                    fixed_ips\u003d[{\u0027subnet_id\u0027: subnet[\u0027id\u0027],"},{"line_number":316,"context_line":"                                                \u0027ip_address\u0027: ip}])"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_a42a552b","line":313,"range":{"start_line":312,"start_character":35,"end_line":313,"end_character":66},"in_reply_to":"3f79a3b5_25d663fa","updated":"2018-11-02 21:16:59.000000000","message":"Why do we need \"+2\"? What if that isn\u0027t compatible with other SDNs? What about checking if the IP address is already taken? Is there a way to do that? Then in a while loop (with some timeout or something) calculate a new ip until there is no conflict.\n\nBut at the very least there should be a comment here explaining why +2.","commit_id":"4a07c1ca0e53dbe3a72716a2f5dca44d0f29257e"},{"author":{"_account_id":16274,"name":"Mykola Yakovliev","email":"VegasQ@gmail.com","username":"vegasq"},"change_message_id":"f608b09ab45dd70e9abcef5c6f90c159787f6998","unresolved":false,"context_lines":[{"line_number":309,"context_line":"            self.subnets.append(subnet)"},{"line_number":310,"context_line":"            ip_range \u003d netaddr.IPRange(subnet[\"allocation_pools\"][0][\"start\"],"},{"line_number":311,"context_line":"                                       subnet[\"allocation_pools\"][0][\"end\"])"},{"line_number":312,"context_line":"            ip \u003d netaddr.IPAddress(random.randrange(ip_range.first + 2,"},{"line_number":313,"context_line":"                                                    ip_range.last)).format()"},{"line_number":314,"context_line":"            port \u003d self.create_port(self.network,"},{"line_number":315,"context_line":"                                    fixed_ips\u003d[{\u0027subnet_id\u0027: subnet[\u0027id\u0027],"},{"line_number":316,"context_line":"                                                \u0027ip_address\u0027: ip}])"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_3fcace18","line":313,"range":{"start_line":312,"start_character":35,"end_line":313,"end_character":66},"in_reply_to":"3f79a3b5_a42a552b","updated":"2018-11-02 22:34:13.000000000","message":"I have implemented as you asked. But it comes at a cost of time.sleep(3) * two tests.\n\nSince subnet is literally just created (line 308), SDN agents need some time to create service ports. In available to me the environment I see that only 3 second sleep allows list function to retrieve all ports in 100% of runs.\n\nAlso since tempest is unaware of SDN or amount of ports SDN desire to create we can\u0027t create some wait function.","commit_id":"4a07c1ca0e53dbe3a72716a2f5dca44d0f29257e"},{"author":{"_account_id":27078,"name":"Manik Bindlish","email":"manikbindlish19@gmail.com","username":"manik"},"change_message_id":"6881fc48f07fa37ab92c2b26b341a58dd6d87974","unresolved":false,"context_lines":[{"line_number":330,"context_line":""},{"line_number":331,"context_line":"            port \u003d self.create_port(self.network,"},{"line_number":332,"context_line":"                                    fixed_ips\u003d[{\u0027subnet_id\u0027: subnet[\u0027id\u0027],"},{"line_number":333,"context_line":"                                                \u0027ip_address\u0027: ip}])"},{"line_number":334,"context_line":"            self.ports.append(port)"},{"line_number":335,"context_line":"            port_ip \u003d next(iter(port[\u0027fixed_ips\u0027]), None)[\u0027ip_address\u0027]"},{"line_number":336,"context_line":"            self._clean_network()"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_8087f7b3","line":333,"range":{"start_line":333,"start_character":62,"end_line":333,"end_character":64},"updated":"2018-11-05 07:25:50.000000000","message":"What will be ip value if it doesn\u0027t satisfy in \"if\" condition in L[327], code will fail as no variable \"ip\" is defined. So else condition can be added to handle this situation","commit_id":"52ce6df350b9cfe22d7419a80b744da0bb5e2000"},{"author":{"_account_id":27078,"name":"Manik Bindlish","email":"manikbindlish19@gmail.com","username":"manik"},"change_message_id":"6881fc48f07fa37ab92c2b26b341a58dd6d87974","unresolved":false,"context_lines":[{"line_number":376,"context_line":"        port \u003d self.create_port(self.network,"},{"line_number":377,"context_line":"                                fixed_ips\u003d["},{"line_number":378,"context_line":"                                    {\u0027subnet_id\u0027: subnet[\u0027id\u0027],"},{"line_number":379,"context_line":"                                     \u0027ip_address\u0027: ip}])"},{"line_number":380,"context_line":"        self.ports.append(port)"},{"line_number":381,"context_line":"        self.assertRaisesRegex(lib_exc.Conflict,"},{"line_number":382,"context_line":"                               \"IpAddressAlreadyAllocated|IpAddressInUse\","}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_20b86376","line":379,"range":{"start_line":379,"start_character":51,"end_line":379,"end_character":53},"updated":"2018-11-05 07:25:50.000000000","message":"ditto","commit_id":"52ce6df350b9cfe22d7419a80b744da0bb5e2000"},{"author":{"_account_id":27078,"name":"Manik Bindlish","email":"manikbindlish19@gmail.com","username":"manik"},"change_message_id":"2b1364d5018cb5498a3b2e920a3389d6301d84e0","unresolved":false,"context_lines":[{"line_number":311,"context_line":"                                       subnet[\"allocation_pools\"][0][\"end\"])"},{"line_number":312,"context_line":"            # SDN behind just created subnet and need some time to allocate"},{"line_number":313,"context_line":"            # service ports. To prevent conflict skipping first few IPs."},{"line_number":314,"context_line":"            ip \u003d ip_range[2].format()"},{"line_number":315,"context_line":"            port \u003d self.create_port(self.network,"},{"line_number":316,"context_line":"                                    fixed_ips\u003d[{\u0027subnet_id\u0027: subnet[\u0027id\u0027],"},{"line_number":317,"context_line":"                                                \u0027ip_address\u0027: ip}])"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_cbcfd2af","line":314,"range":{"start_line":314,"start_character":12,"end_line":314,"end_character":37},"updated":"2018-11-28 07:31:28.000000000","message":"Is it ok to make selection rigid for the third field of list.\nNot sure, but what if there shouldn\u0027t have such no. IPs\nBut still feel it\u0027s not right way to use specific indexed no. IP","commit_id":"480ab375a1b553561707aa776eb1815bc00842f2"},{"author":{"_account_id":16274,"name":"Mykola Yakovliev","email":"VegasQ@gmail.com","username":"vegasq"},"change_message_id":"80d31d3e8bab6ab5805eb9392f0998114d0f1ff9","unresolved":false,"context_lines":[{"line_number":311,"context_line":"                                       subnet[\"allocation_pools\"][0][\"end\"])"},{"line_number":312,"context_line":"            # SDN behind just created subnet and need some time to allocate"},{"line_number":313,"context_line":"            # service ports. To prevent conflict skipping first few IPs."},{"line_number":314,"context_line":"            ip \u003d ip_range[2].format()"},{"line_number":315,"context_line":"            port \u003d self.create_port(self.network,"},{"line_number":316,"context_line":"                                    fixed_ips\u003d[{\u0027subnet_id\u0027: subnet[\u0027id\u0027],"},{"line_number":317,"context_line":"                                                \u0027ip_address\u0027: ip}])"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_69cd5c90","line":314,"range":{"start_line":314,"start_character":12,"end_line":314,"end_character":37},"in_reply_to":"3f79a3b5_cbcfd2af","updated":"2018-11-28 16:41:17.000000000","message":"Yeah, IP#2 is kinda strange, but randomly selected IP cause us some inconsistency. Tho I changed it back to random, but with few IPs skipped at the beginning.","commit_id":"480ab375a1b553561707aa776eb1815bc00842f2"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"dee486d97632c671fa70d2b4fd2c254d23c81768","unresolved":false,"context_lines":[{"line_number":310,"context_line":"            ip_range \u003d netaddr.IPRange(subnet[\"allocation_pools\"][0][\"start\"],"},{"line_number":311,"context_line":"                                       subnet[\"allocation_pools\"][0][\"end\"])"},{"line_number":312,"context_line":"            # SDN behind just created subnet and need some time to allocate"},{"line_number":313,"context_line":"            # service ports. To prevent conflict skipping first few IPs."},{"line_number":314,"context_line":"            ip \u003d netaddr.IPAddress(random.randrange(ip_range.first + 2,"},{"line_number":315,"context_line":"                                                    ip_range.last)).format()"},{"line_number":316,"context_line":"            port \u003d self.create_port(self.network,"}],"source_content_type":"text/x-python","patch_set":6,"id":"5fc1f717_57e99117","line":313,"range":{"start_line":313,"start_character":48,"end_line":313,"end_character":71},"updated":"2019-04-08 08:07:26.000000000","message":"Better to be more detailed? something like:\n\" skipping first 2 ips which may be already allocated as gateway and dns ip\"","commit_id":"ed04d96f272ee311d6bf2670960eb60a7f607186"},{"author":{"_account_id":16274,"name":"Mykola Yakovliev","email":"VegasQ@gmail.com","username":"vegasq"},"change_message_id":"8df5adaa953f9c2139a8172815d09c6937753985","unresolved":false,"context_lines":[{"line_number":310,"context_line":"            ip_range \u003d netaddr.IPRange(subnet[\"allocation_pools\"][0][\"start\"],"},{"line_number":311,"context_line":"                                       subnet[\"allocation_pools\"][0][\"end\"])"},{"line_number":312,"context_line":"            # SDN behind just created subnet and need some time to allocate"},{"line_number":313,"context_line":"            # service ports. To prevent conflict skipping first few IPs."},{"line_number":314,"context_line":"            ip \u003d netaddr.IPAddress(random.randrange(ip_range.first + 2,"},{"line_number":315,"context_line":"                                                    ip_range.last)).format()"},{"line_number":316,"context_line":"            port \u003d self.create_port(self.network,"}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_00af9ee0","line":313,"range":{"start_line":313,"start_character":48,"end_line":313,"end_character":71},"in_reply_to":"5fc1f717_57e99117","updated":"2019-12-19 16:38:53.000000000","message":"Done","commit_id":"ed04d96f272ee311d6bf2670960eb60a7f607186"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"b0cfb5a222c5db892a4312d3af08f59f86e5629d","unresolved":false,"context_lines":[{"line_number":311,"context_line":"                                       subnet[\"allocation_pools\"][0][\"end\"])"},{"line_number":312,"context_line":"            # SDN behind just created subnet and need some time to allocate"},{"line_number":313,"context_line":"            # service ports. To prevent conflict skipping first few IPs."},{"line_number":314,"context_line":"            ip \u003d netaddr.IPAddress(random.randrange(ip_range.first + 2,"},{"line_number":315,"context_line":"                                                    ip_range.last)).format()"},{"line_number":316,"context_line":"            port \u003d self.create_port(self.network,"},{"line_number":317,"context_line":"                                    fixed_ips\u003d[{\u0027subnet_id\u0027: subnet[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":6,"id":"5fc1f717_76caaf46","line":314,"updated":"2019-04-05 06:11:42.000000000","message":"I\u0027m still wondering why the magic number \u0027+2\u0027 neither +1 nor +3 here. Is \u0027+2\u0027 the best number in your environment?","commit_id":"ed04d96f272ee311d6bf2670960eb60a7f607186"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"7fe76062324faab1c347fd7d379273af12c65093","unresolved":false,"context_lines":[{"line_number":311,"context_line":"                                       subnet[\"allocation_pools\"][0][\"end\"])"},{"line_number":312,"context_line":"            # SDN behind just created subnet and need some time to allocate"},{"line_number":313,"context_line":"            # service ports. To prevent conflict skipping first few IPs."},{"line_number":314,"context_line":"            ip \u003d netaddr.IPAddress(random.randrange(ip_range.first + 2,"},{"line_number":315,"context_line":"                                                    ip_range.last)).format()"},{"line_number":316,"context_line":"            port \u003d self.create_port(self.network,"},{"line_number":317,"context_line":"                                    fixed_ips\u003d[{\u0027subnet_id\u0027: subnet[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fb8cfa7_2625af5c","line":314,"in_reply_to":"5fc1f717_76caaf46","updated":"2019-06-11 18:53:52.000000000","message":"According to the bug report(https://bugs.launchpad.net/tempest/+bug/1801159) Contrail SDN allocates 1 for a gateway and 2 for DNS as zhufl commented at the above.\n\nTBH I am not sure this is a common behavior of whole SDN controllers, and this test is not only for Contrail SDN.\nSo at least, the above comment should be updated as zhufl said.\nIn addition, it is good to verify this behavior for other SDN controllers also.","commit_id":"ed04d96f272ee311d6bf2670960eb60a7f607186"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"b0cfb5a222c5db892a4312d3af08f59f86e5629d","unresolved":false,"context_lines":[{"line_number":354,"context_line":"                                   subnet[\"allocation_pools\"][0][\"end\"])"},{"line_number":355,"context_line":"        # SDN behind just created subnet and need some time to allocate"},{"line_number":356,"context_line":"        # service ports. To prevent conflict skipping first few IPs."},{"line_number":357,"context_line":"        ip \u003d netaddr.IPAddress(random.randrange(ip_range.first + 2,"},{"line_number":358,"context_line":"                                                ip_range.last)).format()"},{"line_number":359,"context_line":""},{"line_number":360,"context_line":"        port \u003d self.create_port(self.network,"}],"source_content_type":"text/x-python","patch_set":6,"id":"5fc1f717_16d9eb20","line":357,"updated":"2019-04-05 06:11:42.000000000","message":"ditto","commit_id":"ed04d96f272ee311d6bf2670960eb60a7f607186"},{"author":{"_account_id":16274,"name":"Mykola Yakovliev","email":"VegasQ@gmail.com","username":"vegasq"},"change_message_id":"8df5adaa953f9c2139a8172815d09c6937753985","unresolved":false,"context_lines":[{"line_number":354,"context_line":"                                   subnet[\"allocation_pools\"][0][\"end\"])"},{"line_number":355,"context_line":"        # SDN behind just created subnet and need some time to allocate"},{"line_number":356,"context_line":"        # service ports. To prevent conflict skipping first few IPs."},{"line_number":357,"context_line":"        ip \u003d netaddr.IPAddress(random.randrange(ip_range.first + 2,"},{"line_number":358,"context_line":"                                                ip_range.last)).format()"},{"line_number":359,"context_line":""},{"line_number":360,"context_line":"        port \u003d self.create_port(self.network,"}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_e0b3624d","line":357,"in_reply_to":"5fc1f717_16d9eb20","updated":"2019-12-19 16:38:53.000000000","message":"Done","commit_id":"ed04d96f272ee311d6bf2670960eb60a7f607186"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"e2e7c8940bfcb53493a54c4e8b13051da3f0d065","unresolved":false,"context_lines":[{"line_number":313,"context_line":"            # internal usage. Skipping first 2 ips which may be already"},{"line_number":314,"context_line":"            # allocated as gateway and dns ip."},{"line_number":315,"context_line":"            ip \u003d netaddr.IPAddress(random.randrange(ip_range.first + 2,"},{"line_number":316,"context_line":"                                                    ip_range.last)).format()"},{"line_number":317,"context_line":"            port \u003d self.create_port(self.network,"},{"line_number":318,"context_line":"                                    fixed_ips\u003d[{\u0027subnet_id\u0027: subnet[\u0027id\u0027],"},{"line_number":319,"context_line":"                                                \u0027ip_address\u0027: ip}])"}],"source_content_type":"text/x-python","patch_set":8,"id":"1f621f24_dc29cf9b","line":316,"updated":"2020-11-03 16:19:37.000000000","message":"I don\u0027t really understand this change and commit message title. Commit message says about removing random selection of IP and here You are still using random but with a bit smaller range of the IPs.\n\nAlso I\u0027m not sure about how Contrail plugin works but in case of \"regular\" Neutron with ML2 plugin, gateway IP address will  be allocated from outside of the allocation pool.","commit_id":"74ac2f21c983e9a0362bbf07fd8022e307f63e98"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"e2e7c8940bfcb53493a54c4e8b13051da3f0d065","unresolved":false,"context_lines":[{"line_number":357,"context_line":"        # internal usage. Skipping first 2 ips which may be already"},{"line_number":358,"context_line":"        # allocated as gateway and dns ip."},{"line_number":359,"context_line":"        ip \u003d netaddr.IPAddress(random.randrange(ip_range.first + 2,"},{"line_number":360,"context_line":"                                                ip_range.last)).format()"},{"line_number":361,"context_line":""},{"line_number":362,"context_line":"        port \u003d self.create_port(self.network,"},{"line_number":363,"context_line":"                                fixed_ips\u003d["}],"source_content_type":"text/x-python","patch_set":8,"id":"1f621f24_7c14fb4e","line":360,"updated":"2020-11-03 16:19:37.000000000","message":"same here","commit_id":"74ac2f21c983e9a0362bbf07fd8022e307f63e98"}]}
