)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":12024,"name":"Tong Liu","email":"tongl@vmware.com","username":"tong101"},"change_message_id":"816cb1e80c51e6abc10dea6731cfa12451a282aa","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"test_aggregates should choose available compute node"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"    This is to make test_aggregates choose an available compute node"},{"line_number":10,"context_line":"to avoid testcase fail when it happens to choose an unavailable"},{"line_number":11,"context_line":"node among all compute nodes."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"dab17558_d13b45e8","line":9,"updated":"2016-05-18 01:18:11.000000000","message":"Don\u0027t need to add space in the beginning of a paragraph.","commit_id":"d8764dc3d3951f2714293822410a86356316ea2b"}],"tempest/api/compute/admin/test_aggregates.py":[{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"590427f456a716c998260f23bf0eeb364ba779d9","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        cls.az_name_prefix \u003d \u0027test_az\u0027"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        cls.host \u003d None"},{"line_number":40,"context_line":"        hypers \u003d cls.os_adm.hypervisor_client.list_hypervisors()[\u0027hypervisors\u0027]"},{"line_number":41,"context_line":"        for hyper in hypers:"},{"line_number":42,"context_line":"            try:"},{"line_number":43,"context_line":"                cls.os_adm.hypervisor_client.show_hypervisor_uptime("}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_61d8ddef","line":40,"updated":"2016-05-17 16:08:06.000000000","message":"Could you add a code comment about why we do this code block ?","commit_id":"d8764dc3d3951f2714293822410a86356316ea2b"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"590427f456a716c998260f23bf0eeb364ba779d9","unresolved":false,"context_lines":[{"line_number":44,"context_line":"                    hyper[\u0027id\u0027])"},{"line_number":45,"context_line":"                cls.host \u003d hyper[\u0027hypervisor_hostname\u0027]"},{"line_number":46,"context_line":"                break"},{"line_number":47,"context_line":"            except Exception:"},{"line_number":48,"context_line":"                pass"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        if not cls.host:"}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_c14c29ca","line":47,"updated":"2016-05-17 16:08:06.000000000","message":"Could use use a more \"precise\" exception here ? An \"except Exception\" is a bit broad.","commit_id":"d8764dc3d3951f2714293822410a86356316ea2b"},{"author":{"_account_id":12024,"name":"Tong Liu","email":"tongl@vmware.com","username":"tong101"},"change_message_id":"816cb1e80c51e6abc10dea6731cfa12451a282aa","unresolved":false,"context_lines":[{"line_number":44,"context_line":"                    hyper[\u0027id\u0027])"},{"line_number":45,"context_line":"                cls.host \u003d hyper[\u0027hypervisor_hostname\u0027]"},{"line_number":46,"context_line":"                break"},{"line_number":47,"context_line":"            except Exception:"},{"line_number":48,"context_line":"                pass"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        if not cls.host:"}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_7156d92a","line":47,"in_reply_to":"dab17558_c14c29ca","updated":"2016-05-18 01:18:11.000000000","message":"We can add specific exception or add comment to show_hypervisor_uptime. I think if host is unavailable, that function will raise ServerFault since return code is 500.","commit_id":"d8764dc3d3951f2714293822410a86356316ea2b"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"497b39c51836069a5461eb2e5e5d7184841e7e07","unresolved":false,"context_lines":[{"line_number":52,"context_line":"                pass"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"        if not cls.host:"},{"line_number":55,"context_line":"            raise cls.skipException(\"no available compute node found\")"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def _try_delete_aggregate(self, aggregate_id):"},{"line_number":58,"context_line":"        # delete aggregate, if it exists"}],"source_content_type":"text/x-python","patch_set":4,"id":"bab6814e_65ed3b25","line":55,"updated":"2016-05-24 16:31:49.000000000","message":"You should abort/fail the test here (maybe use self.fail()). It\u0027s not reasonable to run Tempest when 0 compute node is up and running.","commit_id":"d724e7888b3b20ffe92bde89183fdd6e0d8f2419"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"4e000e77f8ca645edd12c42d91fc336ccda8063c","unresolved":false,"context_lines":[{"line_number":52,"context_line":"                pass"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"        if not cls.host:"},{"line_number":55,"context_line":"            raise lib_exc.TempestException(\"no available compute node found\")"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def _try_delete_aggregate(self, aggregate_id):"},{"line_number":58,"context_line":"        # delete aggregate, if it exists"}],"source_content_type":"text/x-python","patch_set":6,"id":"bab6814e_9964aab9","line":55,"updated":"2016-05-26 08:54:42.000000000","message":"What testtools.TestCase.failureException ?","commit_id":"b2c1ca5129e9e833d8e08234e6270c86f90606ec"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"de5c4228f0c7766170c872c593d74586f3ea6fac","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from tempest.common.utils import data_utils"},{"line_number":19,"context_line":"from tempest.lib import exceptions as lib_exc"},{"line_number":20,"context_line":"from tempest import test"},{"line_number":21,"context_line":"import testtools"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class AggregatesAdminTestJSON(base.BaseV2ComputeAdminTest):"}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_f1d33e36","line":21,"updated":"2016-05-26 13:23:16.000000000","message":"Don\u0027t respin just for this but this import should be the first import and it should be followed by an empty line. Please read http://docs.openstack.org/developer/hacking/#imports for more details.","commit_id":"d6abb176dc49b614af3e47e4a2854dd4ff139b24"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"2dec074f2f002e5fea91eca6dbc59a43cdc40b9f","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        # show_hypervisor_uptime will raise BadRequest exception)."},{"line_number":46,"context_line":"        hypers \u003d cls.os_adm.hypervisor_client.list_hypervisors()[\u0027hypervisors\u0027]"},{"line_number":47,"context_line":"        for hyper in hypers:"},{"line_number":48,"context_line":"            try:"},{"line_number":49,"context_line":"                cls.os_adm.hypervisor_client.show_hypervisor_uptime("},{"line_number":50,"context_line":"                    hyper[\u0027id\u0027])"},{"line_number":51,"context_line":"                cls.host \u003d hyper[\u0027hypervisor_hostname\u0027]"},{"line_number":52,"context_line":"                break"},{"line_number":53,"context_line":"            except lib_exc.BadRequest:"},{"line_number":54,"context_line":"                pass"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        if not cls.host:"},{"line_number":57,"context_line":"            raise testtools.TestCase.failureException("}],"source_content_type":"text/x-python","patch_set":8,"id":"7aa08908_c7ac00f0","line":54,"range":{"start_line":48,"start_character":0,"end_line":54,"end_character":20},"updated":"2016-06-06 10:11:46.000000000","message":"Can we filter the hypers with \"status\" and/or \"state\"? I feel \u0027BadRequest\u0027 is not precise here.\n\nhttp://developer.openstack.org/api-ref-compute-v2.1.html#listHypervisors\n\nIn the current implementation and/or design, it seems correct, though.\nhttps://github.com/openstack/nova/blob/master/nova/api/openstack/compute/hypervisors.py#L139","commit_id":"01d77b62b42917caada163c5a3211da2b8fc8467"}]}
