)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"6fb50fa63aa9e907e8f82bf89fd6205b31fea56b","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     lisali \u003cxiaoyan.li@intel.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-09-02 06:05:32 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Transfer volumd id not object during RPC call"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When transferring volume object through RPC call, it becomes"},{"line_number":10,"context_line":"dict objects during RPC call. The attributes/preoperties"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"da20952f_46720e7e","line":7,"updated":"2015-09-02 09:42:12.000000000","message":"s/volumd/volume/","commit_id":"d86933dcf6fd23788e6f786500189aeb936cb40d"},{"author":{"_account_id":16258,"name":"nikesh","email":"nike.niec@gmail.com","username":"nikem"},"change_message_id":"de4c083596335f950c82b5cef4a4c0f68b13f59d","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Fix KeyError"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When transferring volume object through RPC call, it becomes"},{"line_number":10,"context_line":"dict objects during RPC call. The attributes/preoperties"},{"line_number":11,"context_line":"of the type can\u0027t be used."},{"line_number":12,"context_line":"As a result, to get volume[\u0027name\u0027] raises KeyError."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"da20952f_b39dd3bd","line":10,"updated":"2015-09-06 09:38:21.000000000","message":"preoperties/properties","commit_id":"934902d1cdc27c7980b495850a9a793edc5a343f"},{"author":{"_account_id":15961,"name":"lisali","email":"xiaoyan.li@intel.com","username":"lisali"},"change_message_id":"89a0c9b940a96c533ed9b5f1ee4a394c7ff515dd","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Fix KeyError"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When transferring volume object through RPC call, it becomes"},{"line_number":10,"context_line":"dict objects during RPC call. The attributes/preoperties"},{"line_number":11,"context_line":"of the type can\u0027t be used."},{"line_number":12,"context_line":"As a result, to get volume[\u0027name\u0027] raises KeyError."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"da20952f_d00cd094","line":10,"in_reply_to":"da20952f_b39dd3bd","updated":"2015-09-08 03:22:00.000000000","message":"Done","commit_id":"934902d1cdc27c7980b495850a9a793edc5a343f"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"c49ad86e1fb9ba8a1b5b0319dd9168333fd244e3","unresolved":false,"context_lines":[{"line_number":9,"context_line":"When transferring volume object through RPC call, it becomes"},{"line_number":10,"context_line":"dict objects during RPC call. The attributes/preoperties"},{"line_number":11,"context_line":"of the type can\u0027t be used."},{"line_number":12,"context_line":"As a result, to get volume[\u0027name\u0027] raises KeyError."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"The fix is to fix the problem by retrieving volume object."},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"da20952f_f5754697","line":12,"updated":"2015-09-08 01:30:50.000000000","message":"volume[\u0027name\u0027] is part of the db object, see https://github.com/openstack/cinder/blob/master/cinder/db/sqlalchemy/models.py#L134.  I do not believe this patch is the correct solution.  The launchpad bug does not contain a full stack trace or give enough info.  Could you post the full stack trace?","commit_id":"934902d1cdc27c7980b495850a9a793edc5a343f"},{"author":{"_account_id":15961,"name":"lisali","email":"xiaoyan.li@intel.com","username":"lisali"},"change_message_id":"d8065f84db87bd830a3b80e01cc941549252c942","unresolved":false,"context_lines":[{"line_number":9,"context_line":"When transferring volume object through RPC call, it becomes"},{"line_number":10,"context_line":"dict objects during RPC call. The attributes/preoperties"},{"line_number":11,"context_line":"of the type can\u0027t be used."},{"line_number":12,"context_line":"As a result, to get volume[\u0027name\u0027] raises KeyError."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"The fix is to fix the problem by retrieving volume object."},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"da20952f_2db25c07","line":12,"in_reply_to":"da20952f_0147291e","updated":"2015-09-09 06:23:12.000000000","message":"This is debug. The problem of the bug is that db volume module object doesn\u0027t implement the serialization/deserialization. \nWith oslo.versionObject, it is done. \n\nAnyway, the result of dir(volume) is:\n\n\u003e /opt/stack/cinder/cinder/volume/manager.py(3025)update_migrated_volume()\n-\u003e try:\n(Pdb) print dir(volume)\n[\u0027__class__\u0027, \u0027__cmp__\u0027, \u0027__contains__\u0027, \u0027__delattr__\u0027, \u0027__delitem__\u0027, \u0027__doc__\u0027, \u0027__eq__\u0027, \u0027__format__\u0027, \u0027__ge__\u0027, \u0027__getattribute__\u0027, \u0027__getitem__\u0027, \u0027__gt__\u0027, \u0027__hash__\u0027, \u0027__init__\u0027, \u0027__iter__\u0027, \u0027__le__\u0027, \u0027__len__\u0027, \u0027__lt__\u0027, \u0027__ne__\u0027, \u0027__new__\u0027, \u0027__reduce__\u0027, \u0027__reduce_ex__\u0027, \u0027__repr__\u0027, \u0027__setattr__\u0027, \u0027__setitem__\u0027, \u0027__sizeof__\u0027, \u0027__str__\u0027, \u0027__subclasshook__\u0027, \u0027clear\u0027, \u0027copy\u0027, \u0027fromkeys\u0027, \u0027get\u0027, \u0027has_key\u0027, \u0027items\u0027, \u0027iteritems\u0027, \u0027iterkeys\u0027, \u0027itervalues\u0027, \u0027keys\u0027, \u0027pop\u0027, \u0027popitem\u0027, \u0027setdefault\u0027, \u0027update\u0027, \u0027values\u0027, \u0027viewitems\u0027, \u0027viewkeys\u0027, \u0027viewvalues\u0027]\n(Pdb)","commit_id":"934902d1cdc27c7980b495850a9a793edc5a343f"},{"author":{"_account_id":10628,"name":"Peter Wang","email":"peter.wang13@emc.com","username":"peter_wang"},"change_message_id":"b7474ffddea14ee6a7848e290e6989dc34b48bc9","unresolved":false,"context_lines":[{"line_number":9,"context_line":"When transferring volume object through RPC call, it becomes"},{"line_number":10,"context_line":"dict objects during RPC call. The attributes/preoperties"},{"line_number":11,"context_line":"of the type can\u0027t be used."},{"line_number":12,"context_line":"As a result, to get volume[\u0027name\u0027] raises KeyError."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"The fix is to fix the problem by retrieving volume object."},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"da20952f_db56d0cd","line":12,"in_reply_to":"da20952f_2db25c07","updated":"2015-09-10 01:52:35.000000000","message":"Thanks you Lisa","commit_id":"934902d1cdc27c7980b495850a9a793edc5a343f"},{"author":{"_account_id":10628,"name":"Peter Wang","email":"peter.wang13@emc.com","username":"peter_wang"},"change_message_id":"5ce07c7023669479ebf7eeab8b69c1cd0e651813","unresolved":false,"context_lines":[{"line_number":9,"context_line":"When transferring volume object through RPC call, it becomes"},{"line_number":10,"context_line":"dict objects during RPC call. The attributes/preoperties"},{"line_number":11,"context_line":"of the type can\u0027t be used."},{"line_number":12,"context_line":"As a result, to get volume[\u0027name\u0027] raises KeyError."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"The fix is to fix the problem by retrieving volume object."},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"da20952f_0147291e","line":12,"in_reply_to":"da20952f_f0ea340e","updated":"2015-09-09 02:52:31.000000000","message":"Hi Lisa\ncan you elaborate the volume dict?\nplease use `dir(volume)` and `dir(new_volume)`.\n\nThanks\nPeter","commit_id":"934902d1cdc27c7980b495850a9a793edc5a343f"},{"author":{"_account_id":15961,"name":"lisali","email":"xiaoyan.li@intel.com","username":"lisali"},"change_message_id":"b702800f6269e205e8c4259b5bea3d1a21d5c98a","unresolved":false,"context_lines":[{"line_number":9,"context_line":"When transferring volume object through RPC call, it becomes"},{"line_number":10,"context_line":"dict objects during RPC call. The attributes/preoperties"},{"line_number":11,"context_line":"of the type can\u0027t be used."},{"line_number":12,"context_line":"As a result, to get volume[\u0027name\u0027] raises KeyError."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"The fix is to fix the problem by retrieving volume object."},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"da20952f_f0ea340e","line":12,"in_reply_to":"da20952f_f5754697","updated":"2015-09-08 02:49:36.000000000","message":"Hi Thang, I add a break point here https://github.com/openstack/cinder/blob/master/cinder/volume/manager.py#L3019\n(Pdb) print type(volume)\n\u003ctype \u0027dict\u0027\u003e\n(Pdb) print type(new_volume)\n\u003ctype \u0027dict\u0027\u003e\nAs they are dictionary, not Volume object. So volume[\u0027name\u0027] raise KeyError.\nThe reason is that  during the call,  \nhttps://github.com/openstack/cinder/blob/master/cinder/volume/manager.py#L1733\nvolume is got by \nvolume \u003d self.db.volume_get(ctxt, volume_id)\n\nSeems that this is not correct, need to got by objects.Volume.get_by_id","commit_id":"934902d1cdc27c7980b495850a9a793edc5a343f"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"ab8bc6cd7f0b8d8d5601b5d5097b4d3c4cd08e3e","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     lisali \u003cxiaoyan.li@intel.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-09-08 03:22:43 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix KeyError"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When transferring volume object through RPC call, it becomes"},{"line_number":10,"context_line":"dict objects during RPC call. The attributes/properties"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"da20952f_c8a7370a","line":7,"updated":"2015-09-08 10:52:55.000000000","message":"Please, add more user friendly commit message","commit_id":"0b6bd94cde4e7ff02c11246da0e7741f87c90f8c"}],"cinder/volume/manager.py":[{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"294301c8c90a8db821fac51da72702845c444b8a","unresolved":false,"context_lines":[{"line_number":1729,"context_line":"        # Give driver (new_volume) a chance to update things as needed"},{"line_number":1730,"context_line":"        # after a successful migration."},{"line_number":1731,"context_line":"        # Note this needs to go through rpc to the host of the new volume"},{"line_number":1732,"context_line":"        # the current host and driver object is for the \"existing\" volume."},{"line_number":1733,"context_line":"        rpcapi.update_migrated_volume(ctxt, volume, new_volume,"},{"line_number":1734,"context_line":"                                      orig_volume_status)"},{"line_number":1735,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_300f7938","line":1732,"updated":"2015-09-06 09:22:09.000000000","message":"Is it possible that you add the lines\nvolume \u003d objects.Volume.get_by_id(ctxt, volume[\u0027id\u0027])\nnew_volume \u003d objects.Volume.get_by_id(ctxt, new_volume[\u0027id\u0027])\nin this method migrate_volume_completion?\n\nvolume and new_volume are retrieved here anyway, if they are retrieved here, is it possible that pass them through the rpc? If so, we can save the \u0027volume get\u0027 once.","commit_id":"934902d1cdc27c7980b495850a9a793edc5a343f"},{"author":{"_account_id":15961,"name":"lisali","email":"xiaoyan.li@intel.com","username":"lisali"},"change_message_id":"3a67602a721b133affaa289c85b874409c5ba129","unresolved":false,"context_lines":[{"line_number":1729,"context_line":"        # Give driver (new_volume) a chance to update things as needed"},{"line_number":1730,"context_line":"        # after a successful migration."},{"line_number":1731,"context_line":"        # Note this needs to go through rpc to the host of the new volume"},{"line_number":1732,"context_line":"        # the current host and driver object is for the \"existing\" volume."},{"line_number":1733,"context_line":"        rpcapi.update_migrated_volume(ctxt, volume, new_volume,"},{"line_number":1734,"context_line":"                                      orig_volume_status)"},{"line_number":1735,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_c889a970","line":1732,"in_reply_to":"da20952f_300f7938","updated":"2015-09-07 01:02:31.000000000","message":"Vicent, thank you. You are right.","commit_id":"934902d1cdc27c7980b495850a9a793edc5a343f"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"70551ab3db009097c6a7374e6681104af7946f6c","unresolved":false,"context_lines":[{"line_number":3017,"context_line":"                               volume_status):"},{"line_number":3018,"context_line":"        \"\"\"Finalize migration process on backend device.\"\"\""},{"line_number":3019,"context_line":"        model_update \u003d None"},{"line_number":3020,"context_line":"        # This is temporary fix for bug 1491210."},{"line_number":3021,"context_line":"        volume \u003d self.db.volume_get(ctxt, volume[\u0027id\u0027])"},{"line_number":3022,"context_line":"        new_volume \u003d self.db.volume_get(ctxt, new_volume[\u0027id\u0027])"},{"line_number":3023,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":7,"id":"da20952f_9d04957e","line":3020,"updated":"2015-09-11 09:20:10.000000000","message":"TODO is also needed here, if we use object all over place, this change should be removed.","commit_id":"647cff38fe412d2a31c6ed3f77cc1da1e73a8424"}],"cinder/volume/rpcapi.py":[{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"d6294dc67289645c71b6b2323df2902d25278d25","unresolved":false,"context_lines":[{"line_number":74,"context_line":"               update_consistencygroup() and delete_consistencygroup()."},{"line_number":75,"context_line":"        1.27 - Adds support for replication V2"},{"line_number":76,"context_line":"        1.28 - Adds manage_existing_snapshot"},{"line_number":77,"context_line":"        1.29 - Adds get_capabilities."},{"line_number":78,"context_line":"        1.30 - Adds remove_export"},{"line_number":79,"context_line":"    \"\"\""},{"line_number":80,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"da20952f_a3b43cd1","line":77,"updated":"2015-09-02 09:26:28.000000000","message":"And make sure to document the version change here.","commit_id":"d86933dcf6fd23788e6f786500189aeb936cb40d"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"d6294dc67289645c71b6b2323df2902d25278d25","unresolved":false,"context_lines":[{"line_number":264,"context_line":"    def update_migrated_volume(self, ctxt, volume, new_volume,"},{"line_number":265,"context_line":"                               original_volume_status):"},{"line_number":266,"context_line":"        host \u003d utils.extract_host(new_volume[\u0027host\u0027])"},{"line_number":267,"context_line":"        cctxt \u003d self.client.prepare(server\u003dhost, version\u003d\u00271.20\u0027)"},{"line_number":268,"context_line":"        cctxt.call(ctxt,"},{"line_number":269,"context_line":"                   \u0027update_migrated_volume\u0027,"},{"line_number":270,"context_line":"                   volume_id\u003dvolume[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":1,"id":"da20952f_83afb87c","line":267,"updated":"2015-09-02 09:26:28.000000000","message":"If RPC version bump is inevitable, the new version will have to the latest version+0.01 (1.31).","commit_id":"d86933dcf6fd23788e6f786500189aeb936cb40d"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"d6294dc67289645c71b6b2323df2902d25278d25","unresolved":false,"context_lines":[{"line_number":267,"context_line":"        cctxt \u003d self.client.prepare(server\u003dhost, version\u003d\u00271.20\u0027)"},{"line_number":268,"context_line":"        cctxt.call(ctxt,"},{"line_number":269,"context_line":"                   \u0027update_migrated_volume\u0027,"},{"line_number":270,"context_line":"                   volume_id\u003dvolume[\u0027id\u0027],"},{"line_number":271,"context_line":"                   new_volume_id\u003dnew_volume[\u0027id\u0027],"},{"line_number":272,"context_line":"                   original_volume_status\u003doriginal_volume_status)"},{"line_number":273,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"da20952f_03ade887","line":270,"updated":"2015-09-02 09:26:28.000000000","message":"Is there any way we can pass serialized volume object over RPC?  Having to bump RPC version due to volume object is kinda lost.","commit_id":"d86933dcf6fd23788e6f786500189aeb936cb40d"}]}
