)]}'
{"cinder/volume/drivers/vmware/vmdk.py":[{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"84f86a8dbf8b2e7d4771ece510a268e7b21ceb8f","unresolved":false,"context_lines":[{"line_number":85,"context_line":"                 help\u003d\u0027The interval (in seconds) for polling remote tasks \u0027"},{"line_number":86,"context_line":"                      \u0027invoked on VMware ESX/VC server.\u0027),"},{"line_number":87,"context_line":"    cfg.StrOpt(\u0027vmware_volume_folder\u0027,"},{"line_number":88,"context_line":"               default\u003d\u0027Volumes\u0027,"},{"line_number":89,"context_line":"               help\u003d\u0027Name for the folder in the VC datacenter that will \u0027"},{"line_number":90,"context_line":"                    \u0027contain cinder volumes. This folder will be created \u0027"},{"line_number":91,"context_line":"                    \u0027under OpenStack/\u003cproject_folder\u003e, where project_folder \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_332593c1","line":88,"updated":"2015-07-31 21:52:21.000000000","message":"Changing a default can break backwards compatibility.","commit_id":"6ac82d05e5bf99ab24acc8b3a04ac93d9afd1829"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"d9f2e5c40d73e803285afbefebba80c627c27a02","unresolved":false,"context_lines":[{"line_number":85,"context_line":"                 help\u003d\u0027The interval (in seconds) for polling remote tasks \u0027"},{"line_number":86,"context_line":"                      \u0027invoked on VMware ESX/VC server.\u0027),"},{"line_number":87,"context_line":"    cfg.StrOpt(\u0027vmware_volume_folder\u0027,"},{"line_number":88,"context_line":"               default\u003d\u0027Volumes\u0027,"},{"line_number":89,"context_line":"               help\u003d\u0027Name for the folder in the VC datacenter that will \u0027"},{"line_number":90,"context_line":"                    \u0027contain cinder volumes. This folder will be created \u0027"},{"line_number":91,"context_line":"                    \u0027under OpenStack/\u003cproject_folder\u003e, where project_folder \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_136e2c2f","line":88,"in_reply_to":"3a50d1a3_332593c1","updated":"2015-08-03 10:39:55.000000000","message":"We don\u0027t use this value for any operation other than volume creation. So this is backwards compatible. Volumes created before this change/release will work without any issues.","commit_id":"6ac82d05e5bf99ab24acc8b3a04ac93d9afd1829"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"84f86a8dbf8b2e7d4771ece510a268e7b21ceb8f","unresolved":false,"context_lines":[{"line_number":86,"context_line":"                      \u0027invoked on VMware ESX/VC server.\u0027),"},{"line_number":87,"context_line":"    cfg.StrOpt(\u0027vmware_volume_folder\u0027,"},{"line_number":88,"context_line":"               default\u003d\u0027Volumes\u0027,"},{"line_number":89,"context_line":"               help\u003d\u0027Name for the folder in the VC datacenter that will \u0027"},{"line_number":90,"context_line":"                    \u0027contain cinder volumes. This folder will be created \u0027"},{"line_number":91,"context_line":"                    \u0027under OpenStack/\u003cproject_folder\u003e, where project_folder \u0027"},{"line_number":92,"context_line":"                    \u0027is of format \u003cvolume_project_name\u003e \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_7311db5c","line":89,"updated":"2015-07-31 21:52:21.000000000","message":"Use product name of vCenter not VC.","commit_id":"6ac82d05e5bf99ab24acc8b3a04ac93d9afd1829"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"d9f2e5c40d73e803285afbefebba80c627c27a02","unresolved":false,"context_lines":[{"line_number":86,"context_line":"                      \u0027invoked on VMware ESX/VC server.\u0027),"},{"line_number":87,"context_line":"    cfg.StrOpt(\u0027vmware_volume_folder\u0027,"},{"line_number":88,"context_line":"               default\u003d\u0027Volumes\u0027,"},{"line_number":89,"context_line":"               help\u003d\u0027Name for the folder in the VC datacenter that will \u0027"},{"line_number":90,"context_line":"                    \u0027contain cinder volumes. This folder will be created \u0027"},{"line_number":91,"context_line":"                    \u0027under OpenStack/\u003cproject_folder\u003e, where project_folder \u0027"},{"line_number":92,"context_line":"                    \u0027is of format \u003cvolume_project_name\u003e \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_9360fc36","line":89,"in_reply_to":"3a50d1a3_7311db5c","updated":"2015-08-03 10:39:55.000000000","message":"Done","commit_id":"6ac82d05e5bf99ab24acc8b3a04ac93d9afd1829"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"84f86a8dbf8b2e7d4771ece510a268e7b21ceb8f","unresolved":false,"context_lines":[{"line_number":89,"context_line":"               help\u003d\u0027Name for the folder in the VC datacenter that will \u0027"},{"line_number":90,"context_line":"                    \u0027contain cinder volumes. This folder will be created \u0027"},{"line_number":91,"context_line":"                    \u0027under OpenStack/\u003cproject_folder\u003e, where project_folder \u0027"},{"line_number":92,"context_line":"                    \u0027is of format \u003cvolume_project_name\u003e \u0027"},{"line_number":93,"context_line":"                    \u0027(\u003cvolume_project_id\u003e).\u0027),"},{"line_number":94,"context_line":"    cfg.IntOpt(\u0027vmware_image_transfer_timeout_secs\u0027,"},{"line_number":95,"context_line":"               default\u003d7200,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_2e13ec5d","line":92,"updated":"2015-07-31 21:52:21.000000000","message":"This differs from the code.  The code uses hard-coded \"Project (\u003cpojrect_id\u003e)","commit_id":"6ac82d05e5bf99ab24acc8b3a04ac93d9afd1829"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"d9f2e5c40d73e803285afbefebba80c627c27a02","unresolved":false,"context_lines":[{"line_number":89,"context_line":"               help\u003d\u0027Name for the folder in the VC datacenter that will \u0027"},{"line_number":90,"context_line":"                    \u0027contain cinder volumes. This folder will be created \u0027"},{"line_number":91,"context_line":"                    \u0027under OpenStack/\u003cproject_folder\u003e, where project_folder \u0027"},{"line_number":92,"context_line":"                    \u0027is of format \u003cvolume_project_name\u003e \u0027"},{"line_number":93,"context_line":"                    \u0027(\u003cvolume_project_id\u003e).\u0027),"},{"line_number":94,"context_line":"    cfg.IntOpt(\u0027vmware_image_transfer_timeout_secs\u0027,"},{"line_number":95,"context_line":"               default\u003d7200,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_1355cc4e","line":92,"in_reply_to":"3a50d1a3_2e13ec5d","updated":"2015-08-03 10:39:55.000000000","message":"Done","commit_id":"6ac82d05e5bf99ab24acc8b3a04ac93d9afd1829"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"84f86a8dbf8b2e7d4771ece510a268e7b21ceb8f","unresolved":false,"context_lines":[{"line_number":1859,"context_line":"        :return: Reference to the inventory folder"},{"line_number":1860,"context_line":"        \"\"\""},{"line_number":1861,"context_line":"        volume_folder_name \u003d self.configuration.vmware_volume_folder"},{"line_number":1862,"context_line":"        project_folder_name \u003d \"Project (%s)\" % project_id"},{"line_number":1863,"context_line":"        folder_names \u003d [\u0027OpenStack\u0027, project_folder_name, volume_folder_name]"},{"line_number":1864,"context_line":"        return self.volumeops.create_vm_inventory_folder(datacenter,"},{"line_number":1865,"context_line":"                                                         folder_names)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_6e1fb45b","line":1862,"updated":"2015-07-31 21:52:21.000000000","message":"Note for above","commit_id":"6ac82d05e5bf99ab24acc8b3a04ac93d9afd1829"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"84f86a8dbf8b2e7d4771ece510a268e7b21ceb8f","unresolved":false,"context_lines":[{"line_number":1860,"context_line":"        \"\"\""},{"line_number":1861,"context_line":"        volume_folder_name \u003d self.configuration.vmware_volume_folder"},{"line_number":1862,"context_line":"        project_folder_name \u003d \"Project (%s)\" % project_id"},{"line_number":1863,"context_line":"        folder_names \u003d [\u0027OpenStack\u0027, project_folder_name, volume_folder_name]"},{"line_number":1864,"context_line":"        return self.volumeops.create_vm_inventory_folder(datacenter,"},{"line_number":1865,"context_line":"                                                         folder_names)"},{"line_number":1866,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_6e56d407","line":1863,"updated":"2015-07-31 21:52:21.000000000","message":"Instead of \"Project (\u003cproject_id\u003e)\", why not use \"\u003cproject name\u003e (\u003cproject_id\u003e)?  \n\nAlso, what about hierarchical projects?  Or what about domains?","commit_id":"6ac82d05e5bf99ab24acc8b3a04ac93d9afd1829"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"d9f2e5c40d73e803285afbefebba80c627c27a02","unresolved":false,"context_lines":[{"line_number":1860,"context_line":"        \"\"\""},{"line_number":1861,"context_line":"        volume_folder_name \u003d self.configuration.vmware_volume_folder"},{"line_number":1862,"context_line":"        project_folder_name \u003d \"Project (%s)\" % project_id"},{"line_number":1863,"context_line":"        folder_names \u003d [\u0027OpenStack\u0027, project_folder_name, volume_folder_name]"},{"line_number":1864,"context_line":"        return self.volumeops.create_vm_inventory_folder(datacenter,"},{"line_number":1865,"context_line":"                                                         folder_names)"},{"line_number":1866,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_93631c1a","line":1863,"in_reply_to":"3a50d1a3_6e56d407","updated":"2015-08-03 10:39:55.000000000","message":"Project name is not available in the volume meta-data. Our goal is to reduce clutter in vSphere client\u0027s inventory view and I think it is sufficient to use the leaf-level project instead of having a 1:1 mapping between OpenStack project hierarchy and vCenter inventory folder hierarchy.","commit_id":"6ac82d05e5bf99ab24acc8b3a04ac93d9afd1829"},{"author":{"_account_id":14377,"name":"Apoorva","email":"apps.desh@gmail.com","username":"apoorvad"},"change_message_id":"b1eef36381cba926491a3ce8f6e1a9c9a6e50608","unresolved":false,"context_lines":[{"line_number":85,"context_line":"                 help\u003d\u0027The interval (in seconds) for polling remote tasks \u0027"},{"line_number":86,"context_line":"                      \u0027invoked on VMware ESX/VC server.\u0027),"},{"line_number":87,"context_line":"    cfg.StrOpt(\u0027vmware_volume_folder\u0027,"},{"line_number":88,"context_line":"               default\u003d\u0027Volumes\u0027,"},{"line_number":89,"context_line":"               help\u003d\u0027Name of the vCenter inventory folder that will \u0027"},{"line_number":90,"context_line":"                    \u0027contain Cinder volumes. This folder will be created \u0027"},{"line_number":91,"context_line":"                    \u0027under OpenStack/\u003cproject_folder\u003e, where project_folder \u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a4dcd0f_29090496","line":88,"updated":"2015-08-03 18:19:33.000000000","message":"Is capitalization expected?","commit_id":"4c69d61eee6d74ba40b631f1106570d596922fc5"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"843b45baad2fda50107f4c84c208e87f54e94bc7","unresolved":false,"context_lines":[{"line_number":85,"context_line":"                 help\u003d\u0027The interval (in seconds) for polling remote tasks \u0027"},{"line_number":86,"context_line":"                      \u0027invoked on VMware ESX/VC server.\u0027),"},{"line_number":87,"context_line":"    cfg.StrOpt(\u0027vmware_volume_folder\u0027,"},{"line_number":88,"context_line":"               default\u003d\u0027Volumes\u0027,"},{"line_number":89,"context_line":"               help\u003d\u0027Name of the vCenter inventory folder that will \u0027"},{"line_number":90,"context_line":"                    \u0027contain Cinder volumes. This folder will be created \u0027"},{"line_number":91,"context_line":"                    \u0027under OpenStack/\u003cproject_folder\u003e, where project_folder \u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a4dcd0f_e59c8e6b","line":88,"in_reply_to":"1a4dcd0f_29090496","updated":"2015-08-04 04:41:55.000000000","message":"Yes.\nSee https://review.openstack.org/#/c/165060","commit_id":"4c69d61eee6d74ba40b631f1106570d596922fc5"},{"author":{"_account_id":14377,"name":"Apoorva","email":"apps.desh@gmail.com","username":"apoorvad"},"change_message_id":"b1eef36381cba926491a3ce8f6e1a9c9a6e50608","unresolved":false,"context_lines":[{"line_number":89,"context_line":"               help\u003d\u0027Name of the vCenter inventory folder that will \u0027"},{"line_number":90,"context_line":"                    \u0027contain Cinder volumes. This folder will be created \u0027"},{"line_number":91,"context_line":"                    \u0027under OpenStack/\u003cproject_folder\u003e, where project_folder \u0027"},{"line_number":92,"context_line":"                    \u0027is of format Project (\u003cvolume_project_id\u003e).\u0027),"},{"line_number":93,"context_line":"    cfg.IntOpt(\u0027vmware_image_transfer_timeout_secs\u0027,"},{"line_number":94,"context_line":"               default\u003d7200,"},{"line_number":95,"context_line":"               help\u003d\u0027Timeout in seconds for VMDK volume transfer between \u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a4dcd0f_29a6e4c1","line":92,"updated":"2015-08-03 18:19:33.000000000","message":"Maybe in quotation \"Project (\u003cvolume_project_id\u003e)\"","commit_id":"4c69d61eee6d74ba40b631f1106570d596922fc5"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"843b45baad2fda50107f4c84c208e87f54e94bc7","unresolved":false,"context_lines":[{"line_number":89,"context_line":"               help\u003d\u0027Name of the vCenter inventory folder that will \u0027"},{"line_number":90,"context_line":"                    \u0027contain Cinder volumes. This folder will be created \u0027"},{"line_number":91,"context_line":"                    \u0027under OpenStack/\u003cproject_folder\u003e, where project_folder \u0027"},{"line_number":92,"context_line":"                    \u0027is of format Project (\u003cvolume_project_id\u003e).\u0027),"},{"line_number":93,"context_line":"    cfg.IntOpt(\u0027vmware_image_transfer_timeout_secs\u0027,"},{"line_number":94,"context_line":"               default\u003d7200,"},{"line_number":95,"context_line":"               help\u003d\u0027Timeout in seconds for VMDK volume transfer between \u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a4dcd0f_65871e10","line":92,"in_reply_to":"1a4dcd0f_29a6e4c1","updated":"2015-08-04 04:41:55.000000000","message":"Done","commit_id":"4c69d61eee6d74ba40b631f1106570d596922fc5"}],"cinder/volume/drivers/vmware/volumeops.py":[{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"84f86a8dbf8b2e7d4771ece510a268e7b21ceb8f","unresolved":false,"context_lines":[{"line_number":566,"context_line":"                                                      child_folder_name)"},{"line_number":567,"context_line":"        return child_folder"},{"line_number":568,"context_line":""},{"line_number":569,"context_line":"    def create_vm_inventory_folder(self, datacenter, path_comp):"},{"line_number":570,"context_line":"        \"\"\"Create and return a VM inventory folder."},{"line_number":571,"context_line":""},{"line_number":572,"context_line":"        This method caches references to inventory folders returned."}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_b330c308","line":569,"updated":"2015-07-31 21:52:21.000000000","message":"Patch https://review.openstack.org/#/c/165060/ does something similar.  Can we just move this to oslo.vmware to remove some duplication.","commit_id":"6ac82d05e5bf99ab24acc8b3a04ac93d9afd1829"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"d9f2e5c40d73e803285afbefebba80c627c27a02","unresolved":false,"context_lines":[{"line_number":566,"context_line":"                                                      child_folder_name)"},{"line_number":567,"context_line":"        return child_folder"},{"line_number":568,"context_line":""},{"line_number":569,"context_line":"    def create_vm_inventory_folder(self, datacenter, path_comp):"},{"line_number":570,"context_line":"        \"\"\"Create and return a VM inventory folder."},{"line_number":571,"context_line":""},{"line_number":572,"context_line":"        This method caches references to inventory folders returned."}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_45970b90","line":569,"in_reply_to":"3a50d1a3_b330c308","updated":"2015-08-03 10:39:55.000000000","message":"Sure, we can do it. But I wish not to block this patch until we have an oslo.vmware release with this method. I\u0027ll work on the oslo.vmware patch in parallel. Depending on the review state, I will update the patch or replace this method in a separate commit.","commit_id":"6ac82d05e5bf99ab24acc8b3a04ac93d9afd1829"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"32ef7d194b2729d7a06c793106feef3c30529fb0","unresolved":false,"context_lines":[{"line_number":575,"context_line":"        This method caches references to inventory folders returned."},{"line_number":576,"context_line":""},{"line_number":577,"context_line":"        :param datacenter: Reference to datacenter"},{"line_number":578,"context_line":"        :param path: Path components as a list"},{"line_number":579,"context_line":"        \"\"\""},{"line_number":580,"context_line":"        LOG.debug(\"Creating inventory folder: %(path_comp)s under VM folder \""},{"line_number":581,"context_line":"                  \"of datacenter: %(datacenter)s.\","}],"source_content_type":"text/x-python","patch_set":8,"id":"1a4dcd0f_85a57805","line":578,"updated":"2015-08-04 11:09:01.000000000","message":"s/path/path_comp","commit_id":"39e39435522c51b26276ce4bce223374a7228563"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"67be9efcee4282a4b38535b5eebd57ed0d681ede","unresolved":false,"context_lines":[{"line_number":575,"context_line":"        This method caches references to inventory folders returned."},{"line_number":576,"context_line":""},{"line_number":577,"context_line":"        :param datacenter: Reference to datacenter"},{"line_number":578,"context_line":"        :param path: Path components as a list"},{"line_number":579,"context_line":"        \"\"\""},{"line_number":580,"context_line":"        LOG.debug(\"Creating inventory folder: %(path_comp)s under VM folder \""},{"line_number":581,"context_line":"                  \"of datacenter: %(datacenter)s.\","}],"source_content_type":"text/x-python","patch_set":8,"id":"1a4dcd0f_ab5c0326","line":578,"in_reply_to":"1a4dcd0f_85a57805","updated":"2015-08-04 11:35:11.000000000","message":"Done","commit_id":"39e39435522c51b26276ce4bce223374a7228563"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"a539c25ebf78feb28221b2b6bcc775b7069cc5d4","unresolved":false,"context_lines":[{"line_number":586,"context_line":"            parent \u003d self.get_vmfolder(datacenter)"},{"line_number":587,"context_line":"            self._folder_cache[path] \u003d parent"},{"line_number":588,"context_line":""},{"line_number":589,"context_line":"        for folder_name in path_comp:"},{"line_number":590,"context_line":"            path \u003d \"/\".join([path, folder_name])"},{"line_number":591,"context_line":"            folder \u003d self._folder_cache.get(path)"},{"line_number":592,"context_line":"            if not folder:"}],"source_content_type":"text/x-python","patch_set":10,"id":"1a4dcd0f_36fd853b","line":589,"updated":"2015-08-17 07:40:58.000000000","message":"If this loop run 0 time, there is a potential danger for\nUnboundLocalError: local variable \u0027folder\u0027 referenced before assignment.","commit_id":"7ef458fca8e13f1e32e5a31c54d8f6639d7706e9"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"723b67bb07bf0586e085071bc6e19f93b6a0081d","unresolved":false,"context_lines":[{"line_number":586,"context_line":"            parent \u003d self.get_vmfolder(datacenter)"},{"line_number":587,"context_line":"            self._folder_cache[path] \u003d parent"},{"line_number":588,"context_line":""},{"line_number":589,"context_line":"        for folder_name in path_comp:"},{"line_number":590,"context_line":"            path \u003d \"/\".join([path, folder_name])"},{"line_number":591,"context_line":"            folder \u003d self._folder_cache.get(path)"},{"line_number":592,"context_line":"            if not folder:"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa1b9901_0ed53b42","line":589,"in_reply_to":"1a4dcd0f_36fd853b","updated":"2015-08-17 11:48:19.000000000","message":"This can happen if path_comp is empty which indicates a programming error. In the current code, it has 3 elements.\n\nDone, initialized folder to None.","commit_id":"7ef458fca8e13f1e32e5a31c54d8f6639d7706e9"}]}
