)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4e44b5ea4250d28a558933c08ebf83307da12650","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Implement volume capacity stats for VMware"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Calculates the total capacity and free space for datastores meeting the following criteria."},{"line_number":10,"context_line":"- accessible"},{"line_number":11,"context_line":"- not in maintenance"},{"line_number":12,"context_line":"- mounted to an ESX host belonging to the clusters configured for the VMware driver."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"3f79a3b5_4fa19c91","line":9,"updated":"2018-10-15 23:23:08.000000000","message":"If you do an update, please amend this commit message to be within 72 characters.\n\nhttps://wiki.openstack.org/wiki/GitCommitMessages#Summary_of_Git_commit_message_structure","commit_id":"5700f418a71d4581a687c52614144b849681c2d1"},{"author":{"_account_id":29125,"name":"Ivaylo Mitev","email":"imitev@vmware.com","username":"imitev"},"change_message_id":"0e74e2c58c0f15c7f99138efdfbc486d9559ae2b","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Implement volume capacity stats for VMware"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Calculates the total capacity and free space for datastores meeting the following criteria."},{"line_number":10,"context_line":"- accessible"},{"line_number":11,"context_line":"- not in maintenance"},{"line_number":12,"context_line":"- mounted to an ESX host belonging to the clusters configured for the VMware driver."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"3f79a3b5_c345609d","line":9,"in_reply_to":"3f79a3b5_4fa19c91","updated":"2018-10-17 10:02:39.000000000","message":"Done","commit_id":"5700f418a71d4581a687c52614144b849681c2d1"}],"cinder/tests/unit/volume/drivers/vmware/test_fcd.py":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"611ef9b50bbf4e7eaa4f96899debd2b92e061b28","unresolved":false,"context_lines":[{"line_number":103,"context_line":"        self.assertEqual(\u0027VMware\u0027, stats[\u0027vendor_name\u0027])"},{"line_number":104,"context_line":"        self.assertEqual(self._driver.VERSION, stats[\u0027driver_version\u0027])"},{"line_number":105,"context_line":"        self.assertEqual(self._driver.STORAGE_TYPE, stats[\u0027storage_protocol\u0027])"},{"line_number":106,"context_line":"        self.assertEqual(self.RESERVED_PERCENTAGE, stats[\u0027reserved_percentage\u0027])"},{"line_number":107,"context_line":"        self.assertEqual(TOTAL_GB, stats[\u0027total_capacity_gb\u0027])"},{"line_number":108,"context_line":"        self.assertEqual(FREE_GB, stats[\u0027free_capacity_gb\u0027])"},{"line_number":109,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_736328de","line":106,"updated":"2018-10-03 05:01:04.000000000","message":"line length is \u003e 79 chars","commit_id":"cb653287f17d7ff02e456ca7f79759ed0fa65169"},{"author":{"_account_id":29125,"name":"Ivaylo Mitev","email":"imitev@vmware.com","username":"imitev"},"change_message_id":"7e4e53d32135cd306f838024992e42ca43957e74","unresolved":false,"context_lines":[{"line_number":103,"context_line":"        self.assertEqual(\u0027VMware\u0027, stats[\u0027vendor_name\u0027])"},{"line_number":104,"context_line":"        self.assertEqual(self._driver.VERSION, stats[\u0027driver_version\u0027])"},{"line_number":105,"context_line":"        self.assertEqual(self._driver.STORAGE_TYPE, stats[\u0027storage_protocol\u0027])"},{"line_number":106,"context_line":"        self.assertEqual(self.RESERVED_PERCENTAGE, stats[\u0027reserved_percentage\u0027])"},{"line_number":107,"context_line":"        self.assertEqual(TOTAL_GB, stats[\u0027total_capacity_gb\u0027])"},{"line_number":108,"context_line":"        self.assertEqual(FREE_GB, stats[\u0027free_capacity_gb\u0027])"},{"line_number":109,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_bb3bd698","line":106,"in_reply_to":"3f79a3b5_736328de","updated":"2018-10-03 08:44:04.000000000","message":"Done","commit_id":"cb653287f17d7ff02e456ca7f79759ed0fa65169"}],"cinder/tests/unit/volume/drivers/vmware/test_vmware_vmdk.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"684d5c5fc4471bdc7c8884b9271fd8a7bd6a497a","unresolved":false,"context_lines":[{"line_number":40,"context_line":"from cinder.volume.drivers.vmware import vmdk"},{"line_number":41,"context_line":"from cinder.volume.drivers.vmware import volumeops"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"class MockConfiguration(object):"},{"line_number":44,"context_line":"    def __init__(self, **kwargs):"},{"line_number":45,"context_line":"        for kw in kwargs:"},{"line_number":46,"context_line":"            setattr(self, kw, kwargs[kw])"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_9e1e645d","line":43,"updated":"2018-09-28 11:03:48.000000000","message":"Can we use config fixture [1] here?\n\n[1] https://github.com/openstack/oslo.config/blob/master/oslo_config/fixture.py#L23","commit_id":"b5cdc18792c4a0ab4fabda81681e814919f8dcf1"},{"author":{"_account_id":29125,"name":"Ivaylo Mitev","email":"imitev@vmware.com","username":"imitev"},"change_message_id":"d8f98f847f0a8dc1cf58094996f1518d5de74076","unresolved":false,"context_lines":[{"line_number":40,"context_line":"from cinder.volume.drivers.vmware import vmdk"},{"line_number":41,"context_line":"from cinder.volume.drivers.vmware import volumeops"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"class MockConfiguration(object):"},{"line_number":44,"context_line":"    def __init__(self, **kwargs):"},{"line_number":45,"context_line":"        for kw in kwargs:"},{"line_number":46,"context_line":"            setattr(self, kw, kwargs[kw])"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_1d41c936","line":43,"in_reply_to":"3f79a3b5_9e1e645d","updated":"2018-10-01 16:33:51.000000000","message":"It doesn\u0027t seem suitable to me.","commit_id":"b5cdc18792c4a0ab4fabda81681e814919f8dcf1"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"017e0e2673b6b0b8a4d993fca24cd55c7306292f","unresolved":false,"context_lines":[{"line_number":94,"context_line":"    def setUp(self):"},{"line_number":95,"context_line":"        super(VMwareVcVmdkDriverTestCase, self).setUp()"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"        self._config \u003d MockConfiguration("},{"line_number":98,"context_line":"            vmware_host_ip\u003dself.IP,"},{"line_number":99,"context_line":"            vmware_host_port\u003dself.PORT,"},{"line_number":100,"context_line":"            vmware_host_username\u003dself.USERNAME,"}],"source_content_type":"text/x-python","patch_set":9,"id":"dfd5e7cf_7bc8a654","line":97,"range":{"start_line":97,"start_character":23,"end_line":97,"end_character":40},"updated":"2019-01-08 16:31:00.000000000","message":"Personally, I prefer old solution but I won\u0027t block patch for it","commit_id":"4a41a7293c01de7ae13f30b6ade67015aea13886"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"017e0e2673b6b0b8a4d993fca24cd55c7306292f","unresolved":false,"context_lines":[{"line_number":134,"context_line":"            def __init__(self, **kwargs):"},{"line_number":135,"context_line":"                self.__dict__.update(kwargs)"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"        _get_datastore_summaries.return_value \u003d \\"},{"line_number":138,"context_line":"            ObjMock(objects\u003d ["},{"line_number":139,"context_line":"                ObjMock(propSet \u003d ["},{"line_number":140,"context_line":"                    ObjMock(name \u003d \"host\","}],"source_content_type":"text/x-python","patch_set":9,"id":"dfd5e7cf_bb9dae5a","line":137,"updated":"2019-01-08 16:31:00.000000000","message":"Please, use brackets \u0027()\u0027 instead of \u0027\\\u0027 symbol for multi-line statements","commit_id":"4a41a7293c01de7ae13f30b6ade67015aea13886"},{"author":{"_account_id":29125,"name":"Ivaylo Mitev","email":"imitev@vmware.com","username":"imitev"},"change_message_id":"ef53144b19f4569a318ce00b3482eadc499cd855","unresolved":false,"context_lines":[{"line_number":134,"context_line":"            def __init__(self, **kwargs):"},{"line_number":135,"context_line":"                self.__dict__.update(kwargs)"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"        _get_datastore_summaries.return_value \u003d \\"},{"line_number":138,"context_line":"            ObjMock(objects\u003d ["},{"line_number":139,"context_line":"                ObjMock(propSet \u003d ["},{"line_number":140,"context_line":"                    ObjMock(name \u003d \"host\","}],"source_content_type":"text/x-python","patch_set":9,"id":"bfdaf3ff_3c730fea","line":137,"in_reply_to":"dfd5e7cf_bb9dae5a","updated":"2019-01-11 16:24:41.000000000","message":"Done","commit_id":"4a41a7293c01de7ae13f30b6ade67015aea13886"}],"cinder/volume/drivers/vmware/vmdk.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"684d5c5fc4471bdc7c8884b9271fd8a7bd6a497a","unresolved":false,"context_lines":[{"line_number":267,"context_line":"    # 3.2.0 - config option to disable lazy creation of backend volume"},{"line_number":268,"context_line":"    # 3.3.0 - config option to specify datastore name regex"},{"line_number":269,"context_line":"    # 3.4.0 - added NFS41 as a supported datastore type"},{"line_number":270,"context_line":"    VERSION \u003d \u00273.4.0\u0027"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"    # ThirdPartySystems wiki page"},{"line_number":273,"context_line":"    CI_WIKI_NAME \u003d \"VMware_CI\""}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_1e3254f3","line":270,"updated":"2018-09-28 11:03:48.000000000","message":"Do we need  to update version now?","commit_id":"b5cdc18792c4a0ab4fabda81681e814919f8dcf1"},{"author":{"_account_id":29125,"name":"Ivaylo Mitev","email":"imitev@vmware.com","username":"imitev"},"change_message_id":"d8f98f847f0a8dc1cf58094996f1518d5de74076","unresolved":false,"context_lines":[{"line_number":267,"context_line":"    # 3.2.0 - config option to disable lazy creation of backend volume"},{"line_number":268,"context_line":"    # 3.3.0 - config option to specify datastore name regex"},{"line_number":269,"context_line":"    # 3.4.0 - added NFS41 as a supported datastore type"},{"line_number":270,"context_line":"    VERSION \u003d \u00273.4.0\u0027"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"    # ThirdPartySystems wiki page"},{"line_number":273,"context_line":"    CI_WIKI_NAME \u003d \"VMware_CI\""}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_138c86d6","line":270,"in_reply_to":"3f79a3b5_1e3254f3","updated":"2018-10-01 16:33:51.000000000","message":"Done","commit_id":"b5cdc18792c4a0ab4fabda81681e814919f8dcf1"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"684d5c5fc4471bdc7c8884b9271fd8a7bd6a497a","unresolved":false,"context_lines":[{"line_number":332,"context_line":"                \u0027driver_version\u0027: self.VERSION,"},{"line_number":333,"context_line":"                \u0027storage_protocol\u0027: \u0027vmdk\u0027,"},{"line_number":334,"context_line":"                \u0027reserved_percentage\u0027: self.configuration.reserved_percentage,"},{"line_number":335,"context_line":"                \u0027total_capacity_gb\u0027: \u0027unknown\u0027,"},{"line_number":336,"context_line":"                \u0027free_capacity_gb\u0027: \u0027unknown\u0027,"},{"line_number":337,"context_line":"                \u0027shared_targets\u0027: False}"},{"line_number":338,"context_line":"        ds_summaries \u003d self._get_datastore_summaries()"},{"line_number":339,"context_line":"        available_hosts \u003d self._get_hosts(self._clusters)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_3e42b03c","line":336,"range":{"start_line":335,"start_character":16,"end_line":336,"end_character":46},"updated":"2018-09-28 11:03:48.000000000","message":"We don\u0027t need it here because it will be overrided in lines #340-341","commit_id":"b5cdc18792c4a0ab4fabda81681e814919f8dcf1"},{"author":{"_account_id":29125,"name":"Ivaylo Mitev","email":"imitev@vmware.com","username":"imitev"},"change_message_id":"d8f98f847f0a8dc1cf58094996f1518d5de74076","unresolved":false,"context_lines":[{"line_number":332,"context_line":"                \u0027driver_version\u0027: self.VERSION,"},{"line_number":333,"context_line":"                \u0027storage_protocol\u0027: \u0027vmdk\u0027,"},{"line_number":334,"context_line":"                \u0027reserved_percentage\u0027: self.configuration.reserved_percentage,"},{"line_number":335,"context_line":"                \u0027total_capacity_gb\u0027: \u0027unknown\u0027,"},{"line_number":336,"context_line":"                \u0027free_capacity_gb\u0027: \u0027unknown\u0027,"},{"line_number":337,"context_line":"                \u0027shared_targets\u0027: False}"},{"line_number":338,"context_line":"        ds_summaries \u003d self._get_datastore_summaries()"},{"line_number":339,"context_line":"        available_hosts \u003d self._get_hosts(self._clusters)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_338982c6","line":336,"range":{"start_line":335,"start_character":16,"end_line":336,"end_character":46},"in_reply_to":"3f79a3b5_3e42b03c","updated":"2018-10-01 16:33:51.000000000","message":"Done","commit_id":"b5cdc18792c4a0ab4fabda81681e814919f8dcf1"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"684d5c5fc4471bdc7c8884b9271fd8a7bd6a497a","unresolved":false,"context_lines":[{"line_number":379,"context_line":"                object_specs.append(vim_util.build_object_spec(client_factory, datastore_ref, []))"},{"line_number":380,"context_line":"        else:"},{"line_number":381,"context_line":"            # Build a catch-all object spec that would reach all datastores"},{"line_number":382,"context_line":"            object_specs.append(vim_util.build_object_spec(client_factory,"},{"line_number":383,"context_line":"                                                           self.session.vim.service_content.rootFolder,"},{"line_number":384,"context_line":"                                                           [vim_util.build_recursive_traversal_spec(client_factory)]))"},{"line_number":385,"context_line":"        prop_spec \u003d vim_util.build_property_spec(client_factory, \u0027Datastore\u0027, [\u0027summary\u0027, \u0027host\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_de97fc9b","line":382,"updated":"2018-09-28 11:03:48.000000000","message":"Please, fit lines into the 80 symbols limit","commit_id":"b5cdc18792c4a0ab4fabda81681e814919f8dcf1"},{"author":{"_account_id":29125,"name":"Ivaylo Mitev","email":"imitev@vmware.com","username":"imitev"},"change_message_id":"d8f98f847f0a8dc1cf58094996f1518d5de74076","unresolved":false,"context_lines":[{"line_number":379,"context_line":"                object_specs.append(vim_util.build_object_spec(client_factory, datastore_ref, []))"},{"line_number":380,"context_line":"        else:"},{"line_number":381,"context_line":"            # Build a catch-all object spec that would reach all datastores"},{"line_number":382,"context_line":"            object_specs.append(vim_util.build_object_spec(client_factory,"},{"line_number":383,"context_line":"                                                           self.session.vim.service_content.rootFolder,"},{"line_number":384,"context_line":"                                                           [vim_util.build_recursive_traversal_spec(client_factory)]))"},{"line_number":385,"context_line":"        prop_spec \u003d vim_util.build_property_spec(client_factory, \u0027Datastore\u0027, [\u0027summary\u0027, \u0027host\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_738ffa2d","line":382,"in_reply_to":"3f79a3b5_de97fc9b","updated":"2018-10-01 16:33:51.000000000","message":"Done","commit_id":"b5cdc18792c4a0ab4fabda81681e814919f8dcf1"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"684d5c5fc4471bdc7c8884b9271fd8a7bd6a497a","unresolved":false,"context_lines":[{"line_number":381,"context_line":"            # Build a catch-all object spec that would reach all datastores"},{"line_number":382,"context_line":"            object_specs.append(vim_util.build_object_spec(client_factory,"},{"line_number":383,"context_line":"                                                           self.session.vim.service_content.rootFolder,"},{"line_number":384,"context_line":"                                                           [vim_util.build_recursive_traversal_spec(client_factory)]))"},{"line_number":385,"context_line":"        prop_spec \u003d vim_util.build_property_spec(client_factory, \u0027Datastore\u0027, [\u0027summary\u0027, \u0027host\u0027])"},{"line_number":386,"context_line":"        filter_spec \u003d vim_util.build_property_filter_spec(client_factory, prop_spec, object_specs)"},{"line_number":387,"context_line":"        options \u003d client_factory.create(\u0027ns0:RetrieveOptions\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_7e6108d4","line":384,"updated":"2018-09-28 11:03:48.000000000","message":"Please, fit l","commit_id":"b5cdc18792c4a0ab4fabda81681e814919f8dcf1"},{"author":{"_account_id":29125,"name":"Ivaylo Mitev","email":"imitev@vmware.com","username":"imitev"},"change_message_id":"d8f98f847f0a8dc1cf58094996f1518d5de74076","unresolved":false,"context_lines":[{"line_number":381,"context_line":"            # Build a catch-all object spec that would reach all datastores"},{"line_number":382,"context_line":"            object_specs.append(vim_util.build_object_spec(client_factory,"},{"line_number":383,"context_line":"                                                           self.session.vim.service_content.rootFolder,"},{"line_number":384,"context_line":"                                                           [vim_util.build_recursive_traversal_spec(client_factory)]))"},{"line_number":385,"context_line":"        prop_spec \u003d vim_util.build_property_spec(client_factory, \u0027Datastore\u0027, [\u0027summary\u0027, \u0027host\u0027])"},{"line_number":386,"context_line":"        filter_spec \u003d vim_util.build_property_filter_spec(client_factory, prop_spec, object_specs)"},{"line_number":387,"context_line":"        options \u003d client_factory.create(\u0027ns0:RetrieveOptions\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_13980674","line":384,"in_reply_to":"3f79a3b5_7e6108d4","updated":"2018-10-01 16:33:51.000000000","message":"Done","commit_id":"b5cdc18792c4a0ab4fabda81681e814919f8dcf1"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4e44b5ea4250d28a558933c08ebf83307da12650","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"import math"},{"line_number":26,"context_line":"import re"},{"line_number":27,"context_line":"import six"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"from oslo_config import cfg"},{"line_number":30,"context_line":"from oslo_log import log as logging"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_cfae0c7f","line":27,"updated":"2018-10-15 23:23:08.000000000","message":"six is a third party library, so it should be with the other oslo and third party CI grouping below.","commit_id":"5700f418a71d4581a687c52614144b849681c2d1"},{"author":{"_account_id":29125,"name":"Ivaylo Mitev","email":"imitev@vmware.com","username":"imitev"},"change_message_id":"0e74e2c58c0f15c7f99138efdfbc486d9559ae2b","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"import math"},{"line_number":26,"context_line":"import re"},{"line_number":27,"context_line":"import six"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"from oslo_config import cfg"},{"line_number":30,"context_line":"from oslo_log import log as logging"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_63c00cfb","line":27,"in_reply_to":"3f79a3b5_cfae0c7f","updated":"2018-10-17 10:02:39.000000000","message":"Done","commit_id":"5700f418a71d4581a687c52614144b849681c2d1"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"7af7e694d2f21ae62edeb6979a61ff01ffe20c82","unresolved":false,"context_lines":[{"line_number":341,"context_line":"        while True:"},{"line_number":342,"context_line":"            for ds in ds_summaries.objects:"},{"line_number":343,"context_line":"                ds_props \u003d self._get_object_properties(ds)"},{"line_number":344,"context_line":"                summary \u003d ds_props[\u0027summary\u0027]"},{"line_number":345,"context_line":"                if self._is_datastore_accessible(summary,"},{"line_number":346,"context_line":"                                                 ds_props[\u0027host\u0027],"},{"line_number":347,"context_line":"                                                 available_hosts):"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_5fc9434e","line":344,"range":{"start_line":344,"start_character":26,"end_line":344,"end_character":45},"updated":"2018-10-17 03:55:55.000000000","message":"since an empty dict may be returned from _get_object_properties, it will be good to use,\nds_props.get(\u0027summary\u0027, {})\nto avoid KeyError","commit_id":"5700f418a71d4581a687c52614144b849681c2d1"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"9974f7f65dc3933f35a6ec73fcab0a6b39cda7ee","unresolved":false,"context_lines":[{"line_number":341,"context_line":"        while True:"},{"line_number":342,"context_line":"            for ds in ds_summaries.objects:"},{"line_number":343,"context_line":"                ds_props \u003d self._get_object_properties(ds)"},{"line_number":344,"context_line":"                summary \u003d ds_props[\u0027summary\u0027]"},{"line_number":345,"context_line":"                if self._is_datastore_accessible(summary,"},{"line_number":346,"context_line":"                                                 ds_props[\u0027host\u0027],"},{"line_number":347,"context_line":"                                                 available_hosts):"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_374f95c0","line":344,"range":{"start_line":344,"start_character":26,"end_line":344,"end_character":45},"in_reply_to":"3f79a3b5_233f74e0","updated":"2018-10-18 07:59:41.000000000","message":"At L#409, props is defined as an empty dict.\nIf the condition fails at L#410, then an empty dict will be returned.\nBut if it always passes then i\u0027m good with this.","commit_id":"5700f418a71d4581a687c52614144b849681c2d1"},{"author":{"_account_id":29125,"name":"Ivaylo Mitev","email":"imitev@vmware.com","username":"imitev"},"change_message_id":"1c69cfda75ce8556e42452be1bb65fa6414be74d","unresolved":false,"context_lines":[{"line_number":341,"context_line":"        while True:"},{"line_number":342,"context_line":"            for ds in ds_summaries.objects:"},{"line_number":343,"context_line":"                ds_props \u003d self._get_object_properties(ds)"},{"line_number":344,"context_line":"                summary \u003d ds_props[\u0027summary\u0027]"},{"line_number":345,"context_line":"                if self._is_datastore_accessible(summary,"},{"line_number":346,"context_line":"                                                 ds_props[\u0027host\u0027],"},{"line_number":347,"context_line":"                                                 available_hosts):"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_78389d3b","line":344,"range":{"start_line":344,"start_character":26,"end_line":344,"end_character":45},"in_reply_to":"3f79a3b5_374f95c0","updated":"2018-10-18 09:24:02.000000000","message":"The particular API call that requests \u0027summary\u0027 and \u0027host\u0027 properties; if \u0027summary\u0027 is missing in the result then this indicates an issue with the API call. My point is that the code must not be adopted to pass silently in that exceptional situation but instead it should result in exception. Otherwise the result will be incorrect.","commit_id":"5700f418a71d4581a687c52614144b849681c2d1"},{"author":{"_account_id":29125,"name":"Ivaylo Mitev","email":"imitev@vmware.com","username":"imitev"},"change_message_id":"0e74e2c58c0f15c7f99138efdfbc486d9559ae2b","unresolved":false,"context_lines":[{"line_number":341,"context_line":"        while True:"},{"line_number":342,"context_line":"            for ds in ds_summaries.objects:"},{"line_number":343,"context_line":"                ds_props \u003d self._get_object_properties(ds)"},{"line_number":344,"context_line":"                summary \u003d ds_props[\u0027summary\u0027]"},{"line_number":345,"context_line":"                if self._is_datastore_accessible(summary,"},{"line_number":346,"context_line":"                                                 ds_props[\u0027host\u0027],"},{"line_number":347,"context_line":"                                                 available_hosts):"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_233f74e0","line":344,"range":{"start_line":344,"start_character":26,"end_line":344,"end_character":45},"in_reply_to":"3f79a3b5_5fc9434e","updated":"2018-10-17 10:02:39.000000000","message":"_get_datastore_summaries retrieves the \u0027summary\u0027 field hence it will be in the dict. IMO, trying to address missing summary could only result in hiding some severe API error or version change.","commit_id":"5700f418a71d4581a687c52614144b849681c2d1"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"4e44b5ea4250d28a558933c08ebf83307da12650","unresolved":false,"context_lines":[{"line_number":358,"context_line":"    def _get_datastore_summaries(self):"},{"line_number":359,"context_line":"        client_factory \u003d self.session.vim.client.factory"},{"line_number":360,"context_line":"        object_specs \u003d []"},{"line_number":361,"context_line":"        if self._storage_policy_enabled \\"},{"line_number":362,"context_line":"                and self.configuration.vmware_storage_profile:"},{"line_number":363,"context_line":"            # Get all available storage profiles on the vCenter and extract the"},{"line_number":364,"context_line":"            # IDs of those that we want to observe"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_0fde440f","line":361,"range":{"start_line":361,"start_character":40,"end_line":361,"end_character":41},"updated":"2018-10-15 23:23:08.000000000","message":"Please avoid using \\ for line breaks. Better to wrap in ().","commit_id":"5700f418a71d4581a687c52614144b849681c2d1"},{"author":{"_account_id":29125,"name":"Ivaylo Mitev","email":"imitev@vmware.com","username":"imitev"},"change_message_id":"0e74e2c58c0f15c7f99138efdfbc486d9559ae2b","unresolved":false,"context_lines":[{"line_number":358,"context_line":"    def _get_datastore_summaries(self):"},{"line_number":359,"context_line":"        client_factory \u003d self.session.vim.client.factory"},{"line_number":360,"context_line":"        object_specs \u003d []"},{"line_number":361,"context_line":"        if self._storage_policy_enabled \\"},{"line_number":362,"context_line":"                and self.configuration.vmware_storage_profile:"},{"line_number":363,"context_line":"            # Get all available storage profiles on the vCenter and extract the"},{"line_number":364,"context_line":"            # IDs of those that we want to observe"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_23ca1419","line":361,"range":{"start_line":361,"start_character":40,"end_line":361,"end_character":41},"in_reply_to":"3f79a3b5_0fde440f","updated":"2018-10-17 10:02:39.000000000","message":"Done","commit_id":"5700f418a71d4581a687c52614144b849681c2d1"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"7af7e694d2f21ae62edeb6979a61ff01ffe20c82","unresolved":false,"context_lines":[{"line_number":415,"context_line":""},{"line_number":416,"context_line":"    def _is_datastore_accessible(self, ds_summary, ds_host_mounts,"},{"line_number":417,"context_line":"                                 available_hosts):"},{"line_number":418,"context_line":"        # available_hosts empty \u003d\u003e vmware_cluster_name not specified \u003d\u003e don\u0027t"},{"line_number":419,"context_line":"        # filter by hosts"},{"line_number":420,"context_line":"        cluster_access_to_ds \u003d not available_hosts"},{"line_number":421,"context_line":"        for host_mount in ds_host_mounts.DatastoreHostMount:"},{"line_number":422,"context_line":"            for avlbl_host in available_hosts:"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_d4343ce3","line":419,"range":{"start_line":418,"start_character":7,"end_line":419,"end_character":25},"updated":"2018-10-17 03:55:55.000000000","message":"IMO doctype string would be better here\n\u0027\u0027\u0027comment L#1\ncomment L#2 \u0027\u0027\u0027","commit_id":"5700f418a71d4581a687c52614144b849681c2d1"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"9974f7f65dc3933f35a6ec73fcab0a6b39cda7ee","unresolved":false,"context_lines":[{"line_number":415,"context_line":""},{"line_number":416,"context_line":"    def _is_datastore_accessible(self, ds_summary, ds_host_mounts,"},{"line_number":417,"context_line":"                                 available_hosts):"},{"line_number":418,"context_line":"        # available_hosts empty \u003d\u003e vmware_cluster_name not specified \u003d\u003e don\u0027t"},{"line_number":419,"context_line":"        # filter by hosts"},{"line_number":420,"context_line":"        cluster_access_to_ds \u003d not available_hosts"},{"line_number":421,"context_line":"        for host_mount in ds_host_mounts.DatastoreHostMount:"},{"line_number":422,"context_line":"            for avlbl_host in available_hosts:"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_17db79ea","line":419,"range":{"start_line":418,"start_character":7,"end_line":419,"end_character":25},"in_reply_to":"3f79a3b5_4e073719","updated":"2018-10-18 07:59:41.000000000","message":"May have misread the comment. Got it. thanks for the ref.","commit_id":"5700f418a71d4581a687c52614144b849681c2d1"},{"author":{"_account_id":29125,"name":"Ivaylo Mitev","email":"imitev@vmware.com","username":"imitev"},"change_message_id":"0e74e2c58c0f15c7f99138efdfbc486d9559ae2b","unresolved":false,"context_lines":[{"line_number":415,"context_line":""},{"line_number":416,"context_line":"    def _is_datastore_accessible(self, ds_summary, ds_host_mounts,"},{"line_number":417,"context_line":"                                 available_hosts):"},{"line_number":418,"context_line":"        # available_hosts empty \u003d\u003e vmware_cluster_name not specified \u003d\u003e don\u0027t"},{"line_number":419,"context_line":"        # filter by hosts"},{"line_number":420,"context_line":"        cluster_access_to_ds \u003d not available_hosts"},{"line_number":421,"context_line":"        for host_mount in ds_host_mounts.DatastoreHostMount:"},{"line_number":422,"context_line":"            for avlbl_host in available_hosts:"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_4e073719","line":419,"range":{"start_line":418,"start_character":7,"end_line":419,"end_character":25},"in_reply_to":"3f79a3b5_d4343ce3","updated":"2018-10-17 10:02:39.000000000","message":"This is not a documentation comment. And for non-documenting comments PEP8 suggests sintle-line comments instead of a multi-line ones. https://www.python.org/dev/peps/pep-0008/#block-comments","commit_id":"5700f418a71d4581a687c52614144b849681c2d1"}]}
