)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1247,"name":"Mark McLoughlin","email":"markmc@redhat.com","username":"markmc"},"change_message_id":"561010c5af45b36bc879196ed6f00ef9708cd653","unresolved":false,"context_lines":[{"line_number":20,"context_line":"delete the temp directory that we create."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"make sure none of the tests that have MiniDNS enabled leak"},{"line_number":23,"context_line":"directories/files in /tmp"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Bonus! - Fixes LP Bug #1081750"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"AAAAMH%2F%2FsD4%3D","line":23,"updated":"2012-11-30 13:24:38.000000000","message":"You know, you can clean up your commit message as the patch evolves rather than just appending to it, right? :)\n\nhttp://wiki.openstack.org/GitCommitMessages","commit_id":"b099f7c118e25bc5aaeed3dc4a6932b1548311cf"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"6759a0b7fe01764075f47117d7eee617c66233ca","unresolved":false,"context_lines":[{"line_number":20,"context_line":"delete the temp directory that we create."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"make sure none of the tests that have MiniDNS enabled leak"},{"line_number":23,"context_line":"directories/files in /tmp"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Bonus! - Fixes LP Bug #1081750"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"AAAAMH%2F%2FsB0%3D","line":23,"in_reply_to":"AAAAMH%2F%2FsD4%3D","updated":"2012-11-30 14:09:31.000000000","message":"will fix!","commit_id":"b099f7c118e25bc5aaeed3dc4a6932b1548311cf"}],"nova/network/minidns.py":[{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"794f5ac021486463c4ac47f13aab1861a2ca587d","unresolved":false,"context_lines":[{"line_number":39,"context_line":"            self.filename \u003d os.path.join(CONF.logdir, \"dnstest.txt\")"},{"line_number":40,"context_line":"        else:"},{"line_number":41,"context_line":"            self.filename \u003d os.path.join(tempfile.mkdtemp(), \"dnstest.txt\")"},{"line_number":42,"context_line":"        LOG.info(_(\u0027minidns file is |%s|\u0027), self.filename)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        if not os.path.exists(self.filename):"},{"line_number":45,"context_line":"            f \u003d open(self.filename, \"w+\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAMH%2F%2FwKg%3D","line":42,"updated":"2012-11-27 06:06:42.000000000","message":"This should probably be debug.","commit_id":"beb51a3ba9c6b91d0b1a83711f8c61971b71f533"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"3d05fa1068754cbfd86c38c914a557d28649ad6a","unresolved":false,"context_lines":[{"line_number":39,"context_line":"            self.filename \u003d os.path.join(CONF.logdir, \"dnstest.txt\")"},{"line_number":40,"context_line":"        else:"},{"line_number":41,"context_line":"            self.filename \u003d os.path.join(tempfile.mkdtemp(), \"dnstest.txt\")"},{"line_number":42,"context_line":"        LOG.info(_(\u0027minidns file is |%s|\u0027), self.filename)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        if not os.path.exists(self.filename):"},{"line_number":45,"context_line":"            f \u003d open(self.filename, \"w+\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAMH%2F%2Fv%2BM%3D","line":42,"in_reply_to":"AAAAMH%2F%2FwKg%3D","updated":"2012-11-28 00:38:13.000000000","message":"will do","commit_id":"beb51a3ba9c6b91d0b1a83711f8c61971b71f533"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"794f5ac021486463c4ac47f13aab1861a2ca587d","unresolved":false,"context_lines":[{"line_number":113,"context_line":"        if not deleted:"},{"line_number":114,"context_line":"            LOG.warn(_(\u0027Cannot delete entry |%s|\u0027),"},{"line_number":115,"context_line":"                self.qualify(name, domain).lower())"},{"line_number":116,"context_line":"            raise exception.NotFound"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"    def modify_address(self, name, address, domain):"},{"line_number":119,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAMH%2F%2FwKc%3D","line":116,"updated":"2012-11-27 06:06:42.000000000","message":"Is there a good reason that these files can\u0027t be in a more easily parsed format like json?","commit_id":"beb51a3ba9c6b91d0b1a83711f8c61971b71f533"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"3d05fa1068754cbfd86c38c914a557d28649ad6a","unresolved":false,"context_lines":[{"line_number":113,"context_line":"        if not deleted:"},{"line_number":114,"context_line":"            LOG.warn(_(\u0027Cannot delete entry |%s|\u0027),"},{"line_number":115,"context_line":"                self.qualify(name, domain).lower())"},{"line_number":116,"context_line":"            raise exception.NotFound"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"    def modify_address(self, name, address, domain):"},{"line_number":119,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAMH%2F%2Fv%2BI%3D","line":116,"in_reply_to":"AAAAMH%2F%2FwKc%3D","updated":"2012-11-28 00:38:13.000000000","message":"let me get through this patch set and will add a fresh bug to switch formats for this existing code","commit_id":"beb51a3ba9c6b91d0b1a83711f8c61971b71f533"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"794f5ac021486463c4ac47f13aab1861a2ca587d","unresolved":false,"context_lines":[{"line_number":162,"context_line":"    def delete_dns_file(self):"},{"line_number":163,"context_line":"        LOG.warn(_(\"This shouldn\u0027t be getting called except during testing.\"))"},{"line_number":164,"context_line":"        if os.path.exists(self.filename):"},{"line_number":165,"context_line":"            os.remove(self.filename)"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    def create_domain(self, fqdomain):"},{"line_number":168,"context_line":"        if self.get_entries_by_name(fqdomain, \u0027\u0027):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAMH%2F%2FwKY%3D","line":165,"updated":"2012-11-27 06:06:42.000000000","message":"I don\u0027t love this method. Could perhaps an exception be raised instead that the tests Catch / Ignore?","commit_id":"beb51a3ba9c6b91d0b1a83711f8c61971b71f533"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"3d05fa1068754cbfd86c38c914a557d28649ad6a","unresolved":false,"context_lines":[{"line_number":162,"context_line":"    def delete_dns_file(self):"},{"line_number":163,"context_line":"        LOG.warn(_(\"This shouldn\u0027t be getting called except during testing.\"))"},{"line_number":164,"context_line":"        if os.path.exists(self.filename):"},{"line_number":165,"context_line":"            os.remove(self.filename)"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    def create_domain(self, fqdomain):"},{"line_number":168,"context_line":"        if self.get_entries_by_name(fqdomain, \u0027\u0027):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAMH%2F%2Fv%2BE%3D","line":165,"in_reply_to":"AAAAMH%2F%2FwKY%3D","updated":"2012-11-28 00:38:13.000000000","message":"This method is called only by the test harness to cleanup the file. Earlier patch used to litter the test harness with os.remove everywhere, i just consolidated it here","commit_id":"beb51a3ba9c6b91d0b1a83711f8c61971b71f533"},{"author":{"_account_id":1561,"name":"Russell Bryant","email":"rbryant@redhat.com","username":"russellb"},"change_message_id":"3edcf3c76b14c5d5b7d49bee3e5ce1b1ea03d0a2","unresolved":false,"context_lines":[{"line_number":162,"context_line":"    def delete_dns_file(self):"},{"line_number":163,"context_line":"        LOG.warn(_(\"This shouldn\u0027t be getting called except during testing.\"))"},{"line_number":164,"context_line":"        if os.path.exists(self.filename):"},{"line_number":165,"context_line":"            os.remove(self.filename)"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    def create_domain(self, fqdomain):"},{"line_number":168,"context_line":"        if self.get_entries_by_name(fqdomain, \u0027\u0027):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAMH%2F%2Ftp8%3D","line":165,"updated":"2012-11-29 00:45:39.000000000","message":"I think this should be updated to remove the temporary directory if created","commit_id":"0e351e1f7a1fc2690da2386bb4c26071a349241b"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"b329d9375619ab5f82f3a6e278422a72c7773fb1","unresolved":false,"context_lines":[{"line_number":162,"context_line":"    def delete_dns_file(self):"},{"line_number":163,"context_line":"        LOG.warn(_(\"This shouldn\u0027t be getting called except during testing.\"))"},{"line_number":164,"context_line":"        if os.path.exists(self.filename):"},{"line_number":165,"context_line":"            os.remove(self.filename)"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    def create_domain(self, fqdomain):"},{"line_number":168,"context_line":"        if self.get_entries_by_name(fqdomain, \u0027\u0027):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAMH%2F%2FtjE%3D","line":165,"in_reply_to":"AAAAMH%2F%2Ftp8%3D","updated":"2012-11-29 03:53:07.000000000","message":"Done","commit_id":"0e351e1f7a1fc2690da2386bb4c26071a349241b"},{"author":{"_account_id":1561,"name":"Russell Bryant","email":"rbryant@redhat.com","username":"russellb"},"change_message_id":"8fcaaa1554403886744ee3b3dcf92bb6146c20b9","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    def create_entry(self, name, address, type, domain):"},{"line_number":70,"context_line":"        if name is None:"},{"line_number":71,"context_line":"            return"},{"line_number":72,"context_line":"        if type.lower() !\u003d \u0027a\u0027:"},{"line_number":73,"context_line":"            raise exception.InvalidInput(_(\"This driver only supports \""},{"line_number":74,"context_line":"                                           \"type \u0027a\u0027\"))"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAMH%2F%2FtSM%3D","line":71,"updated":"2012-11-29 14:11:10.000000000","message":"Why is this and the same change in delete_entry() needed?  The commit message doesn\u0027t seem to reference this.","commit_id":"926b489292c154e0f28456db8f504c9861191d32"},{"author":{"_account_id":1561,"name":"Russell Bryant","email":"rbryant@redhat.com","username":"russellb"},"change_message_id":"8fcaaa1554403886744ee3b3dcf92bb6146c20b9","unresolved":false,"context_lines":[{"line_number":145,"context_line":"                if entry[\u0027name\u0027].lower().endswith(domain.lower()):"},{"line_number":146,"context_line":"                    name \u003d entry[\u0027name\u0027].split(\".\")[0]"},{"line_number":147,"context_line":"                    if name not in entries:"},{"line_number":148,"context_line":"                        entries.append(name)"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"        infile.close()"},{"line_number":151,"context_line":"        return entries"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAMH%2F%2FtSI%3D","line":148,"updated":"2012-11-29 14:11:10.000000000","message":"What is this fixing?  The commit message doesn\u0027t mention whatever this was.","commit_id":"926b489292c154e0f28456db8f504c9861191d32"},{"author":{"_account_id":1561,"name":"Russell Bryant","email":"rbryant@redhat.com","username":"russellb"},"change_message_id":"b65e5533452e098ecd246d71b7359d8df222b645","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    def create_entry(self, name, address, type, domain):"},{"line_number":70,"context_line":"        if name is None:"},{"line_number":71,"context_line":"            return"},{"line_number":72,"context_line":"        if type.lower() !\u003d \u0027a\u0027:"},{"line_number":73,"context_line":"            raise exception.InvalidInput(_(\"This driver only supports \""},{"line_number":74,"context_line":"                                           \"type \u0027a\u0027\"))"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAMH%2F%2FtOc%3D","line":71,"updated":"2012-11-29 14:58:47.000000000","message":"Thanks for the commit message updates.  It sounds like this is a bug that perhaps we shouldn\u0027t be ignoring?","commit_id":"4fe3de28442a3c87ba96c1cc262ef4b5a1b15d6b"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"48ca3da4ad86d8f5c3b146e69879c6ebb0621ba4","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    def create_entry(self, name, address, type, domain):"},{"line_number":70,"context_line":"        if name is None:"},{"line_number":71,"context_line":"            return"},{"line_number":72,"context_line":"        if type.lower() !\u003d \u0027a\u0027:"},{"line_number":73,"context_line":"            raise exception.InvalidInput(_(\"This driver only supports \""},{"line_number":74,"context_line":"                                           \"type \u0027a\u0027\"))"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAMH%2F%2Fseo%3D","line":71,"in_reply_to":"AAAAMH%2F%2FtK4%3D","updated":"2012-11-29 22:49:34.000000000","message":"Done. Fixed in next patch","commit_id":"4fe3de28442a3c87ba96c1cc262ef4b5a1b15d6b"},{"author":{"_account_id":1561,"name":"Russell Bryant","email":"rbryant@redhat.com","username":"russellb"},"change_message_id":"ec19b3917c13a2b811e715ded3d19ae3fb7a8b02","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    def create_entry(self, name, address, type, domain):"},{"line_number":70,"context_line":"        if name is None:"},{"line_number":71,"context_line":"            return"},{"line_number":72,"context_line":"        if type.lower() !\u003d \u0027a\u0027:"},{"line_number":73,"context_line":"            raise exception.InvalidInput(_(\"This driver only supports \""},{"line_number":74,"context_line":"                                           \"type \u0027a\u0027\"))"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAMH%2F%2FtK4%3D","line":71,"in_reply_to":"AAAAMH%2F%2FtNI%3D","updated":"2012-11-29 15:59:41.000000000","message":"Ok, well if gate tests are failing, it seems like a real bug we shouldn\u0027t mask ...","commit_id":"4fe3de28442a3c87ba96c1cc262ef4b5a1b15d6b"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"fb1765f26a19675e58d80d83330477cf17d5eec1","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    def create_entry(self, name, address, type, domain):"},{"line_number":70,"context_line":"        if name is None:"},{"line_number":71,"context_line":"            return"},{"line_number":72,"context_line":"        if type.lower() !\u003d \u0027a\u0027:"},{"line_number":73,"context_line":"            raise exception.InvalidInput(_(\"This driver only supports \""},{"line_number":74,"context_line":"                                           \"type \u0027a\u0027\"))"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAMH%2F%2FtNI%3D","line":71,"in_reply_to":"AAAAMH%2F%2FtOc%3D","updated":"2012-11-29 15:21:38.000000000","message":"this does not show up in run_tests. shows up in the gate jobs. i have a personal TODO list with this item. Originally i had this as an exception and ran into trouble. I\u0027d prefer this patch to get merged which would make it easier for me to run with a slightly patched devstack/nova to find the other issues","commit_id":"4fe3de28442a3c87ba96c1cc262ef4b5a1b15d6b"}],"nova/tests/integrated/integrated_helpers.py":[{"author":{"_account_id":1247,"name":"Mark McLoughlin","email":"markmc@redhat.com","username":"markmc"},"change_message_id":"561010c5af45b36bc879196ed6f00ef9708cd653","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        self.scheduler \u003d self.start_service(\u0027cert\u0027)"},{"line_number":86,"context_line":"        self.network \u003d self.start_service(\u0027network\u0027)"},{"line_number":87,"context_line":"        self._dns_managers.append(self.network.instance_dns_manager)"},{"line_number":88,"context_line":"        self._dns_managers.append(self.network.floating_dns_manager)"},{"line_number":89,"context_line":"        self.scheduler \u003d self.start_service(\u0027scheduler\u0027)"},{"line_number":90,"context_line":"        self.conductor \u003d self.start_service("},{"line_number":91,"context_line":"            \u0027conductor\u0027, manager\u003d\u0027nova.conductor.manager.ConductorManager\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAMH%2F%2FsEE%3D","line":88,"updated":"2012-11-30 13:24:38.000000000","message":"This is all getting pretty ugly. Think I\u0027d like to have something cleaner before merging\n\nHow about something like this in nova/tests/utils.py\n\n  test_dns_managers \u003d []\n\n def dns_manager():\n     manager \u003d MiniDNS()\n     test_dns_managers.append(manager)\n     return manager\n\n def cleanup_dns_managers():\n     for manager in test_dns_managers:\n         manager.delete_dns_file()\n     test_dns_managers \u003d []\n\nthen you can just do:\n\n   floating_ip_dns_manager\u003d\u0027nova.tests.utils.dns_manager\u0027\n\nin fake_flags.py?","commit_id":"b099f7c118e25bc5aaeed3dc4a6932b1548311cf"},{"author":{"_account_id":1247,"name":"Mark McLoughlin","email":"markmc@redhat.com","username":"markmc"},"change_message_id":"ef021800a30d8205e218f062033c3e5a0e066778","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        self.scheduler \u003d self.start_service(\u0027cert\u0027)"},{"line_number":86,"context_line":"        self.network \u003d self.start_service(\u0027network\u0027)"},{"line_number":87,"context_line":"        self._dns_managers.append(self.network.instance_dns_manager)"},{"line_number":88,"context_line":"        self._dns_managers.append(self.network.floating_dns_manager)"},{"line_number":89,"context_line":"        self.scheduler \u003d self.start_service(\u0027scheduler\u0027)"},{"line_number":90,"context_line":"        self.conductor \u003d self.start_service("},{"line_number":91,"context_line":"            \u0027conductor\u0027, manager\u003d\u0027nova.conductor.manager.ConductorManager\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAMH%2F%2Fr%2BI%3D","line":88,"in_reply_to":"AAAAMH%2F%2FsCE%3D","updated":"2012-11-30 14:46:43.000000000","message":"I think I\u0027m suggesting quite an easy solution\n\nBy setting the config variables to a utility helper in nova.tests.utils rather than MiniDNS itself, you get a hook into the creation of the DNS manager - in that hook, you can track the DNS managers you create\n\nOne detail I missed was that you\u0027d have to do:\n\n  utils.cleanup_dns_managers()\n\nin tearDown()","commit_id":"b099f7c118e25bc5aaeed3dc4a6932b1548311cf"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"6759a0b7fe01764075f47117d7eee617c66233ca","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        self.scheduler \u003d self.start_service(\u0027cert\u0027)"},{"line_number":86,"context_line":"        self.network \u003d self.start_service(\u0027network\u0027)"},{"line_number":87,"context_line":"        self._dns_managers.append(self.network.instance_dns_manager)"},{"line_number":88,"context_line":"        self._dns_managers.append(self.network.floating_dns_manager)"},{"line_number":89,"context_line":"        self.scheduler \u003d self.start_service(\u0027scheduler\u0027)"},{"line_number":90,"context_line":"        self.conductor \u003d self.start_service("},{"line_number":91,"context_line":"            \u0027conductor\u0027, manager\u003d\u0027nova.conductor.manager.ConductorManager\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAMH%2F%2FsCE%3D","line":88,"in_reply_to":"AAAAMH%2F%2FsEE%3D","updated":"2012-11-30 14:09:31.000000000","message":"Mark, the tests don not have control over when the MiniDNS gets created deep within calls to start_service(), i have been searching for an elegant solution and haven\u0027t found it. I will open up a subsequent defect to enable MiniDNS across all tests (using fake_flags.py). Hope this is good enough for this review for now.","commit_id":"b099f7c118e25bc5aaeed3dc4a6932b1548311cf"}],"nova/tests/network/test_manager.py":[{"author":{"_account_id":1247,"name":"Mark McLoughlin","email":"markmc@redhat.com","username":"markmc"},"change_message_id":"2e9e054024ef848f495bf42a5d8a3d89c76e7b6d","unresolved":false,"context_lines":[{"line_number":1567,"context_line":"        address \u003d \"10.10.10.10\""},{"line_number":1568,"context_line":"        self.flags(auto_assign_floating_ip\u003dTrue,"},{"line_number":1569,"context_line":"                   floating_ip_dns_manager\u003d\u0027nova.network.minidns.MiniDNS\u0027,"},{"line_number":1570,"context_line":"                   instance_dns_manager\u003d\u0027nova.network.minidns.MiniDNS\u0027)"},{"line_number":1571,"context_line":"        self.compute \u003d self.start_service(\u0027compute\u0027)"},{"line_number":1572,"context_line":"        self.network \u003d self.start_service(\u0027network\u0027)"},{"line_number":1573,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAMH%2F%2FtJU%3D","line":1570,"updated":"2012-11-29 16:12:58.000000000","message":"If it\u0027s appropriate to set these for all tests, perhaps consider adding them to nova.tests.fake_flags","commit_id":"4fe3de28442a3c87ba96c1cc262ef4b5a1b15d6b"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"48ca3da4ad86d8f5c3b146e69879c6ebb0621ba4","unresolved":false,"context_lines":[{"line_number":1567,"context_line":"        address \u003d \"10.10.10.10\""},{"line_number":1568,"context_line":"        self.flags(auto_assign_floating_ip\u003dTrue,"},{"line_number":1569,"context_line":"                   floating_ip_dns_manager\u003d\u0027nova.network.minidns.MiniDNS\u0027,"},{"line_number":1570,"context_line":"                   instance_dns_manager\u003d\u0027nova.network.minidns.MiniDNS\u0027)"},{"line_number":1571,"context_line":"        self.compute \u003d self.start_service(\u0027compute\u0027)"},{"line_number":1572,"context_line":"        self.network \u003d self.start_service(\u0027network\u0027)"},{"line_number":1573,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAMH%2F%2Fseg%3D","line":1570,"in_reply_to":"AAAAMH%2F%2FtJU%3D","updated":"2012-11-29 22:49:34.000000000","message":"cleanup of the text file that gets created seems to be challenging. so we may not be able to do it. will take a stab at it after we get review through","commit_id":"4fe3de28442a3c87ba96c1cc262ef4b5a1b15d6b"},{"author":{"_account_id":1247,"name":"Mark McLoughlin","email":"markmc@redhat.com","username":"markmc"},"change_message_id":"561010c5af45b36bc879196ed6f00ef9708cd653","unresolved":false,"context_lines":[{"line_number":439,"context_line":"                                              is_admin\u003dFalse)"},{"line_number":440,"context_line":""},{"line_number":441,"context_line":"    def tearDown(self):"},{"line_number":442,"context_line":"        super(VlanNetworkTestCase, self).tearDown()"},{"line_number":443,"context_line":""},{"line_number":444,"context_line":"    def test_vpn_allocate_fixed_ip(self):"},{"line_number":445,"context_line":"        self.mox.StubOutWithMock(db, \u0027instance_get\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAMH%2F%2FsEo%3D","line":442,"updated":"2012-11-30 13:24:38.000000000","message":"Hmm, this shouldn\u0027t be needed","commit_id":"b099f7c118e25bc5aaeed3dc4a6932b1548311cf"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"6759a0b7fe01764075f47117d7eee617c66233ca","unresolved":false,"context_lines":[{"line_number":439,"context_line":"                                              is_admin\u003dFalse)"},{"line_number":440,"context_line":""},{"line_number":441,"context_line":"    def tearDown(self):"},{"line_number":442,"context_line":"        super(VlanNetworkTestCase, self).tearDown()"},{"line_number":443,"context_line":""},{"line_number":444,"context_line":"    def test_vpn_allocate_fixed_ip(self):"},{"line_number":445,"context_line":"        self.mox.StubOutWithMock(db, \u0027instance_get\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAMH%2F%2FsBc%3D","line":442,"in_reply_to":"AAAAMH%2F%2FsEo%3D","updated":"2012-11-30 14:09:31.000000000","message":"will fix","commit_id":"b099f7c118e25bc5aaeed3dc4a6932b1548311cf"}],"nova/tests/test_xenapi.py":[{"author":{"_account_id":1247,"name":"Mark McLoughlin","email":"markmc@redhat.com","username":"markmc"},"change_message_id":"561010c5af45b36bc879196ed6f00ef9708cd653","unresolved":false,"context_lines":[{"line_number":277,"context_line":"                   firewall_driver\u003d\u0027nova.virt.xenapi.firewall.\u0027"},{"line_number":278,"context_line":"                                   \u0027Dom0IptablesFirewallDriver\u0027,"},{"line_number":279,"context_line":"                   xenapi_connection_url\u003d\u0027test_url\u0027,"},{"line_number":280,"context_line":"                   xenapi_connection_password\u003d\u0027test_pass\u0027)"},{"line_number":281,"context_line":"        xenapi_fake.create_local_srs()"},{"line_number":282,"context_line":"        xenapi_fake.create_local_pifs()"},{"line_number":283,"context_line":"        db_fakes.stub_out_db_instance_api(self.stubs)"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAMH%2F%2FsEg%3D","line":280,"updated":"2012-11-30 13:24:38.000000000","message":"Spurious change","commit_id":"b099f7c118e25bc5aaeed3dc4a6932b1548311cf"}],"nova/tests/utils.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"a1b77f4a2727154e040cf1cf25d55d9984542919","unresolved":false,"context_lines":[{"line_number":121,"context_line":"        for manager in test_dns_managers:"},{"line_number":122,"context_line":"            manager.delete_dns_file()"},{"line_number":123,"context_line":"    except UnboundLocalError:"},{"line_number":124,"context_line":"        test_dns_managers \u003d []"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAMH%2F%2FrnI%3D","line":124,"updated":"2012-11-30 18:25:33.000000000","message":"So, you only clear test_dns_managers if one of the delete_dns_file() invocations (you apparently don\u0027t care which one) raises an UnboundLocalError.  That smells wrong to me.  Did you leave out a pass and mis-indent this line?","commit_id":"812954ad4daf5b2f816ff42d65e833a90ede483c"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"fbb08d39d4ca1ed4a4a40f222c6da118b8713d79","unresolved":false,"context_lines":[{"line_number":121,"context_line":"        for manager in test_dns_managers:"},{"line_number":122,"context_line":"            manager.delete_dns_file()"},{"line_number":123,"context_line":"    except UnboundLocalError:"},{"line_number":124,"context_line":"        test_dns_managers \u003d []"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAMH%2F%2FrmA%3D","line":124,"in_reply_to":"AAAAMH%2F%2FrnI%3D","updated":"2012-11-30 18:38:01.000000000","message":"got rid of try/except completely!","commit_id":"812954ad4daf5b2f816ff42d65e833a90ede483c"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"6e8b0a3bd7fad482d31b32d4270abbfef1e73ccd","unresolved":false,"context_lines":[{"line_number":118,"context_line":"def cleanup_dns_managers():"},{"line_number":119,"context_line":"    global test_dns_managers"},{"line_number":120,"context_line":"    for manager in test_dns_managers:"},{"line_number":121,"context_line":"        manager.delete_dns_file()"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAAMH%2F%2FrlI%3D","line":121,"updated":"2012-11-30 18:55:04.000000000","message":"But now test_dns_managers is never reset to the empty list?","commit_id":"d712262c85bc3cd0dd4312dc07889ac0ad69704d"}]}
