)]}'
{"nova/tests/virt/vmwareapi/test_vm_util.py":[{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"9fde077badf6c41a9610c9918eeeff6fce80906c","unresolved":false,"context_lines":[{"line_number":531,"context_line":"                         query[\u0027summary.guest.toolsRunningStatus\u0027])"},{"line_number":532,"context_line":"        self.assertEqual(\u0027toolsOk\u0027, query[\u0027summary.guest.toolsStatus\u0027])"},{"line_number":533,"context_line":""},{"line_number":534,"context_line":"    def test_get_dictionary(self):"},{"line_number":535,"context_line":"        objects \u003d self._create_fake_vm_objects()"},{"line_number":536,"context_line":"        lst_properties \u003d [\"summary.config\","},{"line_number":537,"context_line":"                          \"summary.quickStats\","}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUX%2F%2B3dM%3D","line":534,"updated":"2014-02-18 14:31:01.000000000","message":"nit: consider to move this in test_vmops.py and rename it to test_get_diagnostics","commit_id":"4ef4d8208bb6e6bd631fd25284cca51293acd108"}],"nova/virt/vmwareapi/vm_util.py":[{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"778d2d73a142e6cf09efdd2484927f21a2f43866","unresolved":false,"context_lines":[{"line_number":1155,"context_line":"    return dictionary"},{"line_number":1156,"context_line":""},{"line_number":1157,"context_line":""},{"line_number":1158,"context_line":"def get_values_from_object_properties(session, props, query):"},{"line_number":1159,"context_line":"    while props:"},{"line_number":1160,"context_line":"        for elem in props.objects:"},{"line_number":1161,"context_line":"            for prop in elem.propSet:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2BqUc%3D","line":1158,"updated":"2013-11-21 21:42:58.000000000","message":"consider returning \u0027query\u0027 at the end to make it consistent with the previous method; One would expect that get_XXX will return a value","commit_id":"1aeb81438621a00f0685f30cd8c3cf4b79ec5db6"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"eed3e99cb291af58057583ee65e6f3df94aa83a2","unresolved":false,"context_lines":[{"line_number":1155,"context_line":"    return dictionary"},{"line_number":1156,"context_line":""},{"line_number":1157,"context_line":""},{"line_number":1158,"context_line":"def get_values_from_object_properties(session, props, query):"},{"line_number":1159,"context_line":"    while props:"},{"line_number":1160,"context_line":"        for elem in props.objects:"},{"line_number":1161,"context_line":"            for prop in elem.propSet:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2BjIU%3D","line":1158,"in_reply_to":"AAAATn%2F%2BqUc%3D","updated":"2013-11-24 08:00:57.000000000","message":"Done","commit_id":"1aeb81438621a00f0685f30cd8c3cf4b79ec5db6"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"36ffa485ae946d67ec030c6ef522a7d2813e51f7","unresolved":false,"context_lines":[{"line_number":1153,"context_line":"                if prop.name in requested:"},{"line_number":1154,"context_line":"                    prop_dict \u003d vim.object_to_dict(prop.val,"},{"line_number":1155,"context_line":"                                                   list_depth\u003ddepth)"},{"line_number":1156,"context_line":"                    dictionary.update(prop_dict)"},{"line_number":1157,"context_line":"        token \u003d _get_token(props)"},{"line_number":1158,"context_line":"        if not token:"},{"line_number":1159,"context_line":"            break"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAUX%2F%2B98k%3D","line":1156,"updated":"2014-02-17 22:45:21.000000000","message":"This is pretty...hard to read. It\u0027d be really nice if it could be a little cleaner (i.e. not nested so very deeply), but it definitely needs a docstring.","commit_id":"1b1df38449a16bc3660e51127cd537ed693fbbf5"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"0e30a8f224264faeaab03c42cc80d36a2ec10ca6","unresolved":false,"context_lines":[{"line_number":1153,"context_line":"                if prop.name in requested:"},{"line_number":1154,"context_line":"                    prop_dict \u003d vim.object_to_dict(prop.val,"},{"line_number":1155,"context_line":"                                                   list_depth\u003ddepth)"},{"line_number":1156,"context_line":"                    dictionary.update(prop_dict)"},{"line_number":1157,"context_line":"        token \u003d _get_token(props)"},{"line_number":1158,"context_line":"        if not token:"},{"line_number":1159,"context_line":"            break"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAUX%2F%2B4n4%3D","line":1156,"in_reply_to":"AAAAUX%2F%2B98k%3D","updated":"2014-02-18 12:33:16.000000000","message":"I have moved this code to vmops where it is used for the diagnostics","commit_id":"1b1df38449a16bc3660e51127cd537ed693fbbf5"},{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"50155c32238c1dca6733c5792c0046bb8319365a","unresolved":false,"context_lines":[{"line_number":1164,"context_line":"    return dictionary"},{"line_number":1165,"context_line":""},{"line_number":1166,"context_line":""},{"line_number":1167,"context_line":"def get_values_from_object_properties(session, props, properties):"},{"line_number":1168,"context_line":"    query \u003d {}"},{"line_number":1169,"context_line":"    while props:"},{"line_number":1170,"context_line":"        for elem in props.objects:"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAUX%2F%2FrlA%3D","line":1167,"updated":"2014-02-11 14:52:52.000000000","message":"it\u0027s a bit confusing to have two functions with different names that both return dictionary from object properties; it\u0027d be nice if we can merge them somehow ...","commit_id":"1b1df38449a16bc3660e51127cd537ed693fbbf5"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"0e30a8f224264faeaab03c42cc80d36a2ec10ca6","unresolved":false,"context_lines":[{"line_number":1164,"context_line":"    return dictionary"},{"line_number":1165,"context_line":""},{"line_number":1166,"context_line":""},{"line_number":1167,"context_line":"def get_values_from_object_properties(session, props, properties):"},{"line_number":1168,"context_line":"    query \u003d {}"},{"line_number":1169,"context_line":"    while props:"},{"line_number":1170,"context_line":"        for elem in props.objects:"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAUX%2F%2B4oI%3D","line":1167,"in_reply_to":"AAAAUX%2F%2B984%3D","updated":"2014-02-18 12:33:16.000000000","message":"I have done what you guys have suggested.","commit_id":"1b1df38449a16bc3660e51127cd537ed693fbbf5"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"36ffa485ae946d67ec030c6ef522a7d2813e51f7","unresolved":false,"context_lines":[{"line_number":1164,"context_line":"    return dictionary"},{"line_number":1165,"context_line":""},{"line_number":1166,"context_line":""},{"line_number":1167,"context_line":"def get_values_from_object_properties(session, props, properties):"},{"line_number":1168,"context_line":"    query \u003d {}"},{"line_number":1169,"context_line":"    while props:"},{"line_number":1170,"context_line":"        for elem in props.objects:"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAUX%2F%2B984%3D","line":1167,"in_reply_to":"AAAAUX%2F%2FrlA%3D","updated":"2014-02-17 22:45:21.000000000","message":"Agreed. Can\u0027t the above function process the result from the below one to generate what it needs?","commit_id":"1b1df38449a16bc3660e51127cd537ed693fbbf5"},{"author":{"_account_id":7629,"name":"Shawn Hartsock","email":"hartsock@acm.org","username":"hartsocks"},"change_message_id":"17516963c3b75ac5c4ac9c3444419959d43261de","unresolved":false,"context_lines":[{"line_number":1349,"context_line":"    return vmdk_adapter_type"},{"line_number":1350,"context_line":""},{"line_number":1351,"context_line":""},{"line_number":1352,"context_line":"def get_values_from_object_properties(session, props, properties):"},{"line_number":1353,"context_line":"    \"\"\"Get the specific values from a object list."},{"line_number":1354,"context_line":""},{"line_number":1355,"context_line":"    The object values will be returned as a dictionary. The keys for the"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAWH%2F91gY%3D","line":1352,"updated":"2014-04-01 19:10:23.000000000","message":"look at \u0027propset_dict\u0027 it already does most of this, you could leverage that in your work here.","commit_id":"bf83ef5b59f83ad7ed155868bf9964fb6be41d84"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"198b67b507ee46b880f6b85ed04db5d0357751f1","unresolved":false,"context_lines":[{"line_number":1349,"context_line":"    return vmdk_adapter_type"},{"line_number":1350,"context_line":""},{"line_number":1351,"context_line":""},{"line_number":1352,"context_line":"def get_values_from_object_properties(session, props, properties):"},{"line_number":1353,"context_line":"    \"\"\"Get the specific values from a object list."},{"line_number":1354,"context_line":""},{"line_number":1355,"context_line":"    The object values will be returned as a dictionary. The keys for the"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAWH%2F9v8Y%3D","line":1352,"in_reply_to":"AAAAWH%2F91gY%3D","updated":"2014-04-02 12:04:01.000000000","message":"Done","commit_id":"bf83ef5b59f83ad7ed155868bf9964fb6be41d84"}],"nova/virt/vmwareapi/vmops.py":[{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"a198a39f1d6d06c40d69607637831988a0174595","unresolved":false,"context_lines":[{"line_number":885,"context_line":"        query \u003d {\u0027runtime.powerState\u0027: None,"},{"line_number":886,"context_line":"                 \u0027summary.guest.toolsStatus\u0027: None,"},{"line_number":887,"context_line":"                 \u0027summary.guest.toolsRunningStatus\u0027: False}"},{"line_number":888,"context_line":"        vm_util.get_values_from_object_properties(self._session, props, query)"},{"line_number":889,"context_line":"        pwr_state \u003d query[\u0027runtime.powerState\u0027]"},{"line_number":890,"context_line":"        tools_status \u003d query[\u0027summary.guest.toolsStatus\u0027]"},{"line_number":891,"context_line":"        tools_running_status \u003d query[\u0027summary.guest.toolsRunningStatus\u0027]"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUX%2F%2F1fU%3D","line":888,"updated":"2014-02-10 14:54:55.000000000","message":"consider the following change:\n\nvalues \u003d vm_util.get_values_from_object_properties(self._session, props, lst_properties)\n\nthe function accept a list of keys and returns a dictionary with key-values;\nthis way we can avoid the repetition of property names above","commit_id":"de2e4de322f6a229583e44ce53d0c8f3d92012a6"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"de93748b8c41d67eb7415cbd06c89c7e6bd9abce","unresolved":false,"context_lines":[{"line_number":885,"context_line":"        query \u003d {\u0027runtime.powerState\u0027: None,"},{"line_number":886,"context_line":"                 \u0027summary.guest.toolsStatus\u0027: None,"},{"line_number":887,"context_line":"                 \u0027summary.guest.toolsRunningStatus\u0027: False}"},{"line_number":888,"context_line":"        vm_util.get_values_from_object_properties(self._session, props, query)"},{"line_number":889,"context_line":"        pwr_state \u003d query[\u0027runtime.powerState\u0027]"},{"line_number":890,"context_line":"        tools_status \u003d query[\u0027summary.guest.toolsStatus\u0027]"},{"line_number":891,"context_line":"        tools_running_status \u003d query[\u0027summary.guest.toolsRunningStatus\u0027]"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUX%2F%2Fstc%3D","line":888,"in_reply_to":"AAAAUX%2F%2F1fU%3D","updated":"2014-02-11 11:59:01.000000000","message":"very nice suggestion","commit_id":"de2e4de322f6a229583e44ce53d0c8f3d92012a6"},{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"50155c32238c1dca6733c5792c0046bb8319365a","unresolved":false,"context_lines":[{"line_number":877,"context_line":"        vm_ref \u003d vm_util.get_vm_ref(self._session, instance)"},{"line_number":878,"context_line":"        lst_properties \u003d [\"summary.guest.toolsStatus\", \"runtime.powerState\","},{"line_number":879,"context_line":"                          \"summary.guest.toolsRunningStatus\"]"},{"line_number":880,"context_line":"        props \u003d self._session._call_method(vim_util, \"get_object_properties\","},{"line_number":881,"context_line":"                           None, vm_ref, \"VirtualMachine\","},{"line_number":882,"context_line":"                           lst_properties)"},{"line_number":883,"context_line":"        query \u003d vm_util.get_values_from_object_properties(self._session, props,"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAUX%2F%2Frn0%3D","line":880,"updated":"2014-02-11 14:52:52.000000000","message":"not part of this change but it would be really nice if this method returns directly what we need, so we don\u0027t have to call another utility function on the next line\n\nthe general problem is that we expose too much implementation details from vSphere in the high-level methods of the driver; we need to fix this in the long term","commit_id":"1b1df38449a16bc3660e51127cd537ed693fbbf5"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"0e30a8f224264faeaab03c42cc80d36a2ec10ca6","unresolved":false,"context_lines":[{"line_number":877,"context_line":"        vm_ref \u003d vm_util.get_vm_ref(self._session, instance)"},{"line_number":878,"context_line":"        lst_properties \u003d [\"summary.guest.toolsStatus\", \"runtime.powerState\","},{"line_number":879,"context_line":"                          \"summary.guest.toolsRunningStatus\"]"},{"line_number":880,"context_line":"        props \u003d self._session._call_method(vim_util, \"get_object_properties\","},{"line_number":881,"context_line":"                           None, vm_ref, \"VirtualMachine\","},{"line_number":882,"context_line":"                           lst_properties)"},{"line_number":883,"context_line":"        query \u003d vm_util.get_values_from_object_properties(self._session, props,"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAUX%2F%2B4nY%3D","line":880,"in_reply_to":"AAAAUX%2F%2Frn0%3D","updated":"2014-02-18 12:33:16.000000000","message":"i agree, but it is not part of this patch set","commit_id":"1b1df38449a16bc3660e51127cd537ed693fbbf5"}]}
