)]}'
{"shade/openstackcloud.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"1a8ff3f94543606dca8d16fcf5fca16dcd78bbda","unresolved":false,"context_lines":[{"line_number":3415,"context_line":"        if availability_zone_hints is not None:"},{"line_number":3416,"context_line":"            if not isinstance(availability_zone_hints, list):"},{"line_number":3417,"context_line":"                raise OpenStackCloudException("},{"line_number":3418,"context_line":"                    \"Parameter \u0027availability_zone_hints\u0027 must be a list\")"},{"line_number":3419,"context_line":"            network[\u0027availability_zone_hints\u0027] \u003d availability_zone_hints"},{"line_number":3420,"context_line":""},{"line_number":3421,"context_line":"        if provider:"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff82abbf_6413c95d","line":3418,"range":{"start_line":3418,"start_character":57,"end_line":3418,"end_character":61},"updated":"2017-11-23 22:00:46.000000000","message":"I\u0027m not native speaker but IMHO better would be something like \"should be a list\"","commit_id":"1994c8c9b71fb611244811ca63cca3d3195cece4"},{"author":{"_account_id":23866,"name":"Trygve Vea","email":"trygve.vea@gmail.com","username":"trygve.vea"},"change_message_id":"3e524e512d5e858ad5b058a956e88aa672e7f08c","unresolved":false,"context_lines":[{"line_number":3415,"context_line":"        if availability_zone_hints is not None:"},{"line_number":3416,"context_line":"            if not isinstance(availability_zone_hints, list):"},{"line_number":3417,"context_line":"                raise OpenStackCloudException("},{"line_number":3418,"context_line":"                    \"Parameter \u0027availability_zone_hints\u0027 must be a list\")"},{"line_number":3419,"context_line":"            network[\u0027availability_zone_hints\u0027] \u003d availability_zone_hints"},{"line_number":3420,"context_line":""},{"line_number":3421,"context_line":"        if provider:"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff82abbf_e3a25afc","line":3418,"range":{"start_line":3418,"start_character":57,"end_line":3418,"end_character":61},"in_reply_to":"ff82abbf_6413c95d","updated":"2017-11-24 21:43:41.000000000","message":"Should implies that there are valid reasons for it to not be a list.  That is not the case; The parameter actually has to be a list.\nhttps://www.ietf.org/rfc/rfc2119.txt","commit_id":"1994c8c9b71fb611244811ca63cca3d3195cece4"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"1a8ff3f94543606dca8d16fcf5fca16dcd78bbda","unresolved":false,"context_lines":[{"line_number":4292,"context_line":"        if availability_zone_hints is not None:"},{"line_number":4293,"context_line":"            if not isinstance(availability_zone_hints, list):"},{"line_number":4294,"context_line":"                raise OpenStackCloudException("},{"line_number":4295,"context_line":"                    \"Parameter \u0027availability_zone_hints\u0027 must be a list\")"},{"line_number":4296,"context_line":"            router[\u0027availability_zone_hints\u0027] \u003d availability_zone_hints"},{"line_number":4297,"context_line":""},{"line_number":4298,"context_line":"        data \u003d self._network_client.post("}],"source_content_type":"text/x-python","patch_set":2,"id":"ff82abbf_840e0d30","line":4295,"range":{"start_line":4295,"start_character":57,"end_line":4295,"end_character":61},"updated":"2017-11-23 22:00:46.000000000","message":"same here","commit_id":"1994c8c9b71fb611244811ca63cca3d3195cece4"},{"author":{"_account_id":23866,"name":"Trygve Vea","email":"trygve.vea@gmail.com","username":"trygve.vea"},"change_message_id":"3e524e512d5e858ad5b058a956e88aa672e7f08c","unresolved":false,"context_lines":[{"line_number":4292,"context_line":"        if availability_zone_hints is not None:"},{"line_number":4293,"context_line":"            if not isinstance(availability_zone_hints, list):"},{"line_number":4294,"context_line":"                raise OpenStackCloudException("},{"line_number":4295,"context_line":"                    \"Parameter \u0027availability_zone_hints\u0027 must be a list\")"},{"line_number":4296,"context_line":"            router[\u0027availability_zone_hints\u0027] \u003d availability_zone_hints"},{"line_number":4297,"context_line":""},{"line_number":4298,"context_line":"        data \u003d self._network_client.post("}],"source_content_type":"text/x-python","patch_set":2,"id":"ff82abbf_03a89ed8","line":4295,"range":{"start_line":4295,"start_character":57,"end_line":4295,"end_character":61},"in_reply_to":"ff82abbf_840e0d30","updated":"2017-11-24 21:43:41.000000000","message":"Same comment as above.","commit_id":"1994c8c9b71fb611244811ca63cca3d3195cece4"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"efb89b2946b8e454d67368cf95d54ad28a94ef56","unresolved":false,"context_lines":[{"line_number":4289,"context_line":"        )"},{"line_number":4290,"context_line":"        if ext_gw_info:"},{"line_number":4291,"context_line":"            router[\u0027external_gateway_info\u0027] \u003d ext_gw_info"},{"line_number":4292,"context_line":"        if availability_zone_hints is not None:"},{"line_number":4293,"context_line":"            if not isinstance(availability_zone_hints, list):"},{"line_number":4294,"context_line":"                raise OpenStackCloudException("},{"line_number":4295,"context_line":"                    \"Parameter \u0027availability_zone_hints\u0027 must be a list\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff82abbf_e31b24c7","line":4292,"updated":"2017-11-27 14:10:40.000000000","message":"I think we should use the _has_neutron_extension() call here to see if the router_availability_zone extension is enabled before we send this parameter, raising an exception if it isn\u0027t. See the QOS api calls for an example.","commit_id":"f664ac18a518a5d7e73c72741eb2aa14fd0bd3c4"},{"author":{"_account_id":23866,"name":"Trygve Vea","email":"trygve.vea@gmail.com","username":"trygve.vea"},"change_message_id":"357daa2878aa08087a9223bbe7fda1009263901e","unresolved":false,"context_lines":[{"line_number":4289,"context_line":"        )"},{"line_number":4290,"context_line":"        if ext_gw_info:"},{"line_number":4291,"context_line":"            router[\u0027external_gateway_info\u0027] \u003d ext_gw_info"},{"line_number":4292,"context_line":"        if availability_zone_hints is not None:"},{"line_number":4293,"context_line":"            if not isinstance(availability_zone_hints, list):"},{"line_number":4294,"context_line":"                raise OpenStackCloudException("},{"line_number":4295,"context_line":"                    \"Parameter \u0027availability_zone_hints\u0027 must be a list\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"ff82abbf_4311b05c","line":4292,"in_reply_to":"ff82abbf_e31b24c7","updated":"2017-11-27 14:25:42.000000000","message":"This is addressed in the latest patch set.","commit_id":"f664ac18a518a5d7e73c72741eb2aa14fd0bd3c4"}],"shade/tests/unit/test_network.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"1a8ff3f94543606dca8d16fcf5fca16dcd78bbda","unresolved":false,"context_lines":[{"line_number":166,"context_line":"        network \u003d self.cloud.create_network(\"netname\","},{"line_number":167,"context_line":"                                            availability_zone_hints\u003d[\u0027nova\u0027])"},{"line_number":168,"context_line":"        self.assertEqual(self.mock_new_network_rep, network)"},{"line_number":169,"context_line":"        self.assert_calls()"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    def test_create_network_provider_ignored_value(self):"},{"line_number":172,"context_line":"        provider_opts \u003d {\u0027physical_network\u0027: \u0027mynet\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff82abbf_c45ad528","line":169,"updated":"2017-11-23 22:00:46.000000000","message":"maybe You could also add simple UT to cover case when availability_zone_hints is given as something else then list?","commit_id":"1994c8c9b71fb611244811ca63cca3d3195cece4"},{"author":{"_account_id":23866,"name":"Trygve Vea","email":"trygve.vea@gmail.com","username":"trygve.vea"},"change_message_id":"3e524e512d5e858ad5b058a956e88aa672e7f08c","unresolved":false,"context_lines":[{"line_number":166,"context_line":"        network \u003d self.cloud.create_network(\"netname\","},{"line_number":167,"context_line":"                                            availability_zone_hints\u003d[\u0027nova\u0027])"},{"line_number":168,"context_line":"        self.assertEqual(self.mock_new_network_rep, network)"},{"line_number":169,"context_line":"        self.assert_calls()"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    def test_create_network_provider_ignored_value(self):"},{"line_number":172,"context_line":"        provider_opts \u003d {\u0027physical_network\u0027: \u0027mynet\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff82abbf_e3c9faab","line":169,"in_reply_to":"ff82abbf_c45ad528","updated":"2017-11-24 21:43:41.000000000","message":"Fixed.","commit_id":"1994c8c9b71fb611244811ca63cca3d3195cece4"}],"shade/tests/unit/test_router.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"1a8ff3f94543606dca8d16fcf5fca16dcd78bbda","unresolved":false,"context_lines":[{"line_number":113,"context_line":"        self.assert_calls()"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    def test_create_router_with_availability_zone_hints(self):"},{"line_number":116,"context_line":"        \"\"\"Do not send enable_snat when same as neutron default.\"\"\""},{"line_number":117,"context_line":"        self.register_uris(["},{"line_number":118,"context_line":"            dict(method\u003d\u0027POST\u0027,"},{"line_number":119,"context_line":"                 uri\u003dself.get_mock_url("}],"source_content_type":"text/x-python","patch_set":2,"id":"ff82abbf_643c29c8","line":116,"range":{"start_line":116,"start_character":8,"end_line":116,"end_character":67},"updated":"2017-11-23 22:00:46.000000000","message":"Is this comment proper here? I\u0027m not sure","commit_id":"1994c8c9b71fb611244811ca63cca3d3195cece4"},{"author":{"_account_id":23866,"name":"Trygve Vea","email":"trygve.vea@gmail.com","username":"trygve.vea"},"change_message_id":"3e524e512d5e858ad5b058a956e88aa672e7f08c","unresolved":false,"context_lines":[{"line_number":113,"context_line":"        self.assert_calls()"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    def test_create_router_with_availability_zone_hints(self):"},{"line_number":116,"context_line":"        \"\"\"Do not send enable_snat when same as neutron default.\"\"\""},{"line_number":117,"context_line":"        self.register_uris(["},{"line_number":118,"context_line":"            dict(method\u003d\u0027POST\u0027,"},{"line_number":119,"context_line":"                 uri\u003dself.get_mock_url("}],"source_content_type":"text/x-python","patch_set":2,"id":"ff82abbf_63b64a41","line":116,"range":{"start_line":116,"start_character":8,"end_line":116,"end_character":67},"in_reply_to":"ff82abbf_643c29c8","updated":"2017-11-24 21:43:41.000000000","message":"Fixed.","commit_id":"1994c8c9b71fb611244811ca63cca3d3195cece4"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"1a8ff3f94543606dca8d16fcf5fca16dcd78bbda","unresolved":false,"context_lines":[{"line_number":128,"context_line":"        self.cloud.create_router("},{"line_number":129,"context_line":"            name\u003dself.router_name, admin_state_up\u003dTrue,"},{"line_number":130,"context_line":"            availability_zone_hints\u003d[\u0027nova\u0027])"},{"line_number":131,"context_line":"        self.assert_calls()"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    def test_create_router_with_enable_snat_True(self):"},{"line_number":134,"context_line":"        \"\"\"Do not send enable_snat when same as neutron default.\"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"ff82abbf_04519d0e","line":131,"updated":"2017-11-23 22:00:46.000000000","message":"maybe You could also add simple UT to cover case when availability_zone_hints is given as something else then list?","commit_id":"1994c8c9b71fb611244811ca63cca3d3195cece4"},{"author":{"_account_id":23866,"name":"Trygve Vea","email":"trygve.vea@gmail.com","username":"trygve.vea"},"change_message_id":"3e524e512d5e858ad5b058a956e88aa672e7f08c","unresolved":false,"context_lines":[{"line_number":128,"context_line":"        self.cloud.create_router("},{"line_number":129,"context_line":"            name\u003dself.router_name, admin_state_up\u003dTrue,"},{"line_number":130,"context_line":"            availability_zone_hints\u003d[\u0027nova\u0027])"},{"line_number":131,"context_line":"        self.assert_calls()"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    def test_create_router_with_enable_snat_True(self):"},{"line_number":134,"context_line":"        \"\"\"Do not send enable_snat when same as neutron default.\"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"ff82abbf_6352cae0","line":131,"in_reply_to":"ff82abbf_04519d0e","updated":"2017-11-24 21:43:41.000000000","message":"Fixed, but I added an extra import; I noticed that testing is done somewhat differently in test_router and test_network.\n\nCore: Should someone (maybe me) do some work to make the tests more consistently written? If so; Which methods are better?","commit_id":"1994c8c9b71fb611244811ca63cca3d3195cece4"}]}
