)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10326,"name":"Xiang BZ Zhou","email":"zhouxbj@cn.ibm.com","username":"zhoux"},"change_message_id":"662f444bfaf877c76cb36740e8ac246b2928b2b1","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Calculate the set of updates for each existing filter in the session."},{"line_number":10,"context_line":"Return UpdateSet since the passed in version or null if there are no"},{"line_number":11,"context_line":"changes."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Iae04b7b2780a7f4d7b37d48368eb39a43da14f7b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAAVn%2F%2FSQ4%3D","line":12,"updated":"2014-03-07 02:17:05.000000000","message":"need add a blueprint in oslo.vmware or other projects.","commit_id":"fe22b3b7b8cc675f89bae953a0dd794001ad45b6"},{"author":{"_account_id":10326,"name":"Xiang BZ Zhou","email":"zhouxbj@cn.ibm.com","username":"zhoux"},"change_message_id":"b024d8b9c40f23efeeb225ebd6efce45d93d3d6c","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Xiang BZ Zhou \u003czhouxbj@cn.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-03-11 10:50:16 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"WIP: Wrapper for WaitForUpdatesEx in Vmware Vspere SDK"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Calculate the set of updates for each existing filter in the session."},{"line_number":10,"context_line":"Return UpdateSet since the passed in version or null if there are no"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAAVn%2F%2B8YA%3D","line":7,"updated":"2014-03-11 05:45:42.000000000","message":"vsphere","commit_id":"c92edda97076f80b90f4c5916b35094b8a91763a"},{"author":{"_account_id":10326,"name":"Xiang BZ Zhou","email":"zhouxbj@cn.ibm.com","username":"zhoux"},"change_message_id":"c59b6aa4f873397ac215c42a4493efbf4b7612bd","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Xiang BZ Zhou \u003czhouxbj@cn.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-03-11 10:50:16 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"WIP: Wrapper for WaitForUpdatesEx in Vmware Vspere SDK"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Calculate the set of updates for each existing filter in the session."},{"line_number":10,"context_line":"Return UpdateSet since the passed in version or null if there are no"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAAWH%2F%2Fips%3D","line":7,"in_reply_to":"AAAAVn%2F%2B8YA%3D","updated":"2014-03-17 07:55:25.000000000","message":"Done","commit_id":"c92edda97076f80b90f4c5916b35094b8a91763a"}],"oslo/vmware/vim_util.py":[{"author":{"_account_id":10326,"name":"Xiang BZ Zhou","email":"zhouxbj@cn.ibm.com","username":"zhoux"},"change_message_id":"662f444bfaf877c76cb36740e8ac246b2928b2b1","unresolved":false,"context_lines":[{"line_number":414,"context_line":"                                                      [object_spec])"},{"line_number":415,"context_line":"    options \u003d client_factory.create(\u0027ns0:WaitOptions\u0027)"},{"line_number":416,"context_line":"    options.maxObjectUpdates\u003d3"},{"line_number":417,"context_line":"    options.maxWaitSeconds\u003d12"},{"line_number":418,"context_line":"    property_collecotr\u003dvim.service_content.propertyCollector"},{"line_number":419,"context_line":"    vim.CreateFilter(property_collecotr, spec\u003dproperty_filter_spec, partialUpdates\u003dFalse)"},{"line_number":420,"context_line":"    return vim.WaitForUpdatesEx(property_collecotr, options\u003doptions)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAVn%2F%2FSQI%3D","line":417,"updated":"2014-03-07 02:17:05.000000000","message":"wait second and object should be passed by  function parameter.","commit_id":"fe22b3b7b8cc675f89bae953a0dd794001ad45b6"},{"author":{"_account_id":10326,"name":"Xiang BZ Zhou","email":"zhouxbj@cn.ibm.com","username":"zhoux"},"change_message_id":"662f444bfaf877c76cb36740e8ac246b2928b2b1","unresolved":false,"context_lines":[{"line_number":417,"context_line":"    options.maxWaitSeconds\u003d12"},{"line_number":418,"context_line":"    property_collecotr\u003dvim.service_content.propertyCollector"},{"line_number":419,"context_line":"    vim.CreateFilter(property_collecotr, spec\u003dproperty_filter_spec, partialUpdates\u003dFalse)"},{"line_number":420,"context_line":"    return vim.WaitForUpdatesEx(property_collecotr, options\u003doptions)"},{"line_number":421,"context_line":""},{"line_number":422,"context_line":"def get_object_property_wfu(vim, moref, property_name):"},{"line_number":423,"context_line":"    \"\"\"Get property of the given managed object."}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAVn%2F%2FSP4%3D","line":420,"updated":"2014-03-07 02:17:05.000000000","message":"add version control here","commit_id":"fe22b3b7b8cc675f89bae953a0dd794001ad45b6"},{"author":{"_account_id":7148,"name":"Zhu Zhu","email":"bjzzu.zz@gmail.com","username":"zhuzhubj"},"change_message_id":"f97fb4031c35858e4198a1c25ce3e84dfe9ecab9","unresolved":false,"context_lines":[{"line_number":423,"context_line":"    options.maxWaitSeconds \u003d max_wait_seconds"},{"line_number":424,"context_line":"    property_collector \u003d vim.service_content.propertyCollector"},{"line_number":425,"context_line":"    vim.CreateFilter(property_collector, spec\u003dproperty_filter_spec,"},{"line_number":426,"context_line":"                     partialUpdates\u003dTrue)"},{"line_number":427,"context_line":"    result_version \u003d \u0027\u0027"},{"line_number":428,"context_line":"    change_set \u003d {}"},{"line_number":429,"context_line":"    for i in xrange(max_try):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAVn%2F%2BxVQ%3D","line":426,"updated":"2014-03-12 09:19:25.000000000","message":"Create Filter better support multiple MOR types and proerties. Consider to change the method to board the use","commit_id":"c92edda97076f80b90f4c5916b35094b8a91763a"},{"author":{"_account_id":10326,"name":"Xiang BZ Zhou","email":"zhouxbj@cn.ibm.com","username":"zhoux"},"change_message_id":"c59b6aa4f873397ac215c42a4493efbf4b7612bd","unresolved":false,"context_lines":[{"line_number":423,"context_line":"    options.maxWaitSeconds \u003d max_wait_seconds"},{"line_number":424,"context_line":"    property_collector \u003d vim.service_content.propertyCollector"},{"line_number":425,"context_line":"    vim.CreateFilter(property_collector, spec\u003dproperty_filter_spec,"},{"line_number":426,"context_line":"                     partialUpdates\u003dTrue)"},{"line_number":427,"context_line":"    result_version \u003d \u0027\u0027"},{"line_number":428,"context_line":"    change_set \u003d {}"},{"line_number":429,"context_line":"    for i in xrange(max_try):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2Fipg%3D","line":426,"in_reply_to":"AAAAVn%2F%2BxVQ%3D","updated":"2014-03-17 07:55:25.000000000","message":"Done","commit_id":"c92edda97076f80b90f4c5916b35094b8a91763a"},{"author":{"_account_id":10326,"name":"Xiang BZ Zhou","email":"zhouxbj@cn.ibm.com","username":"zhoux"},"change_message_id":"b024d8b9c40f23efeeb225ebd6efce45d93d3d6c","unresolved":false,"context_lines":[{"line_number":426,"context_line":"                     partialUpdates\u003dTrue)"},{"line_number":427,"context_line":"    result_version \u003d \u0027\u0027"},{"line_number":428,"context_line":"    change_set \u003d {}"},{"line_number":429,"context_line":"    for i in xrange(max_try):"},{"line_number":430,"context_line":"        result \u003d vim.WaitForUpdatesEx(property_collector,"},{"line_number":431,"context_line":"                                      version\u003dresult_version, options\u003doptions)"},{"line_number":432,"context_line":"        if result is None:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAVn%2F%2B8Xo%3D","line":429,"updated":"2014-03-11 05:45:42.000000000","message":"i\u0027m afraid this loop might be moved to the caller side","commit_id":"c92edda97076f80b90f4c5916b35094b8a91763a"},{"author":{"_account_id":10326,"name":"Xiang BZ Zhou","email":"zhouxbj@cn.ibm.com","username":"zhoux"},"change_message_id":"c59b6aa4f873397ac215c42a4493efbf4b7612bd","unresolved":false,"context_lines":[{"line_number":426,"context_line":"                     partialUpdates\u003dTrue)"},{"line_number":427,"context_line":"    result_version \u003d \u0027\u0027"},{"line_number":428,"context_line":"    change_set \u003d {}"},{"line_number":429,"context_line":"    for i in xrange(max_try):"},{"line_number":430,"context_line":"        result \u003d vim.WaitForUpdatesEx(property_collector,"},{"line_number":431,"context_line":"                                      version\u003dresult_version, options\u003doptions)"},{"line_number":432,"context_line":"        if result is None:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2FipM%3D","line":429,"in_reply_to":"AAAAVn%2F%2B8Xo%3D","updated":"2014-03-17 07:55:25.000000000","message":"Done","commit_id":"c92edda97076f80b90f4c5916b35094b8a91763a"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"03ff2725fb365f28e96cacb488fcb87df2cb51a2","unresolved":false,"context_lines":[{"line_number":427,"context_line":"    result_version \u003d \u0027\u0027"},{"line_number":428,"context_line":"    change_set \u003d {}"},{"line_number":429,"context_line":"    for i in xrange(max_try):"},{"line_number":430,"context_line":"        result \u003d vim.WaitForUpdatesEx(property_collector,"},{"line_number":431,"context_line":"                                      version\u003dresult_version, options\u003doptions)"},{"line_number":432,"context_line":"        if result is None:"},{"line_number":433,"context_line":"            break"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2F%2FsU%3D","line":430,"updated":"2014-03-12 13:33:09.000000000","message":"This model can\u0027t work, because VC doesn\u0027t support concurrent calls to WaitForUpdatesEx. IIUC, in order for this model to work you would have to create a new PropertyCollector object for each filter.\n\nWhile I believe the code needs this, I think it\u0027s going to need a substantially different architecture. I was thinking perhaps a dedicated greenthread to run WaitForUpdatesEx. A caller would register with the thread, create a filter, then block waiting for a notification from the control thread.","commit_id":"c92edda97076f80b90f4c5916b35094b8a91763a"},{"author":{"_account_id":10326,"name":"Xiang BZ Zhou","email":"zhouxbj@cn.ibm.com","username":"zhoux"},"change_message_id":"c59b6aa4f873397ac215c42a4493efbf4b7612bd","unresolved":false,"context_lines":[{"line_number":427,"context_line":"    result_version \u003d \u0027\u0027"},{"line_number":428,"context_line":"    change_set \u003d {}"},{"line_number":429,"context_line":"    for i in xrange(max_try):"},{"line_number":430,"context_line":"        result \u003d vim.WaitForUpdatesEx(property_collector,"},{"line_number":431,"context_line":"                                      version\u003dresult_version, options\u003doptions)"},{"line_number":432,"context_line":"        if result is None:"},{"line_number":433,"context_line":"            break"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2FimA%3D","line":430,"in_reply_to":"AAAAWH%2F%2F%2FsU%3D","updated":"2014-03-17 07:55:25.000000000","message":"thx a lot for review.\nAs you described before, the loop logic do cause concurrent issue.\nSo ?i consider split this function into two parts. The 1st one wrapper waitforupdateex function in olso.wmware and the 2nd one wrapper the loopcall logic.\nI think it may be better than simply wrapper waitforupdateex function as retrievepropertiesex.","commit_id":"c92edda97076f80b90f4c5916b35094b8a91763a"},{"author":{"_account_id":7148,"name":"Zhu Zhu","email":"bjzzu.zz@gmail.com","username":"zhuzhubj"},"change_message_id":"f97fb4031c35858e4198a1c25ce3e84dfe9ecab9","unresolved":false,"context_lines":[{"line_number":428,"context_line":"    change_set \u003d {}"},{"line_number":429,"context_line":"    for i in xrange(max_try):"},{"line_number":430,"context_line":"        result \u003d vim.WaitForUpdatesEx(property_collector,"},{"line_number":431,"context_line":"                                      version\u003dresult_version, options\u003doptions)"},{"line_number":432,"context_line":"        if result is None:"},{"line_number":433,"context_line":"            break"},{"line_number":434,"context_line":"        result_version \u003d result.version"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAVn%2F%2BxVw%3D","line":431,"updated":"2014-03-12 09:19:25.000000000","message":"Can you please separate the code for filter creation and checkforupdate? As everytime, user call get_object_update_set it will do a waitForupdate, this would cause concurrent issues in VC.","commit_id":"c92edda97076f80b90f4c5916b35094b8a91763a"},{"author":{"_account_id":10326,"name":"Xiang BZ Zhou","email":"zhouxbj@cn.ibm.com","username":"zhoux"},"change_message_id":"c59b6aa4f873397ac215c42a4493efbf4b7612bd","unresolved":false,"context_lines":[{"line_number":428,"context_line":"    change_set \u003d {}"},{"line_number":429,"context_line":"    for i in xrange(max_try):"},{"line_number":430,"context_line":"        result \u003d vim.WaitForUpdatesEx(property_collector,"},{"line_number":431,"context_line":"                                      version\u003dresult_version, options\u003doptions)"},{"line_number":432,"context_line":"        if result is None:"},{"line_number":433,"context_line":"            break"},{"line_number":434,"context_line":"        result_version \u003d result.version"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2Fio0%3D","line":431,"in_reply_to":"AAAAVn%2F%2BxVw%3D","updated":"2014-03-17 07:55:25.000000000","message":"Done","commit_id":"c92edda97076f80b90f4c5916b35094b8a91763a"},{"author":{"_account_id":10326,"name":"Xiang BZ Zhou","email":"zhouxbj@cn.ibm.com","username":"zhoux"},"change_message_id":"b024d8b9c40f23efeeb225ebd6efce45d93d3d6c","unresolved":false,"context_lines":[{"line_number":433,"context_line":"            break"},{"line_number":434,"context_line":"        result_version \u003d result.version"},{"line_number":435,"context_line":"        change_set[result_version] \u003d result.filterSet[0].objectSet"},{"line_number":436,"context_line":"    return change_set"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAVn%2F%2B8XI%3D","line":436,"updated":"2014-03-11 05:45:42.000000000","message":"raw dict change_set need filter changeSet[] for caller usage","commit_id":"c92edda97076f80b90f4c5916b35094b8a91763a"}],"tests/test_vim_util.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"360205b8babcefc70d8e53965454a3201487e661","unresolved":false,"context_lines":[{"line_number":238,"context_line":"            vim_CreateFilter_side_effect"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"        def vim_WaitForUpdatesEx_side_effect(pc, version, options):"},{"line_number":241,"context_line":"            #import pdb;pdb.set_trace()"},{"line_number":242,"context_line":"            self.assertTrue(pc is vim.service_content.propertyCollector)"},{"line_number":243,"context_line":"            self.assertEqual(max_objects, options.maxObjectUpdates)"},{"line_number":244,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2F%2Fow%3D","line":241,"updated":"2014-03-12 13:39:51.000000000","message":"this comment need to be removed","commit_id":"c92edda97076f80b90f4c5916b35094b8a91763a"},{"author":{"_account_id":10326,"name":"Xiang BZ Zhou","email":"zhouxbj@cn.ibm.com","username":"zhoux"},"change_message_id":"c59b6aa4f873397ac215c42a4493efbf4b7612bd","unresolved":false,"context_lines":[{"line_number":238,"context_line":"            vim_CreateFilter_side_effect"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"        def vim_WaitForUpdatesEx_side_effect(pc, version, options):"},{"line_number":241,"context_line":"            #import pdb;pdb.set_trace()"},{"line_number":242,"context_line":"            self.assertTrue(pc is vim.service_content.propertyCollector)"},{"line_number":243,"context_line":"            self.assertEqual(max_objects, options.maxObjectUpdates)"},{"line_number":244,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2FjD8%3D","line":241,"in_reply_to":"AAAAWH%2F%2F%2Fow%3D","updated":"2014-03-17 07:55:25.000000000","message":"Done","commit_id":"c92edda97076f80b90f4c5916b35094b8a91763a"}]}
