)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"6ee1bece6c831c4325a4c613ada2439eb5a6a030","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Using get() to access keys like \"summary.guest.toolsStatus\" and"},{"line_number":10,"context_line":"\"summary.guest.toolrunningStatus\". This is safe even if these"},{"line_number":11,"context_line":"keys have none value. We can have VM\u0027s where VM tools wouldn\u0027t be"},{"line_number":12,"context_line":"installed/running which leads to hard reboot."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I332867fe783d6d47b81d8a53153af140d4158217"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa7ab95a_77cec1b5","line":11,"range":{"start_line":11,"start_character":10,"end_line":11,"end_character":14},"updated":"2016-08-31 09:51:51.000000000","message":"\u0027None\u0027 is better","commit_id":"a8c3c3a0a574f85a955c894d7efe2e2f8583cf52"},{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"6ee1bece6c831c4325a4c613ada2439eb5a6a030","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Using get() to access keys like \"summary.guest.toolsStatus\" and"},{"line_number":10,"context_line":"\"summary.guest.toolrunningStatus\". This is safe even if these"},{"line_number":11,"context_line":"keys have none value. We can have VM\u0027s where VM tools wouldn\u0027t be"},{"line_number":12,"context_line":"installed/running which leads to hard reboot."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I332867fe783d6d47b81d8a53153af140d4158217"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa7ab95a_173655b4","line":11,"range":{"start_line":11,"start_character":34,"end_line":11,"end_character":38},"updated":"2016-08-31 09:51:51.000000000","message":"maybe VMs?","commit_id":"a8c3c3a0a574f85a955c894d7efe2e2f8583cf52"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"e5856ee4d33791a3fd2d9e68e140a5a6f9d46b2b","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Using get() method to prevent KeyError"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Using get() to access keys like \"summary.guest.toolsStatus\" and"},{"line_number":10,"context_line":"\"summary.guest.toolrunningStatus\". This is safe even if these"},{"line_number":11,"context_line":"keys have None value. We can have VMs where VM tools wouldn\u0027t be"},{"line_number":12,"context_line":"installed/running which leads to hard reboot."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I332867fe783d6d47b81d8a53153af140d4158217"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"fa7ab95a_ebd636f0","line":11,"range":{"start_line":10,"start_character":53,"end_line":11,"end_character":21},"updated":"2016-09-01 00:32:42.000000000","message":"This is wrong, here should be\n\n if these keys don\u0027t exist in the dict\n\nor something according to this patch change.","commit_id":"dafbb511fb65198137873d8a1e63183f6d7d4d4b"},{"author":{"_account_id":18339,"name":"Sivasathurappan Radhakrishnan","email":"siva.radhakrishnan@intel.com","username":"sivakrishnan"},"change_message_id":"c55ea39d539c2383e610635b93943103b9c42957","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Using get() method to prevent KeyError"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Using get() to access keys like \"summary.guest.toolsStatus\" and"},{"line_number":10,"context_line":"\"summary.guest.toolrunningStatus\". This is safe even if these"},{"line_number":11,"context_line":"keys have None value. We can have VMs where VM tools wouldn\u0027t be"},{"line_number":12,"context_line":"installed/running which leads to hard reboot."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I332867fe783d6d47b81d8a53153af140d4158217"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"9a89bdaa_b93b81d0","line":11,"range":{"start_line":10,"start_character":53,"end_line":11,"end_character":21},"in_reply_to":"fa7ab95a_ebd636f0","updated":"2016-09-06 16:41:13.000000000","message":"Done","commit_id":"dafbb511fb65198137873d8a1e63183f6d7d4d4b"}],"nova/tests/unit/virt/vmwareapi/test_vmops.py":[{"author":{"_account_id":17255,"name":"Toshiaki Takahashi","email":"ts-takahashi@nec.com","username":"takahashi_ts"},"change_message_id":"a3b4457d0f2d96e7e139131cb7fb42efb7bdc745","unresolved":false,"context_lines":[{"line_number":2452,"context_line":""},{"line_number":2453,"context_line":"        query_no_toolstatus \u003d {}"},{"line_number":2454,"context_line":"        query_no_toolstatus[\u0027runtime.powerState\u0027] \u003d \"poweredOn\""},{"line_number":2455,"context_line":"        query_no_toolstatus[\u0027summary.guest.toolsStatus\u0027] \u003d None"},{"line_number":2456,"context_line":"        query_no_toolstatus[\u0027summary.guest.toolsRunningStatus\u0027] \u003d None"},{"line_number":2457,"context_line":""},{"line_number":2458,"context_line":"        def fake_call_method(module, method, *args, **kwargs):"},{"line_number":2459,"context_line":"            expected_method \u003d expected_methods.pop(0)"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa7ab95a_e097178e","line":2456,"range":{"start_line":2455,"start_character":0,"end_line":2456,"end_character":70},"updated":"2016-08-28 13:37:14.000000000","message":"Is these lines necessary?\n\nA patch of vmops.py looks to avoid KeyError.\nI think a test code for the patch should test the case in which there is no key \u0027summary.guest.toolsStatus\u0027 and \u0027summary.guest.toolsRunningStatus\u0027.\nWith these line, query_no_toolstatus has a key \u0027summary.guest.toolsStatus\u0027 with a value None.\n(Same for \u0027summary.guest.toolsRunningStatus\u0027)","commit_id":"7ece0c05c1994477aebaed257cbded42940e09e3"},{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"6ee1bece6c831c4325a4c613ada2439eb5a6a030","unresolved":false,"context_lines":[{"line_number":2482,"context_line":"    def test_reboot_vm_soft(self):"},{"line_number":2483,"context_line":"        self._test_reboot_vm()"},{"line_number":2484,"context_line":""},{"line_number":2485,"context_line":"    def test_reboot_vm_soft_toolstatus(self):"},{"line_number":2486,"context_line":"        self._test_reboot_vm(reboot_type\u003d\"HARD\", tool_status\u003d\"no\")"},{"line_number":2487,"context_line":""},{"line_number":2488,"context_line":"    def test_reboot_vm_hard(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa7ab95a_777241af","line":2485,"range":{"start_line":2485,"start_character":23,"end_line":2485,"end_character":27},"updated":"2016-08-31 09:51:51.000000000","message":"I see \u0027soft\u0027 in the name, but reboot_type\u003d\"HARD\" in the test, please check what you wanted here","commit_id":"a8c3c3a0a574f85a955c894d7efe2e2f8583cf52"},{"author":{"_account_id":10618,"name":"Pavel Kholkin","email":"p.v.holkin@mail.ru","username":"pkholkin"},"change_message_id":"86c41796f1f2138044e50e33ed83f43b741ccee5","unresolved":false,"context_lines":[{"line_number":2484,"context_line":"    def test_reboot_vm_soft(self):"},{"line_number":2485,"context_line":"        self._test_reboot_vm()"},{"line_number":2486,"context_line":""},{"line_number":2487,"context_line":"    def test_reboot_vm_soft_toolstatus(self):"},{"line_number":2488,"context_line":"        self._test_reboot_vm(reboot_type\u003d\"HARD\", tool_status\u003d\"no\")"},{"line_number":2489,"context_line":""},{"line_number":2490,"context_line":"    def test_reboot_vm_hard(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a89bdaa_406fa82a","line":2487,"range":{"start_line":2487,"start_character":23,"end_line":2487,"end_character":27},"updated":"2016-09-07 13:22:15.000000000","message":"you returned this, is it correct? soft in name and hard in code","commit_id":"5243bd7b8ec874bdfa3a488fbae2188eb6017738"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"fc3c5031e83d0a4bb10a2beccd2b0697396b5755","unresolved":false,"context_lines":[{"line_number":2439,"context_line":"        base_folder \u003d self._vmops._get_base_folder()"},{"line_number":2440,"context_line":"        self.assertEqual(\u0027my_prefix_base\u0027, base_folder)"},{"line_number":2441,"context_line":""},{"line_number":2442,"context_line":"    def _test_reboot_vm(self, reboot_type\u003d\"SOFT\", tool_status\u003d\"yes\"):"},{"line_number":2443,"context_line":""},{"line_number":2444,"context_line":"        expected_methods \u003d [\u0027get_object_properties_dict\u0027]"},{"line_number":2445,"context_line":"        if reboot_type \u003d\u003d \"SOFT\":"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a8bc5a2_6bc0a07d","line":2442,"range":{"start_line":2442,"start_character":62,"end_line":2442,"end_character":67},"updated":"2016-09-27 23:47:05.000000000","message":"nit: How about True/False here instead of \"yes\"/\"no\"?","commit_id":"0ad57e7a55a9d01dba9ea0e2db4a182f350663dd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"67be20bf14ba7950ff95d0c668fa482c4f612650","unresolved":false,"context_lines":[{"line_number":2439,"context_line":"        base_folder \u003d self._vmops._get_base_folder()"},{"line_number":2440,"context_line":"        self.assertEqual(\u0027my_prefix_base\u0027, base_folder)"},{"line_number":2441,"context_line":""},{"line_number":2442,"context_line":"    def _test_reboot_vm(self, reboot_type\u003d\"SOFT\", tool_status\u003d\"yes\"):"},{"line_number":2443,"context_line":""},{"line_number":2444,"context_line":"        expected_methods \u003d [\u0027get_object_properties_dict\u0027]"},{"line_number":2445,"context_line":"        if reboot_type \u003d\u003d \"SOFT\":"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa6399be_79b6a78b","line":2442,"range":{"start_line":2442,"start_character":62,"end_line":2442,"end_character":67},"in_reply_to":"5a8bc5a2_6bc0a07d","updated":"2016-10-11 12:45:58.000000000","message":"Yeha, this should be a bool","commit_id":"0ad57e7a55a9d01dba9ea0e2db4a182f350663dd"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"fc3c5031e83d0a4bb10a2beccd2b0697396b5755","unresolved":false,"context_lines":[{"line_number":2452,"context_line":"        query[\u0027summary.guest.toolsStatus\u0027] \u003d \"toolsOk\""},{"line_number":2453,"context_line":"        query[\u0027summary.guest.toolsRunningStatus\u0027] \u003d \"guestToolsRunning\""},{"line_number":2454,"context_line":""},{"line_number":2455,"context_line":"        query_no_toolstatus \u003d {}"},{"line_number":2456,"context_line":"        query_no_toolstatus[\u0027runtime.powerState\u0027] \u003d \"poweredOn\""},{"line_number":2457,"context_line":"        query_no_toolstatus[\u0027summary.guest.toolsStatus\u0027] \u003d None"},{"line_number":2458,"context_line":"        query_no_toolstatus[\u0027summary.guest.toolsRunningStatus\u0027] \u003d None"},{"line_number":2459,"context_line":""},{"line_number":2460,"context_line":"        def fake_call_method(module, method, *args, **kwargs):"},{"line_number":2461,"context_line":"            expected_method \u003d expected_methods.pop(0)"}],"source_content_type":"text/x-python","patch_set":6,"id":"5a8bc5a2_2bf778f6","line":2458,"range":{"start_line":2455,"start_character":0,"end_line":2458,"end_character":70},"updated":"2016-09-27 23:47:05.000000000","message":"How about moving this block into line 2467 because of using this at the place only ?","commit_id":"0ad57e7a55a9d01dba9ea0e2db4a182f350663dd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"67be20bf14ba7950ff95d0c668fa482c4f612650","unresolved":false,"context_lines":[{"line_number":2452,"context_line":"        query[\u0027summary.guest.toolsStatus\u0027] \u003d \"toolsOk\""},{"line_number":2453,"context_line":"        query[\u0027summary.guest.toolsRunningStatus\u0027] \u003d \"guestToolsRunning\""},{"line_number":2454,"context_line":""},{"line_number":2455,"context_line":"        query_no_toolstatus \u003d {}"},{"line_number":2456,"context_line":"        query_no_toolstatus[\u0027runtime.powerState\u0027] \u003d \"poweredOn\""},{"line_number":2457,"context_line":"        query_no_toolstatus[\u0027summary.guest.toolsStatus\u0027] \u003d None"},{"line_number":2458,"context_line":"        query_no_toolstatus[\u0027summary.guest.toolsRunningStatus\u0027] \u003d None"},{"line_number":2459,"context_line":""},{"line_number":2460,"context_line":"        def fake_call_method(module, method, *args, **kwargs):"},{"line_number":2461,"context_line":"            expected_method \u003d expected_methods.pop(0)"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa6399be_99ed3b8e","line":2458,"range":{"start_line":2455,"start_character":0,"end_line":2458,"end_character":70},"in_reply_to":"5a8bc5a2_2bf778f6","updated":"2016-10-11 12:45:58.000000000","message":"+1","commit_id":"0ad57e7a55a9d01dba9ea0e2db4a182f350663dd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"66f849cc0fac34092db6666b148618851a71afd8","unresolved":false,"context_lines":[{"line_number":2453,"context_line":"        query[\u0027summary.guest.toolsRunningStatus\u0027] \u003d \"guestToolsRunning\""},{"line_number":2454,"context_line":""},{"line_number":2455,"context_line":"        def fake_call_method(module, method, *args, **kwargs):"},{"line_number":2456,"context_line":"            query_no_toolstatus \u003d {}"},{"line_number":2457,"context_line":"            query_no_toolstatus[\u0027runtime.powerState\u0027] \u003d \"poweredOn\""},{"line_number":2458,"context_line":"            query_no_toolstatus[\u0027summary.guest.toolsStatus\u0027] \u003d None"},{"line_number":2459,"context_line":"            query_no_toolstatus[\u0027summary.guest.toolsRunningStatus\u0027] \u003d None"},{"line_number":2460,"context_line":"            expected_method \u003d expected_methods.pop(0)"},{"line_number":2461,"context_line":"            self.assertEqual(expected_method, method)"},{"line_number":2462,"context_line":"            if expected_method \u003d\u003d \u0027get_object_properties_dict\u0027 and tool_status:"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa6399be_ee61753a","line":2459,"range":{"start_line":2456,"start_character":0,"end_line":2459,"end_character":74},"updated":"2016-10-14 08:53:41.000000000","message":"Actually, looking over this again, this was probably a mistake: the \u0027query\u0027 variable created above is also only used in this closure. This should go back where it was, or \u0027query\u0027 should be moved into this closure also. I won\u0027t block on giving bad advice though :)","commit_id":"9934ad512f304d84f6c593dc67c0ed3eaff79bde"},{"author":{"_account_id":18339,"name":"Sivasathurappan Radhakrishnan","email":"siva.radhakrishnan@intel.com","username":"sivakrishnan"},"change_message_id":"802959db84430763fcb4d8ba5d0a7bb1ea70bbbc","unresolved":false,"context_lines":[{"line_number":2453,"context_line":"        query[\u0027summary.guest.toolsRunningStatus\u0027] \u003d \"guestToolsRunning\""},{"line_number":2454,"context_line":""},{"line_number":2455,"context_line":"        def fake_call_method(module, method, *args, **kwargs):"},{"line_number":2456,"context_line":"            query_no_toolstatus \u003d {}"},{"line_number":2457,"context_line":"            query_no_toolstatus[\u0027runtime.powerState\u0027] \u003d \"poweredOn\""},{"line_number":2458,"context_line":"            query_no_toolstatus[\u0027summary.guest.toolsStatus\u0027] \u003d None"},{"line_number":2459,"context_line":"            query_no_toolstatus[\u0027summary.guest.toolsRunningStatus\u0027] \u003d None"},{"line_number":2460,"context_line":"            expected_method \u003d expected_methods.pop(0)"},{"line_number":2461,"context_line":"            self.assertEqual(expected_method, method)"},{"line_number":2462,"context_line":"            if expected_method \u003d\u003d \u0027get_object_properties_dict\u0027 and tool_status:"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa6399be_fafe0c37","line":2459,"range":{"start_line":2456,"start_character":0,"end_line":2459,"end_character":74},"in_reply_to":"fa6399be_ee61753a","updated":"2016-10-18 18:30:26.000000000","message":"I thought of moving both query and query_no_toolstatus on Ken\u0027ichi\u0027s comments but decided not to change things that were not part of this change. Now I have moved both the variables to within fake_call_method. This makes more sense to me.","commit_id":"9934ad512f304d84f6c593dc67c0ed3eaff79bde"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"63155ef5d649caf7e8814eb89215729fe910000e","unresolved":false,"context_lines":[{"line_number":2462,"context_line":"            if expected_method \u003d\u003d \u0027get_object_properties_dict\u0027 and tool_status:"},{"line_number":2463,"context_line":"                return query"},{"line_number":2464,"context_line":"            elif expected_method \u003d\u003d \u0027get_object_properties_dict\u0027:"},{"line_number":2465,"context_line":"                return query_no_toolstatus"},{"line_number":2466,"context_line":"            elif expected_method \u003d\u003d \u0027ResetVM_Task\u0027:"},{"line_number":2467,"context_line":"                return \u0027fake-task\u0027"},{"line_number":2468,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"fa6399be_5815bd99","line":2465,"updated":"2016-10-14 13:39:18.000000000","message":"Surely what we want to return here is \"{}\" to prove the code works it would otherwise get a key error?\n\nOr more likely, I think you just include the powerState, so you don\u0027t get that exception raising.","commit_id":"9934ad512f304d84f6c593dc67c0ed3eaff79bde"},{"author":{"_account_id":18339,"name":"Sivasathurappan Radhakrishnan","email":"siva.radhakrishnan@intel.com","username":"sivakrishnan"},"change_message_id":"802959db84430763fcb4d8ba5d0a7bb1ea70bbbc","unresolved":false,"context_lines":[{"line_number":2462,"context_line":"            if expected_method \u003d\u003d \u0027get_object_properties_dict\u0027 and tool_status:"},{"line_number":2463,"context_line":"                return query"},{"line_number":2464,"context_line":"            elif expected_method \u003d\u003d \u0027get_object_properties_dict\u0027:"},{"line_number":2465,"context_line":"                return query_no_toolstatus"},{"line_number":2466,"context_line":"            elif expected_method \u003d\u003d \u0027ResetVM_Task\u0027:"},{"line_number":2467,"context_line":"                return \u0027fake-task\u0027"},{"line_number":2468,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"fa6399be_da0b082a","line":2465,"in_reply_to":"fa6399be_5815bd99","updated":"2016-10-18 18:30:26.000000000","message":"Done","commit_id":"9934ad512f304d84f6c593dc67c0ed3eaff79bde"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"68869be1a04daf63db70b2cb533fef0bfbca973f","unresolved":false,"context_lines":[{"line_number":2447,"context_line":"        else:"},{"line_number":2448,"context_line":"            expected_methods.append(\u0027ResetVM_Task\u0027)"},{"line_number":2449,"context_line":""},{"line_number":2450,"context_line":"        query \u003d {}"},{"line_number":2451,"context_line":"        query[\u0027runtime.powerState\u0027] \u003d \"poweredOn\""},{"line_number":2452,"context_line":"        query[\u0027summary.guest.toolsStatus\u0027] \u003d \"toolsOk\""},{"line_number":2453,"context_line":"        query[\u0027summary.guest.toolsRunningStatus\u0027] \u003d \"guestToolsRunning\""},{"line_number":2454,"context_line":""},{"line_number":2455,"context_line":"        def fake_call_method(module, method, *args, **kwargs):"},{"line_number":2456,"context_line":"            query \u003d {}"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa6399be_9caa65d1","line":2453,"range":{"start_line":2450,"start_character":0,"end_line":2453,"end_character":71},"updated":"2016-10-18 22:55:08.000000000","message":"This query seems unnecessary now..","commit_id":"d69469eaf46aeea34c4811c10d285607e4d369af"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"68869be1a04daf63db70b2cb533fef0bfbca973f","unresolved":false,"context_lines":[{"line_number":2453,"context_line":"        query[\u0027summary.guest.toolsRunningStatus\u0027] \u003d \"guestToolsRunning\""},{"line_number":2454,"context_line":""},{"line_number":2455,"context_line":"        def fake_call_method(module, method, *args, **kwargs):"},{"line_number":2456,"context_line":"            query \u003d {}"},{"line_number":2457,"context_line":"            query[\u0027runtime.powerState\u0027] \u003d \"poweredOn\""},{"line_number":2458,"context_line":"            query[\u0027summary.guest.toolsStatus\u0027] \u003d \"toolsOk\""},{"line_number":2459,"context_line":"            query[\u0027summary.guest.toolsRunningStatus\u0027] \u003d \"guestToolsRunning\""},{"line_number":2460,"context_line":"            query_no_toolstatus \u003d {}"},{"line_number":2461,"context_line":"            query_no_toolstatus[\u0027runtime.powerState\u0027] \u003d \"poweredOn\""},{"line_number":2462,"context_line":"            expected_method \u003d expected_methods.pop(0)"},{"line_number":2463,"context_line":"            self.assertEqual(expected_method, method)"},{"line_number":2464,"context_line":"            if expected_method \u003d\u003d \u0027get_object_properties_dict\u0027 and tool_status:"},{"line_number":2465,"context_line":"                return query"},{"line_number":2466,"context_line":"            elif expected_method \u003d\u003d \u0027get_object_properties_dict\u0027:"},{"line_number":2467,"context_line":"                return query_no_toolstatus"},{"line_number":2468,"context_line":"            elif expected_method \u003d\u003d \u0027ResetVM_Task\u0027:"},{"line_number":2469,"context_line":"                return \u0027fake-task\u0027"},{"line_number":2470,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"fa6399be_fc3601b3","line":2467,"range":{"start_line":2456,"start_character":0,"end_line":2467,"end_character":42},"updated":"2016-10-18 22:55:08.000000000","message":"How about just liking:\n\n def fake_call_method(..\n     expected_method \u003d expected_methods.pop(0)\n     self.assertEqual(expected_method, method)\n     if expected_method \u003d\u003d \u0027get_object_properties_dict\u0027 and tool_status:\n         return {\n             \"runtime.powerState\": \"poweredOn\",\n             \"summary.guest.toolsStatus\": \"toolsOk\",\n             \"summary.guest.toolsRunningStatus\": \"guestToolsRunning\"}\n     elif expected_method \u003d\u003d \u0027get_object_properties_dict\u0027:\n         return {\"runtime.powerState\": \"poweredOn\"}\n     else:\n         ...","commit_id":"d69469eaf46aeea34c4811c10d285607e4d369af"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"644a01e7196139a58c1a9b504e4f89905f7e34fe","unresolved":false,"context_lines":[{"line_number":2453,"context_line":"        query[\u0027summary.guest.toolsRunningStatus\u0027] \u003d \"guestToolsRunning\""},{"line_number":2454,"context_line":""},{"line_number":2455,"context_line":"        def fake_call_method(module, method, *args, **kwargs):"},{"line_number":2456,"context_line":"            query \u003d {}"},{"line_number":2457,"context_line":"            query[\u0027runtime.powerState\u0027] \u003d \"poweredOn\""},{"line_number":2458,"context_line":"            query[\u0027summary.guest.toolsStatus\u0027] \u003d \"toolsOk\""},{"line_number":2459,"context_line":"            query[\u0027summary.guest.toolsRunningStatus\u0027] \u003d \"guestToolsRunning\""},{"line_number":2460,"context_line":"            query_no_toolstatus \u003d {}"},{"line_number":2461,"context_line":"            query_no_toolstatus[\u0027runtime.powerState\u0027] \u003d \"poweredOn\""},{"line_number":2462,"context_line":"            expected_method \u003d expected_methods.pop(0)"},{"line_number":2463,"context_line":"            self.assertEqual(expected_method, method)"},{"line_number":2464,"context_line":"            if expected_method \u003d\u003d \u0027get_object_properties_dict\u0027 and tool_status:"},{"line_number":2465,"context_line":"                return query"},{"line_number":2466,"context_line":"            elif expected_method \u003d\u003d \u0027get_object_properties_dict\u0027:"},{"line_number":2467,"context_line":"                return query_no_toolstatus"},{"line_number":2468,"context_line":"            elif expected_method \u003d\u003d \u0027ResetVM_Task\u0027:"},{"line_number":2469,"context_line":"                return \u0027fake-task\u0027"},{"line_number":2470,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"fa6399be_edb8f8c9","line":2467,"range":{"start_line":2456,"start_character":0,"end_line":2467,"end_character":42},"in_reply_to":"fa6399be_fc3601b3","updated":"2016-10-19 10:41:48.000000000","message":"Oh yeah - much better","commit_id":"d69469eaf46aeea34c4811c10d285607e4d369af"}],"nova/virt/vmwareapi/vmops.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"e5856ee4d33791a3fd2d9e68e140a5a6f9d46b2b","unresolved":false,"context_lines":[{"line_number":1024,"context_line":"                                           \"get_object_properties_dict\","},{"line_number":1025,"context_line":"                                           vm_ref,"},{"line_number":1026,"context_line":"                                           lst_properties)"},{"line_number":1027,"context_line":"        pwr_state \u003d props.get(\u0027runtime.powerState\u0027)"},{"line_number":1028,"context_line":"        tools_status \u003d props.get(\u0027summary.guest.toolsStatus\u0027)"},{"line_number":1029,"context_line":"        tools_running_status \u003d props.get(\u0027summary.guest.toolsRunningStatus\u0027)"},{"line_number":1030,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa7ab95a_abc50e3e","line":1027,"range":{"start_line":1027,"start_character":20,"end_line":1027,"end_character":51},"updated":"2016-09-01 00:32:42.000000000","message":"I guess the situation the key doesn\u0027t exist is unexpected because of line 1031. So what is a root problem of this bug?\n\nThe commit message doesn\u0027t show it, and it is better to do that. (The cloud doesn\u0027t contain some necessary tools?)","commit_id":"dafbb511fb65198137873d8a1e63183f6d7d4d4b"},{"author":{"_account_id":18339,"name":"Sivasathurappan Radhakrishnan","email":"siva.radhakrishnan@intel.com","username":"sivakrishnan"},"change_message_id":"c55ea39d539c2383e610635b93943103b9c42957","unresolved":false,"context_lines":[{"line_number":1024,"context_line":"                                           \"get_object_properties_dict\","},{"line_number":1025,"context_line":"                                           vm_ref,"},{"line_number":1026,"context_line":"                                           lst_properties)"},{"line_number":1027,"context_line":"        pwr_state \u003d props.get(\u0027runtime.powerState\u0027)"},{"line_number":1028,"context_line":"        tools_status \u003d props.get(\u0027summary.guest.toolsStatus\u0027)"},{"line_number":1029,"context_line":"        tools_running_status \u003d props.get(\u0027summary.guest.toolsRunningStatus\u0027)"},{"line_number":1030,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a89bdaa_d9abe5d4","line":1027,"range":{"start_line":1027,"start_character":20,"end_line":1027,"end_character":51},"in_reply_to":"fa7ab95a_abc50e3e","updated":"2016-09-06 16:41:13.000000000","message":"I am not sure what do you mean by unexpected? I have enhanced my commit message. Please let me know if that helps.","commit_id":"dafbb511fb65198137873d8a1e63183f6d7d4d4b"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"63155ef5d649caf7e8814eb89215729fe910000e","unresolved":false,"context_lines":[{"line_number":1027,"context_line":"                                           \"get_object_properties_dict\","},{"line_number":1028,"context_line":"                                           vm_ref,"},{"line_number":1029,"context_line":"                                           lst_properties)"},{"line_number":1030,"context_line":"        pwr_state \u003d props.get(\u0027runtime.powerState\u0027)"},{"line_number":1031,"context_line":"        tools_status \u003d props.get(\u0027summary.guest.toolsStatus\u0027)"},{"line_number":1032,"context_line":"        tools_running_status \u003d props.get(\u0027summary.guest.toolsRunningStatus\u0027)"},{"line_number":1033,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"fa6399be_b85c197e","line":1030,"updated":"2016-10-14 13:39:18.000000000","message":"The git commit seems to suggest powerState is always present, why are we using get() here? I guess there is no halm in it.","commit_id":"9934ad512f304d84f6c593dc67c0ed3eaff79bde"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"2f3223d306067c97de8a68b1b5829f68a409324d","unresolved":false,"context_lines":[{"line_number":1027,"context_line":"                                           \"get_object_properties_dict\","},{"line_number":1028,"context_line":"                                           vm_ref,"},{"line_number":1029,"context_line":"                                           lst_properties)"},{"line_number":1030,"context_line":"        pwr_state \u003d props.get(\u0027runtime.powerState\u0027)"},{"line_number":1031,"context_line":"        tools_status \u003d props.get(\u0027summary.guest.toolsStatus\u0027)"},{"line_number":1032,"context_line":"        tools_running_status \u003d props.get(\u0027summary.guest.toolsRunningStatus\u0027)"},{"line_number":1033,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"fa6399be_e01fa8b4","line":1030,"in_reply_to":"fa6399be_b85c197e","updated":"2016-10-14 19:15:48.000000000","message":"I think the intention is to get something more meaningful on the line 1035 rather than KeyError. At least it\u0027s my understanding:)\nP.S. on the other hand, I\u0027d prefer to see instance\u0027s power_state in a reason for debug purposes","commit_id":"9934ad512f304d84f6c593dc67c0ed3eaff79bde"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"5824a8b33965c3b802c638982ef09cd8d2b4cb91","unresolved":false,"context_lines":[{"line_number":1027,"context_line":"                                           \"get_object_properties_dict\","},{"line_number":1028,"context_line":"                                           vm_ref,"},{"line_number":1029,"context_line":"                                           lst_properties)"},{"line_number":1030,"context_line":"        pwr_state \u003d props.get(\u0027runtime.powerState\u0027)"},{"line_number":1031,"context_line":"        tools_status \u003d props.get(\u0027summary.guest.toolsStatus\u0027)"},{"line_number":1032,"context_line":"        tools_running_status \u003d props.get(\u0027summary.guest.toolsRunningStatus\u0027)"},{"line_number":1033,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"5a74a57a_16565129","line":1030,"range":{"start_line":1030,"start_character":26,"end_line":1030,"end_character":29},"updated":"2016-11-23 18:00:02.000000000","message":"Nit: I would prefer if we didn\u0027t change this one, the key error was because summary.guest was missing I thought? Anyways, it seems safe enough.","commit_id":"d3c7396d87681b82327c59c27fe14cf5e20c3ba5"}]}
