)]}'
{"neutron/db/db_base_plugin_v2.py":[{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"4e57073436473ef1dd5ad18a9f01762c5abacc98","unresolved":false,"context_lines":[{"line_number":990,"context_line":"                    \u0027name\u0027: n[\u0027name\u0027],"},{"line_number":991,"context_line":"                    \u0027admin_state_up\u0027: n[\u0027admin_state_up\u0027],"},{"line_number":992,"context_line":"                    \u0027shared\u0027: n[\u0027shared\u0027],"},{"line_number":993,"context_line":"                    \u0027status\u0027: n.get(\u0027status\u0027, constants.NET_STATUS_ACTIVE)}"},{"line_number":994,"context_line":"            network \u003d models_v2.Network(**args)"},{"line_number":995,"context_line":"            context.session.add(network)"},{"line_number":996,"context_line":"        return self._make_network_dict(network, process_extensions\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAQn%2F%2FVZg%3D","line":993,"updated":"2013-08-01 20:15:41.000000000","message":"Why not set the status based on the value or admin_state_up?  That way the two fields are consistent.","commit_id":"c10cb10e5839358f23c935a7d013957d972174a6"},{"author":{"_account_id":1894,"name":"Ryota MIBU","email":"r-mibu@cq.jp.nec.com","username":"r-mibu"},"change_message_id":"3ed7a51f199c6c71817e6eb54c3976cb34c1ba5a","unresolved":false,"context_lines":[{"line_number":990,"context_line":"                    \u0027name\u0027: n[\u0027name\u0027],"},{"line_number":991,"context_line":"                    \u0027admin_state_up\u0027: n[\u0027admin_state_up\u0027],"},{"line_number":992,"context_line":"                    \u0027shared\u0027: n[\u0027shared\u0027],"},{"line_number":993,"context_line":"                    \u0027status\u0027: n.get(\u0027status\u0027, constants.NET_STATUS_ACTIVE)}"},{"line_number":994,"context_line":"            network \u003d models_v2.Network(**args)"},{"line_number":995,"context_line":"            context.session.add(network)"},{"line_number":996,"context_line":"        return self._make_network_dict(network, process_extensions\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAQn%2F%2FUg0%3D","line":993,"in_reply_to":"AAAAQn%2F%2FVZg%3D","updated":"2013-08-02 00:10:04.000000000","message":"There are no values to represent \u0027ERROR\u0027 other than \u0027status\u0027. Also \u0027status\u0027 is not required to sync \u0027admin_state_up\u0027, it depends on plugin implementation.\n\nI just want to do the same as ports (see L1343-L1346).","commit_id":"c10cb10e5839358f23c935a7d013957d972174a6"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"change_message_id":"f4e6f0c8a0036da9810e4101cb2d3d9588b96b2b","unresolved":false,"context_lines":[{"line_number":990,"context_line":"                    \u0027name\u0027: n[\u0027name\u0027],"},{"line_number":991,"context_line":"                    \u0027admin_state_up\u0027: n[\u0027admin_state_up\u0027],"},{"line_number":992,"context_line":"                    \u0027shared\u0027: n[\u0027shared\u0027],"},{"line_number":993,"context_line":"                    \u0027status\u0027: n.get(\u0027status\u0027, constants.NET_STATUS_ACTIVE)}"},{"line_number":994,"context_line":"            network \u003d models_v2.Network(**args)"},{"line_number":995,"context_line":"            context.session.add(network)"},{"line_number":996,"context_line":"        return self._make_network_dict(network, process_extensions\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAQn%2F%2FT9A%3D","line":993,"updated":"2013-08-02 03:56:23.000000000","message":"Would it be better to set the default status as PENDING_CREATE? This will be consistent with LB, FW, and VPN which are doing this.","commit_id":"906910f76f0ca5ba5a7c5e8be7d5d1b32562a8c4"},{"author":{"_account_id":490,"name":"Sumit Naiksatam","email":"sumitnaiksatam@gmail.com","username":"snaiksat"},"change_message_id":"467172c63786347045af11e298dc65aeed252296","unresolved":false,"context_lines":[{"line_number":990,"context_line":"                    \u0027name\u0027: n[\u0027name\u0027],"},{"line_number":991,"context_line":"                    \u0027admin_state_up\u0027: n[\u0027admin_state_up\u0027],"},{"line_number":992,"context_line":"                    \u0027shared\u0027: n[\u0027shared\u0027],"},{"line_number":993,"context_line":"                    \u0027status\u0027: n.get(\u0027status\u0027, constants.NET_STATUS_ACTIVE)}"},{"line_number":994,"context_line":"            network \u003d models_v2.Network(**args)"},{"line_number":995,"context_line":"            context.session.add(network)"},{"line_number":996,"context_line":"        return self._make_network_dict(network, process_extensions\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAQn%2F%2FTuU%3D","line":993,"in_reply_to":"AAAAQn%2F%2FT2w%3D","updated":"2013-08-02 05:58:27.000000000","message":"Thanks, that\u0027s probably a fair point. It seems like you want maintain status quo for existing plugins in this patch and be able to set the status only in the case of the NEC plugin. I am fine with default being ACTIVE here in that case.","commit_id":"906910f76f0ca5ba5a7c5e8be7d5d1b32562a8c4"},{"author":{"_account_id":1894,"name":"Ryota MIBU","email":"r-mibu@cq.jp.nec.com","username":"r-mibu"},"change_message_id":"fd7c3f90207d339b5278ff58aae5fb376d81adbb","unresolved":false,"context_lines":[{"line_number":990,"context_line":"                    \u0027name\u0027: n[\u0027name\u0027],"},{"line_number":991,"context_line":"                    \u0027admin_state_up\u0027: n[\u0027admin_state_up\u0027],"},{"line_number":992,"context_line":"                    \u0027shared\u0027: n[\u0027shared\u0027],"},{"line_number":993,"context_line":"                    \u0027status\u0027: n.get(\u0027status\u0027, constants.NET_STATUS_ACTIVE)}"},{"line_number":994,"context_line":"            network \u003d models_v2.Network(**args)"},{"line_number":995,"context_line":"            context.session.add(network)"},{"line_number":996,"context_line":"        return self._make_network_dict(network, process_extensions\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAQn%2F%2FT2w%3D","line":993,"in_reply_to":"AAAAQn%2F%2FT9A%3D","updated":"2013-08-02 05:16:01.000000000","message":"I don\u0027t think it\u0027s good to change default in this patch. It is out of the scope.\n\nI agree to chang default status to PENDING_CREATE in some plugins which proxy to out-side controller. But other plugins (OVS, LB) have to keep default status \u0027ACTIVE\u0027, because they always want to tell status\u003d\u0027ACTIVE\u0027 to users.\n\nThe change of default status in this line impacts all plugins and their UTs. So we have to make sure how status is changed in each plugin and fix some plugins which do not use PENDING_CREATE (OVS, LB).","commit_id":"906910f76f0ca5ba5a7c5e8be7d5d1b32562a8c4"}],"neutron/tests/unit/test_db_plugin.py":[{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"ef201682fee73ca5324f18642d1770e6b32dddd4","unresolved":false,"context_lines":[{"line_number":3562,"context_line":"        self.assertEqual(actual_repr_output, final_exp)"},{"line_number":3563,"context_line":""},{"line_number":3564,"context_line":""},{"line_number":3565,"context_line":"class NeutronDbPluginV2AsMixinTestCase(base.BaseTestCase):"},{"line_number":3566,"context_line":""},{"line_number":3567,"context_line":"    def setUp(self, plugin\u003dNone, service_plugins\u003dNone):"},{"line_number":3568,"context_line":"        super(NeutronDbPluginV2AsMixinTestCase, self).setUp()"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAQn%2F%2FStA%3D","line":3565,"updated":"2013-08-02 13:27:22.000000000","message":"Why a different unit test case?","commit_id":"2ba13f65642704ec7d3767ef3ce5e8969a9386c6"},{"author":{"_account_id":1894,"name":"Ryota MIBU","email":"r-mibu@cq.jp.nec.com","username":"r-mibu"},"change_message_id":"0ea0663c8b9ec8d315e42c911560e3768a699e88","unresolved":false,"context_lines":[{"line_number":3562,"context_line":"        self.assertEqual(actual_repr_output, final_exp)"},{"line_number":3563,"context_line":""},{"line_number":3564,"context_line":""},{"line_number":3565,"context_line":"class NeutronDbPluginV2AsMixinTestCase(base.BaseTestCase):"},{"line_number":3566,"context_line":""},{"line_number":3567,"context_line":"    def setUp(self, plugin\u003dNone, service_plugins\u003dNone):"},{"line_number":3568,"context_line":"        super(NeutronDbPluginV2AsMixinTestCase, self).setUp()"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAQn%2F%2FPDU%3D","line":3565,"in_reply_to":"AAAAQn%2F%2FP%2FI%3D","updated":"2013-08-05 00:37:00.000000000","message":"I agree about the name of this test case is not good. How about \u0027DbPluginPotentialTestCase\u0027? Or, Could you tell me some good name for this?\n\nI will write comment for this class.","commit_id":"2ba13f65642704ec7d3767ef3ce5e8969a9386c6"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"ae21f72f9a8c56ba56990f3ef17f5f4de4f86782","unresolved":false,"context_lines":[{"line_number":3562,"context_line":"        self.assertEqual(actual_repr_output, final_exp)"},{"line_number":3563,"context_line":""},{"line_number":3564,"context_line":""},{"line_number":3565,"context_line":"class NeutronDbPluginV2AsMixinTestCase(base.BaseTestCase):"},{"line_number":3566,"context_line":""},{"line_number":3567,"context_line":"    def setUp(self, plugin\u003dNone, service_plugins\u003dNone):"},{"line_number":3568,"context_line":"        super(NeutronDbPluginV2AsMixinTestCase, self).setUp()"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAQn%2F%2FP%2FI%3D","line":3565,"in_reply_to":"AAAAQn%2F%2FSZQ%3D","updated":"2013-08-03 22:31:19.000000000","message":"Got it.\nI have to say the name is not intuitive but I can\u0027t find anything better now.\n\nIf you don\u0027t mind, can you add a docstring explaining pretty much what you wrote in your previous comment?","commit_id":"2ba13f65642704ec7d3767ef3ce5e8969a9386c6"},{"author":{"_account_id":1894,"name":"Ryota MIBU","email":"r-mibu@cq.jp.nec.com","username":"r-mibu"},"change_message_id":"0cb5258b86eb8fd8e4f668a4864cdbccdf3c8981","unresolved":false,"context_lines":[{"line_number":3562,"context_line":"        self.assertEqual(actual_repr_output, final_exp)"},{"line_number":3563,"context_line":""},{"line_number":3564,"context_line":""},{"line_number":3565,"context_line":"class NeutronDbPluginV2AsMixinTestCase(base.BaseTestCase):"},{"line_number":3566,"context_line":""},{"line_number":3567,"context_line":"    def setUp(self, plugin\u003dNone, service_plugins\u003dNone):"},{"line_number":3568,"context_line":"        super(NeutronDbPluginV2AsMixinTestCase, self).setUp()"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAQn%2F%2FSZQ%3D","line":3565,"in_reply_to":"AAAAQn%2F%2FStA%3D","updated":"2013-08-02 15:09:09.000000000","message":"Because it has a different object from NeutronDbPluginV2TestCase which verifies NeutronDbPlugin as a complete plugin. This test case checks methods of  NeutronDbPlugin work fine as a Mix-In to operate DB.\n\nI am not sure that I can put these tests into NeutronDbPluginV2TestCase which is successfully shared between plugins. I mean many plugins use NeutronDbPluginV2TestCase in their unit tests to verify functionality of each plugins. But, status could be different in each plugins. If some plugins ignore input \u0027status\u0027 in create_network(), we don\u0027t want to run test_create_network_with_status_BUILD().","commit_id":"2ba13f65642704ec7d3767ef3ce5e8969a9386c6"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"b69a8980ec86be6cbf1807fc647a00facaa52614","unresolved":false,"context_lines":[{"line_number":3583,"context_line":"                                     \u0027shared\u0027: False}}"},{"line_number":3584,"context_line":"        self.addCleanup(db.clear_db)"},{"line_number":3585,"context_line":""},{"line_number":3586,"context_line":"    def test_create_network(self):"},{"line_number":3587,"context_line":"        net \u003d self.plugin.create_network(self.context, self.net_data)"},{"line_number":3588,"context_line":"        default_net_create_status \u003d \u0027ACTIVE\u0027"},{"line_number":3589,"context_line":"        expected \u003d [(\u0027id\u0027, \u0027fake-id\u0027), (\u0027name\u0027, \u0027net1\u0027),"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAQn%2F%2FJ4I%3D","line":3586,"updated":"2013-08-06 09:21:47.000000000","message":"If the method name is test_create_network_with_default_status, it is more intuitive.","commit_id":"67320e14a69a439b17fcaaac7abdd3e2d78c1458"},{"author":{"_account_id":1894,"name":"Ryota MIBU","email":"r-mibu@cq.jp.nec.com","username":"r-mibu"},"change_message_id":"44709510a008136e7f898d4713b11f6650c2bf08","unresolved":false,"context_lines":[{"line_number":3583,"context_line":"                                     \u0027shared\u0027: False}}"},{"line_number":3584,"context_line":"        self.addCleanup(db.clear_db)"},{"line_number":3585,"context_line":""},{"line_number":3586,"context_line":"    def test_create_network(self):"},{"line_number":3587,"context_line":"        net \u003d self.plugin.create_network(self.context, self.net_data)"},{"line_number":3588,"context_line":"        default_net_create_status \u003d \u0027ACTIVE\u0027"},{"line_number":3589,"context_line":"        expected \u003d [(\u0027id\u0027, \u0027fake-id\u0027), (\u0027name\u0027, \u0027net1\u0027),"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAQn%2F%2FJio%3D","line":3586,"in_reply_to":"AAAAQn%2F%2FJ4I%3D","updated":"2013-08-06 12:06:20.000000000","message":"Done","commit_id":"67320e14a69a439b17fcaaac7abdd3e2d78c1458"}]}
