)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"d84254c2e14b11c9eeafb988d02c20d662a0786b","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Vipin Balachandran \u003cvbala@vmware.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-11-14 17:21:54 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Using host mount info for datastore selection"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently the VMDK driver picks a datastore for volume creation based"},{"line_number":10,"context_line":"on space utilization. The shadow VM corresponding to the volume is"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAATn%2F%2B9Ho%3D","line":7,"updated":"2013-11-18 06:04:03.000000000","message":"Please add \"VMDK\" to commit message title.","commit_id":"3f8b12a4d624d8e16432232159b1241ae9da487f"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"364ece9b40d2780310e03ecdb372efccc0ffd882","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Vipin Balachandran \u003cvbala@vmware.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-11-14 17:21:54 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Using host mount info for datastore selection"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently the VMDK driver picks a datastore for volume creation based"},{"line_number":10,"context_line":"on space utilization. The shadow VM corresponding to the volume is"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAATn%2F%2B8D4%3D","line":7,"in_reply_to":"AAAATn%2F%2B9Ho%3D","updated":"2013-11-18 11:20:19.000000000","message":"Done","commit_id":"3f8b12a4d624d8e16432232159b1241ae9da487f"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"d84254c2e14b11c9eeafb988d02c20d662a0786b","unresolved":false,"context_lines":[{"line_number":16,"context_line":"based on space utilization; datastore with low space utilization"},{"line_number":17,"context_line":"is preferred."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Testing done:"},{"line_number":20,"context_line":"Hosts:"},{"line_number":21,"context_line":"h1, h2, h3"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAATn%2F%2B9Hk%3D","line":19,"updated":"2013-11-18 06:04:03.000000000","message":"Please remove this entire testing section.","commit_id":"3f8b12a4d624d8e16432232159b1241ae9da487f"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"364ece9b40d2780310e03ecdb372efccc0ffd882","unresolved":false,"context_lines":[{"line_number":16,"context_line":"based on space utilization; datastore with low space utilization"},{"line_number":17,"context_line":"is preferred."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Testing done:"},{"line_number":20,"context_line":"Hosts:"},{"line_number":21,"context_line":"h1, h2, h3"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAATn%2F%2B8D0%3D","line":19,"in_reply_to":"AAAATn%2F%2B9Hk%3D","updated":"2013-11-18 11:20:19.000000000","message":"Done","commit_id":"3f8b12a4d624d8e16432232159b1241ae9da487f"},{"author":{"_account_id":4355,"name":"Avishay Traeger","email":"avishay@stratoscale.com","username":"avishay-il"},"change_message_id":"d84254c2e14b11c9eeafb988d02c20d662a0786b","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Change-Id: I5ecf22d782857fca0889799229465c49afe188a0"},{"line_number":35,"context_line":"Closes-Bug: #1250816"},{"line_number":36,"context_line":"backport: havana"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAATn%2F%2B9Hg%3D","line":36,"updated":"2013-11-18 06:04:03.000000000","message":"Please remove \"backport: havana\"","commit_id":"3f8b12a4d624d8e16432232159b1241ae9da487f"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"364ece9b40d2780310e03ecdb372efccc0ffd882","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Change-Id: I5ecf22d782857fca0889799229465c49afe188a0"},{"line_number":35,"context_line":"Closes-Bug: #1250816"},{"line_number":36,"context_line":"backport: havana"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAATn%2F%2B8Dw%3D","line":36,"in_reply_to":"AAAATn%2F%2B9Hg%3D","updated":"2013-11-18 11:20:19.000000000","message":"Done","commit_id":"3f8b12a4d624d8e16432232159b1241ae9da487f"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"c21c8bc7d9263fb5205b83f73a496951b63bf693","unresolved":false,"context_lines":[{"line_number":16,"context_line":"based on space utilization; datastore with low space utilization"},{"line_number":17,"context_line":"is preferred."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Change-Id: I5ecf22d782857fca0889799229465c49afe188a0"},{"line_number":20,"context_line":"Closes-Bug: #1250816"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"AAAATn%2F%2BUnU%3D","line":19,"updated":"2013-11-27 12:10:16.000000000","message":"Change ID should be the last line if I am not mistaken. Please correct it.","commit_id":"92c8db20c3ef7a47f416f050e0e182074223eb55"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"bd4e471d84dc0f5d44ba154e5667b3906083b0da","unresolved":false,"context_lines":[{"line_number":16,"context_line":"based on space utilization; datastore with low space utilization"},{"line_number":17,"context_line":"is preferred."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Change-Id: I5ecf22d782857fca0889799229465c49afe188a0"},{"line_number":20,"context_line":"Closes-Bug: #1250816"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"AAAATn%2F%2BUhQ%3D","line":19,"in_reply_to":"AAAATn%2F%2BUnU%3D","updated":"2013-11-27 12:28:30.000000000","message":"Done","commit_id":"92c8db20c3ef7a47f416f050e0e182074223eb55"}],"cinder/tests/test_vmware_vmdk.py":[{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"cb117fa90ef3b6fb03a561fbf5af04cfd97b4a68","unresolved":false,"context_lines":[{"line_number":202,"context_line":"    def test_get_volume_stats(self):"},{"line_number":203,"context_line":"        \"\"\"Test get_volume_stats.\"\"\""},{"line_number":204,"context_line":"        stats \u003d self._driver.get_volume_stats()"},{"line_number":205,"context_line":"        self.assertEqual(stats[\u0027vendor_name\u0027], \u0027VMware\u0027)"},{"line_number":206,"context_line":"        self.assertEqual(stats[\u0027driver_version\u0027], \u00271.0\u0027)"},{"line_number":207,"context_line":"        self.assertEqual(stats[\u0027storage_protocol\u0027], \u0027LSI Logic SCSI\u0027)"},{"line_number":208,"context_line":"        self.assertEqual(stats[\u0027reserved_percentage\u0027], 0)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F93L4%3D","line":205,"updated":"2013-12-05 05:26:47.000000000","message":"This is failing due to driver version bump.  Please fix it.","commit_id":"ba9ef9661b20af835f6bbca0b901e45ab595c637"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"b02a615d94b115e744dd7452e5ca01d7a71b687d","unresolved":false,"context_lines":[{"line_number":202,"context_line":"    def test_get_volume_stats(self):"},{"line_number":203,"context_line":"        \"\"\"Test get_volume_stats.\"\"\""},{"line_number":204,"context_line":"        stats \u003d self._driver.get_volume_stats()"},{"line_number":205,"context_line":"        self.assertEqual(stats[\u0027vendor_name\u0027], \u0027VMware\u0027)"},{"line_number":206,"context_line":"        self.assertEqual(stats[\u0027driver_version\u0027], \u00271.0\u0027)"},{"line_number":207,"context_line":"        self.assertEqual(stats[\u0027storage_protocol\u0027], \u0027LSI Logic SCSI\u0027)"},{"line_number":208,"context_line":"        self.assertEqual(stats[\u0027reserved_percentage\u0027], 0)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F924k%3D","line":205,"in_reply_to":"AAAATn%2F93L4%3D","updated":"2013-12-05 06:53:21.000000000","message":"Done","commit_id":"ba9ef9661b20af835f6bbca0b901e45ab595c637"}],"cinder/volume/drivers/vmware/vmdk.py":[{"author":{"_account_id":8574,"name":"Qin Zhao","username":"zhaoqin","inactive":true},"change_message_id":"17927abc9dd43ae9d476f7c44a5a6c4f8df8443e","unresolved":false,"context_lines":[{"line_number":241,"context_line":"        \"\"\"Compute the space utilization of the given datastore."},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"        :param datastore_summary: Summary of the datastore for which"},{"line_number":244,"context_line":"                                    space utilization is to be computed"},{"line_number":245,"context_line":"        :return: space utilization in the range [0..1]"},{"line_number":246,"context_line":"        \"\"\""},{"line_number":247,"context_line":"        return ("}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2B9IE%3D","line":244,"updated":"2013-11-18 05:45:19.000000000","message":"Why not align \u0027Summary\u0027 and \u0027space\u0027 ?","commit_id":"3f8b12a4d624d8e16432232159b1241ae9da487f"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"364ece9b40d2780310e03ecdb372efccc0ffd882","unresolved":false,"context_lines":[{"line_number":241,"context_line":"        \"\"\"Compute the space utilization of the given datastore."},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"        :param datastore_summary: Summary of the datastore for which"},{"line_number":244,"context_line":"                                    space utilization is to be computed"},{"line_number":245,"context_line":"        :return: space utilization in the range [0..1]"},{"line_number":246,"context_line":"        \"\"\""},{"line_number":247,"context_line":"        return ("}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2B8C4%3D","line":244,"in_reply_to":"AAAATn%2F%2B9IE%3D","updated":"2013-11-18 11:20:19.000000000","message":"Done","commit_id":"3f8b12a4d624d8e16432232159b1241ae9da487f"},{"author":{"_account_id":8574,"name":"Qin Zhao","username":"zhaoqin","inactive":true},"change_message_id":"17927abc9dd43ae9d476f7c44a5a6c4f8df8443e","unresolved":false,"context_lines":[{"line_number":295,"context_line":""},{"line_number":296,"context_line":"        LOG.debug(_(\"Selected datastore: %(datastore)s with %(host_count)d \""},{"line_number":297,"context_line":"                    \"connected host(s) for the \""},{"line_number":298,"context_line":"                    \"volume.\") %"},{"line_number":299,"context_line":"                  {\u0027datastore\u0027: best_summary, \u0027host_count\u0027: max_host_count})"},{"line_number":300,"context_line":"        return best_summary"},{"line_number":301,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2B9IQ%3D","line":298,"updated":"2013-11-18 05:45:19.000000000","message":"Why we need a newline for \u0027 \"volume.\") % \u0027 ?","commit_id":"3f8b12a4d624d8e16432232159b1241ae9da487f"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"364ece9b40d2780310e03ecdb372efccc0ffd882","unresolved":false,"context_lines":[{"line_number":295,"context_line":""},{"line_number":296,"context_line":"        LOG.debug(_(\"Selected datastore: %(datastore)s with %(host_count)d \""},{"line_number":297,"context_line":"                    \"connected host(s) for the \""},{"line_number":298,"context_line":"                    \"volume.\") %"},{"line_number":299,"context_line":"                  {\u0027datastore\u0027: best_summary, \u0027host_count\u0027: max_host_count})"},{"line_number":300,"context_line":"        return best_summary"},{"line_number":301,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2B8Cs%3D","line":298,"in_reply_to":"AAAATn%2F%2B9IQ%3D","updated":"2013-11-18 11:20:19.000000000","message":"Removed newline.","commit_id":"3f8b12a4d624d8e16432232159b1241ae9da487f"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"5a49fc656d5c388ea019c0c8d2c0b8d1908856b2","unresolved":false,"context_lines":[{"line_number":250,"context_line":"        )"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"    def _select_datastore_summary(self, size_bytes, datastores):"},{"line_number":253,"context_line":"        \"\"\"Get the best datastore summary from the given datastore"},{"line_number":254,"context_line":"        list which can accommodate the volume with the given size."},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"        The implementation selects a datastore which is connected to"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2Bsek%3D","line":253,"updated":"2013-11-21 12:54:06.000000000","message":"Please see http://docs.openstack.org/developer/hacking/#docstrings","commit_id":"152bafce8f5554c73b384aa5fdd73d250399ebba"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"312cf2b506fde4febf732ec5080fb0f9614c79f8","unresolved":false,"context_lines":[{"line_number":250,"context_line":"        )"},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"    def _select_datastore_summary(self, size_bytes, datastores):"},{"line_number":253,"context_line":"        \"\"\"Get the best datastore summary from the given datastore"},{"line_number":254,"context_line":"        list which can accommodate the volume with the given size."},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"        The implementation selects a datastore which is connected to"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2BVyk%3D","line":253,"in_reply_to":"AAAATn%2F%2Bsek%3D","updated":"2013-11-27 07:17:31.000000000","message":"Done","commit_id":"152bafce8f5554c73b384aa5fdd73d250399ebba"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"bfeeb223190fa8021fa56800db9da3ab304998e0","unresolved":false,"context_lines":[{"line_number":123,"context_line":""},{"line_number":124,"context_line":"class VMwareEsxVmdkDriver(driver.VolumeDriver):"},{"line_number":125,"context_line":"    \"\"\"Manage volumes on VMware ESX server.\"\"\""},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    VERSION \u003d \u00271.0\u0027"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    def __init__(self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2BI3I%3D","line":126,"updated":"2013-12-02 04:52:18.000000000","message":"I think this fix worth a minor version bump in driver version.","commit_id":"37b7de1274196fa490a6d36e13bcfbf8e01a4de5"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"bfeeb223190fa8021fa56800db9da3ab304998e0","unresolved":false,"context_lines":[{"line_number":290,"context_line":"                    \"from the datastores: %(dss)s.\") % {\u0027size\u0027: size_bytes,"},{"line_number":291,"context_line":"                                                        \u0027dss\u0027: datastores}"},{"line_number":292,"context_line":"            LOG.error(msg)"},{"line_number":293,"context_line":"            raise error_util.VimException(msg)"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"        LOG.debug(_(\"Selected datastore: %(datastore)s with %(host_count)d \""},{"line_number":296,"context_line":"                    \"connected host(s) for the volume.\") %"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2BI1g%3D","line":293,"updated":"2013-12-02 04:52:18.000000000","message":"This exception is not properly handled by the caller of _select_datastore_summary().  So it may bubble straight up to volume RPC API, which is bad.  This may not related to this fix so I suggest you fix it first in a separate patch.","commit_id":"37b7de1274196fa490a6d36e13bcfbf8e01a4de5"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"95019d426fe73c0620367d63d909615b5d816957","unresolved":false,"context_lines":[{"line_number":290,"context_line":"                    \"from the datastores: %(dss)s.\") % {\u0027size\u0027: size_bytes,"},{"line_number":291,"context_line":"                                                        \u0027dss\u0027: datastores}"},{"line_number":292,"context_line":"            LOG.error(msg)"},{"line_number":293,"context_line":"            raise error_util.VimException(msg)"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"        LOG.debug(_(\"Selected datastore: %(datastore)s with %(host_count)d \""},{"line_number":296,"context_line":"                    \"connected host(s) for the volume.\") %"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2BIyg%3D","line":293,"in_reply_to":"AAAATn%2F%2BI1g%3D","updated":"2013-12-02 05:23:15.000000000","message":"This exception (extending CinderException) is raised when there are no valid datastores available for volume creation. Please clarify what sort of handling you are referring to.","commit_id":"37b7de1274196fa490a6d36e13bcfbf8e01a4de5"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"1ffc4a0723a63c1a59252a88f08e074209c047b0","unresolved":false,"context_lines":[{"line_number":290,"context_line":"                    \"from the datastores: %(dss)s.\") % {\u0027size\u0027: size_bytes,"},{"line_number":291,"context_line":"                                                        \u0027dss\u0027: datastores}"},{"line_number":292,"context_line":"            LOG.error(msg)"},{"line_number":293,"context_line":"            raise error_util.VimException(msg)"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"        LOG.debug(_(\"Selected datastore: %(datastore)s with %(host_count)d \""},{"line_number":296,"context_line":"                    \"connected host(s) for the volume.\") %"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2BIbE%3D","line":293,"in_reply_to":"AAAATn%2F%2BIqs%3D","updated":"2013-12-02 07:59:34.000000000","message":"I think we should look at this problem case by case.  For create/clone related calls, volume manager is able to catch the exception and do proper actions to clean up the mess (e.g. setting volume status to error).  I think we should do the same thing for initialize_connection at manager level and then raise HTTP exception to Nova.  A bug is reported: https://bugs.launchpad.net/cinder/+bug/1256804","commit_id":"37b7de1274196fa490a6d36e13bcfbf8e01a4de5"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"d34e355b0da37d901a9aab87b7f4be57c8bd8ae0","unresolved":false,"context_lines":[{"line_number":290,"context_line":"                    \"from the datastores: %(dss)s.\") % {\u0027size\u0027: size_bytes,"},{"line_number":291,"context_line":"                                                        \u0027dss\u0027: datastores}"},{"line_number":292,"context_line":"            LOG.error(msg)"},{"line_number":293,"context_line":"            raise error_util.VimException(msg)"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"        LOG.debug(_(\"Selected datastore: %(datastore)s with %(host_count)d \""},{"line_number":296,"context_line":"                    \"connected host(s) for the volume.\") %"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2BIqs%3D","line":293,"in_reply_to":"AAAATn%2F%2BIxE%3D","updated":"2013-12-02 06:18:42.000000000","message":"I got your point.\nMy previous question was, what sort of handling is needed here? Are you saying that caller of _select_datastore_summary should catch the exception, log it and throw some other exception? I would like to understand the \"handling part\" you are referring to.\n\nAs you understand, recovery is not possible in this case by the driver.","commit_id":"37b7de1274196fa490a6d36e13bcfbf8e01a4de5"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"0b3f46065a194d39f31d353a4109a423983e9edd","unresolved":false,"context_lines":[{"line_number":290,"context_line":"                    \"from the datastores: %(dss)s.\") % {\u0027size\u0027: size_bytes,"},{"line_number":291,"context_line":"                                                        \u0027dss\u0027: datastores}"},{"line_number":292,"context_line":"            LOG.error(msg)"},{"line_number":293,"context_line":"            raise error_util.VimException(msg)"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"        LOG.debug(_(\"Selected datastore: %(datastore)s with %(host_count)d \""},{"line_number":296,"context_line":"                    \"connected host(s) for the volume.\") %"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2BIxE%3D","line":293,"in_reply_to":"AAAATn%2F%2BIyg%3D","updated":"2013-12-02 05:37:27.000000000","message":"API: initialize_connection() -\u003e VolumeManager initialize_connection() -\u003e VMDK Driver: initialize_connection() -\u003e _initialize_connection() -\u003e  _create_backing() -\u003e _get_folder_ds_summary() -\u003e _select_datastore_summary().\n\nNo exception handling alone the calling chain.  There might be others since I haven\u0027t read your driver code thoroughly yet.","commit_id":"37b7de1274196fa490a6d36e13bcfbf8e01a4de5"}],"cinder/volume/drivers/vmware/volumeops.py":[{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"5a49fc656d5c388ea019c0c8d2c0b8d1908856b2","unresolved":false,"context_lines":[{"line_number":140,"context_line":"                                 self._session.vim, retrieve_result)"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    def _is_usable(self, datastore, mount_info):"},{"line_number":143,"context_line":"        \"\"\"Check if the given datastore is usable as per the given"},{"line_number":144,"context_line":"        mount info."},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"        The datastore is considered to be usable for a host only"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2Bsfg%3D","line":143,"updated":"2013-11-21 12:54:06.000000000","message":"Please see http://docs.openstack.org/developer/hacking/#docstrings","commit_id":"152bafce8f5554c73b384aa5fdd73d250399ebba"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"312cf2b506fde4febf732ec5080fb0f9614c79f8","unresolved":false,"context_lines":[{"line_number":140,"context_line":"                                 self._session.vim, retrieve_result)"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    def _is_usable(self, datastore, mount_info):"},{"line_number":143,"context_line":"        \"\"\"Check if the given datastore is usable as per the given"},{"line_number":144,"context_line":"        mount info."},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"        The datastore is considered to be usable for a host only"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2BVyQ%3D","line":143,"in_reply_to":"AAAATn%2F%2Bsfg%3D","updated":"2013-11-27 07:17:31.000000000","message":"Done","commit_id":"152bafce8f5554c73b384aa5fdd73d250399ebba"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"5a49fc656d5c388ea019c0c8d2c0b8d1908856b2","unresolved":false,"context_lines":[{"line_number":167,"context_line":""},{"line_number":168,"context_line":"        return writable and mounted and accessible"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"    def get_connected_hosts(self, datastore):"},{"line_number":171,"context_line":"        \"\"\"Get all the hosts to which the datastore is connected and"},{"line_number":172,"context_line":"        in usable state."},{"line_number":173,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2BsfY%3D","line":170,"updated":"2013-11-21 12:54:06.000000000","message":"Please see http://docs.openstack.org/developer/hacking/#docstrings","commit_id":"152bafce8f5554c73b384aa5fdd73d250399ebba"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"312cf2b506fde4febf732ec5080fb0f9614c79f8","unresolved":false,"context_lines":[{"line_number":167,"context_line":""},{"line_number":168,"context_line":"        return writable and mounted and accessible"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"    def get_connected_hosts(self, datastore):"},{"line_number":171,"context_line":"        \"\"\"Get all the hosts to which the datastore is connected and"},{"line_number":172,"context_line":"        in usable state."},{"line_number":173,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F%2BVyM%3D","line":170,"in_reply_to":"AAAATn%2F%2BsfY%3D","updated":"2013-11-27 07:17:31.000000000","message":"Done","commit_id":"152bafce8f5554c73b384aa5fdd73d250399ebba"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"8d8c890121f4568bf8548f06d5b4f41a42b3dfda","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        writable \u003d mount_info.accessMode \u003d\u003d \"readWrite\""},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"        # If mounted attribute is not set, then default is True"},{"line_number":156,"context_line":"        mounted \u003d True"},{"line_number":157,"context_line":"        if hasattr(mount_info, \"mounted\"):"},{"line_number":158,"context_line":"            mounted \u003d mount_info.mounted"},{"line_number":159,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2F%2FEs%3D","line":156,"updated":"2014-01-05 23:20:30.000000000","message":"nit: mounted \u003d getattr(mount_info, \u0027mounted\u0027, True)","commit_id":"b85cc49588c9f40e091801af33da8c7575058ec0"}]}
