)]}'
{"tempest/api/compute/test_tenant_networks.py":[{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"9573c4643ea52bada86d3a48490b80846e8dfad5","unresolved":false,"context_lines":[{"line_number":31,"context_line":"    @test.idempotent_id(\u0027edfea98e-bbe3-4c7a-9739-87b986baff26\u0027)"},{"line_number":32,"context_line":"    @testtools.skipIf(CONF.service_available.neutron,"},{"line_number":33,"context_line":"                      \"Skipped since this test does not work well with \""},{"line_number":34,"context_line":"                      \"networks being dinamycally created and destroyed \""},{"line_number":35,"context_line":"                      \"as Neutron does\")"},{"line_number":36,"context_line":"    def test_list_show_tenant_networks(self):"},{"line_number":37,"context_line":"        tenant_networks \u003d self.client.list_tenant_networks()"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_c5d3acd4","line":34,"updated":"2015-06-25 19:01:23.000000000","message":"dynamically*","commit_id":"c46114f46f04fb368332e3dcd7ecadd3df66d182"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"886d64e28d459f741b66a4416777c662bb55e9f1","unresolved":false,"context_lines":[{"line_number":31,"context_line":"    @test.idempotent_id(\u0027edfea98e-bbe3-4c7a-9739-87b986baff26\u0027)"},{"line_number":32,"context_line":"    @testtools.skipIf(CONF.service_available.neutron,"},{"line_number":33,"context_line":"                      \"Skipped since this test does not work well with \""},{"line_number":34,"context_line":"                      \"networks being dinamycally created and destroyed \""},{"line_number":35,"context_line":"                      \"as Neutron does\")"},{"line_number":36,"context_line":"    def test_list_show_tenant_networks(self):"},{"line_number":37,"context_line":"        tenant_networks \u003d self.client.list_tenant_networks()"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_eca7b409","line":34,"in_reply_to":"fa32b979_c5d3acd4","updated":"2015-06-25 22:21:41.000000000","message":"congratulations!","commit_id":"c46114f46f04fb368332e3dcd7ecadd3df66d182"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"e0a4b62d0ab3a1ac464067dd6b75b4615a870a2d","unresolved":false,"context_lines":[{"line_number":31,"context_line":"    @test.idempotent_id(\u0027edfea98e-bbe3-4c7a-9739-87b986baff26\u0027)"},{"line_number":32,"context_line":"    @testtools.skipIf(CONF.service_available.neutron,"},{"line_number":33,"context_line":"                      \"Skipped since this test does not work well with \""},{"line_number":34,"context_line":"                      \"networks being dinamycally created and destroyed \""},{"line_number":35,"context_line":"                      \"as Neutron does\")"},{"line_number":36,"context_line":"    def test_list_show_tenant_networks(self):"},{"line_number":37,"context_line":"        tenant_networks \u003d self.client.list_tenant_networks()"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_ff3d0dde","line":34,"in_reply_to":"fa32b979_eca7b409","updated":"2015-06-26 07:15:36.000000000","message":"my feelings were hurt because i spent time tracking down this issue only to find you beat me to it! so i took it out on this spelling error. :P","commit_id":"c46114f46f04fb368332e3dcd7ecadd3df66d182"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"d1acc9505fcf5e63c7a5fe5180088abe670a1a85","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    def setup_credentials(cls):"},{"line_number":28,"context_line":"        # TODO(armax): get rid of this step when blueprint"},{"line_number":29,"context_line":"        # https://blueprints.launchpad.net/neutron/+spec/get-me-a-network"},{"line_number":30,"context_line":"        # is implemented."},{"line_number":31,"context_line":"        cls.set_network_resources(neutron\u003dTrue)"},{"line_number":32,"context_line":"        super(NetworksTestJSON, cls).setup_credentials()"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"da20952f_b552dbdc","line":30,"updated":"2015-09-03 21:52:04.000000000","message":"I\u0027m not sure you can, unless in every neutron configuration a network is expected to be created automatically. There is a config flag already to turn off the dynamic creation bits globally I would expect that to be leveraged in configurations where that is in place. I would recommend dropping this todo.\n\nFWIW, I described how to do that somewhere in: http://docs.openstack.org/developer/tempest/configuration.html#networking","commit_id":"4d20cbed4621cc69105c583513104af37b37c422"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"414ea42585c2a717ec40baca74124950160e15ab","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    def setup_credentials(cls):"},{"line_number":28,"context_line":"        # TODO(armax): get rid of this step when blueprint"},{"line_number":29,"context_line":"        # https://blueprints.launchpad.net/neutron/+spec/get-me-a-network"},{"line_number":30,"context_line":"        # is implemented."},{"line_number":31,"context_line":"        cls.set_network_resources(neutron\u003dTrue)"},{"line_number":32,"context_line":"        super(NetworksTestJSON, cls).setup_credentials()"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"da20952f_f58a93be","line":30,"in_reply_to":"da20952f_b552dbdc","updated":"2015-09-03 22:11:12.000000000","message":"ok, I am fuzzy on how get-me-a-network would work, I thought it was worth mentioning, but I\u0027ll remove it.","commit_id":"4d20cbed4621cc69105c583513104af37b37c422"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"7fcd51d7198beed890b5f3e1a6e93bc0dca15218","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    def test_list_show_tenant_networks(self):"},{"line_number":37,"context_line":"        # Fetch all networks that are visible to the tenant: this may include"},{"line_number":38,"context_line":"        # shared and external networks"},{"line_number":39,"context_line":"        tenant_networks \u003d self.client.list_tenant_networks()[\u0027networks\u0027]"},{"line_number":40,"context_line":"        self.assertNotEmpty(tenant_networks, \"No tenant networks found.\")"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        tenant_network \u003d (self.client.show_tenant_network(self.network[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"da20952f_15dce771","line":39,"updated":"2015-09-03 21:49:14.000000000","message":"maybe it makes sense to assert that self.network[\u0027id\u0027] is in the list of tenant_networks?","commit_id":"4d20cbed4621cc69105c583513104af37b37c422"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"f446cd9c368ee49a1c92fd36a56ca637b7d52f5b","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    def test_list_show_tenant_networks(self):"},{"line_number":37,"context_line":"        # Fetch all networks that are visible to the tenant: this may include"},{"line_number":38,"context_line":"        # shared and external networks"},{"line_number":39,"context_line":"        tenant_networks \u003d self.client.list_tenant_networks()[\u0027networks\u0027]"},{"line_number":40,"context_line":"        self.assertNotEmpty(tenant_networks, \"No tenant networks found.\")"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        tenant_network \u003d (self.client.show_tenant_network(self.network[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"da20952f_555a5ff3","line":39,"in_reply_to":"da20952f_15dce771","updated":"2015-09-03 21:50:59.000000000","message":"that\u0027s another way to rewrite this test, yes; would we still show in this case?","commit_id":"4d20cbed4621cc69105c583513104af37b37c422"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"908a3f4ca26ab480b7fd48db470bdb547b985420","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    def test_list_show_tenant_networks(self):"},{"line_number":37,"context_line":"        # Fetch all networks that are visible to the tenant: this may include"},{"line_number":38,"context_line":"        # shared and external networks"},{"line_number":39,"context_line":"        tenant_networks \u003d self.client.list_tenant_networks()[\u0027networks\u0027]"},{"line_number":40,"context_line":"        self.assertNotEmpty(tenant_networks, \"No tenant networks found.\")"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        tenant_network \u003d (self.client.show_tenant_network(self.network[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"da20952f_d5fd0fb2","line":39,"in_reply_to":"da20952f_555a5ff3","updated":"2015-09-03 21:53:20.000000000","message":"yeah, still show because that\u0027s a different API call. That way we cover \"list\" and \"show\" like the test name seems to imply.","commit_id":"4d20cbed4621cc69105c583513104af37b37c422"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"d1acc9505fcf5e63c7a5fe5180088abe670a1a85","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        # Fetch all networks that are visible to the tenant: this may include"},{"line_number":38,"context_line":"        # shared and external networks"},{"line_number":39,"context_line":"        tenant_networks \u003d self.client.list_tenant_networks()[\u0027networks\u0027]"},{"line_number":40,"context_line":"        self.assertNotEmpty(tenant_networks, \"No tenant networks found.\")"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        tenant_network \u003d (self.client.show_tenant_network(self.network[\u0027id\u0027])"},{"line_number":43,"context_line":"                          [\u0027network\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"da20952f_759c43c0","line":40,"updated":"2015-09-03 21:52:04.000000000","message":"I would make this an assertIn or something for self.network","commit_id":"4d20cbed4621cc69105c583513104af37b37c422"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"414ea42585c2a717ec40baca74124950160e15ab","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        # Fetch all networks that are visible to the tenant: this may include"},{"line_number":38,"context_line":"        # shared and external networks"},{"line_number":39,"context_line":"        tenant_networks \u003d self.client.list_tenant_networks()[\u0027networks\u0027]"},{"line_number":40,"context_line":"        self.assertNotEmpty(tenant_networks, \"No tenant networks found.\")"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        tenant_network \u003d (self.client.show_tenant_network(self.network[\u0027id\u0027])"},{"line_number":43,"context_line":"                          [\u0027network\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"da20952f_35b32b9c","line":40,"in_reply_to":"da20952f_759c43c0","updated":"2015-09-03 22:11:12.000000000","message":"Done","commit_id":"4d20cbed4621cc69105c583513104af37b37c422"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"d1acc9505fcf5e63c7a5fe5180088abe670a1a85","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        tenant_networks \u003d self.client.list_tenant_networks()[\u0027networks\u0027]"},{"line_number":40,"context_line":"        self.assertNotEmpty(tenant_networks, \"No tenant networks found.\")"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        tenant_network \u003d (self.client.show_tenant_network(self.network[\u0027id\u0027])"},{"line_number":43,"context_line":"                          [\u0027network\u0027])"},{"line_number":44,"context_line":"        self.assertEqual(self.network[\u0027id\u0027], tenant_network[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"da20952f_15714776","line":42,"updated":"2015-09-03 21:52:04.000000000","message":"I think the intent of the test was to verify that doing a get on the results from the list command worked and were the same. It seems like a strange thing to verify but maybe we should keep it the same. I don\u0027t feel strongly one way or the other about it though.","commit_id":"4d20cbed4621cc69105c583513104af37b37c422"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"414ea42585c2a717ec40baca74124950160e15ab","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        tenant_networks \u003d self.client.list_tenant_networks()[\u0027networks\u0027]"},{"line_number":40,"context_line":"        self.assertNotEmpty(tenant_networks, \"No tenant networks found.\")"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        tenant_network \u003d (self.client.show_tenant_network(self.network[\u0027id\u0027])"},{"line_number":43,"context_line":"                          [\u0027network\u0027])"},{"line_number":44,"context_line":"        self.assertEqual(self.network[\u0027id\u0027], tenant_network[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"da20952f_55b81f75","line":42,"in_reply_to":"da20952f_15714776","updated":"2015-09-03 22:11:12.000000000","message":"the results from list_tenant_networks may be stable by the time we hit \u0027show\u0027, so not sure how we can keep this exactly the same unless we wrap this in a try_except. Is this what you\u0027re suggesting?","commit_id":"4d20cbed4621cc69105c583513104af37b37c422"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"c4cc16ce948439eb3425c35727ea27fe2db00fc1","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        tenant_networks \u003d self.client.list_tenant_networks()[\u0027networks\u0027]"},{"line_number":40,"context_line":"        self.assertNotEmpty(tenant_networks, \"No tenant networks found.\")"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        tenant_network \u003d (self.client.show_tenant_network(self.network[\u0027id\u0027])"},{"line_number":43,"context_line":"                          [\u0027network\u0027])"},{"line_number":44,"context_line":"        self.assertEqual(self.network[\u0027id\u0027], tenant_network[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"da20952f_68d1c656","line":42,"in_reply_to":"da20952f_55b81f75","updated":"2015-09-03 22:15:14.000000000","message":"right, assuming the results don\u0027t change is what made this test racey in the first place. It seems like we should only be running show on what we know should be there (i.e. what is created by this test).","commit_id":"4d20cbed4621cc69105c583513104af37b37c422"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"61c7c6a82b6552a484d986aea6ba382d7667157f","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"        for net in tenant_networks:"},{"line_number":44,"context_line":"            if net \u003d\u003d self.network[\u0027id\u0027]:"},{"line_number":45,"context_line":"                self.client.show_tenant_network(net)"}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_887f7adf","line":45,"updated":"2015-09-03 22:35:12.000000000","message":"we already know that self.network is in the tenant_network list on L40. why not just skip the iteration (L43-L45) and do self.client.show_tenant_network(self.network)?","commit_id":"a3b118d5d7bd2ddb8ea61d897b46fa14c94e98ae"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"87ec836a2883deae247b0930ea063a455ba759c8","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"        for net in tenant_networks:"},{"line_number":44,"context_line":"            if net \u003d\u003d self.network[\u0027id\u0027]:"},{"line_number":45,"context_line":"                self.client.show_tenant_network(net)"}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_c87b32bd","line":45,"in_reply_to":"da20952f_086cca33","updated":"2015-09-03 22:43:51.000000000","message":"I read it but I don\u0027t understand what it\u0027s buying us. L40 ensures that it\u0027s in the list so the \u0027if\u0027 statement will always be triggered during the iteration...","commit_id":"a3b118d5d7bd2ddb8ea61d897b46fa14c94e98ae"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"0f8a3aca3141f85a94747748d195bb7367749085","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"        for net in tenant_networks:"},{"line_number":44,"context_line":"            if net \u003d\u003d self.network[\u0027id\u0027]:"},{"line_number":45,"context_line":"                self.client.show_tenant_network(net)"}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_c67483ff","line":45,"in_reply_to":"da20952f_4bd39cd5","updated":"2015-09-03 23:49:44.000000000","message":"Yeah the loop is useless, when I mentioned this in IRC I just meant this would be what the original intent of the test but deterministic. Not that we should necessarily do it this way. It\u0027s my fault for not being clear.","commit_id":"a3b118d5d7bd2ddb8ea61d897b46fa14c94e98ae"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"ddbc31ae0c43c6b17c4f48f190315860f538a96d","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"        for net in tenant_networks:"},{"line_number":44,"context_line":"            if net \u003d\u003d self.network[\u0027id\u0027]:"},{"line_number":45,"context_line":"                self.client.show_tenant_network(net)"}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_086cca33","line":45,"in_reply_to":"da20952f_887f7adf","updated":"2015-09-03 22:36:19.000000000","message":"see discussion on openstack-qa","commit_id":"a3b118d5d7bd2ddb8ea61d897b46fa14c94e98ae"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"4e12b0af4bb950c3cb49d6d4919af384e5a96cb7","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"        for net in tenant_networks:"},{"line_number":44,"context_line":"            if net \u003d\u003d self.network[\u0027id\u0027]:"},{"line_number":45,"context_line":"                self.client.show_tenant_network(net)"}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_469cf30d","line":45,"in_reply_to":"da20952f_c67483ff","updated":"2015-09-03 23:53:31.000000000","message":"ok, new patch coming right up.","commit_id":"a3b118d5d7bd2ddb8ea61d897b46fa14c94e98ae"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"ebfd2d4eea8491bc0a8d86623c2df04c2ca2094e","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"        for net in tenant_networks:"},{"line_number":44,"context_line":"            if net \u003d\u003d self.network[\u0027id\u0027]:"},{"line_number":45,"context_line":"                self.client.show_tenant_network(net)"}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_4bd39cd5","line":45,"in_reply_to":"da20952f_c87b32bd","updated":"2015-09-03 23:15:32.000000000","message":"well, I sort of agree...the loop feels unnecessary. This is equivalent to: \n\n  self.client.show_tenant_network(self.network[\u0027id\u0027]) \n\nI\u0027ll let Matthew chime in. I am ok one way or another, unless I completely missed his intentions.","commit_id":"a3b118d5d7bd2ddb8ea61d897b46fa14c94e98ae"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"51533cc61ef0ab15bea83cb94912e7be719d4d67","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    @classmethod"},{"line_number":27,"context_line":"    def setup_credentials(cls):"},{"line_number":28,"context_line":"        cls.set_network_resources(network\u003dTrue)"},{"line_number":29,"context_line":"        cls.network \u003d cls.get_tenant_network()"},{"line_number":30,"context_line":"        super(NetworksTestJSON, cls).setup_credentials()"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    @test.idempotent_id(\u0027edfea98e-bbe3-4c7a-9739-87b986baff26\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"da20952f_c1e46d3d","line":29,"updated":"2015-09-04 00:08:45.000000000","message":"I\u0027m not sure this will actually work here. At a minimum I think it has to be under the super() because that\u0027s what actually does the allocation. Although normally this would be put in something like::\n\n  @classmethod\n  def resource_setup(cls):\n       super(NetworksTestJSON, cls).setup_credentials()\n       cls.network \u003d cls.get_tenant_network()","commit_id":"db58bea3b6dba16fb82137189c88ba37b650092a"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"7750e3d367e395918c01a2b42d97f4177b149994","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    @classmethod"},{"line_number":27,"context_line":"    def setup_credentials(cls):"},{"line_number":28,"context_line":"        cls.set_network_resources(network\u003dTrue)"},{"line_number":29,"context_line":"        cls.network \u003d cls.get_tenant_network()"},{"line_number":30,"context_line":"        super(NetworksTestJSON, cls).setup_credentials()"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    @test.idempotent_id(\u0027edfea98e-bbe3-4c7a-9739-87b986baff26\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"da20952f_819675ee","line":29,"in_reply_to":"da20952f_217be929","updated":"2015-09-04 00:27:55.000000000","message":"There\u0027s resource_setup already defined in 20. How do you suggest the two can be combined?\n\nI think this works as it is, and I couldn\u0027t find a way to combine both setup_credentials and resource_setup and use set_network_resources at the same time. Input is welcome.","commit_id":"db58bea3b6dba16fb82137189c88ba37b650092a"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"874d014151eaf1da6bc88e9df12fbff2c74c485a","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    @classmethod"},{"line_number":27,"context_line":"    def setup_credentials(cls):"},{"line_number":28,"context_line":"        cls.set_network_resources(network\u003dTrue)"},{"line_number":29,"context_line":"        cls.network \u003d cls.get_tenant_network()"},{"line_number":30,"context_line":"        super(NetworksTestJSON, cls).setup_credentials()"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    @test.idempotent_id(\u0027edfea98e-bbe3-4c7a-9739-87b986baff26\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"da20952f_217be929","line":29,"in_reply_to":"da20952f_c1e46d3d","updated":"2015-09-04 00:19:09.000000000","message":"So you don\u0027t want to call set_network_resources anymore?","commit_id":"db58bea3b6dba16fb82137189c88ba37b650092a"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"51533cc61ef0ab15bea83cb94912e7be719d4d67","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        super(NetworksTestJSON, cls).setup_credentials()"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    @test.idempotent_id(\u0027edfea98e-bbe3-4c7a-9739-87b986baff26\u0027)"},{"line_number":33,"context_line":"    @test.services(\u0027network\u0027)"},{"line_number":34,"context_line":"    def test_list_show_tenant_networks(self):"},{"line_number":35,"context_line":"        # Fetch all networks that are visible to the tenant: this may include"},{"line_number":36,"context_line":"        # shared and external networks"}],"source_content_type":"text/x-python","patch_set":7,"id":"da20952f_e1e1712b","line":33,"updated":"2015-09-04 00:08:45.000000000","message":"oh, good call on this I guess it does need a service tag.","commit_id":"db58bea3b6dba16fb82137189c88ba37b650092a"}]}
