)]}'
{"tempest/api/network/test_dhcp_ipv6.py":[{"author":{"_account_id":12632,"name":"Kirill Shileev","email":"kshileev@cisco.com","username":"kshileev"},"change_message_id":"d53bfcd4d7065685bde87c8b9b44546d5edca24e","unresolved":false,"context_lines":[{"line_number":366,"context_line":"        body \u003d self.client.show_port(port[\u0027port_id\u0027])"},{"line_number":367,"context_line":"        return subnet, body[\u0027port\u0027]"},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"    def _create_custom_subnet(self, kwargs):"},{"line_number":370,"context_line":"        net_cidr \u003d netaddr.IPNetwork(CONF.network.tenant_network_v6_cidr)"},{"line_number":371,"context_line":"        mask_bits \u003d CONF.network.tenant_network_v6_mask_bits"},{"line_number":372,"context_line":"        cidr \u003d str(next(iter(net_cidr.subnet(mask_bits))))"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_a7cb4351","line":369,"updated":"2014-12-24 13:56:12.000000000","message":"plz describe why it\u0027s not possible just to call _create_subnet()","commit_id":"54eec6244ce5f4bff2d7ef2f623641b3e4dfd692"},{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"b6f95cdacd2b11db5a2dd0ea0f724468a08d3c37","unresolved":false,"context_lines":[{"line_number":366,"context_line":"        body \u003d self.client.show_port(port[\u0027port_id\u0027])"},{"line_number":367,"context_line":"        return subnet, body[\u0027port\u0027]"},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"    def _create_custom_subnet(self, kwargs):"},{"line_number":370,"context_line":"        net_cidr \u003d netaddr.IPNetwork(CONF.network.tenant_network_v6_cidr)"},{"line_number":371,"context_line":"        mask_bits \u003d CONF.network.tenant_network_v6_mask_bits"},{"line_number":372,"context_line":"        cidr \u003d str(next(iter(net_cidr.subnet(mask_bits))))"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_a7d263fd","line":369,"in_reply_to":"3a961159_a7cb4351","updated":"2014-12-24 14:03:08.000000000","message":"Done","commit_id":"54eec6244ce5f4bff2d7ef2f623641b3e4dfd692"},{"author":{"_account_id":12632,"name":"Kirill Shileev","email":"kshileev@cisco.com","username":"kshileev"},"change_message_id":"d53bfcd4d7065685bde87c8b9b44546d5edca24e","unresolved":false,"context_lines":[{"line_number":400,"context_line":"        \"\"\"With all options below the router interface shall"},{"line_number":401,"context_line":"        receive first allocated address from created subnet,"},{"line_number":402,"context_line":"        because gateway is set explicitly to first IP in"},{"line_number":403,"context_line":"        \u0027create_subnet\u0027 function. All VMs however receive"},{"line_number":404,"context_line":"        SLAAC addresses."},{"line_number":405,"context_line":"        \"\"\""},{"line_number":406,"context_line":"        for ra_mode, add_mode in ("}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_a77d031e","line":403,"updated":"2014-12-24 13:56:12.000000000","message":"VM is not created in the test","commit_id":"54eec6244ce5f4bff2d7ef2f623641b3e4dfd692"},{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"b6f95cdacd2b11db5a2dd0ea0f724468a08d3c37","unresolved":false,"context_lines":[{"line_number":400,"context_line":"        \"\"\"With all options below the router interface shall"},{"line_number":401,"context_line":"        receive first allocated address from created subnet,"},{"line_number":402,"context_line":"        because gateway is set explicitly to first IP in"},{"line_number":403,"context_line":"        \u0027create_subnet\u0027 function. All VMs however receive"},{"line_number":404,"context_line":"        SLAAC addresses."},{"line_number":405,"context_line":"        \"\"\""},{"line_number":406,"context_line":"        for ra_mode, add_mode in ("}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_c7cdaf5e","line":403,"in_reply_to":"3a961159_a77d031e","updated":"2014-12-24 14:03:08.000000000","message":"Done","commit_id":"54eec6244ce5f4bff2d7ef2f623641b3e4dfd692"},{"author":{"_account_id":12632,"name":"Kirill Shileev","email":"kshileev@cisco.com","username":"kshileev"},"change_message_id":"d53bfcd4d7065685bde87c8b9b44546d5edca24e","unresolved":false,"context_lines":[{"line_number":409,"context_line":"        ):"},{"line_number":410,"context_line":"            kwargs \u003d {\u0027ipv6_ra_mode\u0027: ra_mode,"},{"line_number":411,"context_line":"                      \u0027ipv6_address_mode\u0027: add_mode}"},{"line_number":412,"context_line":"            kwargs \u003d {k: v for k, v in kwargs.iteritems() if v}"},{"line_number":413,"context_line":"            subnet, router_port \u003d self._create_subnet_router(kwargs)"},{"line_number":414,"context_line":"            router_port_ip \u003d next(iter("},{"line_number":415,"context_line":"                router_port[\u0027fixed_ips\u0027]), None)[\u0027ip_address\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_e7e46b3d","line":412,"updated":"2014-12-24 13:56:12.000000000","message":"not needed","commit_id":"54eec6244ce5f4bff2d7ef2f623641b3e4dfd692"},{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"b6f95cdacd2b11db5a2dd0ea0f724468a08d3c37","unresolved":false,"context_lines":[{"line_number":409,"context_line":"        ):"},{"line_number":410,"context_line":"            kwargs \u003d {\u0027ipv6_ra_mode\u0027: ra_mode,"},{"line_number":411,"context_line":"                      \u0027ipv6_address_mode\u0027: add_mode}"},{"line_number":412,"context_line":"            kwargs \u003d {k: v for k, v in kwargs.iteritems() if v}"},{"line_number":413,"context_line":"            subnet, router_port \u003d self._create_subnet_router(kwargs)"},{"line_number":414,"context_line":"            router_port_ip \u003d next(iter("},{"line_number":415,"context_line":"                router_port[\u0027fixed_ips\u0027]), None)[\u0027ip_address\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_e7ef0baf","line":412,"in_reply_to":"3a961159_e7e46b3d","updated":"2014-12-24 14:03:08.000000000","message":"Done","commit_id":"54eec6244ce5f4bff2d7ef2f623641b3e4dfd692"},{"author":{"_account_id":12632,"name":"Kirill Shileev","email":"kshileev@cisco.com","username":"kshileev"},"change_message_id":"d53bfcd4d7065685bde87c8b9b44546d5edca24e","unresolved":false,"context_lines":[{"line_number":412,"context_line":"            kwargs \u003d {k: v for k, v in kwargs.iteritems() if v}"},{"line_number":413,"context_line":"            subnet, router_port \u003d self._create_subnet_router(kwargs)"},{"line_number":414,"context_line":"            router_port_ip \u003d next(iter("},{"line_number":415,"context_line":"                router_port[\u0027fixed_ips\u0027]), None)[\u0027ip_address\u0027]"},{"line_number":416,"context_line":"            port \u003d self.create_port(self.network)"},{"line_number":417,"context_line":"            port_ip \u003d next(iter(port[\u0027fixed_ips\u0027]), None)[\u0027ip_address\u0027]"},{"line_number":418,"context_line":"            self._clean_network()"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_27bcb3db","line":415,"updated":"2014-12-24 13:56:12.000000000","message":"if router_port[\u0027fixed_ips\u0027] is a 0 len list, you\u0027ll get TypeError exception","commit_id":"54eec6244ce5f4bff2d7ef2f623641b3e4dfd692"},{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"b6f95cdacd2b11db5a2dd0ea0f724468a08d3c37","unresolved":false,"context_lines":[{"line_number":412,"context_line":"            kwargs \u003d {k: v for k, v in kwargs.iteritems() if v}"},{"line_number":413,"context_line":"            subnet, router_port \u003d self._create_subnet_router(kwargs)"},{"line_number":414,"context_line":"            router_port_ip \u003d next(iter("},{"line_number":415,"context_line":"                router_port[\u0027fixed_ips\u0027]), None)[\u0027ip_address\u0027]"},{"line_number":416,"context_line":"            port \u003d self.create_port(self.network)"},{"line_number":417,"context_line":"            port_ip \u003d next(iter(port[\u0027fixed_ips\u0027]), None)[\u0027ip_address\u0027]"},{"line_number":418,"context_line":"            self._clean_network()"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_4717ffa2","line":415,"in_reply_to":"3a961159_27bcb3db","updated":"2014-12-24 14:03:08.000000000","message":"Done","commit_id":"54eec6244ce5f4bff2d7ef2f623641b3e4dfd692"},{"author":{"_account_id":12632,"name":"Kirill Shileev","email":"kshileev@cisco.com","username":"kshileev"},"change_message_id":"d53bfcd4d7065685bde87c8b9b44546d5edca24e","unresolved":false,"context_lines":[{"line_number":414,"context_line":"            router_port_ip \u003d next(iter("},{"line_number":415,"context_line":"                router_port[\u0027fixed_ips\u0027]), None)[\u0027ip_address\u0027]"},{"line_number":416,"context_line":"            port \u003d self.create_port(self.network)"},{"line_number":417,"context_line":"            port_ip \u003d next(iter(port[\u0027fixed_ips\u0027]), None)[\u0027ip_address\u0027]"},{"line_number":418,"context_line":"            self._clean_network()"},{"line_number":419,"context_line":"            eui64_ip \u003d data_utils.get_ipv6_addr_by_EUI64("},{"line_number":420,"context_line":"                subnet[\u0027cidr\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_07c1774d","line":417,"updated":"2014-12-24 13:56:12.000000000","message":"the same here","commit_id":"54eec6244ce5f4bff2d7ef2f623641b3e4dfd692"},{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"b6f95cdacd2b11db5a2dd0ea0f724468a08d3c37","unresolved":false,"context_lines":[{"line_number":414,"context_line":"            router_port_ip \u003d next(iter("},{"line_number":415,"context_line":"                router_port[\u0027fixed_ips\u0027]), None)[\u0027ip_address\u0027]"},{"line_number":416,"context_line":"            port \u003d self.create_port(self.network)"},{"line_number":417,"context_line":"            port_ip \u003d next(iter(port[\u0027fixed_ips\u0027]), None)[\u0027ip_address\u0027]"},{"line_number":418,"context_line":"            self._clean_network()"},{"line_number":419,"context_line":"            eui64_ip \u003d data_utils.get_ipv6_addr_by_EUI64("},{"line_number":420,"context_line":"                subnet[\u0027cidr\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_670a3b7a","line":417,"in_reply_to":"3a961159_07c1774d","updated":"2014-12-24 14:03:08.000000000","message":"Done","commit_id":"54eec6244ce5f4bff2d7ef2f623641b3e4dfd692"},{"author":{"_account_id":12632,"name":"Kirill Shileev","email":"kshileev@cisco.com","username":"kshileev"},"change_message_id":"d53bfcd4d7065685bde87c8b9b44546d5edca24e","unresolved":false,"context_lines":[{"line_number":440,"context_line":"            kwargs \u003d {\u0027ipv6_ra_mode\u0027: ra_mode,"},{"line_number":441,"context_line":"                      \u0027ipv6_address_mode\u0027: add_mode,"},{"line_number":442,"context_line":"                      \u0027ip_version\u0027: 6}"},{"line_number":443,"context_line":"            kwargs \u003d {k: v for k, v in kwargs.iteritems() if v}"},{"line_number":444,"context_line":"            subnet \u003d self._create_custom_subnet(kwargs)"},{"line_number":445,"context_line":"            router \u003d self.create_router("},{"line_number":446,"context_line":"                router_name\u003ddata_utils.rand_name(\"routerv6-\"),"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_c7784f2d","line":443,"updated":"2014-12-24 13:56:12.000000000","message":"not needed","commit_id":"54eec6244ce5f4bff2d7ef2f623641b3e4dfd692"},{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"b6f95cdacd2b11db5a2dd0ea0f724468a08d3c37","unresolved":false,"context_lines":[{"line_number":440,"context_line":"            kwargs \u003d {\u0027ipv6_ra_mode\u0027: ra_mode,"},{"line_number":441,"context_line":"                      \u0027ipv6_address_mode\u0027: add_mode,"},{"line_number":442,"context_line":"                      \u0027ip_version\u0027: 6}"},{"line_number":443,"context_line":"            kwargs \u003d {k: v for k, v in kwargs.iteritems() if v}"},{"line_number":444,"context_line":"            subnet \u003d self._create_custom_subnet(kwargs)"},{"line_number":445,"context_line":"            router \u003d self.create_router("},{"line_number":446,"context_line":"                router_name\u003ddata_utils.rand_name(\"routerv6-\"),"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_a727c310","line":443,"in_reply_to":"3a961159_c7784f2d","updated":"2014-12-24 14:03:08.000000000","message":"Done","commit_id":"54eec6244ce5f4bff2d7ef2f623641b3e4dfd692"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"ccbe88cb6be89c3f8fb7899e038fa360dc3871a0","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    @classmethod"},{"line_number":41,"context_line":"    def skip_checks(cls):"},{"line_number":42,"context_line":"        msg \u003d None"},{"line_number":43,"context_line":"        if not CONF.network_feature_enabled.ipv6:"},{"line_number":44,"context_line":"            msg \u003d \"IPv6 is not enabled\""},{"line_number":45,"context_line":"        elif not CONF.network_feature_enabled.ipv6_subnet_attributes:"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_dc87fa10","line":42,"updated":"2015-02-09 15:04:20.000000000","message":"Should call super first.","commit_id":"c1124188577d3975f66ccf8cf0c88d5860e7e5e3"},{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"eafa13ef82da1107ddc282a5eec4bb00e0c59678","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    @classmethod"},{"line_number":41,"context_line":"    def skip_checks(cls):"},{"line_number":42,"context_line":"        msg \u003d None"},{"line_number":43,"context_line":"        if not CONF.network_feature_enabled.ipv6:"},{"line_number":44,"context_line":"            msg \u003d \"IPv6 is not enabled\""},{"line_number":45,"context_line":"        elif not CONF.network_feature_enabled.ipv6_subnet_attributes:"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_c611e1b0","line":42,"in_reply_to":"da86d52c_dc87fa10","updated":"2015-02-09 16:45:22.000000000","message":"Done","commit_id":"c1124188577d3975f66ccf8cf0c88d5860e7e5e3"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"c572b34fa7e20c3dcaedee39c0b68be43caa3592","unresolved":false,"context_lines":[{"line_number":356,"context_line":"                                fixed_ips\u003d[{\u0027subnet_id\u0027: subnet[\u0027id\u0027],"},{"line_number":357,"context_line":"                                            \u0027ip_address\u0027: ip}])"},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"    def _create_subnet_router(self, kwargs):"},{"line_number":360,"context_line":"        subnet \u003d self.create_subnet(self.network, **kwargs)"},{"line_number":361,"context_line":"        router \u003d self.create_router("},{"line_number":362,"context_line":"            router_name\u003ddata_utils.rand_name(\"routerv6-\"),"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a961159_ada0c4f3","line":359,"updated":"2015-01-15 19:19:35.000000000","message":"not important, but if you take subnet create out of this method but use subnet as an input argument, you can save a few lines in test_dhcp_stateless_router_default_gw. And would look better overall","commit_id":"c1124188577d3975f66ccf8cf0c88d5860e7e5e3"},{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"eafa13ef82da1107ddc282a5eec4bb00e0c59678","unresolved":false,"context_lines":[{"line_number":356,"context_line":"                                fixed_ips\u003d[{\u0027subnet_id\u0027: subnet[\u0027id\u0027],"},{"line_number":357,"context_line":"                                            \u0027ip_address\u0027: ip}])"},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"    def _create_subnet_router(self, kwargs):"},{"line_number":360,"context_line":"        subnet \u003d self.create_subnet(self.network, **kwargs)"},{"line_number":361,"context_line":"        router \u003d self.create_router("},{"line_number":362,"context_line":"            router_name\u003ddata_utils.rand_name(\"routerv6-\"),"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_8648c9cd","line":359,"in_reply_to":"3a961159_ada0c4f3","updated":"2015-02-09 16:45:22.000000000","message":"I\u0027d like to leave it as is because of time limits. Maybe in next patches.\nThanks","commit_id":"c1124188577d3975f66ccf8cf0c88d5860e7e5e3"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"ccbe88cb6be89c3f8fb7899e038fa360dc3871a0","unresolved":false,"context_lines":[{"line_number":380,"context_line":""},{"line_number":381,"context_line":"    def test_dhcp_stateful_router(self):"},{"line_number":382,"context_line":"        \"\"\"With all options below the router interface shall"},{"line_number":383,"context_line":"        receive DHCPv6 IP address from allocation pool"},{"line_number":384,"context_line":"        \"\"\""},{"line_number":385,"context_line":"        for ra_mode, add_mode in ("},{"line_number":386,"context_line":"                (\u0027dhcpv6-stateful\u0027, \u0027dhcpv6-stateful\u0027),"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_7c78ce2b","line":383,"updated":"2015-02-09 15:04:20.000000000","message":"Was removing the period here intentional?","commit_id":"c1124188577d3975f66ccf8cf0c88d5860e7e5e3"},{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"eafa13ef82da1107ddc282a5eec4bb00e0c59678","unresolved":false,"context_lines":[{"line_number":380,"context_line":""},{"line_number":381,"context_line":"    def test_dhcp_stateful_router(self):"},{"line_number":382,"context_line":"        \"\"\"With all options below the router interface shall"},{"line_number":383,"context_line":"        receive DHCPv6 IP address from allocation pool"},{"line_number":384,"context_line":"        \"\"\""},{"line_number":385,"context_line":"        for ra_mode, add_mode in ("},{"line_number":386,"context_line":"                (\u0027dhcpv6-stateful\u0027, \u0027dhcpv6-stateful\u0027),"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_66f4b587","line":383,"in_reply_to":"da86d52c_7c78ce2b","updated":"2015-02-09 16:45:22.000000000","message":"returned it","commit_id":"c1124188577d3975f66ccf8cf0c88d5860e7e5e3"},{"author":{"_account_id":10257,"name":"Sridhar Gaddam","email":"sgaddam@redhat.com","username":"sridhargaddam"},"change_message_id":"2d9f3ea3572d46e92be84c08fae8789d7c877c82","unresolved":false,"context_lines":[{"line_number":404,"context_line":"        \u0027create_subnet\u0027 function. All ports however receive"},{"line_number":405,"context_line":"        SLAAC addresses."},{"line_number":406,"context_line":"        \"\"\""},{"line_number":407,"context_line":"        for ra_mode, add_mode in ("},{"line_number":408,"context_line":"                (\u0027dhcpv6-stateless\u0027, \u0027dhcpv6-stateless\u0027),"},{"line_number":409,"context_line":"                (\u0027slaac\u0027, \u0027slaac\u0027)"},{"line_number":410,"context_line":"        ):"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a930d6b_f4e213d4","line":407,"updated":"2015-01-22 10:40:23.000000000","message":"nit: If you happen to spin another patch, please consider changing add_mode to addr_mode or address_mode for readability.","commit_id":"c1124188577d3975f66ccf8cf0c88d5860e7e5e3"},{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"eafa13ef82da1107ddc282a5eec4bb00e0c59678","unresolved":false,"context_lines":[{"line_number":404,"context_line":"        \u0027create_subnet\u0027 function. All ports however receive"},{"line_number":405,"context_line":"        SLAAC addresses."},{"line_number":406,"context_line":"        \"\"\""},{"line_number":407,"context_line":"        for ra_mode, add_mode in ("},{"line_number":408,"context_line":"                (\u0027dhcpv6-stateless\u0027, \u0027dhcpv6-stateless\u0027),"},{"line_number":409,"context_line":"                (\u0027slaac\u0027, \u0027slaac\u0027)"},{"line_number":410,"context_line":"        ):"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_2688fde6","line":407,"in_reply_to":"1a930d6b_f4e213d4","updated":"2015-02-09 16:45:22.000000000","message":"Thanks, Sridhar. I\u0027d like to change all of them in whole file, but in another patchset, because it will be blocked because of \"too much changes in commit\".","commit_id":"c1124188577d3975f66ccf8cf0c88d5860e7e5e3"},{"author":{"_account_id":10257,"name":"Sridhar Gaddam","email":"sgaddam@redhat.com","username":"sridhargaddam"},"change_message_id":"2d9f3ea3572d46e92be84c08fae8789d7c877c82","unresolved":false,"context_lines":[{"line_number":432,"context_line":"        is not set explicitly in local function \u0027_create_custom_subnet\u0027."},{"line_number":433,"context_line":"        All ports however receive SLAAC addresses."},{"line_number":434,"context_line":"        \"\"\""},{"line_number":435,"context_line":"        for ra_mode, add_mode in ("},{"line_number":436,"context_line":"                (\u0027dhcpv6-stateless\u0027, \u0027dhcpv6-stateless\u0027),"},{"line_number":437,"context_line":"                (\u0027slaac\u0027, \u0027slaac\u0027)"},{"line_number":438,"context_line":"        ):"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a930d6b_34ed7bc4","line":435,"updated":"2015-01-22 10:40:23.000000000","message":"Ditto","commit_id":"c1124188577d3975f66ccf8cf0c88d5860e7e5e3"},{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"eafa13ef82da1107ddc282a5eec4bb00e0c59678","unresolved":false,"context_lines":[{"line_number":432,"context_line":"        is not set explicitly in local function \u0027_create_custom_subnet\u0027."},{"line_number":433,"context_line":"        All ports however receive SLAAC addresses."},{"line_number":434,"context_line":"        \"\"\""},{"line_number":435,"context_line":"        for ra_mode, add_mode in ("},{"line_number":436,"context_line":"                (\u0027dhcpv6-stateless\u0027, \u0027dhcpv6-stateless\u0027),"},{"line_number":437,"context_line":"                (\u0027slaac\u0027, \u0027slaac\u0027)"},{"line_number":438,"context_line":"        ):"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_66691525","line":435,"in_reply_to":"1a930d6b_34ed7bc4","updated":"2015-02-09 16:45:22.000000000","message":"the same as above","commit_id":"c1124188577d3975f66ccf8cf0c88d5860e7e5e3"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"1a9a20dc84d9267e35f736b0018842a62b02436f","unresolved":false,"context_lines":[{"line_number":330,"context_line":"        ip \u003d netaddr.IPAddress(random.randrange("},{"line_number":331,"context_line":"            ip_range.last + 1, ip_range.last + 10)).format()"},{"line_number":332,"context_line":"        self.assertRaisesRegexp(lib_exc.BadRequest,"},{"line_number":333,"context_line":"                                \"not a valid IP for the defined subnet\","},{"line_number":334,"context_line":"                                self.create_port,"},{"line_number":335,"context_line":"                                self.network,"},{"line_number":336,"context_line":"                                fixed_ips\u003d[{\u0027subnet_id\u0027: subnet[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba7be1f8_73ac55a1","line":333,"updated":"2015-02-23 17:52:18.000000000","message":"The text can be translated, or changed on the neutron side. Do we really need to check it ?","commit_id":"b159ff2e09ad68ad46fe700477e8fa87c52f25b4"},{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"b464f90863b4cea69d61387ccdaf04130590300c","unresolved":false,"context_lines":[{"line_number":330,"context_line":"        ip \u003d netaddr.IPAddress(random.randrange("},{"line_number":331,"context_line":"            ip_range.last + 1, ip_range.last + 10)).format()"},{"line_number":332,"context_line":"        self.assertRaisesRegexp(lib_exc.BadRequest,"},{"line_number":333,"context_line":"                                \"not a valid IP for the defined subnet\","},{"line_number":334,"context_line":"                                self.create_port,"},{"line_number":335,"context_line":"                                self.network,"},{"line_number":336,"context_line":"                                fixed_ips\u003d[{\u0027subnet_id\u0027: subnet[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba7be1f8_f35bcc84","line":333,"in_reply_to":"ba7be1f8_73ac55a1","updated":"2015-02-24 08:16:02.000000000","message":"This is text that appears in a few neutron errors, so I\u0027d check it for more close catch of errors, because BadRequest can have a lot of reasons, not only this one. Although if they change this, we can change it here also, the fail reason will be pretty clear.","commit_id":"b159ff2e09ad68ad46fe700477e8fa87c52f25b4"},{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"4a0a2ce062fc1f1aeadad2d81eebd4f80248ab66","unresolved":false,"context_lines":[{"line_number":330,"context_line":"        ip \u003d netaddr.IPAddress(random.randrange("},{"line_number":331,"context_line":"            ip_range.last + 1, ip_range.last + 10)).format()"},{"line_number":332,"context_line":"        self.assertRaisesRegexp(lib_exc.BadRequest,"},{"line_number":333,"context_line":"                                \"not a valid IP for the defined subnet\","},{"line_number":334,"context_line":"                                self.create_port,"},{"line_number":335,"context_line":"                                self.network,"},{"line_number":336,"context_line":"                                fixed_ips\u003d[{\u0027subnet_id\u0027: subnet[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba7be1f8_e7a93c91","line":333,"in_reply_to":"ba7be1f8_ecf12302","updated":"2015-02-24 14:16:21.000000000","message":"Actually I\u0027m very pessimistic about consequence, stability and trackability of neutron log messages, I haven\u0027t seen any spec that regulates this (correct me if I\u0027m wrong).\n\nSo you\u0027re right, I\u0027d better will remove this check, let\u0027s leave only BadRequest check.","commit_id":"b159ff2e09ad68ad46fe700477e8fa87c52f25b4"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"5a8fbac37cbaf66ed6739023bd2a2f26b14d7b03","unresolved":false,"context_lines":[{"line_number":330,"context_line":"        ip \u003d netaddr.IPAddress(random.randrange("},{"line_number":331,"context_line":"            ip_range.last + 1, ip_range.last + 10)).format()"},{"line_number":332,"context_line":"        self.assertRaisesRegexp(lib_exc.BadRequest,"},{"line_number":333,"context_line":"                                \"not a valid IP for the defined subnet\","},{"line_number":334,"context_line":"                                self.create_port,"},{"line_number":335,"context_line":"                                self.network,"},{"line_number":336,"context_line":"                                fixed_ips\u003d[{\u0027subnet_id\u0027: subnet[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba7be1f8_ecf12302","line":333,"in_reply_to":"ba7be1f8_f35bcc84","updated":"2015-02-24 13:48:27.000000000","message":"Very good points, but it is an api test.\nIs the exact error message part of the neutron api documentation ?\nIf anyone implements an another `compatible` neutron, does he needs to use the exact same `human text` in this condition ?\n\nUnfortunately we also does not have any sub error code in the response and the OS error responses usually not structured.\n\nAFAIK tempest only did exact message check when we needed to distinguish the request rate limit issue from other 413 response and resend the request after a wait time.\n\nWe wasn\u0027t happy, but we did not have any other choice. After that I washed my hand twice :)\n\nIf the above massage needs to change for whatever reason, will it change at all branch at the same time ?\n 1. For supporting such change, we had to disable the test first or remove the message test part\n 2. All supported neutron variant has to get the new message\n 3. We can enable the test with the new massage\nDoes it sounds like fun ?","commit_id":"b159ff2e09ad68ad46fe700477e8fa87c52f25b4"}]}
