)]}'
{"ceilometer/compute/virt/hyperv/inspector.py":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"34a4ca205a47db4db178fd755862ea9a24ebdea6","unresolved":false,"context_lines":[{"line_number":34,"context_line":"            return function(*args, **kwargs)"},{"line_number":35,"context_line":"        except expected_exceptions as ex:"},{"line_number":36,"context_line":"            raised_exception \u003d exception_map.get(type(ex))"},{"line_number":37,"context_line":"            if not raised_exception:"},{"line_number":38,"context_line":"                # exception might be a subclass of an expected exception."},{"line_number":39,"context_line":"                for expected in expected_exceptions:"},{"line_number":40,"context_line":"                    if isinstance(ex, expected):"}],"source_content_type":"text/x-python","patch_set":4,"id":"bae84128_1c30b49d","line":37,"updated":"2016-02-22 18:14:25.000000000","message":"i think it\u0027s cleaner to just drop these first two lines and loop through expected_exceptions.","commit_id":"a9c7bc48c9118bab176ffdaf516576eb1aeee733"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"c965531a3ee41deef6e480dfc7bfdd7508367269","unresolved":false,"context_lines":[{"line_number":34,"context_line":"            return function(*args, **kwargs)"},{"line_number":35,"context_line":"        except expected_exceptions as ex:"},{"line_number":36,"context_line":"            raised_exception \u003d exception_map.get(type(ex))"},{"line_number":37,"context_line":"            if not raised_exception:"},{"line_number":38,"context_line":"                # exception might be a subclass of an expected exception."},{"line_number":39,"context_line":"                for expected in expected_exceptions:"},{"line_number":40,"context_line":"                    if isinstance(ex, expected):"}],"source_content_type":"text/x-python","patch_set":4,"id":"bae84128_b0955d88","line":37,"in_reply_to":"bae84128_048fb675","updated":"2016-02-22 23:51:56.000000000","message":"sorry, I misspoke. I meant to say that removing those 2 lines can cause the unit tests to fail randomly, as the dictionary is not ordered.","commit_id":"a9c7bc48c9118bab176ffdaf516576eb1aeee733"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"8e61751fc438fa9f675bdde816ab38f267e4526e","unresolved":false,"context_lines":[{"line_number":34,"context_line":"            return function(*args, **kwargs)"},{"line_number":35,"context_line":"        except expected_exceptions as ex:"},{"line_number":36,"context_line":"            raised_exception \u003d exception_map.get(type(ex))"},{"line_number":37,"context_line":"            if not raised_exception:"},{"line_number":38,"context_line":"                # exception might be a subclass of an expected exception."},{"line_number":39,"context_line":"                for expected in expected_exceptions:"},{"line_number":40,"context_line":"                    if isinstance(ex, expected):"}],"source_content_type":"text/x-python","patch_set":4,"id":"bae84128_048fb675","line":37,"in_reply_to":"bae84128_190b9f8f","updated":"2016-02-22 20:49:54.000000000","message":"what\u0027s the race condition? don\u0027t really see what is shared between threads here.\n\nregardless if you add the two lines back, this section below will always potentially raise the wrong exception.\n\nif you want order, they you should use and ordereddict","commit_id":"a9c7bc48c9118bab176ffdaf516576eb1aeee733"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"4717ded8c5b7cffad59bad45a854531002a49639","unresolved":false,"context_lines":[{"line_number":34,"context_line":"            return function(*args, **kwargs)"},{"line_number":35,"context_line":"        except expected_exceptions as ex:"},{"line_number":36,"context_line":"            raised_exception \u003d exception_map.get(type(ex))"},{"line_number":37,"context_line":"            if not raised_exception:"},{"line_number":38,"context_line":"                # exception might be a subclass of an expected exception."},{"line_number":39,"context_line":"                for expected in expected_exceptions:"},{"line_number":40,"context_line":"                    if isinstance(ex, expected):"}],"source_content_type":"text/x-python","patch_set":4,"id":"bae84128_1ccb941f","line":37,"in_reply_to":"bae84128_1c30b49d","updated":"2016-02-22 18:29:08.000000000","message":"Done","commit_id":"a9c7bc48c9118bab176ffdaf516576eb1aeee733"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"d8e60e170582a001770b4c54369f9cdccb507c84","unresolved":false,"context_lines":[{"line_number":34,"context_line":"            return function(*args, **kwargs)"},{"line_number":35,"context_line":"        except expected_exceptions as ex:"},{"line_number":36,"context_line":"            raised_exception \u003d exception_map.get(type(ex))"},{"line_number":37,"context_line":"            if not raised_exception:"},{"line_number":38,"context_line":"                # exception might be a subclass of an expected exception."},{"line_number":39,"context_line":"                for expected in expected_exceptions:"},{"line_number":40,"context_line":"                    if isinstance(ex, expected):"}],"source_content_type":"text/x-python","patch_set":4,"id":"bae84128_190b9f8f","line":37,"in_reply_to":"bae84128_1ccb941f","updated":"2016-02-22 20:37:31.000000000","message":"actually, no. Removing those 2 lines will introduce a race condition (see unit tests on PS5). as a dictionary is unsorted, expected_exceptions will be as well.\n\nplus, it might raise the wrong exception type. For example, os_win_exc.NotFound is a subclass of os_win_exc.OSWinException. It would be undesirable if this decorator would raise a virt_inspector.InspectorException, and not a virt_inspector.InstanceNotFoundException.","commit_id":"a9c7bc48c9118bab176ffdaf516576eb1aeee733"}],"ceilometer/tests/unit/compute/virt/hyperv/test_inspector.py":[{"author":{"_account_id":9526,"name":"Zi Lian Ji","email":"jizilian@cn.ibm.com","username":"jizilian"},"change_message_id":"4968b81f9a6b6f1c6973f7bee1de4a563c2707db","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import sys"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"import mock"},{"line_number":21,"context_line":"from os_win import exceptions as os_win_exc"},{"line_number":22,"context_line":"from oslo_utils import units"},{"line_number":23,"context_line":"from oslotest import base"}],"source_content_type":"text/x-python","patch_set":2,"id":"bae84128_665f2a0f","line":20,"range":{"start_line":20,"start_character":0,"end_line":20,"end_character":6},"updated":"2016-02-19 09:21:35.000000000","message":"The \u0027mock\u0027 module should in another group.","commit_id":"3b5dade53f82d385b9ac2fcc0a4a325567cbba81"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"06b7f477f8e2c0972c6e7328675f7fc152791e7b","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import sys"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"import mock"},{"line_number":21,"context_line":"from os_win import exceptions as os_win_exc"},{"line_number":22,"context_line":"from oslo_utils import units"},{"line_number":23,"context_line":"from oslotest import base"}],"source_content_type":"text/x-python","patch_set":2,"id":"bae84128_66e4380d","line":20,"range":{"start_line":20,"start_character":0,"end_line":20,"end_character":6},"in_reply_to":"bae84128_665f2a0f","updated":"2016-02-19 14:30:08.000000000","message":"Done, although it is seems unrelated to this patch, IMO.","commit_id":"3b5dade53f82d385b9ac2fcc0a4a325567cbba81"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"34a4ca205a47db4db178fd755862ea9a24ebdea6","unresolved":false,"context_lines":[{"line_number":18,"context_line":"import sys"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"import mock"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from os_win import exceptions as os_win_exc"},{"line_number":23,"context_line":"from oslo_utils import units"},{"line_number":24,"context_line":"from oslotest import base"}],"source_content_type":"text/x-python","patch_set":4,"id":"bae84128_c1278710","line":21,"updated":"2016-02-22 18:14:25.000000000","message":"keep mock grouped with 3rd party libs or group with sys... eitehr one.","commit_id":"a9c7bc48c9118bab176ffdaf516576eb1aeee733"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"4717ded8c5b7cffad59bad45a854531002a49639","unresolved":false,"context_lines":[{"line_number":18,"context_line":"import sys"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"import mock"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from os_win import exceptions as os_win_exc"},{"line_number":23,"context_line":"from oslo_utils import units"},{"line_number":24,"context_line":"from oslotest import base"}],"source_content_type":"text/x-python","patch_set":4,"id":"bae84128_3c9658f0","line":21,"in_reply_to":"bae84128_c1278710","updated":"2016-02-22 18:29:08.000000000","message":"Done","commit_id":"a9c7bc48c9118bab176ffdaf516576eb1aeee733"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"34a4ca205a47db4db178fd755862ea9a24ebdea6","unresolved":false,"context_lines":[{"line_number":59,"context_line":"            foo \u003d \"foofoo\""},{"line_number":60,"context_line":"            raise os_win_exc.NotFound(resource\u003dfoo)"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        self._inspector._utils.get_cpu_metrics.side_effect \u003d bar"},{"line_number":63,"context_line":"        try:"},{"line_number":64,"context_line":"            self._inspector.inspect_cpus(mock.sentinel.instance)"},{"line_number":65,"context_line":"            self.fail(\"Test expected exception, but it was not raised.\")"}],"source_content_type":"text/x-python","patch_set":4,"id":"bae84128_a1ac0336","line":62,"updated":"2016-02-22 18:14:25.000000000","message":"you can just put \n\n  self._inspector._utils.get_cpu_metrics.side_effect \u003d os_win_exc.NotFound(resource\u003d\u0027foofoo\u0027)","commit_id":"a9c7bc48c9118bab176ffdaf516576eb1aeee733"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"34a4ca205a47db4db178fd755862ea9a24ebdea6","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    def test_compute_host_max_cpu_clock(self, mock_utilsfactory):"},{"line_number":78,"context_line":"        mock_cpu \u003d {\u0027MaxClockSpeed\u0027: 1000}"},{"line_number":79,"context_line":"        hostutils \u003d mock_utilsfactory.get_hostutils.return_value"},{"line_number":80,"context_line":"        hostutils.get_cpus_info.return_value \u003d [mock_cpu, mock_cpu]"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        cpu_clock \u003d self._inspector._compute_host_max_cpu_clock()"},{"line_number":83,"context_line":"        self.assertEqual(2000.0, cpu_clock)"}],"source_content_type":"text/x-python","patch_set":4,"id":"bae84128_01316f05","line":80,"updated":"2016-02-22 18:14:25.000000000","message":"can this not just be:\n\n  mock_utilsfactory.get_hostutils.get_cpus_info.return_value \u003d [mock_cpu, mock_cpu]","commit_id":"a9c7bc48c9118bab176ffdaf516576eb1aeee733"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"4717ded8c5b7cffad59bad45a854531002a49639","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    def test_compute_host_max_cpu_clock(self, mock_utilsfactory):"},{"line_number":78,"context_line":"        mock_cpu \u003d {\u0027MaxClockSpeed\u0027: 1000}"},{"line_number":79,"context_line":"        hostutils \u003d mock_utilsfactory.get_hostutils.return_value"},{"line_number":80,"context_line":"        hostutils.get_cpus_info.return_value \u003d [mock_cpu, mock_cpu]"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        cpu_clock \u003d self._inspector._compute_host_max_cpu_clock()"},{"line_number":83,"context_line":"        self.assertEqual(2000.0, cpu_clock)"}],"source_content_type":"text/x-python","patch_set":4,"id":"bae84128_bc0d4840","line":80,"in_reply_to":"bae84128_01316f05","updated":"2016-02-22 18:29:08.000000000","message":"it cannot. get_hostuils is a function, so the correct way would be:\n\n    mock_utilsfactory.get_hostutils.return_value.get_cpus_info.return_value \u003d [mock_cpu, mock_cpu]\n\nbut it cannot fit on a single line, unfortunately. Which is why I had to split it in two.","commit_id":"a9c7bc48c9118bab176ffdaf516576eb1aeee733"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"cb2e4afbe6b67bd7256c2018bad52836cf6d589a","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    def test_compute_host_max_cpu_clock(self, mock_utilsfactory):"},{"line_number":78,"context_line":"        mock_cpu \u003d {\u0027MaxClockSpeed\u0027: 1000}"},{"line_number":79,"context_line":"        hostutils \u003d mock_utilsfactory.get_hostutils.return_value"},{"line_number":80,"context_line":"        hostutils.get_cpus_info.return_value \u003d [mock_cpu, mock_cpu]"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        cpu_clock \u003d self._inspector._compute_host_max_cpu_clock()"},{"line_number":83,"context_line":"        self.assertEqual(2000.0, cpu_clock)"}],"source_content_type":"text/x-python","patch_set":4,"id":"bae84128_17352df6","line":80,"in_reply_to":"bae84128_bc0d4840","updated":"2016-02-22 18:50:26.000000000","message":"it\u0027s a mock, it shouldn\u0027t matter whether it\u0027s a function. no biggie i guess.","commit_id":"a9c7bc48c9118bab176ffdaf516576eb1aeee733"}],"requirements.txt":[{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"64589ff063f445c4c02d1fe44d6e9b5b1059bbfa","unresolved":false,"context_lines":[{"line_number":9,"context_line":"keystonemiddleware!\u003d4.1.0,\u003e\u003d4.0.0 # Apache-2.0"},{"line_number":10,"context_line":"lxml\u003e\u003d2.3 # BSD"},{"line_number":11,"context_line":"msgpack-python\u003e\u003d0.4.0 # Apache-2.0"},{"line_number":12,"context_line":"os-win\u003e\u003d0.2.0 # Apache-2.0"},{"line_number":13,"context_line":"oslo.context\u003e\u003d0.2.0 # Apache-2.0"},{"line_number":14,"context_line":"oslo.db\u003e\u003d4.1.0 # Apache-2.0"},{"line_number":15,"context_line":"oslo.concurrency\u003e\u003d2.3.0 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":2,"id":"dae33548_61739616","line":12,"range":{"start_line":12,"start_character":12,"end_line":12,"end_character":13},"updated":"2016-02-19 12:43:35.000000000","message":"global requirements is 0.0.7 https://github.com/openstack/requirements/blob/b2327b5b49c2b202840892aa617c6c3f58d8a28f/global-requirements.txt#L124","commit_id":"3b5dade53f82d385b9ac2fcc0a4a325567cbba81"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"06b7f477f8e2c0972c6e7328675f7fc152791e7b","unresolved":false,"context_lines":[{"line_number":9,"context_line":"keystonemiddleware!\u003d4.1.0,\u003e\u003d4.0.0 # Apache-2.0"},{"line_number":10,"context_line":"lxml\u003e\u003d2.3 # BSD"},{"line_number":11,"context_line":"msgpack-python\u003e\u003d0.4.0 # Apache-2.0"},{"line_number":12,"context_line":"os-win\u003e\u003d0.2.0 # Apache-2.0"},{"line_number":13,"context_line":"oslo.context\u003e\u003d0.2.0 # Apache-2.0"},{"line_number":14,"context_line":"oslo.db\u003e\u003d4.1.0 # Apache-2.0"},{"line_number":15,"context_line":"oslo.concurrency\u003e\u003d2.3.0 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":2,"id":"bae84128_66927859","line":12,"range":{"start_line":12,"start_character":12,"end_line":12,"end_character":13},"in_reply_to":"dae33548_61739616","updated":"2016-02-19 14:30:08.000000000","message":"Yeah, should be updated. Added a Depends-On in the commit message for this.","commit_id":"3b5dade53f82d385b9ac2fcc0a4a325567cbba81"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"34a4ca205a47db4db178fd755862ea9a24ebdea6","unresolved":false,"context_lines":[{"line_number":9,"context_line":"keystonemiddleware!\u003d4.1.0,\u003e\u003d4.0.0 # Apache-2.0"},{"line_number":10,"context_line":"lxml\u003e\u003d2.3 # BSD"},{"line_number":11,"context_line":"msgpack-python\u003e\u003d0.4.0 # Apache-2.0"},{"line_number":12,"context_line":"os-win\u003e\u003d0.2.1 # Apache-2.0"},{"line_number":13,"context_line":"oslo.context\u003e\u003d0.2.0 # Apache-2.0"},{"line_number":14,"context_line":"oslo.db\u003e\u003d4.1.0 # Apache-2.0"},{"line_number":15,"context_line":"oslo.concurrency\u003e\u003d2.3.0 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":4,"id":"bae84128_e1d72beb","line":12,"updated":"2016-02-22 18:14:25.000000000","message":"let\u0027s move this to test-requirements alongside all the other driver related libs","commit_id":"a9c7bc48c9118bab176ffdaf516576eb1aeee733"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"4717ded8c5b7cffad59bad45a854531002a49639","unresolved":false,"context_lines":[{"line_number":9,"context_line":"keystonemiddleware!\u003d4.1.0,\u003e\u003d4.0.0 # Apache-2.0"},{"line_number":10,"context_line":"lxml\u003e\u003d2.3 # BSD"},{"line_number":11,"context_line":"msgpack-python\u003e\u003d0.4.0 # Apache-2.0"},{"line_number":12,"context_line":"os-win\u003e\u003d0.2.1 # Apache-2.0"},{"line_number":13,"context_line":"oslo.context\u003e\u003d0.2.0 # Apache-2.0"},{"line_number":14,"context_line":"oslo.db\u003e\u003d4.1.0 # Apache-2.0"},{"line_number":15,"context_line":"oslo.concurrency\u003e\u003d2.3.0 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":4,"id":"bae84128_770ab922","line":12,"in_reply_to":"bae84128_e1d72beb","updated":"2016-02-22 18:29:08.000000000","message":"Done","commit_id":"a9c7bc48c9118bab176ffdaf516576eb1aeee733"}]}
