)]}'
{"tempest/api/network/admin/test_provider_extension.py":[{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"d82fc9a80a271234c656492ea616b0476e10400e","unresolved":false,"context_lines":[{"line_number":42,"context_line":"            except (IndexError, ValueError):"},{"line_number":43,"context_line":"                msg \u003d \"Failed to parse provider network specification: \u0027%s\u0027\""},{"line_number":44,"context_line":"                msg %\u003d raw_spec"},{"line_number":45,"context_line":"                raise cls.failureException(msg)"},{"line_number":46,"context_line":"            return spec"},{"line_number":47,"context_line":"        return None"},{"line_number":48,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"dab895d6_b3e2a5d3","line":45,"updated":"2014-06-30 11:36:23.000000000","message":"I think you can write \n\n    raise cls.failureException(msg % raw_spec)\n\nand remove line 44.","commit_id":"2c52ffbd03b25c97fae3c494f3a80aa37f4a4ff9"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"d82fc9a80a271234c656492ea616b0476e10400e","unresolved":false,"context_lines":[{"line_number":44,"context_line":"                msg %\u003d raw_spec"},{"line_number":45,"context_line":"                raise cls.failureException(msg)"},{"line_number":46,"context_line":"            return spec"},{"line_number":47,"context_line":"        return None"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    @classmethod"},{"line_number":50,"context_line":"    def setUpClass(cls):"}],"source_content_type":"text/x-python","patch_set":4,"id":"dab895d6_b3bf05d0","line":47,"updated":"2014-06-30 11:36:23.000000000","message":"There is no need to use \n\n    return None\n\nhere.","commit_id":"2c52ffbd03b25c97fae3c494f3a80aa37f4a4ff9"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"d82fc9a80a271234c656492ea616b0476e10400e","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        if not cls.spec:"},{"line_number":58,"context_line":"            msg \u003d \"%s provider network support not enabled.\""},{"line_number":59,"context_line":"            msg %\u003d cls.NETWORK_TYPE"},{"line_number":60,"context_line":"            raise cls.skipException(msg)"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    def safe_create_admin_network(self, **spec):"},{"line_number":63,"context_line":"        if \u0027name\u0027 not in spec:"}],"source_content_type":"text/x-python","patch_set":4,"id":"dab895d6_d3fe396b","line":60,"updated":"2014-06-30 11:36:23.000000000","message":"ditto","commit_id":"2c52ffbd03b25c97fae3c494f3a80aa37f4a4ff9"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"f8e22064022a6f4f10fe9709b8cf4c9e7484df76","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    def safe_create_admin_network(self, **spec):"},{"line_number":55,"context_line":"        \"\"\"Create network in admin tenant and ensure its cleanup after test.\"\"\""},{"line_number":56,"context_line":"        if \u0027name\u0027 not in spec:"},{"line_number":57,"context_line":"            spec[\u0027name\u0027] \u003d data_utils.rand_name(\u0027network-\u0027)"},{"line_number":58,"context_line":"        resp, body \u003d self.admin_client.create_network(**spec)"},{"line_number":59,"context_line":"        network \u003d body[\u0027network\u0027]"},{"line_number":60,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_9ce17afe","line":57,"updated":"2014-08-04 08:34:03.000000000","message":"rand_name input shouldn\u0027t end with \u0027-\u0027","commit_id":"46fc1732221f1b65301972c39068ea9889e75c78"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"0a72899074cb95db2aa33eae6d3fda123c595ade","unresolved":false,"context_lines":[{"line_number":54,"context_line":"    def safe_create_admin_network(self, **spec):"},{"line_number":55,"context_line":"        \"\"\"Create network in admin tenant and ensure its cleanup after test.\"\"\""},{"line_number":56,"context_line":"        if \u0027name\u0027 not in spec:"},{"line_number":57,"context_line":"            spec[\u0027name\u0027] \u003d data_utils.rand_name(\u0027network-\u0027)"},{"line_number":58,"context_line":"        resp, body \u003d self.admin_client.create_network(**spec)"},{"line_number":59,"context_line":"        network \u003d body[\u0027network\u0027]"},{"line_number":60,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_69e140fb","line":57,"in_reply_to":"baada198_9ce17afe","updated":"2014-08-12 12:59:53.000000000","message":"Done","commit_id":"46fc1732221f1b65301972c39068ea9889e75c78"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"f8e22064022a6f4f10fe9709b8cf4c9e7484df76","unresolved":false,"context_lines":[{"line_number":57,"context_line":"            spec[\u0027name\u0027] \u003d data_utils.rand_name(\u0027network-\u0027)"},{"line_number":58,"context_line":"        resp, body \u003d self.admin_client.create_network(**spec)"},{"line_number":59,"context_line":"        network \u003d body[\u0027network\u0027]"},{"line_number":60,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":61,"context_line":"        self.addCleanup(self.safe_delete_admin_network, network[\u0027id\u0027])"},{"line_number":62,"context_line":"        return network"},{"line_number":63,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_c56076a6","line":60,"updated":"2014-08-04 08:34:03.000000000","message":"return code should be checked in clients and not in test\nhttps://github.com/openstack/qa-specs/blob/master/specs/client-checks-success.rst","commit_id":"46fc1732221f1b65301972c39068ea9889e75c78"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"0a72899074cb95db2aa33eae6d3fda123c595ade","unresolved":false,"context_lines":[{"line_number":57,"context_line":"            spec[\u0027name\u0027] \u003d data_utils.rand_name(\u0027network-\u0027)"},{"line_number":58,"context_line":"        resp, body \u003d self.admin_client.create_network(**spec)"},{"line_number":59,"context_line":"        network \u003d body[\u0027network\u0027]"},{"line_number":60,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":61,"context_line":"        self.addCleanup(self.safe_delete_admin_network, network[\u0027id\u0027])"},{"line_number":62,"context_line":"        return network"},{"line_number":63,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_e4a71c07","line":60,"in_reply_to":"baada198_c56076a6","updated":"2014-08-12 12:59:53.000000000","message":"under discussion","commit_id":"46fc1732221f1b65301972c39068ea9889e75c78"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"8a55f12fa4ef83bfd4416598425693f9eef5aee0","unresolved":false,"context_lines":[{"line_number":57,"context_line":"            spec[\u0027name\u0027] \u003d data_utils.rand_name(\u0027network-\u0027)"},{"line_number":58,"context_line":"        resp, body \u003d self.admin_client.create_network(**spec)"},{"line_number":59,"context_line":"        network \u003d body[\u0027network\u0027]"},{"line_number":60,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"},{"line_number":61,"context_line":"        self.addCleanup(self.safe_delete_admin_network, network[\u0027id\u0027])"},{"line_number":62,"context_line":"        return network"},{"line_number":63,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_4afa75bb","line":60,"in_reply_to":"baada198_e4a71c07","updated":"2014-08-12 22:54:18.000000000","message":"After discussion with David Kranz, such approach must be used if the client support it (currently only available for compute/queuing)","commit_id":"46fc1732221f1b65301972c39068ea9889e75c78"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"984b5b99301759ff7b77ba03ef2bb08da30db002","unresolved":false,"context_lines":[{"line_number":80,"context_line":"                return spec"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    @classmethod"},{"line_number":83,"context_line":"    def setUpClass(cls):"},{"line_number":84,"context_line":"        super(ProviderExtensionTestMixin, cls).setUpClass()"},{"line_number":85,"context_line":"        if not test.is_extension_enabled(\u0027provider\u0027, \u0027network\u0027):"},{"line_number":86,"context_line":"            msg \u003d \"provider extension not enabled.\""}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_9c2b3332","line":83,"updated":"2014-08-04 10:50:01.000000000","message":"maybe these should go in \"ProviderExtensionTestToolsMixin\" as it is duplicated across all modules in your branch?","commit_id":"46fc1732221f1b65301972c39068ea9889e75c78"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"0a72899074cb95db2aa33eae6d3fda123c595ade","unresolved":false,"context_lines":[{"line_number":80,"context_line":"                return spec"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    @classmethod"},{"line_number":83,"context_line":"    def setUpClass(cls):"},{"line_number":84,"context_line":"        super(ProviderExtensionTestMixin, cls).setUpClass()"},{"line_number":85,"context_line":"        if not test.is_extension_enabled(\u0027provider\u0027, \u0027network\u0027):"},{"line_number":86,"context_line":"            msg \u003d \"provider extension not enabled.\""}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_29dca844","line":83,"in_reply_to":"baada198_9c2b3332","updated":"2014-08-12 12:59:53.000000000","message":"In daughter change on multi-provider tests we should test:\n\n  test.is_extension_enabled(\u0027multi-provider\u0027, \u0027network\u0027)\n\nI need to update the daughter change because the change is incorrect","commit_id":"46fc1732221f1b65301972c39068ea9889e75c78"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"f8e22064022a6f4f10fe9709b8cf4c9e7484df76","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        if not test.is_extension_enabled(\u0027provider\u0027, \u0027network\u0027):"},{"line_number":86,"context_line":"            msg \u003d \"provider extension not enabled.\""},{"line_number":87,"context_line":"            raise cls.skipException(msg)"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        cls.spec \u003d cls.get_spec(cls.NETWORK_TYPE)"},{"line_number":90,"context_line":"        if not cls.spec:"},{"line_number":91,"context_line":"            msg \u003d \"%s provider network support not enabled.\""}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_3c56ae5e","line":88,"updated":"2014-08-04 08:34:03.000000000","message":"shouldn\u0027t there be some test that NETWORK_TYPE isn\u0027t None?\n\nalternatively - mark this class as abstarct","commit_id":"46fc1732221f1b65301972c39068ea9889e75c78"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"0a72899074cb95db2aa33eae6d3fda123c595ade","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        if not test.is_extension_enabled(\u0027provider\u0027, \u0027network\u0027):"},{"line_number":86,"context_line":"            msg \u003d \"provider extension not enabled.\""},{"line_number":87,"context_line":"            raise cls.skipException(msg)"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        cls.spec \u003d cls.get_spec(cls.NETWORK_TYPE)"},{"line_number":90,"context_line":"        if not cls.spec:"},{"line_number":91,"context_line":"            msg \u003d \"%s provider network support not enabled.\""}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_a995183e","line":88,"in_reply_to":"baada198_3c56ae5e","updated":"2014-08-12 12:59:53.000000000","message":"Mixin classes by convention should not be instantiated and the mixin does not inherit from unittest.TestCase.","commit_id":"46fc1732221f1b65301972c39068ea9889e75c78"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"38ae3541f923efe345ddc5b0d08ac3615146521d","unresolved":false,"context_lines":[{"line_number":91,"context_line":"            msg \u003d \"%s provider network support not enabled.\""},{"line_number":92,"context_line":"            raise cls.skipException(msg % cls.NETWORK_TYPE)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    def test_create_provider_network(self):"},{"line_number":95,"context_line":"        observed \u003d self.safe_create_admin_network(**self.spec)"},{"line_number":96,"context_line":"        self.assertDictContainsSubset(self.spec, observed)"},{"line_number":97,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_11246cc4","line":94,"updated":"2014-08-04 10:42:04.000000000","message":"I believe the common practice is to have a single test of Create_Udpate_List_Show_Delete instead of creating the network multiple times","commit_id":"46fc1732221f1b65301972c39068ea9889e75c78"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"0a72899074cb95db2aa33eae6d3fda123c595ade","unresolved":false,"context_lines":[{"line_number":91,"context_line":"            msg \u003d \"%s provider network support not enabled.\""},{"line_number":92,"context_line":"            raise cls.skipException(msg % cls.NETWORK_TYPE)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    def test_create_provider_network(self):"},{"line_number":95,"context_line":"        observed \u003d self.safe_create_admin_network(**self.spec)"},{"line_number":96,"context_line":"        self.assertDictContainsSubset(self.spec, observed)"},{"line_number":97,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_5d4ef2c2","line":94,"in_reply_to":"baada198_11246cc4","updated":"2014-08-12 12:59:53.000000000","message":"Done","commit_id":"46fc1732221f1b65301972c39068ea9889e75c78"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"f8e22064022a6f4f10fe9709b8cf4c9e7484df76","unresolved":false,"context_lines":[{"line_number":92,"context_line":"            raise cls.skipException(msg % cls.NETWORK_TYPE)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    def test_create_provider_network(self):"},{"line_number":95,"context_line":"        observed \u003d self.safe_create_admin_network(**self.spec)"},{"line_number":96,"context_line":"        self.assertDictContainsSubset(self.spec, observed)"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    def test_update_provider_network(self):"}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_3c9b0e18","line":95,"updated":"2014-08-04 08:34:03.000000000","message":"I believe provider network common usage is for admin to \"push\" the network to user\u0027s tenant. could you add this here, or as a separate test?\nSimply add \"tenant_id\u003dprimary_tenant\" as keyword to \"safe_create_admin_network\" and verify network was created in the right tenant","commit_id":"46fc1732221f1b65301972c39068ea9889e75c78"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"f8e22064022a6f4f10fe9709b8cf4c9e7484df76","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    def test_update_provider_network(self):"},{"line_number":99,"context_line":"        network \u003d self.safe_create_admin_network(**self.spec)"},{"line_number":100,"context_line":"        name \u003d data_utils.rand_name(\u0027network\u0027)"},{"line_number":101,"context_line":"        resp, body \u003d self.admin_client.update_network(network[\u0027id\u0027], name\u003dname)"},{"line_number":102,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":103,"context_line":"        observed \u003d body[\u0027network\u0027]"}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_dca05238","line":100,"updated":"2014-08-04 08:34:03.000000000","message":"new name should be visually different that old name.\n\nname \u003d data_utils.rand_name(\u0027new-network-name\u0027)","commit_id":"46fc1732221f1b65301972c39068ea9889e75c78"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"0a72899074cb95db2aa33eae6d3fda123c595ade","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    def test_update_provider_network(self):"},{"line_number":99,"context_line":"        network \u003d self.safe_create_admin_network(**self.spec)"},{"line_number":100,"context_line":"        name \u003d data_utils.rand_name(\u0027network\u0027)"},{"line_number":101,"context_line":"        resp, body \u003d self.admin_client.update_network(network[\u0027id\u0027], name\u003dname)"},{"line_number":102,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":103,"context_line":"        observed \u003d body[\u0027network\u0027]"}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_e98ab018","line":100,"in_reply_to":"baada198_dca05238","updated":"2014-08-12 12:59:53.000000000","message":"Done","commit_id":"46fc1732221f1b65301972c39068ea9889e75c78"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"f8e22064022a6f4f10fe9709b8cf4c9e7484df76","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        resp, body \u003d self.admin_client.update_network(network[\u0027id\u0027], name\u003dname)"},{"line_number":102,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":103,"context_line":"        observed \u003d body[\u0027network\u0027]"},{"line_number":104,"context_line":"        self.assertEqual(network[\u0027id\u0027], observed[\u0027id\u0027])"},{"line_number":105,"context_line":"        self.assertEqual(name, observed[\u0027name\u0027])"},{"line_number":106,"context_line":"        self.assertDictContainsSubset(self.spec, observed)"},{"line_number":107,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_65a88a78","line":104,"updated":"2014-08-04 08:34:03.000000000","message":"isn\u0027t this already covered by the dict assertion below?","commit_id":"46fc1732221f1b65301972c39068ea9889e75c78"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"0a72899074cb95db2aa33eae6d3fda123c595ade","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        resp, body \u003d self.admin_client.update_network(network[\u0027id\u0027], name\u003dname)"},{"line_number":102,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":103,"context_line":"        observed \u003d body[\u0027network\u0027]"},{"line_number":104,"context_line":"        self.assertEqual(network[\u0027id\u0027], observed[\u0027id\u0027])"},{"line_number":105,"context_line":"        self.assertEqual(name, observed[\u0027name\u0027])"},{"line_number":106,"context_line":"        self.assertDictContainsSubset(self.spec, observed)"},{"line_number":107,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_c9e88c18","line":104,"in_reply_to":"baada198_65a88a78","updated":"2014-08-12 12:59:53.000000000","message":"No, it\u0027s not covered: id and name are not defined in self.spec","commit_id":"46fc1732221f1b65301972c39068ea9889e75c78"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"f8e22064022a6f4f10fe9709b8cf4c9e7484df76","unresolved":false,"context_lines":[{"line_number":115,"context_line":"        resp, body \u003d self.admin_client.show_network(network[\u0027id\u0027])"},{"line_number":116,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":117,"context_line":"        observed \u003d body[\u0027network\u0027]"},{"line_number":118,"context_line":"        self.assertEqual(network[\u0027id\u0027], observed[\u0027id\u0027])"},{"line_number":119,"context_line":"        self.assertDictContainsSubset(self.spec, observed)"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    def test_list_with_provider_attributes(self):"}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_0598ae67","line":118,"updated":"2014-08-04 08:34:03.000000000","message":"isn\u0027t this already covered by the dict assertion below?","commit_id":"46fc1732221f1b65301972c39068ea9889e75c78"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"0a72899074cb95db2aa33eae6d3fda123c595ade","unresolved":false,"context_lines":[{"line_number":115,"context_line":"        resp, body \u003d self.admin_client.show_network(network[\u0027id\u0027])"},{"line_number":116,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":117,"context_line":"        observed \u003d body[\u0027network\u0027]"},{"line_number":118,"context_line":"        self.assertEqual(network[\u0027id\u0027], observed[\u0027id\u0027])"},{"line_number":119,"context_line":"        self.assertDictContainsSubset(self.spec, observed)"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    def test_list_with_provider_attributes(self):"}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_49dc7c74","line":118,"in_reply_to":"baada198_0598ae67","updated":"2014-08-12 12:59:53.000000000","message":"No, it\u0027s not covered: id and name are not defined in self.spec","commit_id":"46fc1732221f1b65301972c39068ea9889e75c78"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"f8e22064022a6f4f10fe9709b8cf4c9e7484df76","unresolved":false,"context_lines":[{"line_number":122,"context_line":"        network \u003d self.safe_create_admin_network(**self.spec)"},{"line_number":123,"context_line":"        resp, body \u003d self.admin_client.list_networks()"},{"line_number":124,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":125,"context_line":"        observeds \u003d body[\u0027networks\u0027]"},{"line_number":126,"context_line":"        for observed in observeds:"},{"line_number":127,"context_line":"            if observed[\u0027id\u0027] \u003d\u003d network[\u0027id\u0027]:"},{"line_number":128,"context_line":"                self.assertDictContainsSubset(self.spec, observed)"}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_257bf229","line":125,"updated":"2014-08-04 08:34:03.000000000","message":"nit: s/observeds/observd_networks","commit_id":"46fc1732221f1b65301972c39068ea9889e75c78"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"0a72899074cb95db2aa33eae6d3fda123c595ade","unresolved":false,"context_lines":[{"line_number":122,"context_line":"        network \u003d self.safe_create_admin_network(**self.spec)"},{"line_number":123,"context_line":"        resp, body \u003d self.admin_client.list_networks()"},{"line_number":124,"context_line":"        self.assertEqual(\u0027200\u0027, resp[\u0027status\u0027])"},{"line_number":125,"context_line":"        observeds \u003d body[\u0027networks\u0027]"},{"line_number":126,"context_line":"        for observed in observeds:"},{"line_number":127,"context_line":"            if observed[\u0027id\u0027] \u003d\u003d network[\u0027id\u0027]:"},{"line_number":128,"context_line":"                self.assertDictContainsSubset(self.spec, observed)"}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_69c4e040","line":125,"in_reply_to":"baada198_257bf229","updated":"2014-08-12 12:59:53.000000000","message":"Why?\n\nThe convention used in the module is observed for body[\u0027network\u0027] so observeds for body[\u0027networks\u0027] seems coherent.","commit_id":"46fc1732221f1b65301972c39068ea9889e75c78"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"c12d1d68047a9a9e007b118fb73b1dd26d712a58","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        observeds \u003d body[\u0027networks\u0027]"},{"line_number":102,"context_line":"        for observed in observeds:"},{"line_number":103,"context_line":"            if observed[\u0027id\u0027] \u003d\u003d network[\u0027id\u0027]:"},{"line_number":104,"context_line":"                self.assertDictContainsSubset(spec, observed)"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"        # update"},{"line_number":107,"context_line":"        name \u003d data_utils.rand_name(\u0027new-network\u0027)"}],"source_content_type":"text/x-python","patch_set":20,"id":"fa98f980_f04e7995","line":104,"updated":"2014-09-02 13:24:57.000000000","message":"it\u0027s better to check if the network is actually listed.","commit_id":"a062e5f7d9e181753fc1e5efef1216c0d5e4488b"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"03456a7dfa7fe22a488b6ee961009809789f4e5f","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        observeds \u003d body[\u0027networks\u0027]"},{"line_number":102,"context_line":"        for observed in observeds:"},{"line_number":103,"context_line":"            if observed[\u0027id\u0027] \u003d\u003d network[\u0027id\u0027]:"},{"line_number":104,"context_line":"                self.assertDictContainsSubset(spec, observed)"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"        # update"},{"line_number":107,"context_line":"        name \u003d data_utils.rand_name(\u0027new-network\u0027)"}],"source_content_type":"text/x-python","patch_set":20,"id":"fa98f980_2100b166","line":104,"in_reply_to":"fa98f980_f04e7995","updated":"2014-09-02 14:32:03.000000000","message":"Done","commit_id":"a062e5f7d9e181753fc1e5efef1216c0d5e4488b"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"1c18627d3fd47b5c59f906cb3345cbeb0e43cd7a","unresolved":false,"context_lines":[{"line_number":104,"context_line":"                self.assertDictContainsSubset(spec, observed)"},{"line_number":105,"context_line":"                break"},{"line_number":106,"context_line":"        else:"},{"line_number":107,"context_line":"            self.fail(\"Network not found in network list\")"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        # update"},{"line_number":110,"context_line":"        name \u003d data_utils.rand_name(\u0027new-network\u0027)"}],"source_content_type":"text/x-python","patch_set":21,"id":"fa98f980_c2f0b200","line":107,"updated":"2014-09-02 22:51:04.000000000","message":"So a femtonit, as it is here is probably fine(and might have an advantage), but you could also just raise a NotFound exception from tempest.exceptions. That\u0027s how this is normally done everywhere else.","commit_id":"700a913e2b228f554d0f632293453aa4b78d8c46"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"4458937b4a476ac74c1f5859e6df9cca17c76b3e","unresolved":false,"context_lines":[{"line_number":104,"context_line":"                self.assertDictContainsSubset(spec, observed)"},{"line_number":105,"context_line":"                break"},{"line_number":106,"context_line":"        else:"},{"line_number":107,"context_line":"            self.fail(\"Network not found in network list\")"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        # update"},{"line_number":110,"context_line":"        name \u003d data_utils.rand_name(\u0027new-network\u0027)"}],"source_content_type":"text/x-python","patch_set":21,"id":"fa98f980_1bf41cce","line":107,"in_reply_to":"fa98f980_3f5c25ed","updated":"2014-09-09 15:54:24.000000000","message":"Done","commit_id":"700a913e2b228f554d0f632293453aa4b78d8c46"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"1ecd7645e2ba12f57014ecbc2a233d2cf03f73e8","unresolved":false,"context_lines":[{"line_number":104,"context_line":"                self.assertDictContainsSubset(spec, observed)"},{"line_number":105,"context_line":"                break"},{"line_number":106,"context_line":"        else:"},{"line_number":107,"context_line":"            self.fail(\"Network not found in network list\")"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        # update"},{"line_number":110,"context_line":"        name \u003d data_utils.rand_name(\u0027new-network\u0027)"}],"source_content_type":"text/x-python","patch_set":21,"id":"fa98f980_3f5c25ed","line":107,"in_reply_to":"fa98f980_c2f0b200","updated":"2014-09-03 12:36:50.000000000","message":"Will do","commit_id":"700a913e2b228f554d0f632293453aa4b78d8c46"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"1c18627d3fd47b5c59f906cb3345cbeb0e43cd7a","unresolved":false,"context_lines":[{"line_number":115,"context_line":"        self.assertDictContainsSubset(spec, observed)"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"        # delete"},{"line_number":118,"context_line":"        self.admin_client.delete_network(network[\u0027id\u0027])"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    def test_crud_local_provider_network(self):"},{"line_number":121,"context_line":"        self._test_crud_provider_network(\u0027local\u0027)"}],"source_content_type":"text/x-python","patch_set":21,"id":"fa98f980_82506ad5","line":118,"updated":"2014-09-02 22:51:04.000000000","message":"Is this a critical part of what\u0027s being tested here? I feel this would be better to add as an addCleanup after the network is created. Otherwise this will leak resources if something fails.","commit_id":"700a913e2b228f554d0f632293453aa4b78d8c46"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"1ecd7645e2ba12f57014ecbc2a233d2cf03f73e8","unresolved":false,"context_lines":[{"line_number":115,"context_line":"        self.assertDictContainsSubset(spec, observed)"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"        # delete"},{"line_number":118,"context_line":"        self.admin_client.delete_network(network[\u0027id\u0027])"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    def test_crud_local_provider_network(self):"},{"line_number":121,"context_line":"        self._test_crud_provider_network(\u0027local\u0027)"}],"source_content_type":"text/x-python","patch_set":21,"id":"fa98f980_df0799c8","line":118,"in_reply_to":"fa98f980_82506ad5","updated":"2014-09-03 12:36:50.000000000","message":"the addCleanup is defined in safe_create_admin_network","commit_id":"700a913e2b228f554d0f632293453aa4b78d8c46"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"4458937b4a476ac74c1f5859e6df9cca17c76b3e","unresolved":false,"context_lines":[{"line_number":115,"context_line":"        self.assertDictContainsSubset(spec, observed)"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"        # delete"},{"line_number":118,"context_line":"        self.admin_client.delete_network(network[\u0027id\u0027])"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    def test_crud_local_provider_network(self):"},{"line_number":121,"context_line":"        self._test_crud_provider_network(\u0027local\u0027)"}],"source_content_type":"text/x-python","patch_set":21,"id":"fa98f980_9b2f2c3e","line":118,"in_reply_to":"fa98f980_df0799c8","updated":"2014-09-09 15:54:24.000000000","message":"already done","commit_id":"700a913e2b228f554d0f632293453aa4b78d8c46"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"1c18627d3fd47b5c59f906cb3345cbeb0e43cd7a","unresolved":false,"context_lines":[{"line_number":117,"context_line":"        # delete"},{"line_number":118,"context_line":"        self.admin_client.delete_network(network[\u0027id\u0027])"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    def test_crud_local_provider_network(self):"},{"line_number":121,"context_line":"        self._test_crud_provider_network(\u0027local\u0027)"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    def test_crud_flat_provider_network(self):"}],"source_content_type":"text/x-python","patch_set":21,"id":"fa98f980_22dfbe6a","line":120,"updated":"2014-09-02 22:51:04.000000000","message":"So these test definitions feel like something that testscenarios should be used for. There are a few examples of it\u0027s use in tree already.\n\nNot necessarily  a requirement, but I think you should at least explain in the commit message why this approach is better than using the library if you choose not to use it.","commit_id":"700a913e2b228f554d0f632293453aa4b78d8c46"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"1ecd7645e2ba12f57014ecbc2a233d2cf03f73e8","unresolved":false,"context_lines":[{"line_number":117,"context_line":"        # delete"},{"line_number":118,"context_line":"        self.admin_client.delete_network(network[\u0027id\u0027])"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    def test_crud_local_provider_network(self):"},{"line_number":121,"context_line":"        self._test_crud_provider_network(\u0027local\u0027)"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    def test_crud_flat_provider_network(self):"}],"source_content_type":"text/x-python","patch_set":21,"id":"fa98f980_45803646","line":120,"in_reply_to":"fa98f980_22dfbe6a","updated":"2014-09-03 12:36:50.000000000","message":"I don\u0027t know about testscenarios ... will see","commit_id":"700a913e2b228f554d0f632293453aa4b78d8c46"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"13940d21b7f7a62953bbf80de45e76c6756f3305","unresolved":false,"context_lines":[{"line_number":117,"context_line":"        # delete"},{"line_number":118,"context_line":"        self.admin_client.delete_network(network[\u0027id\u0027])"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    def test_crud_local_provider_network(self):"},{"line_number":121,"context_line":"        self._test_crud_provider_network(\u0027local\u0027)"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    def test_crud_flat_provider_network(self):"}],"source_content_type":"text/x-python","patch_set":21,"id":"fa98f980_4d66432b","line":120,"in_reply_to":"fa98f980_45803646","updated":"2014-09-05 18:46:17.000000000","message":"I could use testsccenarios for this change but not for the next one because i can not deploy multiple provider networks using the same segment specification. So provider network and multi-provider network tests should be in the same class to respect previous constraint.","commit_id":"700a913e2b228f554d0f632293453aa4b78d8c46"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"4458937b4a476ac74c1f5859e6df9cca17c76b3e","unresolved":false,"context_lines":[{"line_number":117,"context_line":"        # delete"},{"line_number":118,"context_line":"        self.admin_client.delete_network(network[\u0027id\u0027])"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    def test_crud_local_provider_network(self):"},{"line_number":121,"context_line":"        self._test_crud_provider_network(\u0027local\u0027)"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    def test_crud_flat_provider_network(self):"}],"source_content_type":"text/x-python","patch_set":21,"id":"fa98f980_fb1f5807","line":120,"in_reply_to":"fa98f980_4d66432b","updated":"2014-09-09 15:54:24.000000000","message":"seems not possible because of daughter change","commit_id":"700a913e2b228f554d0f632293453aa4b78d8c46"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"34af5feb195b57f239dfe303feb63e0087f0fb2f","unresolved":false,"context_lines":[{"line_number":141,"context_line":"        # delete"},{"line_number":142,"context_line":"        self.admin_client.delete_network(network[\u0027id\u0027])"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    def test_parse_raw_specs(self):"},{"line_number":145,"context_line":"        raw_spec \u003d \u0027gre:1000\u0027"},{"line_number":146,"context_line":"        expected \u003d {\"provider:network_type\": \"gre\","},{"line_number":147,"context_line":"                    \"provider:segmentation_id\": 1000}"}],"source_content_type":"text/x-python","patch_set":22,"id":"fa98f980_91ffe100","line":144,"updated":"2014-09-10 23:48:16.000000000","message":"This is really a unit test, not an api test. Unit tests should be in tempest/tests.\n\nHowever doing this might mean you\u0027ll have to break parse_raw_spec out and put it in a non-test file, I think importing a file with tests in it might confuse test discovery, but I can\u0027t remember for sure.","commit_id":"4748f2532416372dd5db1f5089b0d12123974475"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"34af5feb195b57f239dfe303feb63e0087f0fb2f","unresolved":false,"context_lines":[{"line_number":148,"context_line":"        observed \u003d self.parse_raw_spec(raw_spec)"},{"line_number":149,"context_line":"        self.assertDictContainsSubset(expected, observed)"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    def test_parse_raw_specs_IndexError(self):"},{"line_number":152,"context_line":"        self.assertRaises(self.failureException,"},{"line_number":153,"context_line":"                          self.parse_raw_spec,"},{"line_number":154,"context_line":"                          \u0027vlan:physnet1\u0027)"}],"source_content_type":"text/x-python","patch_set":22,"id":"fa98f980_f123cda4","line":151,"updated":"2014-09-10 23:48:16.000000000","message":"Same here","commit_id":"4748f2532416372dd5db1f5089b0d12123974475"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"34af5feb195b57f239dfe303feb63e0087f0fb2f","unresolved":false,"context_lines":[{"line_number":153,"context_line":"                          self.parse_raw_spec,"},{"line_number":154,"context_line":"                          \u0027vlan:physnet1\u0027)"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"    def test_parse_raw_specs_ValueError(self):"},{"line_number":157,"context_line":"        self.assertRaises(self.failureException,"},{"line_number":158,"context_line":"                          self.parse_raw_spec,"},{"line_number":159,"context_line":"                          \u0027vxlan:iamnotanumber\u0027)"}],"source_content_type":"text/x-python","patch_set":22,"id":"fa98f980_113a11cd","line":156,"updated":"2014-09-10 23:48:16.000000000","message":"and here","commit_id":"4748f2532416372dd5db1f5089b0d12123974475"}],"tempest/api/network/base.py":[{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"ebc137c7e543861940f82e1b58678f35e4e8fb69","unresolved":false,"context_lines":[{"line_number":402,"context_line":"    def safe_create_admin_network(self, **spec):"},{"line_number":403,"context_line":"        \"\"\"Create network in admin tenant and ensure its cleanup after test.\"\"\""},{"line_number":404,"context_line":"        if \u0027name\u0027 not in spec:"},{"line_number":405,"context_line":"            spec[\u0027name\u0027] \u003d data_utils.rand_name(\u0027network-\u0027)"},{"line_number":406,"context_line":"        resp, body \u003d self.admin_client.create_network(**spec)"},{"line_number":407,"context_line":"        network \u003d body[\u0027network\u0027]"},{"line_number":408,"context_line":"        self.assertEqual(\u0027201\u0027, resp[\u0027status\u0027])"}],"source_content_type":"text/x-python","patch_set":7,"id":"baada198_be14b6a0","line":405,"updated":"2014-07-03 15:28:35.000000000","message":"Please, remove dash. The rand_name function adds dash itself.","commit_id":"00c1a714e1f9391688527a61d20f0e9d192faf92"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"5ce4e9f8dbd423e5ea58cac011c01efb293aff81","unresolved":false,"context_lines":[{"line_number":141,"context_line":"    @classmethod"},{"line_number":142,"context_line":"    def create_network(cls, network_name\u003dNone):"},{"line_number":143,"context_line":"        \"\"\"Wrapper utility that returns a test network.\"\"\""},{"line_number":144,"context_line":"        network_name \u003d network_name or data_utils.rand_name(\u0027test-network\u0027)"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"        resp, body \u003d cls.client.create_network(name\u003dnetwork_name)"},{"line_number":147,"context_line":"        network \u003d body[\u0027network\u0027]"}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_0205cb13","line":144,"updated":"2014-07-08 14:47:47.000000000","message":"why was this change done?","commit_id":"3ced5989838e499bd6ab4d28153800d29f50340b"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"72d3bc10716ff7abde060fc2b1fa18d3c545cd22","unresolved":false,"context_lines":[{"line_number":141,"context_line":"    @classmethod"},{"line_number":142,"context_line":"    def create_network(cls, network_name\u003dNone):"},{"line_number":143,"context_line":"        \"\"\"Wrapper utility that returns a test network.\"\"\""},{"line_number":144,"context_line":"        network_name \u003d network_name or data_utils.rand_name(\u0027test-network\u0027)"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"        resp, body \u003d cls.client.create_network(name\u003dnetwork_name)"},{"line_number":147,"context_line":"        network \u003d body[\u0027network\u0027]"}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_552f7bf6","line":144,"in_reply_to":"baada198_0205cb13","updated":"2014-07-08 14:54:56.000000000","message":"It\u0027s linked to Yaroslav comment on previous patchset ... data_utils.rand_name(\u0027test-network-\u0027) generates test-network--.* names not test-network-.*","commit_id":"3ced5989838e499bd6ab4d28153800d29f50340b"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"369da9c9d3c112ce21a25fb56010928fe1b5316a","unresolved":false,"context_lines":[{"line_number":141,"context_line":"    @classmethod"},{"line_number":142,"context_line":"    def create_network(cls, network_name\u003dNone):"},{"line_number":143,"context_line":"        \"\"\"Wrapper utility that returns a test network.\"\"\""},{"line_number":144,"context_line":"        network_name \u003d network_name or data_utils.rand_name(\u0027test-network\u0027)"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"        resp, body \u003d cls.client.create_network(name\u003dnetwork_name)"},{"line_number":147,"context_line":"        network \u003d body[\u0027network\u0027]"}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_936dabcf","line":144,"in_reply_to":"baada198_552f7bf6","updated":"2014-07-08 15:26:04.000000000","message":"Done","commit_id":"3ced5989838e499bd6ab4d28153800d29f50340b"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"5ce4e9f8dbd423e5ea58cac011c01efb293aff81","unresolved":false,"context_lines":[{"line_number":414,"context_line":"        try:"},{"line_number":415,"context_line":"            self.admin_client.delete_network(network_id)"},{"line_number":416,"context_line":"        except exceptions.NotFound:"},{"line_number":417,"context_line":"            pass"}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_d51b8b1a","line":417,"updated":"2014-07-08 14:47:47.000000000","message":"I doubt that network/base is the right place for this methods. Such help function for creation and deletion always puts in the same file with tests.","commit_id":"3ced5989838e499bd6ab4d28153800d29f50340b"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"369da9c9d3c112ce21a25fb56010928fe1b5316a","unresolved":false,"context_lines":[{"line_number":414,"context_line":"        try:"},{"line_number":415,"context_line":"            self.admin_client.delete_network(network_id)"},{"line_number":416,"context_line":"        except exceptions.NotFound:"},{"line_number":417,"context_line":"            pass"}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_b372afab","line":417,"in_reply_to":"baada198_b524570f","updated":"2014-07-08 15:26:04.000000000","message":"Done","commit_id":"3ced5989838e499bd6ab4d28153800d29f50340b"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"72d3bc10716ff7abde060fc2b1fa18d3c545cd22","unresolved":false,"context_lines":[{"line_number":414,"context_line":"        try:"},{"line_number":415,"context_line":"            self.admin_client.delete_network(network_id)"},{"line_number":416,"context_line":"        except exceptions.NotFound:"},{"line_number":417,"context_line":"            pass"}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_b524570f","line":417,"in_reply_to":"baada198_d51b8b1a","updated":"2014-07-08 14:54:56.000000000","message":"Will do, i was not sure where to put shared codes between (mutli-)provider networks test cases ... but in practice multi-provider test cases module already depends on provider test cases module.","commit_id":"3ced5989838e499bd6ab4d28153800d29f50340b"}],"tempest/config.py":[{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"2bee797474179efdf6932ecbb7e0bbf58e7c5dcf","unresolved":false,"context_lines":[{"line_number":430,"context_line":"                help\u003d\"List of dns servers whichs hould be used\""},{"line_number":431,"context_line":"                     \" for subnet creation\"),"},{"line_number":432,"context_line":"    cfg.ListOpt("},{"line_number":433,"context_line":"        \u0027provider_network_scenario\u0027,"},{"line_number":434,"context_line":"        default\u003d[],"},{"line_number":435,"context_line":"        help\u003d\"List provider network scenario to test: \""},{"line_number":436,"context_line":"             \"local provider network: set \u0027local\u0027, \""}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_08aa8583","line":433,"updated":"2014-08-04 08:51:52.000000000","message":"please don\u0027t use the word \"scenario\" as it might create some confusion with \"tempest/scenario\"","commit_id":"46fc1732221f1b65301972c39068ea9889e75c78"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"0a72899074cb95db2aa33eae6d3fda123c595ade","unresolved":false,"context_lines":[{"line_number":430,"context_line":"                help\u003d\"List of dns servers whichs hould be used\""},{"line_number":431,"context_line":"                     \" for subnet creation\"),"},{"line_number":432,"context_line":"    cfg.ListOpt("},{"line_number":433,"context_line":"        \u0027provider_network_scenario\u0027,"},{"line_number":434,"context_line":"        default\u003d[],"},{"line_number":435,"context_line":"        help\u003d\"List provider network scenario to test: \""},{"line_number":436,"context_line":"             \"local provider network: set \u0027local\u0027, \""}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_490b9c2a","line":433,"in_reply_to":"baada198_08aa8583","updated":"2014-08-12 12:59:53.000000000","message":"Done","commit_id":"46fc1732221f1b65301972c39068ea9889e75c78"}]}
