)]}'
{"neutron/tests/tempest/api/network/base.py":[{"author":{"_account_id":9423,"name":"Roey Chen","email":"roeyc@vmware.com","username":"roeyc"},"change_message_id":"2b4b8546f97cff8f1b306ed12c350008db0ee9cf","unresolved":false,"context_lines":[{"line_number":415,"context_line":"    def is_subnetpool_enabled(cls):"},{"line_number":416,"context_line":"        network \u003d cls.create_network()"},{"line_number":417,"context_line":"        subnet \u003d cls.create_subnet(network)"},{"line_number":418,"context_line":"        is_enabled \u003d True if \u0027subnetpool_id\u0027 in subnet else False"},{"line_number":419,"context_line":"        cls._try_delete_resource(cls.client.delete_network,"},{"line_number":420,"context_line":"                                 network[\u0027id\u0027])"},{"line_number":421,"context_line":"        return is_enabled"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a6ced46_7f186a1e","line":418,"updated":"2015-03-25 16:04:44.000000000","message":"is_enabled \u003d \u0027subnetpool_id\u0027 in subnet\n\nor\n\nreturn \u0027subnetpool_id\u0027 in subnet","commit_id":"58d9a5f5c29064f2043097655cc77ae260dfabca"}],"neutron/tests/tempest/api/network/test_networks.py":[{"author":{"_account_id":9423,"name":"Roey Chen","email":"roeyc@vmware.com","username":"roeyc"},"change_message_id":"2b4b8546f97cff8f1b306ed12c350008db0ee9cf","unresolved":false,"context_lines":[{"line_number":205,"context_line":"        # Verify the details of a network"},{"line_number":206,"context_line":"        body \u003d self.client.show_network(self.network[\u0027id\u0027])"},{"line_number":207,"context_line":"        network \u003d body[\u0027network\u0027]"},{"line_number":208,"context_line":"        for key in [\u0027id\u0027, \u0027name\u0027]:"},{"line_number":209,"context_line":"            self.assertEqual(network[key], self.network[key])"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a6ced46_b27699a2","line":208,"updated":"2015-03-25 16:04:44.000000000","message":"I think you removed \u0027mtu\u0027 unintentionally","commit_id":"58d9a5f5c29064f2043097655cc77ae260dfabca"},{"author":{"_account_id":12524,"name":"Zengfa Gao","email":"zengfa.gao@hp.com","username":"zengfagao"},"change_message_id":"443e57f44fbeb27161d3d926f2df36fac84f34e8","unresolved":false,"context_lines":[{"line_number":205,"context_line":"        # Verify the details of a network"},{"line_number":206,"context_line":"        body \u003d self.client.show_network(self.network[\u0027id\u0027])"},{"line_number":207,"context_line":"        network \u003d body[\u0027network\u0027]"},{"line_number":208,"context_line":"        for key in [\u0027id\u0027, \u0027name\u0027]:"},{"line_number":209,"context_line":"            self.assertEqual(network[key], self.network[key])"},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a6ced46_b4d67cef","line":208,"in_reply_to":"1a6ced46_b27699a2","updated":"2015-03-25 18:33:40.000000000","message":"Yes, I will remove it.","commit_id":"58d9a5f5c29064f2043097655cc77ae260dfabca"},{"author":{"_account_id":9423,"name":"Roey Chen","email":"roeyc@vmware.com","username":"roeyc"},"change_message_id":"2b4b8546f97cff8f1b306ed12c350008db0ee9cf","unresolved":false,"context_lines":[{"line_number":212,"context_line":"    @test.idempotent_id(\u0027867819bb-c4b6-45f7-acf9-90edcf70aa5e\u0027)"},{"line_number":213,"context_line":"    def test_show_network_fields(self):"},{"line_number":214,"context_line":"        # Verify specific fields of a network"},{"line_number":215,"context_line":"        fields \u003d [\u0027id\u0027, \u0027name\u0027]"},{"line_number":216,"context_line":"        body \u003d self.client.show_network(self.network[\u0027id\u0027],"},{"line_number":217,"context_line":"                                        fields\u003dfields)"},{"line_number":218,"context_line":"        network \u003d body[\u0027network\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a6ced46_d27b158a","line":215,"updated":"2015-03-25 16:04:44.000000000","message":"ditto","commit_id":"58d9a5f5c29064f2043097655cc77ae260dfabca"},{"author":{"_account_id":9423,"name":"Roey Chen","email":"roeyc@vmware.com","username":"roeyc"},"change_message_id":"2b4b8546f97cff8f1b306ed12c350008db0ee9cf","unresolved":false,"context_lines":[{"line_number":233,"context_line":"    @test.idempotent_id(\u00276ae6d24f-9194-4869-9c85-c313cb20e080\u0027)"},{"line_number":234,"context_line":"    def test_list_networks_fields(self):"},{"line_number":235,"context_line":"        # Verify specific fields of the networks"},{"line_number":236,"context_line":"        fields \u003d [\u0027id\u0027, \u0027name\u0027]"},{"line_number":237,"context_line":"        body \u003d self.client.list_networks(fields\u003dfields)"},{"line_number":238,"context_line":"        networks \u003d body[\u0027networks\u0027]"},{"line_number":239,"context_line":"        self.assertNotEmpty(networks, \"Network list returned is empty\")"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a6ced46_f26c91d2","line":236,"updated":"2015-03-25 16:04:44.000000000","message":"ditto","commit_id":"58d9a5f5c29064f2043097655cc77ae260dfabca"}],"neutron/tests/tempest/api/network/test_subnetpools.py":[{"author":{"_account_id":9423,"name":"Roey Chen","email":"roeyc@vmware.com","username":"roeyc"},"change_message_id":"2b4b8546f97cff8f1b306ed12c350008db0ee9cf","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    min_prefixlen \u003d \u002728\u0027"},{"line_number":33,"context_line":"    max_prefixlen \u003d \u002731\u0027"},{"line_number":34,"context_line":"    ip_version \u003d 4"},{"line_number":35,"context_line":"    subnet_cidr \u003d \u002710.11.12.0/31\u0027"},{"line_number":36,"context_line":"    new_prefix \u003d u\u002710.11.15.0/24\u0027"},{"line_number":37,"context_line":"    larger_prefix \u003d u\u002710.11.0.0/16\u0027"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a6ced46_b514c3a0","line":35,"updated":"2015-03-25 16:04:44.000000000","message":"u\u002710.11.12.0/31\u0027     ?","commit_id":"58d9a5f5c29064f2043097655cc77ae260dfabca"},{"author":{"_account_id":9423,"name":"Roey Chen","email":"roeyc@vmware.com","username":"roeyc"},"change_message_id":"2b4b8546f97cff8f1b306ed12c350008db0ee9cf","unresolved":false,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def _create_subnetpool(self, client, pool_values\u003dNone):"},{"line_number":74,"context_line":"        name \u003d data_utils.rand_name(SUBNETPOOL_NAME)"},{"line_number":75,"context_line":"        subnetpool_data \u003d copy.deepcopy(self._subnetpool_data)"},{"line_number":76,"context_line":"        if pool_values:"},{"line_number":77,"context_line":"            for k, v in pool_values.iteritems():"},{"line_number":78,"context_line":"                subnetpool_data[\u0027subnetpool\u0027][k] \u003d v"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a6ced46_d0330d12","line":75,"updated":"2015-03-25 16:04:44.000000000","message":"self._subnetpool_data is not defined here or in the base class","commit_id":"58d9a5f5c29064f2043097655cc77ae260dfabca"},{"author":{"_account_id":12524,"name":"Zengfa Gao","email":"zengfa.gao@hp.com","username":"zengfagao"},"change_message_id":"443e57f44fbeb27161d3d926f2df36fac84f34e8","unresolved":false,"context_lines":[{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def _create_subnetpool(self, client, pool_values\u003dNone):"},{"line_number":74,"context_line":"        name \u003d data_utils.rand_name(SUBNETPOOL_NAME)"},{"line_number":75,"context_line":"        subnetpool_data \u003d copy.deepcopy(self._subnetpool_data)"},{"line_number":76,"context_line":"        if pool_values:"},{"line_number":77,"context_line":"            for k, v in pool_values.iteritems():"},{"line_number":78,"context_line":"                subnetpool_data[\u0027subnetpool\u0027][k] \u003d v"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a6ced46_d4df780b","line":75,"in_reply_to":"1a6ced46_d0330d12","updated":"2015-03-25 18:33:40.000000000","message":"This is defined in line 62. I run the tests, all passed.","commit_id":"58d9a5f5c29064f2043097655cc77ae260dfabca"},{"author":{"_account_id":9423,"name":"Roey Chen","email":"roeyc@vmware.com","username":"roeyc"},"change_message_id":"2b4b8546f97cff8f1b306ed12c350008db0ee9cf","unresolved":false,"context_lines":[{"line_number":73,"context_line":"    def _create_subnetpool(self, client, pool_values\u003dNone):"},{"line_number":74,"context_line":"        name \u003d data_utils.rand_name(SUBNETPOOL_NAME)"},{"line_number":75,"context_line":"        subnetpool_data \u003d copy.deepcopy(self._subnetpool_data)"},{"line_number":76,"context_line":"        if pool_values:"},{"line_number":77,"context_line":"            for k, v in pool_values.iteritems():"},{"line_number":78,"context_line":"                subnetpool_data[\u0027subnetpool\u0027][k] \u003d v"},{"line_number":79,"context_line":"        subnetpool_data[\u0027subnetpool\u0027][\u0027name\u0027] \u003d name"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a6ced46_b0edb1b9","line":76,"updated":"2015-03-25 16:04:44.000000000","message":"you could take advantage of python dict \u0027update\u0027 method.\n\nif pool_values:\n    subnetpool_date[\u0027subnetpool\u0027].update(pool_values)","commit_id":"58d9a5f5c29064f2043097655cc77ae260dfabca"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"6320631074d96323e52d0a7bb9900ff6719f20b7","unresolved":false,"context_lines":[{"line_number":148,"context_line":"                         subnetpool[\u0027min_prefixlen\u0027])"},{"line_number":149,"context_line":"        self.assertEqual(subnetpool_data[\u0027subnetpool\u0027][\u0027max_prefixlen\u0027],"},{"line_number":150,"context_line":"                         subnetpool[\u0027max_prefixlen\u0027])"},{"line_number":151,"context_line":"        self.assertFalse(subnetpool[\u0027shared\u0027])"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":154,"context_line":"    @test.idempotent_id(\u00274b496082-c992-4319-90be-d4a7ce646290\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa963961_041e360c","line":151,"updated":"2015-03-27 08:17:39.000000000","message":"This checks are the same for three tests above. What about creating a help function for this? Like this\n\n    def _check_equlity_parameters(subnetpool1, subnetpool2):\n           self.assertEqual(subnetpool1[\u0027subnetpool\u0027][\u0027name\u0027],\n                         subnetpool2[\u0027name\u0027])\n        self.assertEqual(subnetpool1[\u0027subnetpool\u0027][\u0027min_prefixlen\u0027],\n                         subnetpool2[\u0027min_prefixlen\u0027])\n        self.assertEqual(subnetpool1[\u0027subnetpool\u0027][\u0027max_prefixlen\u0027],\n                         subnetpool2[\u0027max_prefixlen\u0027])\n        self.assertFalse(subnetpool2[\u0027shared\u0027])","commit_id":"4c6f5fb2a93cfeb6ad6ea7148ac6ce07dbd6da90"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"6320631074d96323e52d0a7bb9900ff6719f20b7","unresolved":false,"context_lines":[{"line_number":163,"context_line":"        self.client.update_subnetpool(pool_id, subnetpool_data)"},{"line_number":164,"context_line":"        body \u003d self.client.get_subnetpool(pool_id)"},{"line_number":165,"context_line":"        prefixes \u003d body[\u0027subnetpool\u0027][\u0027prefixes\u0027]"},{"line_number":166,"context_line":"        self.assertTrue(self.new_prefix in prefixes)"},{"line_number":167,"context_line":"        self.assertTrue(old_prefixes[0] in prefixes)"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa963961_a4baeadf","line":166,"updated":"2015-03-27 08:17:39.000000000","message":"It is better to use self.assertIn","commit_id":"4c6f5fb2a93cfeb6ad6ea7148ac6ce07dbd6da90"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"6320631074d96323e52d0a7bb9900ff6719f20b7","unresolved":false,"context_lines":[{"line_number":164,"context_line":"        body \u003d self.client.get_subnetpool(pool_id)"},{"line_number":165,"context_line":"        prefixes \u003d body[\u0027subnetpool\u0027][\u0027prefixes\u0027]"},{"line_number":166,"context_line":"        self.assertTrue(self.new_prefix in prefixes)"},{"line_number":167,"context_line":"        self.assertTrue(old_prefixes[0] in prefixes)"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":170,"context_line":"    @test.idempotent_id(\u00272cae5d6a-9d32-42d8-8067-f13970ae13bb\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa963961_44b9dee8","line":167,"updated":"2015-03-27 08:17:39.000000000","message":"the same","commit_id":"4c6f5fb2a93cfeb6ad6ea7148ac6ce07dbd6da90"},{"author":{"_account_id":12524,"name":"Zengfa Gao","email":"zengfa.gao@hp.com","username":"zengfagao"},"change_message_id":"6c20b9d90d5d7a2aac260ed997eefdc5c4ee7dc0","unresolved":false,"context_lines":[{"line_number":164,"context_line":"        body \u003d self.client.get_subnetpool(pool_id)"},{"line_number":165,"context_line":"        prefixes \u003d body[\u0027subnetpool\u0027][\u0027prefixes\u0027]"},{"line_number":166,"context_line":"        self.assertTrue(self.new_prefix in prefixes)"},{"line_number":167,"context_line":"        self.assertTrue(old_prefixes[0] in prefixes)"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":170,"context_line":"    @test.idempotent_id(\u00272cae5d6a-9d32-42d8-8067-f13970ae13bb\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa963961_0a4074a4","line":167,"in_reply_to":"fa963961_44b9dee8","updated":"2015-03-27 14:46:41.000000000","message":"Done","commit_id":"4c6f5fb2a93cfeb6ad6ea7148ac6ce07dbd6da90"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"f6ea844accb3954bc77ec5507f5f9df5af019557","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        self.assertEqual(subnetpool1[\u0027min_prefixlen\u0027],"},{"line_number":92,"context_line":"                         subnetpool2[\u0027min_prefixlen\u0027])"},{"line_number":93,"context_line":"        self.assertEqual(subnetpool1[\u0027max_prefixlen\u0027],"},{"line_number":94,"context_line":"                         subnetpool2[\u0027max_prefixlen\u0027])"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":97,"context_line":"    @test.idempotent_id(\u00276e1781ec-b45b-4042-aebe-f485c022996e\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"da9b358b_cc52b3dd","line":94,"updated":"2015-03-30 12:52:03.000000000","message":"What about the other attributes like prefixes?\nI know you check only parameter updated... but isn\u0027t it a good test to verify no other parameter changed?","commit_id":"d7e44857e131ed554b9566f7c68d7796f7b325f8"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"05ffb32b250719e2c536527d4c22c2147fb28147","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        self.assertEqual(subnetpool1[\u0027min_prefixlen\u0027],"},{"line_number":92,"context_line":"                         subnetpool2[\u0027min_prefixlen\u0027])"},{"line_number":93,"context_line":"        self.assertEqual(subnetpool1[\u0027max_prefixlen\u0027],"},{"line_number":94,"context_line":"                         subnetpool2[\u0027max_prefixlen\u0027])"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":97,"context_line":"    @test.idempotent_id(\u00276e1781ec-b45b-4042-aebe-f485c022996e\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"da9b358b_f050800c","line":94,"in_reply_to":"da9b358b_8926d8b8","updated":"2015-03-31 12:08:08.000000000","message":"right. that\u0027s fine. this test only checks that the values you mean to update were updated.","commit_id":"d7e44857e131ed554b9566f7c68d7796f7b325f8"},{"author":{"_account_id":12524,"name":"Zengfa Gao","email":"zengfa.gao@hp.com","username":"zengfagao"},"change_message_id":"40c6e78281600b12b1d361506c844cbb287a8ee7","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        self.assertEqual(subnetpool1[\u0027min_prefixlen\u0027],"},{"line_number":92,"context_line":"                         subnetpool2[\u0027min_prefixlen\u0027])"},{"line_number":93,"context_line":"        self.assertEqual(subnetpool1[\u0027max_prefixlen\u0027],"},{"line_number":94,"context_line":"                         subnetpool2[\u0027max_prefixlen\u0027])"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":97,"context_line":"    @test.idempotent_id(\u00276e1781ec-b45b-4042-aebe-f485c022996e\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"da9b358b_8926d8b8","line":94,"in_reply_to":"da9b358b_cc52b3dd","updated":"2015-03-30 14:34:46.000000000","message":"subnetpool1 is only subnetpool values to be updated. Not all values in the map.","commit_id":"d7e44857e131ed554b9566f7c68d7796f7b325f8"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"f6ea844accb3954bc77ec5507f5f9df5af019557","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        name, pool_id \u003d self._create_subnetpool(self.client)"},{"line_number":100,"context_line":"        body \u003d self.client.list_subnetpools()"},{"line_number":101,"context_line":"        subnetpools \u003d body[\u0027subnetpools\u0027]"},{"line_number":102,"context_line":"        self.addCleanup(self.client.delete_subnetpool, pool_id)"},{"line_number":103,"context_line":"        self.assertNotEmpty(subnetpools, \u0027We should get list of subnetpools\u0027)"},{"line_number":104,"context_line":"        for n in subnetpools:"},{"line_number":105,"context_line":"            if n[\u0027name\u0027] \u003d\u003d name and n[\u0027id\u0027] \u003d\u003d pool_id:"}],"source_content_type":"text/x-python","patch_set":5,"id":"da9b358b_a64d5074","line":102,"updated":"2015-03-30 12:52:03.000000000","message":"you are not verifying that the subnetpool is actually deleted.... so why did you call the method test_create_list_delete_subnetpool?","commit_id":"d7e44857e131ed554b9566f7c68d7796f7b325f8"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"f6ea844accb3954bc77ec5507f5f9df5af019557","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        body \u003d self.client.list_subnetpools()"},{"line_number":101,"context_line":"        subnetpools \u003d body[\u0027subnetpools\u0027]"},{"line_number":102,"context_line":"        self.addCleanup(self.client.delete_subnetpool, pool_id)"},{"line_number":103,"context_line":"        self.assertNotEmpty(subnetpools, \u0027We should get list of subnetpools\u0027)"},{"line_number":104,"context_line":"        for n in subnetpools:"},{"line_number":105,"context_line":"            if n[\u0027name\u0027] \u003d\u003d name and n[\u0027id\u0027] \u003d\u003d pool_id:"},{"line_number":106,"context_line":"                return"}],"source_content_type":"text/x-python","patch_set":5,"id":"da9b358b_6620689c","line":103,"updated":"2015-03-30 12:52:03.000000000","message":"this check seems redundant, but anyway it does not make any harm","commit_id":"d7e44857e131ed554b9566f7c68d7796f7b325f8"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"f6ea844accb3954bc77ec5507f5f9df5af019557","unresolved":false,"context_lines":[{"line_number":105,"context_line":"            if n[\u0027name\u0027] \u003d\u003d name and n[\u0027id\u0027] \u003d\u003d pool_id:"},{"line_number":106,"context_line":"                return"},{"line_number":107,"context_line":"        self.fail(\u0027We should be able to list \u0027"},{"line_number":108,"context_line":"                  \u0027subnetpool we created\u0027)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":111,"context_line":"    @test.idempotent_id(\u0027741d08c2-1e3f-42be-99c7-0ea93c5b728c\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"da9b358b_a62670b8","line":108,"updated":"2015-03-30 12:52:03.000000000","message":"any reason for not using assertIn?\n\nself.assertIn(pool_id, [sp[\u0027id\u0027] for sp in subnetpools], \"the message you want\")","commit_id":"d7e44857e131ed554b9566f7c68d7796f7b325f8"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"f6ea844accb3954bc77ec5507f5f9df5af019557","unresolved":false,"context_lines":[{"line_number":114,"context_line":"        prefixlen \u003d self._subnetpool_data[\u0027subnetpool\u0027][\u0027min_prefixlen\u0027]"},{"line_number":115,"context_line":"        body \u003d self.client.get_subnetpool(pool_id)"},{"line_number":116,"context_line":"        subnetpool \u003d body[\u0027subnetpool\u0027]"},{"line_number":117,"context_line":"        self.addCleanup(self.client.delete_subnetpool, pool_id)"},{"line_number":118,"context_line":"        self.assertEqual(name, subnetpool[\u0027name\u0027])"},{"line_number":119,"context_line":"        self.assertEqual(pool_id, subnetpool[\u0027id\u0027])"},{"line_number":120,"context_line":"        self.assertEqual(prefixlen, subnetpool[\u0027min_prefixlen\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"da9b358b_063f5cb5","line":117,"updated":"2015-03-30 12:52:03.000000000","message":"nit: put the cleanup immediately after creating the subnetpool","commit_id":"d7e44857e131ed554b9566f7c68d7796f7b325f8"},{"author":{"_account_id":12524,"name":"Zengfa Gao","email":"zengfa.gao@hp.com","username":"zengfagao"},"change_message_id":"40c6e78281600b12b1d361506c844cbb287a8ee7","unresolved":false,"context_lines":[{"line_number":114,"context_line":"        prefixlen \u003d self._subnetpool_data[\u0027subnetpool\u0027][\u0027min_prefixlen\u0027]"},{"line_number":115,"context_line":"        body \u003d self.client.get_subnetpool(pool_id)"},{"line_number":116,"context_line":"        subnetpool \u003d body[\u0027subnetpool\u0027]"},{"line_number":117,"context_line":"        self.addCleanup(self.client.delete_subnetpool, pool_id)"},{"line_number":118,"context_line":"        self.assertEqual(name, subnetpool[\u0027name\u0027])"},{"line_number":119,"context_line":"        self.assertEqual(pool_id, subnetpool[\u0027id\u0027])"},{"line_number":120,"context_line":"        self.assertEqual(prefixlen, subnetpool[\u0027min_prefixlen\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"da9b358b_49821002","line":117,"in_reply_to":"da9b358b_063f5cb5","updated":"2015-03-30 14:34:46.000000000","message":"Done","commit_id":"d7e44857e131ed554b9566f7c68d7796f7b325f8"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"f6ea844accb3954bc77ec5507f5f9df5af019557","unresolved":false,"context_lines":[{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":139,"context_line":"    @test.idempotent_id(\u0027a0524150-3139-42eb-b3ce-d0ee2f2026e5\u0027)"},{"line_number":140,"context_line":"    def test_admin_update_subnetpool(self):"},{"line_number":141,"context_line":"        name, pool_id \u003d self._create_subnetpool(self.client)"},{"line_number":142,"context_line":"        # Admin user has permission to update tenant subnetpool"},{"line_number":143,"context_line":"        subnetpool_data \u003d self._new_subnetpool_attributes()"}],"source_content_type":"text/x-python","patch_set":5,"id":"da9b358b_2ce8ffe1","line":140,"updated":"2015-03-30 12:52:03.000000000","message":"this test is merely verifying that authorization policies, with default settings, work as expected. It is not exercising anything in the API layer which is not already exercised by other tests. I would consider removing it.","commit_id":"d7e44857e131ed554b9566f7c68d7796f7b325f8"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"f6ea844accb3954bc77ec5507f5f9df5af019557","unresolved":false,"context_lines":[{"line_number":156,"context_line":"        # We can append new prefixes to subnetpool"},{"line_number":157,"context_line":"        name, pool_id \u003d self._create_subnetpool(self.client)"},{"line_number":158,"context_line":"        old_prefixes \u003d self._subnetpool_data[\u0027subnetpool\u0027][\u0027prefixes\u0027]"},{"line_number":159,"context_line":"        new_prefixes \u003d copy.deepcopy(old_prefixes)"},{"line_number":160,"context_line":"        new_prefixes.append(self.new_prefix)"},{"line_number":161,"context_line":"        subnetpool_data \u003d {\u0027subnetpool\u0027: {\u0027prefixes\u0027: new_prefixes}}"},{"line_number":162,"context_line":"        self.addCleanup(self.client.delete_subnetpool, pool_id)"}],"source_content_type":"text/x-python","patch_set":5,"id":"da9b358b_ecf1f7ce","line":159,"updated":"2015-03-30 12:52:03.000000000","message":"a shallow copy should be enough?\n\nnew_prefixes \u003d old_prefixes[:]","commit_id":"d7e44857e131ed554b9566f7c68d7796f7b325f8"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"e788b622b9f7395da0c5d3d30060dfefdccf6dfc","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2015 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":6,"id":"da9b358b_3fa247af","line":1,"updated":"2015-03-31 01:54:54.000000000","message":"# Copyright 2015 Hewlett-Packard Development Company, L.P.\n\nright? :)","commit_id":"a9a56b9412e2a915a18f7a469d79724c0f8619ef"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"e788b622b9f7395da0c5d3d30060dfefdccf6dfc","unresolved":false,"context_lines":[{"line_number":88,"context_line":"    def _check_equality_updated_subnetpool(self, updating_values,"},{"line_number":89,"context_line":"                                           updated_values):"},{"line_number":90,"context_line":"        self.assertEqual(updating_values[\u0027name\u0027],"},{"line_number":91,"context_line":"                         updated_values[\u0027name\u0027])"},{"line_number":92,"context_line":"        self.assertEqual(updating_values[\u0027min_prefixlen\u0027],"},{"line_number":93,"context_line":"                         updated_values[\u0027min_prefixlen\u0027])"},{"line_number":94,"context_line":"        self.assertEqual(updating_values[\u0027max_prefixlen\u0027],"}],"source_content_type":"text/x-python","patch_set":6,"id":"da9b358b_1fd78324","line":91,"updated":"2015-03-31 01:54:54.000000000","message":"I find these names easy to confuse, can you pick something more unique than \"updat...\" for one of them?","commit_id":"a9a56b9412e2a915a18f7a469d79724c0f8619ef"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"ab02ea47076343654f5df4b45ac610a89bb61304","unresolved":false,"context_lines":[{"line_number":88,"context_line":"    def _check_equality_updated_subnetpool(self, updating_values,"},{"line_number":89,"context_line":"                                           updated_values):"},{"line_number":90,"context_line":"        self.assertEqual(updating_values[\u0027name\u0027],"},{"line_number":91,"context_line":"                         updated_values[\u0027name\u0027])"},{"line_number":92,"context_line":"        self.assertEqual(updating_values[\u0027min_prefixlen\u0027],"},{"line_number":93,"context_line":"                         updated_values[\u0027min_prefixlen\u0027])"},{"line_number":94,"context_line":"        self.assertEqual(updating_values[\u0027max_prefixlen\u0027],"}],"source_content_type":"text/x-python","patch_set":6,"id":"da9b358b_50ba8c24","line":91,"in_reply_to":"da9b358b_1fd78324","updated":"2015-03-31 12:11:07.000000000","message":"The author probably tried to clear the confusion that led to my comment in pset5...\n\nconsider:\nupdating_values -\u003e expected_values\nupdated_values -\u003e updated_pool  (because that\u0027s a whole subnetpool","commit_id":"a9a56b9412e2a915a18f7a469d79724c0f8619ef"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"e788b622b9f7395da0c5d3d30060dfefdccf6dfc","unresolved":false,"context_lines":[{"line_number":189,"context_line":"    ip_version \u003d 6"},{"line_number":190,"context_line":"    subnet_cidr \u003d \u00272003::/64\u0027"},{"line_number":191,"context_line":"    new_prefix \u003d u\u00272005::/64\u0027"},{"line_number":192,"context_line":"    larger_prefix \u003d u\u00272003::/32\u0027"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"    @classmethod"},{"line_number":195,"context_line":"    def resource_setup(cls):"}],"source_content_type":"text/x-python","patch_set":6,"id":"da9b358b_1f62e3ad","line":192,"updated":"2015-03-31 01:54:54.000000000","message":"nit: I always prefer the documentation prefix, 2001:db8::/32, so maybe 2001:db8:3::/64, 2001:db8:5::/64 and the /32 as well ?","commit_id":"a9a56b9412e2a915a18f7a469d79724c0f8619ef"}],"neutron/tests/tempest/api/network/test_subnetpools_negative.py":[{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"f6ea844accb3954bc77ec5507f5f9df5af019557","unresolved":false,"context_lines":[{"line_number":27,"context_line":"SUBNETPOOL_NAME \u003d \u0027smoke-subnetpool\u0027"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"class SubnetPoolsNegativeTestJSON(base.BaseNetworkTest):"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    smaller_prefix \u003d u\u002710.11.12.0/26\u0027"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"da9b358b_ac040f7e","line":30,"updated":"2015-03-30 12:52:03.000000000","message":"I was expecting to see also some test regarding invalid settings of mix/max/default prefixlen","commit_id":"d7e44857e131ed554b9566f7c68d7796f7b325f8"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"f6ea844accb3954bc77ec5507f5f9df5af019557","unresolved":false,"context_lines":[{"line_number":49,"context_line":"            raise cls.skipException(msg)"},{"line_number":50,"context_line":"        cls.admin_client \u003d cls.os_adm.network_client"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def _create_subnetpool(self, client, pool_values\u003dNone):"},{"line_number":53,"context_line":"        subnetpool_data \u003d copy.deepcopy(self._subnetpool_data)"},{"line_number":54,"context_line":"        if pool_values:"},{"line_number":55,"context_line":"            subnetpool_data[\u0027subnetpool\u0027].update(pool_values)"}],"source_content_type":"text/x-python","patch_set":5,"id":"da9b358b_ec9fb75d","line":52,"updated":"2015-03-30 12:52:03.000000000","message":"are you able to use the _create_subnetpool from the other test case and avoid writing another version of it here?","commit_id":"d7e44857e131ed554b9566f7c68d7796f7b325f8"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"f6ea844accb3954bc77ec5507f5f9df5af019557","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    @test.attr(type\u003d[\u0027negative\u0027, \u0027smoke\u0027])"},{"line_number":69,"context_line":"    @test.idempotent_id(\u0027dc9336e5-f28f-4658-a0b0-cc79e607007d\u0027)"},{"line_number":70,"context_line":"    def test_tenant_get_none_shared_admin_subnetpool(self):"},{"line_number":71,"context_line":"        pool_id \u003d self._create_subnetpool(self.admin_client)"},{"line_number":72,"context_line":"        self.addCleanup(self.admin_client.delete_subnetpool, pool_id)"},{"line_number":73,"context_line":"        # None-shared admin subnetpool cannot be retrieved by tenant user."}],"source_content_type":"text/x-python","patch_set":5,"id":"da9b358b_4c9ea357","line":70,"updated":"2015-03-30 12:52:03.000000000","message":"is there a difference in your mind between none_shared and not_shared? the latter seems to make more sense to me","commit_id":"d7e44857e131ed554b9566f7c68d7796f7b325f8"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"f6ea844accb3954bc77ec5507f5f9df5af019557","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    @test.attr(type\u003d[\u0027negative\u0027, \u0027smoke\u0027])"},{"line_number":85,"context_line":"    @test.idempotent_id(\u0027b500d853-1942-430c-8bc1-c5478f4eda01\u0027)"},{"line_number":86,"context_line":"    def test_tenant_delete_admin_subnetpool(self):"},{"line_number":87,"context_line":"        pool_id \u003d self._create_subnetpool(self.admin_client)"},{"line_number":88,"context_line":"        self.addCleanup(self.admin_client.delete_subnetpool, pool_id)"},{"line_number":89,"context_line":"        self.assertRaises(lib_exc.NotFound, self.client.delete_subnetpool,"}],"source_content_type":"text/x-python","patch_set":5,"id":"da9b358b_8cbb8bc4","line":86,"updated":"2015-03-30 12:52:03.000000000","message":"same comment as in the other module regarding verifying authz policies rather than the API itself.","commit_id":"d7e44857e131ed554b9566f7c68d7796f7b325f8"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"f6ea844accb3954bc77ec5507f5f9df5af019557","unresolved":false,"context_lines":[{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    @test.attr(type\u003d[\u0027negative\u0027, \u0027smoke\u0027])"},{"line_number":102,"context_line":"    @test.idempotent_id(\u00274be84d30-60ca-4bd3-8512-db5b36ce1378\u0027)"},{"line_number":103,"context_line":"    def test_update_non_existent_network(self):"},{"line_number":104,"context_line":"        non_exist_id \u003d data_utils.rand_name(\u0027subnetpool\u0027)"},{"line_number":105,"context_line":"        self.assertRaises(lib_exc.NotFound, self.client.update_subnetpool,"},{"line_number":106,"context_line":"                          non_exist_id, self._subnetpool_data)"}],"source_content_type":"text/x-python","patch_set":5,"id":"da9b358b_ecf2179a","line":103,"updated":"2015-03-30 12:52:03.000000000","message":"network?\nis this cut \u0026 paste gone wrong?","commit_id":"d7e44857e131ed554b9566f7c68d7796f7b325f8"},{"author":{"_account_id":12524,"name":"Zengfa Gao","email":"zengfa.gao@hp.com","username":"zengfagao"},"change_message_id":"40c6e78281600b12b1d361506c844cbb287a8ee7","unresolved":false,"context_lines":[{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    @test.attr(type\u003d[\u0027negative\u0027, \u0027smoke\u0027])"},{"line_number":102,"context_line":"    @test.idempotent_id(\u00274be84d30-60ca-4bd3-8512-db5b36ce1378\u0027)"},{"line_number":103,"context_line":"    def test_update_non_existent_network(self):"},{"line_number":104,"context_line":"        non_exist_id \u003d data_utils.rand_name(\u0027subnetpool\u0027)"},{"line_number":105,"context_line":"        self.assertRaises(lib_exc.NotFound, self.client.update_subnetpool,"},{"line_number":106,"context_line":"                          non_exist_id, self._subnetpool_data)"}],"source_content_type":"text/x-python","patch_set":5,"id":"da9b358b_29034c75","line":103,"in_reply_to":"da9b358b_ecf2179a","updated":"2015-03-30 14:34:46.000000000","message":"Done","commit_id":"d7e44857e131ed554b9566f7c68d7796f7b325f8"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"e788b622b9f7395da0c5d3d30060dfefdccf6dfc","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2015 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":6,"id":"da9b358b_dfaebb97","line":1,"updated":"2015-03-31 01:54:54.000000000","message":"# Copyright 2015 Hewlett-Packard Development Company, L.P.","commit_id":"a9a56b9412e2a915a18f7a469d79724c0f8619ef"}],"neutron/tests/tempest/services/network/json/network_client.py":[{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"6320631074d96323e52d0a7bb9900ff6719f20b7","unresolved":false,"context_lines":[{"line_number":176,"context_line":"        resp, body \u003d self.post(uri, body)"},{"line_number":177,"context_line":"        body \u003d {\u0027subnetpool\u0027: self.deserialize_list(body)}"},{"line_number":178,"context_line":"        self.expected_success(201, resp.status)"},{"line_number":179,"context_line":"        return service_client.ResponseBody(resp, body)"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"    def get_subnetpool(self, id):"},{"line_number":182,"context_line":"        uri \u003d self.get_uri(\"subnetpools\")"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa963961_449e7e57","line":179,"updated":"2015-03-27 08:17:39.000000000","message":"I\u0027m not sure we need this. As we have _creater,  _updater, _shower and _deleter. This can be done automaticly, can you check this?","commit_id":"4c6f5fb2a93cfeb6ad6ea7148ac6ce07dbd6da90"},{"author":{"_account_id":12524,"name":"Zengfa Gao","email":"zengfa.gao@hp.com","username":"zengfagao"},"change_message_id":"6c20b9d90d5d7a2aac260ed997eefdc5c4ee7dc0","unresolved":false,"context_lines":[{"line_number":176,"context_line":"        resp, body \u003d self.post(uri, body)"},{"line_number":177,"context_line":"        body \u003d {\u0027subnetpool\u0027: self.deserialize_list(body)}"},{"line_number":178,"context_line":"        self.expected_success(201, resp.status)"},{"line_number":179,"context_line":"        return service_client.ResponseBody(resp, body)"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"    def get_subnetpool(self, id):"},{"line_number":182,"context_line":"        uri \u003d self.get_uri(\"subnetpools\")"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa963961_ca772c01","line":179,"in_reply_to":"fa963961_449e7e57","updated":"2015-03-27 14:46:41.000000000","message":"I think we still need this one to talk with REST API.","commit_id":"4c6f5fb2a93cfeb6ad6ea7148ac6ce07dbd6da90"}]}
